This commit is contained in:
eymendemez
2025-09-20 21:35:26 +03:00
parent c369b257d2
commit 061ddb5d55
25 changed files with 110407 additions and 8 deletions
-8
View File
@@ -5,14 +5,6 @@ lwjgl-rundir/_eagstorage.p.dat
lwjgl-rundir/_eagstorage.g.dat
lwjgl-rundir/_eagstorage.a.dat
lwjgl-rundir/filesystem/
javascript/
wasm_gc_teavm/bin/
wasm_gc_teavm/build/
wasm_gc_teavm/.gradle/
/javascript
/javascript
javascript/EaglercraftX_1.8_Offline_en_US.html
javascript/EaglercraftX_1.8_Offline_International.html
javascript/classes.js
/javascript
/javascript
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+86
View File
@@ -0,0 +1,86 @@
<!DOCTYPE html>
<html lang="und" style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="description" content="Eaglercraft Alpha 1.0.6_03 Offline Download">
<meta name="keywords" content="eaglercraft, minecraft, alpha, mark101, voidexp, alpha 1.1.2_01">
<title>Eaglercraft Alpha 1.0.6_03</title>
<meta property="og:locale" content="en-US">
<meta property="og:type" content="website">
<meta property="og:title" content="Eaglercraft Alpha 1.0.6_03 Offline">
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass">
<script type="text/javascript">
"use strict";
var relayId = Math.floor(Math.random() * 3);
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = {
container: "game_frame",
worldsDB: "worlds"
};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.assetsURI = ${assets_epk};
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() {
document.body.removeChild(document.getElementById("launch_countdown_screen"));
document.body.style.backgroundColor = "black";
main();
}, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
document.getElementById("skipCountdown").focus();
/*
document.getElementById("bootMenu").addEventListener("click", function() {
launchSkipCountdown = true;
window.eaglercraftXOpts.showBootMenuOnLaunch = true;
});
*/
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==">
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:#121212;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;color:#FFFFFF;">
<h1>This file is from <span style="color:#FF5555;">${date}</span></h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid #FFFFFF;width:100%;height:15px;padding:1px;margin-bottom:20vh;">
<div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
</div>
<button id="skipCountdown" autofocus style="padding:10px 20px;font-size:1rem;color:#FFFFFF;background-color:#333333;border:none;cursor:pointer;border-radius:5px;">Skip</button>
</div>
</div>
</body>
</html>
Binary file not shown.
+35792
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+39
View File
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="und" style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="description" content="Eaglercraft Alpha 1.0.6_03">
<meta name="keywords" content="eaglercraft, eaglercraftx, socket, alphaver, mark101, voidexp, minecraft, Alpha, Alpha 1.1.2, Alpha 1.0.6_03">
<title>Eaglercraft Alpha 1.0.6_03</title>
<meta property="og:locale" content="en-US">
<meta property="og:type" content="website">
<meta property="og:title" content="Eaglercraft Alpha 1.0.6_03">
<meta property="og:description" content="test directory HTML page">
<link type="image/png" rel="shortcut icon" href="favicon.png">
<script type="text/javascript" src="classes.js"></script>
<script type="text/javascript">
"use strict";
window.addEventListener("load", function() {
if(window.location.href.indexOf("file:") === 0) {
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
}else {
var relayId = Math.floor(Math.random() * 3);
window.eaglercraftXOpts = {
container: "game_frame",
assetsURI: "assets.epk",
worldsDB: "worlds",
logInvalidCerts: true,
crashOnUncaughtExceptions: true
};
main();
console.log(window.eaglercraftXOpts.assetsURI);
console.log(window.eaglercraftXOpts.assetsURIArray);
}
});
</script>
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame">
</body>
</html>
@@ -0,0 +1,693 @@
/*
* Copyright 2018 Alexey Andreev.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
"use strict";
var Long_divRem;
var Long_udivRem;
var Long_shiftLeft16;
var Long_shiftRight16;
var LongInt;
var LongInt_mul;
var LongInt_sub;
var LongInt_add;
var LongInt_inc;
var LongInt_dec;
var LongInt_ucompare;
var LongInt_numOfLeadingZeroBits;
var LongInt_shl;
var LongInt_shr;
var LongInt_copy;
var LongInt_div;
var Long_eq;
var Long_ne;
var Long_gt;
var Long_ge;
var Long_lt;
var Long_le;
var Long_compare;
var Long_ucompare;
var Long_add;
var Long_sub;
var Long_inc;
var Long_dec;
var Long_mul;
var Long_div;
var Long_rem;
var Long_udiv;
var Long_urem;
var Long_neg;
var Long_and;
var Long_or;
var Long_xor;
var Long_shl;
var Long_shr;
var Long_shru;
var Long_not;
if (typeof BigInt !== 'function') {
Long_eq = function(a, b) {
return a.hi === b.hi && a.lo === b.lo;
}
Long_ne = function(a, b) {
return a.hi !== b.hi || a.lo !== b.lo;
}
Long_gt = function(a, b) {
if (a.hi < b.hi) {
return false;
}
if (a.hi > b.hi) {
return true;
}
var x = a.lo >>> 1;
var y = b.lo >>> 1;
if (x !== y) {
return x > y;
}
return (a.lo & 1) > (b.lo & 1);
}
Long_ge = function(a, b) {
if (a.hi < b.hi) {
return false;
}
if (a.hi > b.hi) {
return true;
}
var x = a.lo >>> 1;
var y = b.lo >>> 1;
if (x !== y) {
return x >= y;
}
return (a.lo & 1) >= (b.lo & 1);
}
Long_lt = function(a, b) {
if (a.hi > b.hi) {
return false;
}
if (a.hi < b.hi) {
return true;
}
var x = a.lo >>> 1;
var y = b.lo >>> 1;
if (x !== y) {
return x < y;
}
return (a.lo & 1) < (b.lo & 1);
}
Long_le = function(a, b) {
if (a.hi > b.hi) {
return false;
}
if (a.hi < b.hi) {
return true;
}
var x = a.lo >>> 1;
var y = b.lo >>> 1;
if (x !== y) {
return x <= y;
}
return (a.lo & 1) <= (b.lo & 1);
}
Long_add = function(a, b) {
if (a.hi === (a.lo >> 31) && b.hi === (b.lo >> 31)) {
return Long_fromNumber(a.lo + b.lo);
} else if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
return Long_fromNumber(Long_toNumber(a) + Long_toNumber(b));
}
var a_lolo = a.lo & 0xFFFF;
var a_lohi = a.lo >>> 16;
var a_hilo = a.hi & 0xFFFF;
var a_hihi = a.hi >>> 16;
var b_lolo = b.lo & 0xFFFF;
var b_lohi = b.lo >>> 16;
var b_hilo = b.hi & 0xFFFF;
var b_hihi = b.hi >>> 16;
var lolo = (a_lolo + b_lolo) | 0;
var lohi = (a_lohi + b_lohi + (lolo >> 16)) | 0;
var hilo = (a_hilo + b_hilo + (lohi >> 16)) | 0;
var hihi = (a_hihi + b_hihi + (hilo >> 16)) | 0;
return new Long((lolo & 0xFFFF) | ((lohi & 0xFFFF) << 16), (hilo & 0xFFFF) | ((hihi & 0xFFFF) << 16));
}
Long_inc = function(a) {
var lo = (a.lo + 1) | 0;
var hi = a.hi;
if (lo === 0) {
hi = (hi + 1) | 0;
}
return new Long(lo, hi);
}
Long_dec = function(a) {
var lo = (a.lo - 1) | 0;
var hi = a.hi;
if (lo === -1) {
hi = (hi - 1) | 0;
}
return new Long(lo, hi);
}
Long_neg = function(a) {
return Long_inc(new Long(a.lo ^ 0xFFFFFFFF, a.hi ^ 0xFFFFFFFF));
}
Long_sub = function(a, b) {
if (a.hi === (a.lo >> 31) && b.hi === (b.lo >> 31)) {
return Long_fromNumber(a.lo - b.lo);
}
var a_lolo = a.lo & 0xFFFF;
var a_lohi = a.lo >>> 16;
var a_hilo = a.hi & 0xFFFF;
var a_hihi = a.hi >>> 16;
var b_lolo = b.lo & 0xFFFF;
var b_lohi = b.lo >>> 16;
var b_hilo = b.hi & 0xFFFF;
var b_hihi = b.hi >>> 16;
var lolo = (a_lolo - b_lolo) | 0;
var lohi = (a_lohi - b_lohi + (lolo >> 16)) | 0;
var hilo = (a_hilo - b_hilo + (lohi >> 16)) | 0;
var hihi = (a_hihi - b_hihi + (hilo >> 16)) | 0;
return new Long((lolo & 0xFFFF) | ((lohi & 0xFFFF) << 16), (hilo & 0xFFFF) | ((hihi & 0xFFFF) << 16));
}
Long_compare = function(a, b) {
var r = a.hi - b.hi;
if (r !== 0) {
return r;
}
r = (a.lo >>> 1) - (b.lo >>> 1);
if (r !== 0) {
return r;
}
return (a.lo & 1) - (b.lo & 1);
}
Long_ucompare = function(a, b) {
var r = $rt_ucmp(a.hi, b.hi);
if (r !== 0) {
return r;
}
r = (a.lo >>> 1) - (b.lo >>> 1);
if (r !== 0) {
return r;
}
return (a.lo & 1) - (b.lo & 1);
}
Long_mul = function(a, b) {
var positive = Long_isNegative(a) === Long_isNegative(b);
if (Long_isNegative(a)) {
a = Long_neg(a);
}
if (Long_isNegative(b)) {
b = Long_neg(b);
}
var a_lolo = a.lo & 0xFFFF;
var a_lohi = a.lo >>> 16;
var a_hilo = a.hi & 0xFFFF;
var a_hihi = a.hi >>> 16;
var b_lolo = b.lo & 0xFFFF;
var b_lohi = b.lo >>> 16;
var b_hilo = b.hi & 0xFFFF;
var b_hihi = b.hi >>> 16;
var lolo = 0;
var lohi = 0;
var hilo = 0;
var hihi = 0;
lolo = (a_lolo * b_lolo) | 0;
lohi = lolo >>> 16;
lohi = ((lohi & 0xFFFF) + a_lohi * b_lolo) | 0;
hilo = (hilo + (lohi >>> 16)) | 0;
lohi = ((lohi & 0xFFFF) + a_lolo * b_lohi) | 0;
hilo = (hilo + (lohi >>> 16)) | 0;
hihi = hilo >>> 16;
hilo = ((hilo & 0xFFFF) + a_hilo * b_lolo) | 0;
hihi = (hihi + (hilo >>> 16)) | 0;
hilo = ((hilo & 0xFFFF) + a_lohi * b_lohi) | 0;
hihi = (hihi + (hilo >>> 16)) | 0;
hilo = ((hilo & 0xFFFF) + a_lolo * b_hilo) | 0;
hihi = (hihi + (hilo >>> 16)) | 0;
hihi = (hihi + a_hihi * b_lolo + a_hilo * b_lohi + a_lohi * b_hilo + a_lolo * b_hihi) | 0;
var result = new Long((lolo & 0xFFFF) | (lohi << 16), (hilo & 0xFFFF) | (hihi << 16));
return positive ? result : Long_neg(result);
}
Long_div = function(a, b) {
if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
}
return Long_divRem(a, b)[0];
}
Long_udiv = function(a, b) {
if (a.hi >= 0 && a.hi < Long_MAX_NORMAL && b.hi >= 0 && b.hi < Long_MAX_NORMAL) {
return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
}
return Long_udivRem(a, b)[0];
}
Long_rem = function(a, b) {
if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
return Long_fromNumber(Long_toNumber(a) % Long_toNumber(b));
}
return Long_divRem(a, b)[1];
}
Long_urem = function(a, b) {
if (a.hi >= 0 && a.hi < Long_MAX_NORMAL && b.hi >= 0 && b.hi < Long_MAX_NORMAL) {
return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
}
return Long_udivRem(a, b)[1];
}
Long_divRem = function(a, b) {
if (b.lo === 0 && b.hi === 0) {
throw new Error("Division by zero");
}
var positive = Long_isNegative(a) === Long_isNegative(b);
if (Long_isNegative(a)) {
a = Long_neg(a);
}
if (Long_isNegative(b)) {
b = Long_neg(b);
}
a = new LongInt(a.lo, a.hi, 0);
b = new LongInt(b.lo, b.hi, 0);
var q = LongInt_div(a, b);
a = new Long(a.lo, a.hi);
q = new Long(q.lo, q.hi);
return positive ? [q, a] : [Long_neg(q), Long_neg(a)];
};
Long_udivRem = function(a, b) {
if (b.lo === 0 && b.hi === 0) {
throw new Error("Division by zero");
}
a = new LongInt(a.lo, a.hi, 0);
b = new LongInt(b.lo, b.hi, 0);
var q = LongInt_div(a, b);
a = new Long(a.lo, a.hi);
q = new Long(q.lo, q.hi);
return [q, a];
};
Long_shiftLeft16 = function(a) {
return new Long(a.lo << 16, (a.lo >>> 16) | (a.hi << 16));
};
Long_shiftRight16 = function(a) {
return new Long((a.lo >>> 16) | (a.hi << 16), a.hi >>> 16);
};
Long_and = function(a, b) {
return new Long(a.lo & b.lo, a.hi & b.hi);
}
Long_or = function(a, b) {
return new Long(a.lo | b.lo, a.hi | b.hi);
}
Long_xor = function(a, b) {
return new Long(a.lo ^ b.lo, a.hi ^ b.hi);
}
Long_shl = function(a, b) {
b &= 63;
if (b === 0) {
return a;
} else if (b < 32) {
return new Long(a.lo << b, (a.lo >>> (32 - b)) | (a.hi << b));
} else if (b === 32) {
return new Long(0, a.lo);
} else {
return new Long(0, a.lo << (b - 32));
}
}
Long_shr = function(a, b) {
b &= 63;
if (b === 0) {
return a;
} else if (b < 32) {
return new Long((a.lo >>> b) | (a.hi << (32 - b)), a.hi >> b);
} else if (b === 32) {
return new Long(a.hi, a.hi >> 31);
} else {
return new Long((a.hi >> (b - 32)), a.hi >> 31);
}
}
Long_shru = function(a, b) {
b &= 63;
if (b === 0) {
return a;
} else if (b < 32) {
return new Long((a.lo >>> b) | (a.hi << (32 - b)), a.hi >>> b);
} else if (b === 32) {
return new Long(a.hi, 0);
} else {
return new Long((a.hi >>> (b - 32)), 0);
}
}
Long_not = function(a) {
return new Long(~a.hi, ~a.lo);
}
// Represents a mutable 80-bit unsigned integer
LongInt = function(lo, hi, sup) {
this.lo = lo;
this.hi = hi;
this.sup = sup;
};
LongInt_mul = function(a, b) {
var a_lolo = ((a.lo & 0xFFFF) * b) | 0;
var a_lohi = ((a.lo >>> 16) * b) | 0;
var a_hilo = ((a.hi & 0xFFFF) * b) | 0;
var a_hihi = ((a.hi >>> 16) * b) | 0;
var sup = (a.sup * b) | 0;
a_lohi = (a_lohi + (a_lolo >>> 16)) | 0;
a_hilo = (a_hilo + (a_lohi >>> 16)) | 0;
a_hihi = (a_hihi + (a_hilo >>> 16)) | 0;
sup = (sup + (a_hihi >>> 16)) | 0;
a.lo = (a_lolo & 0xFFFF) | (a_lohi << 16);
a.hi = (a_hilo & 0xFFFF) | (a_hihi << 16);
a.sup = sup & 0xFFFF;
};
LongInt_sub = function(a, b) {
var a_lolo = a.lo & 0xFFFF;
var a_lohi = a.lo >>> 16;
var a_hilo = a.hi & 0xFFFF;
var a_hihi = a.hi >>> 16;
var b_lolo = b.lo & 0xFFFF;
var b_lohi = b.lo >>> 16;
var b_hilo = b.hi & 0xFFFF;
var b_hihi = b.hi >>> 16;
a_lolo = (a_lolo - b_lolo) | 0;
a_lohi = (a_lohi - b_lohi + (a_lolo >> 16)) | 0;
a_hilo = (a_hilo - b_hilo + (a_lohi >> 16)) | 0;
a_hihi = (a_hihi - b_hihi + (a_hilo >> 16)) | 0;
var sup = (a.sup - b.sup + (a_hihi >> 16)) | 0;
a.lo = (a_lolo & 0xFFFF) | (a_lohi << 16);
a.hi = (a_hilo & 0xFFFF) | (a_hihi << 16);
a.sup = sup;
};
LongInt_add = function(a, b) {
var a_lolo = a.lo & 0xFFFF;
var a_lohi = a.lo >>> 16;
var a_hilo = a.hi & 0xFFFF;
var a_hihi = a.hi >>> 16;
var b_lolo = b.lo & 0xFFFF;
var b_lohi = b.lo >>> 16;
var b_hilo = b.hi & 0xFFFF;
var b_hihi = b.hi >>> 16;
a_lolo = (a_lolo + b_lolo) | 0;
a_lohi = (a_lohi + b_lohi + (a_lolo >> 16)) | 0;
a_hilo = (a_hilo + b_hilo + (a_lohi >> 16)) | 0;
a_hihi = (a_hihi + b_hihi + (a_hilo >> 16)) | 0;
var sup = (a.sup + b.sup + (a_hihi >> 16)) | 0;
a.lo = (a_lolo & 0xFFFF) | (a_lohi << 16);
a.hi = (a_hilo & 0xFFFF) | (a_hihi << 16);
a.sup = sup;
};
LongInt_inc = function(a) {
a.lo = (a.lo + 1) | 0;
if (a.lo === 0) {
a.hi = (a.hi + 1) | 0;
if (a.hi === 0) {
a.sup = (a.sup + 1) & 0xFFFF;
}
}
};
LongInt_dec = function(a) {
a.lo = (a.lo - 1) | 0;
if (a.lo === -1) {
a.hi = (a.hi - 1) | 0;
if (a.hi === -1) {
a.sup = (a.sup - 1) & 0xFFFF;
}
}
};
LongInt_ucompare = function(a, b) {
var r = (a.sup - b.sup);
if (r !== 0) {
return r;
}
r = (a.hi >>> 1) - (b.hi >>> 1);
if (r !== 0) {
return r;
}
r = (a.hi & 1) - (b.hi & 1);
if (r !== 0) {
return r;
}
r = (a.lo >>> 1) - (b.lo >>> 1);
if (r !== 0) {
return r;
}
return (a.lo & 1) - (b.lo & 1);
};
LongInt_numOfLeadingZeroBits = function(a) {
var n = 0;
var d = 16;
while (d > 0) {
if ((a >>> d) !== 0) {
a >>>= d;
n = (n + d) | 0;
}
d = (d / 2) | 0;
}
return 31 - n;
};
LongInt_shl = function(a, b) {
if (b === 0) {
return;
}
if (b < 32) {
a.sup = ((a.hi >>> (32 - b)) | (a.sup << b)) & 0xFFFF;
a.hi = (a.lo >>> (32 - b)) | (a.hi << b);
a.lo <<= b;
} else if (b === 32) {
a.sup = a.hi & 0xFFFF;
a.hi = a.lo;
a.lo = 0;
} else if (b < 64) {
a.sup = ((a.lo >>> (64 - b)) | (a.hi << (b - 32))) & 0xFFFF;
a.hi = a.lo << b;
a.lo = 0;
} else if (b === 64) {
a.sup = a.lo & 0xFFFF;
a.hi = 0;
a.lo = 0;
} else {
a.sup = (a.lo << (b - 64)) & 0xFFFF;
a.hi = 0;
a.lo = 0;
}
};
LongInt_shr = function(a, b) {
if (b === 0) {
return;
}
if (b === 32) {
a.lo = a.hi;
a.hi = a.sup;
a.sup = 0;
} else if (b < 32) {
a.lo = (a.lo >>> b) | (a.hi << (32 - b));
a.hi = (a.hi >>> b) | (a.sup << (32 - b));
a.sup >>>= b;
} else if (b === 64) {
a.lo = a.sup;
a.hi = 0;
a.sup = 0;
} else if (b < 64) {
a.lo = (a.hi >>> (b - 32)) | (a.sup << (64 - b));
a.hi = a.sup >>> (b - 32);
a.sup = 0;
} else {
a.lo = a.sup >>> (b - 64);
a.hi = 0;
a.sup = 0;
}
};
LongInt_copy = function(a) {
return new LongInt(a.lo, a.hi, a.sup);
};
LongInt_div = function(a, b) {
// Normalize divisor
var bits = b.hi !== 0 ? LongInt_numOfLeadingZeroBits(b.hi) : LongInt_numOfLeadingZeroBits(b.lo) + 32;
var sz = 1 + ((bits / 16) | 0);
var dividentBits = bits % 16;
LongInt_shl(b, bits);
LongInt_shl(a, dividentBits);
var q = new LongInt(0, 0, 0);
while (sz-- > 0) {
LongInt_shl(q, 16);
// Calculate approximate q
var digitA = (a.hi >>> 16) + (0x10000 * a.sup);
var digitB = b.hi >>> 16;
var digit = (digitA / digitB) | 0;
var t = LongInt_copy(b);
LongInt_mul(t, digit);
// Adjust q either down or up
if (LongInt_ucompare(t, a) >= 0) {
while (LongInt_ucompare(t, a) > 0) {
LongInt_sub(t, b);
--digit;
}
} else {
while (true) {
var nextT = LongInt_copy(t);
LongInt_add(nextT, b);
if (LongInt_ucompare(nextT, a) > 0) {
break;
}
t = nextT;
++digit;
}
}
LongInt_sub(a, t);
q.lo |= digit;
LongInt_shl(a, 16);
}
LongInt_shr(a, bits + 16);
return q;
};
} else {
Long_eq = function(a, b) {
return a === b;
}
Long_ne = function(a, b) {
return a !== b;
}
Long_gt = function(a, b) {
return a > b;
}
Long_ge = function(a, b) {
return a >= b;
}
Long_lt = function(a, b) {
return a < b;
}
Long_le = function(a, b) {
return a <= b;
}
Long_add = function(a, b) {
return BigInt.asIntN(64, a + b);
}
Long_inc = function(a) {
return BigInt.asIntN(64, a + 1);
}
Long_dec = function(a) {
return BigInt.asIntN(64, a - 1);
}
Long_neg = function(a) {
return BigInt.asIntN(64, -a);
}
Long_sub = function(a, b) {
return BigInt.asIntN(64, a - b);
}
Long_compare = function(a, b) {
return a < b ? -1 : a > b ? 1 : 0;
}
Long_ucompare = function(a, b) {
a = BigInt.asUintN(64, a);
b = BigInt.asUintN(64, b);
return a < b ? -1 : a > b ? 1 : 0;
}
Long_mul = function(a, b) {
return BigInt.asIntN(64, a * b);
}
Long_div = function(a, b) {
return BigInt.asIntN(64, a / b);
}
Long_udiv = function(a, b) {
return BigInt.asIntN(64, BigInt.asUintN(64, a) / BigInt.asUintN(64, b));
}
Long_rem = function(a, b) {
return BigInt.asIntN(64, a % b);
}
Long_urem = function(a, b) {
return BigInt.asIntN(64, BigInt.asUintN(64, a) % BigInt.asUintN(64, b));
}
Long_and = function(a, b) {
return BigInt.asIntN(64, a & b);
}
Long_or = function(a, b) {
return BigInt.asIntN(64, a | b);
}
Long_xor = function(a, b) {
return BigInt.asIntN(64, a ^ b);
}
Long_shl = function(a, b) {
return BigInt.asIntN(64, a << BigInt(b & 63));
}
Long_shr = function(a, b) {
return BigInt.asIntN(64, a >> BigInt(b & 63));
}
Long_shru = function(a, b) {
return BigInt.asIntN(64, BigInt.asUintN(64, a) >> BigInt(b & 63));
}
Long_not = function(a) {
return BigInt.asIntN(64, ~a);
}
}
@@ -0,0 +1,75 @@
<!DOCTYPE html>
<html style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="Eaglercraft Alpha 1.0.6_03 WASM-GC" />
<meta name="keywords" content="eaglercraft, minecraft, Alpha 1.0.6_03, lax1dude, mark101, voidexp, alpha, socket" />
<title>Alpha 1.0.6_03 WASM</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Eaglercraft Alpha 1.0.6_03 WASM-GC" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<script type="text/javascript">
"use strict";
var relayId = Math.floor(Math.random() * 3);
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = {
container: "game_frame",
worldsDB: "worlds"
};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.assetsURI = ${assets_epk};
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() { document.body.removeChild(document.getElementById("launch_countdown_screen")); document.body.style.backgroundColor = "black"; main(); }, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==" />
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:white;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>This file is from <span style="color:#AA0000;">${date}</span></h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
<p style="margin-top:30px;"><button id="skipCountdown" autofocus>Skip Countdown</button></p></div>
</div>
</div>
</body>
</html>
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+160
View File
@@ -0,0 +1,160 @@
(function(){'use strict';const da=["DEBUG","INFO","WARN","ERROR"];var ea="main",ka=null;function la(a,b,f){if(!(1>a)){var g="EagRuntimeJS: ["+(new Date).toLocaleTimeString()+"]["+ea+"/"+(da[a]||"UNKNOWN")+"] ";a:{if(0<f.length){for(var r=[],u=0;u<f.length;++u){var D=b.indexOf("{}");if(-1!=D)r.push(b.substring(0,D)),r.push(f[u]),b=b.substring(D+2);else break}if(0<r.length){r.push(b);f=r.join("");break a}}f=b}b=g+f;3<=a?console.error(b):console.log(b);ka&&ka(b,3<=a)}}function c(a,...b){la(1,a,b)}
function k(a,...b){la(3,a,b)}function oa(a,b){if(b){if(b.message?la(3,'{}: {} - "{}"',[a,b.name,b.message]):la(3,"{}: {}",[a,b.name]),"string"===typeof b.stack)for(b=qa(b.stack),a=0;a<b.length;++a)la(3," at "+b[a],[])}else la(3,"{}: <null>",[a])}function ra(a){return function(){k("Unsupported function called: {}.{}",a);return 0}}function y(a,b){a[b]=ra(b)}function sa(a){return new Promise(function(b){setTimeout(b,a)})}
class ua{constructor(){this.i=this.g=null;this.m=0}A(){return this.m}push(a){this.i&&(this.i._next=a);this.i=a;this.g||(this.g=a);++this.m}s(){if(this.g){const a=this.g;(this.g=a._next||null)?a._next=null:this.i=null;--this.m;return a}return null}};var va={},A={},wa={},xa={},ya={},F={},za={},H={},Ca={},Da=null,Ea=null,Fa=null,Ia=null,Ja=null,I=null,Ka=null,M=null,R=null,La=null,Ma=!1,Pa=0,S=null,Qa=!1,Ra=!1;const Sa=[];var Ta=null,Ua="_eaglercraftX",Va=!1,Wa=!1,Xa=!1,Ya=!1,Za=!0,tb=!0,ub=!1;
function vb(){"string"===typeof I.localStorageNamespace&&(Ua=I.localStorageNamespace);"boolean"===typeof I.openDebugConsoleOnLaunch&&(Va=I.openDebugConsoleOnLaunch);"boolean"===typeof I.fixDebugConsoleUnloadListener&&(Wa=I.fixDebugConsoleUnloadListener);"boolean"===typeof I.forceWebGL1&&(Xa=I.forceWebGL1);"boolean"===typeof I.forceWebGL2&&(Ya=I.forceWebGL2);"boolean"===typeof I.allowExperimentalWebGL1&&(Za=I.allowExperimentalWebGL1);"boolean"===typeof I.useWebGLExt&&(tb=I.useWebGLExt);"boolean"===
typeof I.useDelayOnSwap&&(ub=I.useDelayOnSwap)}
async function wb(){function a(){try{r=new AudioContext}catch(D){oa("Could not initialize audio context",D)}}vb();ka=xb;"yes"!==window.__isEaglerX188UnloadListenerSet&&(window.onbeforeunload=function(){window.__curEaglerX188UnloadListenerCB&&window.__curEaglerX188UnloadListenerCB();return!1},window.__isEaglerX188UnloadListenerSet="yes");c("Initializing EagRuntime JS context...");await yb();zb();Ka.classList.add("_eaglercraftX_root_element");Ka.style.overflow="hidden";for(var b=null,f;f=Ka.lastChild;)b||=
f,Ka.removeChild(f);M=document.createElement("div");M.classList.add("_eaglercraftX_wrapper_element");M.style.position="relative";M.style.width="100%";M.style.height="100%";M.style.overflow="hidden";M.style.backgroundColor="black";Ka.appendChild(M);b&&(b.style.position="absolute",b.style.top="0px",b.style.left="0px",b.style.right="0px",b.style.bottom="0px",b.style.zIndex="2",b.classList.add("_eaglercraftX_early_splash_element"),M.appendChild(b));await sa(10);f=window.devicePixelRatio;b=f*M.clientWidth|
0;f=f*M.clientHeight|0;c("Initializing audio context");if("function"===typeof document.exitPointerLock){var g=navigator.userAgent;null!==g?(g=g.toLowerCase(),Qa=-1!==g.indexOf("mobi")||-1!==g.indexOf("tablet")):Qa=!1}else Qa=!0;var r=null;!Qa&&navigator.userActivation&&navigator.userActivation.hasBeenActive?a():(g=document.createElement("div"),g.classList.add("_eaglercraftX_press_any_key_image"),g.style.position="absolute",g.style.top="0px",g.style.left="0px",g.style.right="0px",g.style.bottom="0px",
g.style.width="100%",g.style.height="100%",g.style.zIndex="3",g.style.touchAction="pan-x pan-y",g.style.background='center / contain no-repeat url("'+Fa+'"), left / 1000000% 100% no-repeat url("'+Fa+'") white',g.style.setProperty("image-rendering","pixelated"),M.appendChild(g),await new Promise(function(D,J){function G(){if(!N){N=!0;Qa?M.removeChild(O):(window.removeEventListener("keydown",G),M.removeEventListener("mousedown",G),M.removeEventListener("touchstart",G));try{a()}catch(B){J(B);return}D()}}
var N=!1;if(Qa){var O=document.createElement("div");O.classList.add("_eaglercraftX_mobile_press_any_key");O.setAttribute("style","position:absolute;background-color:white;font-family:sans-serif;top:10%;left:10%;right:10%;bottom:10%;border:5px double black;padding:calc(5px + 7vh) 15px;text-align:center;font-size:20px;user-select:none;z-index:10;");O.innerHTML='<h3 style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Mobile Browser Detected</h3><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Warning: EaglercraftX WASM-GC requires a lot of memory and may not be stable on most mobile devices!</p><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 2px;"><button style="font: 24px sans-serif;font-weight:bold;" class="_eaglercraftX_mobile_launch_client">Launch EaglercraftX</button></p><p style="margin-block-start:0px;margin-block-end:0px;margin:25px 5px;">(Tablets and phones with large screens work best)</p>';
O.querySelector("._eaglercraftX_mobile_launch_client").addEventListener("click",G);M.appendChild(O)}else window.addEventListener("keydown",G),M.addEventListener("mousedown",G),M.addEventListener("touchstart",G)}),M.removeChild(g));r?Ab(r):Bb();c("Creating main canvas");R=document.createElement("canvas");R.classList.add("_eaglercraftX_canvas_element");R.style.width="100%";R.style.height="100%";R.style.zIndex="1";R.style.touchAction="pan-x pan-y";R.style.setProperty("-webkit-touch-callout","none");
R.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");R.style.setProperty("image-rendering","pixelated");R.width=b;R.height=f;M.appendChild(R);await Cb();c("Creating WebGL context");M.addEventListener("webglcontextcreationerror",function(D){k("[WebGL Error]: {}",D.statusMessage)});b={antialias:!1,depth:!1,powerPreference:"high-performance",desynchronized:!0,preserveDrawingBuffer:!1,premultipliedAlpha:!1,alpha:!1};g=!1;if(Ya){c("Note: Forcing WebGL 2.0 context");f=300;var u=R.getContext("webgl2",
b);if(!u)return Db("WebGL 2.0 is not supported on this device!"),!1}else if(Xa){if(c("Note: Forcing WebGL 1.0 context"),f=200,u=R.getContext("webgl",b),!u)if(Za){if(g=!0,u=R.getContext("experimental-webgl",b),!u)return Db("WebGL is not supported on this device!"),!1}else return Db("WebGL is not supported on this device!"),!1}else if(f=300,u=R.getContext("webgl2",b),!u&&(f=200,u=R.getContext("webgl",b),!u))if(Za){if(g=!0,u=R.getContext("experimental-webgl",b),!u)return Db("WebGL is not supported on this device!"),
!1}else return Db("WebGL is not supported on this device!"),!1;g&&alert('WARNING: Detected "experimental" WebGL 1.0 support, certain graphics API features may be missing, and therefore EaglercraftX may malfunction and crash!');Pa=f;La=u;Ma=g;Eb(u,f);c("OpenGL Version: {}",H.glGetString(7938));c("OpenGL Renderer: {}",H.glGetString(7937));b=H.dumpActiveExtensions();if(0===b.length)c("Unlocked the following OpenGL ES extensions: (NONE)");else for(b.sort(),c("Unlocked the following OpenGL ES extensions:"),
f=0;f<b.length;++f)c(" - {}",b[f]);H.glClearColor(0,0,0,1);H.glClear(16384);await sa(20);c("EagRuntime JS context initialization complete");return!0}
async function Fb(){vb();ka=function(a,b){postMessage({ch:"~!LOGGER",txt:a,err:b})};c("Initializing EagRuntime worker JS context...");await yb();y(A,"setClipboard");y(A,"getClipboard");y(A,"displayFileChooser");y(A,"fileChooserHasResult");y(A,"getFileChooserResult");y(A,"clearFileChooserResult");y(A,"downloadFileWithNameU8");y(A,"downloadFileWithNameA");y(A,"downloadScreenshot");y(A,"showDebugConsole");y(A,"addLogMessage");y(A,"isShowingDebugConsole");y(A,"getFaviconURL");Bb();y(F,"keyboardLayoutSupported");
y(F,"iterateKeyboardLayout");y(F,"updateCanvasSize");y(F,"updatePlatformAndSleep");y(F,"isVSyncSupported");y(F,"mouseSetGrabbed");y(F,"isMouseGrabSupported");y(F,"isMouseGrabbed");y(F,"isPointerLocked");y(F,"supportsFullscreen");y(F,"toggleFullscreen");y(F,"isFullscreen");y(F,"touchSetOpenKeyboardZone");y(F,"touchCloseDeviceKeyboard");y(F,"touchIsDeviceKeyboardOpenMAYBE");y(F,"gamepadSupported");y(F,"isVisualViewport");y(H,"getCapBits");y(H,"glEnable");y(H,"glDisable");y(H,"glClearColor");y(H,"glClearDepth");
y(H,"glClear");y(H,"glDepthFunc");y(H,"glDepthMask");y(H,"glCullFace");y(H,"glViewport");y(H,"glBlendFunc");y(H,"glBlendFuncSeparate");y(H,"glBlendEquation");y(H,"glBlendColor");y(H,"glColorMask");y(H,"glDrawBuffers");y(H,"glReadBuffer");y(H,"glReadPixels");y(H,"glPolygonOffset");y(H,"glLineWidth");y(H,"glGenBuffers");y(H,"glGenTextures");y(H,"glCreateProgram");y(H,"glCreateShader");y(H,"glCreateFramebuffer");y(H,"glCreateRenderbuffer");y(H,"glGenQueries");y(H,"glDeleteBuffers");y(H,"glDeleteTextures");
y(H,"glDeleteProgram");y(H,"glDeleteShader");y(H,"glDeleteFramebuffer");y(H,"glDeleteRenderbuffer");y(H,"glDeleteQueries");y(H,"glBindBuffer");y(H,"glBufferData");y(H,"glBufferSubData");y(H,"glEnableVertexAttribArray");y(H,"glDisableVertexAttribArray");y(H,"glVertexAttribPointer");y(H,"glActiveTexture");y(H,"glBindTexture");y(H,"glTexParameterf");y(H,"glTexParameteri");y(H,"glTexImage3D");y(H,"glTexImage2D");y(H,"glTexSubImage2D");y(H,"glCopyTexSubImage2D");y(H,"glTexStorage2D");y(H,"glPixelStorei");
y(H,"glGenerateMipmap");y(H,"glShaderSource");y(H,"glCompileShader");y(H,"glGetShaderi");y(H,"glGetShaderInfoLog");y(H,"glUseProgram");y(H,"glAttachShader");y(H,"glDetachShader");y(H,"glLinkProgram");y(H,"glGetProgrami");y(H,"glGetProgramInfoLog");y(H,"glDrawArrays");y(H,"glDrawElements");y(H,"glBindAttribLocation");y(H,"glGetAttribLocation");y(H,"glGetUniformLocation");y(H,"glGetUniformBlockIndex");y(H,"glBindBufferRange");y(H,"glUniformBlockBinding");y(H,"glUniform1f");y(H,"glUniform2f");y(H,"glUniform3f");
y(H,"glUniform4f");y(H,"glUniform1i");y(H,"glUniform2i");y(H,"glUniform3i");y(H,"glUniform4i");y(H,"glUniformMatrix2fv");y(H,"glUniformMatrix3fv");y(H,"glUniformMatrix4fv");y(H,"glUniformMatrix3x2fv");y(H,"glUniformMatrix4x2fv");y(H,"glUniformMatrix4x3fv");y(H,"glBindFramebuffer");y(H,"glCheckFramebufferStatus");y(H,"glBlitFramebuffer");y(H,"glRenderbufferStorage");y(H,"glFramebufferTexture2D");y(H,"glFramebufferTextureLayer");y(H,"glBindRenderbuffer");y(H,"glFramebufferRenderbuffer");y(H,"glGetInteger");
y(H,"glGetError");y(H,"getAllExtensions");y(H,"dumpActiveExtensions");y(H,"glGetString");y(H,"glGenVertexArrays");y(H,"glDeleteVertexArrays");y(H,"glBindVertexArray");y(H,"glVertexAttribDivisor");y(H,"glDrawArraysInstanced");y(H,"glDrawElementsInstanced");y(H,"isContextLost");c("EagRuntime worker JS context initialization complete")}
function Gb(a){S=a.buffer;c("WebAssembly direct memory resized to {} MiB",.01*(S.byteLength/1024/10.24|0));new Uint8Array(S);new Int8Array(S);new Uint16Array(S);new Int16Array(S);new Uint32Array(S);new Int32Array(S);new Float32Array(S)}const Hb=new ua;function Y(a,b,f){Hb.push({eventType:a<<5|b,eventObj:f,_next:null})}let Ib=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/;
function qa(a){if(!a)return null;const b=[];for(let f of a.split("\n")){if(Da&&(a=Ib.exec(f),null!==a&&2<=a.length&&(a=parseInt(a[1],16),!isNaN(a))))try{const g=Da([a]);if(0<g.length){for(let r of g)b.push(""+r.className+"."+r.method+"("+r.file+":"+r.line+")");continue}}catch(g){}f=f.trim();f.startsWith("at ")&&(f=f.substring(3));b.push(f)}return b}
function Jb(a){const b=a?qa(a.stack):null;a="Native Browser Exception\n----------------------------------\n Line: "+(a&&"string"===typeof a.fileName?a.fileName:"unknown")+":"+(a&&"number"===typeof a.lineNumber?a.lineNumber:"unknown")+":"+(a&&"number"===typeof a.columnNumber?a.columnNumber:"unknown")+"\n Type: "+(a&&"string"===typeof a.name?a.name:"unknown")+"\n Desc: "+(a&&"string"===typeof a.message?a.message:"null")+"\n----------------------------------\n\nDeobfuscated stack trace:\n at "+
(b?b.join("\n at "):"null")+"\n\nThis exception was not handled by the WASM binary\n";"undefined"!==typeof window?Kb(a,!0):k("\n{}",a)}
function Kb(a,b){k("Game crashed!");var f="Game Crashed! I have fallen and I can't get up!\n\n"+a+"\n\n",g='eaglercraft.version = "'+Sa[0]+'"\neaglercraft.minecraft = "'+Sa[2]+'"\neaglercraft.brand = "'+Sa[1]+'"\n\n'+Lb()+"\nwindow.eaglercraftXOpts = "+JSON.stringify(I)+"\n\ncurrentTime = "+(new Date).toLocaleString()+"\n\n"+Mb("userAgent")+Mb("vendor")+Mb("language")+Mb("hardwareConcurrency")+Mb("deviceMemory")+Mb("platform")+Mb("product")+Nb()+"\n"+Ob("localStorage")+Ob("sessionStorage")+Ob("indexedDB")+
"\nrootElement.clientWidth = "+(M?M.clientWidth:"undefined")+"\nrootElement.clientHeight = "+(M?M.clientHeight:"undefined")+"\n"+Ob("innerWidth")+Ob("innerHeight")+Ob("outerWidth")+Ob("outerHeight")+Ob("devicePixelRatio")+Pb("availWidth")+Pb("availHeight")+Pb("colorDepth")+Pb("pixelDepth")+"\n"+Qb()+"\n",r=f+g;const u=[];try{"object"===typeof I&&"object"===typeof I.hooks&&"function"===typeof I.hooks.crashReportShow&&I.hooks.crashReportShow(r,function(D){u.push(D)})}catch(D){oa("Uncaught exception invoking crash report hook",
D)}if(Ra){k("");k("An additional crash report was supressed:");r=a.split(/[\r\n]+/);for(a=0;a<r.length;++a)k(" {}",r[a]);if(0<u.length)for(a=0;a<u.length;++a)if(r=u[a]){k("");k(" ----------[ CRASH HOOK ]----------");r=r.split(/[\r\n]+/);for(a=0;a<r.length;++a)k(" {}",r[a]);k(" ----------------------------------")}}else{Ra=!0;if(0<u.length){r=f+"Got the following messages from the crash report hook registered in eaglercraftXOpts:\n\n";for(a=0;a<u.length;++a)r+="----------[ CRASH HOOK ]----------\n"+
u[a]+"\n----------------------------------\n\n";r+=g}(g=M||Ka)?(b&&k("\n{}",r),b=document.createElement("img"),a=document.createElement("div"),b.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);"),b.src=Ia,a.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;white-space:pre-wrap;font: 14px monospace;padding:10px;"),
a.classList.add("_eaglercraftX_crash_element"),g.appendChild(b),g.appendChild(a),a.appendChild(document.createTextNode(r)),Ta&&Ta(),window.__curEaglerX188UnloadListenerCB=null):(alert("Root element not found, crash report was printed to console"),k("\n{}",r))}}
function Db(a){if(!Ra){Ra=!0;var b=M||Ka;k("Compatibility error: {}",a);if(b){var f=document.createElement("img"),g=document.createElement("div");f.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");f.src=Ia;g.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;font:18px sans-serif;padding:40px;");g.classList.add("_eaglercraftX_incompatible_element");
b.appendChild(f);b.appendChild(g);g.innerHTML='<h2><svg style="vertical-align:middle;margin:0px 16px 8px 8px;" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none"><path stroke="#000000" stroke-width="3" stroke-linecap="square" d="M1.5 8.5v34h45v-28m-3-3h-10v-3m-3-3h-10m15 6h-18v-3m-3-3h-10"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M12 21h0m0 4h0m4 0h0m0-4h0m-2 2h0m20-2h0m0 4h0m4 0h0m0-4h0m-2 2h0"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M20 30h0 m2 2h0 m2 2h0 m2 2h0 m2 -2h0 m2 -2h0 m2 -2h0"/></svg>+ This device is incompatible with Eaglercraft&ensp;:(</h2><div style="margin-left:40px;"><p style="font-size:1.2em;"><b style="font-size:1.1em;">Issue:</b> <span style="color:#BB0000;" id="_eaglercraftX_crashReason"></span><br /></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashUserAgent"></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashWebGL"></p><p style="margin-left:10px;font:0.9em monospace;">Current Date: '+
(new Date).toLocaleString()+'</p><p><br /><span style="font-size:1.1em;border-bottom:1px dashed #AAAAAA;padding-bottom:5px;">Things you can try:</span></p><ol><li><span style="font-weight:bold;">Just try using Eaglercraft on a different device</span>, it isn\'t a bug it\'s common sense</li><li style="margin-top:7px;">If this screen just appeared randomly, try restarting your browser or device</li><li style="margin-top:7px;">If you are not using Chrome/Edge, try installing the latest Google Chrome</li><li style="margin-top:7px;">If your browser is out of date, please update it to the latest version</li></ol></div>';
g.querySelector("#_eaglercraftX_crashReason").appendChild(document.createTextNode(a));try{var r=window.navigator.userAgent}catch(D){r="<error>"}g.querySelector("#_eaglercraftX_crashUserAgent").appendChild(document.createTextNode(r));Ta&&Ta();window.__curEaglerX188UnloadListenerCB=null;a="No GL_RENDERER string could be queried";try{const D=document.createElement("canvas");D.width=64;D.height=64;const J=D.getContext("webgl");if(J){if(J.getExtension("WEBGL_debug_renderer_info"))var u=J.getParameter(37446);
else(u=J.getParameter(WebGLRenderingContext.RENDERER))&&(u+=" [masked]");u&&(a=u)}}catch(D){}g.querySelector("#_eaglercraftX_crashWebGL").appendChild(document.createTextNode(a))}else alert("Compatibility error: "+a)}}var Rb=null;
function Lb(){if(Rb)return Rb;try{var a=La,b=Ma;if(!a){b=!1;var f=document.createElement("canvas");f.width=64;f.height=64;a=f.getContext("webgl2");a||(a=f.getContext("webgl"),a||(b=!0,a=f.getContext("experimental-webgl")))}return a?(f="",0<Pa&&(f+="webgl.version = "+a.getParameter(7938)+"\n"),f=a.getExtension("WEBGL_debug_renderer_info")?f+("webgl.renderer = "+a.getParameter(37446)+"\nwebgl.vendor = "+a.getParameter(37445)+"\n"):f+("webgl.renderer = "+a.getParameter(7937)+" [masked]\nwebgl.vendor = "+
a.getParameter(7936)+" [masked]\n"),0<Pa?(f+="\nwebgl.version.id = "+Pa+"\nwebgl.experimental = "+b,200===Pa?f+="\nwebgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+!!a.getExtension("OES_texture_float")+
"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear"):300<=Pa&&(f+="\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")),f+="\nwebgl.ext.EXT_texture_filter_anisotropic = "+
!!a.getExtension("EXT_texture_filter_anisotropic")+"\n"):f+="webgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+
!!a.getExtension("OES_texture_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")+"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear")+"\nwebgl.ext.EXT_texture_filter_anisotropic = "+!!a.getExtension("EXT_texture_filter_anisotropic")+"\n",Rb=f):Rb="Failed to query GPU info!\n"}catch(g){return Rb="ERROR: could not query webgl info - "+
g+"\n"}}function Mb(a){try{var b=window.navigator[a]}catch(f){b="<error>"}return"window.navigator."+a+" = "+b+"\n"}function Nb(){try{var a=[];if("object"===typeof navigator.plugins){var b=navigator.plugins.length;if(0<b)for(var f=0;f<b;++f){var g=navigator.plugins[f];a.push({name:g.name,filename:g.filename,desc:g.description})}}var r=JSON.stringify(a)}catch(u){r="<error>"}return"window.navigator.plugins = "+r+"\n"}
function Pb(a){try{var b=window.screen[a]}catch(f){b="<error>"}return"window.screen."+a+" = "+b+"\n"}function Qb(){try{var a=window.location.href}catch(b){a="<error>"}return"window.location.href = "+a+"\n"}function Ob(a){try{var b=window[a]}catch(f){b="<error>"}return"window."+a+" = "+b+"\n"};function Sb(a,b,f){const g=document.createElement("a");g.style.position="absolute";g.style.left="0px";g.style.top="0px";g.style.zIndex="-100";g.style.color="transparent";g.innerText="Download File";g.href=b;g.target="_blank";g.download=a;M.appendChild(g);setTimeout(function(){g.click();setTimeout(function(){M.removeChild(g)},50);f&&setTimeout(f,6E4)},50)}var Tb=0,Ub=null,Vb=null,Z=null,Wb=null;
function xb(a,b){if(Z)Wb&&Wb(a,b);else for(a={msg:a,err:b,next:null},Vb&&(Vb.next=a),Ub||=a,Vb=a,++Tb;256<Tb;)--Tb,Ub&&=Ub.next}
function zb(){function a(){D=!1;J=null;null!==N?(M.removeChild(N),G=N=null):null!==G&&(M.removeChild(G),G=null)}function b(d){try{window.localStorage&&window.localStorage.setItem(ha,d?"true":"false")}catch(q){}}function f(){try{if(window.localStorage){const d=window.localStorage.getItem(ha);return d&&"true"===d.toLowerCase()}return!1}catch(d){return!1}}function g(){if(Z)Z.focus();else{var d=Math.round(1E3*window.devicePixelRatio);const q=Math.round(400*window.devicePixelRatio);if(Z=window.open("",
"_blank","top="+Math.round((window.screen.height-q)/2)+",left="+Math.round((window.screen.width-d)/2)+",width="+d+",height="+q+",menubar=0,status=0,titlebar=0,toolbar=0")){Z.focus();O=Z.document;O.write('<!DOCTYPE html><html><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Debug Console</title><link type="image/png" rel="shortcut icon" href="'+Ja+'" /></head><body style="overflow-x:hidden;overflow-y:scroll;padding:0px;"><p id="loggerMessageContainer" style="overflow-wrap:break-word;white-space:pre-wrap;font:14px monospace;padding:10px;"></p></body></html>');
O.close();B=O.body;X=O.getElementById("loggerMessageContainer");for(d=Ub;d;)r(d.msg+"\n",d.err?"#DD0000":"#000000"),d=d.next;Vb=Ub=null;Tb=0;u();d=()=>{null!=Z&&(Z=null,b(!1))};Z.addEventListener("beforeunload",d);Z.addEventListener("unload",d)}else k("Logger popup was blocked!"),window.alert("ERROR: Popup blocked!\n\nPlease make sure you have popups enabled for this site!")}}function r(d,q){var v=O.createElement("span");v.innerText=d;v.style.color=q;X.appendChild(v);for(d=X.children;2048<d.length;)d[0].remove()}
function u(){setTimeout(()=>{Z.scrollTo(0,B.scrollHeight||B.clientHeight)},1)}A.setClipboard=function(d){try{if(window.navigator.clipboard)return window.navigator.clipboard.writeText(d),!0}catch(q){k("Failed to set clipboard data!")}return!1};A.getClipboard=new WebAssembly.Suspending(async function(){var d=null;try{window.navigator.clipboard&&(d=await navigator.clipboard.readText())}catch(q){k("Failed to read clipboard data!")}return d});var D=!1,J=null,G=null,N=null;A.displayFileChooser=function(d,
q){a();if(Qa){const n=N=document.createElement("div");n.classList.add("_eaglercraftX_mobile_file_chooser_popup");n.style.position="absolute";n.style.backgroundColor="white";n.style.fontFamily="sans-serif";n.style.top="10%";n.style.left="10%";n.style.right="10%";n.style.border="5px double black";n.style.padding="15px";n.style.textAlign="left";n.style.fontSize="20px";n.style.userSelect="none";n.style.zIndex="150";var v=document.createElement("h3");v.appendChild(document.createTextNode("File Chooser"));
n.appendChild(v);v=document.createElement("p");const w=G=document.createElement("input");w.type="file";w.accept=null===d?"."+q:d;w.multiple=!1;v.appendChild(w);n.appendChild(v);d=document.createElement("p");q=document.createElement("button");q.classList.add("_eaglercraftX_mobile_file_chooser_btn_cancel");q.style.fontSize="1.0em";q.addEventListener("click",function(){N===n&&(M.removeChild(n),G=N=null)});q.appendChild(document.createTextNode("Cancel"));d.appendChild(q);d.appendChild(document.createTextNode(" "));
q=document.createElement("button");q.classList.add("_eaglercraftX_mobile_file_chooser_btn_done");q.style.fontSize="1.0em";q.style.fontWeight="bold";q.addEventListener("click",function(){if(N===n){if(0<w.files.length){const l=w.files[0];l.arrayBuffer().then(function(z){D=!0;J={fileName:l.name,fileData:z}}).catch(function(){D=!0;J=null})}else D=!0,J=null;M.removeChild(n);G=N=null}});q.appendChild(document.createTextNode("Done"));d.appendChild(q);n.appendChild(d);M.appendChild(n)}else{const n=G=document.createElement("input");
n.type="file";n.style.position="absolute";n.style.left="0px";n.style.top="0px";n.style.zIndex="-100";n.accept=null===d?"."+q:d;n.multiple=!1;n.addEventListener("change",function(){if(G===n){if(0<n.files.length){const w=n.files[0];w.arrayBuffer().then(function(l){D=!0;J={fileName:w.name,fileData:l}}).catch(function(){D=!0;J=null})}else D=!0,J=null;M.removeChild(n);G=null}});M.appendChild(n);window.setTimeout(function(){n.click()},50)}};A.fileChooserHasResult=function(){return D};A.getFileChooserResult=
function(){D=!1;const d=J;J=null;return d};A.clearFileChooserResult=a;A.downloadFileWithNameU8=function(d,q){const v=URL.createObjectURL(new Blob([q],{type:"application/octet-stream"}));Sb(d,v,function(){URL.revokeObjectURL(v)})};A.downloadFileWithNameA=function(d,q){const v=URL.createObjectURL(new Blob([q],{type:"application/octet-stream"}));Sb(d,v,function(){URL.revokeObjectURL(v)})};A.downloadScreenshot=function(d,q){Sb(d,q.toDataURL("image/png"),null)};var O=null,B=null,X=null;const ha=Ua+"showDebugConsole",
p=Wa?"beforeunload":"unload";try{window.addEventListener(p,()=>{if(Z){var d=Z;X=B=O=Z=null;d.close()}})}catch(d){}(Va||f())&&g();Wb=function(d,q){var v=Z.innerHeight+Z.pageYOffset>=B.offsetHeight;r(d+"\n",q?"#DD0000":"#000000");v&&u()};A.showDebugConsole=function(){b(!0);g()};A.addLogMessage=xb;A.isShowingDebugConsole=function(){return!!Z};A.getFaviconURL=function(){return Ja}};wa.getEPKFileData=function(a){const b=Ea[a];Ea[a]=null;return b};wa.getEPKFileCount=function(){return Ea.length};
if("undefined"!==typeof window){wa.loadImageFile0=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=URL.createObjectURL(new Blob([a],{type:b}));if(g){const r=document.createElement("img");r.addEventListener("load",function(){URL.revokeObjectURL(g);f({width:r.width,height:r.height,img:r})});r.addEventListener("error",function(){URL.revokeObjectURL(g);f(null)});r.src=g}else f(null)})});var Xb=null,Yb=null;wa.loadImageFile1=function(a,b){const f=a.width,g=a.height;if(a=
a.img)Xb||=document.createElement("canvas"),Xb.width<f&&(Xb.width=f),Xb.height<g&&(Xb.height=g),Yb||(Yb=Xb.getContext("2d",{willReadFrequently:!0}),Yb.imageSmoothingEnabled=!1),Yb.clearRect(0,0,f,g),Yb.drawImage(a,0,0,f,g),b.set(Yb.getImageData(0,0,f,g).data,0)}}else y(wa,"loadImageFile0"),y(wa,"loadImageFile1");function Ab(a){xa.getContext=function(){return a};xa.registerIsEndedHandler=function(b,f){f.selfEndHandler||(f.selfEndHandler=function(){f.isEnded=!0});b.addEventListener("ended",f.selfEndHandler)};xa.releaseIsEndedHandler=function(b,f){f.selfEndHandler&&b.removeEventListener("ended",f.selfEndHandler)};xa.decodeAudioBrowser=new WebAssembly.Suspending(function(b,f){return new Promise(function(g){const r=new Uint8Array(b.length);r.set(b,0);a.decodeAudioData(r.buffer,g,function(){k("Failed to load audio: {}",
f);g(null)})})})}function Bb(){xa.getContext=function(){return null};y(xa,"registerIsEndedHandler");y(xa,"releaseIsEndedHandler");y(xa,"decodeAudioBrowser")};function Zb(a){return"string"===typeof a?a:"undefined"===typeof a?null:"string"===typeof a[0]?a[0]:null}function $b(a){return"undefined"===typeof a?null:"undefined"===typeof a.data?null:a.data}
ya.openDB=new WebAssembly.Suspending(function(a){return new Promise(function(b){if("undefined"===typeof indexedDB)b({failedInit:!0,failedLocked:!1,failedError:"IndexedDB not supported",database:null});else{try{var f=indexedDB.open(a,1)}catch(r){b({failedInit:!0,failedLocked:!1,failedError:"Exception opening database",database:null});return}var g=b;f.addEventListener("success",function(){g&&g({failedInit:!1,failedLocked:!1,failedError:null,database:f.result});g=null});f.addEventListener("blocked",
function(){g&&g({failedInit:!1,failedLocked:!0,failedError:"Database is locked",database:null});g=null});f.addEventListener("error",function(){g&&g({failedInit:!0,failedLocked:!1,failedError:"Opening database failed",database:null});g=null});f.addEventListener("upgradeneeded",function(){f.result.createObjectStore("filesystem",{keyPath:["path"]})})}})});
function ac(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readwrite").objectStore("filesystem").delete([b]);g.addEventListener("success",function(){f(!0)});g.addEventListener("error",function(){f(!1)})})}ya.eaglerDelete=new WebAssembly.Suspending(ac);
function bc(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);g.addEventListener("success",function(){f($b(g.result))});g.addEventListener("error",function(){f(null)})})}ya.eaglerRead=new WebAssembly.Suspending(bc);
function cc(a,b,f){return new Promise(function(g){const r=a.transaction("filesystem","readwrite").objectStore("filesystem").put({path:b,data:f});r.addEventListener("success",function(){g(!0)});r.addEventListener("error",function(){g(!1)})})}ya.eaglerWrite=new WebAssembly.Suspending(cc);
ya.eaglerExists=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").count([b]);g.addEventListener("success",function(){f(0<g.result)});g.addEventListener("error",function(){f(!1)})})});ya.eaglerMove=new WebAssembly.Suspending(async function(a,b,f){const g=await bc(a,b);return g&&await cc(a,f,g)?await ac(a,b):!1});
ya.eaglerCopy=new WebAssembly.Suspending(async function(a,b,f){return(b=await bc(a,b))&&await cc(a,f,b)});ya.eaglerSize=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);g.addEventListener("success",function(){const r=$b(g.result);f(r?r.byteLength:-1)});g.addEventListener("error",function(){f(-1)})})});
function dc(a){if(0===a.length)return-1;for(var b=0,f=0,g=a.length;f<g;++f)47===a.charCodeAt(f)&&++b;return b}
ya.eaglerIterate=new WebAssembly.Suspending(function(a,b,f){return new Promise(function(g){const r=[],u=a.transaction("filesystem","readonly").objectStore("filesystem").openCursor(),D=0===b.length,J=f?-1:dc(b);u.addEventListener("success",function(){const G=u.result;if(null===G||null===G.key)g({length:r.length,getRow:function(O){return r[O]}});else{var N=Zb(G.key);null!=N&&(!D&&!N.startsWith(b)||!f&&dc(N)!==J||r.push(N));G.continue()}});u.addEventListener("error",function(){g(null)})})});async function Cb(){function a(){var e=window.devicePixelRatio;.01>e&&(e=1);ha=X=0;for(var t=R;t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)X+=t.offsetLeft-t.scrollLeft,ha+=t.offsetTop-t.scrollTop,t=t.offsetParent;t=M.clientWidth*e|0;var Q=M.clientHeight*e|0,K=0,U=0,ja=t,fa=Q;if(aa){fa=window.visualViewport;var V=fa.scale;K=fa.pageLeft*e*V;U=fa.pageTop*e*V;ja=fa.width*e*V;fa=fa.height*e*V;1>ja&&(ja=1);1>fa&&(fa=1);0>K?(ja+=K,K=0):K>=t&&(K=t-1);0>U?(fa+=U,U=0):U>=Q&&(U=Q-1);K+ja>t&&(ja=t-K);U+fa>
Q&&(fa=Q-U)}V={eventTypeMask:0};L!==e&&(L=e,V.eventTypeMask|=4,V.windowDPI=e);if(C!==t||T!==Q)C=t,T=Q,V.eventTypeMask|=1,V.windowWidth=t,V.windowHeight=Q;if(ia!==K||Na!==U||Aa!==ja||Oa!==fa)ia=K,Na=U,Aa=ja,Oa=fa,V.eventTypeMask|=2,V.visualViewportX=K,V.visualViewportY=U,V.visualViewportW=ja,V.visualViewportH=fa;0!==V.eventTypeMask&&Y(0,9,V)}function b(e){const t=e.length,Q=Array(t);for(var K=0;K<t;++K){const U=e.item(K);Q[K]={pointX:U.pageX-X,pointY:U.pageY-ha,radius:.5*(U.radiusX+U.radiusY),force:U.force,
pointUID:U.identifier}}return Q}function f(e,t){return{eventType:e,keyCode:t.code||null,keyName:t.key||null,legacyCode:"number"===typeof t.which?t.which:"number"===typeof t.keyCode?t.keyCode:0,location:t.location,mods:(t.ctrlKey?1:0)|(t.shiftKey?2:0)|(t.metaKey?4:0)}}function g(){return new Promise(function(e){if(-1!==E)throw Error("Main thread is already waiting for VSync!");const t=[!1];window.requestAnimationFrame(function(){t[0]||(t[0]=!0,-1!==E&&(window.clearTimeout(E),E=-1),e())});E=window.setTimeout(function(){t[0]||
(t[0]=!0,E=-1,e())},20)})}function r(e){return new Promise(function(t){setTimeout(t,e)})}function u(e){if(0<e&&1E3>=e){const Q=1E3/e;if(0===ba)ba=performance.now()+Q;else{e=performance.now();var t=ba-e|0;if(0<t)return!ub&&ec?fc().then(function(){var K=performance.now(),U=ba-K|0;if(0<U)return r(U).then(function(){var ja=performance.now();(ba+=Q)<ja&&(ba=ja)});(ba+=Q)<K&&(ba=K)}):r(t).then(function(){var K=performance.now();(ba+=Q)<K&&(ba=K)});(ba+=Q)<e&&(ba=e)}}else ba=0;return ub?gc(0):fc()}function D(e){if(ta){pa=
!!e;var t=performance.now()|0;if(e){Ba=!0;try{R.requestPointerLock()}catch(Q){}-1!==ma&&window.clearTimeout(ma);ma=-1;3E3>t-Ga&&(ma=window.setTimeout(function(){try{R.requestPointerLock()}catch(Q){}},3100-(t-Ga)))}else if(-1!==ma&&window.clearTimeout(ma),ma=-1,!Ba)try{document.exitPointerLock()}catch(Q){}}}function J(){if(ca)if(h.matches){if(m)try{navigator.keyboard.unlock()}catch(e){}try{document.exitFullscreen()}catch(e){}}else{if(m)try{navigator.keyboard.lock()}catch(e){}try{R.requestFullscreen()}catch(e){}}}
function G(){O()?N():d?(d.blur(),d.value="",setTimeout(function(){d&&(p?p.removeChild(d):d.remove(),d=null);p&&(M.removeChild(p),p=null)},10)):(p&&(M.removeChild(p),p=null),p=document.createElement("form"),p.setAttribute("autocomplete","off"),p.classList.add("_eaglercraftX_text_input_wrapper"),p.style.position="absolute",p.style.top="0px",p.style.left="0px",p.style.right="0px",p.style.bottom="0px",p.style.zIndex="-100",p.style.margin="0px",p.style.padding="0px",p.style.border="none",p.addEventListener("submit",
function(e){e.preventDefault();e.stopPropagation();e=e.timeStamp;e&&(0!==w&&10>e-w||0!==l&&10>e-l||0!==z&&10>e-z)||(n||(c("Note: Generating return keystroke from submit event on form, this browser probably doesn't generate keydown/beforeinput/input when enter/return is pressed on the on-screen keyboard"),n=!0),Y(0,3,{eventType:0,absoluteCode:28,absoluteChar:10}))}),d=document.createElement("input"),d.type="password",d.value=" ",d.classList.add("_eaglercraftX_text_input_element"),d.setAttribute("autocomplete",
"off"),d.style.position="absolute",d.style.top="0px",d.style.left="0px",d.style.right="0px",d.style.bottom="0px",d.style.zIndex="-100",d.style.margin="0px",d.style.padding="0px",d.style.border="none",d.style.setProperty("-webkit-touch-callout","default"),d.addEventListener("beforeinput",function(e){if(d===e.target){q||(c("Note: Caught beforeinput event from on-screen keyboard, browser probably does not generate global keydown/keyup events on text fields, or does not respond to cancelling keydown"),
q=!0);var t=e.timeStamp;if(t){if(0!==w&&10>t-w)return;l=t}e.preventDefault();e.stopPropagation();switch(e.inputType){case "insertParagraph":case "insertLineBreak":Y(0,3,{eventType:0,absoluteCode:28,absoluteChar:10});break;case "deleteWordBackward":case "deleteSoftLineBackward":case "deleteHardLineBackward":case "deleteEntireSoftLine":case "deleteContentBackward":case "deleteContent":Y(0,3,{eventType:0,absoluteCode:14,absoluteChar:0});break;case "deleteWordForward":case "deleteSoftLineForward":case "deleteHardLineForward":case "deleteContentForward":Y(0,
3,{eventType:0,absoluteCode:211,absoluteChar:0});break;case "insertText":case "insertCompositionText":case "insertReplacementText":(e=e.data)&&0<e.length&&Y(0,3,{eventType:1,codepoints:e});break;case "insertFromPaste":case "insertFromPasteAsQuotation":case "insertFromDrop":case "insertFromYank":case "insertLink":(e=e.data)&&0<e.length&&Y(0,4,e);break;case "historyUndo":case "historyRedo":case "deleteByDrag":case "deleteByCut":break;default:c('Ignoring InputEvent.inputType "{}" from on-screen keyboard',
e.inputType)}}}),d.addEventListener("input",function(e){if(d===e.target){v||(c("Note: Caught legacy input events from on-screen keyboard, browser could be outdated and doesn't support beforeinput event, or does not respond to cancelling beforeinput"),v=!0);if(e=e.timeStamp){if(0!==w&&10>e-w||0!==l&&10>e-l)return;z=e}e=d.value;var t=e.length;0===t?Y(0,3,{eventType:0,absoluteCode:14,absoluteChar:0}):1===t?Y(0,3,{eventType:1,codepoints:e}):(e=e.trim(),t=e.length,0===t?Y(0,3,{eventType:0,absoluteCode:57,
absoluteChar:32}):Y(0,3,{eventType:1,codepoints:e.charAt(t-1)}));d.value=" ";d.setSelectionRange(1,1)}}),d.addEventListener("focus",function(e){d===e.target&&(d.value=" ",d.setSelectionRange(1,1))}),d.addEventListener("select",function(e){d===e.target&&(e.preventDefault(),e.stopPropagation(),d.value=" ",d.setSelectionRange(1,1))}),p.appendChild(d),M.appendChild(p),d.value=" ",d.focus(),d.select(),d.setSelectionRange(1,1))}function N(){if(d){d.blur();d.value="";const e=d,t=p;window.setTimeout(function(){null!==
t?(t.removeChild(e),t.remove()):e.remove()},10);p=d=null}else p&&(M?M.removeChild(p):p.remove(),p=null)}function O(){return!!d&&document.activeElement===d}var B=null,X=0,ha=0,p=null,d=null,q=!1,v=!1,n=!1,w=0,l=0,z=0,C=-1,T=-1,L=-1,aa=!1,ia=-1,Na=-1,Aa=-1,Oa=-1,ta=!1,pa=!1,Ba=!1,Ga=0,ma=-1,ca=!1,h=null,m=!1,x=!1,E=-1,P=!1,W=null,na=null,Ha=null,$a=null,ab=null,bb=null,cb=null,db=null,eb=null,fb=null,gb=null,hb=null,ib=null,jb=null,kb=null,lb=null,mb=null,nb=null,ob=null,pb=null,qb=null,rb=null,sb=
null;B=document.createElement("div");B.classList.add("_eaglercraftX_keyboard_open_zone");B.style.display="none";B.style.position="absolute";B.style.backgroundColor="transparent";B.style.top="0px";B.style.left="0px";B.style.width="0px";B.style.height="0px";B.style.zIndex="100";B.style.touchAction="pan-x pan-y";B.style.setProperty("-webkit-touch-callout","none");B.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");M.appendChild(B);a();M.addEventListener("contextmenu",W=function(e){e.preventDefault();
e.stopPropagation()});R.addEventListener("mousedown",na=function(e){e.preventDefault();e.stopPropagation();ta&&pa&&document.pointerLockElement!==R?D(1):Y(0,0,{eventType:0,posX:e.offsetX,posY:e.offsetY,button:e.button})});R.addEventListener("mouseup",Ha=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:1,posX:e.offsetX,posY:e.offsetY,button:e.button})});R.addEventListener("mousemove",$a=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:2,posX:e.offsetX,posY:e.offsetY,
movementX:e.movementX,movementY:e.movementY})});R.addEventListener("mouseenter",ab=function(){Y(0,7,null)});R.addEventListener("mouseleave",bb=function(){Y(0,8,null)});R.addEventListener("touchstart",cb=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:0,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)});N()});R.addEventListener("touchend",db=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:2,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});
R.addEventListener("touchmove",eb=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:1,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});R.addEventListener("touchcancel",fb=function(e){Y(0,2,{eventType:2,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});R.addEventListener("wheel",nb=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:3,posX:e.offsetX,posY:e.offsetY,wheel:e.deltaY})});window.addEventListener("blur",pb=function(){Y(0,
6,null)});window.addEventListener("focus",ob=function(){Y(0,5,null)});window.addEventListener("keydown",ib=function(e){e.preventDefault();e.stopPropagation();"F11"!==e.key||e.repeat?(Y(0,1,f(e.repeat?2:0,e)),e.timeStamp&&"Unidentified"!==e.key&&(w=e.timeStamp)):J()});window.addEventListener("keyup",jb=function(e){e.preventDefault();e.stopPropagation();Y(0,1,f(1,e))});B.addEventListener("touchstart",kb=function(e){e.preventDefault();e.stopPropagation()});B.addEventListener("touchend",lb=function(e){e.preventDefault();
e.stopPropagation();G()});B.addEventListener("touchmove",mb=function(e){e.preventDefault();e.stopPropagation()});(ta="function"===typeof document.exitPointerLock)?(document.addEventListener("pointerlockchange",qb=function(){window.setTimeout(function(){const e=document.pointerLockElement===R;e||pa&&(Ga=performance.now()|0);pa=e},60);Ba=!1}),document.addEventListener("pointerlockerror",rb=function(){Ba=!1})):k("Pointer lock is not supported on this browser");(ca="function"===typeof document.exitFullscreen)?
(h=window.matchMedia("(display-mode: fullscreen)"),(m=!(!navigator.keyboard||!navigator.keyboard.lock))&&h.addEventListener("change",sb=function(){h.matches||navigator.keyboard.unlock()})):k("Fullscreen is not supported on this browser");if("undefined"!==typeof window.visualViewport)if("body"===Ka.tagName.toLowerCase())aa=!0;else{const e=document.body;10>=Math.abs(e.clientWidth-M.clientWidth)&&10>=Math.abs(e.clientHeight-M.clientHeight)&&(aa=!0)}else aa=!1;aa&&c("Note: Detected game is embedded in body, some screens may be resized to window.visualViewport instead for a better mobile experience");
try{await g(),x=!0}catch(e){x=!1}x||k("VSync is not supported on this browser");(P="function"===typeof navigator.getGamepads)?(window.addEventListener("gamepadconnected",gb=function(){Y(0,10,{eventType:0})}),window.addEventListener("gamepaddisconnected",hb=function(e){Y(0,10,{eventType:1,gamepad:e.gamepad})})):k("Gamepad detected as unsupported!");F.keyboardLayoutSupported=function(){return!(!navigator.keyboard||!navigator.keyboard.getLayoutMap)};F.iterateKeyboardLayout=new WebAssembly.Suspending(async function(){const e=
[];try{const t=await navigator.keyboard.getLayoutMap();t&&t.forEach&&t.forEach(function(Q,K){e.push({key:Q,value:K})})}catch(t){}return e});F.updateCanvasSize=function(e,t){R.width!==e&&(R.width=e);R.height!==t&&(R.height=t)};var ba=0;F.updatePlatformAndSleep=new WebAssembly.Suspending(function(e,t){a();if("string"!==typeof document.visibilityState||"visible"===document.visibilityState)return x&&t?(ba=0,g()):0>=e?(ba=0,ub?gc(0):fc()):u(e);ba=0;return r(50)});F.isVSyncSupported=function(){return x};
F.mouseSetGrabbed=D;F.isMouseGrabSupported=function(){return ta};F.isMouseGrabbed=function(){return pa};F.isPointerLocked=function(){return ta&&(Ba||document.pointerLockElement===R)};F.supportsFullscreen=function(){return ca};F.toggleFullscreen=J;F.isFullscreen=function(){return ca&&h.matches};F.touchSetOpenKeyboardZone=function(e,t,Q,K){0!==Q&&0!==K?(B.style.display="block",B.style.top=""+(T-t-K)/L+"px",B.style.left=""+e/L+"px",B.style.width=""+Q/L+"px",B.style.height=""+K/L+"px"):(B.style.display=
"none",B.style.top="0px",B.style.left="0px",B.style.width="0px",B.style.height="0px")};F.touchCloseDeviceKeyboard=N;F.touchIsDeviceKeyboardOpenMAYBE=O;F.gamepadSupported=function(){return P};F.isVisualViewport=function(){return aa};Ta=function(){try{W&&(M.removeEventListener("contextmenu",W),W=null),na&&(R.removeEventListener("mousedown",na),na=null),Ha&&(R.removeEventListener("mouseup",Ha),Ha=null),$a&&(R.removeEventListener("mousemove",$a),$a=null),ab&&(R.removeEventListener("mouseenter",ab),ab=
null),bb&&(R.removeEventListener("mouseleave",bb),bb=null),cb&&(R.removeEventListener("touchstart",cb),cb=null),db&&(R.removeEventListener("touchend",db),db=null),eb&&(R.removeEventListener("touchmove",eb),eb=null),fb&&(R.removeEventListener("touchcancel",fb),fb=null),gb&&(window.removeEventListener("gamepadconnected",gb),gb=null),hb&&(window.removeEventListener("gamepaddisconnected",hb),hb=null),ib&&(window.removeEventListener("keydown",ib),ib=null),jb&&(window.removeEventListener("keyup",jb),jb=
null),kb&&(B.removeEventListener("touchstart",kb),kb=null),lb&&(B.removeEventListener("touchend",lb),lb=null),mb&&(B.removeEventListener("touchmove",mb),mb=null),nb&&(R.removeEventListener("wheel",nb),nb=null),ob&&(window.removeEventListener("focus",ob),ob=null),pb&&(window.removeEventListener("blur",pb),pb=null),qb&&(document.removeEventListener("pointerlockchange",qb),qb=null),rb&&(document.removeEventListener("pointerlockerror",rb),rb=null),sb&&(h.removeEventListener("change",sb),sb=null)}catch(e){k("Failed to remove event listeners! {}",
e)}Ta=null}};(function(){function a(){this._socket.close()}function b(l){this._socket.send(l)}function f(l){this._socket.send(l)}function g(){return this._frameCountStr+this._frameCountBin}function r(){const l=this._queue;return l?(l._next===l&&l._prev===l?this._queue=null:(this._queue=l._next,l._prev._next=l._next,l._next._prev=l._prev),l._next=null,l._prev=null,0===l.type?--this._frameCountStr:--this._frameCountBin,l):null}function u(){var l=this._frameCountStr+this._frameCountBin;if(0===l)return null;l=Array(l);
var z=0,C=this._queue;const T=C;do{l[z++]=C;var L=C._next;C._next=null;C._prev=null;C=L}while(C!==T);this._queue=null;this._frameCountBin=this._frameCountStr=0;return l}function D(){this._queue=null;this._frameCountBin=this._frameCountStr=0}function J(l,z){var C=l._queue;if(!C)return null;const T=C;do{var L=C._next;if(C.type===z)return z=C._prev,L===C&&z===C?l._queue=null:(C===T&&(l._queue=L),z._next=L,L._prev=z),C._next=null,C._prev=null,C;C=L}while(C!==T);return null}function G(l,z,C){var T=0,L=
l._queue,aa=L;do{var ia=L._next;L.type===z&&(C[T++]=L);L=ia}while(L!==aa);C.length=T;for(aa=0;aa<T;++aa)L=C[aa],ia=L._next,z=L._prev,ia===L&&z===L?l._queue=null:(L===l._queue&&(l._queue=ia),z._next=ia,ia._prev=z)}function N(){return this._frameCountStr}function O(){if(0===this._frameCountStr)return null;const l=J(this,0);l?--this._frameCountStr:this._frameCountStr=0;return l}function B(){var l=this._frameCountStr;if(0===l)return null;l=Array(l);G(this,0,l);this._frameCountStr=0;return l}function X(){const l=
this._frameCountStr;if(0===l)return null;G(this,0,Array(l));this._frameCountStr=0}function ha(){return this._frameCountBin}function p(){if(0===this._frameCountBin)return null;const l=J(this,1);l?--this._frameCountBin:this._frameCountBin=0;return l}function d(){var l=this._frameCountBin;if(0===l)return null;l=Array(l);G(this,1,l);this._frameCountBin=0;return l}function q(){const l=this._frameCountBin;if(0===l)return null;G(this,1,Array(l));this._frameCountBin=0}function v(l){this._enableStringFrames=
l}function n(l){this._enableBinaryFrames=l}function w(l){const z="string"===typeof l;if(z){if(!this._enableStringFrames)return}else if(!this._enableBinaryFrames)return;l={type:z?0:1,data:l,timestamp:performance.now(),_next:null,_prev:null};const C=this._queue;if(C){const T=C._prev;T._next=l;l._prev=T;l._next=C;C._prev=l}else this._queue=l,l._next=l,l._prev=l;z?++this._frameCountStr:++this._frameCountBin}za.createWebSocketHandle=function(l){let z;try{z=new WebSocket(l)}catch(T){return k("Failed to create WebSocket: {}",
l),oa("Exception Caught",T),null}z.binaryType="arraybuffer";const C={state:1,_socket:z,_queue:null,_frameCountStr:0,_frameCountBin:0,_addRecievedFrame:w,_enableStringFrames:!0,_enableBinaryFrames:!0,closeSocket:a,sendStringFrame:b,sendBinaryFrame:f,availableFrames:g,getNextFrame:r,getAllFrames:u,clearFrames:D,availableStringFrames:N,getNextStringFrame:O,getAllStringFrames:B,clearStringFrames:X,availableBinaryFrames:ha,getNextBinaryFrame:p,getAllBinaryFrames:d,clearBinaryFrames:q,setEnableStringFrames:v,
setEnableBinaryFrames:n};z.addEventListener("open",function(){C.state=2});z.addEventListener("message",function(T){C._addRecievedFrame(T.data)});z.addEventListener("close",function(){3!==C.state&&(C.state=0)});z.addEventListener("error",function(){1===C.state&&(C.state=3)});return C}})();function Eb(a,b){var f=tb;const g=f&&200===b?a.getExtension("OES_vertex_array_object"):null,r=f&&200===b?a.getExtension("ANGLE_instanced_arrays"):null,u=f&&200===b&&null!==r,D=f&&(310===b||300===b)&&null!==a.getExtension("EXT_color_buffer_float"),J=f&&!D&&(310===b||300===b||200===b)&&null!==a.getExtension("EXT_color_buffer_half_float"),G=f&&200===b&&null!==a.getExtension("EXT_shader_texture_lod"),N=f&&200===b&&null!==a.getExtension("OES_fbo_render_mipmap"),O=f&&200===b&&null!==g,B=f&&200===b&&null!==
a.getExtension("OES_texture_float"),X=f&&300<=b&&null!==a.getExtension("OES_texture_float_linear"),ha=f&&200===b&&null!==a.getExtension("OES_texture_half_float"),p=f&&200===b&&null!==a.getExtension("OES_texture_half_float_linear");f=f&&null!==a.getExtension("EXT_texture_filter_anisotropic");const d=null!==a.getExtension("WEBGL_debug_renderer_info"),q=300<=b?0:200===b&&O?1:-1,v=300<=b?0:200===b&&u?1:-1,n=[b,q,v,0,0];if(300<=b||N)n[3]|=4;if(300<=b||G)n[3]|=8;300<=b&&(n[3]|=16);(320<=b||(300<=b||B)&&
(D||J))&&(n[3]|=32);(320<=b||(300<=b||ha)&&D)&&(n[3]|=64);f&&(n[3]|=128);(300<=b||p)&&(n[4]|=1);300<=b&&X&&(n[4]|=2);H.getCapBits=function(l){return n[l]};H.glEnable=a.enable.bind(a);H.glDisable=a.disable.bind(a);H.glClearColor=a.clearColor.bind(a);H.glClearDepth=a.clearDepth.bind(a);H.glClear=a.clear.bind(a);H.glDepthFunc=a.depthFunc.bind(a);H.glDepthMask=a.depthMask.bind(a);H.glCullFace=a.cullFace.bind(a);H.glViewport=a.viewport.bind(a);H.glBlendFunc=a.blendFunc.bind(a);H.glBlendFuncSeparate=a.blendFuncSeparate.bind(a);
H.glBlendEquation=a.blendEquation.bind(a);H.glBlendColor=a.blendColor.bind(a);H.glColorMask=a.colorMask.bind(a);H.glDrawBuffers=300<=b?a.drawBuffers.bind(a):ra("glDrawBuffers");H.glReadBuffer=300<=b?a.readBuffer.bind(a):ra("glReadBuffer");H.glReadPixels=a.readPixels.bind(a);H.glPolygonOffset=a.polygonOffset.bind(a);H.glLineWidth=a.lineWidth.bind(a);H.glGenBuffers=a.createBuffer.bind(a);H.glGenTextures=a.createTexture.bind(a);H.glCreateProgram=a.createProgram.bind(a);H.glCreateShader=a.createShader.bind(a);
H.glCreateFramebuffer=a.createFramebuffer.bind(a);H.glCreateRenderbuffer=a.createRenderbuffer.bind(a);H.glGenQueries=300<=b?a.createQuery.bind(a):ra("glGenQueries");H.glDeleteBuffers=a.deleteBuffer.bind(a);H.glDeleteTextures=a.deleteTexture.bind(a);H.glDeleteProgram=a.deleteProgram.bind(a);H.glDeleteShader=a.deleteShader.bind(a);H.glDeleteFramebuffer=a.deleteFramebuffer.bind(a);H.glDeleteRenderbuffer=a.deleteRenderbuffer.bind(a);H.glDeleteQueries=300<=b?a.deleteQuery.bind(a):ra("glDeleteQueries");
H.glBindBuffer=a.bindBuffer.bind(a);H.glBufferData=a.bufferData.bind(a);H.glBufferSubData=a.bufferSubData.bind(a);H.glEnableVertexAttribArray=a.enableVertexAttribArray.bind(a);H.glDisableVertexAttribArray=a.disableVertexAttribArray.bind(a);H.glVertexAttribPointer=a.vertexAttribPointer.bind(a);H.glActiveTexture=a.activeTexture.bind(a);H.glBindTexture=a.bindTexture.bind(a);H.glTexParameterf=a.texParameterf.bind(a);H.glTexParameteri=a.texParameteri.bind(a);H.glTexImage3D=300<=b?a.texImage3D.bind(a):
ra("glTexImage3D");H.glTexImage2D=a.texImage2D.bind(a);H.glTexSubImage2D=a.texSubImage2D.bind(a);H.glCopyTexSubImage2D=a.copyTexSubImage2D.bind(a);H.glTexStorage2D=300<=b?a.texStorage2D.bind(a):ra("glTexStorage2D");H.glPixelStorei=a.pixelStorei.bind(a);H.glGenerateMipmap=a.generateMipmap.bind(a);H.glShaderSource=a.shaderSource.bind(a);H.glCompileShader=a.compileShader.bind(a);H.glGetShaderi=a.getShaderParameter.bind(a);H.glGetShaderInfoLog=a.getShaderInfoLog.bind(a);H.glUseProgram=a.useProgram.bind(a);
H.glAttachShader=a.attachShader.bind(a);H.glDetachShader=a.detachShader.bind(a);H.glLinkProgram=a.linkProgram.bind(a);H.glGetProgrami=a.getProgramParameter.bind(a);H.glGetProgramInfoLog=a.getProgramInfoLog.bind(a);H.glDrawArrays=a.drawArrays.bind(a);H.glDrawElements=a.drawElements.bind(a);H.glBindAttribLocation=a.bindAttribLocation.bind(a);H.glGetAttribLocation=a.getAttribLocation.bind(a);H.glGetUniformLocation=a.getUniformLocation.bind(a);H.glGetUniformBlockIndex=300<=b?a.getUniformBlockIndex.bind(a):
ra("glGetUniformBlockIndex");H.glBindBufferRange=300<=b?a.bindBufferRange.bind(a):ra("glBindBufferRange");H.glUniformBlockBinding=300<=b?a.uniformBlockBinding.bind(a):ra("glUniformBlockBinding");H.glUniform1f=a.uniform1f.bind(a);H.glUniform2f=a.uniform2f.bind(a);H.glUniform3f=a.uniform3f.bind(a);H.glUniform4f=a.uniform4f.bind(a);H.glUniform1i=a.uniform1i.bind(a);H.glUniform2i=a.uniform2i.bind(a);H.glUniform3i=a.uniform3i.bind(a);H.glUniform4i=a.uniform4i.bind(a);H.glUniformMatrix2fv=a.uniformMatrix2fv.bind(a);
H.glUniformMatrix3fv=a.uniformMatrix3fv.bind(a);H.glUniformMatrix4fv=a.uniformMatrix4fv.bind(a);H.glUniformMatrix3x2fv=300<=b?a.uniformMatrix3x2fv.bind(a):ra("glUniformMatrix3x2fv");H.glUniformMatrix4x2fv=300<=b?a.uniformMatrix4x2fv.bind(a):ra("glUniformMatrix4x2fv");H.glUniformMatrix4x3fv=300<=b?a.uniformMatrix4x3fv.bind(a):ra("glUniformMatrix4x3fv");H.glBindFramebuffer=a.bindFramebuffer.bind(a);H.glCheckFramebufferStatus=a.checkFramebufferStatus.bind(a);H.glBlitFramebuffer=300<=b?a.blitFramebuffer.bind(a):
ra("glBlitFramebuffer");H.glRenderbufferStorage=a.renderbufferStorage.bind(a);H.glFramebufferTexture2D=a.framebufferTexture2D.bind(a);H.glFramebufferTextureLayer=300<=b?a.framebufferTextureLayer.bind(a):ra("glFramebufferTextureLayer");H.glBindRenderbuffer=a.bindRenderbuffer.bind(a);H.glFramebufferRenderbuffer=a.framebufferRenderbuffer.bind(a);H.glGetError=a.getError.bind(a);H.getAllExtensions=a.getSupportedExtensions.bind(a);H.isContextLost=a.isContextLost.bind(a);const w=[];u&&w.push("ANGLE_instanced_arrays");
D&&w.push("EXT_color_buffer_float");J&&w.push("EXT_color_buffer_half_float");G&&w.push("EXT_shader_texture_lod");N&&w.push("OES_fbo_render_mipmap");O&&w.push("OES_vertex_array_object");B&&w.push("OES_texture_float");X&&w.push("OES_texture_float_linear");ha&&w.push("OES_texture_half_float");p&&w.push("OES_texture_half_float_linear");f&&w.push("EXT_texture_filter_anisotropic");d&&w.push("WEBGL_debug_renderer_info");H.dumpActiveExtensions=function(){return w};H.glGetInteger=function(l){l=a.getParameter(l);
return"number"===typeof l?l:0};H.glGetString=function(l){if(d)switch(l){case 7936:l=a.getParameter(37445);null==l&&(l=a.getParameter(7936));break;case 7937:l=a.getParameter(37446);null==l&&(l=a.getParameter(7937));break;default:l=a.getParameter(l)}else l=a.getParameter(l);return"string"===typeof l?l:null};switch(q){case 0:H.glGenVertexArrays=a.createVertexArray.bind(a);H.glDeleteVertexArrays=a.deleteVertexArray.bind(a);H.glBindVertexArray=a.bindVertexArray.bind(a);break;case 1:H.glGenVertexArrays=
g.createVertexArrayOES.bind(g);H.glDeleteVertexArrays=g.deleteVertexArrayOES.bind(g);H.glBindVertexArray=g.bindVertexArrayOES.bind(g);break;default:y(H,"glGenVertexArrays"),y(H,"glDeleteVertexArrays"),y(H,"glBindVertexArray")}switch(v){case 0:H.glVertexAttribDivisor=a.vertexAttribDivisor.bind(a);H.glDrawArraysInstanced=a.drawArraysInstanced.bind(a);H.glDrawElementsInstanced=a.drawElementsInstanced.bind(a);break;case 1:H.glVertexAttribDivisor=r.vertexAttribDivisorANGLE.bind(r);H.glDrawArraysInstanced=
r.drawArraysInstancedANGLE.bind(r);H.glDrawElementsInstanced=r.drawElementsInstancedANGLE.bind(r);break;default:y(H,"glVertexAttribDivisor"),y(H,"glDrawArraysInstanced"),y(H,"glDrawElementsInstanced")}};var ec=!1;const hc=new MessageChannel;var ic=null;hc.port2.addEventListener("message",function(){ic()});async function yb(){hc.port1.start();hc.port2.start();ic=function(){ic=null};hc.port1.postMessage(0);ic?await new Promise(function(a){setTimeout(function(){ic?k("Immediate continue hack is not supported"):ec=!0;a()},25)}):k("Immediate continue hack is not supported")}Ca.getRootElement=function(){return Ka};Ca.getParentElement=function(){return M};Ca.getCanvasElement=function(){return R};
Ca.getEaglercraftXOpts=function(){return I};Ca.getEventCount=Hb.A.bind(Hb);Ca.getNextEvent=Hb.s.bind(Hb);
Ca.queueAsyncDownload=function(a,b,f){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(g){return g.arrayBuffer()}).then(function(g){Y(1,0,{requestId:f,arrayBuffer:g})}).catch(function(g){k("Failed to complete async download: {}",a);oa("Exception Caught",g);Y(1,0,{requestId:f,arrayBuffer:null})})}catch(g){k("Failed to fetch: {}",a),oa("Exception Caught",g),Y(1,0,{requestId:f,arrayBuffer:null})}};
Ca.download=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(g){return g.arrayBuffer()}).then(function(g){f(g)}).catch(function(g){k("Failed to complete download: {}",a);oa("Exception Caught",g);f(null)})}catch(g){k("Failed to fetch: {}",a),oa("Exception Caught",g),f(null)}})});Ca.writeCrashReport=function(a){Kb(a,!1)};Ca.steadyTimeMillis=performance.now.bind(performance);
function gc(a){return new Promise(function(b){setTimeout(b,a)})}Ca.sleep=new WebAssembly.Suspending(gc);function jc(a){ec?(ic=a,hc.port1.postMessage(0)):setTimeout(a,0)}function fc(){return new Promise(jc)}Ca.immediateContinue=new WebAssembly.Suspending(fc);Ca.immediateContinueSupported=function(){return ec};Ca.setCrashReportString=function(a,b){Sa[a]=b};va.getByteBufferView=function(a,b){return new Int8Array(S,a,b)};va.getUnsignedByteBufferView=function(a,b){return new Uint8Array(S,a,b)};va.getUnsignedClampedByteBufferView=function(a,b){return new Uint8ClampedArray(S,a,b)};va.getShortBufferView=function(a,b){return new Int16Array(S,a,b)};va.getUnsignedShortBufferView=function(a,b){return new Uint16Array(S,a,b)};va.getIntBufferView=function(a,b){return new Int32Array(S,a,b)};va.getFloatBufferView=function(a,b){return new Float32Array(S,a,b)};const kc={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",
type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",
type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},
1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",
type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",
type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},
57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",
type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},
9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",
type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",
type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",
type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",
type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},
50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",
type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},
13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",
type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",
type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};
function lc(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function mc(a,b){this.name=a||"Unknown";this.type=b||"Unknown"}mc.prototype.g=function(){};function nc(a,b){mc.call(this,a,b||"Uint")}lc(nc,mc);nc.prototype.g=function(){this.data="";for(var a=0;a<this.source.length;a++){var b=this.source[a].toString(16);this.data+=1===b.length%2?"0"+b:b}};function oc(a,b){mc.call(this,a,b||"Float")}lc(oc,mc);
oc.prototype.g=function(){var a=this.source.reverse();this.data=(new (this.source&&4===this.source.length?Float32Array:Float64Array)(a.buffer))[0]};function pc(a,b){mc.call(this,a,b||"Container")}lc(pc,mc);function qc(a){var b=a.source[a.offset++],f=8-b.toString(2).length;b-=1<<7-f;for(var g=0;g<f;g++)b*=256,b+=a.source[a.offset++];return b}
pc.prototype.g=function(){this.data=[];for(this.offset=0;this.offset<this.source.length;this.offset=b){var a=qc(this);var b=qc(this);b=Math.min(this.offset+b,this.source.length);var f=this.source.slice(this.offset,b),g=kc[a]||{name:"Unknown",type:"Unknown"},r=mc;switch(g.type){case "Container":r=pc;break;case "Uint":r=nc;break;case "Float":r=oc}r=g=new r(g.name,g.type);r.source=f;r.g();this.data.push({id:a,K:a.toString(16),data:g})}};
lc(function(a){pc.call(this,"File","File");this.source=a;this.g()},pc);var rc;
(function(){function a(p){let d=O.get(p);"undefined"===typeof d&&(d=new Function("return "+p+";"),O.set(p,d));return d()}function b(p){let d={exports:null,h:null,j:null};f(p);g(p);r(p,d);u(p,d);p.teavmMath=Math;return{u(q){d.exports=q},F(q){d.h=q},D(q){d.j=q}}}function f(p){p.teavmDate={currentTimeMillis:()=>(new Date).getTime(),dateToString:d=>(new Date(d)).toString(),getYear:d=>(new Date(d)).getFullYear(),setYear:(d,q)=>{d=new Date(d);d.setFullYear(q);return d.getTime()},getMonth:d=>(new Date(d)).getMonth(),setMonth:(d,
q)=>{d=new Date(d);d.setMonth(q);return d.getTime()},getDate:d=>(new Date(d)).getDate(),setDate:(d,q)=>{d=new Date(d);d.setDate(q);return d.getTime()},create:(d,q,v,n,w,l)=>(new Date(d,q,v,n,w,l)).getTime(),createFromUTC:(d,q,v,n,w,l)=>Date.UTC(d,q,v,n,w,l)}}function g(p){let d=[],q=[];p.teavmConsole={putcharStderr:function(v){10===v?(v=String.fromCharCode(...d),console.error(v),ka&&ka(v,!0),d.length=0):d.push(v)},putcharStdout:function(v){10===v?(v=String.fromCharCode(...q),console.log(v),ka&&ka(v,
!1),q.length=0):q.push(v)}}}function r(p,d){let q=new FinalizationRegistry(n=>{let w=d.exports["teavm.reportGarbageCollectedValue"];"undefined"!==typeof w&&d.j(function(){w(n.B,n.C)})}),v=new FinalizationRegistry(n=>{let w=d.exports["teavm.reportGarbageCollectedString"];"function"===typeof w&&d.j(function(){w(n)})});p.teavm={createWeakRef:(n,w,l)=>{null!==l&&q.register(n,{C:w,B:l});return new WeakRef(n)},deref:n=>n.deref(),createStringWeakRef:(n,w)=>{v.register(n,w);return new WeakRef(n)},stringDeref:n=>
n.deref(),takeStackTrace:()=>{var n=Error().stack;let w=[];for(let l of n.split("\n"))n=B.exec(l),null!==n&&2<=n.length&&w.push(parseInt(n[1],16));return{getStack:function(){let l;if(d.h)try{l=d.h(w)}catch(z){console.warn("Could not deobfuscate stack",z)}l||=w.map(z=>({className:"java.lang.Throwable$FakeClass",method:"fakeMethod",file:"Throwable.java",line:z}));return l}}},decorateException:n=>{new ha(d,n)}}}function u(p,d){function q(h){return h}function v(h){var m=h.charAt(0);var x=""+(n(m)?m:"_");
for(m=1;m<h.length;++m){let P=h.charAt(m);var E=P;E=n(E)||"0"<=E&&"9">=E;x+=E?P:"_"}return x}function n(h){return"A"<=h&&"Z">=h||"a"<=h&&"z">=h||"_"===h||"$"===h}function w(h,m,x){null===h?(new Function("value",m+" = value;"))(x):h[m]=x}function l(h){d.exports["teavm.js.throwException"](X in h?h[X]:d.exports["teavm.js.wrapException"](h))}function z(h){a:{if(h instanceof WebAssembly.Exception){var m=d.exports["teavm.javaException"];var x=d.exports["teavm.getJsException"];if(h.is(m)){h=h.getArg(m,0);
m=d.exports["teavm.js.extractException"](h);if(null!==m){x=m;break a}x=x(h);"undefined"===typeof x&&(x=new ha(d,h));break a}}x=h}throw x;}function C(h){var m=[];for(let x=0;x<h.length;++x)m.push("p"+x);m=0===m.length?"":m.join(", ");m=(new Function("rethrowJavaAsJs","fn",`return function(${m}) {\n`+" try {\n"+` return fn(${m});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,h);m.__impl=h;m.__rethrow=z;return m}function T(h,m){return(new Function("constructor",`return function ${h}(marker, javaObject) {\n`+
" return constructor.call(this, marker, javaObject);\n}\n"))(m)}function L(h){try{return h()}catch(m){l(m)}}let aa=Symbol("javaObject"),ia=Symbol("functions"),Na=Symbol("functionOrigin"),Aa=Symbol("wrapperCallMarker"),Oa=new WeakMap,ta=new WeakMap,pa=new Map,Ba=new FinalizationRegistry(h=>pa.delete(h)),Ga=new WeakMap,ma=2463534242;p.teavmJso={emptyString:()=>"",stringFromCharCode:h=>String.fromCharCode(h),concatStrings:(h,m)=>h+m,stringLength:h=>h.length,charAt:(h,m)=>h.charCodeAt(m),emptyArray:()=>
[],appendToArray:(h,m)=>h.push(m),unwrapBoolean:h=>h?1:0,wrapBoolean:h=>!!h,getProperty:function(h,m){try{return null!==h?h[m]:a(m)}catch(x){l(x)}},setProperty:w,setPropertyPure:w,global:h=>{try{return a(h)}catch(m){l(m)}},createClass:(h,m,x)=>{h=v(h||"JavaObject");let E;E=null===m?function(W){this[aa]=W;this[ia]=null}:function(W){m.call(this,W)};let P=T(h,function(W,na){if(W===Aa)E.call(this,na);else{if(null===x)throw Error("This class can't be instantiated directly");try{return x.apply(null,arguments)}catch(Ha){z(Ha)}}});
P.prototype=Object.create(m||Object.prototype);P.prototype.constructor=P;h=T(h,function(W){return P.call(this,Aa,W)});h[Aa]=P;h.prototype=P.prototype;return h},exportClass:h=>h[Aa],defineMethod:(h,m,x)=>{let E=[];for(let P=1;P<x.length;++P)E.push("p"+P);h.prototype[m]=(new Function("rethrowJavaAsJs","fn",`return function(${0===E.length?"":E.join(", ")}) {\n`+" try {\n"+` return fn(${["this",E].join(", ")});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,x)},defineStaticMethod:(h,
m,x)=>{h[m]=C(x)},defineFunction:C,defineProperty:(h,m,x,E)=>{let P={get(){try{return x(this)}catch(W){z(W)}}};null!==E&&(P.set=function(W){try{E(this,W)}catch(na){z(na)}});Object.defineProperty(h.prototype,m,P)},defineStaticProperty:(h,m,x,E)=>{let P={get(){try{return x()}catch(W){z(W)}}};null!==E&&(P.set=function(W){try{E(W)}catch(na){z(na)}});Object.defineProperty(h,m,P)},javaObjectToJS:(h,m)=>{if(null===h)return null;var x=Oa.get(h);if("undefined"!=typeof x&&(x=x.deref(),"undefined"!==typeof x))return x;
m=new m(h);Oa.set(h,new WeakRef(m));return m},unwrapJavaObject:h=>h[aa],asFunction:(h,m)=>{let x=h[ia];null===x&&(x=Object.create(null),h[ia]=x);let E=x[m];"function"!==typeof E&&(E=function(){return h[m].apply(h,arguments)},E[Na]=h,x[m]=E);return E},functionAsObject:(h,m)=>{let x=h[Na];if("undefined"!==typeof x){let E=x[ia];if(void 0!==E&&E[m]===h)return x}return{[m]:function(...E){try{return h(...E)}catch(P){z(P)}}}},wrapObject:h=>{if(null===h)return null;if("object"===typeof h||"function"===typeof h){var m=
h[aa];if("object"===typeof m)return m;m=ta.get(h);if(void 0!==m&&(m=m.deref(),void 0!==m))return m;m=d.exports["teavm.jso.createWrapper"](h);ta.set(h,new WeakRef(m));return m}m=pa.get(h);if(void 0!==m&&(m=m.deref(),void 0!==m))return m;m=d.exports["teavm.jso.createWrapper"](h);pa.set(h,new WeakRef(m));Ba.register(m,h);return m},isPrimitive:(h,m)=>typeof h===m,instanceOf:(h,m)=>h instanceof m,instanceOfOrNull:(h,m)=>null===h||h instanceof m,sameRef:(h,m)=>h===m,hashCode:h=>{if("object"===typeof h||
"function"===typeof h||"symbol"===typeof h){var m=Ga.get(h);if("number"===typeof m)return m;m=ma;m^=m<<13;m^=m>>>17;ma=m^=m<<5;Ga.set(h,m);return m}return"number"===typeof h?h|0:"bigint"===typeof h?BigInt.asIntN(32,h):"boolean"===typeof h?h?1:0:0},apply:(h,m,x)=>{try{return null===h?a(m)(...x):h[m](...x)}catch(E){l(E)}},concatArray:(h,m)=>h.concat(m),getJavaException:h=>h[X]};for(var ca of"wrapByte wrapShort wrapChar wrapInt wrapFloat wrapDouble unwrapByte unwrapShort unwrapChar unwrapInt unwrapFloat unwrapDouble".split(" "))p.teavmJso[ca]=
q;ca=[];for(let h=0;32>h;++h){let m=0===ca.length?"":ca.join(", "),x=[...ca,"body"].join(", ");p.teavmJso["createFunction"+h]=(new Function("wrapCallFromJavaToJs",...ca,"body",`return new Function('wrapCallFromJavaToJs', ${x}).bind(this, wrapCallFromJavaToJs);`)).bind(null,L);p.teavmJso["bindFunction"+h]=(E,...P)=>E.bind(null,...P);p.teavmJso["callFunction"+h]=(new Function("rethrowJsAsJava","fn",...ca,"try {\n"+` return fn(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l);p.teavmJso["callMethod"+
h]=(new Function("rethrowJsAsJava","getGlobalName","instance","method",...ca,"try {\n return instance !== null\n"+` ? instance[method](${m})\n`+` : getGlobalName(method)(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l,a);p.teavmJso["construct"+h]=(new Function("rethrowJsAsJava","constructor",...ca,"try {\n"+` return new constructor(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l);p.teavmJso["arrayOf"+h]=new Function(...ca,"return ["+m+"]");
ca.push("p"+(h+1))}}async function D(p){try{const d={},q=b(d),v=p.path instanceof WebAssembly.Module?p.path:await WebAssembly.compileStreaming(fetch(p.path)),n=new WebAssembly.Instance(v,d);q.u(n.exports);return{module:v,instance:n}}catch(d){return console.warn("Could not load deobfuscator",d),null}}function J(p,d,q){let v=null,n=!1;return w=>{if(!n){n=!0;if(null!==d)try{v=q.exports.createFromExternalFile.value(d)}catch(l){console.warn("Could not load create deobfuscator",l)}if(null==v&&null!==p)try{v=
q.exports.createForModule.value(p)}catch(l){console.warn("Could not create deobfuscator from module data",l)}}return null!==v?v.deobfuscate(w):[]}}async function G(p,d){if(!d.enabled||"auto"!==p&&"external"!==p)return null;if(d.l instanceof ArrayBuffer)return new Int8Array(d.l);p=await fetch(d.l);return p.ok?new Int8Array(await p.arrayBuffer()):null}function N(p){const d=new ua;p.teavm.pollAsyncCallbacks=function(){for(var q;q=d.s();)q.fn()};return function(q){d.push({fn:q,_next:null})}}let O=new Map,
B=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/,X=Symbol("javaException");class ha extends Error{constructor(p,d){super();this.g=p;this[X]=d;p.exports["teavm.setJsException"](d,this)}get message(){var p=this.g.exports["teavm.exceptionMessage"];return"function"===typeof p&&(p=p(this[X]),null!=p)?p:"(could not fetch message)"}}rc={load:async function(p,d){d||={};var q=d.h||{};let [v,n,w]=await Promise.all([q.enabled?D(q):Promise.resolve(null),p instanceof WebAssembly.Module?Promise.resolve(p):WebAssembly.compileStreaming(fetch(p)),
G(q.v,q)]);q={};p=b(q);"undefined"!==typeof d.o&&d.o(q);p.D(N(q));d=await WebAssembly.instantiate(n,q);q={};p.u(d.exports);if(v){let l=J(null,w,v.instance);null!==l&&(p.F(l),q.deobfuscator=l)}p={exports:q,instance:d,L:{G:n,J:v?v.module:null}};for(let l in d.exports){let z=d.exports[l];z instanceof WebAssembly.Global?Object.defineProperty(q,l,{get:()=>z.value}):"function"===typeof z&&(q[l]=z)}q.memory=d.exports["teavm.memory"];q.H=w;return p},I:b,M:function(p){return new Proxy(p,{get(d,q){return new WebAssembly.Global({value:"externref",
mutable:!1},d[q])}})}}})();async function sc(){try{Error.stackTraceLimit=1024;I=self.__eaglercraftXLoaderContext.getEaglercraftXOpts();self.__eaglercraftXLoaderContext.getEagRuntimeJSURL();const a=self.__eaglercraftXLoaderContext.getClassesWASMURL(),b=self.__eaglercraftXLoaderContext.getClassesDeobfWASMURL(),f=self.__eaglercraftXLoaderContext.getClassesTEADBGURL();Ea=self.__eaglercraftXLoaderContext.getEPKFiles();Ka=self.__eaglercraftXLoaderContext.getRootElement();self.__eaglercraftXLoaderContext.getImageURL(0);Fa=self.__eaglercraftXLoaderContext.getImageURL(1);
Ia=self.__eaglercraftXLoaderContext.getImageURL(2);Ja=self.__eaglercraftXLoaderContext.getImageURL(3);const g=self.__eaglercraftXLoaderContext.getMainArgs();delete self.__eaglercraftXLoaderContext;if("_worker_process_"!==g[0]){if(!await wb())return}else ea="worker",await Fb();c("Loading EaglercraftX WASM GC binary...");const r=await rc.load(a,{h:{enabled:!0,path:b,v:"external",l:f},o:function(u){u.WASMGCBufferAllocator=va;u.platformApplication=A;u.platformAssets=wa;u.platformAudio=xa;u.platformFilesystem=
ya;u.platformInput=F;u.platformNetworking=za;u.platformOpenGL=H;u.platformRuntime=Ca;u.teavm.notifyHeapResized=function(){Gb(r.exports.memory)}}});Gb(r.exports.memory);Da=r.exports.deobfuscator;c("Calling entry point with args: {}",JSON.stringify(g));try{await WebAssembly.promising(r.exports.main.__impl)(g)}catch(u){r.exports.main.__rethrow(u)}finally{la(2,"Main function has returned!",[])}}catch(a){Jb(a)}}
"object"===typeof self.__eaglercraftXLoaderContext?self.__eaglercraftXLoaderContext.runMain(sc):console.error("???");}).call(this);
File diff suppressed because one or more lines are too long
+8
View File
@@ -0,0 +1,8 @@
client-version-integer=50
client-package-name=net.lax1dude.eaglercraft.v1_8.client
client-origin-name=EaglercraftX
client-origin-version=u50
client-origin-vendor=lax1dude
client-fork-name=EaglercraftX
client-fork-version=u50
client-fork-vendor=lax1dude
+20
View File
@@ -0,0 +1,20 @@
loader-js-file=loader.js
loader-wasm-file=loader.wasm
eagruntime-js-file=eagruntime.js
classes-wasm-file=classes.wasm
classes-deobf-teadbg-file=classes.wasm.teadbg
classes-deobf-wasm-file=classes.wasm-deobfuscator.wasm
assets-epk-0-file=assets.epk
assets-epk-0-path=/
splash-logo-image-file=splash.png
splash-logo-image-mime=image/png
press-any-key-image-file=pressAnyKey.png
press-any-key-image-mime=image/png
crash-logo-image-file=crashLogo.png
crash-logo-image-mime=image/png
favicon-image-file=favicon.png
favicon-image-mime=image/png
jspi-unavailable-file=enableJSPIScreen.html
offline-download-template=OfflineDownloadTemplate.txt
offline-download-script=../javascript_dist/bootstrap.js
offline-download-name=Infdev_WASM.html
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+120
View File
@@ -0,0 +1,120 @@
<!DOCTYPE html>
<html style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="EaglercraftX Alpha 1.0.6_03 WASM-GC test directory HTML page" />
<meta name="keywords" content="eaglercraft, minecraft, Alpha 1.0.6_03, alphaver" />
<title>EaglercraftX Alpha 1.0.6_03 WASM-GC</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX Alpha 1.0.6_03 WASM-GC" />
<meta property="og:description" content="test directory HTML page" />
<link type="image/png" rel="shortcut icon" href="favicon.png" />
<script type="text/javascript">
"use strict";
window.addEventListener("load", async function() {
if(window.location.href.indexOf("file:") === 0) {
alert("HTTP please, do not open this file locally, run a local HTTP server and load it via HTTP");
}else if(typeof WebAssembly.Suspending === "undefined") {
alert("JSPI is not enabled, please enable it in chrome://flags");
}else {
const splash = document.createElement("div");
splash.style.width = "100%";
splash.style.height = "100%";
splash.style.imageRendering = "pixelated";
splash.style.background = "center / contain no-repeat url(splash.png), 0px 0px / 1000000% 1000000% no-repeat url(splash.png) white";
document.body.appendChild(splash);
console.log("Downloading assets.epk...");
var assetsEPK;
try {
assetsEPK = new Uint8Array(await fetch("assets.epk").then(resp => resp.arrayBuffer()));
}catch(ex) {
alert("Could not download assets.epk!");
console.error("Could not download assets.epk!");
console.error(ex);
return;
}
console.log("Downloaded " + assetsEPK.length + " byte file");
const relayId = Math.floor(Math.random() * 3);
const eaglercraftXOpts = {
demoMode: false,
localesURI: "lang/",
worldsDB: "worlds",
servers: [
{ addr: "ws://localhost:25565/", name: "Local test server" }
],
relays: [
{ addr: "wss://relay.deev.is/", comment: "lax1dude relay #1", primary: relayId === 0 },
{ addr: "wss://relay.lax1dude.net/", comment: "lax1dude relay #2", primary: relayId === 1 },
{ addr: "wss://relay.shhnowisnottheti.me/", comment: "ayunami relay #1", primary: relayId === 2 }
]
};
window.__eaglercraftXLoaderContext = {
getEaglercraftXOpts: function() {
return eaglercraftXOpts;
},
getEagRuntimeJSURL: function() {
return "eagruntime.js";
},
getClassesWASMURL: function() {
return "classes.wasm";
},
getClassesDeobfWASMURL: function() {
return "classes.wasm-deobfuscator.wasm";
},
getClassesTEADBGURL: function() {
return "classes.wasm.teadbg";
},
getEPKFiles: function() {
return [{
name: "assets.epk",
path: "",
data: assetsEPK
}];
},
getRootElement: function() {
return document.body;
},
getMainArgs: function() {
return [];
},
getImageURL: function(idx) {
switch(idx) {
case 0:
return "splash.png";
case 1:
return "pressAnyKey.png";
case 2:
return "crashLogo.png";
case 3:
return "favicon.png";
default:
return null;
}
},
runMain: function(fn) {
setTimeout(fn, 10);
}
};
var q = window.location.search;
if((typeof q === "string") && q[0] === "?" && (typeof URLSearchParams !== "undefined")) {
q = new URLSearchParams(q);
var s = q.get("server");
if(s) eaglercraftXOpts.joinServer = s;
}
const scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "eagruntime.js";
document.head.appendChild(scriptElement);
}
});
</script>
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:black;" id="game_frame"></body>
</html>
+24
View File
@@ -0,0 +1,24 @@
(function(){'use strict';var e;e||=typeof Module != 'undefined' ? Module : {};var aa="object"==typeof window,g="undefined"!=typeof WorkerGlobalScope,k="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,ba=window.__eaglercraftXLoaderContextPre.loaderWASMURL;e.locateFile=function(a){return"loader.wasm"===a?ba:a};
var r=window.__eaglercraftXLoaderContextPre.rootElement,ca=window.__eaglercraftXLoaderContextPre.eaglercraftXOpts,t=window.__eaglercraftXLoaderContextPre.theEPWFileBuffer,da=window.__eaglercraftXLoaderContextPre.splashURL;delete window.__eaglercraftXLoaderContextPre;var v=[null];
function w(){for(var a=null,b;b=r.lastChild;)a||=b,r.removeChild(b);b=document.createElement("div");b.classList.add("_eaglercraftX_wrapper_element");b.setAttribute("style","position:relative;width:100%;height:100%;overflow:hidden;");a&&(a.classList.add("_eaglercraftX_early_splash_element"),a.style.position="absolute",a.style.top="0px",a.style.left="0px",a.style.right="0px",a.style.bottom="0px",a.style.zIndex="2",b.appendChild(a));r.appendChild(b);return b}function x(){e=y=z=A=B=null}
var C=Object.assign({},e),D=[],E="./this.program",F=(a,b)=>{throw b;},G="",H,J;
if(k){var fs=require("fs"),ea=require("path");G=__dirname+"/";J=a=>{a=L(a)?new URL(a):ea.normalize(a);return fs.readFileSync(a)};H=a=>{a=L(a)?new URL(a):ea.normalize(a);return new Promise((b,d)=>{fs.readFile(a,void 0,(c,f)=>{c?d(c):b(f.buffer)})})};!e.thisProgram&&1<process.argv.length&&(E=process.argv[1].replace(/\\/g,"/"));D=process.argv.slice(2);"undefined"!=typeof module&&(module.exports=e);F=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||g)g?G=self.location.href:"undefined"!=typeof document&&
document.currentScript&&(G=document.currentScript.src),G=G.startsWith("blob:")?"":G.substr(0,G.replace(/[?#].*/,"").lastIndexOf("/")+1),g&&(J=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),H=a=>L(a)?new Promise((b,d)=>{var c=new XMLHttpRequest;c.open("GET",a,!0);c.responseType="arraybuffer";c.onload=()=>{200==c.status||0==c.status&&c.response?b(c.response):d(c.status)};c.onerror=d;c.send(null)}):fetch(a,{credentials:"same-origin"}).then(b=>
b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));e.print||console.log.bind(console);var M=e.printErr||console.error.bind(console);Object.assign(e,C);C=null;e.arguments&&(D=e.arguments);e.thisProgram&&(E=e.thisProgram);var N=e.wasmBinary,y,O=!1,z,A,B;
function fa(){var a=y.buffer;e.HEAP8=new Int8Array(a);e.HEAP16=new Int16Array(a);e.HEAPU8=z=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAP32=A=new Int32Array(a);e.HEAPU32=B=new Uint32Array(a);e.HEAPF32=new Float32Array(a);e.HEAPF64=new Float64Array(a)}var ha=[],ia=[],ja=[],ka=[];function la(){var a=e.preRun.shift();ha.unshift(a)}var P=0,Q=null,R=null,ma=a=>a.startsWith("data:application/octet-stream;base64,"),L=a=>a.startsWith("file://"),S;
function na(a){if(a==S&&N)return new Uint8Array(N);if(J)return J(a);throw"both async and sync fetching of the wasm failed";}function oa(a){return N?Promise.resolve().then(()=>na(a)):H(a).then(b=>new Uint8Array(b),()=>na(a))}function pa(a,b,d){return oa(a).then(c=>WebAssembly.instantiate(c,b)).then(d,c=>{M(`failed to asynchronously prepare wasm: ${c}`);e.onAbort?.(c);c="Aborted("+c+")";M(c);O=!0;throw new WebAssembly.RuntimeError(c+". Build with -sASSERTIONS for more info.");})}
function qa(a,b){var d=S;N||"function"!=typeof WebAssembly.instantiateStreaming||ma(d)||L(d)||k||"function"!=typeof fetch?pa(d,a,b):fetch(d,{credentials:"same-origin"}).then(c=>WebAssembly.instantiateStreaming(c,a).then(b,function(f){M(`wasm streaming compile failed: ${f}`);M("falling back to ArrayBuffer instantiation");return pa(d,a,b)}))}class ra{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
var T=a=>{for(;0<a.length;)a.shift()(e)},sa=e.noExitRuntime||!0,U="undefined"!=typeof TextDecoder?new TextDecoder:void 0,W=(a=0)=>{for(var b=z,d=a+NaN,c=a;b[c]&&!(c>=d);)++c;if(16<c-a&&b.buffer&&U)return U.decode(b.subarray(a,c));for(d="";a<c;){var f=b[a++];if(f&128){var u=b[a++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|u);else{var m=b[a++]&63;f=224==(f&240)?(f&15)<<12|u<<6|m:(f&7)<<18|u<<12|m<<6|b[a++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|
f&1023))}}else d+=String.fromCharCode(f)}return d},ta=a=>{sa||(e.onExit?.(a),O=!0);F(a,new ra(a))},ua={k:(a,b,d)=>z.copyWithin(a,b,b+d),c:function(a){console.error("LoaderMain: [ERROR] "+(a?W(a):""))},b:function(a){console.log("LoaderMain: [INFO] "+(a?W(a):""))},j:a=>{var b=z.length;a>>>=0;if(67108864<a)return!1;for(var d=1;4>=d;d*=2){var c=b*(1+.2/d);c=Math.min(c,a+100663296);a:{c=(Math.min(67108864,65536*Math.ceil(Math.max(a,c)/65536))-y.buffer.byteLength+65535)/65536|0;try{y.grow(c);fa();var f=
1;break a}catch(u){}f=void 0}if(f)return!0}return!1},n:function(){return t.byteLength},i:function(){return"undefined"!==typeof WebAssembly.Suspending},f:function(a,b){const d=v.length;v.push(U.decode(new Uint8Array(t,a,b)));return d},e:function(a){const b=v.length;v.push(new Uint8Array(a));return b},d:function(a,b,d){z.set(new Uint8Array(t,b,d),a)},g:function(a,b,d,c){v[a].set(new Uint8Array(t,d,c),b)},l:function(a,b,d,c){v[a].set(new Uint8Array(z.buffer,b,c),d)},a:function(a){t=v=null;setTimeout(x,
20);const b=w(),d=document.createElement("div");d.setAttribute("style","z-index:100;position:absolute;top:10%;left:10%;right:10%;bottom:10%;background-color:white;border:2px solid #cccccc;overflow-x:hidden;overflow-y:scroll;");d.classList.add("_eaglercraftX_loader_failed_container");a=a?W(a):"";console.error("LoaderMain: [FAILED] "+a);const c=document.createElement("h2");c.style.color="#AA0000";c.style.padding="25px";c.style.fontFamily="sans-serif";c.style.marginBlock="0px";c.appendChild(document.createTextNode(a));
d.appendChild(c);a=document.createElement("h4");a.style.color="#AA0000";a.style.padding="25px";a.style.fontFamily="sans-serif";a.style.marginBlock="0px";a.appendChild(document.createTextNode("Try again later"));d.appendChild(a);b.appendChild(d)},h:function(a){var b=a>>2;a=v[A[b]];var d=v[A[b+1]];a=a?URL.createObjectURL(new Blob([a],{type:d||"image/png"})):null;b=(b=v[A[b+2]])?U.decode(b):"<h1>Failed to load error screen</h1>";t=v=null;setTimeout(x,20);d=w();var c=document.createElement("img");c.setAttribute("style",
"z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");c.src=a;d.appendChild(c);a=document.createElement("div");a.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:2px solid #cccccc;");a.classList.add("_eaglercraftX_jspi_unsupported_container");c=document.createElement("iframe");c.classList.add("_eaglercraftX_jspi_unsupported_frame");c.setAttribute("style","border:none;width:100%;height:100%;");c.srcdoc=b;a.appendChild(c);
d.appendChild(a)},m:function(a){a>>=2;const b=URL.createObjectURL(new Blob([v[A[a]]],{type:"text/javascript;charset=utf-8"})),d=URL.createObjectURL(new Blob([v[A[a+1]]],{type:"application/wasm"})),c=URL.createObjectURL(new Blob([v[A[a+2]]],{type:"application/octet-stream"})),f=URL.createObjectURL(new Blob([v[A[a+3]]],{type:"application/wasm"})),u=URL.createObjectURL(new Blob([v[A[a+4]]],{type:v[A[a+5]]})),m=URL.createObjectURL(new Blob([v[A[a+6]]],{type:v[A[a+7]]})),V=URL.createObjectURL(new Blob([v[A[a+
8]]],{type:v[A[a+9]]})),I=A[a+10],q=Array(I);for(var h=0,l;h<I;++h)l=a+11+3*h,q[h]={data:v[A[l]],name:v[A[l+1]],path:v[A[l+2]]};t=v=null;setTimeout(x,20);window.__eaglercraftXLoaderContext={getEaglercraftXOpts:function(){return ca},getEagRuntimeJSURL:function(){return b},getClassesWASMURL:function(){return d},getClassesDeobfWASMURL:function(){return f},getClassesTEADBGURL:function(){return c},getEPKFiles:function(){return q},getRootElement:function(){return r},getMainArgs:function(){return[]},getImageURL:function(p){switch(p){case 0:return da;
case 1:return u;case 2:return m;case 3:return V;default:return null}},runMain:function(p){setTimeout(p,10)}};a=document.createElement("script");a.type="text/javascript";a.src=b;document.head.appendChild(a)}},X=function(){function a(d){X=d.exports;y=X.o;fa();ia.unshift(X.p);P--;e.monitorRunDependencies?.(P);0==P&&(null!==Q&&(clearInterval(Q),Q=null),R&&(d=R,R=null,d()));return X}P++;e.monitorRunDependencies?.(P);var b={a:ua};if(e.instantiateWasm)try{return e.instantiateWasm(b,a)}catch(d){return M(`Module.instantiateWasm callback failed with error: ${d}`),
!1}S??=ma("loader.wasm")?"loader.wasm":e.locateFile?e.locateFile("loader.wasm",G):G+"loader.wasm";qa(b,function(d){a(d.instance)});return{}}(),va=e._main=(a,b)=>(va=e._main=X.q)(a,b),Y=a=>(Y=X.s)(a),Z;R=function wa(){Z||xa();Z||(R=wa)};
function ya(a=[]){var b=va;a.unshift(E);var d=a.length,c=Y(4*(d+1)),f=c;a.forEach(m=>{for(var V=B,I=f>>2,q=0,h=0;h<m.length;++h){var l=m.charCodeAt(h);127>=l?q++:2047>=l?q+=2:55296<=l&&57343>=l?(q+=4,++h):q+=3}var p=q+1;h=q=Y(p);l=z;if(0<p){p=h+p-1;for(var K=0;K<m.length;++K){var n=m.charCodeAt(K);if(55296<=n&&57343>=n){var Aa=m.charCodeAt(++K);n=65536+((n&1023)<<10)|Aa&1023}if(127>=n){if(h>=p)break;l[h++]=n}else{if(2047>=n){if(h+1>=p)break;l[h++]=192|n>>6}else{if(65535>=n){if(h+2>=p)break;l[h++]=
224|n>>12}else{if(h+3>=p)break;l[h++]=240|n>>18;l[h++]=128|n>>12&63}l[h++]=128|n>>6&63}l[h++]=128|n&63}}l[h]=0}V[I]=q;f+=4});B[f>>2]=0;try{var u=b(d,c);ta(u)}catch(m){m instanceof ra||"unwind"==m||F(1,m)}}
function xa(){var a=D;function b(){if(!Z&&(Z=!0,e.calledRun=!0,!O)){T(ia);T(ja);e.onRuntimeInitialized?.();za&&ya(a);if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var d=e.postRun.shift();ka.unshift(d)}T(ka)}}if(!(0<P)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)la();T(ha);0<P||(e.setStatus?(e.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>e.setStatus(""),1);b()},1)):b())}}
if(e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();var za=!0;e.noInitialRun&&(za=!1);xa();}).call(this);
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB