@loaders.gl/textures
Version:
Framework-independent loaders for compressed and super compressed (basis) textures
119 lines (117 loc) • 128 kB
JavaScript
// @ts-nocheck
// Shim to provide workers a usable "window" object.
window = this;
// Shim to make sure Firefox doesn't choke on console-less web workers.
if (typeof(console) == 'undefined') {
console = {
log: function() {},
error: function() {}
}
}
// Emscripten-ified Crunch decoder in one massive block of Javascript!
function LoadCrunchDecoder() {
function e(a){throw a;}var j=void 0,l=!0,m=null,p=!1;function q(){return function(){}}var s;s||(s=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},v;for(v in s)s.hasOwnProperty(v)&&(aa[v]=s[v]);var w="object"===typeof process&&"function"===typeof require,ba="object"===typeof window,ca="function"===typeof importScripts,da=!ba&&!w&&!ca;
if(w){s.print=function(a){process.stdout.write(a+"\n")};s.printErr=function(a){process.stderr.write(a+"\n")};var ea=require("fs"),fa=require("path");s.read=function(a,b){var a=fa.normalize(a),c=ea.readFileSync(a);!c&&a!=fa.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=ea.readFileSync(a));c&&!b&&(c=c.toString());return c};s.readBinary=function(a){return s.read(a,l)};s.load=function(a){ga(read(a))};s.arguments=process.argv.slice(2);module.exports=s}else da?(s.print=print,"undefined"!=typeof printErr&&
(s.printErr=printErr),s.read="undefined"!=typeof read?read:function(){e("no read() available (jsc?)")},s.readBinary=function(a){return read(a,"binary")},"undefined"!=typeof scriptArgs?s.arguments=scriptArgs:"undefined"!=typeof arguments&&(s.arguments=arguments),this.Module=s):ba||ca?(s.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,p);b.send(m);return b.responseText},"undefined"!=typeof arguments&&(s.arguments=arguments),"undefined"!==typeof console?(s.print=function(a){console.log(a)},
s.printErr=function(a){console.log(a)}):s.print=q(),ba?this.Module=s:s.load=importScripts):e("Unknown runtime environment. Where are we?");function ga(a){eval.call(m,a)}"undefined"==!s.load&&s.read&&(s.load=function(a){ga(s.read(a))});s.print||(s.print=q());s.printErr||(s.printErr=s.print);s.arguments||(s.arguments=[]);s.print=s.print;s.P=s.printErr;s.preRun=[];s.postRun=[];for(v in aa)aa.hasOwnProperty(v)&&(s[v]=aa[v]);function ha(){return x}function ia(a){x=a}
function ja(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:if("*"===a[a.length-1])return ka;if("i"===a[0])return a=parseInt(a.substr(1)),A(0===a%8),a/8}}function la(a,b,c){c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),s["dynCall_"+a].apply(m,c)):s["dynCall_"+a].call(m,b)}var ma;
function na(){var a=[],b=0;this.za=function(c){c&=255;if(0==a.length){if(0==(c&128))return String.fromCharCode(c);a.push(c);b=192==(c&224)?1:224==(c&240)?2:3;return""}if(b&&(a.push(c),b--,0<b))return"";var c=a[0],d=a[1],f=a[2],h=a[3];2==a.length?c=String.fromCharCode((c&31)<<6|d&63):3==a.length?c=String.fromCharCode((c&15)<<12|(d&63)<<6|f&63):(c=(c&7)<<18|(d&63)<<12|(f&63)<<6|h&63,c=String.fromCharCode(Math.floor((c-65536)/1024)+55296,(c-65536)%1024+56320));a.length=0;return c};this.Cb=function(a){for(var a=
unescape(encodeURIComponent(a)),b=[],f=0;f<a.length;f++)b.push(a.charCodeAt(f));return b}}function oa(a){var b=x;x=x+a|0;x=x+7&-8;return b}function pa(a){var b=B;B=B+a|0;B=B+7&-8;return b}function qa(a){var b=D;D=D+a|0;D=D+7&-8;D>=ra&&E("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+ra+", or (2) set Module.TOTAL_MEMORY before the program runs.");return b}function sa(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)}
var ka=4,ta={},ua=p,va;function A(a,b){a||E("Assertion failed: "+b)}s.ccall=function(a,b,c,d){return wa(xa(a),b,c,d)};function xa(a){try{var b=s["_"+a];b||(b=eval("_"+a))}catch(c){}A(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}
function wa(a,b,c,d){function f(a,b){if("string"==b){if(a===m||a===j||0===a)return 0;a=H(a);b="array"}if("array"==b){h||(h=ha());var c=oa(a.length);ya(a,c);return c}return a}var h=0,g=0,d=d?d.map(function(a){return f(a,c[g++])}):[];a=a.apply(m,d);"string"==b?b=za(a):(A("array"!=b),b=a);h&&ia(h);return b}s.cwrap=function(a,b,c){var d=xa(a);return function(){return wa(d,b,c,Array.prototype.slice.call(arguments))}};
function Aa(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":I[a]=b;break;case "i8":I[a]=b;break;case "i16":J[a>>1]=b;break;case "i32":K[a>>2]=b;break;case "i64":va=[b>>>0,(tempDouble=b,1<=+Ba(tempDouble)?0<tempDouble?(Ca(+Da(tempDouble/4294967296),4294967295)|0)>>>0:~~+Ea((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];K[a>>2]=va[0];K[a+4>>2]=va[1];break;case "float":Fa[a>>2]=b;break;case "double":Ga[a>>3]=b;break;default:E("invalid type for setValue: "+c)}}
s.setValue=Aa;s.getValue=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return I[a];case "i8":return I[a];case "i16":return J[a>>1];case "i32":return K[a>>2];case "i64":return K[a>>2];case "float":return Fa[a>>2];case "double":return Ga[a>>3];default:E("invalid type for setValue: "+b)}return m};var Ha=1,Ia=2,Ja=4;s.ALLOC_NORMAL=0;s.ALLOC_STACK=Ha;s.ALLOC_STATIC=Ia;s.ALLOC_DYNAMIC=3;s.ALLOC_NONE=Ja;
function L(a,b,c,d){var f,h;"number"===typeof a?(f=l,h=a):(f=p,h=a.length);var g="string"===typeof b?b:m,c=c==Ja?d:[Ka,oa,pa,qa][c===j?Ia:c](Math.max(h,g?1:b.length));if(f){d=c;A(0==(c&3));for(a=c+(h&-4);d<a;d+=4)K[d>>2]=0;for(a=c+h;d<a;)I[d++|0]=0;return c}if("i8"===g)return a.subarray||a.slice?M.set(a,c):M.set(new Uint8Array(a),c),c;for(var d=0,i,r;d<h;){var t=a[d];"function"===typeof t&&(t=ta.Sd(t));f=g||b[d];0===f?d++:("i64"==f&&(f="i32"),Aa(c+d,t,f),r!==f&&(i=ja(f),r=f),d+=i)}return c}
s.allocate=L;function za(a,b){for(var c=p,d,f=0;;){d=M[a+f|0];if(128<=d)c=l;else if(0==d&&!b)break;f++;if(b&&f==b)break}b||(b=f);var h="";if(!c){for(;0<b;)d=String.fromCharCode.apply(String,M.subarray(a,a+Math.min(b,1024))),h=h?h+d:d,a+=1024,b-=1024;return h}c=new na;for(f=0;f<b;f++)d=M[a+f|0],h+=c.za(d);return h}s.Pointer_stringify=za;s.UTF16ToString=function(a){for(var b=0,c="";;){var d=J[a+2*b>>1];if(0==d)return c;++b;c+=String.fromCharCode(d)}};
s.stringToUTF16=function(a,b){for(var c=0;c<a.length;++c)J[b+2*c>>1]=a.charCodeAt(c);J[b+2*a.length>>1]=0};s.UTF32ToString=function(a){for(var b=0,c="";;){var d=K[a+4*b>>2];if(0==d)return c;++b;65536<=d?(d-=65536,c+=String.fromCharCode(55296|d>>10,56320|d&1023)):c+=String.fromCharCode(d)}};s.stringToUTF32=function(a,b){for(var c=0,d=0;d<a.length;++d){var f=a.charCodeAt(d);if(55296<=f&&57343>=f)var h=a.charCodeAt(++d),f=65536+((f&1023)<<10)|h&1023;K[b+4*c>>2]=f;++c}K[b+4*c>>2]=0};
function La(a){try{"number"===typeof a&&(a=za(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;var b=3,c={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},d=[],f=function(h,i,r){var i=i||Infinity,t="",y=[],u;if("N"!==a[b]){"K"===a[b]&&b++;var n=parseInt(a.substr(b));if(n){var F=n.toString().length;u=a.substr(b+F,n);b+=F+n}}else{b++;
"K"===a[b]&&b++;for(u=[];"E"!==a[b];)if("S"===a[b])b++,n=a.indexOf("_",b),u.push(d[a.substring(b,n)||0]||"?"),b=n+1;else{n=parseInt(a.substr(b));F=n.toString().length;if(!n||!F){b--;break}var G=a.substr(b+F,n);u.push(G);d.push(G);b+=F+n}b++;u=u.join("::");i--;if(0===i)return h?[u]:u}"I"===a[b]?(b++,n=f(l),F=f(l,1,l),t+=F[0]+" "+u+"<"+n.join(", ")+">"):t=u;a:for(;b<a.length&&0<i--;)if(u=a[b++],u in c)y.push(c[u]);else switch(u){case "P":y.push(f(l,1,l)[0]+"*");break;case "R":y.push(f(l,1,l)[0]+"&");
break;case "L":b++;n=a.indexOf("E",b)-b;y.push(a.substr(b,n));b+=n+2;break;case "A":n=parseInt(a.substr(b));b+=n.toString().length;"_"!==a[b]&&e("?");b++;y.push(f(l,1,l)[0]+" ["+n+"]");break;case "E":break a;default:t+="?"+u;break a}!r&&(1===y.length&&"void"===y[0])&&(y=[]);return h?y:t+("("+y.join(", ")+")")};return f()}catch(h){return a}}function Ma(){var a=Error().stack;return a?a.replace(/__Z[\w\d_]+/g,function(a){var c=La(a);return a===c?a:a+" ["+c+"]"}):"(no stack trace available)"}
var I,M,J,Na,K,Oa,Fa,Ga,Qa=0,B=0,Ra=0,x=0,Sa=0,Ta=0,D=0,ra=s.TOTAL_MEMORY||16777216;A("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"Cannot fallback to non-typed array case: Code is too specialized");var N=new ArrayBuffer(ra);I=new Int8Array(N);J=new Int16Array(N);K=new Int32Array(N);M=new Uint8Array(N);Na=new Uint16Array(N);Oa=new Uint32Array(N);Fa=new Float32Array(N);Ga=new Float64Array(N);K[0]=255;
A(255===M[0]&&0===M[3],"Typed arrays 2 must be run on a little-endian system");s.HEAP=j;s.HEAP8=I;s.HEAP16=J;s.HEAP32=K;s.HEAPU8=M;s.HEAPU16=Na;s.HEAPU32=Oa;s.HEAPF32=Fa;s.HEAPF64=Ga;function Ua(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.M;"number"===typeof c?b.ta===j?la("v",c):la("vi",c,[b.ta]):c(b.ta===j?m:b.ta)}}}var Va=[],O=[],Wa=[],Xa=[],Ya=[],Za=p;function $a(a){Va.unshift(a)}s.addOnPreRun=s.Id=$a;s.addOnInit=s.Fd=function(a){O.unshift(a)};
s.addOnPreMain=s.Hd=function(a){Wa.unshift(a)};s.addOnExit=s.Ed=function(a){Xa.unshift(a)};function ab(a){Ya.unshift(a)}s.addOnPostRun=s.Gd=ab;function H(a,b,c){a=(new na).Cb(a);c&&(a.length=c);b||a.push(0);return a}s.intArrayFromString=H;s.intArrayToString=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];255<d&&(d&=255);b.push(String.fromCharCode(d))}return b.join("")};s.writeStringToMemory=function(a,b,c){a=H(a,c);for(c=0;c<a.length;)I[b+c|0]=a[c],c+=1};
function ya(a,b){for(var c=0;c<a.length;c++)I[b+c|0]=a[c]}s.writeArrayToMemory=ya;s.writeAsciiToMemory=function(a,b,c){for(var d=0;d<a.length;d++)I[b+d|0]=a.charCodeAt(d);c||(I[b+a.length|0]=0)};function bb(a,b){return 0<=a?a:32>=b?2*Math.abs(1<<b-1)+a:Math.pow(2,b)+a}function cb(a,b){if(0>=a)return a;var c=32>=b?Math.abs(1<<b-1):Math.pow(2,b-1);if(a>=c&&(32>=b||a>c))a=-2*c+a;return a}Math.imul||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.Vd=Math.imul;
var Ba=Math.abs,Ea=Math.ceil,Da=Math.floor,Ca=Math.min,Q=0,db={},eb=m,fb=m;function gb(a){Q++;s.monitorRunDependencies&&s.monitorRunDependencies(Q);a?(A(!db[a]),db[a]=1):s.P("warning: run dependency added without ID")}s.addRunDependency=gb;function hb(a){Q--;s.monitorRunDependencies&&s.monitorRunDependencies(Q);a?(A(db[a]),delete db[a]):s.P("warning: run dependency removed without ID");0==Q&&(eb!==m&&(clearInterval(eb),eb=m),fb&&(a=fb,fb=m,a()))}s.removeRunDependency=hb;s.preloadedImages={};
s.preloadedAudios={};Qa=8;B=Qa+1376;O.push({M:function(){ib()}});
L([109,95,108,111,111,107,117,112,91,116,93,32,61,61,32,99,85,73,78,84,51,50,95,77,65,88,0,0,0,0,0,0,116,32,60,32,40,49,85,32,60,60,32,116,97,98,108,101,95,98,105,116,115,41,0,0,112,67,111,100,101,115,105,122,101,115,91,115,121,109,95,105,110,100,101,120,93,32,61,61,32,99,111,100,101,115,105,122,101,0,0,0,0,0,0,0,115,111,114,116,101,100,95,112,111,115,32,60,32,116,111,116,97,108,95,117,115,101,100,95,115,121,109,115,0,0,0,0,110,117,109,95,99,111,100,101,115,91,99,93,0,0,0,0,110,101,119,95,99,97,112,
97,99,105,116,121,32,38,38,32,40,110,101,119,95,99,97,112,97,99,105,116,121,32,62,32,109,95,99,97,112,97,99,105,116,121,41,0,0,0,0,0,40,108,101,110,32,62,61,32,49,41,32,38,38,32,40,108,101,110,32,60,61,32,99,77,97,120,69,120,112,101,99,116,101,100,67,111,100,101,83,105,122,101,41,0,0,0,0,0,110,101,120,116,95,108,101,118,101,108,95,111,102,115,32,62,32,99,117,114,95,108,101,118,101,108,95,111,102,115,0,0,110,117,109,32,38,38,32,40,110,117,109,32,61,61,32,126,110,117,109,95,99,104,101,99,107,41,0,0,
0,0,0,0,105,32,60,32,109,95,115,105,122,101,0,0,0,0,0,0,109,105,110,95,110,101,119,95,99,97,112,97,99,105,116,121,32,60,32,40,48,120,55,70,70,70,48,48,48,48,85,32,47,32,101,108,101,109,101,110,116,95,115,105,122,101,41,0,109,111,100,101,108,46,109,95,99,111,100,101,95,115,105,122,101,115,91,115,121,109,93,32,61,61,32,108,101,110,0,0,116,32,33,61,32,99,85,73,78,84,51,50,95,77,65,88,0,0,0,0,0,0,0,0,109,95,98,105,116,95,99,111,117,110,116,32,60,61,32,99,66,105,116,66,117,102,83,105,122,101,0,0,0,0,0,
0,48,0,0,0,0,0,0,0,46,46,47,105,110,99,47,99,114,110,95,100,101,99,111,109,112,46,104,0,0,0,0,0,40,116,111,116,97,108,95,115,121,109,115,32,62,61,32,49,41,32,38,38,32,40,116,111,116,97,108,95,115,121,109,115,32,60,61,32,112,114,101,102,105,120,95,99,111,100,105,110,103,58,58,99,77,97,120,83,117,112,112,111,114,116,101,100,83,121,109,115,41,0,0,0,102,97,108,115,101,0,0,0,99,114,110,100,95,102,114,101,101,58,32,98,97,100,32,112,116,114,0,0,0,0,0,0,99,114,110,100,95,114,101,97,108,108,111,99,58,32,98,
97,100,32,112,116,114,0,0,0,40,40,117,105,110,116,51,50,41,112,95,110,101,119,32,38,32,40,67,82,78,68,95,77,73,78,95,65,76,76,79,67,95,65,76,73,71,78,77,69,78,84,32,45,32,49,41,41,32,61,61,32,48,0,0,0,99,114,110,100,95,109,97,108,108,111,99,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,0,0,0,0,0,0,99,114,110,100,95,109,97,108,108,111,99,58,32,115,105,122,101,32,116,111,111,32,98,105,103,0,0,0,0,0,0,0,109,95,115,105,122,101,32,60,61,32,109,95,99,97,112,97,99,105,116,121,0,0,0,0,37,115,40,
37,117,41,58,32,65,115,115,101,114,116,105,111,110,32,102,97,105,108,117,114,101,58,32,34,37,115,34,10,0,0,0,0,0,0,0,0,17,18,19,20,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,16,0,0,0,1,2,2,3,3,3,3,4,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,2,1,2,0,0,0,1,0,2,1,0,2,0,0,1,2,3,0,2,3,4,5,6,7,1,0,2,3,1,0,0,0,0],"i8",Ja,8);var jb=sa(L(12,"i8",Ia),8);A(0==jb%8);s._strlen=kb;function lb(a){return 0>a||0===a&&-Infinity===1/a}
function mb(a,b){function c(a){var c;"double"===a?c=Ga[b+f>>3]:"i64"==a?(c=[K[b+f>>2],K[b+(f+8)>>2]],f+=8):(a="i32",c=K[b+f>>2]);f+=Math.max(Math.max(ja(a),ka),8);return c}for(var d=a,f=0,h=[],g,i;;){var r=d;g=I[d];if(0===g)break;i=I[d+1|0];if(37==g){var t=p,y=p,u=p,n=p,F=p;a:for(;;){switch(i){case 43:t=l;break;case 45:y=l;break;case 35:u=l;break;case 48:if(n)break a;else{n=l;break}case 32:F=l;break;default:break a}d++;i=I[d+1|0]}var G=0;if(42==i)G=c("i32"),d++,i=I[d+1|0];else for(;48<=i&&57>=i;)G=
10*G+(i-48),d++,i=I[d+1|0];var P=p;if(46==i){var C=0,P=l;d++;i=I[d+1|0];if(42==i)C=c("i32"),d++;else for(;;){i=I[d+1|0];if(48>i||57<i)break;C=10*C+(i-48);d++}i=I[d+1|0]}else C=6;var z;switch(String.fromCharCode(i)){case "h":i=I[d+2|0];104==i?(d++,z=1):z=2;break;case "l":i=I[d+2|0];108==i?(d++,z=8):z=4;break;case "L":case "q":case "j":z=8;break;case "z":case "t":case "I":z=4;break;default:z=m}z&&d++;i=I[d+1|0];switch(String.fromCharCode(i)){case "d":case "i":case "u":case "o":case "x":case "X":case "p":r=
100==i||105==i;z=z||4;g=c("i"+8*z);var k;8==z&&(g=117==i?+(g[0]>>>0)+4294967296*+(g[1]>>>0):+(g[0]>>>0)+4294967296*+(g[1]|0));4>=z&&(g=(r?cb:bb)(g&Math.pow(256,z)-1,8*z));var T=Math.abs(g),r="";if(100==i||105==i)k=cb(g,8*z).toString(10);else if(117==i)k=bb(g,8*z).toString(10),g=Math.abs(g);else if(111==i)k=(u?"0":"")+T.toString(8);else if(120==i||88==i){r=u&&0!=g?"0x":"";if(0>g){g=-g;k=(T-1).toString(16);T=[];for(u=0;u<k.length;u++)T.push((15-parseInt(k[u],16)).toString(16));for(k=T.join("");k.length<
2*z;)k="f"+k}else k=T.toString(16);88==i&&(r=r.toUpperCase(),k=k.toUpperCase())}else 112==i&&(0===T?k="(nil)":(r="0x",k=T.toString(16)));if(P)for(;k.length<C;)k="0"+k;0<=g&&(t?r="+"+r:F&&(r=" "+r));"-"==k.charAt(0)&&(r="-"+r,k=k.substr(1));for(;r.length+k.length<G;)y?k+=" ":n?k="0"+k:r=" "+r;k=r+k;k.split("").forEach(function(a){h.push(a.charCodeAt(0))});break;case "f":case "F":case "e":case "E":case "g":case "G":g=c("double");if(isNaN(g))k="nan",n=p;else if(isFinite(g)){P=p;z=Math.min(C,20);if(103==
i||71==i)P=l,C=C||1,z=parseInt(g.toExponential(z).split("e")[1],10),C>z&&-4<=z?(i=(103==i?"f":"F").charCodeAt(0),C-=z+1):(i=(103==i?"e":"E").charCodeAt(0),C--),z=Math.min(C,20);if(101==i||69==i)k=g.toExponential(z),/[eE][-+]\d$/.test(k)&&(k=k.slice(0,-1)+"0"+k.slice(-1));else if(102==i||70==i)k=g.toFixed(z),0===g&&lb(g)&&(k="-"+k);r=k.split("e");if(P&&!u)for(;1<r[0].length&&-1!=r[0].indexOf(".")&&("0"==r[0].slice(-1)||"."==r[0].slice(-1));)r[0]=r[0].slice(0,-1);else for(u&&-1==k.indexOf(".")&&(r[0]+=
".");C>z++;)r[0]+="0";k=r[0]+(1<r.length?"e"+r[1]:"");69==i&&(k=k.toUpperCase());0<=g&&(t?k="+"+k:F&&(k=" "+k))}else k=(0>g?"-":"")+"inf",n=p;for(;k.length<G;)k=y?k+" ":n&&("-"==k[0]||"+"==k[0])?k[0]+"0"+k.slice(1):(n?"0":" ")+k;97>i&&(k=k.toUpperCase());k.split("").forEach(function(a){h.push(a.charCodeAt(0))});break;case "s":n=(t=c("i8*"))?kb(t):6;P&&(n=Math.min(n,C));if(!y)for(;n<G--;)h.push(32);if(t)for(u=0;u<n;u++)h.push(M[t++|0]);else h=h.concat(H("(null)".substr(0,n),l));if(y)for(;n<G--;)h.push(32);
break;case "c":for(y&&h.push(c("i8"));0<--G;)h.push(32);y||h.push(c("i8"));break;case "n":y=c("i32*");K[y>>2]=h.length;break;case "%":h.push(g);break;default:for(u=r;u<d+2;u++)h.push(I[u])}d+=2}else h.push(g),d+=1}return h}function nb(a,b,c,d){c=mb(c,d);d=b===j?c.length:Math.min(c.length,Math.max(b-1,0));if(0>a)var a=-a,f=Ka(d+1),a=K[a>>2]=f;for(f=0;f<d;f++)I[a+f|0]=c[f];if(d<b||b===j)I[a+f|0]=0;return c.length}
var R={W:1,qa:2,qd:3,nc:4,L:5,Ga:6,Kb:7,Kc:8,ba:9,Yb:10,V:11,Ad:11,lb:12,eb:13,ic:14,Wc:15,Wb:16,Da:17,Bd:18,Ea:19,Xc:20,oa:21,u:22,Fc:23,kb:24,ad:25,xd:26,jc:27,Sc:28,sa:29,nd:30,yc:31,fd:32,fc:33,kd:34,Oc:42,lc:43,Zb:44,pc:45,qc:46,rc:47,xc:48,yd:49,Ic:50,oc:51,dc:35,Lc:37,Pb:52,Sb:53,Cd:54,Gc:55,Tb:56,Ub:57,ec:35,Vb:59,Uc:60,Jc:61,ud:62,Tc:63,Pc:64,Qc:65,md:66,Mc:67,Nb:68,rd:69,$b:70,gd:71,Ac:72,gc:73,Rb:74,bd:76,Qb:77,ld:78,sc:79,tc:80,wc:81,vc:82,uc:83,Vc:38,Fa:39,Bc:36,pa:40,ra:95,ed:96,cc:104,
Hc:105,Ob:97,jd:91,Zc:88,Rc:92,od:108,bc:111,Lb:98,ac:103,Ec:101,Cc:100,vd:110,kc:112,hb:113,ib:115,fb:114,gb:89,zc:90,hd:93,pd:94,Mb:99,Dc:102,jb:106,ca:107,wd:109,zd:87,hc:122,sd:116,$c:95,Nc:123,mc:84,cd:75,Xb:125,Yc:131,dd:130,td:86},ob={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",
12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",
34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",
53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",
74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",
90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",
107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},pb=0;function S(a){return K[pb>>2]=a}
function qb(a){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1)}function rb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function sb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=rb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a}
function U(){var a=Array.prototype.slice.call(arguments,0);return sb(a.filter(function(a){"string"!==typeof a&&e(new TypeError("Arguments to path.join must be strings"));return a}).join("/"))}function tb(){for(var a="",b=p,c=arguments.length-1;-1<=c&&!b;c--){var d=0<=c?arguments[c]:"/";"string"!==typeof d&&e(new TypeError("Arguments to path.resolve must be strings"));d&&(a=d+"/"+a,b="/"===d.charAt(0))}a=rb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var ub=[];
function vb(a,b){ub[a]={input:[],O:[],Z:b};wb[a]={k:xb}}
var xb={open:function(a){var b=ub[a.g.ka];b||e(new V(R.Ea));a.B=b;a.seekable=p},close:function(a){a.B.O.length&&a.B.Z.ja(a.B,10)},K:function(a,b,c,d){(!a.B||!a.B.Z.Qa)&&e(new V(R.Ga));for(var f=0,h=0;h<d;h++){var g;try{g=a.B.Z.Qa(a.B)}catch(i){e(new V(R.L))}g===j&&0===f&&e(new V(R.V));if(g===m||g===j)break;f++;b[c+h]=g}f&&(a.g.timestamp=Date.now());return f},write:function(a,b,c,d){(!a.B||!a.B.Z.ja)&&e(new V(R.Ga));for(var f=0;f<d;f++)try{a.B.Z.ja(a.B,b[c+f])}catch(h){e(new V(R.L))}d&&(a.g.timestamp=
Date.now());return f}},W={cb:1,na:2,bb:3,D:function(){return W.createNode(m,"/",16895,0)},createNode:function(a,b,c,d){(24576===(c&61440)||4096===(c&61440))&&e(new V(R.W));c=yb(a,b,c,d);16384===(c.mode&61440)?(c.n={J:W.n.J,A:W.n.A,wa:W.n.wa,Q:W.n.Q,Q:W.n.Q,rename:W.n.rename,ab:W.n.ab,Za:W.n.Za,Xa:W.n.Xa,ma:W.n.ma},c.k={N:W.k.N},c.o={}):32768===(c.mode&61440)?(c.n={J:W.n.J,A:W.n.A},c.k={N:W.k.N,K:W.k.K,write:W.k.write,Ja:W.k.Ja,Ta:W.k.Ta},c.o=[],c.ea=W.na):40960===(c.mode&61440)?(c.n={J:W.n.J,A:W.n.A,
la:W.n.la},c.k={}):8192===(c.mode&61440)&&(c.n={J:W.n.J,A:W.n.A},c.k=zb);c.timestamp=Date.now();a&&(a.o[b]=c);return c},ua:function(a){a.ea!==W.na&&(a.o=Array.prototype.slice.call(a.o),a.ea=W.na)},n:{J:function(a){var b={};b.Qd=8192===(a.mode&61440)?a.id:1;b.Wd=a.id;b.mode=a.mode;b.ae=1;b.uid=0;b.Ud=0;b.ka=a.ka;b.size=16384===(a.mode&61440)?4096:32768===(a.mode&61440)?a.o.length:40960===(a.mode&61440)?a.link.length:0;b.Kd=new Date(a.timestamp);b.$d=new Date(a.timestamp);b.Pd=new Date(a.timestamp);
b.pb=4096;b.Md=Math.ceil(b.size/b.pb);return b},A:function(a,b){b.mode!==j&&(a.mode=b.mode);b.timestamp!==j&&(a.timestamp=b.timestamp);if(b.size!==j){W.ua(a);var c=a.o;if(b.size<c.length)c.length=b.size;else for(;b.size>c.length;)c.push(0)}},wa:function(){e(new V(R.qa))},Q:function(a,b,c,d){return W.createNode(a,b,c,d)},rename:function(a,b,c){if(16384===(a.mode&61440)){var d;try{d=Ab(b,c)}catch(f){}if(d)for(var h in d.o)e(new V(R.Fa))}delete a.parent.o[a.name];a.name=c;b.o[c]=a;a.parent=b},ab:function(a,
b){delete a.o[b]},Za:function(a,b){var c=Ab(a,b),d;for(d in c.o)e(new V(R.Fa));delete a.o[b]},Xa:function(a){var b=[".",".."],c;for(c in a.o)a.o.hasOwnProperty(c)&&b.push(c);return b},ma:function(a,b,c){a=W.createNode(a,b,41471,0);a.link=c;return a},la:function(a){40960!==(a.mode&61440)&&e(new V(R.u));return a.link}},k:{K:function(a,b,c,d,f){a=a.g.o;if(f>=a.length)return 0;d=Math.min(a.length-f,d);A(0<=d);if(8<d&&a.subarray)b.set(a.subarray(f,f+d),c);else for(var h=0;h<d;h++)b[c+h]=a[f+h];return d},
write:function(a,b,c,d,f,h){var g=a.g;g.timestamp=Date.now();a=g.o;if(d&&0===a.length&&0===f&&b.subarray)return A(b.length),h&&b.buffer===I.buffer&&0===c?(g.o=b,g.ea=W.cb):(g.o=new Uint8Array(b.subarray(c,c+d)),g.ea=W.bb),d;W.ua(g);for(a=g.o;a.length<f;)a.push(0);for(h=0;h<d;h++)a[f+h]=b[c+h];return d},N:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.g.mode&61440)&&(b+=a.g.o.length);0>b&&e(new V(R.u));a.Hb=[];return a.position=b},Ja:function(a,b,c){W.ua(a.g);a=a.g.o;for(b+=c;b>a.length;)a.push(0)},
Ta:function(a,b,c,d,f,h,g){32768!==(a.g.mode&61440)&&e(new V(R.Ea));a=a.g.o;if(!(g&2)&&(a.buffer===b||a.buffer===b.buffer))f=p,d=a.byteOffset;else{if(0<f||f+d<a.length)a=a.subarray?a.subarray(f,f+d):Array.prototype.slice.call(a,f,f+d);f=l;(d=Ka(d))||e(new V(R.lb));b.set(a,d)}return{de:d,Jd:f}}}},Bb=L(1,"i32*",Ia),Cb=L(1,"i32*",Ia),Db=L(1,"i32*",Ia),Eb=m,Fb=[],wb=[m],X=[m],Gb=1,Hb=m,Ib=l,V=m;function Jb(a){a instanceof V||e(a+" : "+Ma());S(a.Na)}
function Y(a,b){a=tb("/",a);b=b||{Aa:0};8<b.Aa&&e(new V(R.pa));for(var c=rb(a.split("/").filter(function(a){return!!a}),p),d=Eb,f="/",h=0;h<c.length;h++){var g=h===c.length-1;if(g&&b.parent)break;d=Ab(d,c[h]);f=U(f,c[h]);d.Ab&&(d=d.D.root);if(!g||b.X)for(g=0;40960===(d.mode&61440);){d=Y(f,{X:p}).g;d.n.la||e(new V(R.u));var d=d.n.la(d),i=tb;var r=qb(f),f=r[0],r=r[1];!f&&!r?f=".":(r&&(r=r.substr(0,r.length-1)),f+=r);f=i(f,d);d=Y(f,{Aa:b.Aa}).g;40<g++&&e(new V(R.pa))}}return{path:f,g:d}}
function Kb(a){for(var b;;){if(a===a.parent)return b?U(a.D.Ua,b):a.D.Ua;b=b?U(a.name,b):a.name;a=a.parent}}function Lb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%Hb.length}function Ab(a,b){var c=Mb(a,"x");c&&e(new V(c));for(c=Hb[Lb(a.id,b)];c;c=c.Bb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.n.wa(a,b)}
function yb(a,b,c,d){var f={id:Gb++,name:b,mode:c,n:{},k:{},ka:d,parent:m,D:m};a||(a=f);f.parent=a;f.D=a.D;Object.defineProperties(f,{K:{get:function(){return 365===(f.mode&365)},set:function(a){a?f.mode|=365:f.mode&=-366}},write:{get:function(){return 146===(f.mode&146)},set:function(a){a?f.mode|=146:f.mode&=-147}},yb:{get:function(){return 16384===(f.mode&61440)}},xb:{get:function(){return 8192===(f.mode&61440)}}});a=Lb(f.parent.id,f.name);f.Bb=Hb[a];return Hb[a]=f}
var Nb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Ob(a){var b=Nb[a];"undefined"===typeof b&&e(Error("Unknown file open mode: "+a));return b}function Mb(a,b){return Ib?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?R.eb:0}function Pb(a,b){try{return Ab(a,b),R.Da}catch(c){}return Mb(a,"wx")}
function Qb(a,b,c){var d;a:{b=b||1;for(c=c||4096;b<=c;b++)if(!X[b]){d=b;break a}e(new V(R.kb))}a.C=d;Object.defineProperties(a,{object:{get:function(){return a.g},set:function(b){a.g=b}},Yd:{get:function(){return 1!==(a.I&2097155)}},Zd:{get:function(){return 0!==(a.I&2097155)}},Xd:{get:function(){return a.I&1024}}});return X[d]=a}var zb={open:function(a){a.k=wb[a.g.ka].k;a.k.open&&a.k.open(a)},N:function(){e(new V(R.sa))}};
function Rb(a,b){var c;b&&(c=Y(b,{X:p}),b=c.path);var d={type:a,ce:{},Ua:b,root:m},f=a.D(d);f.D=d;d.root=f;c&&(c.g.D=d,c.g.Ab=l,"/"===b&&(Eb=d.root));Fb.push(d);return f}function Sb(a,b,c){var d=Y(a,{parent:l}).g,a="/"===a?"/":qb(a)[2],f=Pb(d,a);f&&e(new V(f));d.n.Q||e(new V(R.W));return d.n.Q(d,a,b,c)}function Tb(a,b){b=(b!==j?b:438)&4095;b|=32768;return Sb(a,b,0)}function Ub(a,b){b=(b!==j?b:511)&1023;b|=16384;return Sb(a,b,0)}
function Vb(a,b,c){"undefined"===typeof c&&(c=b,b=438);return Sb(a,b|8192,c)}function Wb(a,b){var c=Y(b,{parent:l}).g,d="/"===b?"/":qb(b)[2],f=Pb(c,d);f&&e(new V(f));c.n.ma||e(new V(R.W));return c.n.ma(c,d,a)}function Xb(a,b){var c;c="string"===typeof a?Y(a,{X:l}).g:a;c.n.A||e(new V(R.W));c.n.A(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}
function Yb(a,b){var c,a=sb(a),b="string"===typeof b?Ob(b):b;c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var d;try{d=Y(a,{X:!(b&131072)}).g}catch(f){}b&64&&(d?b&128&&e(new V(R.Da)):d=Sb(a,c,0));d||e(new V(R.qa));8192===(d.mode&61440)&&(b&=-513);d?40960===(d.mode&61440)?c=R.pa:16384===(d.mode&61440)&&(0!==(b&2097155)||b&512)?c=R.oa:(c=["r","w","rw"][b&2097155],b&512&&(c+="w"),c=Mb(d,c)):c=R.qa;c&&e(new V(c));if(b&512){c=d;c="string"===typeof c?Y(c,{X:l}).g:c;c.n.A||e(new V(R.W));16384===(c.mode&
61440)&&e(new V(R.oa));32768!==(c.mode&61440)&&e(new V(R.u));var h=Mb(c,"w");h&&e(new V(h));c.n.A(c,{size:0,timestamp:Date.now()})}b&=-641;d=Qb({g:d,path:Kb(d),I:b,seekable:l,position:0,k:d.k,Hb:[],error:p},j,j);d.k.open&&d.k.open(d);s.logReadFiles&&!(b&1)&&(Zb||(Zb={}),a in Zb||(Zb[a]=1,s.printErr("read file: "+a)));return d}function $b(a){try{a.k.close&&a.k.close(a)}catch(b){e(b)}finally{X[a.C]=m}}
function ac(a,b,c,d,f,h){(0>d||0>f)&&e(new V(R.u));0===(a.I&2097155)&&e(new V(R.ba));16384===(a.g.mode&61440)&&e(new V(R.oa));a.k.write||e(new V(R.u));var g=l;"undefined"===typeof f?(f=a.position,g=p):a.seekable||e(new V(R.sa));a.I&1024&&((!a.seekable||!a.k.N)&&e(new V(R.sa)),a.k.N(a,0,2));b=a.k.write(a,b,c,d,f,h);g||(a.position+=b);return b}function bc(){V||(V=function(a){this.Na=a;for(var b in R)if(R[b]===a){this.code=b;break}this.message=ob[a];this.stack=Ma()},V.prototype=Error())}var cc;
function dc(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}function ec(a,b,c,d,f,h){a=b?U("string"===typeof a?a:Kb(a),b):a;d=dc(d,f);f=Tb(a,d);if(c){if("string"===typeof c){for(var b=Array(c.length),g=0,i=c.length;g<i;++g)b[g]=c.charCodeAt(g);c=b}Xb(a,d|146);b=Yb(a,"w");ac(b,c,0,c.length,0,h);$b(b);Xb(a,d)}return f}
function fc(a,b,c,d){a=U("string"===typeof a?a:Kb(a),b);b=dc(!!c,!!d);fc.Sa||(fc.Sa=64);var f;f=fc.Sa++<<8|0;wb[f]={k:{open:function(a){a.seekable=p},close:function(){d&&(d.buffer&&d.buffer.length)&&d(10)},K:function(a,b,d,f){for(var t=0,y=0;y<f;y++){var u;try{u=c()}catch(n){e(new V(R.L))}u===j&&0===t&&e(new V(R.V));if(u===m||u===j)break;t++;b[d+y]=u}t&&(a.g.timestamp=Date.now());return t},write:function(a,b,c,f){for(var t=0;t<f;t++)try{d(b[c+t])}catch(y){e(new V(R.L))}f&&(a.g.timestamp=Date.now());
return t}}};return Vb(a,b,f)}function gc(a){if(a.xb||a.yb||a.link||a.o)return l;var b=l;"undefined"!==typeof XMLHttpRequest&&e(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."));if(s.read)try{a.o=H(s.read(a.url),l)}catch(c){b=p}else e(Error("Cannot load without read() or XMLHttpRequest."));b||S(R.L);return b}
var Zb,Z={D:function(){return yb(m,"/",16895,0)},sb:function(a,b,c){c&&A(1==b==(6==c));a={tb:a,type:b,protocol:c,p:m,$:{},ya:[],R:[],T:Z.q};b=Z.ia();c=yb(Z.root,b,49152,0);c.S=a;b=Qb({path:b,g:c,I:Ob("r+"),seekable:p,k:Z.k});a.$a=b;return a},ub:function(a){a=X[a];return!a||49152!==(a.g.mode&49152)?m:a.g.S},k:{Wa:function(a){a=a.g.S;return a.T.Wa(a)},Ra:function(a,b,c){a=a.g.S;return a.T.Ra(a,b,c)},K:function(a,b,c,d){a=a.g.S;d=a.T.Db(a,d);if(!d)return 0;b.set(d.buffer,c);return d.buffer.length},write:function(a,
b,c,d){a=a.g.S;return a.T.Fb(a,b,c,d)},close:function(a){a=a.g.S;a.T.close(a)}},ia:function(){Z.ia.Ma||(Z.ia.Ma=0);return"socket["+Z.ia.Ma++ +"]"},q:{fa:function(a,b,c){var d;"object"===typeof b&&(d=b,c=b=m);if(d)d.Ha?(b=d.Ha.ee,c=d.Ha.fe):((c=/ws[s]?:\/\/([^:]+):(\d+)/.exec(d.url))||e(Error("WebSocket URL must be in the format ws(s)://address:port")),b=c[1],c=parseInt(c[2],10));else try{d=new WebSocket("ws://"+b+":"+c,w?{}:["binary"]),d.binaryType="arraybuffer"}catch(f){e(new V(R.hb))}b={F:b,port:c,
e:d,ga:[]};Z.q.Ia(a,b);Z.q.wb(a,b);2===a.type&&"undefined"!==typeof a.U&&b.ga.push(new Uint8Array([255,255,255,255,112,111,114,116,(a.U&65280)>>8,a.U&255]));return b},ha:function(a,b,c){return a.$[b+":"+c]},Ia:function(a,b){a.$[b.F+":"+b.port]=b},Ya:function(a,b){delete a.$[b.F+":"+b.port]},wb:function(a,b){function c(c){A("string"!==typeof c&&c.byteLength!==j);var c=new Uint8Array(c),d=f;f=p;d&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&112===c[4]&&111===c[5]&&114===c[6]&&116===
c[7]?(c=c[8]<<8|c[9],Z.q.Ya(a,b),b.port=c,Z.q.Ia(a,b)):a.R.push({F:b.F,port:b.port,data:c})}function d(){try{for(var a=b.ga.shift();a;)b.e.send(a),a=b.ga.shift()}catch(c){b.e.close()}}var f=l;w?(b.e.Y("open",d),b.e.Y("message",function(a,b){b.Ld&&c((new Uint8Array(a)).buffer)}),b.e.Y("error",q())):(b.e.onopen=d,b.e.onmessage=function(a){c(a.data)})},Wa:function(a){if(1===a.type&&a.p)return a.ya.length?65:0;var b=0,c=1===a.type?Z.q.ha(a,a.G,a.H):m;if(a.R.length||!c||c&&c.e.readyState===c.e.aa||c&&
c.e.readyState===c.e.CLOSED)b|=65;if(!c||c&&c.e.readyState===c.e.OPEN)b|=4;if(c&&c.e.readyState===c.e.aa||c&&c.e.readyState===c.e.CLOSED)b|=16;return b},Ra:function(a,b,c){switch(b){case 21531:return b=0,a.R.length&&(b=a.R[0].data.length),K[c>>2]=b,0;default:return R.u}},close:function(a){if(a.p){try{a.p.close()}catch(b){}a.p=m}for(var c=Object.keys(a.$),d=0;d<c.length;d++){var f=a.$[c[d]];try{f.e.close()}catch(h){}Z.q.Ya(a,f)}return 0},bind:function(a,b,c){("undefined"!==typeof a.Ca||"undefined"!==
typeof a.U)&&e(new V(R.u));a.Ca=b;a.U=c||_mkport();if(2===a.type){a.p&&(a.p.close(),a.p=m);try{a.T.zb(a,0)}catch(d){d instanceof V||e(d),d.Na!==R.ra&&e(d)}}},Od:function(a,b,c){a.p&&e(new V(ERRNO_CODS.ra));if("undefined"!==typeof a.G&&"undefined"!==typeof a.H){var d=Z.q.ha(a,a.G,a.H);d&&(d.e.readyState===d.e.CONNECTING&&e(new V(R.fb)),e(new V(R.jb)))}b=Z.q.fa(a,b,c);a.G=b.F;a.H=b.port;e(new V(R.ib))},zb:function(a){w||e(new V(R.ra));a.p&&e(new V(R.u));var b=require("ws").Dd;a.p=new b({host:a.Ca,port:a.U});
a.p.Y("connection",function(b){if(1===a.type){var d=Z.sb(a.tb,a.type,a.protocol),b=Z.q.fa(d,b);d.G=b.F;d.H=b.port;a.ya.push(d)}else Z.q.fa(a,b)});a.p.Y("closed",function(){a.p=m});a.p.Y("error",q())},accept:function(a){a.p||e(new V(R.u));var b=a.ya.shift();b.$a.I=a.$a.I;return b},Td:function(a,b){var c,d;b?((a.G===j||a.H===j)&&e(new V(R.ca)),c=a.G,d=a.H):(c=a.Ca||0,d=a.U||0);return{F:c,port:d}},Fb:function(a,b,c,d,f,h){if(2===a.type){if(f===j||h===j)f=a.G,h=a.H;(f===j||h===j)&&e(new V(R.gb))}else f=
a.G,h=a.H;var g=Z.q.ha(a,f,h);1===a.type&&((!g||g.e.readyState===g.e.aa||g.e.readyState===g.e.CLOSED)&&e(new V(R.ca)),g.e.readyState===g.e.CONNECTING&&e(new V(R.V)));b=b instanceof Array||b instanceof ArrayBuffer?b.slice(c,c+d):b.buffer.slice(b.byteOffset+c,b.byteOffset+c+d);if(2===a.type&&(!g||g.e.readyState!==g.e.OPEN)){if(!g||g.e.readyState===g.e.aa||g.e.readyState===g.e.CLOSED)g=Z.q.fa(a,f,h);g.ga.push(b);return d}try{return g.e.send(b),d}catch(i){e(new V(R.u))}},Db:function(a,b){1===a.type&&
a.p&&e(new V(R.ca));var c=a.R.shift();if(!c){if(1===a.type){var d=Z.q.ha(a,a.G,a.H);if(d){if(d.e.readyState===d.e.aa||d.e.readyState===d.e.CLOSED)return m;e(new V(R.V))}e(new V(R.ca))}e(new V(R.V))}var d=c.data.byteLength||c.data.length,f=c.data.byteOffset||0,h=c.data.buffer||c.data,g=Math.min(b,d),i={buffer:new Uint8Array(h,f,g),F:c.F,port:c.port};1===a.type&&g<d&&(c.data=new Uint8Array(h,f+g,d-g),a.R.unshift(c));return i}}};
function hc(a,b,c){a=X[a];if(!a)return S(R.ba),-1;try{return ac(a,I,b,c)}catch(d){return Jb(d),-1}}function ic(a,b,c,d){c*=b;if(0==c)return 0;a=hc(d,a,c);if(-1==a){if(b=X[d])b.error=l;return 0}return Math.floor(a/b)}function jc(a,b,c){c=mb(b,c);b=ha();a=ic(L(c,"i8",Ha),1,c.length,a);ia(b);return a}s._memset=kc;s._memcpy=lc;function mc(a){s.print("exit("+a+") called");s.exit(a)}
function nc(a){nc.qb||(D=D+4095&-4096,nc.qb=l,A(qa),nc.ob=qa,qa=function(){E("cannot dynamically allocate, sbrk now has control")});var b=D;0!=a&&nc.ob(a);return b}var oc=p,pc=p,qc=p,rc=p,sc=j,tc=j;function uc(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var vc=[];function wc(){var a=s.canvas;vc.forEach(function(b){b(a.width,a.height)})}
function xc(){var a=s.canvas;this.Jb=a.width;this.Ib=a.height;a.width=screen.width;a.height=screen.height;"undefined"!=typeof SDL&&(a=Oa[SDL.screen+0*ka>>2],K[SDL.screen+0*ka>>2]=a|8388608);wc()}function yc(){var a=s.canvas;a.width=this.Jb;a.height=this.Ib;"undefined"!=typeof SDL&&(a=Oa[SDL.screen+0*ka>>2],K[SDL.screen+0*ka>>2]=a&-8388609);wc()}var zc,Ac,Bc,Cc;bc();Hb=Array(4096);Eb=yb(m,"/",16895,0);Rb(W,"/");Ub("/tmp");Ub("/dev");wb[259]={k:{K:function(){return 0},write:function(){return 0}}};
Vb("/dev/null",259);vb(1280,{Qa:function(a){if(!a.input.length){var b=m;if(w){if(b=process.stdin.read(),!b){if(process.stdin._readableState&&process.stdin._readableState.ended)return m;return}}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),b!==m&&(b+="\n")):"function"==typeof readline&&(b=readline(),b!==m&&(b+="\n"));if(!b)return m;a.input=H(b,l)}return a.input.shift()},ja:function(a,b){b===m||10===b?(s.print(a.O.join("")),a.O=[]):a.O.push(Dc.za(b))}});
vb(1536,{ja:function(a,b){b===m||10===b?(s.printErr(a.O.join("")),a.O=[]):a.O.push(Dc.za(b))}});Vb("/dev/tty",1280);Vb("/dev/tty1",1536);Ub("/dev/shm");Ub("/dev/shm/tmp");
O.unshift({M:function(){if(!s.noFSInit&&!cc){A(!cc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");cc=l;bc();s.stdin=s.stdin;s.stdout=s.stdout;s.stderr=s.stderr;s.stdin?fc("/dev","stdin",s.stdin):Wb("/dev/tty","/dev/stdin");s.stdout?fc("/dev","stdout",m,s.stdout):Wb("/dev/tty","/dev/stdout");s.stderr?fc("/dev","stderr",m,s.stderr):Wb("/dev/tty1","/dev/stderr");var a=Yb("/dev/stdin",
"r");K[Bb>>2]=a.C;A(1===a.C,"invalid handle for stdin ("+a.C+")");a=Yb("/dev/stdout","w");K[Cb>>2]=a.C;A(2===a.C,"invalid handle for stdout ("+a.C+")");a=Yb("/dev/stderr","w");K[Db>>2]=a.C;A(3===a.C,"invalid handle for stderr ("+a.C+")")}}});Wa.push({M:function(){Ib=p}});Xa.push({M:function(){cc=p;for(var a=0;a<X.length;a++){var b=X[a];b&&$b(b)}}});s.FS_createFolder=function(a,b,c,d){a=U("string"===typeof a?a:Kb(a),b);return Ub(a,dc(c,d))};
s.FS_createPath=function(a,b){for(var a="string"===typeof a?a:Kb(a),c=b.split("/").reverse();c.length;){var d=c.pop();if(d){var f=U(a,d);try{Ub(f)}catch(h){}a=f}}return f};s.FS_createDataFile=ec;
s.FS_createPreloadedFile=function(a,b,c,d,f,h,g,i,r){function t(){qc=document.pointerLockElement===n||document.mozPointerLockElement===n||document.webkitPointerLockElement===n}function y(c){function k(c){i||ec(a,b,c,d,f,r);h&&h();hb("cp "+F)}var n=p;s.preloadPlugins.forEach(function(a){!n&&a.canHandle(F)&&(a.handle(c,F,k,function(){g&&g();hb("cp "+F)}),n=l)});n||k(c)}s.preloadPlugins||(s.preloadPlugins=[]);if(!zc&&!ca){zc=l;try{new Blob,Ac=l}catch(u){Ac=p,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Bc=
"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:!Ac?console.log("warning: no BlobBuilder"):m;Cc="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:j;!s.Va&&"undefined"===typeof Cc&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),s.Va=l);s.preloadPlugins.push({canHandle:function(a){return!s.Va&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,
c,d){var f=m;if(Ac)try{f=new Blob([a],{type:uc(b)}),f.size!==a.length&&(f=new Blob([(new Uint8Array(a)).buffer],{type:uc(b)}))}catch(g){var h="Blob constructor present but fails: "+g+"; falling back to blob builder";ma||(ma={});ma[h]||(ma[h]=1,s.P(h))}f||(f=new Bc,f.append((new Uint8Array(a)).buffer),f=f.getBlob());var i=Cc.createObjectURL(f),n=new Image;n.onload=function(){A(n.complete,"Image "+b+" could not be decoded");var d=document.createElement("canvas");d.width=n.width;d.height=n.height;d.getContext("2d").drawImage(n,
0,0);s.preloadedImages[b]=d;Cc.revokeObjectURL(i);c&&c(a)};n.onerror=function(){console.log("Image "+i+" could not be decoded");d&&d()};n.src=i}});s.preloadPlugins.push({canHandle:function(a){return!s.be&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,d){function f(d){h||(h=l,s.preloadedAudios[b]=d,c&&c(a))}function g(){h||(h=l,s.preloadedAudios[b]=new Audio,d&&d())}var h=p;if(Ac){try{var i=new Blob([a],{type:uc(b)})}catch(n){return g()}var i=Cc.createObjectURL(i),t=new Audio;t.addEventListener("canplaythrough",
function(){f(t)},p);t.onerror=function(){if(!h){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",d=0,g=0,i=0;i<a.length;i++){d=d<<8|a[i];for(g+=8;6<=g;)var n=d>>g-6&63,g=g-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[n]}2==g?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==g&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d&15)<<2],c+="=");
t.src="data:audio/x-"+b.substr(-3)+";base64,"+c;f(t)}};t.src=i;setTimeout(function(){ua||f(t)},1E4)}else return g()}});var n=s.canvas;n.Ba=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock;n.Oa=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||q();n.Oa=n.Oa.bind(document);document.addEventListener("pointerlockchange",t,p);document.addEventListener("mozpointerlockchange",t,p);document.addEventListener("webkitpointerlockchange",t,p);s.elementPointerLock&&
n.addEventListener("click",function(a){!qc&&n.Ba&&(n.Ba(),a.preventDefault())},p)}var F=b?tb(U(a,b)):a;gb("cp "+F);if("string"==typeof c){var G=g,P=function(){G?G():e('Loading data file "'+c+'" failed.')},C=new XMLHttpRequest;C.open("GET",c,l);C.responseType="arraybuffer";C.onload=function(){if(200==C.status||0==C.status&&C.response){var a=C.response;A(a,'Loading data file "'+c+'" failed (no arrayBuffer).');a=new Uint8Array(a);y(a);hb("al "+c)}else P()};C.onerror=P;C.send(m);gb("al "+c)}else y(c)};
s.FS_createLazyFile=function(a,b,c,d,f){var h,g;"undefined"!==typeof XMLHttpRequest?(ca||e("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"),h=function(){this.va=p;this.da=[]},h.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.rb;return this.vb(Math.floor(a/this.rb))[b]}},h.prototype.Gb=function(a){this.vb=a},h.prototype.Ka=function(){var a=new XMLHttpRequest;a.open("HEAD",c,p);a.send(m);200<=a.status&&300>a.status||
304===a.status||e(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),d,f=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d))f=b;var g=this;g.Gb(function(a){var d=a*f,h=(a+1)*f-1,h=Math.min(h,b-1);if("undefined"===typeof g.da[a]){var i=g.da;d>h&&e(Error("invalid range ("+d+", "+h+") or no bytes requested!"));h>b-1&&e(Error("only "+b+" bytes available! programmer error!"));var k=new XMLHttpRequest;k.open("GET",c,p);b!==f&&k.setRequestHeader("Range",
"bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(k.responseType="arraybuffer");k.overrideMimeType&&k.overrideMimeType("text/plain; charset=x-user-defined");k.send(m);200<=k.status&&300>k.status||304===k.status||e(Error("Couldn't load "+c+". Status: "+k.status));d=k.response!==j?new Uint8Array(k.response||[]):H(k.responseText||"",l);i[a]=d}"undefined"===typeof g.da[a]&&e(Error("doXHR failed!"));return g.da[a]});this.nb=b;this.mb=f;this.va=l},h=new h,Object.defineProperty(h,"length",{get:function(){this.va||
this.Ka();return this.nb}}),Object.defineProperty(h,"chunkSize",{get:function(){this.va||this.Ka();return this.mb}}),g=j):(g=c,h=j);var i,a=U("string"===typeof a?a:Kb(a),b);i=Tb(a,dc(d,f));h?i.o=h:g&&(i.o=m,i.url=g);var r={};Object.keys(i.k).forEach(function(a){var b=i.k[a];r[a]=function(){gc(i)||e(new V(R.L));return b.apply(m,arguments)}});r.K=function(a,b,c,d,f){gc(i)||e(new V(R.L));a=a.g.o;if(f>=a.length)return 0;d=Math.min(a.length-f,d);A(0<=d);if(a.slice)for(var g=0;g<d;g++)b[c+g]=a[f+g];else for(g=
0;g<d;g++)b[c+g]=a.get(f+g);return d};i.k=r;return i};s.FS_createLink=function(a,b,c){a=U("string"===typeof a?a:Kb(a),b);return Wb(c,a)};s.FS_createDevice=fc;pb=pa(4);K[pb>>2]=0;O.unshift({M:q()});Xa.push({M:q()});var Dc=new na;w&&(require("fs"),process.platform.match(/^win/));O.push({M:function(){Z.root=Rb(Z,m)}});
s.requestFullScreen=function(a,b){function c(){pc=p;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement)===d?(d.La=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen,d.La=d.La.bind(document),sc&&d.Ba(),pc=l,tc&&xc()):tc&&yc();if(s.onFullScreen)s.onFullScreen(pc)}sc=a;tc=b;"undefined"===typeof sc&&(sc=l);"undefined"===typeof tc&&
(tc=p);var d=s.canvas;rc||(rc=l,document.addEventListener("fullscreenchange",c,p),document.addEventListener("mozfullscreenchange",c,p),document.addEventListener("webkitfullscreenchange",c,p));d.Eb=d.requestFullScreen||d.mozRequestFullScreen||(d.webkitRequestFullScreen?function(){d.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:m);d.Eb()};
s.requestAnimationFrame=function(a){window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||window.setTimeout);window.requestAnimationFrame(a)};s.setCanvasSize=function(a,b,c){var d=s.canvas;d.width=a;d.height=b;c||wc()};s.pauseMainLoop=q();s.resumeMainLoop=function(){oc&&(oc=p,m())};
s.getUserMedia=function(){window.Pa||(window.Pa=navigator.getUserMedia||navigator.mozGetUserMedia);window.Pa(j)};Ra=x=sa(B);Sa=Ra+5242880;Ta=D=sa(Sa);A(Ta<ra);Ca=Math.min;
var $=(function(global,env,buffer) {
// EMSCRIPTEN_START_ASM
"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=+env.NaN;var n=+env.Infinity;var o=0;var p=0;var q=0;var r=0;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=env.abort;var $=env.assert;var aa=env.asmPrintInt;var ab=env.asmPrintFloat;var ac=env.min;var ad=env.invoke_ii;var ae=env.invoke_v;var af=env.invoke_iii;var ag=env.invoke_vi;var ah=env._llvm_lifetime_end;var ai=env._snprintf;var aj=env._abort;var ak=env._fprintf;var al=env._printf;var am=env._fflush;var an=env.__reallyNegative;var ao=env._sysconf;var ap=env.___setErrNo;var aq=env._fwrite;var ar=env._send;var as=env._write;var at=env._exit;var au=env._sprintf;var av=env.__formatString;var aw=env.__ZSt9terminatev;var ax=env._pwrite;var ay=env._sbrk;var az=env.___errno_location;var aA=env.___gxx_personality_v0;var aB=env._llvm_lifetime_start;var aC=env._time;var aD=env.__exit;
// EMSCRIPTEN_START_FUNCS
function aI(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7&-8;return b|0}function aJ(){return i|0}function aK(a){a=a|0;i=a}function aL(a,b){a=a|0;b=b|0;if((o|0)==0){o=a;p=b}}function aM(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0]}function aN(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[k+7|0]=a[b+7|0]}function aO(a){a=a|0;B=a}function aP(a){a=a|0;C=a}function aQ(a){a=a|0;D=a}function aR(a){a=a|0;E=a}function aS(a){a=a|0;F=a}function aT(a){a=a|0;G=a}function aU(a){a=a|0;H=a}function aV(a){a=a|0;I=a}function aW(a){a=a|0;J=a}function aX(a){a=a|0;K=a}function aY(){}function aZ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=i;i=i+1032|0;g=f|0;h=f+512|0;j=f+520|0;k=a+8|0;if((c[a+4>>2]|0)>>>0>(c[k>>2]|0)>>>0){l=j|0;au(l|0,768,(m=i,i=i+24|0,c[m>>2]=472,c[m+8>>2]=2121,c[m+16>>2]=744,m)|0)|0;i=m;al(l|0,(m=i,i=i+1|0,i=i+7&-8,c[m>>2]=0,m)|0)|0;i=m}if((2147418112/(e>>>0)|0)>>>0<=b>>>0){l=j|0;au(l|0,768,(m=i,i=i+24|0,c[m>>2]=472,c[m+8>>2]=2122,c[m+16>>2]=328,m)|0)|0;i=m;al(l|0,(m=i,i=i+1|0,i=i+7&-8,c[m>>2]=0,m)|0)|0;i=m}l=c[k>>2]|0;if(l>>>0>=b>>>0){n=1;i=f;return n|0}do{if(d){o=b-1|0;if((b|0)!=0){if((o&b|0)==0){p=b;break}}q=o>>>16|o;o=q>>>8|q;q=o>>>4|o;o=q>>>2|q;p=(o>>>1|o)+1|0}else{p=b}}while(0);if(!((p|0)!=0&p>>>0>l>>>0)){l=j|0;au(l|0,768,(m=i,i=i+24|0,c[m>>2]=472,c[m+8>>2]=2131,c[m+16>>2]=152,m)|0)|0;i=m;al(l|0,(m=i,i=i+1|0,i=i+7&-8,c[m>>2]=0,m)|0)|0;i=m}l=Z(p,e)|0;j=a|0;a=c[j>>2]|0;if((a&7|0)!=0){b=g|0;au(b|0,768,(m=i,i=i+24|0,c[m>>2]=472,c[m+8>>2]=2500,c[m+16>>2]=600,m)|0)|0;i