1 line
118 KiB
JavaScript
1 line
118 KiB
JavaScript
var key,Module=void 0!==Module?Module:{},moduleOverrides={};for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(e,t){throw t},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,Module.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}if(ENVIRONMENT_IS_NODE)scriptDirectory=ENVIRONMENT_IS_WORKER?require("path").dirname(scriptDirectory)+"/":__dirname+"/",read_=function(e,t){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),e=nodePath.normalize(e),nodeFS.readFileSync(e,t?null:"utf8")},readBinary=function(e){var t=read_(e,!0);return t.buffer||(t=new Uint8Array(t)),assert(t.buffer),t},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",(function(e){if(!(e instanceof ExitStatus))throw e})),process.on("unhandledRejection",abort),quit_=function(e){process.exit(e)},Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)"undefined"!=typeof read&&(read_=function(e){return read(e)}),readBinary=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(assert("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?arguments_=scriptArgs:"undefined"!=typeof arguments&&(arguments_=arguments),"function"==typeof quit&&(quit_=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw new Error("environment detection error");ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):"",read_=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),readAsync=function(e,t,r){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){200==o.status||0==o.status&&o.response?t(o.response):r()},o.onerror=r,o.send(null)},setWindowTitle=function(e){document.title=e}}var out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Object.getOwnPropertyDescriptor(Module,"arguments")||Object.defineProperty(Module,"arguments",{configurable:!0,get:function(){abort("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.thisProgram&&(thisProgram=Module.thisProgram),Object.getOwnPropertyDescriptor(Module,"thisProgram")||Object.defineProperty(Module,"thisProgram",{configurable:!0,get:function(){abort("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.quit&&(quit_=Module.quit),Object.getOwnPropertyDescriptor(Module,"quit")||Object.defineProperty(Module,"quit",{configurable:!0,get:function(){abort("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),assert(void 0===Module.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),assert(void 0===Module.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),assert(void 0===Module.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),assert(void 0===Module.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),assert(void 0===Module.read,"Module.read option was removed (modify read_ in JS)"),assert(void 0===Module.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),assert(void 0===Module.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),assert(void 0===Module.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),assert(void 0===Module.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(Module,"read")||Object.defineProperty(Module,"read",{configurable:!0,get:function(){abort("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"readAsync")||Object.defineProperty(Module,"readAsync",{configurable:!0,get:function(){abort("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"readBinary")||Object.defineProperty(Module,"readBinary",{configurable:!0,get:function(){abort("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"setWindowTitle")||Object.defineProperty(Module,"setWindowTitle",{configurable:!0,get:function(){abort("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var STACK_ALIGN=16;function alignMemory(e,t){return t||(t=STACK_ALIGN),Math.ceil(e/t)*t}function warnOnce(e){warnOnce.shown||(warnOnce.shown={}),warnOnce.shown[e]||(warnOnce.shown[e]=1,err(e))}function convertJsFunctionToWasm(e,t){if("function"==typeof WebAssembly.Function){for(var r={i:"i32",j:"i64",f:"f32",d:"f64"},o={parameters:[],results:"v"==t[0]?[]:[r[t[0]]]},n=1;n<t.length;++n)o.parameters.push(r[t[n]]);return new WebAssembly.Function(o,e)}var a=[1,0,1,96],i=t.slice(0,1),s=t.slice(1),d={i:127,j:126,f:125,d:124};a.push(s.length);for(n=0;n<s.length;++n)a.push(d[s[n]]);"v"==i?a.push(0):a=a.concat([1,d[i]]),a[1]=a.length-2;var c=new Uint8Array([0,97,115,109,1,0,0,0].concat(a,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),u=new WebAssembly.Module(c);return new WebAssembly.Instance(u,{e:{f:e}}).exports.f}var functionsInTableMap,freeTableIndexes=[];function addFunctionWasm(e,t){var r,o=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var n=0;n<o.length;n++){var a=o.get(n);a&&functionsInTableMap.set(a,n)}}if(functionsInTableMap.has(e))return functionsInTableMap.get(e);if(freeTableIndexes.length)r=freeTableIndexes.pop();else{r=o.length;try{o.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{o.set(r,e)}catch(n){if(!(n instanceof TypeError))throw n;assert(void 0!==t,"Missing signature argument to addFunction");var i=convertJsFunctionToWasm(e,t);o.set(r,i)}return functionsInTableMap.set(e,r),r}function removeFunctionWasm(e){functionsInTableMap.delete(wasmTable.get(e)),freeTableIndexes.push(e)}function addFunction(e,t){return assert(void 0!==e),addFunctionWasm(e,t)}var wasmBinary,noExitRuntime,wasmMemory,wasmTable,tempRet0=0,setTempRet0=function(e){tempRet0=e};Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Object.getOwnPropertyDescriptor(Module,"wasmBinary")||Object.defineProperty(Module,"wasmBinary",{configurable:!0,get:function(){abort("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),Object.getOwnPropertyDescriptor(Module,"noExitRuntime")||Object.defineProperty(Module,"noExitRuntime",{configurable:!0,get:function(){abort("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),"object"!=typeof WebAssembly&&abort("no native wasm support detected");var ABORT=!1,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(e){var t=Module["_"+e];return assert(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function ccall(e,t,r,o,n){var a={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);stringToUTF8(e,t=stackAlloc(r),r)}return t},array:function(e){var t=stackAlloc(e.length);return writeArrayToMemory(e,t),t}};var i=getCFunc(e),s=[],d=0;if(assert("array"!==t,'Return type should not be "array".'),o)for(var c=0;c<o.length;c++){var u=a[r[c]];u?(0===d&&(d=stackSave()),s[c]=u(o[c])):s[c]=o[c]}var l=i.apply(null,s);return l=function(e){return"string"===t?UTF8ToString(e):"boolean"===t?Boolean(e):e}(l),0!==d&&stackRestore(d),l}var ALLOC_STACK=1,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t,r){for(var o=t+r,n=t;e[n]&&!(n>=o);)++n;if(n-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,n));for(var a="";t<n;){var i=e[t++];if(128&i){var s=63&e[t++];if(192!=(224&i)){var d=63&e[t++];if(224==(240&i)?i=(15&i)<<12|s<<6|d:(240!=(248&i)&&warnOnce("Invalid UTF-8 leading byte 0x"+i.toString(16)+" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!"),i=(7&i)<<18|s<<12|d<<6|63&e[t++]),i<65536)a+=String.fromCharCode(i);else{var c=i-65536;a+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a}function UTF8ToString(e,t){return e?UTF8ArrayToString(HEAPU8,e,t):""}function stringToUTF8Array(e,t,r,o){if(!(o>0))return 0;for(var n=r,a=r+o-1,i=0;i<e.length;++i){var s=e.charCodeAt(i);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i);if(s<=127){if(r>=a)break;t[r++]=s}else if(s<=2047){if(r+1>=a)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=a)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=a)break;s>=2097152&&warnOnce("Invalid Unicode code point 0x"+s.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-n}function stringToUTF8(e,t,r){return assert("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),stringToUTF8Array(e,HEAPU8,t,r)}function lengthBytesUTF8(e){for(var t=0,r=0;r<e.length;++r){var o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++r)),o<=127?++t:t+=o<=2047?2:o<=65535?3:4}return t}var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function allocateUTF8(e){var t=lengthBytesUTF8(e)+1,r=_malloc(t);return r&&stringToUTF8Array(e,HEAP8,r,t),r}function writeArrayToMemory(e,t){assert(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),HEAP8.set(e,t)}function writeAsciiToMemory(e,t,r){for(var o=0;o<e.length;++o)assert(e.charCodeAt(o)==e.charCodeAt(o)&255),HEAP8[t++>>0]=e.charCodeAt(o);r||(HEAP8[t>>0]=0)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,WASM_PAGE_SIZE=65536;function alignUp(e,t){return e%t>0&&(e+=t-e%t),e}function updateGlobalBufferAndViews(e){buffer=e,Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var STACK_BASE=8806896,STACK_MAX=3564016;assert(STACK_BASE%16==0,"stack must start aligned");var TOTAL_STACK=5242880;Module.TOTAL_STACK&&assert(TOTAL_STACK===Module.TOTAL_STACK,"the stack size can no longer be determined at runtime");var INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||33554432;function writeStackCookie(){assert(0==(3&STACK_MAX)),HEAPU32[1+(STACK_MAX>>2)]=34821223,HEAPU32[2+(STACK_MAX>>2)]=2310721022,HEAP32[0]=1668509029}function checkStackCookie(){if(!ABORT){var e=HEAPU32[1+(STACK_MAX>>2)],t=HEAPU32[2+(STACK_MAX>>2)];34821223==e&&2310721022==t||abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+t.toString(16)+" "+e.toString(16)),1668509029!==HEAP32[0]&&abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Object.getOwnPropertyDescriptor(Module,"INITIAL_MEMORY")||Object.defineProperty(Module,"INITIAL_MEMORY",{configurable:!0,get:function(){abort("Module.INITIAL_MEMORY has been replaced with plain INITIAL_INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),assert(INITIAL_INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),(wasmMemory=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,maximum:2147483648/WASM_PAGE_SIZE}))&&(buffer=wasmMemory.buffer),assert((INITIAL_INITIAL_MEMORY=buffer.byteLength)%WASM_PAGE_SIZE==0),assert(65536%WASM_PAGE_SIZE==0),updateGlobalBufferAndViews(buffer),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian!"}();var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){checkStackCookie(),assert(!runtimeInitialized),runtimeInitialized=!0,Module.noFSInit||FS.init.initialized||FS.init(),TTY.init(),callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie(),FS.ignorePermissions=!1,callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){checkStackCookie(),runtimeExited=!0}function postRun(){if(checkStackCookie(),Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null,runDependencyTracking={};function getUniqueRunDependency(e){for(var t=e;;){if(!runDependencyTracking[e])return e;e=t+Math.random()}}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),e?(assert(!runDependencyTracking[e]),runDependencyTracking[e]=1,null===runDependencyWatcher&&"undefined"!=typeof setInterval&&(runDependencyWatcher=setInterval((function(){if(ABORT)return clearInterval(runDependencyWatcher),void(runDependencyWatcher=null);var e=!1;for(var t in runDependencyTracking)e||(e=!0,err("still waiting on run dependencies:")),err("dependency: "+t);e&&err("(end of list)")}),1e4))):err("warning: run dependency added without ID")}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),e?(assert(runDependencyTracking[e]),delete runDependencyTracking[e]):err("warning: run dependency removed without ID"),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}function abort(e){throw Module.onAbort&&Module.onAbort(e),err(e+=""),ABORT=!0,EXITSTATUS=1,e="abort("+e+") at "+stackTrace(),new WebAssembly.RuntimeError(e)}function hasPrefix(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}Module.preloadedImages={},Module.preloadedAudios={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(e){return hasPrefix(e,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(e){return hasPrefix(e,fileURIPrefix)}function createExportWrapper(e,t){return function(){var r=e,o=t;return t||(o=Module.asm),assert(runtimeInitialized,"native function `"+r+"` called before runtime initialization"),assert(!runtimeExited,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),o[e]||assert(o[e],"exported native function `"+r+"` not found"),o[e].apply(null,arguments)}}var tempDouble,tempI64,wasmBinaryFile="libffmpeg.wasm";function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(e){abort(e)}}function getBinaryPromise(){return wasmBinary||!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER||"function"!=typeof fetch||isFileURI(wasmBinaryFile)?Promise.resolve().then(getBinary):fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return e.arrayBuffer()})).catch((function(){return getBinary()}))}function createWasm(){var e={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function t(e,t){var r=e.exports;Module.asm=r,assert(wasmTable=Module.asm.__indirect_function_table,"table not found in wasm exports"),removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var r=Module;function o(e){assert(Module===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function n(t){return getBinaryPromise().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){err("failed to asynchronously prepare wasm: "+e),abort(e)}))}if(Module.instantiateWasm)try{return Module.instantiateWasm(e,t)}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||"function"!=typeof fetch)return n(o);fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return err("wasm streaming compile failed: "+e),err("falling back to ArrayBuffer instantiation"),n(o)}))}))}(),{}}function callRuntimeCallbacks(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?wasmTable.get(r)():wasmTable.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(Module)}}function demangle(e){return warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=demangle(e);return e===t?e:t+" ["+e+"]"}))}function dynCallLegacy(e,t,r){return assert("dynCall_"+e in Module,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?assert(r.length===e.substring(1).replace(/j/g,"--").length):assert(1==e.length),r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function ___assert_fail(e,t,r,o){abort("Assertion failed: "+UTF8ToString(e)+", at: "+[t?UTF8ToString(t):"unknown filename",r,o?UTF8ToString(o):"unknown function"])}function _atexit(e,t){}function ___cxa_atexit(e,t){return _atexit(e,t)}function _tzset(){if(!_tzset.called){_tzset.called=!0;var e=(new Date).getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),o=t.getTimezoneOffset(),n=r.getTimezoneOffset(),a=Math.max(o,n);HEAP32[__get_timezone()>>2]=60*a,HEAP32[__get_daylight()>>2]=Number(o!=n);var i=u(t),s=u(r),d=allocateUTF8(i),c=allocateUTF8(s);n<o?(HEAP32[__get_tzname()>>2]=d,HEAP32[__get_tzname()+4>>2]=c):(HEAP32[__get_tzname()>>2]=c,HEAP32[__get_tzname()+4>>2]=d)}function u(e){var t=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return t?t[1]:"GMT"}}function _localtime_r(e,t){_tzset();var r=new Date(1e3*HEAP32[e>>2]);HEAP32[t>>2]=r.getSeconds(),HEAP32[t+4>>2]=r.getMinutes(),HEAP32[t+8>>2]=r.getHours(),HEAP32[t+12>>2]=r.getDate(),HEAP32[t+16>>2]=r.getMonth(),HEAP32[t+20>>2]=r.getFullYear()-1900,HEAP32[t+24>>2]=r.getDay();var o=new Date(r.getFullYear(),0,1),n=(r.getTime()-o.getTime())/864e5|0;HEAP32[t+28>>2]=n,HEAP32[t+36>>2]=-60*r.getTimezoneOffset();var a=new Date(r.getFullYear(),6,1).getTimezoneOffset(),i=o.getTimezoneOffset(),s=0|(a!=i&&r.getTimezoneOffset()==Math.min(i,a));HEAP32[t+32>>2]=s;var d=HEAP32[__get_tzname()+(s?4:0)>>2];return HEAP32[t+40>>2]=d,t}function ___localtime_r(e,t){return _localtime_r(e,t)}isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,o=e.length-1;o>=0;o--){var n=e[o];"."===n?e.splice(o,1):".."===n?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=PATH.splitPath(e),r=t[0],o=t[1];return r||o?(o&&(o=o.substr(0,o.length-1)),r+o):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=PATH.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,t){return PATH.normalize(e+"/"+t)}};function setErrNo(e){return HEAP32[___errno_location()>>2]=e,e}function getRandomDevice(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(ENVIRONMENT_IS_NODE)try{var t=require("crypto");return function(){return t.randomBytes(1)[0]}}catch(e){}return function(){abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var PATH_FS={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var o=r>=0?arguments[r]:FS.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t="/"===o.charAt(0)}return(t?"/":"")+(e=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=PATH_FS.resolve(e).substr(1),t=PATH_FS.resolve(t).substr(1);for(var o=r(e.split("/")),n=r(t.split("/")),a=Math.min(o.length,n.length),i=a,s=0;s<a;s++)if(o[s]!==n[s]){i=s;break}var d=[];for(s=i;s<o.length;s++)d.push("..");return(d=d.concat(n.slice(i))).join("/")}},TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){TTY.ttys[e]={input:[],output:[],ops:t},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var t=TTY.ttys[e.node.rdev];if(!t)throw new FS.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,o,n){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(60);for(var a=0,i=0;i<o;i++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new FS.ErrnoError(29)}if(void 0===s&&0===a)throw new FS.ErrnoError(6);if(null==s)break;a++,t[r+i]=s}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,n){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(60);try{for(var a=0;a<o;a++)e.tty.ops.put_char(e.tty,t[r+a])}catch(e){throw new FS.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(ENVIRONMENT_IS_NODE){var r=Buffer.alloc?Buffer.alloc(256):new Buffer(256),o=0;try{o=nodeFS.readSync(process.stdin.fd,r,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;o=0}t=o>0?r.slice(0,o).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=intArrayFromString(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(out(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(out(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(err(UTF8ArrayToString(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(err(UTF8ArrayToString(e.output,0)),e.output=[])}}};function mmapAlloc(e){for(var t=alignMemory(e,16384),r=_malloc(t);e<t;)HEAP8[r+e++]=0;return r}var _emscripten_get_now,MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,"/",16895,0)},createNode:function(e,t,r,o){if(FS.isBlkdev(r)||FS.isFIFO(r))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var n=FS.createNode(e,t,r,o);return FS.isDir(n.mode)?(n.node_ops=MEMFS.ops_table.dir.node,n.stream_ops=MEMFS.ops_table.dir.stream,n.contents={}):FS.isFile(n.mode)?(n.node_ops=MEMFS.ops_table.file.node,n.stream_ops=MEMFS.ops_table.file.stream,n.usedBytes=0,n.contents=null):FS.isLink(n.mode)?(n.node_ops=MEMFS.ops_table.link.node,n.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(n.mode)&&(n.node_ops=MEMFS.ops_table.chrdev.node,n.stream_ops=MEMFS.ops_table.chrdev.stream),n.timestamp=Date.now(),e&&(e.contents[t]=n),n},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var o=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(o.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=FS.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,FS.isDir(e.mode)?t.size=4096:FS.isFile(e.mode)?t.size=e.usedBytes:FS.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&MEMFS.resizeFileStorage(e,t.size)},lookup:function(e,t){throw FS.genericErrors[44]},mknod:function(e,t,r,o){return MEMFS.createNode(e,t,r,o)},rename:function(e,t,r){if(FS.isDir(e.mode)){var o;try{o=FS.lookupNode(t,r)}catch(e){}if(o)for(var n in o.contents)throw new FS.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=FS.lookupNode(e,t);for(var o in r.contents)throw new FS.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var o=MEMFS.createNode(e,t,41471,0);return o.link=r,o},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,o,n){var a=e.node.contents;if(n>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-n,o);if(assert(i>=0),i>8&&a.subarray)t.set(a.subarray(n,n+i),r);else for(var s=0;s<i;s++)t[r+s]=a[n+s];return i},write:function(e,t,r,o,n,a){if(assert(!(t instanceof ArrayBuffer)),t.buffer===HEAP8.buffer&&(a=!1),!o)return 0;var i=e.node;if(i.timestamp=Date.now(),t.subarray&&(!i.contents||i.contents.subarray)){if(a)return assert(0===n,"canOwn must imply no weird position inside the file"),i.contents=t.subarray(r,r+o),i.usedBytes=o,o;if(0===i.usedBytes&&0===n)return i.contents=t.slice(r,r+o),i.usedBytes=o,o;if(n+o<=i.usedBytes)return i.contents.set(t.subarray(r,r+o),n),o}if(MEMFS.expandFileStorage(i,n+o),i.contents.subarray&&t.subarray)i.contents.set(t.subarray(r,r+o),n);else for(var s=0;s<o;s++)i.contents[n+s]=t[r+s];return i.usedBytes=Math.max(i.usedBytes,n+o),o},llseek:function(e,t,r){var o=t;if(1===r?o+=e.position:2===r&&FS.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new FS.ErrnoError(28);return o},allocate:function(e,t,r){MEMFS.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,o,n,a){if(assert(0===t),!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);var i,s,d=e.node.contents;if(2&a||d.buffer!==buffer){if((o>0||o+r<d.length)&&(d=d.subarray?d.subarray(o,o+r):Array.prototype.slice.call(d,o,o+r)),s=!0,!(i=mmapAlloc(r)))throw new FS.ErrnoError(48);HEAP8.set(d,i)}else s=!1,i=d.byteOffset;return{ptr:i,allocated:s}},msync:function(e,t,r,o,n){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(43);if(2&n)return 0;MEMFS.stream_ops.write(e,t,0,o,r,!1);return 0}}},ERRNO_MESSAGES={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return setErrNo(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=PATH_FS.resolve(FS.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var o in r)void 0===t[o]&&(t[o]=r[o]);if(t.recurse_count>8)throw new FS.ErrnoError(32);for(var n=PATH.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=FS.root,i="/",s=0;s<n.length;s++){var d=s===n.length-1;if(d&&t.parent)break;if(a=FS.lookupNode(a,n[s]),i=PATH.join2(i,n[s]),FS.isMountpoint(a)&&(!d||d&&t.follow_mount)&&(a=a.mounted.root),!d||t.follow)for(var c=0;FS.isLink(a.mode);){var u=FS.readlink(i);if(i=PATH_FS.resolve(PATH.dirname(i),u),a=FS.lookupPath(i,{recurse_count:t.recurse_count}).node,c++>40)throw new FS.ErrnoError(32)}}return{path:i,node:a}},getPath:function(e){for(var t;;){if(FS.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%FS.nameTable.length},hashAddNode:function(e){var t=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[t],FS.nameTable[t]=e},hashRemoveNode:function(e){var t=FS.hashName(e.parent.id,e.name);if(FS.nameTable[t]===e)FS.nameTable[t]=e.name_next;else for(var r=FS.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=FS.mayLookup(e);if(r)throw new FS.ErrnoError(r,e);for(var o=FS.hashName(e.id,t),n=FS.nameTable[o];n;n=n.name_next){var a=n.name;if(n.parent.id===e.id&&a===t)return n}return FS.lookup(e,t)},createNode:function(e,t,r,o){var n=new FS.FSNode(e,t,r,o);return FS.hashAddNode(n),n},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{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},modeStringToFlags:function(e){var t=FS.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return FS.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=FS.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{FS.lookupNode(e,t);return 20}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var o;try{o=FS.lookupNode(e,t)}catch(e){return e.errno}var n=FS.nodePermissions(e,"wx");if(n)return n;if(r){if(!FS.isDir(o.mode))return 54;if(FS.isRoot(o)||FS.getPath(o)===FS.cwd())return 10}else if(FS.isDir(o.mode))return 31;return 0},mayOpen:function(e,t){return e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&("r"!==FS.flagsToPermissionString(t)||512&t)?31:FS.nodePermissions(e,FS.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||FS.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!FS.streams[r])return r;throw new FS.ErrnoError(33)},getStream:function(e){return FS.streams[e]},createStream:function(e,t,r){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var o=new FS.FSStream;for(var n in e)o[n]=e[n];e=o;var a=FS.nextfd(t,r);return e.fd=a,FS.streams[a]=e,e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=FS.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){FS.devices[e]={stream_ops:t}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=FS.getMounts(FS.root.mount),o=0;function n(e){return assert(FS.syncFSRequests>0),FS.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,n(e));++o>=r.length&&n(null)}r.forEach((function(t){if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:function(e,t,r){if("string"==typeof e)throw e;var o,n="/"===r,a=!r;if(n&&FS.root)throw new FS.ErrnoError(10);if(!n&&!a){var i=FS.lookupPath(r,{follow_mount:!1});if(r=i.path,o=i.node,FS.isMountpoint(o))throw new FS.ErrnoError(10);if(!FS.isDir(o.mode))throw new FS.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},d=e.mount(s);return d.mount=s,s.root=d,n?FS.root=d:o&&(o.mounted=s,o.mount&&o.mount.mounts.push(s)),d},unmount:function(e){var t=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(t.node))throw new FS.ErrnoError(28);var r=t.node,o=r.mounted,n=FS.getMounts(o);Object.keys(FS.nameTable).forEach((function(e){for(var t=FS.nameTable[e];t;){var r=t.name_next;-1!==n.indexOf(t.mount)&&FS.destroyNode(t),t=r}})),r.mounted=null;var a=r.mount.mounts.indexOf(o);assert(-1!==a),r.mount.mounts.splice(a,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var o=FS.lookupPath(e,{parent:!0}).node,n=PATH.basename(e);if(!n||"."===n||".."===n)throw new FS.ErrnoError(28);var a=FS.mayCreate(o,n);if(a)throw new FS.ErrnoError(a);if(!o.node_ops.mknod)throw new FS.ErrnoError(63);return o.node_ops.mknod(o,n,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,FS.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,FS.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),o="",n=0;n<r.length;++n)if(r[n]){o+="/"+r[n];try{FS.mkdir(o,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,FS.mknod(e,t,r)},symlink:function(e,t){if(!PATH_FS.resolve(e))throw new FS.ErrnoError(44);var r=FS.lookupPath(t,{parent:!0}).node;if(!r)throw new FS.ErrnoError(44);var o=PATH.basename(t),n=FS.mayCreate(r,o);if(n)throw new FS.ErrnoError(n);if(!r.node_ops.symlink)throw new FS.ErrnoError(63);return r.node_ops.symlink(r,o,e)},rename:function(e,t){var r,o,n=PATH.dirname(e),a=PATH.dirname(t),i=PATH.basename(e),s=PATH.basename(t);if(r=FS.lookupPath(e,{parent:!0}).node,o=FS.lookupPath(t,{parent:!0}).node,!r||!o)throw new FS.ErrnoError(44);if(r.mount!==o.mount)throw new FS.ErrnoError(75);var d,c=FS.lookupNode(r,i),u=PATH_FS.relative(e,a);if("."!==u.charAt(0))throw new FS.ErrnoError(28);if("."!==(u=PATH_FS.relative(t,n)).charAt(0))throw new FS.ErrnoError(55);try{d=FS.lookupNode(o,s)}catch(e){}if(c!==d){var l=FS.isDir(c.mode),E=FS.mayDelete(r,i,l);if(E)throw new FS.ErrnoError(E);if(E=d?FS.mayDelete(o,s,l):FS.mayCreate(o,s))throw new FS.ErrnoError(E);if(!r.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(c)||d&&FS.isMountpoint(d))throw new FS.ErrnoError(10);if(o!==r&&(E=FS.nodePermissions(r,"w")))throw new FS.ErrnoError(E);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(e,t)}catch(r){err("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}FS.hashRemoveNode(c);try{r.node_ops.rename(c,o,s)}catch(e){throw e}finally{FS.hashAddNode(c)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,t)}catch(r){err("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+r.message)}}},rmdir:function(e){var t=FS.lookupPath(e,{parent:!0}).node,r=PATH.basename(e),o=FS.lookupNode(t,r),n=FS.mayDelete(t,r,!0);if(n)throw new FS.ErrnoError(n);if(!t.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(o))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(t){err("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,r),FS.destroyNode(o);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(t){err("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=FS.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new FS.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=FS.lookupPath(e,{parent:!0}).node,r=PATH.basename(e),o=FS.lookupNode(t,r),n=FS.mayDelete(t,r,!1);if(n)throw new FS.ErrnoError(n);if(!t.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(o))throw new FS.ErrnoError(10);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(t){err("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,r),FS.destroyNode(o);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(t){err("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=FS.lookupPath(e).node;if(!t)throw new FS.ErrnoError(44);if(!t.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=FS.lookupPath(e,{follow:!t}).node;if(!r)throw new FS.ErrnoError(44);if(!r.node_ops.getattr)throw new FS.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,t,r){var o;"string"==typeof e?o=FS.lookupPath(e,{follow:!r}).node:o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(63);o.node_ops.setattr(o,{mode:4095&t|-4096&o.mode,timestamp:Date.now()})},lchmod:function(e,t){FS.chmod(e,t,!0)},fchmod:function(e,t){var r=FS.getStream(e);if(!r)throw new FS.ErrnoError(8);FS.chmod(r.node,t)},chown:function(e,t,r,o){var n;"string"==typeof e?n=FS.lookupPath(e,{follow:!o}).node:n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:function(e,t,r){FS.chown(e,t,r,!0)},fchown:function(e,t,r){var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(8);FS.chown(o.node,t,r)},truncate:function(e,t){if(t<0)throw new FS.ErrnoError(28);var r;"string"==typeof e?r=FS.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(r.mode))throw new FS.ErrnoError(31);if(!FS.isFile(r.mode))throw new FS.ErrnoError(28);var o=FS.nodePermissions(r,"w");if(o)throw new FS.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=FS.getStream(e);if(!r)throw new FS.ErrnoError(8);if(0==(2097155&r.flags))throw new FS.ErrnoError(28);FS.truncate(r.node,t)},utime:function(e,t,r){var o=FS.lookupPath(e,{follow:!0}).node;o.node_ops.setattr(o,{timestamp:Math.max(t,r)})},open:function(e,t,r,o,n){if(""===e)throw new FS.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?FS.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=PATH.normalize(e);try{a=FS.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var i=!1;if(64&t)if(a){if(128&t)throw new FS.ErrnoError(20)}else a=FS.mknod(e,r,0),i=!0;if(!a)throw new FS.ErrnoError(44);if(FS.isChrdev(a.mode)&&(t&=-513),65536&t&&!FS.isDir(a.mode))throw new FS.ErrnoError(54);if(!i){var s=FS.mayOpen(a,t);if(s)throw new FS.ErrnoError(s)}512&t&&FS.truncate(a,0),t&=-131713;var d=FS.createStream({node:a,path:FS.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},o,n);d.stream_ops.open&&d.stream_ops.open(d),!Module.logReadFiles||1&t||(FS.readFiles||(FS.readFiles={}),e in FS.readFiles||(FS.readFiles[e]=1,err("FS.trackingDelegate error on read file: "+e)));try{if(FS.trackingDelegate.onOpenFile){var c=0;1!=(2097155&t)&&(c|=FS.tracking.openFlags.READ),0!=(2097155&t)&&(c|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(e,c)}}catch(t){err("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return d},close:function(e){if(FS.isClosed(e))throw new FS.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new FS.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,o,n){if(o<0||n<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(1==(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.read)throw new FS.ErrnoError(28);var a=void 0!==n;if(a){if(!e.seekable)throw new FS.ErrnoError(70)}else n=e.position;var i=e.stream_ops.read(e,t,r,o,n);return a||(e.position+=i),i},write:function(e,t,r,o,n,a){if(o<0||n<0)throw new FS.ErrnoError(28);if(FS.isClosed(e))throw new FS.ErrnoError(8);if(0==(2097155&e.flags))throw new FS.ErrnoError(8);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(31);if(!e.stream_ops.write)throw new FS.ErrnoError(28);e.seekable&&1024&e.flags&&FS.llseek(e,0,2);var i=void 0!==n;if(i){if(!e.seekable)throw new FS.ErrnoError(70)}else n=e.position;var s=e.stream_ops.write(e,t,r,o,n,a);i||(e.position+=s);try{e.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(e.path)}catch(t){err("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(FS.isClosed(e))throw new FS.ErrnoError(8);if(t<0||r<=0)throw new FS.ErrnoError(28);if(0==(2097155&e.flags))throw new FS.ErrnoError(8);if(!FS.isFile(e.node.mode)&&!FS.isDir(e.node.mode))throw new FS.ErrnoError(43);if(!e.stream_ops.allocate)throw new FS.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,o,n,a){if(0!=(2&n)&&0==(2&a)&&2!=(2097155&e.flags))throw new FS.ErrnoError(2);if(1==(2097155&e.flags))throw new FS.ErrnoError(2);if(!e.stream_ops.mmap)throw new FS.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,n,a)},msync:function(e,t,r,o,n){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,o,n):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,o=FS.open(e,t.flags),n=FS.stat(e).size,a=new Uint8Array(n);return FS.read(o,a,0,n,0),"utf8"===t.encoding?r=UTF8ArrayToString(a,0):"binary"===t.encoding&&(r=a),FS.close(o),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var o=FS.open(e,r.flags,r.mode);if("string"==typeof t){var n=new Uint8Array(lengthBytesUTF8(t)+1),a=stringToUTF8Array(t,n,0,n.length);FS.write(o,n,0,a,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");FS.write(o,t,0,t.byteLength,void 0,r.canOwn)}FS.close(o)},cwd:function(){return FS.currentPath},chdir:function(e){var t=FS.lookupPath(e,{follow:!0});if(null===t.node)throw new FS.ErrnoError(44);if(!FS.isDir(t.node.mode))throw new FS.ErrnoError(54);var r=FS.nodePermissions(t.node,"x");if(r)throw new FS.ErrnoError(r);FS.currentPath=t.path},createDefaultDirectories:function(){FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(e,t,r,o,n){return o}}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var e=getRandomDevice();FS.createDevice("/dev","random",e),FS.createDevice("/dev","urandom",e),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc"),FS.mkdir("/proc/self"),FS.mkdir("/proc/self/fd"),FS.mount({mount:function(){var e=FS.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=+t,o=FS.getStream(r);if(!o)throw new FS.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return o.path}}};return n.parent=n,n}},e}},{},"/proc/self/fd")},createStandardStreams:function(){Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr");var e=FS.open("/dev/stdin","r"),t=FS.open("/dev/stdout","w"),r=FS.open("/dev/stderr","w");assert(0===e.fd,"invalid handle for stdin ("+e.fd+")"),assert(1===t.fd,"invalid handle for stdout ("+t.fd+")"),assert(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,ERRNO_CODES)if(ERRNO_CODES[t]===e){this.code=t;break}},this.setErrno(e),this.message=ERRNO_MESSAGES[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=demangleAll(this.stack))},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach((function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init:function(e,t,r){assert(!FS.init.initialized,"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)"),FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=t||Module.stdout,Module.stderr=r||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;var e=Module._fflush;e&&e(0);for(var t=0;t<FS.streams.length;t++){var r=FS.streams[t];r&&FS.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=FS.analyzePath(e,t);return r.exists?r.object:(setErrNo(r.error),null)},analyzePath:function(e,t){try{e=(o=FS.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var o=FS.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=o.path,r.parentObject=o.node,r.name=PATH.basename(e),o=FS.lookupPath(e,{follow:!t}),r.exists=!0,r.path=o.path,r.object=o.node,r.name=o.node.name,r.isRoot="/"===o.path}catch(e){r.error=e.errno}return r},createPath:function(e,t,r,o){e="string"==typeof e?e:FS.getPath(e);for(var n=t.split("/").reverse();n.length;){var a=n.pop();if(a){var i=PATH.join2(e,a);try{FS.mkdir(i)}catch(e){}e=i}}return i},createFile:function(e,t,r,o,n){var a=PATH.join2("string"==typeof e?e:FS.getPath(e),t),i=FS.getMode(o,n);return FS.create(a,i)},createDataFile:function(e,t,r,o,n,a){var i=t?PATH.join2("string"==typeof e?e:FS.getPath(e),t):e,s=FS.getMode(o,n),d=FS.create(i,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,l=r.length;u<l;++u)c[u]=r.charCodeAt(u);r=c}FS.chmod(d,146|s);var E=FS.open(d,"w");FS.write(E,r,0,r.length,0,a),FS.close(E),FS.chmod(d,s)}return d},createDevice:function(e,t,r,o){var n=PATH.join2("string"==typeof e?e:FS.getPath(e),t),a=FS.getMode(!!r,!!o);FS.createDevice.major||(FS.createDevice.major=64);var i=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(i,{open:function(e){e.seekable=!1},close:function(e){o&&o.buffer&&o.buffer.length&&o(10)},read:function(e,t,o,n,a){for(var i=0,s=0;s<n;s++){var d;try{d=r()}catch(e){throw new FS.ErrnoError(29)}if(void 0===d&&0===i)throw new FS.ErrnoError(6);if(null==d)break;i++,t[o+s]=d}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,r,n,a){for(var i=0;i<n;i++)try{o(t[r+i])}catch(e){throw new FS.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}}),FS.mkdev(n,a,i)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new 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(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=intArrayFromString(read_(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||setErrNo(29),t},createLazyFile:function(e,t,r,o,n){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,o=Number(e.getResponseHeader("Content-length")),n=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,i=1048576;n||(i=o);var s=this;s.setDataGetter((function(e){var t=e*i,n=(e+1)*i-1;if(n=Math.min(n,o-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>o-1)throw new Error("only "+o+" bytes available! programmer error!");var n=new XMLHttpRequest;if(n.open("GET",r,!1),o!==i&&n.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(n.responseType="arraybuffer"),n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.send(null),!(n.status>=200&&n.status<300||304===n.status))throw new Error("Couldn't load "+r+". Status: "+n.status);return void 0!==n.response?new Uint8Array(n.response||[]):intArrayFromString(n.responseText||"",!0)}(t,n)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&o||(i=o=1,o=this.getter(0).length,i=o,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=o,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var i=new a;Object.defineProperties(i,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:i}}else s={isDevice:!1,url:r};var d=FS.createFile(e,t,s,o,n);s.contents?d.contents=s.contents:s.url&&(d.contents=null,d.url=s.url),Object.defineProperties(d,{usedBytes:{get:function(){return this.contents.length}}});var c={};return Object.keys(d.stream_ops).forEach((function(e){var t=d.stream_ops[e];c[e]=function(){if(!FS.forceLoadFile(d))throw new FS.ErrnoError(29);return t.apply(null,arguments)}})),c.read=function(e,t,r,o,n){if(!FS.forceLoadFile(d))throw new FS.ErrnoError(29);var a=e.node.contents;if(n>=a.length)return 0;var i=Math.min(a.length-n,o);if(assert(i>=0),a.slice)for(var s=0;s<i;s++)t[r+s]=a[n+s];else for(s=0;s<i;s++)t[r+s]=a.get(n+s);return i},d.stream_ops=c,d},createPreloadedFile:function(e,t,r,o,n,a,i,s,d,c){Browser.init();var u=t?PATH_FS.resolve(PATH.join2(e,t)):e,l=getUniqueRunDependency("cp "+u);function E(r){function E(r){c&&c(),s||FS.createDataFile(e,t,r,o,n,d),a&&a(),removeRunDependency(l)}var p=!1;Module.preloadPlugins.forEach((function(e){p||e.canHandle(u)&&(e.handle(r,u,E,(function(){i&&i(),removeRunDependency(l)})),p=!0)})),p||E(r)}addRunDependency(l),"string"==typeof r?Browser.asyncLoad(r,(function(e){E(e)}),i):E(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var o=FS.indexedDB();try{var n=o.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=function(){out("creating db"),n.result.createObjectStore(FS.DB_STORE_NAME)},n.onsuccess=function(){var o=n.result.transaction([FS.DB_STORE_NAME],"readwrite"),a=o.objectStore(FS.DB_STORE_NAME),i=0,s=0,d=e.length;function c(){0==s?t():r()}e.forEach((function(e){var t=a.put(FS.analyzePath(e).object.contents,e);t.onsuccess=function(){++i+s==d&&c()},t.onerror=function(){s++,i+s==d&&c()}})),o.onerror=r},n.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var o=FS.indexedDB();try{var n=o.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return r(e)}n.onupgradeneeded=r,n.onsuccess=function(){var o=n.result;try{var a=o.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var i=a.objectStore(FS.DB_STORE_NAME),s=0,d=0,c=e.length;function u(){0==d?t():r()}e.forEach((function(e){var t=i.get(e);t.onsuccess=function(){FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),t.result,!0,!0,!0),++s+d==c&&u()},t.onerror=function(){d++,s+d==c&&u()}})),a.onerror=r},n.onerror=r},absolutePath:function(){abort("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){abort("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){abort("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){abort("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){abort("FS.standardizePath has been removed; use PATH.normalize instead")}},SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=FS.cwd();else{var o=FS.getStream(e);if(!o)throw new FS.ErrnoError(8);r=o.path}t=PATH.join2(r,t)}return t},doStat:function(e,t,r){try{var o=e(t)}catch(e){if(e&&e.node&&PATH.normalize(t)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}return HEAP32[r>>2]=o.dev,HEAP32[r+4>>2]=0,HEAP32[r+8>>2]=o.ino,HEAP32[r+12>>2]=o.mode,HEAP32[r+16>>2]=o.nlink,HEAP32[r+20>>2]=o.uid,HEAP32[r+24>>2]=o.gid,HEAP32[r+28>>2]=o.rdev,HEAP32[r+32>>2]=0,tempI64=[o.size>>>0,(tempDouble=o.size,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r+40>>2]=tempI64[0],HEAP32[r+44>>2]=tempI64[1],HEAP32[r+48>>2]=4096,HEAP32[r+52>>2]=o.blocks,HEAP32[r+56>>2]=o.atime.getTime()/1e3|0,HEAP32[r+60>>2]=0,HEAP32[r+64>>2]=o.mtime.getTime()/1e3|0,HEAP32[r+68>>2]=0,HEAP32[r+72>>2]=o.ctime.getTime()/1e3|0,HEAP32[r+76>>2]=0,tempI64=[o.ino>>>0,(tempDouble=o.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r+80>>2]=tempI64[0],HEAP32[r+84>>2]=tempI64[1],0},doMsync:function(e,t,r,o,n){var a=HEAPU8.slice(e,e+r);FS.msync(t,a,n,r,o)},doMkdir:function(e,t){return"/"===(e=PATH.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),FS.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return FS.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var o=FS.readlink(e),n=Math.min(r,lengthBytesUTF8(o)),a=HEAP8[t+n];return stringToUTF8(o,t,r+1),HEAP8[t+n]=a,n},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=FS.lookupPath(e,{follow:!0}).node))return-44;var o="";return 4&t&&(o+="r"),2&t&&(o+="w"),1&t&&(o+="x"),o&&FS.nodePermissions(r,o)?-2:0},doDup:function(e,t,r){var o=FS.getStream(r);return o&&FS.close(o),FS.open(e,t,0,r,r).fd},doReadv:function(e,t,r,o){for(var n=0,a=0;a<r;a++){var i=HEAP32[t+8*a>>2],s=HEAP32[t+(8*a+4)>>2],d=FS.read(e,HEAP8,i,s,o);if(d<0)return-1;if(n+=d,d<s)break}return n},doWritev:function(e,t,r,o){for(var n=0,a=0;a<r;a++){var i=HEAP32[t+8*a>>2],s=HEAP32[t+(8*a+4)>>2],d=FS.write(e,HEAP8,i,s,o);if(d<0)return-1;n+=d}return n},varargs:void 0,get:function(){return assert(null!=SYSCALLS.varargs),SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(8);return t},get64:function(e,t){return assert(e>=0?0===t:-1===t),e}};function ___sys_access(e,t){try{return e=SYSCALLS.getStr(e),SYSCALLS.doAccess(e,t)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_fcntl64(e,t,r){SYSCALLS.varargs=r;try{var o=SYSCALLS.getStreamFromFD(e);switch(t){case 0:return(n=SYSCALLS.get())<0?-28:FS.open(o.path,o.flags,0,n).fd;case 1:case 2:return 0;case 3:return o.flags;case 4:var n=SYSCALLS.get();return o.flags|=n,0;case 12:n=SYSCALLS.get();return HEAP16[n+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return setErrNo(28),-1;default:return-28}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_fstat64(e,t){try{var r=SYSCALLS.getStreamFromFD(e);return SYSCALLS.doStat(FS.stat,r.path,t)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_getcwd(e,t){try{if(0===t)return-28;var r=FS.cwd();return t<lengthBytesUTF8(r)+1?-68:(stringToUTF8(r,e,t),e)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_getdents64(e,t,r){try{var o=SYSCALLS.getStreamFromFD(e);o.getdents||(o.getdents=FS.readdir(o.path));for(var n=280,a=0,i=FS.llseek(o,0,1),s=Math.floor(i/n);s<o.getdents.length&&a+n<=r;){var d,c,u=o.getdents[s];if("."===u[0])d=1,c=4;else{var l=FS.lookupNode(o.node,u);d=l.id,c=FS.isChrdev(l.mode)?2:FS.isDir(l.mode)?4:FS.isLink(l.mode)?10:8}tempI64=[d>>>0,(tempDouble=d,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t+a>>2]=tempI64[0],HEAP32[t+a+4>>2]=tempI64[1],tempI64=[(s+1)*n>>>0,(tempDouble=(s+1)*n,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t+a+8>>2]=tempI64[0],HEAP32[t+a+12>>2]=tempI64[1],HEAP16[t+a+16>>1]=280,HEAP8[t+a+18>>0]=c,stringToUTF8(u,t+a+19,256),a+=n,s+=1}return FS.llseek(o,s*n,0),a}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_getegid32(){return 0}function ___sys_geteuid32(){return ___sys_getegid32()}function ___sys_getgid32(){return ___sys_getegid32()}function ___sys_getpid(){return 42}function ___sys_getuid32(){return ___sys_getegid32()}function ___sys_ioctl(e,t,r){SYSCALLS.varargs=r;try{var o=SYSCALLS.getStreamFromFD(e);switch(t){case 21509:case 21505:return o.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return o.tty?0:-59;case 21519:if(!o.tty)return-59;var n=SYSCALLS.get();return HEAP32[n>>2]=0,0;case 21520:return o.tty?-28:-59;case 21531:n=SYSCALLS.get();return FS.ioctl(o,t,n);case 21523:case 21524:return o.tty?0:-59;default:abort("bad ioctl syscall "+t)}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_mkdir(e,t){try{return e=SYSCALLS.getStr(e),SYSCALLS.doMkdir(e,t)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function syscallMunmap(e,t){if(-1==(0|e)||0===t)return-28;var r=SYSCALLS.mappings[e];if(!r)return 0;if(t===r.len){var o=FS.getStream(r.fd);2&r.prot&&SYSCALLS.doMsync(e,o,t,r.flags,r.offset),FS.munmap(o),SYSCALLS.mappings[e]=null,r.allocated&&_free(r.malloc)}return 0}function ___sys_munmap(e,t){try{return syscallMunmap(e,t)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_open(e,t,r){SYSCALLS.varargs=r;try{var o=SYSCALLS.getStr(e),n=SYSCALLS.get();return FS.open(o,t,n).fd}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_read(e,t,r){try{var o=SYSCALLS.getStreamFromFD(e);return FS.read(o,HEAP8,t,r)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_stat64(e,t){try{return e=SYSCALLS.getStr(e),SYSCALLS.doStat(FS.stat,e,t)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _abort(){abort()}function _clock(){return void 0===_clock.start&&(_clock.start=Date.now()),1e3*(Date.now()-_clock.start)|0}_emscripten_get_now=ENVIRONMENT_IS_NODE?function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var _emscripten_get_now_is_monotonic=!0;function _clock_gettime(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e||!_emscripten_get_now_is_monotonic)return setErrNo(28),-1;r=_emscripten_get_now()}return HEAP32[t>>2]=r/1e3|0,HEAP32[t+4>>2]=r%1e3*1e3*1e3|0,0}function _emscripten_memcpy_big(e,t,r){HEAPU8.copyWithin(e,t,t+r)}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(e){try{return wasmMemory.grow(e-buffer.byteLength+65535>>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(t){console.error("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function _emscripten_resize_heap(e){e>>>=0;var t=_emscripten_get_heap_size();assert(e>t);var r=2147483648;if(e>r)return err("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+"2147483648 bytes!"),!1;for(var o=1;o<=4;o*=2){var n=t*(1+.2/o);n=Math.min(n,e+100663296);var a=Math.min(r,alignUp(Math.max(16777216,e,n),65536));if(emscripten_realloc_buffer(a))return!0}return err("Failed to grow the heap from "+t+" bytes to "+a+" bytes, not enough memory!"),!1}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(var t in ENV)e[t]=ENV[t];var r=[];for(var t in e)r.push(t+"="+e[t]);getEnvStrings.strings=r}return getEnvStrings.strings}function _environ_get(e,t){var r=0;return getEnvStrings().forEach((function(o,n){var a=t+r;HEAP32[e+4*n>>2]=a,writeAsciiToMemory(o,a),r+=o.length+1})),0}function _environ_sizes_get(e,t){var r=getEnvStrings();HEAP32[e>>2]=r.length;var o=0;return r.forEach((function(e){o+=e.length+1})),HEAP32[t>>2]=o,0}function _fd_close(e){try{var t=SYSCALLS.getStreamFromFD(e);return FS.close(t),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_fdstat_get(e,t){try{var r=SYSCALLS.getStreamFromFD(e),o=r.tty?2:FS.isDir(r.mode)?3:FS.isLink(r.mode)?7:4;return HEAP8[t>>0]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_read(e,t,r,o){try{var n=SYSCALLS.getStreamFromFD(e),a=SYSCALLS.doReadv(n,t,r);return HEAP32[o>>2]=a,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_seek(e,t,r,o,n){try{var a=SYSCALLS.getStreamFromFD(e),i=4294967296*r+(t>>>0),s=9007199254740992;return i<=-s||i>=s?-61:(FS.llseek(a,i,o),tempI64=[a.position>>>0,(tempDouble=a.position,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n>>2]=tempI64[0],HEAP32[n+4>>2]=tempI64[1],a.getdents&&0===i&&0===o&&(a.getdents=null),0)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_write(e,t,r,o){try{var n=SYSCALLS.getStreamFromFD(e),a=SYSCALLS.doWritev(n,t,r);return HEAP32[o>>2]=a,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _gettimeofday(e){var t=Date.now();return HEAP32[e>>2]=t/1e3|0,HEAP32[e+4>>2]=t%1e3*1e3|0,0}function _gmtime_r(e,t){var r=new Date(1e3*HEAP32[e>>2]);HEAP32[t>>2]=r.getUTCSeconds(),HEAP32[t+4>>2]=r.getUTCMinutes(),HEAP32[t+8>>2]=r.getUTCHours(),HEAP32[t+12>>2]=r.getUTCDate(),HEAP32[t+16>>2]=r.getUTCMonth(),HEAP32[t+20>>2]=r.getUTCFullYear()-1900,HEAP32[t+24>>2]=r.getUTCDay(),HEAP32[t+36>>2]=0,HEAP32[t+32>>2]=0;var o=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),n=(r.getTime()-o)/864e5|0;return HEAP32[t+28>>2]=n,_gmtime_r.GMTString||(_gmtime_r.GMTString=allocateUTF8("GMT")),HEAP32[t+40>>2]=_gmtime_r.GMTString,t}function _mktime(e){_tzset();var t=new Date(HEAP32[e+20>>2]+1900,HEAP32[e+16>>2],HEAP32[e+12>>2],HEAP32[e+8>>2],HEAP32[e+4>>2],HEAP32[e>>2],0),r=HEAP32[e+32>>2],o=t.getTimezoneOffset(),n=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),i=n.getTimezoneOffset(),s=Math.min(i,a);if(r<0)HEAP32[e+32>>2]=Number(a!=i&&s==o);else if(r>0!=(s==o)){var d=Math.max(i,a),c=r>0?s:d;t.setTime(t.getTime()+6e4*(c-o))}HEAP32[e+24>>2]=t.getDay();var u=(t.getTime()-n.getTime())/864e5|0;return HEAP32[e+28>>2]=u,t.getTime()/1e3|0}function _pthread_create(){return 6}function _pthread_join(){}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _pthread_rwlock_destroy(){return 0}function _pthread_rwlock_init(){return 0}function _pthread_rwlock_rdlock(){return 0}function _pthread_rwlock_unlock(){return 0}function _pthread_rwlock_wrlock(){return 0}function _setTempRet0(e){setTempRet0(0|e)}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}function __arraySum(e,t){for(var r=0,o=0;o<=t;r+=e[o++]);return r}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,t){for(var r=new Date(e.getTime());t>0;){var o=__isLeapYear(r.getFullYear()),n=r.getMonth(),a=(o?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[n];if(!(t>a-r.getDate()))return r.setDate(r.getDate()+t),r;t-=a-r.getDate()+1,r.setDate(1),n<11?r.setMonth(n+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function _strftime(e,t,r,o){var n=HEAP32[o+40>>2],a={tm_sec:HEAP32[o>>2],tm_min:HEAP32[o+4>>2],tm_hour:HEAP32[o+8>>2],tm_mday:HEAP32[o+12>>2],tm_mon:HEAP32[o+16>>2],tm_year:HEAP32[o+20>>2],tm_wday:HEAP32[o+24>>2],tm_yday:HEAP32[o+28>>2],tm_isdst:HEAP32[o+32>>2],tm_gmtoff:HEAP32[o+36>>2],tm_zone:n?UTF8ToString(n):""},i=UTF8ToString(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var d in s)i=i.replace(new RegExp(d,"g"),s[d]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],u=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){for(var o="number"==typeof e?e.toString():e||"";o.length<t;)o=r[0]+o;return o}function E(e,t){return l(e,t,"0")}function p(e,t){function r(e){return e<0?-1:e>0?1:0}var o;return 0===(o=r(e.getFullYear()-t.getFullYear()))&&0===(o=r(e.getMonth()-t.getMonth()))&&(o=r(e.getDate()-t.getDate())),o}function _(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function f(e){var t=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),o=new Date(t.getFullYear()+1,0,4),n=_(r),a=_(o);return p(n,t)<=0?p(a,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var S={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return u[e.tm_mon].substring(0,3)},"%B":function(e){return u[e.tm_mon]},"%C":function(e){return E((e.tm_year+1900)/100|0,2)},"%d":function(e){return E(e.tm_mday,2)},"%e":function(e){return l(e.tm_mday,2," ")},"%g":function(e){return f(e).toString().substring(2)},"%G":function(e){return f(e)},"%H":function(e){return E(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),E(t,2)},"%j":function(e){return E(e.tm_mday+__arraySum(__isLeapYear(e.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,e.tm_mon-1),3)},"%m":function(e){return E(e.tm_mon+1,2)},"%M":function(e){return E(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return E(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:__addDays(t,7-t.getDay()),o=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(p(r,o)<0){var n=__arraySum(__isLeapYear(o.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,o.getMonth()-1)-31,a=31-r.getDate()+n+o.getDate();return E(Math.ceil(a/7),2)}return 0===p(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),o=new Date(e.tm_year+1901,0,4),n=_(r),a=_(o),i=__addDays(new Date(e.tm_year+1900,0,1),e.tm_yday);return p(i,n)<0?"53":p(a,i)<=0?"01":(t=n.getFullYear()<e.tm_year+1900?e.tm_yday+32-n.getDate():e.tm_yday+1-n.getDate(),E(Math.ceil(t/7),2))},"%w":function(e){return e.tm_wday},"%W":function(e){var t=new Date(e.tm_year,0,1),r=1===t.getDay()?t:__addDays(t,0===t.getDay()?1:7-t.getDay()+1),o=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(p(r,o)<0){var n=__arraySum(__isLeapYear(o.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,o.getMonth()-1)-31,a=31-r.getDate()+n+o.getDate();return E(Math.ceil(a/7),2)}return 0===p(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var d in S)i.indexOf(d)>=0&&(i=i.replace(new RegExp(d,"g"),S[d](a)));var T=intArrayFromString(i,!1);return T.length>t?0:(writeArrayToMemory(T,e),T.length-1)}function _sysconf(e){switch(e){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return setErrNo(28),-1}function _time(e){var t=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=t),t}var FSNode=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},readMode=365,writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(e){e?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(e){e?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}}),FS.FSNode=FSNode,FS.staticInit(),Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createDevice=FS.createDevice,Module.FS_unlink=FS.unlink;var ASSERTIONS=!0;function intArrayFromString(e,t,r){var o=r>0?r:lengthBytesUTF8(e)+1,n=new Array(o),a=stringToUTF8Array(e,n,0,n.length);return t&&(n.length=a),n}__ATINIT__.push({func:function(){___wasm_call_ctors()}});var calledRun,asmLibraryArg={__assert_fail:___assert_fail,__cxa_atexit:___cxa_atexit,__localtime_r:___localtime_r,__sys_access:___sys_access,__sys_fcntl64:___sys_fcntl64,__sys_fstat64:___sys_fstat64,__sys_getcwd:___sys_getcwd,__sys_getdents64:___sys_getdents64,__sys_getegid32:___sys_getegid32,__sys_geteuid32:___sys_geteuid32,__sys_getgid32:___sys_getgid32,__sys_getpid:___sys_getpid,__sys_getuid32:___sys_getuid32,__sys_ioctl:___sys_ioctl,__sys_mkdir:___sys_mkdir,__sys_munmap:___sys_munmap,__sys_open:___sys_open,__sys_read:___sys_read,__sys_stat64:___sys_stat64,abort:_abort,atexit:_atexit,clock:_clock,clock_gettime:_clock_gettime,emscripten_memcpy_big:_emscripten_memcpy_big,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,gettimeofday:_gettimeofday,gmtime_r:_gmtime_r,localtime_r:_localtime_r,memory:wasmMemory,mktime:_mktime,pthread_create:_pthread_create,pthread_join:_pthread_join,pthread_mutexattr_destroy:_pthread_mutexattr_destroy,pthread_mutexattr_init:_pthread_mutexattr_init,pthread_mutexattr_settype:_pthread_mutexattr_settype,pthread_rwlock_destroy:_pthread_rwlock_destroy,pthread_rwlock_init:_pthread_rwlock_init,pthread_rwlock_rdlock:_pthread_rwlock_rdlock,pthread_rwlock_unlock:_pthread_rwlock_unlock,pthread_rwlock_wrlock:_pthread_rwlock_wrlock,setTempRet0:_setTempRet0,strftime:_strftime,sysconf:_sysconf,time:_time},asm=createWasm(),___wasm_call_ctors=Module.___wasm_call_ctors=createExportWrapper("__wasm_call_ctors"),_free=Module._free=createExportWrapper("free"),_malloc=Module._malloc=createExportWrapper("malloc"),_memset=Module._memset=createExportWrapper("memset"),_memcpy=Module._memcpy=createExportWrapper("memcpy"),_initDecoder=Module._initDecoder=createExportWrapper("initDecoder"),_setLiveParam=Module._setLiveParam=createExportWrapper("setLiveParam"),_uninitDecoder=Module._uninitDecoder=createExportWrapper("uninitDecoder"),_closeDecoder=Module._closeDecoder=createExportWrapper("closeDecoder"),_ntohs=Module._ntohs=createExportWrapper("ntohs"),_getVideoParam=Module._getVideoParam=createExportWrapper("getVideoParam"),_getAudioParam=Module._getAudioParam=createExportWrapper("getAudioParam"),_openDecoder=Module._openDecoder=createExportWrapper("openDecoder"),_sendData=Module._sendData=createExportWrapper("sendData"),_decodeOnePacket=Module._decodeOnePacket=createExportWrapper("decodeOnePacket"),_getHeartbeatPing=Module._getHeartbeatPing=createExportWrapper("getHeartbeatPing"),_getHandshakeReq=Module._getHandshakeReq=createExportWrapper("getHandshakeReq"),_getSetPlaybackStartPosReq=Module._getSetPlaybackStartPosReq=createExportWrapper("getSetPlaybackStartPosReq"),_getSetPlayBackStartTimeReq=Module._getSetPlayBackStartTimeReq=createExportWrapper("getSetPlayBackStartTimeReq"),_getSetPlayBackSpeedReq=Module._getSetPlayBackSpeedReq=createExportWrapper("getSetPlayBackSpeedReq"),_getSetPlayBackStartReq=Module._getSetPlayBackStartReq=createExportWrapper("getSetPlayBackStartReq"),_getReqIFrame=Module._getReqIFrame=createExportWrapper("getReqIFrame"),_resetDecoderFifo=Module._resetDecoderFifo=createExportWrapper("resetDecoderFifo"),_setPlayMode=Module._setPlayMode=createExportWrapper("setPlayMode"),_setCipherInfo=Module._setCipherInfo=createExportWrapper("setCipherInfo"),_setRecordCallback=Module._setRecordCallback=createExportWrapper("setRecordCallback"),_recoderStart=Module._recoderStart=createExportWrapper("recoderStart"),_recoderPause=Module._recoderPause=createExportWrapper("recoderPause"),_initTalkEncoder=Module._initTalkEncoder=createExportWrapper("initTalkEncoder"),_closeTalkEncoder=Module._closeTalkEncoder=createExportWrapper("closeTalkEncoder"),_uninitTalkDecoder=Module._uninitTalkDecoder=createExportWrapper("uninitTalkDecoder"),_getTalkStartReq=Module._getTalkStartReq=createExportWrapper("getTalkStartReq"),_getTalkStopReq=Module._getTalkStopReq=createExportWrapper("getTalkStopReq"),_startTalkEncoder=Module._startTalkEncoder=createExportWrapper("startTalkEncoder"),_sendTalkData=Module._sendTalkData=createExportWrapper("sendTalkData"),_getAudioData=Module._getAudioData=createExportWrapper("getAudioData"),___errno_location=Module.___errno_location=createExportWrapper("__errno_location"),_fflush=Module._fflush=createExportWrapper("fflush"),_htons=Module._htons=createExportWrapper("htons"),_htonl=Module._htonl=createExportWrapper("htonl"),__get_tzname=Module.__get_tzname=createExportWrapper("_get_tzname"),__get_daylight=Module.__get_daylight=createExportWrapper("_get_daylight"),__get_timezone=Module.__get_timezone=createExportWrapper("_get_timezone"),stackSave=Module.stackSave=createExportWrapper("stackSave"),stackRestore=Module.stackRestore=createExportWrapper("stackRestore"),stackAlloc=Module.stackAlloc=createExportWrapper("stackAlloc"),_memalign=Module._memalign=createExportWrapper("memalign"),_emscripten_main_thread_process_queued_calls=Module._emscripten_main_thread_process_queued_calls=createExportWrapper("emscripten_main_thread_process_queued_calls"),dynCall_iiij=Module.dynCall_iiij=createExportWrapper("dynCall_iiij"),dynCall_iij=Module.dynCall_iij=createExportWrapper("dynCall_iij"),dynCall_ji=Module.dynCall_ji=createExportWrapper("dynCall_ji"),dynCall_iiijiijii=Module.dynCall_iiijiijii=createExportWrapper("dynCall_iiijiijii"),dynCall_iiiiijii=Module.dynCall_iiiiijii=createExportWrapper("dynCall_iiiiijii"),dynCall_viiijj=Module.dynCall_viiijj=createExportWrapper("dynCall_viiijj"),dynCall_jij=Module.dynCall_jij=createExportWrapper("dynCall_jij"),dynCall_jii=Module.dynCall_jii=createExportWrapper("dynCall_jii"),dynCall_jiji=Module.dynCall_jiji=createExportWrapper("dynCall_jiji"),_ff_h264_cabac_tables=Module._ff_h264_cabac_tables=252550;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function t(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),assert(!Module._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),postRun()))}e=e||arguments_,runDependencies>0||(writeStackCookie(),preRun(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),t()}),1)):t(),checkStackCookie()))}function checkUnflushedContent(){var e=out,t=err,r=!1;out=err=function(e){r=!0};try{var o=Module._fflush;o&&o(0),["stdout","stderr"].forEach((function(e){var t=FS.analyzePath("/dev/"+e);if(t){var o=t.object.rdev,n=TTY.ttys[o];n&&n.output&&n.output.length&&(r=!0)}}))}catch(e){}out=e,err=t,r&&warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}if(Object.getOwnPropertyDescriptor(Module,"intArrayFromString")||(Module.intArrayFromString=function(){abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"intArrayToString")||(Module.intArrayToString=function(){abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ccall")||(Module.ccall=function(){abort("'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"cwrap")||(Module.cwrap=function(){abort("'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setValue")||(Module.setValue=function(){abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getValue")||(Module.getValue=function(){abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocate")||(Module.allocate=function(){abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF8ArrayToString")||(Module.UTF8ArrayToString=function(){abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF8ToString")||(Module.UTF8ToString=function(){abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF8Array")||(Module.stringToUTF8Array=function(){abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF8")||(Module.stringToUTF8=function(){abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF8")||(Module.lengthBytesUTF8=function(){abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackTrace")||(Module.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPreRun")||(Module.addOnPreRun=function(){abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnInit")||(Module.addOnInit=function(){abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPreMain")||(Module.addOnPreMain=function(){abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnExit")||(Module.addOnExit=function(){abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPostRun")||(Module.addOnPostRun=function(){abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeStringToMemory")||(Module.writeStringToMemory=function(){abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeArrayToMemory")||(Module.writeArrayToMemory=function(){abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeAsciiToMemory")||(Module.writeAsciiToMemory=function(){abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Object.getOwnPropertyDescriptor(Module,"FS_createFolder")||(Module.FS_createFolder=function(){abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Object.getOwnPropertyDescriptor(Module,"FS_createLink")||(Module.FS_createLink=function(){abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.FS_createDevice=FS.createDevice,Module.FS_unlink=FS.unlink,Object.getOwnPropertyDescriptor(Module,"getLEB")||(Module.getLEB=function(){abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFunctionTables")||(Module.getFunctionTables=function(){abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"alignFunctionTables")||(Module.alignFunctionTables=function(){abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerFunctions")||(Module.registerFunctions=function(){abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.addFunction=addFunction,Object.getOwnPropertyDescriptor(Module,"removeFunction")||(Module.removeFunction=function(){abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFuncWrapper")||(Module.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"prettyPrint")||(Module.prettyPrint=function(){abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"makeBigInt")||(Module.makeBigInt=function(){abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCall")||(Module.dynCall=function(){abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getCompilerSetting")||(Module.getCompilerSetting=function(){abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"print")||(Module.print=function(){abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"printErr")||(Module.printErr=function(){abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getTempRet0")||(Module.getTempRet0=function(){abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setTempRet0")||(Module.setTempRet0=function(){abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"callMain")||(Module.callMain=function(){abort("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"abort")||(Module.abort=function(){abort("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToNewUTF8")||(Module.stringToNewUTF8=function(){abort("'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscripten_realloc_buffer")||(Module.emscripten_realloc_buffer=function(){abort("'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ENV")||(Module.ENV=function(){abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ERRNO_CODES")||(Module.ERRNO_CODES=function(){abort("'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ERRNO_MESSAGES")||(Module.ERRNO_MESSAGES=function(){abort("'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setErrNo")||(Module.setErrNo=function(){abort("'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"DNS")||(Module.DNS=function(){abort("'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getHostByName")||(Module.getHostByName=function(){abort("'getHostByName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GAI_ERRNO_MESSAGES")||(Module.GAI_ERRNO_MESSAGES=function(){abort("'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Protocols")||(Module.Protocols=function(){abort("'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Sockets")||(Module.Sockets=function(){abort("'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getRandomDevice")||(Module.getRandomDevice=function(){abort("'getRandomDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"traverseStack")||(Module.traverseStack=function(){abort("'traverseStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UNWIND_CACHE")||(Module.UNWIND_CACHE=function(){abort("'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"withBuiltinMalloc")||(Module.withBuiltinMalloc=function(){abort("'withBuiltinMalloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readAsmConstArgsArray")||(Module.readAsmConstArgsArray=function(){abort("'readAsmConstArgsArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readAsmConstArgs")||(Module.readAsmConstArgs=function(){abort("'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"mainThreadEM_ASM")||(Module.mainThreadEM_ASM=function(){abort("'mainThreadEM_ASM' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jstoi_q")||(Module.jstoi_q=function(){abort("'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jstoi_s")||(Module.jstoi_s=function(){abort("'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getExecutableName")||(Module.getExecutableName=function(){abort("'getExecutableName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"listenOnce")||(Module.listenOnce=function(){abort("'listenOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"autoResumeAudioContext")||(Module.autoResumeAudioContext=function(){abort("'autoResumeAudioContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCallLegacy")||(Module.dynCallLegacy=function(){abort("'dynCallLegacy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getDynCaller")||(Module.getDynCaller=function(){abort("'getDynCaller' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCall")||(Module.dynCall=function(){abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"callRuntimeCallbacks")||(Module.callRuntimeCallbacks=function(){abort("'callRuntimeCallbacks' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"abortStackOverflow")||(Module.abortStackOverflow=function(){abort("'abortStackOverflow' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"reallyNegative")||(Module.reallyNegative=function(){abort("'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"unSign")||(Module.unSign=function(){abort("'unSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"reSign")||(Module.reSign=function(){abort("'reSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"formatString")||(Module.formatString=function(){abort("'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PATH")||(Module.PATH=function(){abort("'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PATH_FS")||(Module.PATH_FS=function(){abort("'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SYSCALLS")||(Module.SYSCALLS=function(){abort("'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"syscallMmap2")||(Module.syscallMmap2=function(){abort("'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"syscallMunmap")||(Module.syscallMunmap=function(){abort("'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"JSEvents")||(Module.JSEvents=function(){abort("'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"specialHTMLTargets")||(Module.specialHTMLTargets=function(){abort("'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"maybeCStringToJsString")||(Module.maybeCStringToJsString=function(){abort("'maybeCStringToJsString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"findEventTarget")||(Module.findEventTarget=function(){abort("'findEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"findCanvasEventTarget")||(Module.findCanvasEventTarget=function(){abort("'findCanvasEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"polyfillSetImmediate")||(Module.polyfillSetImmediate=function(){abort("'polyfillSetImmediate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"demangle")||(Module.demangle=function(){abort("'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"demangleAll")||(Module.demangleAll=function(){abort("'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jsStackTrace")||(Module.jsStackTrace=function(){abort("'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackTrace")||(Module.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getEnvStrings")||(Module.getEnvStrings=function(){abort("'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"checkWasiClock")||(Module.checkWasiClock=function(){abort("'checkWasiClock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64")||(Module.writeI53ToI64=function(){abort("'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64Clamped")||(Module.writeI53ToI64Clamped=function(){abort("'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64Signaling")||(Module.writeI53ToI64Signaling=function(){abort("'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToU64Clamped")||(Module.writeI53ToU64Clamped=function(){abort("'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToU64Signaling")||(Module.writeI53ToU64Signaling=function(){abort("'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readI53FromI64")||(Module.readI53FromI64=function(){abort("'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readI53FromU64")||(Module.readI53FromU64=function(){abort("'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"convertI32PairToI53")||(Module.convertI32PairToI53=function(){abort("'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"convertU32PairToI53")||(Module.convertU32PairToI53=function(){abort("'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exceptionLast")||(Module.exceptionLast=function(){abort("'exceptionLast' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exceptionCaught")||(Module.exceptionCaught=function(){abort("'exceptionCaught' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ExceptionInfoAttrs")||(Module.ExceptionInfoAttrs=function(){abort("'ExceptionInfoAttrs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ExceptionInfo")||(Module.ExceptionInfo=function(){abort("'ExceptionInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"CatchInfo")||(Module.CatchInfo=function(){abort("'CatchInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exception_addRef")||(Module.exception_addRef=function(){abort("'exception_addRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exception_decRef")||(Module.exception_decRef=function(){abort("'exception_decRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Browser")||(Module.Browser=function(){abort("'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"funcWrappers")||(Module.funcWrappers=function(){abort("'funcWrappers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFuncWrapper")||(Module.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setMainLoop")||(Module.setMainLoop=function(){abort("'setMainLoop' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"FS")||(Module.FS=function(){abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"mmapAlloc")||(Module.mmapAlloc=function(){abort("'mmapAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"MEMFS")||(Module.MEMFS=function(){abort("'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"TTY")||(Module.TTY=function(){abort("'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PIPEFS")||(Module.PIPEFS=function(){abort("'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SOCKFS")||(Module.SOCKFS=function(){abort("'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"tempFixedLengthArray")||(Module.tempFixedLengthArray=function(){abort("'tempFixedLengthArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"miniTempWebGLFloatBuffers")||(Module.miniTempWebGLFloatBuffers=function(){abort("'miniTempWebGLFloatBuffers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"heapObjectForWebGLType")||(Module.heapObjectForWebGLType=function(){abort("'heapObjectForWebGLType' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"heapAccessShiftForWebGLHeap")||(Module.heapAccessShiftForWebGLHeap=function(){abort("'heapAccessShiftForWebGLHeap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GL")||(Module.GL=function(){abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGet")||(Module.emscriptenWebGLGet=function(){abort("'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"computeUnpackAlignedImageSize")||(Module.computeUnpackAlignedImageSize=function(){abort("'computeUnpackAlignedImageSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetTexPixelData")||(Module.emscriptenWebGLGetTexPixelData=function(){abort("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetUniform")||(Module.emscriptenWebGLGetUniform=function(){abort("'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetVertexAttrib")||(Module.emscriptenWebGLGetVertexAttrib=function(){abort("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeGLArray")||(Module.writeGLArray=function(){abort("'writeGLArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"AL")||(Module.AL=function(){abort("'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_unicode")||(Module.SDL_unicode=function(){abort("'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_ttfContext")||(Module.SDL_ttfContext=function(){abort("'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_audio")||(Module.SDL_audio=function(){abort("'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL")||(Module.SDL=function(){abort("'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_gfx")||(Module.SDL_gfx=function(){abort("'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLUT")||(Module.GLUT=function(){abort("'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"EGL")||(Module.EGL=function(){abort("'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLFW_Window")||(Module.GLFW_Window=function(){abort("'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLFW")||(Module.GLFW=function(){abort("'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLEW")||(Module.GLEW=function(){abort("'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"IDBStore")||(Module.IDBStore=function(){abort("'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"runAndAbortIfError")||(Module.runAndAbortIfError=function(){abort("'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"warnOnce")||(Module.warnOnce=function(){abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackSave")||(Module.stackSave=function(){abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackRestore")||(Module.stackRestore=function(){abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackAlloc")||(Module.stackAlloc=function(){abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"AsciiToString")||(Module.AsciiToString=function(){abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToAscii")||(Module.stringToAscii=function(){abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF16ToString")||(Module.UTF16ToString=function(){abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF16")||(Module.stringToUTF16=function(){abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF16")||(Module.lengthBytesUTF16=function(){abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF32ToString")||(Module.UTF32ToString=function(){abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF32")||(Module.stringToUTF32=function(){abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF32")||(Module.lengthBytesUTF32=function(){abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocateUTF8")||(Module.allocateUTF8=function(){abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocateUTF8OnStack")||(Module.allocateUTF8OnStack=function(){abort("'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.writeStackCookie=writeStackCookie,Module.checkStackCookie=checkStackCookie,Object.getOwnPropertyDescriptor(Module,"ALLOC_NORMAL")||Object.defineProperty(Module,"ALLOC_NORMAL",{configurable:!0,get:function(){abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(Module,"ALLOC_STACK")||Object.defineProperty(Module,"ALLOC_STACK",{configurable:!0,get:function(){abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),dependenciesFulfilled=function e(){calledRun||run(),calledRun||(dependenciesFulfilled=e)},Module.run=run,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();noExitRuntime=!0,run(); |