trtc-sdk-v5 5.8.7-beta.9 → 5.9.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/index.d.ts +25 -39
  2. package/package.json +1 -1
  3. package/plugins/cdn-streaming/cdn-streaming.esm.js +1 -1
  4. package/plugins/cdn-streaming/cdn-streaming.iife.js +1 -1
  5. package/plugins/cdn-streaming/package.json +1 -1
  6. package/plugins/cross-room/cross-room.esm.js +1 -1
  7. package/plugins/cross-room/cross-room.iife.js +1 -1
  8. package/plugins/cross-room/package.json +1 -1
  9. package/plugins/device-detector/device-detector.esm.js +22 -22
  10. package/plugins/device-detector/device-detector.iife.js +20 -20
  11. package/plugins/device-detector/package.json +1 -1
  12. package/plugins/video-decoder/package.json +8 -0
  13. package/plugins/video-decoder/video-decoder.esm.d.ts +34 -0
  14. package/plugins/video-decoder/video-decoder.esm.js +43 -0
  15. package/plugins/video-decoder/video-decoder.iife.js +43 -0
  16. package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +2 -2
  17. package/plugins/video-effect/basic-beauty/basic-beauty.iife.js +2 -2
  18. package/plugins/video-effect/basic-beauty/package.json +1 -1
  19. package/plugins/video-effect/beauty/beauty.esm.js +4 -4
  20. package/plugins/video-effect/beauty/beauty.iife.js +4 -4
  21. package/plugins/video-effect/beauty/package.json +1 -1
  22. package/plugins/video-effect/virtual-background/package.json +1 -1
  23. package/plugins/video-effect/virtual-background/virtual-background.esm.js +10 -10
  24. package/plugins/video-effect/virtual-background/virtual-background.iife.js +12 -12
  25. package/plugins/video-effect/watermark/package.json +1 -1
  26. package/plugins/video-effect/watermark/watermark.esm.js +1 -1
  27. package/plugins/video-effect/watermark/watermark.iife.js +1 -1
  28. package/trtc.esm.js +56 -116
  29. package/trtc.js +1 -1
@@ -1,7 +1,7 @@
1
- var Iu=Object.defineProperty,mu=Object.defineProperties;var Cu=Object.getOwnPropertyDescriptors;var pc=Object.getOwnPropertySymbols;var yu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable;var nc=(K,x,n)=>x in K?Iu(K,x,{enumerable:!0,configurable:!0,writable:!0,value:n}):K[x]=n,_c=(K,x)=>{for(var n in x||(x={}))yu.call(x,n)&&nc(K,n,x[n]);if(pc)for(var n of pc(x))wu.call(x,n)&&nc(K,n,x[n]);return K},hc=(K,x)=>mu(K,Cu(x));var Ic=(K=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(K,{get:(x,n)=>(typeof require!="undefined"?require:x)[n]}):K)(function(K){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+K+'" is not supported')});var Le=(K,x,n)=>(nc(K,typeof x!="symbol"?x+"":x,n),n);async function mc({sdkAppId:K,userId:x,userSig:n,core:Ee}){var ot;let N=Ee.utils.getAbilityConfigUrl(K),Ue=Math.round(new Date().getTime()/1e3),we=`${N}?sdkAppId=${K}&userId=${x}&userSig=${n}&timestamp=${Ue}`;try{let $e=await(await fetch(we)).json();Ee.log.info(`virtual background send ${we}, response: ${JSON.stringify($e)}`);let{data:Ye}=$e;return(ot=Ye==null?void 0:Ye.trtcAutoConf)!=null&&ot.web_ar?{auth:!0,timestamp:Ue}:{auth:!1}}catch(ht){return Ee.log.error("virtual background fetch error",ht),{auth:!1}}}var Du={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function Cc(K){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:hc(_c({},Du),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1}}),validate(x,n,Ee,N){var Ve;let{RtcError:Ue,ErrorCode:we,ErrorCodeDictionary:ot}=K.errorModule;if(!x)return;let{type:ht,src:$e,onAbort:Ye}=x;if(ht==="image"&&!$e)throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_REQUIRED,fnName:Ee,messageParams:{key:"src"}});if(Ye&&!K.utils.isFunction(Ye))throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_TYPE,fnName:Ee,messageParams:{key:"onAbort",value:typeof Ye,rule:{type:"Function"}}});if(!((Ve=K.room.videoManager.cameraTrack)!=null&&Ve.mediaTrack))throw new Ue({code:we.INVALID_OPERATION,extraCode:ot.INVALID_OPERATION_NEED_VIDEO,fnName:Ee})}}}function yc(K){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(x,n,Ee,N){if(!x)return;let{RtcError:Ue,ErrorCode:we,ErrorCodeDictionary:ot}=K.errorModule,{type:ht,src:$e}=x;if(ht==="image"&&!$e)throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_REQUIRED,fnName:Ee,messageParams:{key:"src"}})}}}function wc(K){return{name:"StopVirtualBackgroundOptions",required:!1}}var bu=function(){let K=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(K=K||__filename),function(x){x=x||{};let n=typeof x!="undefined"?x:{},Ee,N;n.ready=new Promise((e,t)=>{Ee=e,N=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){p("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set(){p("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get(){p("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set(){p("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get(){p("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set(){p("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get(){p("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set(){p("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get(){p("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set(){p("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get(){p("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set(){p("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get(){p("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set(){p("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get(){p("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set(){p("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get(){p("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set(){p("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get(){p("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set(){p("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get(){p("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set(){p("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get(){p("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set(){p("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get(){p("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set(){p("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get(){p("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set(){p("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get(){p("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set(){p("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get(){p("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set(){p("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get(){p("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set(){p("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){p("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){p("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){p("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){p("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){p("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){p("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get(){p("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set(){p("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get(){p("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set(){p("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get(){p("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set(){p("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){p("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){p("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get(){p("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set(){p("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){p("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){p("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get(){p("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set(){p("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){p("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){p("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get(){p("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set(){p("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let Ue={},we;for(we in n)n.hasOwnProperty(we)&&(Ue[we]=n[we]);let ot=[],ht="./this.program",$e=function(e,t){throw t},Ye=typeof window=="object",Ve=typeof importScripts=="function",It=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",bi=!Ye&&!It&&!Ve;if(n.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)");let Te="";function Oi(e){return n.locateFile?n.locateFile(e,Te):Te+e}let Rr,er,nn,In,Ke,ge;if(Ye||Ve){if(Ve?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),K&&(Te=K),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Rr=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Ve&&(nn=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),er=function(e,t,r){let o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){if(o.status==200||o.status==0&&o.response){t(o.response);return}r()},o.onerror=r,o.send(null)},In=function(e){document.title=e}}else throw new Error("environment detection error");let Re=n.print||console.log.bind(console),pe=n.printErr||console.warn.bind(console);for(we in Ue)Ue.hasOwnProperty(we)&&(n[we]=Ue[we]);Ue=null,n.arguments&&(ot=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){p("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)")}}),n.thisProgram&&(ht=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){p("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)")}}),n.quit&&($e=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){p("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)")}}),z(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),z(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),z(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),z(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),z(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),z(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get(){p("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(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get(){p("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(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get(){p("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(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get(){p("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)")}}),z(!bi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function tt(e){tt.shown||(tt.shown={}),tt.shown[e]||(tt.shown[e]=1,pe(e))}function Ir(e,t){if(typeof WebAssembly.Function=="function"){let I={i:"i32",j:"i64",f:"f32",d:"f64"},m={parameters:[],results:t[0]=="v"?[]:[I[t[0]]]};for(var r=1;r<t.length;++r)m.parameters.push(I[t[r]]);return new WebAssembly.Function(m,e)}let o=[1,0,1,96],a=t.slice(0,1),s=t.slice(1),A={i:127,j:126,f:125,d:124};o.push(s.length);for(var r=0;r<s.length;++r)o.push(A[s[r]]);a=="v"?o.push(0):o=o.concat([1,A[a]]),o[1]=o.length-2;let c=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[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}let Ut=[],Xe;function mr(){if(Ut.length)return Ut.pop();try{V.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return V.length-1}function mt(e,t){if(!Xe){Xe=new WeakMap;for(let o=0;o<V.length;o++){let a=V.get(o);a&&Xe.set(a,o)}}if(Xe.has(e))return Xe.get(e);let r=mr();try{V.set(r,e)}catch(o){if(!(o instanceof TypeError))throw o;z(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let a=Ir(e,t);V.set(r,a)}return Xe.set(e,r),r}let Cr=0,he=function(e){Cr=e},Hn=function(){return Cr},xt;n.wasmBinary&&(xt=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){p("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)")}});let jt=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){p("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)")}}),typeof WebAssembly!="object"&&p("no native wasm support detected");let Pt,W=!1,Sr;function z(e,t){e||p(`Assertion failed: ${t}`)}function lo(e){let t=n[`_${e}`];return z(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function Bi(e,t,r,o,a){let s={string(m){let y=0;if(m!=null&&m!==0){let v=(m.length<<2)+1;y=so(v),tr(m,y,v)}return y},array(m){let y=so(m.length);return Xn(m,y),y}};function A(m){return t==="string"?Je(m):t==="boolean"?!!m:m}let c=lo(e),u=[],d=0;if(z(t!=="array",'Return type should not be "array".'),o)for(let m=0;m<o.length;m++){let y=s[r[m]];y?(d===0&&(d=j()),u[m]=y(o[m])):u[m]=o[m]}let h=c.apply(null,u);function I(m){return d!==0&&te(d),A(m)}return h=I(h),h}let Mr=1,at=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Rt(e,t,r){let o=t+r,a=t;for(;e[a]&&!(a>=o);)++a;if(a-t>16&&e.subarray&&at)return at.decode(e.subarray(t,a));let s="";for(;t<a;){let A=e[t++];if(!(A&128)){s+=String.fromCharCode(A);continue}let c=e[t++]&63;if((A&224)==192){s+=String.fromCharCode((A&31)<<6|c);continue}let u=e[t++]&63;if((A&240)==224?A=(A&15)<<12|c<<6|u:((A&248)!=240&&tt(`Invalid UTF-8 leading byte 0x${A.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),A=(A&7)<<18|c<<12|u<<6|e[t++]&63),A<65536)s+=String.fromCharCode(A);else{let d=A-65536;s+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return s}function Je(e,t){return e?Rt(ve,e,t):""}function Ze(e,t,r,o){if(!(o>0))return 0;let a=r,s=r+o-1;for(let A=0;A<e.length;++A){let c=e.charCodeAt(A);if(c>=55296&&c<=57343){let u=e.charCodeAt(++A);c=65536+((c&1023)<<10)|u&1023}if(c<=127){if(r>=s)break;t[r++]=c}else if(c<=2047){if(r+1>=s)break;t[r++]=192|c>>6,t[r++]=128|c&63}else if(c<=65535){if(r+2>=s)break;t[r++]=224|c>>12,t[r++]=128|c>>6&63,t[r++]=128|c&63}else{if(r+3>=s)break;c>=2097152&&tt(`Invalid Unicode code point 0x${c.toString(16)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).`),t[r++]=240|c>>18,t[r++]=128|c>>12&63,t[r++]=128|c>>6&63,t[r++]=128|c&63}}return t[r]=0,r-a}function tr(e,t,r){return z(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ze(e,ve,t,r)}function bt(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|e.charCodeAt(++r)&1023),o<=127?++t:o<=2047?t+=2:o<=65535?t+=3:t+=4}return t}let Gn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Ti(e,t){z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,o=r>>1,a=o+t/2;for(;!(o>=a)&&Oe[o];)++o;if(r=o<<1,r-e>32&&Gn)return Gn.decode(ve.subarray(e,r));let s="";for(let A=0;!(A>=t/2);++A){let c=T[e+A*2>>1];if(c==0)break;s+=String.fromCharCode(c)}return s}function mn(e,t,r){if(z(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),z(typeof r=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<2)return 0;r-=2;let o=t,a=r<e.length*2?r/2:e.length;for(let s=0;s<a;++s){let A=e.charCodeAt(s);T[t>>1]=A,t+=2}return T[t>>1]=0,t-o}function Yn(e){return e.length*2}function vi(e,t){z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,o="";for(;!(r>=t/4);){let a=b[e+r*4>>2];if(a==0)break;if(++r,a>=65536){let s=a-65536;o+=String.fromCharCode(55296|s>>10,56320|s&1023)}else o+=String.fromCharCode(a)}return o}function Cn(e,t,r){if(z(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),z(typeof r=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<4)return 0;let o=t,a=o+r-4;for(let s=0;s<e.length;++s){let A=e.charCodeAt(s);if(A>=55296&&A<=57343){let c=e.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(b[t>>2]=A,t+=4,t+4>a)break}return b[t>>2]=0,t-o}function Fr(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&++r,t+=4}return t}function yn(e){let t=bt(e)+1,r=tn(t);return r&&Ze(e,be,r,t),r}function Xn(e,t){z(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),be.set(e,t)}function kr(e,t,r){for(let o=0;o<e.length;++o)z(e.charCodeAt(o)===e.charCodeAt(o)&255),be[t++>>0]=e.charCodeAt(o);r||(be[t>>0]=0)}function xe(e,t){return e%t>0&&(e+=t-e%t),e}let Se,be,ve,T,Oe,b,Qe,ze,Nr;function on(e){Se=e,n.HEAP8=be=new Int8Array(e),n.HEAP16=T=new Int16Array(e),n.HEAP32=b=new Int32Array(e),n.HEAPU8=ve=new Uint8Array(e),n.HEAPU16=Oe=new Uint16Array(e),n.HEAPU32=Qe=new Uint32Array(e),n.HEAPF32=ze=new Float32Array(e),n.HEAPF64=Nr=new Float64Array(e)}let J=5242880;n.TOTAL_STACK&&z(J===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let Ur=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){p("Module.INITIAL_MEMORY has been replaced with plain 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)")}}),z(Ur>=J,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${Ur}! (TOTAL_STACK=${J})`),z(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),z(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),z(Ur==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let V;function Lt(){let e=rn();z((e&3)==0),Qe[(e>>2)+1]=34821223,Qe[(e>>2)+2]=2310721022,b[0]=1668509029}function st(){if(W)return;let e=rn(),t=Qe[(e>>2)+1],r=Qe[(e>>2)+2];(t!=34821223||r!=2310721022)&&p(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),b[0]!==1668509029&&p("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){let e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,t[0]!==115||t[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();let xr=[],Ht=[],de=[],an=[],yr=!1,Ot=!1,Qi=0;function Ct(){return jt||Qi>0}function Gt(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Dn(n.preRun.shift());Tn(xr)}function Pi(){st(),z(!yr),yr=!0,!n.noFSInit&&!l.init.initialized&&l.init(),l.ignorePermissions=!1,yt.init(),Tn(Ht)}function Ri(){st(),Ot=!0}function wn(){if(st(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)rr(n.postRun.shift());Tn(an)}function Dn(e){xr.unshift(e)}function Yt(e){Ht.unshift(e)}function rr(e){an.unshift(e)}z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");let lt=0,At=null,nr=null,St={};function wr(e){let t=e;for(;;){if(!St[e])return e;e=t+Math.random()}}function E(e){lt++,n.monitorRunDependencies&&n.monitorRunDependencies(lt),e?(z(!St[e]),St[e]=1,At===null&&typeof setInterval!="undefined"&&(At=setInterval(()=>{if(W){clearInterval(At),At=null;return}let t=!1;for(let r in St)t||(t=!0,pe("still waiting on run dependencies:")),pe(`dependency: ${r}`);t&&pe("(end of list)")},1e4))):pe("warning: run dependency added without ID")}function ir(e){if(lt--,n.monitorRunDependencies&&n.monitorRunDependencies(lt),e?(z(St[e]),delete St[e]):pe("warning: run dependency removed without ID"),lt==0&&(At!==null&&(clearInterval(At),At=null),nr)){let t=nr;nr=null,t()}}n.preloadedImages={},n.preloadedAudios={};function p(e){n.onAbort&&n.onAbort(e),e+="",pe(e),W=!0,Sr=1,e=`abort(${e}) at ${Fi()}`;let r=new WebAssembly.RuntimeError(e);throw N(r),r}let bn="data:application/octet-stream;base64,";function le(e){return e.startsWith(bn)}function He(e){return e.startsWith("file://")}function ce(e,t){return function(){let r=e,o=t;return t||(o=n.asm),z(yr,`native function \`${r}\` called before runtime initialization`),z(!Ot,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||z(o[e],`exported native function \`${r}\` not found`),o[e].apply(null,arguments)}}let Dr;Dr="selfie_segmentation_solution_simd_wasm_bin.wasm",le(Dr)||(Dr=Oi(Dr));function On(e){try{if(e==Dr&&xt)return new Uint8Array(xt);if(nn)return nn(e);throw"both async and sync fetching of the wasm failed"}catch(t){p(t)}}function We(){let e={env:rA,wasi_snapshot_preview1:rA};function t(a,s){let{exports:A}=a;n.asm=A,Pt=n.asm.memory,z(Pt,"memory not found in wasm exports"),on(Pt.buffer),V=n.asm.__indirect_function_table,z(V,"table not found in wasm exports"),Yt(n.asm.__wasm_call_ctors),ir("wasm-instantiate")}E("wasm-instantiate");let r=n;function o(a){z(n===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(a)}if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(a){return pe(`Module.instantiateWasm callback failed with error: ${a}`),!1}return n.loadWasm(Dr,e).then(o).catch(N),{}}let ye,Bt,jr={460656(){let e=!0;if(e){let t=to;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}to=function(r){if(r==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(r)},e=!1}},461441(){return typeof wasmOffsetConverter!="undefined"}};function br(){return typeof wasmOffsetConverter!="undefined"}function Tt(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return pe("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(Q.mainLoop.running||(Q.mainLoop.running=!0),e==0)Q.mainLoop.scheduler=function(){let o=Math.max(0,Q.mainLoop.tickStartTime+t-Or())|0;setTimeout(Q.mainLoop.runner,o)},Q.mainLoop.method="timeout";else if(e==1)Q.mainLoop.scheduler=function(){Q.requestAnimationFrame(Q.mainLoop.runner)},Q.mainLoop.method="rAF";else if(e==2){if(typeof setImmediate=="undefined"){let r=[],o="setimmediate",a=function(s){(s.data===o||s.data.target===o)&&(s.stopPropagation(),r.shift()())};addEventListener("message",a,!0),setImmediate=function(A){r.push(A),Ve?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(A),postMessage({target:o})):postMessage(o,"*")}}Q.mainLoop.scheduler=function(){setImmediate(Q.mainLoop.runner)},Q.mainLoop.method="immediate"}return 0}let Or;It?Or=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:Or=function(){return performance.now()};function Si(){return!w.currentContext||!w.currentContext.GLctx?-3:w.currentContext.defaultFbo?(w.blitOffscreenFramebuffer(w.currentContext),0):w.currentContext.attributes.explicitSwapControl?0:-3}function Wn(e){No(e)}function Mi(){if(!Ct())try{Wn(Sr)}catch(e){if(e instanceof Ao)return;throw e}}function Bn(e,t,r,o,a){z(!Q.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Q.mainLoop.func=e,Q.mainLoop.arg=o;let s=Q.mainLoop.currentlyRunningMainloop;function A(){return s<Q.mainLoop.currentlyRunningMainloop?(Mi(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!W){if(Q.mainLoop.queue.length>0){let u=Date.now(),d=Q.mainLoop.queue.shift();if(d.func(d.arg),Q.mainLoop.remainingBlockers){let h=Q.mainLoop.remainingBlockers,I=h%1==0?h-1:Math.floor(h);d.counted?Q.mainLoop.remainingBlockers=I:(I=I+.5,Q.mainLoop.remainingBlockers=(8*h+I)/9)}if(Re(`main loop blocker "${d.name}" took ${Date.now()-u} ms`),Q.mainLoop.updateStatus(),!A())return;setTimeout(Q.mainLoop.runner,0);return}if(A()){if(Q.mainLoop.currentFrameNumber=Q.mainLoop.currentFrameNumber+1|0,Q.mainLoop.timingMode==1&&Q.mainLoop.timingValue>1&&Q.mainLoop.currentFrameNumber%Q.mainLoop.timingValue!=0){Q.mainLoop.scheduler();return}Q.mainLoop.timingMode==0&&(Q.mainLoop.tickStartTime=Or()),w.newRenderingFrameStarted(),typeof w!="undefined"&&w.currentContext&&!w.currentContextIsProxied&&!w.currentContext.attributes.explicitSwapControl&&w.currentContext.GLctx.commit&&w.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(tt("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Q.mainLoop.method=""),Q.mainLoop.runIter(e),st(),A()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},a||(t&&t>0?Tt(0,1e3/t):Tt(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function or(e,t){if(W){pe("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof Ao)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&pe(`exception thrown: ${[r,r.stack]}`),r}}function P(e,t){return setTimeout(()=>{or(e)},t)}var Q={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Q.mainLoop.scheduler=null,Q.mainLoop.currentlyRunningMainloop++},resume(){Q.mainLoop.currentlyRunningMainloop++;let{timingMode:e}=Q.mainLoop,{timingValue:t}=Q.mainLoop,{func:r}=Q.mainLoop;Q.mainLoop.func=null,Bn(r,0,!1,Q.mainLoop.arg,!0),Tt(e,t),Q.mainLoop.scheduler()},updateStatus(){if(n.setStatus){let e=n.statusMessage||"Please wait...",t=Q.mainLoop.remainingBlockers,r=Q.mainLoop.expectedBlockers;t?t<r?n.setStatus(`${e} (${r-t}/${r})`):n.setStatus(e):n.setStatus("")}},runIter(e){W||n.preMainLoop&&n.preMainLoop()===!1||(or(e),n.postMainLoop&&n.postMainLoop())}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(n.preloadPlugins||(n.preloadPlugins=[]),Q.initted)return;Q.initted=!0;try{new Blob,Q.hasBlobConstructor=!0}catch(a){Q.hasBlobConstructor=!1,Re("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:Re("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(Re("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);let e={};e.canHandle=function(s){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(s)},e.handle=function(s,A,c,u){let d=null;if(Q.hasBlobConstructor)try{d=new Blob([s],{type:Q.getMimetype(A)}),d.size!==s.length&&(d=new Blob([new Uint8Array(s).buffer],{type:Q.getMimetype(A)}))}catch(m){tt(`Blob constructor present but fails: ${m}; falling back to blob builder`)}if(!d){let m=new Q.BlobBuilder;m.append(new Uint8Array(s).buffer),d=m.getBlob()}let h=Q.URLObject.createObjectURL(d);z(typeof h=="string","createObjectURL must return a url as a string");let I=new Image;I.onload=function(){z(I.complete,`Image ${A} could not be decoded`);let y=document.createElement("canvas");y.width=I.width,y.height=I.height,y.getContext("2d").drawImage(I,0,0),n.preloadedImages[A]=y,Q.URLObject.revokeObjectURL(h),c&&c(s)},I.onerror=function(y){Re(`Image ${h} could not be decoded`),u&&u()},I.src=h},n.preloadPlugins.push(e);let t={};t.canHandle=function(s){return!n.noAudioDecoding&&s.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(s,A,c,u){let d=!1;function h(y){d||(d=!0,n.preloadedAudios[A]=y,c&&c(s))}function I(){d||(d=!0,n.preloadedAudios[A]=new Audio,u&&u())}if(Q.hasBlobConstructor){try{var m=new Blob([s],{type:Q.getMimetype(A)})}catch(U){return I()}let y=Q.URLObject.createObjectURL(m);z(typeof y=="string","createObjectURL must return a url as a string");let v=new Audio;v.addEventListener("canplaythrough",()=>{h(v)},!1),v.onerror=function(G){if(d)return;Re(`warning: browser could not fully decode audio ${A}, trying slower base64 approach`);function R(D){let k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$="=",Y="",Ce=0,Ne=0;for(let hr=0;hr<D.length;hr++)for(Ce=Ce<<8|D[hr],Ne+=8;Ne>=6;){let hu=Ce>>Ne-6&63;Ne-=6,Y+=k[hu]}return Ne==2?(Y+=k[(Ce&3)<<4],Y+=$+$):Ne==4&&(Y+=k[(Ce&15)<<2],Y+=$),Y}v.src=`data:audio/x-${A.substr(-3)};base64,${R(s)}`,h(v)},v.src=y,P(()=>{h(v)},1e4)}else return I()},n.preloadPlugins.push(t);function r(){Q.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}let{canvas:o}=n},createContext(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;let a,s;if(t){let A={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(o)for(let c in o)A[c]=o[c];typeof w!="undefined"&&(s=w.createContext(e,A),s&&(a=w.getContext(s).GLctx))}else a=e.getContext("2d");return a?(r&&(t||z(typeof S=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=a,t&&w.makeContextCurrent(s),n.useWebGL=t,Q.moduleContextCreatedCallbacks.forEach(A=>{A()}),Q.init()),a):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){Q.lockPointer=e,Q.resizeCanvas=t,typeof Q.lockPointer=="undefined"&&(Q.lockPointer=!0),typeof Q.resizeCanvas=="undefined"&&(Q.resizeCanvas=!1);let{canvas:r}=n;function o(){Q.isFullscreen=!1;let s=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===s?(r.exitFullscreen=Q.exitFullscreen,Q.lockPointer&&r.requestPointerLock(),Q.isFullscreen=!0,Q.resizeCanvas?Q.setFullscreenCanvasSize():Q.updateCanvasDimensions(r)):(s.parentNode.insertBefore(r,s),s.parentNode.removeChild(s),Q.resizeCanvas?Q.setWindowedCanvasSize():Q.updateCanvasDimensions(r)),n.onFullScreen&&n.onFullScreen(Q.isFullscreen),n.onFullscreen&&n.onFullscreen(Q.isFullscreen)}Q.fullscreenHandlersInstalled||(Q.fullscreenHandlersInstalled=!0);let a=document.createElement("div");r.parentNode.insertBefore(a,r),a.appendChild(r),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?function(){a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(a.webkitRequestFullScreen?function(){a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),a.requestFullscreen()},requestFullScreen(){p("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){return Q.isFullscreen?((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0):!1},nextRAF:0,fakeRequestAnimationFrame(e){let t=Date.now();if(Q.nextRAF===0)Q.nextRAF=t+1e3/60;else for(;t+2>=Q.nextRAF;)Q.nextRAF+=1e3/60;let r=Math.max(Q.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(e);return}let t=Q.fakeRequestAnimationFrame;t(e)},safeSetTimeout(e){return P(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{or(e)})},getMimetype(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta(e){let t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw`unrecognized mouse wheel delta mode: ${e.deltaMode}`}break;default:throw`unrecognized mouse wheel event: ${e.type}`}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(e){if(Q.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?Q.mouseMovementX=Q.mouseMovementY=0:(Q.mouseMovementX=Q.getMovementX(e),Q.mouseMovementY=Q.getMovementY(e)),typeof SDL!="undefined"?(Q.mouseX=SDL.mouseX+Q.mouseMovementX,Q.mouseY=SDL.mouseY+Q.mouseMovementY):(Q.mouseX+=Q.mouseMovementX,Q.mouseY+=Q.mouseMovementY);else{let t=n.canvas.getBoundingClientRect(),r=n.canvas.width,o=n.canvas.height,a=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,s=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(z(typeof a!="undefined"&&typeof s!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){let{touch:u}=e;if(u===void 0)return;let d=u.pageX-(a+t.left),h=u.pageY-(s+t.top);d=d*(r/t.width),h=h*(o/t.height);let I={x:d,y:h};if(e.type==="touchstart")Q.lastTouches[u.identifier]=I,Q.touches[u.identifier]=I;else if(e.type==="touchend"||e.type==="touchmove"){let m=Q.touches[u.identifier];m||(m=I),Q.lastTouches[u.identifier]=m,Q.touches[u.identifier]=I}return}let A=e.pageX-(a+t.left),c=e.pageY-(s+t.top);A=A*(r/t.width),c=c*(o/t.height),Q.mouseMovementX=A-Q.mouseX,Q.mouseMovementY=c-Q.mouseY,Q.mouseX=A,Q.mouseY=c}},resizeListeners:[],updateResizeListeners(){let{canvas:e}=n;Q.resizeListeners.forEach(t=>{t(e.width,e.height)})},setCanvasSize(e,t,r){let{canvas:o}=n;Q.updateCanvasDimensions(o,e,t),r||Q.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e|8388608,b[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e&-8388609,b[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},updateCanvasDimensions(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);let o=t,a=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/a<n.forcedAspectRatio?o=Math.round(a*n.forcedAspectRatio):a=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&typeof screen!="undefined"){let s=Math.min(screen.width/o,screen.height/a);o=Math.round(o*s),a=Math.round(a*s)}Q.resizeCanvas?(e.width!=o&&(e.width=o),e.height!=a&&(e.height=a),typeof e.style!="undefined"&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),typeof e.style!="undefined"&&(o!=t||a!=r?(e.style.setProperty("width",`${o}px`,"important"),e.style.setProperty("height",`${a}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Tn(e){for(;e.length>0;){let t=e.shift();if(typeof t=="function"){t(n);continue}let{func:r}=t;typeof r=="number"?t.arg===void 0?V.get(r)():V.get(r)(t.arg):r(t.arg===void 0?null:t.arg)}}function Lr(e){return tt("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Vn(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let o=Lr(r);return r===o?r:`${o} [${r}]`})}function sn(){let 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 Fi(){let e=sn();return n.extraStackTrace&&(e+=`
1
+ var Iu=Object.defineProperty,mu=Object.defineProperties;var Cu=Object.getOwnPropertyDescriptors;var pc=Object.getOwnPropertySymbols;var yu=Object.prototype.hasOwnProperty,wu=Object.prototype.propertyIsEnumerable;var nc=(J,x,n)=>x in J?Iu(J,x,{enumerable:!0,configurable:!0,writable:!0,value:n}):J[x]=n,_c=(J,x)=>{for(var n in x||(x={}))yu.call(x,n)&&nc(J,n,x[n]);if(pc)for(var n of pc(x))wu.call(x,n)&&nc(J,n,x[n]);return J},hc=(J,x)=>mu(J,Cu(x));var Ic=(J=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(J,{get:(x,n)=>(typeof require!="undefined"?require:x)[n]}):J)(function(J){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+J+'" is not supported')});var Le=(J,x,n)=>nc(J,typeof x!="symbol"?x+"":x,n);async function mc({sdkAppId:J,userId:x,userSig:n,core:Ee}){var ot;let N=Ee.schedule.getAbilityConfigUrl(J),Ue=Math.round(new Date().getTime()/1e3),we=`${N}?sdkAppId=${J}&userId=${x}&userSig=${n}&timestamp=${Ue}`;try{let $e=await(await fetch(we)).json();Ee.log.info(`virtual background send ${we}, response: ${JSON.stringify($e)}`);let{data:Ye}=$e;return(ot=Ye==null?void 0:Ye.trtcAutoConf)!=null&&ot.web_ar?{auth:!0,timestamp:Ue}:{auth:!1}}catch(ht){return Ee.log.error("virtual background fetch error",ht),{auth:!1}}}var Du={sdkAppId:{required:!0,type:"number"},userId:{required:!0,type:"string"},userSig:{required:!0,type:"string"}};function Cc(J){return{name:"VirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:hc(_c({},Du),{type:{required:!1,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10},onAbort:{required:!1}}),validate(x,n,Ee,N){var Ve;let{RtcError:Ue,ErrorCode:we,ErrorCodeDictionary:ot}=J.errorModule;if(!x)return;let{type:ht,src:$e,onAbort:Ye}=x;if(ht==="image"&&!$e)throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_REQUIRED,fnName:Ee,messageParams:{key:"src"}});if(Ye&&!J.utils.isFunction(Ye))throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_TYPE,fnName:Ee,messageParams:{key:"onAbort",value:typeof Ye,rule:{type:"Function"}}});if(!((Ve=J.room.videoManager.cameraTrack)!=null&&Ve.mediaTrack))throw new Ue({code:we.INVALID_OPERATION,extraCode:ot.INVALID_OPERATION_NEED_VIDEO,fnName:Ee})}}}function yc(J){return{name:"UpdateVirtualBackgroundOptions",type:"object",required:!0,allowEmpty:!1,properties:{type:{required:!0,type:"string",values:["image","blur"]},src:{required:!1,type:"string"},blurLevel:{required:!1,type:"number",min:1,max:10}},validate(x,n,Ee,N){if(!x)return;let{RtcError:Ue,ErrorCode:we,ErrorCodeDictionary:ot}=J.errorModule,{type:ht,src:$e}=x;if(ht==="image"&&!$e)throw new Ue({code:we.INVALID_PARAMETER,extraCode:ot.INVALID_PARAMETER_REQUIRED,fnName:Ee,messageParams:{key:"src"}})}}}function wc(J){return{name:"StopVirtualBackgroundOptions",required:!1}}var bu=function(){let J=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(J=J||__filename),function(x){x=x||{};let n=typeof x!="undefined"?x:{},Ee,N;n.ready=new Promise((e,t)=>{Ee=e,N=t}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get(){p("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set(){p("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get(){p("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set(){p("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get(){p("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set(){p("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get(){p("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set(){p("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get(){p("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set(){p("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get(){p("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set(){p("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get(){p("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set(){p("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get(){p("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set(){p("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get(){p("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set(){p("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get(){p("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set(){p("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get(){p("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set(){p("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get(){p("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set(){p("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get(){p("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set(){p("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get(){p("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set(){p("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get(){p("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set(){p("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get(){p("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set(){p("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get(){p("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set(){p("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get(){p("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set(){p("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get(){p("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set(){p("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get(){p("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set(){p("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get(){p("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set(){p("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get(){p("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set(){p("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get(){p("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set(){p("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get(){p("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set(){p("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get(){p("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set(){p("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get(){p("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set(){p("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get(){p("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set(){p("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get(){p("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set(){p("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get(){p("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set(){p("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));let Ue={},we;for(we in n)n.hasOwnProperty(we)&&(Ue[we]=n[we]);let ot=[],ht="./this.program",$e=function(e,t){throw t},Ye=typeof window=="object",Ve=typeof importScripts=="function",It=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",bi=!Ye&&!It&&!Ve;if(n.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)");let Te="";function Oi(e){return n.locateFile?n.locateFile(e,Te):Te+e}let Rr,er,nn,In,Ke,ge;if(Ye||Ve){if(Ve?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Rr=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},Ve&&(nn=function(e){let t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),er=function(e,t,r){let o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){if(o.status==200||o.status==0&&o.response){t(o.response);return}r()},o.onerror=r,o.send(null)},In=function(e){document.title=e}}else throw new Error("environment detection error");let Re=n.print||console.log.bind(console),pe=n.printErr||console.warn.bind(console);for(we in Ue)Ue.hasOwnProperty(we)&&(n[we]=Ue[we]);Ue=null,n.arguments&&(ot=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get(){p("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)")}}),n.thisProgram&&(ht=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get(){p("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)")}}),n.quit&&($e=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get(){p("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)")}}),z(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),z(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),z(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),z(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),z(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),z(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),z(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get(){p("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(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get(){p("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(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get(){p("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(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get(){p("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)")}}),z(!bi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function tt(e){tt.shown||(tt.shown={}),tt.shown[e]||(tt.shown[e]=1,pe(e))}function Ir(e,t){if(typeof WebAssembly.Function=="function"){let I={i:"i32",j:"i64",f:"f32",d:"f64"},m={parameters:[],results:t[0]=="v"?[]:[I[t[0]]]};for(var r=1;r<t.length;++r)m.parameters.push(I[t[r]]);return new WebAssembly.Function(m,e)}let o=[1,0,1,96],a=t.slice(0,1),s=t.slice(1),A={i:127,j:126,f:125,d:124};o.push(s.length);for(var r=0;r<s.length;++r)o.push(A[s[r]]);a=="v"?o.push(0):o=o.concat([1,A[a]]),o[1]=o.length-2;let c=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[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}let Ut=[],Xe;function mr(){if(Ut.length)return Ut.pop();try{V.grow(1)}catch(e){throw e instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":e}return V.length-1}function mt(e,t){if(!Xe){Xe=new WeakMap;for(let o=0;o<V.length;o++){let a=V.get(o);a&&Xe.set(a,o)}}if(Xe.has(e))return Xe.get(e);let r=mr();try{V.set(r,e)}catch(o){if(!(o instanceof TypeError))throw o;z(typeof t!="undefined",`Missing signature argument to addFunction: ${e}`);let a=Ir(e,t);V.set(r,a)}return Xe.set(e,r),r}let Cr=0,he=function(e){Cr=e},Hn=function(){return Cr},xt;n.wasmBinary&&(xt=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get(){p("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)")}});let jt=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get(){p("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)")}}),typeof WebAssembly!="object"&&p("no native wasm support detected");let Pt,W=!1,Sr;function z(e,t){e||p(`Assertion failed: ${t}`)}function lo(e){let t=n[`_${e}`];return z(t,`Cannot call unknown function ${e}, make sure it is exported`),t}function Bi(e,t,r,o,a){let s={string(m){let y=0;if(m!=null&&m!==0){let v=(m.length<<2)+1;y=so(v),tr(m,y,v)}return y},array(m){let y=so(m.length);return Xn(m,y),y}};function A(m){return t==="string"?Je(m):t==="boolean"?!!m:m}let c=lo(e),u=[],d=0;if(z(t!=="array",'Return type should not be "array".'),o)for(let m=0;m<o.length;m++){let y=s[r[m]];y?(d===0&&(d=j()),u[m]=y(o[m])):u[m]=o[m]}let h=c.apply(null,u);function I(m){return d!==0&&te(d),A(m)}return h=I(h),h}let Mr=1,at=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Rt(e,t,r){let o=t+r,a=t;for(;e[a]&&!(a>=o);)++a;if(a-t>16&&e.subarray&&at)return at.decode(e.subarray(t,a));let s="";for(;t<a;){let A=e[t++];if(!(A&128)){s+=String.fromCharCode(A);continue}let c=e[t++]&63;if((A&224)==192){s+=String.fromCharCode((A&31)<<6|c);continue}let u=e[t++]&63;if((A&240)==224?A=(A&15)<<12|c<<6|u:((A&248)!=240&&tt(`Invalid UTF-8 leading byte 0x${A.toString(16)} encountered when deserializing a UTF-8 string in wasm memory to a JS string!`),A=(A&7)<<18|c<<12|u<<6|e[t++]&63),A<65536)s+=String.fromCharCode(A);else{let d=A-65536;s+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return s}function Je(e,t){return e?Rt(ve,e,t):""}function Ze(e,t,r,o){if(!(o>0))return 0;let a=r,s=r+o-1;for(let A=0;A<e.length;++A){let c=e.charCodeAt(A);if(c>=55296&&c<=57343){let u=e.charCodeAt(++A);c=65536+((c&1023)<<10)|u&1023}if(c<=127){if(r>=s)break;t[r++]=c}else if(c<=2047){if(r+1>=s)break;t[r++]=192|c>>6,t[r++]=128|c&63}else if(c<=65535){if(r+2>=s)break;t[r++]=224|c>>12,t[r++]=128|c>>6&63,t[r++]=128|c&63}else{if(r+3>=s)break;c>=2097152&&tt(`Invalid Unicode code point 0x${c.toString(16)} encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF).`),t[r++]=240|c>>18,t[r++]=128|c>>12&63,t[r++]=128|c>>6&63,t[r++]=128|c&63}}return t[r]=0,r-a}function tr(e,t,r){return z(typeof r=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Ze(e,ve,t,r)}function bt(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&(o=65536+((o&1023)<<10)|e.charCodeAt(++r)&1023),o<=127?++t:o<=2047?t+=2:o<=65535?t+=3:t+=4}return t}let Gn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function Ti(e,t){z(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");let r=e,o=r>>1,a=o+t/2;for(;!(o>=a)&&Oe[o];)++o;if(r=o<<1,r-e>32&&Gn)return Gn.decode(ve.subarray(e,r));let s="";for(let A=0;!(A>=t/2);++A){let c=T[e+A*2>>1];if(c==0)break;s+=String.fromCharCode(c)}return s}function mn(e,t,r){if(z(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),z(typeof r=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<2)return 0;r-=2;let o=t,a=r<e.length*2?r/2:e.length;for(let s=0;s<a;++s){let A=e.charCodeAt(s);T[t>>1]=A,t+=2}return T[t>>1]=0,t-o}function Yn(e){return e.length*2}function vi(e,t){z(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");let r=0,o="";for(;!(r>=t/4);){let a=b[e+r*4>>2];if(a==0)break;if(++r,a>=65536){let s=a-65536;o+=String.fromCharCode(55296|s>>10,56320|s&1023)}else o+=String.fromCharCode(a)}return o}function Cn(e,t,r){if(z(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),z(typeof r=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),r===void 0&&(r=2147483647),r<4)return 0;let o=t,a=o+r-4;for(let s=0;s<e.length;++s){let A=e.charCodeAt(s);if(A>=55296&&A<=57343){let c=e.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(b[t>>2]=A,t+=4,t+4>a)break}return b[t>>2]=0,t-o}function Fr(e){let t=0;for(let r=0;r<e.length;++r){let o=e.charCodeAt(r);o>=55296&&o<=57343&&++r,t+=4}return t}function yn(e){let t=bt(e)+1,r=tn(t);return r&&Ze(e,be,r,t),r}function Xn(e,t){z(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),be.set(e,t)}function kr(e,t,r){for(let o=0;o<e.length;++o)z(e.charCodeAt(o)===e.charCodeAt(o)&255),be[t++>>0]=e.charCodeAt(o);r||(be[t>>0]=0)}function xe(e,t){return e%t>0&&(e+=t-e%t),e}let Se,be,ve,T,Oe,b,Qe,ze,Nr;function on(e){Se=e,n.HEAP8=be=new Int8Array(e),n.HEAP16=T=new Int16Array(e),n.HEAP32=b=new Int32Array(e),n.HEAPU8=ve=new Uint8Array(e),n.HEAPU16=Oe=new Uint16Array(e),n.HEAPU32=Qe=new Uint32Array(e),n.HEAPF32=ze=new Float32Array(e),n.HEAPF64=Nr=new Float64Array(e)}let K=5242880;n.TOTAL_STACK&&z(K===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");let Ur=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get(){p("Module.INITIAL_MEMORY has been replaced with plain 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)")}}),z(Ur>=K,`INITIAL_MEMORY should be larger than TOTAL_STACK, was ${Ur}! (TOTAL_STACK=${K})`),z(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),z(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),z(Ur==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");let V;function Lt(){let e=rn();z((e&3)==0),Qe[(e>>2)+1]=34821223,Qe[(e>>2)+2]=2310721022,b[0]=1668509029}function st(){if(W)return;let e=rn(),t=Qe[(e>>2)+1],r=Qe[(e>>2)+2];(t!=34821223||r!=2310721022)&&p(`Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x${r.toString(16)} ${t.toString(16)}`),b[0]!==1668509029&&p("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){let e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,t[0]!==115||t[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();let xr=[],Ht=[],de=[],an=[],yr=!1,Ot=!1,Qi=0;function Ct(){return jt||Qi>0}function Gt(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Dn(n.preRun.shift());Tn(xr)}function Pi(){st(),z(!yr),yr=!0,!n.noFSInit&&!l.init.initialized&&l.init(),l.ignorePermissions=!1,yt.init(),Tn(Ht)}function Ri(){st(),Ot=!0}function wn(){if(st(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)rr(n.postRun.shift());Tn(an)}function Dn(e){xr.unshift(e)}function Yt(e){Ht.unshift(e)}function rr(e){an.unshift(e)}z(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),z(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");let lt=0,At=null,nr=null,St={};function wr(e){let t=e;for(;;){if(!St[e])return e;e=t+Math.random()}}function E(e){lt++,n.monitorRunDependencies&&n.monitorRunDependencies(lt),e?(z(!St[e]),St[e]=1,At===null&&typeof setInterval!="undefined"&&(At=setInterval(()=>{if(W){clearInterval(At),At=null;return}let t=!1;for(let r in St)t||(t=!0,pe("still waiting on run dependencies:")),pe(`dependency: ${r}`);t&&pe("(end of list)")},1e4))):pe("warning: run dependency added without ID")}function ir(e){if(lt--,n.monitorRunDependencies&&n.monitorRunDependencies(lt),e?(z(St[e]),delete St[e]):pe("warning: run dependency removed without ID"),lt==0&&(At!==null&&(clearInterval(At),At=null),nr)){let t=nr;nr=null,t()}}n.preloadedImages={},n.preloadedAudios={};function p(e){n.onAbort&&n.onAbort(e),e+="",pe(e),W=!0,Sr=1,e=`abort(${e}) at ${Fi()}`;let r=new WebAssembly.RuntimeError(e);throw N(r),r}let bn="data:application/octet-stream;base64,";function le(e){return e.startsWith(bn)}function He(e){return e.startsWith("file://")}function ce(e,t){return function(){let r=e,o=t;return t||(o=n.asm),z(yr,`native function \`${r}\` called before runtime initialization`),z(!Ot,`native function \`${r}\` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)`),o[e]||z(o[e],`exported native function \`${r}\` not found`),o[e].apply(null,arguments)}}let Dr;Dr="selfie_segmentation_solution_simd_wasm_bin.wasm",le(Dr)||(Dr=Oi(Dr));function On(e){try{if(e==Dr&&xt)return new Uint8Array(xt);if(nn)return nn(e);throw"both async and sync fetching of the wasm failed"}catch(t){p(t)}}function We(){let e={env:rA,wasi_snapshot_preview1:rA};function t(a,s){let{exports:A}=a;n.asm=A,Pt=n.asm.memory,z(Pt,"memory not found in wasm exports"),on(Pt.buffer),V=n.asm.__indirect_function_table,z(V,"table not found in wasm exports"),Yt(n.asm.__wasm_call_ctors),ir("wasm-instantiate")}E("wasm-instantiate");let r=n;function o(a){z(n===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(a)}if(n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(a){return pe(`Module.instantiateWasm callback failed with error: ${a}`),!1}return n.loadWasm(Dr,e).then(o).catch(N),{}}let ye,Bt,jr={460656(){let e=!0;if(e){let t=to;if(typeof t!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}to=function(r){if(r==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return t(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return t(r)},e=!1}},461441(){return typeof wasmOffsetConverter!="undefined"}};function br(){return typeof wasmOffsetConverter!="undefined"}function Tt(e,t){if(Q.mainLoop.timingMode=e,Q.mainLoop.timingValue=t,!Q.mainLoop.func)return pe("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(Q.mainLoop.running||(Q.mainLoop.running=!0),e==0)Q.mainLoop.scheduler=function(){let o=Math.max(0,Q.mainLoop.tickStartTime+t-Or())|0;setTimeout(Q.mainLoop.runner,o)},Q.mainLoop.method="timeout";else if(e==1)Q.mainLoop.scheduler=function(){Q.requestAnimationFrame(Q.mainLoop.runner)},Q.mainLoop.method="rAF";else if(e==2){if(typeof setImmediate=="undefined"){let r=[],o="setimmediate",a=function(s){(s.data===o||s.data.target===o)&&(s.stopPropagation(),r.shift()())};addEventListener("message",a,!0),setImmediate=function(A){r.push(A),Ve?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(A),postMessage({target:o})):postMessage(o,"*")}}Q.mainLoop.scheduler=function(){setImmediate(Q.mainLoop.runner)},Q.mainLoop.method="immediate"}return 0}let Or;It?Or=function(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}:Or=function(){return performance.now()};function Si(){return!w.currentContext||!w.currentContext.GLctx?-3:w.currentContext.defaultFbo?(w.blitOffscreenFramebuffer(w.currentContext),0):w.currentContext.attributes.explicitSwapControl?0:-3}function Wn(e){No(e)}function Mi(){if(!Ct())try{Wn(Sr)}catch(e){if(e instanceof Ao)return;throw e}}function Bn(e,t,r,o,a){z(!Q.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Q.mainLoop.func=e,Q.mainLoop.arg=o;let s=Q.mainLoop.currentlyRunningMainloop;function A(){return s<Q.mainLoop.currentlyRunningMainloop?(Mi(),!1):!0}if(Q.mainLoop.running=!1,Q.mainLoop.runner=function(){if(!W){if(Q.mainLoop.queue.length>0){let u=Date.now(),d=Q.mainLoop.queue.shift();if(d.func(d.arg),Q.mainLoop.remainingBlockers){let h=Q.mainLoop.remainingBlockers,I=h%1==0?h-1:Math.floor(h);d.counted?Q.mainLoop.remainingBlockers=I:(I=I+.5,Q.mainLoop.remainingBlockers=(8*h+I)/9)}if(Re(`main loop blocker "${d.name}" took ${Date.now()-u} ms`),Q.mainLoop.updateStatus(),!A())return;setTimeout(Q.mainLoop.runner,0);return}if(A()){if(Q.mainLoop.currentFrameNumber=Q.mainLoop.currentFrameNumber+1|0,Q.mainLoop.timingMode==1&&Q.mainLoop.timingValue>1&&Q.mainLoop.currentFrameNumber%Q.mainLoop.timingValue!=0){Q.mainLoop.scheduler();return}Q.mainLoop.timingMode==0&&(Q.mainLoop.tickStartTime=Or()),w.newRenderingFrameStarted(),typeof w!="undefined"&&w.currentContext&&!w.currentContextIsProxied&&!w.currentContext.attributes.explicitSwapControl&&w.currentContext.GLctx.commit&&w.currentContext.GLctx.commit(),Q.mainLoop.method==="timeout"&&n.ctx&&(tt("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Q.mainLoop.method=""),Q.mainLoop.runIter(e),st(),A()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),Q.mainLoop.scheduler())}}},a||(t&&t>0?Tt(0,1e3/t):Tt(1,1),Q.mainLoop.scheduler()),r)throw"unwind"}function or(e,t){if(W){pe("user callback triggered after application aborted. Ignoring.");return}if(t){e();return}try{e()}catch(r){if(r instanceof Ao)return;if(r!=="unwind")throw r&&typeof r=="object"&&r.stack&&pe(`exception thrown: ${[r,r.stack]}`),r}}function P(e,t){return setTimeout(()=>{or(e)},t)}var Q={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Q.mainLoop.scheduler=null,Q.mainLoop.currentlyRunningMainloop++},resume(){Q.mainLoop.currentlyRunningMainloop++;let{timingMode:e}=Q.mainLoop,{timingValue:t}=Q.mainLoop,{func:r}=Q.mainLoop;Q.mainLoop.func=null,Bn(r,0,!1,Q.mainLoop.arg,!0),Tt(e,t),Q.mainLoop.scheduler()},updateStatus(){if(n.setStatus){let e=n.statusMessage||"Please wait...",t=Q.mainLoop.remainingBlockers,r=Q.mainLoop.expectedBlockers;t?t<r?n.setStatus(`${e} (${r-t}/${r})`):n.setStatus(e):n.setStatus("")}},runIter(e){W||n.preMainLoop&&n.preMainLoop()===!1||(or(e),n.postMainLoop&&n.postMainLoop())}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(n.preloadPlugins||(n.preloadPlugins=[]),Q.initted)return;Q.initted=!0;try{new Blob,Q.hasBlobConstructor=!0}catch(a){Q.hasBlobConstructor=!1,Re("warning: no blob constructor, cannot create blobs with mimetypes")}Q.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:Q.hasBlobConstructor?null:Re("warning: no BlobBuilder"),Q.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof Q.URLObject=="undefined"&&(Re("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);let e={};e.canHandle=function(s){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(s)},e.handle=function(s,A,c,u){let d=null;if(Q.hasBlobConstructor)try{d=new Blob([s],{type:Q.getMimetype(A)}),d.size!==s.length&&(d=new Blob([new Uint8Array(s).buffer],{type:Q.getMimetype(A)}))}catch(m){tt(`Blob constructor present but fails: ${m}; falling back to blob builder`)}if(!d){let m=new Q.BlobBuilder;m.append(new Uint8Array(s).buffer),d=m.getBlob()}let h=Q.URLObject.createObjectURL(d);z(typeof h=="string","createObjectURL must return a url as a string");let I=new Image;I.onload=function(){z(I.complete,`Image ${A} could not be decoded`);let y=document.createElement("canvas");y.width=I.width,y.height=I.height,y.getContext("2d").drawImage(I,0,0),n.preloadedImages[A]=y,Q.URLObject.revokeObjectURL(h),c&&c(s)},I.onerror=function(y){Re(`Image ${h} could not be decoded`),u&&u()},I.src=h},n.preloadPlugins.push(e);let t={};t.canHandle=function(s){return!n.noAudioDecoding&&s.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(s,A,c,u){let d=!1;function h(y){d||(d=!0,n.preloadedAudios[A]=y,c&&c(s))}function I(){d||(d=!0,n.preloadedAudios[A]=new Audio,u&&u())}if(Q.hasBlobConstructor){try{var m=new Blob([s],{type:Q.getMimetype(A)})}catch(U){return I()}let y=Q.URLObject.createObjectURL(m);z(typeof y=="string","createObjectURL must return a url as a string");let v=new Audio;v.addEventListener("canplaythrough",()=>{h(v)},!1),v.onerror=function(G){if(d)return;Re(`warning: browser could not fully decode audio ${A}, trying slower base64 approach`);function R(D){let k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$="=",Y="",Ce=0,Ne=0;for(let hr=0;hr<D.length;hr++)for(Ce=Ce<<8|D[hr],Ne+=8;Ne>=6;){let hu=Ce>>Ne-6&63;Ne-=6,Y+=k[hu]}return Ne==2?(Y+=k[(Ce&3)<<4],Y+=$+$):Ne==4&&(Y+=k[(Ce&15)<<2],Y+=$),Y}v.src=`data:audio/x-${A.substr(-3)};base64,${R(s)}`,h(v)},v.src=y,P(()=>{h(v)},1e4)}else return I()},n.preloadPlugins.push(t);function r(){Q.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}let{canvas:o}=n},createContext(e,t,r,o){if(t&&n.ctx&&e==n.canvas)return n.ctx;let a,s;if(t){let A={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(o)for(let c in o)A[c]=o[c];typeof w!="undefined"&&(s=w.createContext(e,A),s&&(a=w.getContext(s).GLctx))}else a=e.getContext("2d");return a?(r&&(t||z(typeof S=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=a,t&&w.makeContextCurrent(s),n.useWebGL=t,Q.moduleContextCreatedCallbacks.forEach(A=>{A()}),Q.init()),a):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){Q.lockPointer=e,Q.resizeCanvas=t,typeof Q.lockPointer=="undefined"&&(Q.lockPointer=!0),typeof Q.resizeCanvas=="undefined"&&(Q.resizeCanvas=!1);let{canvas:r}=n;function o(){Q.isFullscreen=!1;let s=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===s?(r.exitFullscreen=Q.exitFullscreen,Q.lockPointer&&r.requestPointerLock(),Q.isFullscreen=!0,Q.resizeCanvas?Q.setFullscreenCanvasSize():Q.updateCanvasDimensions(r)):(s.parentNode.insertBefore(r,s),s.parentNode.removeChild(s),Q.resizeCanvas?Q.setWindowedCanvasSize():Q.updateCanvasDimensions(r)),n.onFullScreen&&n.onFullScreen(Q.isFullscreen),n.onFullscreen&&n.onFullscreen(Q.isFullscreen)}Q.fullscreenHandlersInstalled||(Q.fullscreenHandlersInstalled=!0);let a=document.createElement("div");r.parentNode.insertBefore(a,r),a.appendChild(r),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?function(){a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(a.webkitRequestFullScreen?function(){a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),a.requestFullscreen()},requestFullScreen(){p("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen(){return Q.isFullscreen?((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0):!1},nextRAF:0,fakeRequestAnimationFrame(e){let t=Date.now();if(Q.nextRAF===0)Q.nextRAF=t+1e3/60;else for(;t+2>=Q.nextRAF;)Q.nextRAF+=1e3/60;let r=Math.max(Q.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(e);return}let t=Q.fakeRequestAnimationFrame;t(e)},safeSetTimeout(e){return P(e)},safeRequestAnimationFrame(e){return Q.requestAnimationFrame(()=>{or(e)})},getMimetype(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta(e){let t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw`unrecognized mouse wheel delta mode: ${e.deltaMode}`}break;default:throw`unrecognized mouse wheel event: ${e.type}`}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent(e){if(Q.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?Q.mouseMovementX=Q.mouseMovementY=0:(Q.mouseMovementX=Q.getMovementX(e),Q.mouseMovementY=Q.getMovementY(e)),typeof SDL!="undefined"?(Q.mouseX=SDL.mouseX+Q.mouseMovementX,Q.mouseY=SDL.mouseY+Q.mouseMovementY):(Q.mouseX+=Q.mouseMovementX,Q.mouseY+=Q.mouseMovementY);else{let t=n.canvas.getBoundingClientRect(),r=n.canvas.width,o=n.canvas.height,a=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,s=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(z(typeof a!="undefined"&&typeof s!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){let{touch:u}=e;if(u===void 0)return;let d=u.pageX-(a+t.left),h=u.pageY-(s+t.top);d=d*(r/t.width),h=h*(o/t.height);let I={x:d,y:h};if(e.type==="touchstart")Q.lastTouches[u.identifier]=I,Q.touches[u.identifier]=I;else if(e.type==="touchend"||e.type==="touchmove"){let m=Q.touches[u.identifier];m||(m=I),Q.lastTouches[u.identifier]=m,Q.touches[u.identifier]=I}return}let A=e.pageX-(a+t.left),c=e.pageY-(s+t.top);A=A*(r/t.width),c=c*(o/t.height),Q.mouseMovementX=A-Q.mouseX,Q.mouseMovementY=c-Q.mouseY,Q.mouseX=A,Q.mouseY=c}},resizeListeners:[],updateResizeListeners(){let{canvas:e}=n;Q.resizeListeners.forEach(t=>{t(e.width,e.height)})},setCanvasSize(e,t,r){let{canvas:o}=n;Q.updateCanvasDimensions(o,e,t),r||Q.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e|8388608,b[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){let e=Qe[SDL.screen>>2];e=e&-8388609,b[SDL.screen>>2]=e}Q.updateCanvasDimensions(n.canvas),Q.updateResizeListeners()},updateCanvasDimensions(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);let o=t,a=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(o/a<n.forcedAspectRatio?o=Math.round(a*n.forcedAspectRatio):a=Math.round(o/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&typeof screen!="undefined"){let s=Math.min(screen.width/o,screen.height/a);o=Math.round(o*s),a=Math.round(a*s)}Q.resizeCanvas?(e.width!=o&&(e.width=o),e.height!=a&&(e.height=a),typeof e.style!="undefined"&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),typeof e.style!="undefined"&&(o!=t||a!=r?(e.style.setProperty("width",`${o}px`,"important"),e.style.setProperty("height",`${a}px`,"important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}};function Tn(e){for(;e.length>0;){let t=e.shift();if(typeof t=="function"){t(n);continue}let{func:r}=t;typeof r=="number"?t.arg===void 0?V.get(r)():V.get(r)(t.arg):r(t.arg===void 0?null:t.arg)}}function Lr(e){return tt("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Vn(e){let t=/\b_Z[\w\d_]+/g;return e.replace(t,r=>{let o=Lr(r);return r===o?r:`${o} [${r}]`})}function sn(){let 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 Fi(){let e=sn();return n.extraStackTrace&&(e+=`
2
2
  ${n.extraStackTrace()}`),Vn(e)}function fo(e){return tn(e+16)+16}function vn(e,t){}function Br(e,t){return void 0}function Mt(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(t){b[this.ptr+4>>2]=t},this.get_type=function(){return b[this.ptr+4>>2]},this.set_destructor=function(t){b[this.ptr+8>>2]=t},this.get_destructor=function(){return b[this.ptr+8>>2]},this.set_refcount=function(t){b[this.ptr>>2]=t},this.set_caught=function(t){t=t?1:0,be[this.ptr+12>>0]=t},this.get_caught=function(){return be[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,be[this.ptr+13>>0]=t},this.get_rethrown=function(){return be[this.ptr+13>>0]!=0},this.init=function(t,r){this.set_type(t),this.set_destructor(r),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){let t=b[this.ptr>>2];b[this.ptr>>2]=t+1},this.release_ref=function(){let t=b[this.ptr>>2];return b[this.ptr>>2]=t-1,z(t>0),t===1}}function Xt(e){this.free=function(){it(this.ptr),this.ptr=0},this.set_base_ptr=function(t){b[this.ptr>>2]=t},this.get_base_ptr=function(){return b[this.ptr>>2]},this.set_adjusted_ptr=function(t){b[this.ptr+4>>2]=t},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return b[this.ptr+4>>2]},this.get_exception_ptr=function(){if(iA(this.get_exception_info().get_type()))return b[this.get_base_ptr()>>2];let r=this.get_adjusted_ptr();return r!==0?r:this.get_base_ptr()},this.get_exception_info=function(){return new Mt(this.get_base_ptr())},e===void 0?(this.ptr=tn(8),this.set_adjusted_ptr(0)):this.ptr=e}let Hr=[];function vt(e){e.add_ref()}let Qn=0;function Wt(e){let t=new Xt(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),Qn--),r.set_rethrown(!1),Hr.push(t),vt(r),t.get_exception_ptr()}let Ft=0;function Tr(e){try{return it(new Mt(e).ptr)}catch(t){pe(`exception during cxa_free_exception: ${t}`)}}function ki(e){if(e.release_ref()&&!e.get_rethrown()){let t=e.get_destructor();t&&V.get(t)(e.excPtr),Tr(e.excPtr)}}function zn(){re(0),z(Hr.length>0);let e=Hr.pop();ki(e.get_exception_info()),e.free(),Ft=0}function Pn(e){let t=new Xt(e),r=t.get_base_ptr();throw Ft||(Ft=r),t.free(),`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function Ni(){let e=Ft;if(!e)return he(0),0;let r=new Mt(e).get_type(),o=new Xt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return he(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(ko(A,r,o.get_adjusted_ptr_addr()))return he(A),o.ptr|0}return he(r),o.ptr|0}function $n(){let e=Ft;if(!e)return he(0),0;let r=new Mt(e).get_type(),o=new Xt;if(o.set_base_ptr(e),o.set_adjusted_ptr(e),!r)return he(0),o.ptr|0;let a=Array.prototype.slice.call(arguments);for(let s=0;s<a.length;s++){let A=a[s];if(A===0||A===r)break;if(ko(A,r,o.get_adjusted_ptr_addr()))return he(A),o.ptr|0}return he(r),o.ptr|0}function Ui(){let e=Hr.pop();e||p("no exception to throw");let t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(Hr.push(e),t.set_rethrown(!0),t.set_caught(!1),Qn++),Ft=r,`${r} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function xi(e,t){return void 0}function Kn(e,t,r){throw new Mt(e).init(t,r),Ft=e,Qn++,`${e} - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.`}function _e(e){return b[uc()>>2]=e,e}var Ie={splitPath(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray(e,t){let r=0;for(let o=e.length-1;o>=0;o--){let a=e[o];a==="."?e.splice(o,1):a===".."?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize(e){let t=e.charAt(0)==="/",r=e.substr(-1)==="/";return e=Ie.normalizeArray(e.split("/").filter(o=>!!o),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname(e){let t=Ie.splitPath(e),r=t[0],o=t[1];return!r&&!o?".":(o&&(o=o.substr(0,o.length-1)),r+o)},basename(e){if(e==="/")return"/";e=Ie.normalize(e),e=e.replace(/\/$/,"");let t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},extname(e){return Ie.splitPath(e)[3]},join(){let e=Array.prototype.slice.call(arguments,0);return Ie.normalize(e.join("/"))},join2(e,t){return Ie.normalize(`${e}/${t}`)}};function dt(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){let e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}if(It)try{let e=Ic("crypto");return function(){return e.randomBytes(1)[0]}}catch(e){}return function(){p("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 Pe={resolve(){let e="",t=!1;for(let r=arguments.length-1;r>=-1&&!t;r--){let o=r>=0?arguments[r]:l.cwd();if(typeof o!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=`${o}/${e}`,t=o.charAt(0)==="/"}return e=Ie.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"),(t?"/":"")+e||"."},relative(e,t){e=Pe.resolve(e).substr(1),t=Pe.resolve(t).substr(1);function r(d){let h=0;for(;h<d.length&&d[h]==="";h++);let I=d.length-1;for(;I>=0&&d[I]==="";I--);return h>I?[]:d.slice(h,I-h+1)}let o=r(e.split("/")),a=r(t.split("/")),s=Math.min(o.length,a.length),A=s;for(var c=0;c<s;c++)if(o[c]!==a[c]){A=c;break}let u=[];for(var c=A;c<o.length;c++)u.push("..");return u=u.concat(a.slice(A)),u.join("/")}},yt={ttys:[],init(){},shutdown(){},register(e,t){yt.ttys[e]={input:[],output:[],ops:t},l.registerDevice(e,yt.stream_ops)},stream_ops:{open(e){let t=yt.ttys[e.node.rdev];if(!t)throw new l.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.flush(e.tty)},flush(e){e.tty.ops.flush(e.tty)},read(e,t,r,o,a){if(!e.tty||!e.tty.ops.get_char)throw new l.ErrnoError(60);let s=0;for(let c=0;c<o;c++){var A;try{A=e.tty.ops.get_char(e.tty)}catch(u){throw new l.ErrnoError(29)}if(A===void 0&&s===0)throw new l.ErrnoError(6);if(A==null)break;s++,t[r+c]=A}return s&&(e.node.timestamp=Date.now()),s},write(e,t,r,o,a){if(!e.tty||!e.tty.ops.put_char)throw new l.ErrnoError(60);try{for(var s=0;s<o;s++)e.tty.ops.put_char(e.tty,t[r+s])}catch(A){throw new l.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),s}},default_tty_ops:{get_char(e){if(!e.input.length){let t=null;if(It){let o=Buffer.alloc(256),a=0;try{a=Ke.readSync(process.stdin.fd,o,0,256,null)}catch(s){if(s.toString().includes("EOF"))a=0;else throw s}a>0?t=o.slice(0,a).toString("utf-8"):t=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(t=window.prompt("Input: "),t!==null&&(t+=`
3
3
  `)):typeof readline=="function"&&(t=readline(),t!==null&&(t+=`
4
- `));if(!t)return null;e.input=yi(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(Re(Rt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(Re(Rt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(pe(Rt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(pe(Rt(e.output,0)),e.output=[])}}};function ji(e,t){ve.fill(0,e,e+t)}function Jn(e,t){return z(t,"alignment argument is required"),Math.ceil(e/t)*t}function ie(e){e=Jn(e,65536);let t=gc(65536,e);return t?(ji(t,e),t):0}var se={ops_table:null,mount(e){return se.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(l.isBlkdev(r)||l.isFIFO(r))throw new l.ErrnoError(63);se.ops_table||(se.ops_table={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:l.chrdev_stream_ops}});let a=l.createNode(e,t,r,o);return l.isDir(a.mode)?(a.node_ops=se.ops_table.dir.node,a.stream_ops=se.ops_table.dir.stream,a.contents={}):l.isFile(a.mode)?(a.node_ops=se.ops_table.file.node,a.stream_ops=se.ops_table.file.stream,a.usedBytes=0,a.contents=null):l.isLink(a.mode)?(a.node_ops=se.ops_table.link.node,a.stream_ops=se.ops_table.link.stream):l.isChrdev(a.mode)&&(a.node_ops=se.ops_table.chrdev.node,a.stream_ops=se.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[t]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){let r=e.contents?e.contents.length:0;if(r>=t)return;let o=1024*1024;t=Math.max(t,r*(r<o?2:1.125)>>>0),r!=0&&(t=Math.max(t,256));let a=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{let r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){let t={};return t.dev=l.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,l.isDir(e.mode)?t.size=4096:l.isFile(e.mode)?t.size=e.usedBytes:l.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(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&se.resizeFileStorage(e,t.size)},lookup(e,t){throw l.genericErrors[44]},mknod(e,t,r,o){return se.createNode(e,t,r,o)},rename(e,t,r){if(l.isDir(e.mode)){let o;try{o=l.lookupNode(t,r)}catch(a){}if(o)for(let a in o.contents)throw new l.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){let r=l.lookupNode(e,t);for(let o in r.contents)throw new l.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){let t=[".",".."];for(let r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){let o=se.createNode(e,t,41471,0);return o.link=r,o},readlink(e){if(!l.isLink(e.mode))throw new l.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,o,a){let{contents:s}=e.node;if(a>=e.node.usedBytes)return 0;let A=Math.min(e.node.usedBytes-a,o);if(z(A>=0),A>8&&s.subarray)t.set(s.subarray(a,a+A),r);else for(let c=0;c<A;c++)t[r+c]=s[a+c];return A},write(e,t,r,o,a,s){if(z(!(t instanceof ArrayBuffer)),t.buffer===be.buffer&&(s=!1),!o)return 0;let{node:A}=e;if(A.timestamp=Date.now(),t.subarray&&(!A.contents||A.contents.subarray)){if(s)return z(a===0,"canOwn must imply no weird position inside the file"),A.contents=t.subarray(r,r+o),A.usedBytes=o,o;if(A.usedBytes===0&&a===0)return A.contents=t.slice(r,r+o),A.usedBytes=o,o;if(a+o<=A.usedBytes)return A.contents.set(t.subarray(r,r+o),a),o}if(se.expandFileStorage(A,a+o),A.contents.subarray&&t.subarray)A.contents.set(t.subarray(r,r+o),a);else for(let c=0;c<o;c++)A.contents[a+c]=t[r+c];return A.usedBytes=Math.max(A.usedBytes,a+o),o},llseek(e,t,r){let o=t;if(r===1?o+=e.position:r===2&&l.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new l.ErrnoError(28);return o},allocate(e,t,r){se.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,o,a,s){if(t!==0)throw new l.ErrnoError(28);if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);let A,c,{contents:u}=e.node;if(!(s&2)&&u.buffer===Se)c=!1,A=u.byteOffset;else{if((o>0||o+r<u.length)&&(u.subarray?u=u.subarray(o,o+r):u=Array.prototype.slice.call(u,o,o+r)),c=!0,A=ie(r),!A)throw new l.ErrnoError(48);be.set(u,A)}return{ptr:A,allocated:c}},msync(e,t,r,o,a){if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);if(a&2)return 0;let s=se.stream_ops.write(e,t,0,o,r,!1);return 0}}};function Li(e,t,r,o){let a=o?"":wr(`al ${e}`);er(e,s=>{z(s,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(s)),a&&ir(a)},s=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&E(a)}let An={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"},f={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};var l={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,lookupPath(e,t){if(e=Pe.resolve(l.cwd(),e),t=t||{},!e)return{path:"",node:null};let r={follow_mount:!0,recurse_count:0};for(let A in r)t[A]===void 0&&(t[A]=r[A]);if(t.recurse_count>8)throw new l.ErrnoError(32);let o=Ie.normalizeArray(e.split("/").filter(A=>!!A),!1),a=l.root,s="/";for(let A=0;A<o.length;A++){let c=A===o.length-1;if(c&&t.parent)break;if(a=l.lookupNode(a,o[A]),s=Ie.join2(s,o[A]),l.isMountpoint(a)&&(!c||c&&t.follow_mount)&&(a=a.mounted.root),!c||t.follow){let u=0;for(;l.isLink(a.mode);){let d=l.readlink(s);if(s=Pe.resolve(Ie.dirname(s),d),a=l.lookupPath(s,{recurse_count:t.recurse_count}).node,u++>40)throw new l.ErrnoError(32)}}}return{path:s,node:a}},getPath(e){let t;for(;;){if(l.isRoot(e)){let 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(e,t){let r=0;for(let o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%l.nameTable.length},hashAddNode(e){let t=l.hashName(e.parent.id,e.name);e.name_next=l.nameTable[t],l.nameTable[t]=e},hashRemoveNode(e){let t=l.hashName(e.parent.id,e.name);if(l.nameTable[t]===e)l.nameTable[t]=e.name_next;else{let r=l.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){let r=l.mayLookup(e);if(r)throw new l.ErrnoError(r,e);let o=l.hashName(e.id,t);for(let a=l.nameTable[o];a;a=a.name_next){let s=a.name;if(a.parent.id===e.id&&s===t)return a}return l.lookup(e,t)},createNode(e,t,r,o){z(typeof e=="object");let a=new l.FSNode(e,t,r,o);return l.hashAddNode(a),a},destroyNode(e){l.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){let t=l.flagModes[e];if(typeof t=="undefined")throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return l.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){let t=l.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{let r=l.lookupNode(e,t);return 20}catch(r){}return l.nodePermissions(e,"wx")},mayDelete(e,t,r){let o;try{o=l.lookupNode(e,t)}catch(s){return s.errno}let a=l.nodePermissions(e,"wx");if(a)return a;if(r){if(!l.isDir(o.mode))return 54;if(l.isRoot(o)||l.getPath(o)===l.cwd())return 10}else if(l.isDir(o.mode))return 31;return 0},mayOpen(e,t){return e?l.isLink(e.mode)?32:l.isDir(e.mode)&&(l.flagsToPermissionString(t)!=="r"||t&512)?31:l.nodePermissions(e,l.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||l.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!l.streams[r])return r;throw new l.ErrnoError(33)},getStream(e){return l.streams[e]},createStream(e,t,r){l.FSStream||(l.FSStream=function(){},l.FSStream.prototype={object:{get(){return this.node},set(s){this.node=s}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}}});let o=new l.FSStream;for(let s in e)o[s]=e[s];e=o;let a=l.nextfd(t,r);return e.fd=a,l.streams[a]=e,e},closeStream(e){l.streams[e]=null},chrdev_stream_ops:{open(e){let t=l.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new l.ErrnoError(70)}},major(e){return e>>8},minor(e){return e&255},makedev(e,t){return e<<8|t},registerDevice(e,t){l.devices[e]={stream_ops:t}},getDevice(e){return l.devices[e]},getMounts(e){let t=[],r=[e];for(;r.length;){let o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),l.syncFSRequests++,l.syncFSRequests>1&&pe(`warning: ${l.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);let r=l.getMounts(l.root.mount),o=0;function a(A){return z(l.syncFSRequests>0),l.syncFSRequests--,t(A)}function s(A){if(A)return s.errored?void 0:(s.errored=!0,a(A));++o>=r.length&&a(null)}r.forEach(A=>{if(!A.type.syncfs)return s(null);A.type.syncfs(A,e,s)})},mount(e,t,r){if(typeof e=="string")throw e;let o=r==="/",a=!r,s;if(o&&l.root)throw new l.ErrnoError(10);if(!o&&!a){let u=l.lookupPath(r,{follow_mount:!1});if(r=u.path,s=u.node,l.isMountpoint(s))throw new l.ErrnoError(10);if(!l.isDir(s.mode))throw new l.ErrnoError(54)}let A={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(A);return c.mount=A,A.root=c,o?l.root=c:s&&(s.mounted=A,s.mount&&s.mount.mounts.push(A)),c},unmount(e){let t=l.lookupPath(e,{follow_mount:!1});if(!l.isMountpoint(t.node))throw new l.ErrnoError(28);let{node:r}=t,o=r.mounted,a=l.getMounts(o);Object.keys(l.nameTable).forEach(A=>{let c=l.nameTable[A];for(;c;){let u=c.name_next;a.includes(c.mount)&&l.destroyNode(c),c=u}}),r.mounted=null;let s=r.mount.mounts.indexOf(o);z(s!==-1),r.mount.mounts.splice(s,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){let a=l.lookupPath(e,{parent:!0}).node,s=Ie.basename(e);if(!s||s==="."||s==="..")throw new l.ErrnoError(28);let A=l.mayCreate(a,s);if(A)throw new l.ErrnoError(A);if(!a.node_ops.mknod)throw new l.ErrnoError(63);return a.node_ops.mknod(a,s,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,l.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,l.mknod(e,t,0)},mkdirTree(e,t){let r=e.split("/"),o="";for(let a=0;a<r.length;++a)if(r[a]){o+=`/${r[a]}`;try{l.mkdir(o,t)}catch(s){if(s.errno!=20)throw s}}},mkdev(e,t,r){return typeof r=="undefined"&&(r=t,t=438),t|=8192,l.mknod(e,t,r)},symlink(e,t){if(!Pe.resolve(e))throw new l.ErrnoError(44);let o=l.lookupPath(t,{parent:!0}).node;if(!o)throw new l.ErrnoError(44);let a=Ie.basename(t),s=l.mayCreate(o,a);if(s)throw new l.ErrnoError(s);if(!o.node_ops.symlink)throw new l.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){let r=Ie.dirname(e),o=Ie.dirname(t),a=Ie.basename(e),s=Ie.basename(t),A,c,u;if(A=l.lookupPath(e,{parent:!0}),c=A.node,A=l.lookupPath(t,{parent:!0}),u=A.node,!c||!u)throw new l.ErrnoError(44);if(c.mount!==u.mount)throw new l.ErrnoError(75);let d=l.lookupNode(c,a),h=Pe.relative(e,o);if(h.charAt(0)!==".")throw new l.ErrnoError(28);if(h=Pe.relative(t,r),h.charAt(0)!==".")throw new l.ErrnoError(55);let I;try{I=l.lookupNode(u,s)}catch(v){}if(d===I)return;let m=l.isDir(d.mode),y=l.mayDelete(c,a,m);if(y)throw new l.ErrnoError(y);if(y=I?l.mayDelete(u,s,m):l.mayCreate(u,s),y)throw new l.ErrnoError(y);if(!c.node_ops.rename)throw new l.ErrnoError(63);if(l.isMountpoint(d)||I&&l.isMountpoint(I))throw new l.ErrnoError(10);if(u!==c&&(y=l.nodePermissions(c,"w"),y))throw new l.ErrnoError(y);try{l.trackingDelegate.willMovePath&&l.trackingDelegate.willMovePath(e,t)}catch(v){pe(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}l.hashRemoveNode(d);try{c.node_ops.rename(d,u,s)}catch(v){throw v}finally{l.hashAddNode(d)}try{l.trackingDelegate.onMovePath&&l.trackingDelegate.onMovePath(e,t)}catch(v){pe(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}},rmdir(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!0);if(s)throw new l.ErrnoError(s);if(!r.node_ops.rmdir)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){pe(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.rmdir(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){pe(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readdir(e){let t=l.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new l.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!1);if(s)throw new l.ErrnoError(s);if(!r.node_ops.unlink)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){pe(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.unlink(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){pe(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readlink(e){let r=l.lookupPath(e).node;if(!r)throw new l.ErrnoError(44);if(!r.node_ops.readlink)throw new l.ErrnoError(28);return Pe.resolve(l.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){let r=l.lookupPath(e,{follow:!t}),{node:o}=r;if(!o)throw new l.ErrnoError(44);if(!o.node_ops.getattr)throw new l.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return l.stat(e,!0)},chmod(e,t,r){let o;if(typeof e=="string"?o=l.lookupPath(e,{follow:!r}).node:o=e,!o.node_ops.setattr)throw new l.ErrnoError(63);o.node_ops.setattr(o,{mode:t&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,t){l.chmod(e,t,!0)},fchmod(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);l.chmod(r.node,t)},chown(e,t,r,o){let a;if(typeof e=="string"?a=l.lookupPath(e,{follow:!o}).node:a=e,!a.node_ops.setattr)throw new l.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,t,r){l.chown(e,t,r,!0)},fchown(e,t,r){let o=l.getStream(e);if(!o)throw new l.ErrnoError(8);l.chown(o.node,t,r)},truncate(e,t){if(t<0)throw new l.ErrnoError(28);let r;if(typeof e=="string"?r=l.lookupPath(e,{follow:!0}).node:r=e,!r.node_ops.setattr)throw new l.ErrnoError(63);if(l.isDir(r.mode))throw new l.ErrnoError(31);if(!l.isFile(r.mode))throw new l.ErrnoError(28);let o=l.nodePermissions(r,"w");if(o)throw new l.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);if(!(r.flags&2097155))throw new l.ErrnoError(28);l.truncate(r.node,t)},utime(e,t,r){let o=l.lookupPath(e,{follow:!0}),{node:a}=o;a.node_ops.setattr(a,{timestamp:Math.max(t,r)})},open(e,t,r,o,a){if(e==="")throw new l.ErrnoError(44);t=typeof t=="string"?l.modeStringToFlags(t):t,r=typeof r=="undefined"?438:r,t&64?r=r&4095|32768:r=0;let s;if(typeof e=="object")s=e;else{e=Ie.normalize(e);try{s=l.lookupPath(e,{follow:!(t&131072)}).node}catch(u){}}let A=!1;if(t&64)if(s){if(t&128)throw new l.ErrnoError(20)}else s=l.mknod(e,r,0),A=!0;if(!s)throw new l.ErrnoError(44);if(l.isChrdev(s.mode)&&(t&=-513),t&65536&&!l.isDir(s.mode))throw new l.ErrnoError(54);if(!A){let u=l.mayOpen(s,t);if(u)throw new l.ErrnoError(u)}t&512&&l.truncate(s,0),t&=-131713;let c=l.createStream({node:s,path:l.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},o,a);c.stream_ops.open&&c.stream_ops.open(c),n.logReadFiles&&!(t&1)&&(l.readFiles||(l.readFiles={}),e in l.readFiles||(l.readFiles[e]=1,pe(`FS.trackingDelegate error on read file: ${e}`)));try{if(l.trackingDelegate.onOpenFile){let u=0;(t&2097155)!==1&&(u|=l.tracking.openFlags.READ),t&2097155&&(u|=l.tracking.openFlags.WRITE),l.trackingDelegate.onOpenFile(e,u)}}catch(u){pe(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${u.message}`)}return c},close(e){if(l.isClosed(e))throw new l.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{l.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new l.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new l.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,o,a){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===1)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.read)throw new l.ErrnoError(28);let s=typeof a!="undefined";if(!s)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let A=e.stream_ops.read(e,t,r,o,a);return s||(e.position+=A),A},write(e,t,r,o,a,s){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if(!(e.flags&2097155))throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.write)throw new l.ErrnoError(28);e.seekable&&e.flags&1024&&l.llseek(e,0,2);let A=typeof a!="undefined";if(!A)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let c=e.stream_ops.write(e,t,r,o,a,s);A||(e.position+=c);try{e.path&&l.trackingDelegate.onWriteToFile&&l.trackingDelegate.onWriteToFile(e.path)}catch(u){pe(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${u.message}`)}return c},allocate(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(t<0||r<=0)throw new l.ErrnoError(28);if(!(e.flags&2097155))throw new l.ErrnoError(8);if(!l.isFile(e.node.mode)&&!l.isDir(e.node.mode))throw new l.ErrnoError(43);if(!e.stream_ops.allocate)throw new l.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,o,a,s){if(a&2&&!(s&2)&&(e.flags&2097155)!==2)throw new l.ErrnoError(2);if((e.flags&2097155)===1)throw new l.ErrnoError(2);if(!e.stream_ops.mmap)throw new l.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,a,s)},msync(e,t,r,o,a){return!e||!e.stream_ops.msync?0:e.stream_ops.msync(e,t,r,o,a)},munmap(e){return 0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new l.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if(t=t||{},t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);let r,o=l.open(e,t.flags),s=l.stat(e).size,A=new Uint8Array(s);return l.read(o,A,0,s,0),t.encoding==="utf8"?r=Rt(A,0):t.encoding==="binary"&&(r=A),l.close(o),r},writeFile(e,t,r){r=r||{},r.flags=r.flags||577;let o=l.open(e,r.flags,r.mode);if(typeof t=="string"){let a=new Uint8Array(bt(t)+1),s=Ze(t,a,0,a.length);l.write(o,a,0,s,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))l.write(o,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");l.close(o)},cwd(){return l.currentPath},chdir(e){let t=l.lookupPath(e,{follow:!0});if(t.node===null)throw new l.ErrnoError(44);if(!l.isDir(t.node.mode))throw new l.ErrnoError(54);let r=l.nodePermissions(t.node,"x");if(r)throw new l.ErrnoError(r);l.currentPath=t.path},createDefaultDirectories(){l.mkdir("/tmp"),l.mkdir("/home"),l.mkdir("/home/web_user")},createDefaultDevices(){l.mkdir("/dev"),l.registerDevice(l.makedev(1,3),{read(){return 0},write(t,r,o,a,s){return a}}),l.mkdev("/dev/null",l.makedev(1,3)),yt.register(l.makedev(5,0),yt.default_tty_ops),yt.register(l.makedev(6,0),yt.default_tty1_ops),l.mkdev("/dev/tty",l.makedev(5,0)),l.mkdev("/dev/tty1",l.makedev(6,0));let e=dt();l.createDevice("/dev","random",e),l.createDevice("/dev","urandom",e),l.mkdir("/dev/shm"),l.mkdir("/dev/shm/tmp")},createSpecialDirectories(){l.mkdir("/proc");let e=l.mkdir("/proc/self");l.mkdir("/proc/self/fd"),l.mount({mount(){let t=l.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,o){let a=+o,s=l.getStream(a);if(!s)throw new l.ErrnoError(8);let A={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink(){return s.path}}};return A.parent=A,A}},t}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?l.createDevice("/dev","stdin",n.stdin):l.symlink("/dev/tty","/dev/stdin"),n.stdout?l.createDevice("/dev","stdout",null,n.stdout):l.symlink("/dev/tty","/dev/stdout"),n.stderr?l.createDevice("/dev","stderr",null,n.stderr):l.symlink("/dev/tty1","/dev/stderr");let e=l.open("/dev/stdin",0),t=l.open("/dev/stdout",1),r=l.open("/dev/stderr",1);z(e.fd===0,`invalid handle for stdin (${e.fd})`),z(t.fd===1,`invalid handle for stdout (${t.fd})`),z(r.fd===2,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){l.ErrnoError||(l.ErrnoError=function(t,r){this.node=r,this.setErrno=function(o){this.errno=o;for(let a in f)if(f[a]===o){this.code=a;break}},this.setErrno(t),this.message=An[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Vn(this.stack))},l.ErrnoError.prototype=new Error,l.ErrnoError.prototype.constructor=l.ErrnoError,[44].forEach(e=>{l.genericErrors[e]=new l.ErrnoError(e),l.genericErrors[e].stack="<generic error, no stack>"}))},staticInit(){l.ensureErrnoError(),l.nameTable=new Array(4096),l.mount(se,{},"/"),l.createDefaultDirectories(),l.createDefaultDevices(),l.createSpecialDirectories(),l.filesystems={MEMFS:se}},init(e,t,r){z(!l.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)"),l.init.initialized=!0,l.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,l.createStandardStreams()},quit(){l.init.initialized=!1;let e=n._fflush;e&&e(0);for(let t=0;t<l.streams.length;t++){let r=l.streams[t];r&&l.close(r)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){let r=l.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{var r=l.lookupPath(e,{follow:!t});e=r.path}catch(a){}let o={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=l.lookupPath(e,{parent:!0});o.parentExists=!0,o.parentPath=r.path,o.parentObject=r.node,o.name=Ie.basename(e),r=l.lookupPath(e,{follow:!t}),o.exists=!0,o.path=r.path,o.object=r.node,o.name=r.node.name,o.isRoot=r.path==="/"}catch(a){o.error=a.errno}return o},createPath(e,t,r,o){e=typeof e=="string"?e:l.getPath(e);let a=t.split("/").reverse();for(;a.length;){let A=a.pop();if(A){var s=Ie.join2(e,A);try{l.mkdir(s)}catch(c){}e=s}}return s},createFile(e,t,r,o,a){let s=Ie.join2(typeof e=="string"?e:l.getPath(e),t),A=l.getMode(o,a);return l.create(s,A)},createDataFile(e,t,r,o,a,s){let A=t?Ie.join2(typeof e=="string"?e:l.getPath(e),t):e,c=l.getMode(o,a),u=l.create(A,c);if(r){if(typeof r=="string"){let h=new Array(r.length);for(let I=0,m=r.length;I<m;++I)h[I]=r.charCodeAt(I);r=h}l.chmod(u,c|146);let d=l.open(u,577);l.write(d,r,0,r.length,0,s),l.close(d),l.chmod(u,c)}return u},createDevice(e,t,r,o){let a=Ie.join2(typeof e=="string"?e:l.getPath(e),t),s=l.getMode(!!r,!!o);l.createDevice.major||(l.createDevice.major=64);let A=l.makedev(l.createDevice.major++,0);return l.registerDevice(A,{open(c){c.seekable=!1},close(c){o&&o.buffer&&o.buffer.length&&o(10)},read(c,u,d,h,I){let m=0;for(let v=0;v<h;v++){var y;try{y=r()}catch(U){throw new l.ErrnoError(29)}if(y===void 0&&m===0)throw new l.ErrnoError(6);if(y==null)break;m++,u[d+v]=y}return m&&(c.node.timestamp=Date.now()),m},write(c,u,d,h,I){for(var m=0;m<h;m++)try{o(u[d+m])}catch(y){throw new l.ErrnoError(29)}return h&&(c.node.timestamp=Date.now()),m}}),l.mkdev(a,s,A)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(Rr)try{e.contents=yi(Rr(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new l.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(e,t,r,o,a){function s(){this.lengthKnown=!1,this.chunks=[]}if(s.prototype.get=function(I){if(I>this.length-1||I<0)return;let m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]},s.prototype.setDataGetter=function(I){this.getter=I},s.prototype.cacheLength=function(){let I=new XMLHttpRequest;if(I.open("HEAD",r,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error(`Couldn't load ${r}. Status: ${I.status}`);let m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);let R=function(k,$){if(k>$)throw new Error(`invalid range (${k}, ${$}) or no bytes requested!`);if($>m-1)throw new Error(`only ${m} bytes available! programmer error!`);let Y=new XMLHttpRequest;if(Y.open("GET",r,!1),m!==G&&Y.setRequestHeader("Range",`bytes=${k}-${$}`),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error(`Couldn't load ${r}. Status: ${Y.status}`);return Y.response!==void 0?new Uint8Array(Y.response||[]):yi(Y.responseText||"",!0)},D=this;D.setDataGetter(k=>{let $=k*G,Y=(k+1)*G-1;if(Y=Math.min(Y,m-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(U||!m)&&(G=m=1,m=this.getter(0).length,G=m,Re("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!Ve)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";let h=new s;Object.defineProperties(h,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:h}}else var A={isDevice:!1,url:r};let c=l.createFile(e,t,A,o,a);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get(){return this.contents.length}}});let u={};return Object.keys(c.stream_ops).forEach(h=>{let I=c.stream_ops[h];u[h]=function(){return l.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,U){l.forceLoadFile(c);let{contents:G}=I.node;if(U>=G.length)return 0;let R=Math.min(G.length-U,v);if(z(R>=0),G.slice)for(var D=0;D<R;D++)m[y+D]=G[U+D];else for(var D=0;D<R;D++)m[y+D]=G.get(U+D);return R},c.stream_ops=u,c},createPreloadedFile(e,t,r,o,a,s,A,c,u,d){Q.init();let h=t?Pe.resolve(Ie.join2(e,t)):e,I=wr(`cp ${h}`);function m(y){function v(G){d&&d(),c||l.createDataFile(e,t,G,o,a,u),s&&s(),ir(I)}let U=!1;n.preloadPlugins.forEach(G=>{U||G.canHandle(h)&&(G.handle(y,h,v,()=>{A&&A(),ir(I)}),U=!0)}),U||v(y)}E(I),typeof r=="string"?Li(r,y=>{m(y)},A):m(r)},indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME(){return`EM_FS_${window.location.pathname}`},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=function(){Re("creating db"),a.result.createObjectStore(l.DB_STORE_NAME)},a.onsuccess=function(){let c=a.result.transaction([l.DB_STORE_NAME],"readwrite"),u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.put(l.analyzePath(y).object.contents,y);v.onsuccess=function(){d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=r,a.onsuccess=function(){let A=a.result;try{var c=A.transaction([l.DB_STORE_NAME],"readonly")}catch(y){r(y);return}let u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.get(y);v.onsuccess=function(){l.analyzePath(y).exists&&l.unlink(y),l.createDataFile(Ie.dirname(y),Ie.basename(y),v.result,!0,!0,!0),d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},absolutePath(){p("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){p("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){p("FS.createLink has been removed; use FS.symlink instead")},joinPath(){p("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){p("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){p("FS.standardizePath has been removed; use PATH.normalize instead")}},Me={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if(t[0]==="/")return t;let o;if(e===-100)o=l.cwd();else{let a=l.getStream(e);if(!a)throw new l.ErrnoError(8);o=a.path}if(t.length==0){if(!r)throw new l.ErrnoError(44);return o}return Ie.join2(o,t)},doStat(e,t,r){try{var o=e(t)}catch(a){if(a&&a.node&&Ie.normalize(t)!==Ie.normalize(l.getPath(a.node)))return-54;throw a}return b[r>>2]=o.dev,b[r+4>>2]=0,b[r+8>>2]=o.ino,b[r+12>>2]=o.mode,b[r+16>>2]=o.nlink,b[r+20>>2]=o.uid,b[r+24>>2]=o.gid,b[r+28>>2]=o.rdev,b[r+32>>2]=0,Bt=[o.size>>>0,(ye=o.size,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],b[r+40>>2]=Bt[0],b[r+44>>2]=Bt[1],b[r+48>>2]=4096,b[r+52>>2]=o.blocks,b[r+56>>2]=o.atime.getTime()/1e3|0,b[r+60>>2]=0,b[r+64>>2]=o.mtime.getTime()/1e3|0,b[r+68>>2]=0,b[r+72>>2]=o.ctime.getTime()/1e3|0,b[r+76>>2]=0,Bt=[o.ino>>>0,(ye=o.ino,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],b[r+80>>2]=Bt[0],b[r+84>>2]=Bt[1],0},doMsync(e,t,r,o,a){let s=ve.slice(e,e+r);l.msync(t,s,a,r,o)},doMkdir(e,t){return e=Ie.normalize(e),e[e.length-1]==="/"&&(e=e.substr(0,e.length-1)),l.mkdir(e,t,0),0},doMknod(e,t,r){switch(t&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return l.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;let o=l.readlink(e),a=Math.min(r,bt(o)),s=be[t+a];return tr(o,t,r+1),be[t+a]=s,a},doAccess(e,t){if(t&-8)return-28;let r;if(r=l.lookupPath(e,{follow:!0}).node,!r)return-44;let a="";return t&4&&(a+="r"),t&2&&(a+="w"),t&1&&(a+="x"),a&&l.nodePermissions(r,a)?-2:0},doDup(e,t,r){let o=l.getStream(r);return o&&l.close(o),l.open(e,t,0,r,r).fd},doReadv(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.read(e,be,A,c,o);if(u<0)return-1;if(a+=u,u<c)break}return a},doWritev(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.write(e,be,A,c,o);if(u<0)return-1;a+=u}return a},varargs:void 0,get(){return z(Me.varargs!=null),Me.varargs+=4,b[Me.varargs-4>>2]},getStr(e){return Je(e)},getStreamFromFD(e){let t=l.getStream(e);if(!t)throw new l.ErrnoError(8);return t},get64(e,t){return e>=0?z(t===0):z(t===-1),e}};function Hi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 0:{var o=Me.get();if(o<0)return-28;let s;return s=l.open(a.path,a.flags,0,o),s.fd}case 1:case 2:return 0;case 3:return a.flags;case 4:{var o=Me.get();return a.flags|=o,0}case 12:{var o=Me.get();let A=0;return T[o+A>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return _e(28),-1;default:return-28}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function Gi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 21509:case 21505:return a.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return a.tty?0:-59;case 21519:{if(!a.tty)return-59;var o=Me.get();return b[o>>2]=0,0}case 21520:return a.tty?-28:-59;case 21531:{var o=Me.get();return l.ioctl(a,t,o)}case 21523:return a.tty?0:-59;case 21524:return a.tty?0:-59;default:p(`bad ioctl syscall ${t}`)}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function Yi(e,t,r,o,a,s){s<<=12;let A,c=!1;if(o&16&&e%65536!==0)return-28;if(o&32){if(A=ie(t),!A)return-48;c=!0}else{let u=l.getStream(a);if(!u)return-8;let d=l.mmap(u,e,t,s,r,o);A=d.ptr,c=d.allocated}return Me.mappings[A]={malloc:A,len:t,allocated:c,fd:a,prot:r,flags:o,offset:s},A}function Xi(e,t,r,o,a,s){try{return Yi(e,t,r,o,a,s)}catch(A){return(typeof l=="undefined"||!(A instanceof l.ErrnoError))&&p(A),-A.errno}}function Wi(e,t,r){Me.varargs=r;try{let o=Me.getStr(e),a=r?Me.get():0;return l.open(o,t,a).fd}catch(o){return(typeof l=="undefined"||!(o instanceof l.ErrnoError))&&p(o),-o.errno}}function Zn(e,t){try{return e=Me.getStr(e),Me.doStat(l.stat,e,t)}catch(r){return(typeof l=="undefined"||!(r instanceof l.ErrnoError))&&p(r),-r.errno}}let Vi=48,cn=57;function ar(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=Vi&&t<=cn?`_${e}`:e}function sr(e,t){return e=ar(e),new Function("body",`return function ${e}() {
4
+ `));if(!t)return null;e.input=yi(t,!0)}return e.input.shift()},put_char(e,t){t===null||t===10?(Re(Rt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(Re(Rt(e.output,0)),e.output=[])}},default_tty1_ops:{put_char(e,t){t===null||t===10?(pe(Rt(e.output,0)),e.output=[]):t!=0&&e.output.push(t)},flush(e){e.output&&e.output.length>0&&(pe(Rt(e.output,0)),e.output=[])}}};function ji(e,t){ve.fill(0,e,e+t)}function Jn(e,t){return z(t,"alignment argument is required"),Math.ceil(e/t)*t}function ie(e){e=Jn(e,65536);let t=gc(65536,e);return t?(ji(t,e),t):0}var se={ops_table:null,mount(e){return se.createNode(null,"/",16895,0)},createNode(e,t,r,o){if(l.isBlkdev(r)||l.isFIFO(r))throw new l.ErrnoError(63);se.ops_table||(se.ops_table={dir:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,lookup:se.node_ops.lookup,mknod:se.node_ops.mknod,rename:se.node_ops.rename,unlink:se.node_ops.unlink,rmdir:se.node_ops.rmdir,readdir:se.node_ops.readdir,symlink:se.node_ops.symlink},stream:{llseek:se.stream_ops.llseek}},file:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:{llseek:se.stream_ops.llseek,read:se.stream_ops.read,write:se.stream_ops.write,allocate:se.stream_ops.allocate,mmap:se.stream_ops.mmap,msync:se.stream_ops.msync}},link:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr,readlink:se.node_ops.readlink},stream:{}},chrdev:{node:{getattr:se.node_ops.getattr,setattr:se.node_ops.setattr},stream:l.chrdev_stream_ops}});let a=l.createNode(e,t,r,o);return l.isDir(a.mode)?(a.node_ops=se.ops_table.dir.node,a.stream_ops=se.ops_table.dir.stream,a.contents={}):l.isFile(a.mode)?(a.node_ops=se.ops_table.file.node,a.stream_ops=se.ops_table.file.stream,a.usedBytes=0,a.contents=null):l.isLink(a.mode)?(a.node_ops=se.ops_table.link.node,a.stream_ops=se.ops_table.link.stream):l.isChrdev(a.mode)&&(a.node_ops=se.ops_table.chrdev.node,a.stream_ops=se.ops_table.chrdev.stream),a.timestamp=Date.now(),e&&(e.contents[t]=a,e.timestamp=a.timestamp),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,t){let r=e.contents?e.contents.length:0;if(r>=t)return;let o=1024*1024;t=Math.max(t,r*(r<o?2:1.125)>>>0),r!=0&&(t=Math.max(t,256));let a=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{let r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){let t={};return t.dev=l.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,l.isDir(e.mode)?t.size=4096:l.isFile(e.mode)?t.size=e.usedBytes:l.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(e,t){t.mode!==void 0&&(e.mode=t.mode),t.timestamp!==void 0&&(e.timestamp=t.timestamp),t.size!==void 0&&se.resizeFileStorage(e,t.size)},lookup(e,t){throw l.genericErrors[44]},mknod(e,t,r,o){return se.createNode(e,t,r,o)},rename(e,t,r){if(l.isDir(e.mode)){let o;try{o=l.lookupNode(t,r)}catch(a){}if(o)for(let a in o.contents)throw new l.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){let r=l.lookupNode(e,t);for(let o in r.contents)throw new l.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){let t=[".",".."];for(let r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink(e,t,r){let o=se.createNode(e,t,41471,0);return o.link=r,o},readlink(e){if(!l.isLink(e.mode))throw new l.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,o,a){let{contents:s}=e.node;if(a>=e.node.usedBytes)return 0;let A=Math.min(e.node.usedBytes-a,o);if(z(A>=0),A>8&&s.subarray)t.set(s.subarray(a,a+A),r);else for(let c=0;c<A;c++)t[r+c]=s[a+c];return A},write(e,t,r,o,a,s){if(z(!(t instanceof ArrayBuffer)),t.buffer===be.buffer&&(s=!1),!o)return 0;let{node:A}=e;if(A.timestamp=Date.now(),t.subarray&&(!A.contents||A.contents.subarray)){if(s)return z(a===0,"canOwn must imply no weird position inside the file"),A.contents=t.subarray(r,r+o),A.usedBytes=o,o;if(A.usedBytes===0&&a===0)return A.contents=t.slice(r,r+o),A.usedBytes=o,o;if(a+o<=A.usedBytes)return A.contents.set(t.subarray(r,r+o),a),o}if(se.expandFileStorage(A,a+o),A.contents.subarray&&t.subarray)A.contents.set(t.subarray(r,r+o),a);else for(let c=0;c<o;c++)A.contents[a+c]=t[r+c];return A.usedBytes=Math.max(A.usedBytes,a+o),o},llseek(e,t,r){let o=t;if(r===1?o+=e.position:r===2&&l.isFile(e.node.mode)&&(o+=e.node.usedBytes),o<0)throw new l.ErrnoError(28);return o},allocate(e,t,r){se.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,o,a,s){if(t!==0)throw new l.ErrnoError(28);if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);let A,c,{contents:u}=e.node;if(!(s&2)&&u.buffer===Se)c=!1,A=u.byteOffset;else{if((o>0||o+r<u.length)&&(u.subarray?u=u.subarray(o,o+r):u=Array.prototype.slice.call(u,o,o+r)),c=!0,A=ie(r),!A)throw new l.ErrnoError(48);be.set(u,A)}return{ptr:A,allocated:c}},msync(e,t,r,o,a){if(!l.isFile(e.node.mode))throw new l.ErrnoError(43);if(a&2)return 0;let s=se.stream_ops.write(e,t,0,o,r,!1);return 0}}};function Li(e,t,r,o){let a=o?"":wr(`al ${e}`);er(e,s=>{z(s,`Loading data file "${e}" failed (no arrayBuffer).`),t(new Uint8Array(s)),a&&ir(a)},s=>{if(r)r();else throw`Loading data file "${e}" failed.`}),a&&E(a)}let An={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"},f={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};var l={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,lookupPath(e,t){if(e=Pe.resolve(l.cwd(),e),t=t||{},!e)return{path:"",node:null};let r={follow_mount:!0,recurse_count:0};for(let A in r)t[A]===void 0&&(t[A]=r[A]);if(t.recurse_count>8)throw new l.ErrnoError(32);let o=Ie.normalizeArray(e.split("/").filter(A=>!!A),!1),a=l.root,s="/";for(let A=0;A<o.length;A++){let c=A===o.length-1;if(c&&t.parent)break;if(a=l.lookupNode(a,o[A]),s=Ie.join2(s,o[A]),l.isMountpoint(a)&&(!c||c&&t.follow_mount)&&(a=a.mounted.root),!c||t.follow){let u=0;for(;l.isLink(a.mode);){let d=l.readlink(s);if(s=Pe.resolve(Ie.dirname(s),d),a=l.lookupPath(s,{recurse_count:t.recurse_count}).node,u++>40)throw new l.ErrnoError(32)}}}return{path:s,node:a}},getPath(e){let t;for(;;){if(l.isRoot(e)){let 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(e,t){let r=0;for(let o=0;o<t.length;o++)r=(r<<5)-r+t.charCodeAt(o)|0;return(e+r>>>0)%l.nameTable.length},hashAddNode(e){let t=l.hashName(e.parent.id,e.name);e.name_next=l.nameTable[t],l.nameTable[t]=e},hashRemoveNode(e){let t=l.hashName(e.parent.id,e.name);if(l.nameTable[t]===e)l.nameTable[t]=e.name_next;else{let r=l.nameTable[t];for(;r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}}},lookupNode(e,t){let r=l.mayLookup(e);if(r)throw new l.ErrnoError(r,e);let o=l.hashName(e.id,t);for(let a=l.nameTable[o];a;a=a.name_next){let s=a.name;if(a.parent.id===e.id&&s===t)return a}return l.lookup(e,t)},createNode(e,t,r,o){z(typeof e=="object");let a=new l.FSNode(e,t,r,o);return l.hashAddNode(a),a},destroyNode(e){l.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags(e){let t=l.flagModes[e];if(typeof t=="undefined")throw new Error(`Unknown file open mode: ${e}`);return t},flagsToPermissionString(e){let t=["r","w","rw"][e&3];return e&512&&(t+="w"),t},nodePermissions(e,t){return l.ignorePermissions?0:t.includes("r")&&!(e.mode&292)||t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73)?2:0},mayLookup(e){let t=l.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{let r=l.lookupNode(e,t);return 20}catch(r){}return l.nodePermissions(e,"wx")},mayDelete(e,t,r){let o;try{o=l.lookupNode(e,t)}catch(s){return s.errno}let a=l.nodePermissions(e,"wx");if(a)return a;if(r){if(!l.isDir(o.mode))return 54;if(l.isRoot(o)||l.getPath(o)===l.cwd())return 10}else if(l.isDir(o.mode))return 31;return 0},mayOpen(e,t){return e?l.isLink(e.mode)?32:l.isDir(e.mode)&&(l.flagsToPermissionString(t)!=="r"||t&512)?31:l.nodePermissions(e,l.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd(e,t){e=e||0,t=t||l.MAX_OPEN_FDS;for(let r=e;r<=t;r++)if(!l.streams[r])return r;throw new l.ErrnoError(33)},getStream(e){return l.streams[e]},createStream(e,t,r){l.FSStream||(l.FSStream=function(){},l.FSStream.prototype={object:{get(){return this.node},set(s){this.node=s}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}}});let o=new l.FSStream;for(let s in e)o[s]=e[s];e=o;let a=l.nextfd(t,r);return e.fd=a,l.streams[a]=e,e},closeStream(e){l.streams[e]=null},chrdev_stream_ops:{open(e){let t=l.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek(){throw new l.ErrnoError(70)}},major(e){return e>>8},minor(e){return e&255},makedev(e,t){return e<<8|t},registerDevice(e,t){l.devices[e]={stream_ops:t}},getDevice(e){return l.devices[e]},getMounts(e){let t=[],r=[e];for(;r.length;){let o=r.pop();t.push(o),r.push.apply(r,o.mounts)}return t},syncfs(e,t){typeof e=="function"&&(t=e,e=!1),l.syncFSRequests++,l.syncFSRequests>1&&pe(`warning: ${l.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);let r=l.getMounts(l.root.mount),o=0;function a(A){return z(l.syncFSRequests>0),l.syncFSRequests--,t(A)}function s(A){if(A)return s.errored?void 0:(s.errored=!0,a(A));++o>=r.length&&a(null)}r.forEach(A=>{if(!A.type.syncfs)return s(null);A.type.syncfs(A,e,s)})},mount(e,t,r){if(typeof e=="string")throw e;let o=r==="/",a=!r,s;if(o&&l.root)throw new l.ErrnoError(10);if(!o&&!a){let u=l.lookupPath(r,{follow_mount:!1});if(r=u.path,s=u.node,l.isMountpoint(s))throw new l.ErrnoError(10);if(!l.isDir(s.mode))throw new l.ErrnoError(54)}let A={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(A);return c.mount=A,A.root=c,o?l.root=c:s&&(s.mounted=A,s.mount&&s.mount.mounts.push(A)),c},unmount(e){let t=l.lookupPath(e,{follow_mount:!1});if(!l.isMountpoint(t.node))throw new l.ErrnoError(28);let{node:r}=t,o=r.mounted,a=l.getMounts(o);Object.keys(l.nameTable).forEach(A=>{let c=l.nameTable[A];for(;c;){let u=c.name_next;a.includes(c.mount)&&l.destroyNode(c),c=u}}),r.mounted=null;let s=r.mount.mounts.indexOf(o);z(s!==-1),r.mount.mounts.splice(s,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,r){let a=l.lookupPath(e,{parent:!0}).node,s=Ie.basename(e);if(!s||s==="."||s==="..")throw new l.ErrnoError(28);let A=l.mayCreate(a,s);if(A)throw new l.ErrnoError(A);if(!a.node_ops.mknod)throw new l.ErrnoError(63);return a.node_ops.mknod(a,s,t,r)},create(e,t){return t=t!==void 0?t:438,t&=4095,t|=32768,l.mknod(e,t,0)},mkdir(e,t){return t=t!==void 0?t:511,t&=1023,t|=16384,l.mknod(e,t,0)},mkdirTree(e,t){let r=e.split("/"),o="";for(let a=0;a<r.length;++a)if(r[a]){o+=`/${r[a]}`;try{l.mkdir(o,t)}catch(s){if(s.errno!=20)throw s}}},mkdev(e,t,r){return typeof r=="undefined"&&(r=t,t=438),t|=8192,l.mknod(e,t,r)},symlink(e,t){if(!Pe.resolve(e))throw new l.ErrnoError(44);let o=l.lookupPath(t,{parent:!0}).node;if(!o)throw new l.ErrnoError(44);let a=Ie.basename(t),s=l.mayCreate(o,a);if(s)throw new l.ErrnoError(s);if(!o.node_ops.symlink)throw new l.ErrnoError(63);return o.node_ops.symlink(o,a,e)},rename(e,t){let r=Ie.dirname(e),o=Ie.dirname(t),a=Ie.basename(e),s=Ie.basename(t),A,c,u;if(A=l.lookupPath(e,{parent:!0}),c=A.node,A=l.lookupPath(t,{parent:!0}),u=A.node,!c||!u)throw new l.ErrnoError(44);if(c.mount!==u.mount)throw new l.ErrnoError(75);let d=l.lookupNode(c,a),h=Pe.relative(e,o);if(h.charAt(0)!==".")throw new l.ErrnoError(28);if(h=Pe.relative(t,r),h.charAt(0)!==".")throw new l.ErrnoError(55);let I;try{I=l.lookupNode(u,s)}catch(v){}if(d===I)return;let m=l.isDir(d.mode),y=l.mayDelete(c,a,m);if(y)throw new l.ErrnoError(y);if(y=I?l.mayDelete(u,s,m):l.mayCreate(u,s),y)throw new l.ErrnoError(y);if(!c.node_ops.rename)throw new l.ErrnoError(63);if(l.isMountpoint(d)||I&&l.isMountpoint(I))throw new l.ErrnoError(10);if(u!==c&&(y=l.nodePermissions(c,"w"),y))throw new l.ErrnoError(y);try{l.trackingDelegate.willMovePath&&l.trackingDelegate.willMovePath(e,t)}catch(v){pe(`FS.trackingDelegate['willMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}l.hashRemoveNode(d);try{c.node_ops.rename(d,u,s)}catch(v){throw v}finally{l.hashAddNode(d)}try{l.trackingDelegate.onMovePath&&l.trackingDelegate.onMovePath(e,t)}catch(v){pe(`FS.trackingDelegate['onMovePath']('${e}', '${t}') threw an exception: ${v.message}`)}},rmdir(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!0);if(s)throw new l.ErrnoError(s);if(!r.node_ops.rmdir)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){pe(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.rmdir(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){pe(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readdir(e){let t=l.lookupPath(e,{follow:!0}),{node:r}=t;if(!r.node_ops.readdir)throw new l.ErrnoError(54);return r.node_ops.readdir(r)},unlink(e){let r=l.lookupPath(e,{parent:!0}).node,o=Ie.basename(e),a=l.lookupNode(r,o),s=l.mayDelete(r,o,!1);if(s)throw new l.ErrnoError(s);if(!r.node_ops.unlink)throw new l.ErrnoError(63);if(l.isMountpoint(a))throw new l.ErrnoError(10);try{l.trackingDelegate.willDeletePath&&l.trackingDelegate.willDeletePath(e)}catch(A){pe(`FS.trackingDelegate['willDeletePath']('${e}') threw an exception: ${A.message}`)}r.node_ops.unlink(r,o),l.destroyNode(a);try{l.trackingDelegate.onDeletePath&&l.trackingDelegate.onDeletePath(e)}catch(A){pe(`FS.trackingDelegate['onDeletePath']('${e}') threw an exception: ${A.message}`)}},readlink(e){let r=l.lookupPath(e).node;if(!r)throw new l.ErrnoError(44);if(!r.node_ops.readlink)throw new l.ErrnoError(28);return Pe.resolve(l.getPath(r.parent),r.node_ops.readlink(r))},stat(e,t){let r=l.lookupPath(e,{follow:!t}),{node:o}=r;if(!o)throw new l.ErrnoError(44);if(!o.node_ops.getattr)throw new l.ErrnoError(63);return o.node_ops.getattr(o)},lstat(e){return l.stat(e,!0)},chmod(e,t,r){let o;if(typeof e=="string"?o=l.lookupPath(e,{follow:!r}).node:o=e,!o.node_ops.setattr)throw new l.ErrnoError(63);o.node_ops.setattr(o,{mode:t&4095|o.mode&-4096,timestamp:Date.now()})},lchmod(e,t){l.chmod(e,t,!0)},fchmod(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);l.chmod(r.node,t)},chown(e,t,r,o){let a;if(typeof e=="string"?a=l.lookupPath(e,{follow:!o}).node:a=e,!a.node_ops.setattr)throw new l.ErrnoError(63);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown(e,t,r){l.chown(e,t,r,!0)},fchown(e,t,r){let o=l.getStream(e);if(!o)throw new l.ErrnoError(8);l.chown(o.node,t,r)},truncate(e,t){if(t<0)throw new l.ErrnoError(28);let r;if(typeof e=="string"?r=l.lookupPath(e,{follow:!0}).node:r=e,!r.node_ops.setattr)throw new l.ErrnoError(63);if(l.isDir(r.mode))throw new l.ErrnoError(31);if(!l.isFile(r.mode))throw new l.ErrnoError(28);let o=l.nodePermissions(r,"w");if(o)throw new l.ErrnoError(o);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){let r=l.getStream(e);if(!r)throw new l.ErrnoError(8);if((r.flags&2097155)===0)throw new l.ErrnoError(28);l.truncate(r.node,t)},utime(e,t,r){let o=l.lookupPath(e,{follow:!0}),{node:a}=o;a.node_ops.setattr(a,{timestamp:Math.max(t,r)})},open(e,t,r,o,a){if(e==="")throw new l.ErrnoError(44);t=typeof t=="string"?l.modeStringToFlags(t):t,r=typeof r=="undefined"?438:r,t&64?r=r&4095|32768:r=0;let s;if(typeof e=="object")s=e;else{e=Ie.normalize(e);try{s=l.lookupPath(e,{follow:!(t&131072)}).node}catch(u){}}let A=!1;if(t&64)if(s){if(t&128)throw new l.ErrnoError(20)}else s=l.mknod(e,r,0),A=!0;if(!s)throw new l.ErrnoError(44);if(l.isChrdev(s.mode)&&(t&=-513),t&65536&&!l.isDir(s.mode))throw new l.ErrnoError(54);if(!A){let u=l.mayOpen(s,t);if(u)throw new l.ErrnoError(u)}t&512&&l.truncate(s,0),t&=-131713;let c=l.createStream({node:s,path:l.getPath(s),flags:t,seekable:!0,position:0,stream_ops:s.stream_ops,ungotten:[],error:!1},o,a);c.stream_ops.open&&c.stream_ops.open(c),n.logReadFiles&&!(t&1)&&(l.readFiles||(l.readFiles={}),e in l.readFiles||(l.readFiles[e]=1,pe(`FS.trackingDelegate error on read file: ${e}`)));try{if(l.trackingDelegate.onOpenFile){let u=0;(t&2097155)!==1&&(u|=l.tracking.openFlags.READ),(t&2097155)!==0&&(u|=l.tracking.openFlags.WRITE),l.trackingDelegate.onOpenFile(e,u)}}catch(u){pe(`FS.trackingDelegate['onOpenFile']('${e}', flags) threw an exception: ${u.message}`)}return c},close(e){if(l.isClosed(e))throw new l.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(t){throw t}finally{l.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new l.ErrnoError(70);if(r!=0&&r!=1&&r!=2)throw new l.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,o,a){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===1)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.read)throw new l.ErrnoError(28);let s=typeof a!="undefined";if(!s)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let A=e.stream_ops.read(e,t,r,o,a);return s||(e.position+=A),A},write(e,t,r,o,a,s){if(o<0||a<0)throw new l.ErrnoError(28);if(l.isClosed(e))throw new l.ErrnoError(8);if((e.flags&2097155)===0)throw new l.ErrnoError(8);if(l.isDir(e.node.mode))throw new l.ErrnoError(31);if(!e.stream_ops.write)throw new l.ErrnoError(28);e.seekable&&e.flags&1024&&l.llseek(e,0,2);let A=typeof a!="undefined";if(!A)a=e.position;else if(!e.seekable)throw new l.ErrnoError(70);let c=e.stream_ops.write(e,t,r,o,a,s);A||(e.position+=c);try{e.path&&l.trackingDelegate.onWriteToFile&&l.trackingDelegate.onWriteToFile(e.path)}catch(u){pe(`FS.trackingDelegate['onWriteToFile']('${e.path}') threw an exception: ${u.message}`)}return c},allocate(e,t,r){if(l.isClosed(e))throw new l.ErrnoError(8);if(t<0||r<=0)throw new l.ErrnoError(28);if((e.flags&2097155)===0)throw new l.ErrnoError(8);if(!l.isFile(e.node.mode)&&!l.isDir(e.node.mode))throw new l.ErrnoError(43);if(!e.stream_ops.allocate)throw new l.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,o,a,s){if((a&2)!==0&&(s&2)===0&&(e.flags&2097155)!==2)throw new l.ErrnoError(2);if((e.flags&2097155)===1)throw new l.ErrnoError(2);if(!e.stream_ops.mmap)throw new l.ErrnoError(43);return e.stream_ops.mmap(e,t,r,o,a,s)},msync(e,t,r,o,a){return!e||!e.stream_ops.msync?0:e.stream_ops.msync(e,t,r,o,a)},munmap(e){return 0},ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new l.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t){if(t=t||{},t.flags=t.flags||0,t.encoding=t.encoding||"binary",t.encoding!=="utf8"&&t.encoding!=="binary")throw new Error(`Invalid encoding type "${t.encoding}"`);let r,o=l.open(e,t.flags),s=l.stat(e).size,A=new Uint8Array(s);return l.read(o,A,0,s,0),t.encoding==="utf8"?r=Rt(A,0):t.encoding==="binary"&&(r=A),l.close(o),r},writeFile(e,t,r){r=r||{},r.flags=r.flags||577;let o=l.open(e,r.flags,r.mode);if(typeof t=="string"){let a=new Uint8Array(bt(t)+1),s=Ze(t,a,0,a.length);l.write(o,a,0,s,void 0,r.canOwn)}else if(ArrayBuffer.isView(t))l.write(o,t,0,t.byteLength,void 0,r.canOwn);else throw new Error("Unsupported data type");l.close(o)},cwd(){return l.currentPath},chdir(e){let t=l.lookupPath(e,{follow:!0});if(t.node===null)throw new l.ErrnoError(44);if(!l.isDir(t.node.mode))throw new l.ErrnoError(54);let r=l.nodePermissions(t.node,"x");if(r)throw new l.ErrnoError(r);l.currentPath=t.path},createDefaultDirectories(){l.mkdir("/tmp"),l.mkdir("/home"),l.mkdir("/home/web_user")},createDefaultDevices(){l.mkdir("/dev"),l.registerDevice(l.makedev(1,3),{read(){return 0},write(t,r,o,a,s){return a}}),l.mkdev("/dev/null",l.makedev(1,3)),yt.register(l.makedev(5,0),yt.default_tty_ops),yt.register(l.makedev(6,0),yt.default_tty1_ops),l.mkdev("/dev/tty",l.makedev(5,0)),l.mkdev("/dev/tty1",l.makedev(6,0));let e=dt();l.createDevice("/dev","random",e),l.createDevice("/dev","urandom",e),l.mkdir("/dev/shm"),l.mkdir("/dev/shm/tmp")},createSpecialDirectories(){l.mkdir("/proc");let e=l.mkdir("/proc/self");l.mkdir("/proc/self/fd"),l.mount({mount(){let t=l.createNode(e,"fd",16895,73);return t.node_ops={lookup(r,o){let a=+o,s=l.getStream(a);if(!s)throw new l.ErrnoError(8);let A={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink(){return s.path}}};return A.parent=A,A}},t}},{},"/proc/self/fd")},createStandardStreams(){n.stdin?l.createDevice("/dev","stdin",n.stdin):l.symlink("/dev/tty","/dev/stdin"),n.stdout?l.createDevice("/dev","stdout",null,n.stdout):l.symlink("/dev/tty","/dev/stdout"),n.stderr?l.createDevice("/dev","stderr",null,n.stderr):l.symlink("/dev/tty1","/dev/stderr");let e=l.open("/dev/stdin",0),t=l.open("/dev/stdout",1),r=l.open("/dev/stderr",1);z(e.fd===0,`invalid handle for stdin (${e.fd})`),z(t.fd===1,`invalid handle for stdout (${t.fd})`),z(r.fd===2,`invalid handle for stderr (${r.fd})`)},ensureErrnoError(){l.ErrnoError||(l.ErrnoError=function(t,r){this.node=r,this.setErrno=function(o){this.errno=o;for(let a in f)if(f[a]===o){this.code=a;break}},this.setErrno(t),this.message=An[t],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Vn(this.stack))},l.ErrnoError.prototype=new Error,l.ErrnoError.prototype.constructor=l.ErrnoError,[44].forEach(e=>{l.genericErrors[e]=new l.ErrnoError(e),l.genericErrors[e].stack="<generic error, no stack>"}))},staticInit(){l.ensureErrnoError(),l.nameTable=new Array(4096),l.mount(se,{},"/"),l.createDefaultDirectories(),l.createDefaultDevices(),l.createSpecialDirectories(),l.filesystems={MEMFS:se}},init(e,t,r){z(!l.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)"),l.init.initialized=!0,l.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,l.createStandardStreams()},quit(){l.init.initialized=!1;let e=n._fflush;e&&e(0);for(let t=0;t<l.streams.length;t++){let r=l.streams[t];r&&l.close(r)}},getMode(e,t){let r=0;return e&&(r|=365),t&&(r|=146),r},findObject(e,t){let r=l.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{var r=l.lookupPath(e,{follow:!t});e=r.path}catch(a){}let o={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=l.lookupPath(e,{parent:!0});o.parentExists=!0,o.parentPath=r.path,o.parentObject=r.node,o.name=Ie.basename(e),r=l.lookupPath(e,{follow:!t}),o.exists=!0,o.path=r.path,o.object=r.node,o.name=r.node.name,o.isRoot=r.path==="/"}catch(a){o.error=a.errno}return o},createPath(e,t,r,o){e=typeof e=="string"?e:l.getPath(e);let a=t.split("/").reverse();for(;a.length;){let A=a.pop();if(A){var s=Ie.join2(e,A);try{l.mkdir(s)}catch(c){}e=s}}return s},createFile(e,t,r,o,a){let s=Ie.join2(typeof e=="string"?e:l.getPath(e),t),A=l.getMode(o,a);return l.create(s,A)},createDataFile(e,t,r,o,a,s){let A=t?Ie.join2(typeof e=="string"?e:l.getPath(e),t):e,c=l.getMode(o,a),u=l.create(A,c);if(r){if(typeof r=="string"){let h=new Array(r.length);for(let I=0,m=r.length;I<m;++I)h[I]=r.charCodeAt(I);r=h}l.chmod(u,c|146);let d=l.open(u,577);l.write(d,r,0,r.length,0,s),l.close(d),l.chmod(u,c)}return u},createDevice(e,t,r,o){let a=Ie.join2(typeof e=="string"?e:l.getPath(e),t),s=l.getMode(!!r,!!o);l.createDevice.major||(l.createDevice.major=64);let A=l.makedev(l.createDevice.major++,0);return l.registerDevice(A,{open(c){c.seekable=!1},close(c){o&&o.buffer&&o.buffer.length&&o(10)},read(c,u,d,h,I){let m=0;for(let v=0;v<h;v++){var y;try{y=r()}catch(U){throw new l.ErrnoError(29)}if(y===void 0&&m===0)throw new l.ErrnoError(6);if(y==null)break;m++,u[d+v]=y}return m&&(c.node.timestamp=Date.now()),m},write(c,u,d,h,I){for(var m=0;m<h;m++)try{o(u[d+m])}catch(y){throw new l.ErrnoError(29)}return h&&(c.node.timestamp=Date.now()),m}}),l.mkdev(a,s,A)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(Rr)try{e.contents=yi(Rr(e.url),!0),e.usedBytes=e.contents.length}catch(t){throw new l.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile(e,t,r,o,a){function s(){this.lengthKnown=!1,this.chunks=[]}if(s.prototype.get=function(I){if(I>this.length-1||I<0)return;let m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]},s.prototype.setDataGetter=function(I){this.getter=I},s.prototype.cacheLength=function(){let I=new XMLHttpRequest;if(I.open("HEAD",r,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error(`Couldn't load ${r}. Status: ${I.status}`);let m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);let R=function(k,$){if(k>$)throw new Error(`invalid range (${k}, ${$}) or no bytes requested!`);if($>m-1)throw new Error(`only ${m} bytes available! programmer error!`);let Y=new XMLHttpRequest;if(Y.open("GET",r,!1),m!==G&&Y.setRequestHeader("Range",`bytes=${k}-${$}`),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error(`Couldn't load ${r}. Status: ${Y.status}`);return Y.response!==void 0?new Uint8Array(Y.response||[]):yi(Y.responseText||"",!0)},D=this;D.setDataGetter(k=>{let $=k*G,Y=(k+1)*G-1;if(Y=Math.min(Y,m-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(U||!m)&&(G=m=1,m=this.getter(0).length,G=m,Re("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!Ve)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";let h=new s;Object.defineProperties(h,{length:{get(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:h}}else var A={isDevice:!1,url:r};let c=l.createFile(e,t,A,o,a);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get(){return this.contents.length}}});let u={};return Object.keys(c.stream_ops).forEach(h=>{let I=c.stream_ops[h];u[h]=function(){return l.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,U){l.forceLoadFile(c);let{contents:G}=I.node;if(U>=G.length)return 0;let R=Math.min(G.length-U,v);if(z(R>=0),G.slice)for(var D=0;D<R;D++)m[y+D]=G[U+D];else for(var D=0;D<R;D++)m[y+D]=G.get(U+D);return R},c.stream_ops=u,c},createPreloadedFile(e,t,r,o,a,s,A,c,u,d){Q.init();let h=t?Pe.resolve(Ie.join2(e,t)):e,I=wr(`cp ${h}`);function m(y){function v(G){d&&d(),c||l.createDataFile(e,t,G,o,a,u),s&&s(),ir(I)}let U=!1;n.preloadPlugins.forEach(G=>{U||G.canHandle(h)&&(G.handle(y,h,v,()=>{A&&A(),ir(I)}),U=!0)}),U||v(y)}E(I),typeof r=="string"?Li(r,y=>{m(y)},A):m(r)},indexedDB(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME(){return`EM_FS_${window.location.pathname}`},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=function(){Re("creating db"),a.result.createObjectStore(l.DB_STORE_NAME)},a.onsuccess=function(){let c=a.result.transaction([l.DB_STORE_NAME],"readwrite"),u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.put(l.analyzePath(y).object.contents,y);v.onsuccess=function(){d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},loadFilesFromDB(e,t,r){t=t||function(){},r=r||function(){};let o=l.indexedDB();try{var a=o.open(l.DB_NAME(),l.DB_VERSION)}catch(s){return r(s)}a.onupgradeneeded=r,a.onsuccess=function(){let A=a.result;try{var c=A.transaction([l.DB_STORE_NAME],"readonly")}catch(y){r(y);return}let u=c.objectStore(l.DB_STORE_NAME),d=0,h=0,I=e.length;function m(){h==0?t():r()}e.forEach(y=>{let v=u.get(y);v.onsuccess=function(){l.analyzePath(y).exists&&l.unlink(y),l.createDataFile(Ie.dirname(y),Ie.basename(y),v.result,!0,!0,!0),d++,d+h==I&&m()},v.onerror=function(){h++,d+h==I&&m()}}),c.onerror=r},a.onerror=r},absolutePath(){p("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder(){p("FS.createFolder has been removed; use FS.mkdir instead")},createLink(){p("FS.createLink has been removed; use FS.symlink instead")},joinPath(){p("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc(){p("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath(){p("FS.standardizePath has been removed; use PATH.normalize instead")}},Me={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt(e,t,r){if(t[0]==="/")return t;let o;if(e===-100)o=l.cwd();else{let a=l.getStream(e);if(!a)throw new l.ErrnoError(8);o=a.path}if(t.length==0){if(!r)throw new l.ErrnoError(44);return o}return Ie.join2(o,t)},doStat(e,t,r){try{var o=e(t)}catch(a){if(a&&a.node&&Ie.normalize(t)!==Ie.normalize(l.getPath(a.node)))return-54;throw a}return b[r>>2]=o.dev,b[r+4>>2]=0,b[r+8>>2]=o.ino,b[r+12>>2]=o.mode,b[r+16>>2]=o.nlink,b[r+20>>2]=o.uid,b[r+24>>2]=o.gid,b[r+28>>2]=o.rdev,b[r+32>>2]=0,Bt=[o.size>>>0,(ye=o.size,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],b[r+40>>2]=Bt[0],b[r+44>>2]=Bt[1],b[r+48>>2]=4096,b[r+52>>2]=o.blocks,b[r+56>>2]=o.atime.getTime()/1e3|0,b[r+60>>2]=0,b[r+64>>2]=o.mtime.getTime()/1e3|0,b[r+68>>2]=0,b[r+72>>2]=o.ctime.getTime()/1e3|0,b[r+76>>2]=0,Bt=[o.ino>>>0,(ye=o.ino,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],b[r+80>>2]=Bt[0],b[r+84>>2]=Bt[1],0},doMsync(e,t,r,o,a){let s=ve.slice(e,e+r);l.msync(t,s,a,r,o)},doMkdir(e,t){return e=Ie.normalize(e),e[e.length-1]==="/"&&(e=e.substr(0,e.length-1)),l.mkdir(e,t,0),0},doMknod(e,t,r){switch(t&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return l.mknod(e,t,r),0},doReadlink(e,t,r){if(r<=0)return-28;let o=l.readlink(e),a=Math.min(r,bt(o)),s=be[t+a];return tr(o,t,r+1),be[t+a]=s,a},doAccess(e,t){if(t&-8)return-28;let r;if(r=l.lookupPath(e,{follow:!0}).node,!r)return-44;let a="";return t&4&&(a+="r"),t&2&&(a+="w"),t&1&&(a+="x"),a&&l.nodePermissions(r,a)?-2:0},doDup(e,t,r){let o=l.getStream(r);return o&&l.close(o),l.open(e,t,0,r,r).fd},doReadv(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.read(e,be,A,c,o);if(u<0)return-1;if(a+=u,u<c)break}return a},doWritev(e,t,r,o){let a=0;for(let s=0;s<r;s++){let A=b[t+s*8>>2],c=b[t+(s*8+4)>>2],u=l.write(e,be,A,c,o);if(u<0)return-1;a+=u}return a},varargs:void 0,get(){return z(Me.varargs!=null),Me.varargs+=4,b[Me.varargs-4>>2]},getStr(e){return Je(e)},getStreamFromFD(e){let t=l.getStream(e);if(!t)throw new l.ErrnoError(8);return t},get64(e,t){return e>=0?z(t===0):z(t===-1),e}};function Hi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 0:{var o=Me.get();if(o<0)return-28;let s;return s=l.open(a.path,a.flags,0,o),s.fd}case 1:case 2:return 0;case 3:return a.flags;case 4:{var o=Me.get();return a.flags|=o,0}case 12:{var o=Me.get();let A=0;return T[o+A>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return _e(28),-1;default:return-28}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function Gi(e,t,r){Me.varargs=r;try{let a=Me.getStreamFromFD(e);switch(t){case 21509:case 21505:return a.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return a.tty?0:-59;case 21519:{if(!a.tty)return-59;var o=Me.get();return b[o>>2]=0,0}case 21520:return a.tty?-28:-59;case 21531:{var o=Me.get();return l.ioctl(a,t,o)}case 21523:return a.tty?0:-59;case 21524:return a.tty?0:-59;default:p(`bad ioctl syscall ${t}`)}}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),-a.errno}}function Yi(e,t,r,o,a,s){s<<=12;let A,c=!1;if((o&16)!==0&&e%65536!==0)return-28;if((o&32)!==0){if(A=ie(t),!A)return-48;c=!0}else{let u=l.getStream(a);if(!u)return-8;let d=l.mmap(u,e,t,s,r,o);A=d.ptr,c=d.allocated}return Me.mappings[A]={malloc:A,len:t,allocated:c,fd:a,prot:r,flags:o,offset:s},A}function Xi(e,t,r,o,a,s){try{return Yi(e,t,r,o,a,s)}catch(A){return(typeof l=="undefined"||!(A instanceof l.ErrnoError))&&p(A),-A.errno}}function Wi(e,t,r){Me.varargs=r;try{let o=Me.getStr(e),a=r?Me.get():0;return l.open(o,t,a).fd}catch(o){return(typeof l=="undefined"||!(o instanceof l.ErrnoError))&&p(o),-o.errno}}function Zn(e,t){try{return e=Me.getStr(e),Me.doStat(l.stat,e,t)}catch(r){return(typeof l=="undefined"||!(r instanceof l.ErrnoError))&&p(r),-r.errno}}let Vi=48,cn=57;function ar(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");let t=e.charCodeAt(0);return t>=Vi&&t<=cn?`_${e}`:e}function sr(e,t){return e=ar(e),new Function("body",`return function ${e}() {
5
5
  "use strict"; return body.apply(this, arguments);
6
6
  };
7
7
  `)(t)}let rt=[],ft=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function zi(){let e=0;for(let t=5;t<ft.length;++t)ft[t]!==void 0&&++e;return e}function $i(){for(let e=5;e<ft.length;++e)if(ft[e]!==void 0)return ft[e];return null}function un(){n.count_emval_handles=zi,n.get_first_emval=$i}function Ar(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{let t=rt.length?rt.pop():ft.length;return ft[t]={refcount:1,value:e},t}}}function Gr(e,t){let r=sr(t,function(o){this.name=t,this.message=o;let{stack:a}=new Error(o);a!==void 0&&(this.stack=`${this.toString()}
@@ -18,7 +18,7 @@ throwBindingError('function ${e} called with ' + arguments.length + ' arguments,
18
18
  `,v.push(`${D}_dtor`),U.push(t[u].destructorFunction))}return d&&(m+=`var ret = retType.fromWireType(rv);
19
19
  return ret;
20
20
  `),m+=`}
21
- `,v.push(m),Mn(Function,v).apply(null,U)}function oi(e,t){let r=[];for(let o=0;o<e;o++)r.push(b[(t>>2)+o]);return r}function $o(e,t,r,o,a,s,A){let c=oi(r,o);t=je(t),s=ut(a,s),X([],[e],u=>{u=u[0];let d=`${u.name}.${t}`;function h(){zr(`Cannot call ${d} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);let I=u.registeredClass.constructor;return I[t]===void 0?(h.argCount=r-1,I[t]=h):(fr(I,t,d),I[t].overloadTable[r-1]=h),X([],c,m=>{let y=[m[0],null].concat(m.slice(1)),v=$r(d,y,null,s,A);return I[t].overloadTable===void 0?(v.argCount=r-1,I[t]=v):I[t].overloadTable[r-1]=v,[]}),[]})}function Ko(e,t,r,o,a,s){z(t>0);let A=oi(t,r);a=ut(o,a),X([],[e],c=>{c=c[0];let u=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[t-1]!==void 0)throw new ae(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[t-1]=function(){zr(`Cannot construct ${c.name} due to unbound types`,A)},X([],A,d=>(d.splice(1,0,null),c.registeredClass.constructor_body[t-1]=$r(u,d,null,a,s),[])),[]})}function ho(e,t,r,o,a,s,A,c){let u=oi(r,o);t=je(t),s=ut(a,s),X([],[e],d=>{d=d[0];let h=`${d.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&d.registeredClass.pureVirtualFunctions.push(t);function I(){zr(`Cannot call ${h} due to unbound types`,u)}let m=d.registeredClass.instancePrototype,y=m[t];return y===void 0||y.overloadTable===void 0&&y.className!==d.name&&y.argCount===r-2?(I.argCount=r-2,I.className=d.name,m[t]=I):(fr(m,t,h),m[t].overloadTable[r-2]=I),X([],u,v=>{let U=$r(h,v,d,s,A);return m[t].overloadTable===void 0?(U.argCount=r-2,m[t]=U):m[t].overloadTable[r-2]=U,[]}),[]})}function Io(e,t,r){return e instanceof Object||Ae(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Ae(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Ae(`cannot call emscripten binding method ${r} on deleted object`),vr(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function mo(e,t,r,o,a,s,A,c,u,d){t=je(t),a=ut(o,a),X([],[e],h=>{h=h[0];let I=`${h.name}.${t}`,m={get(){zr(`Cannot access ${I} due to unbound types`,[r,A])},enumerable:!0,configurable:!0};return u?m.set=function(){zr(`Cannot access ${I} due to unbound types`,[r,A])}:m.set=function(y){Ae(`${I} is a read-only property`)},Object.defineProperty(h.registeredClass.instancePrototype,t,m),X([],u?[r,A]:[r],y=>{let v=y[0],U={get(){let G=Io(this,h,`${I} getter`);return v.fromWireType(a(s,G))},enumerable:!0};if(u){u=ut(c,u);let G=y[1];U.set=function(R){let D=Io(this,h,`${I} setter`),k=[];u(d,D,G.toWireType(k,R)),_(k)}}return Object.defineProperty(h.registeredClass.instancePrototype,t,U),[]}),[]})}function Co(e){e>4&&--ft[e].refcount===0&&(ft[e]=void 0,rt.push(e))}function gn(e,t){t=je(t),Z(e,{name:t,fromWireType(r){let o=ft[r].value;return Co(r),o},toWireType(r,o){return Ar(o)},argPackAdvance:8,readValueFromPointer:g,destructorFunction:null})}function En(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function Jo(e,t){switch(t){case 2:return function(r){return this.fromWireType(ze[r>>2])};case 3:return function(r){return this.fromWireType(Nr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Zo(e,t,r){let o=ee(r);t=je(t),Z(e,{name:t,fromWireType(a){return a},toWireType(a,s){if(typeof s!="number"&&typeof s!="boolean")throw new TypeError(`Cannot convert "${En(s)}" to ${this.name}`);return s},argPackAdvance:8,readValueFromPointer:Jo(t,o),destructorFunction:null})}function qo(e,t,r,o,a,s){let A=oi(t,r);e=je(e),a=ut(o,a),Sn(e,()=>{zr(`Cannot call ${e} due to unbound types`,A)},t-1),X([],A,c=>{let u=[c[0],null].concat(c.slice(1));return po(e,$r(e,u,null,a,s),t-1),[]})}function ea(e,t,r){switch(t){case 0:return r?function(a){return be[a]}:function(a){return ve[a]};case 1:return r?function(a){return T[a>>1]}:function(a){return Oe[a>>1]};case 2:return r?function(a){return b[a>>2]}:function(a){return Qe[a>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function ta(e,t,r,o,a){t=je(t),a===-1&&(a=4294967295);let s=ee(r),A=function(u){return u};if(o===0){let u=32-8*r;A=function(d){return d<<u>>>u}}let c=t.includes("unsigned");Z(e,{name:t,fromWireType:A,toWireType(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError(`Cannot convert "${En(d)}" to ${this.name}`);if(d<o||d>a)throw new TypeError(`Passing a number "${En(d)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${o}, ${a}]!`);return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:ea(t,s,o!==0),destructorFunction:null})}function ra(e,t,r){let a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function s(A){A=A>>2;let c=Qe,u=c[A],d=c[A+1];return new a(Se,d,u)}r=je(r),Z(e,{name:r,fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})}function na(e,t){t=je(t);let r=t==="std::string";Z(e,{name:t,fromWireType(o){let a=Qe[o>>2],s;if(r){let c=o+4;for(var A=0;A<=a;++A){let u=o+4+A;if(A==a||ve[u]==0){let d=u-c,h=Je(c,d);s===void 0?s=h:(s+=String.fromCharCode(0),s+=h),c=u+1}}}else{let c=new Array(a);for(var A=0;A<a;++A)c[A]=String.fromCharCode(ve[o+4+A]);s=c.join("")}return it(o),s},toWireType(o,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));let s,A=typeof a=="string";A||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int8Array||Ae("Cannot pass non-string to std::string"),r&&A?s=function(){return bt(a)}:s=function(){return a.length};let c=s(),u=tn(4+c+1);if(Qe[u>>2]=c,r&&A)tr(a,u+4,c+1);else if(A)for(var d=0;d<c;++d){let h=a.charCodeAt(d);h>255&&(it(u),Ae("String has UTF-16 code units that do not fit in 8 bits")),ve[u+4+d]=h}else for(var d=0;d<c;++d)ve[u+4+d]=a[d];return o!==null&&o.push(it,u),u},argPackAdvance:8,readValueFromPointer:g,destructorFunction(o){it(o)}})}function ia(e,t,r){r=je(r);let o,a,s,A,c;t===2?(o=Ti,a=mn,A=Yn,s=function(){return Oe},c=1):t===4&&(o=vi,a=Cn,A=Fr,s=function(){return Qe},c=2),Z(e,{name:r,fromWireType(u){let d=Qe[u>>2],h=s(),I,m=u+4;for(let y=0;y<=d;++y){let v=u+4+y*t;if(y==d||h[v>>c]==0){let U=v-m,G=o(m,U);I===void 0?I=G:(I+=String.fromCharCode(0),I+=G),m=v+t}}return it(u),I},toWireType(u,d){typeof d!="string"&&Ae(`Cannot pass non-string to C++ string type ${r}`);let h=A(d),I=tn(4+h+t);return Qe[I>>2]=h>>c,a(d,I+4,h+t),u!==null&&u.push(it,I),I},argPackAdvance:8,readValueFromPointer:g,destructorFunction(u){it(u)}})}function oa(e,t,r,o,a,s){lr[e]={name:je(t),rawConstructor:ut(r,o),rawDestructor:ut(a,s),fields:[]}}function aa(e,t,r,o,a,s,A,c,u,d){lr[e].fields.push({fieldName:je(t),getterReturnType:r,getter:ut(o,a),getterContext:s,setterArgumentType:A,setter:ut(c,u),setterContext:d})}function sa(e,t){t=je(t),Z(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,o){}})}let Aa={};function Zi(e){let t=Aa[e];return t===void 0?je(e):t}let qi=[];function ca(e,t,r,o){e=qi[e],t=Vt(t),r=Zi(r),e(t,r,null,o)}function ua(e){let t=qi.length;return qi.push(e),t}function la(e,t){let r=new Array(e);for(let o=0;o<e;++o)r[o]=gt(b[(t>>2)+o],`parameter ${o}`);return r}function da(e,t){let r=la(e,t),o=r[0],a=`${o.name}_$${r.slice(1).map(y=>y.name).join("_")}$`,s=["retType"],A=[o],c="";for(var u=0;u<e-1;++u)c+=`${u!==0?", ":""}arg${u}`,s.push(`argType${u}`),A.push(r[1+u]);let h=`return function ${ar(`methodCaller_${a}`)}(handle, name, destructors, args) {
21
+ `,v.push(m),Mn(Function,v).apply(null,U)}function oi(e,t){let r=[];for(let o=0;o<e;o++)r.push(b[(t>>2)+o]);return r}function $o(e,t,r,o,a,s,A){let c=oi(r,o);t=je(t),s=ut(a,s),X([],[e],u=>{u=u[0];let d=`${u.name}.${t}`;function h(){zr(`Cannot call ${d} due to unbound types`,c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]);let I=u.registeredClass.constructor;return I[t]===void 0?(h.argCount=r-1,I[t]=h):(fr(I,t,d),I[t].overloadTable[r-1]=h),X([],c,m=>{let y=[m[0],null].concat(m.slice(1)),v=$r(d,y,null,s,A);return I[t].overloadTable===void 0?(v.argCount=r-1,I[t]=v):I[t].overloadTable[r-1]=v,[]}),[]})}function Ko(e,t,r,o,a,s){z(t>0);let A=oi(t,r);a=ut(o,a),X([],[e],c=>{c=c[0];let u=`constructor ${c.name}`;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[t-1]!==void 0)throw new ae(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return c.registeredClass.constructor_body[t-1]=function(){zr(`Cannot construct ${c.name} due to unbound types`,A)},X([],A,d=>(d.splice(1,0,null),c.registeredClass.constructor_body[t-1]=$r(u,d,null,a,s),[])),[]})}function ho(e,t,r,o,a,s,A,c){let u=oi(r,o);t=je(t),s=ut(a,s),X([],[e],d=>{d=d[0];let h=`${d.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&d.registeredClass.pureVirtualFunctions.push(t);function I(){zr(`Cannot call ${h} due to unbound types`,u)}let m=d.registeredClass.instancePrototype,y=m[t];return y===void 0||y.overloadTable===void 0&&y.className!==d.name&&y.argCount===r-2?(I.argCount=r-2,I.className=d.name,m[t]=I):(fr(m,t,h),m[t].overloadTable[r-2]=I),X([],u,v=>{let U=$r(h,v,d,s,A);return m[t].overloadTable===void 0?(U.argCount=r-2,m[t]=U):m[t].overloadTable[r-2]=U,[]}),[]})}function Io(e,t,r){return e instanceof Object||Ae(`${r} with invalid "this": ${e}`),e instanceof t.registeredClass.constructor||Ae(`${r} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Ae(`cannot call emscripten binding method ${r} on deleted object`),vr(e.$$.ptr,e.$$.ptrType.registeredClass,t.registeredClass)}function mo(e,t,r,o,a,s,A,c,u,d){t=je(t),a=ut(o,a),X([],[e],h=>{h=h[0];let I=`${h.name}.${t}`,m={get(){zr(`Cannot access ${I} due to unbound types`,[r,A])},enumerable:!0,configurable:!0};return u?m.set=function(){zr(`Cannot access ${I} due to unbound types`,[r,A])}:m.set=function(y){Ae(`${I} is a read-only property`)},Object.defineProperty(h.registeredClass.instancePrototype,t,m),X([],u?[r,A]:[r],y=>{let v=y[0],U={get(){let G=Io(this,h,`${I} getter`);return v.fromWireType(a(s,G))},enumerable:!0};if(u){u=ut(c,u);let G=y[1];U.set=function(R){let D=Io(this,h,`${I} setter`),k=[];u(d,D,G.toWireType(k,R)),_(k)}}return Object.defineProperty(h.registeredClass.instancePrototype,t,U),[]}),[]})}function Co(e){e>4&&--ft[e].refcount===0&&(ft[e]=void 0,rt.push(e))}function gn(e,t){t=je(t),Z(e,{name:t,fromWireType(r){let o=ft[r].value;return Co(r),o},toWireType(r,o){return Ar(o)},argPackAdvance:8,readValueFromPointer:g,destructorFunction:null})}function En(e){if(e===null)return"null";let t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():`${e}`}function Jo(e,t){switch(t){case 2:return function(r){return this.fromWireType(ze[r>>2])};case 3:return function(r){return this.fromWireType(Nr[r>>3])};default:throw new TypeError(`Unknown float type: ${e}`)}}function Zo(e,t,r){let o=ee(r);t=je(t),Z(e,{name:t,fromWireType(a){return a},toWireType(a,s){if(typeof s!="number"&&typeof s!="boolean")throw new TypeError(`Cannot convert "${En(s)}" to ${this.name}`);return s},argPackAdvance:8,readValueFromPointer:Jo(t,o),destructorFunction:null})}function qo(e,t,r,o,a,s){let A=oi(t,r);e=je(e),a=ut(o,a),Sn(e,()=>{zr(`Cannot call ${e} due to unbound types`,A)},t-1),X([],A,c=>{let u=[c[0],null].concat(c.slice(1));return po(e,$r(e,u,null,a,s),t-1),[]})}function ea(e,t,r){switch(t){case 0:return r?function(a){return be[a]}:function(a){return ve[a]};case 1:return r?function(a){return T[a>>1]}:function(a){return Oe[a>>1]};case 2:return r?function(a){return b[a>>2]}:function(a){return Qe[a>>2]};default:throw new TypeError(`Unknown integer type: ${e}`)}}function ta(e,t,r,o,a){t=je(t),a===-1&&(a=4294967295);let s=ee(r),A=function(u){return u};if(o===0){let u=32-8*r;A=function(d){return d<<u>>>u}}let c=t.includes("unsigned");Z(e,{name:t,fromWireType:A,toWireType(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError(`Cannot convert "${En(d)}" to ${this.name}`);if(d<o||d>a)throw new TypeError(`Passing a number "${En(d)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${o}, ${a}]!`);return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:ea(t,s,o!==0),destructorFunction:null})}function ra(e,t,r){let a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function s(A){A=A>>2;let c=Qe,u=c[A],d=c[A+1];return new a(Se,d,u)}r=je(r),Z(e,{name:r,fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})}function na(e,t){t=je(t);let r=t==="std::string";Z(e,{name:t,fromWireType(o){let a=Qe[o>>2],s;if(r){let c=o+4;for(var A=0;A<=a;++A){let u=o+4+A;if(A==a||ve[u]==0){let d=u-c,h=Je(c,d);s===void 0?s=h:(s+="\0",s+=h),c=u+1}}}else{let c=new Array(a);for(var A=0;A<a;++A)c[A]=String.fromCharCode(ve[o+4+A]);s=c.join("")}return it(o),s},toWireType(o,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));let s,A=typeof a=="string";A||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int8Array||Ae("Cannot pass non-string to std::string"),r&&A?s=function(){return bt(a)}:s=function(){return a.length};let c=s(),u=tn(4+c+1);if(Qe[u>>2]=c,r&&A)tr(a,u+4,c+1);else if(A)for(var d=0;d<c;++d){let h=a.charCodeAt(d);h>255&&(it(u),Ae("String has UTF-16 code units that do not fit in 8 bits")),ve[u+4+d]=h}else for(var d=0;d<c;++d)ve[u+4+d]=a[d];return o!==null&&o.push(it,u),u},argPackAdvance:8,readValueFromPointer:g,destructorFunction(o){it(o)}})}function ia(e,t,r){r=je(r);let o,a,s,A,c;t===2?(o=Ti,a=mn,A=Yn,s=function(){return Oe},c=1):t===4&&(o=vi,a=Cn,A=Fr,s=function(){return Qe},c=2),Z(e,{name:r,fromWireType(u){let d=Qe[u>>2],h=s(),I,m=u+4;for(let y=0;y<=d;++y){let v=u+4+y*t;if(y==d||h[v>>c]==0){let U=v-m,G=o(m,U);I===void 0?I=G:(I+="\0",I+=G),m=v+t}}return it(u),I},toWireType(u,d){typeof d!="string"&&Ae(`Cannot pass non-string to C++ string type ${r}`);let h=A(d),I=tn(4+h+t);return Qe[I>>2]=h>>c,a(d,I+4,h+t),u!==null&&u.push(it,I),I},argPackAdvance:8,readValueFromPointer:g,destructorFunction(u){it(u)}})}function oa(e,t,r,o,a,s){lr[e]={name:je(t),rawConstructor:ut(r,o),rawDestructor:ut(a,s),fields:[]}}function aa(e,t,r,o,a,s,A,c,u,d){lr[e].fields.push({fieldName:je(t),getterReturnType:r,getter:ut(o,a),getterContext:s,setterArgumentType:A,setter:ut(c,u),setterContext:d})}function sa(e,t){t=je(t),Z(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType(){},toWireType(r,o){}})}let Aa={};function Zi(e){let t=Aa[e];return t===void 0?je(e):t}let qi=[];function ca(e,t,r,o){e=qi[e],t=Vt(t),r=Zi(r),e(t,r,null,o)}function ua(e){let t=qi.length;return qi.push(e),t}function la(e,t){let r=new Array(e);for(let o=0;o<e;++o)r[o]=gt(b[(t>>2)+o],`parameter ${o}`);return r}function da(e,t){let r=la(e,t),o=r[0],a=`${o.name}_$${r.slice(1).map(y=>y.name).join("_")}$`,s=["retType"],A=[o],c="";for(var u=0;u<e-1;++u)c+=`${u!==0?", ":""}arg${u}`,s.push(`argType${u}`),A.push(r[1+u]);let h=`return function ${ar(`methodCaller_${a}`)}(handle, name, destructors, args) {
22
22
  `,I=0;for(var u=0;u<e-1;++u)h+=` var arg${u} = argType${u}.readValueFromPointer(args${I?`+${I}`:""});
23
23
  `,I+=r[u+1].argPackAdvance;h+=` var rv = handle[name](${c});
24
24
  `;for(var u=0;u<e-1;++u)r[u+1].deleteObject&&(h+=` argType${u}.deleteObject(arg${u});
@@ -27,14 +27,14 @@ return ret;
27
27
  `,s.push(h);let m=Mn(Function,s).apply(null,A);return ua(m)}function fa(e){e>4&&(ft[e].refcount+=1)}function ga(e,t){e=gt(e,"_emval_take_value");let r=e.readValueFromPointer(t);return Ar(r)}function Ea(){p()}let pa=!0;function _a(e,t){let r;if(e===0)r=Date.now();else if((e===1||e===4)&&pa)r=Or();else return _e(28),-1;return b[t>>2]=r/1e3|0,b[t+4>>2]=r%1e3*1e3*1e3|0,0}function ha(e,t){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function ai(e,t){p("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}let si=[];function Ia(e,t){z(Array.isArray(si)),z(t%16==0),si.length=0;let r;for(t>>=2;r=ve[e++];){z(r===100||r===102||r===105);let o=r<105;o&&t&1&&t++,si.push(o?Nr[t++>>1]:b[t]),++t}return si}function ma(e,t,r){let o=Ia(t,r);return jr.hasOwnProperty(e)||p(`No EM_ASM constant found at address ${e}`),jr[e].apply(null,o)}function Ca(){return 2147483648}function ya(e,t,r){ve.copyWithin(e,t,t+r)}function wa(e){p("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function Da(e){try{return Pt.grow(e-Se.byteLength+65535>>>16),on(Pt.buffer),1}catch(t){pe(`emscripten_realloc_buffer: Attempted to grow heap from ${Se.byteLength} bytes to ${e} bytes, but got error: ${t}`)}}function Ai(e){let t=ve.length;e=e>>>0,z(e>t);let r=2147483648;if(e>r)return pe(`Cannot enlarge memory, asked to go up to ${e} bytes, but the limit is ${r} bytes!`),!1;for(let a=1;a<=4;a*=2){let s=t*(1+.2/a);s=Math.min(s,e+100663296);var o=Math.min(r,xe(Math.max(e,s),65536));if(Da(o))return!0}return pe(`Failed to grow the heap from ${t} bytes to ${o} bytes, not enough memory!`),!1}function Er(e){p("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}let Kr={};function yo(e){e.forEach(t=>{let r=Er(t);r&&(Kr[r]=t)})}function ba(){let e=new Error().stack.split(`
28
28
  `);return e[0]=="Error"&&e.shift(),yo(e),Kr.last_addr=Er(e[2]),Kr.last_stack=e,Kr.last_addr}function Oa(e,t,r){let o;Kr.last_addr==e?o=Kr.last_stack:(o=new Error().stack.split(`
29
29
  `),o[0]=="Error"&&o.shift(),yo(o));let a=2;for(;o[a]&&Er(o[a])!=e;)++a;for(var s=0;s<r&&o[s+a];++s)b[t+s*4>>2]=Er(o[s+a]);return s}function Ba(e){let t=Or();for(;Or()-t<e;);}function Ta(e){let t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(r,o){t.vertexAttribDivisorANGLE(r,o)},e.drawArraysInstanced=function(r,o,a,s){t.drawArraysInstancedANGLE(r,o,a,s)},e.drawElementsInstanced=function(r,o,a,s,A){t.drawElementsInstancedANGLE(r,o,a,s,A)},1}function va(e){let t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(r){t.deleteVertexArrayOES(r)},e.bindVertexArray=function(r){t.bindVertexArrayOES(r)},e.isVertexArray=function(r){return t.isVertexArrayOES(r)},1}function Qa(e){let t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(r,o){t.drawBuffersWEBGL(r,o)},1}function Pa(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Ra(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function O(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var w={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(t){w.lastError||(w.lastError=t)},getNewId(e){let t=w.counter++;for(let r=e.length;r<t;r++)e[r]=null;return t},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup(e){return 32-Math.clz32(e===0?0:e-1)},generateTempBuffers(e,t){let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=r+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=r+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=r+1;for(var o=0;o<=r;++o){t.tempIndexBuffers[o]=null,t.tempVertexBufferCounters1[o]=t.tempVertexBufferCounters2[o]=0;let a=w.numTempVertexBuffersPerSize;t.tempVertexBuffers1[o]=[],t.tempVertexBuffers2[o]=[];let s=t.tempVertexBuffers1[o],A=t.tempVertexBuffers2[o];s.length=A.length=a;for(let c=0;c<a;++c)s[c]=A[c]=null}if(e){t.tempQuadIndexBuffer=S.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);let a=w.MAX_TEMP_BUFFER_SIZE>>1,s=new Uint16Array(a);var o=0;let c=0;for(;s[o++]=c,!(o>=a||(s[o++]=c+1,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c,o>=a)||(s[o++]=c+2,o>=a)||(s[o++]=c+3,o>=a));)c+=4;t.GLctx.bufferData(34963,s,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempVertexBuffers1[r],a=w.currentContext.tempVertexBufferCounters1[r];w.currentContext.tempVertexBufferCounters1[r]=w.currentContext.tempVertexBufferCounters1[r]+1&w.numTempVertexBuffersPerSize-1;let s=o[a];if(s)return s;let A=S.getParameter(34964);return o[a]=S.createBuffer(),S.bindBuffer(34962,o[a]),S.bufferData(34962,1<<r,35048),S.bindBuffer(34962,A),o[a]},getTempIndexBuffer:function(t){let r=w.log2ceilLookup(t),o=w.currentContext.tempIndexBuffers[r];if(o)return o;let a=S.getParameter(34965);return w.currentContext.tempIndexBuffers[r]=S.createBuffer(),S.bindBuffer(34963,w.currentContext.tempIndexBuffers[r]),S.bufferData(34963,1<<r,35048),S.bindBuffer(34963,a),w.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:function(){if(!w.currentContext)return;let t=w.currentContext.tempVertexBuffers1;w.currentContext.tempVertexBuffers1=w.currentContext.tempVertexBuffers2,w.currentContext.tempVertexBuffers2=t,t=w.currentContext.tempVertexBufferCounters1,w.currentContext.tempVertexBufferCounters1=w.currentContext.tempVertexBufferCounters2,w.currentContext.tempVertexBufferCounters2=t;let r=w.log2ceilLookup(w.MAX_TEMP_BUFFER_SIZE);for(let o=0;o<=r;++o)w.currentContext.tempVertexBufferCounters1[o]=0},getSource(e,t,r,o){let a="";for(let s=0;s<t;++s){let A=o?b[o+s*4>>2]:-1;a+=Je(b[r+s*4>>2],A<0?void 0:A)}return a},calcBufLength:function(t,r,o,a){if(o>0)return a*o;let s=w.byteSizeByType[r-w.byteSizeByTypeRoot];return t*s*a},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(t){w.resetBufferBinding=!1;for(let r=0;r<w.currentContext.maxVertexAttribs;++r){let o=w.currentContext.clientBuffers[r];if(!o.clientside||!o.enabled)continue;w.resetBufferBinding=!0;let a=w.calcBufLength(o.size,o.type,o.stride,t),s=w.getTempVertexBuffer(a);S.bindBuffer(34962,s),S.bufferSubData(34962,0,ve.subarray(o.ptr,o.ptr+a)),o.vertexAttribPointerAdaptor.call(S,r,o.size,o.type,o.normalized,o.stride,0)}},postDrawHandleClientVertexAttribBindings:function(){w.resetBufferBinding&&S.bindBuffer(34962,w.buffers[S.currentArrayBufferBinding])},createContext(e,t){t.renderViaOffscreenBackBuffer&&(t.preserveDrawingBuffer=!0);let r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?w.registerContext(r,t):0},enableOffscreenFramebufferAttributes(e){e.renderViaOffscreenBackBuffer=!0,e.preserveDrawingBuffer=!0},createOffscreenFramebuffer(e){let t=e.GLctx,r=t.createFramebuffer();if(t.bindFramebuffer(36160,r),e.defaultFbo=r,e.defaultFboForbidBlitFramebuffer=!1,t.getContextAttributes().antialias)e.defaultFboForbidBlitFramebuffer=!0;else{let I=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(I!=null){let m=I[1];e.defaultFboForbidBlitFramebuffer=m<67}}e.defaultColorTarget=t.createTexture(),e.defaultDepthTarget=t.createRenderbuffer(),w.resizeOffscreenFramebuffer(e),t.bindTexture(3553,e.defaultColorTarget),t.texParameteri(3553,10241,9728),t.texParameteri(3553,10240,9728),t.texParameteri(3553,10242,33071),t.texParameteri(3553,10243,33071),t.texImage2D(3553,0,6408,t.canvas.width,t.canvas.height,0,6408,5121,null),t.framebufferTexture2D(36160,36064,3553,e.defaultColorTarget,0),t.bindTexture(3553,null);let o=t.createRenderbuffer();t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.canvas.width,t.canvas.height),t.framebufferRenderbuffer(36160,36096,36161,e.defaultDepthTarget),t.bindRenderbuffer(36161,null);let a=[-1,-1,-1,1,1,-1,1,1],s=t.createBuffer();t.bindBuffer(34962,s),t.bufferData(34962,new Float32Array(a),35044),t.bindBuffer(34962,null),e.blitVB=s;let A="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",c=t.createShader(35633);t.shaderSource(c,A),t.compileShader(c);let u="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",d=t.createShader(35632);t.shaderSource(d,u),t.compileShader(d);let h=t.createProgram();t.attachShader(h,c),t.attachShader(h,d),t.linkProgram(h),e.blitProgram=h,e.blitPosLoc=t.getAttribLocation(h,"pos"),t.useProgram(h),t.uniform1i(t.getUniformLocation(h,"sampler"),0),t.useProgram(null),e.defaultVao=void 0,t.createVertexArray&&(e.defaultVao=t.createVertexArray(),t.bindVertexArray(e.defaultVao),t.enableVertexAttribArray(e.blitPosLoc),t.bindVertexArray(null))},resizeOffscreenFramebuffer(e){let t=e.GLctx;if(e.defaultColorTarget){let r=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget),t.texImage2D(3553,0,6408,t.drawingBufferWidth,t.drawingBufferHeight,0,6408,5121,null),t.bindTexture(3553,r)}if(e.defaultDepthTarget){let r=t.getParameter(36007);t.bindRenderbuffer(36161,e.defaultDepthTarget),t.renderbufferStorage(36161,33189,t.drawingBufferWidth,t.drawingBufferHeight),t.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer(e){let t=e.GLctx,r=t.getParameter(3089);r&&t.disable(3089);let o=t.getParameter(36006);if(t.blitFramebuffer&&!e.defaultFboForbidBlitFramebuffer)t.bindFramebuffer(36008,e.defaultFbo),t.bindFramebuffer(36009,null),t.blitFramebuffer(0,0,t.canvas.width,t.canvas.height,0,0,t.canvas.width,t.canvas.height,16384,9728);else{let U=function(){t.vertexAttribPointer(e.blitPosLoc,2,5126,!1,0,0),t.drawArrays(5,0,4)};var A=U;t.bindFramebuffer(36160,null);let c=t.getParameter(35725);t.useProgram(e.blitProgram);let u=t.getParameter(34964);t.bindBuffer(34962,e.blitVB);let d=t.getParameter(34016);t.activeTexture(33984);let h=t.getParameter(32873);t.bindTexture(3553,e.defaultColorTarget);let I=t.getParameter(3042);I&&t.disable(3042);let m=t.getParameter(2884);m&&t.disable(2884);let y=t.getParameter(2929);y&&t.disable(2929);let v=t.getParameter(2960);if(v&&t.disable(2960),e.defaultVao){let G=t.getParameter(34229);t.bindVertexArray(e.defaultVao),U(),t.bindVertexArray(G)}else{let G={buffer:t.getVertexAttrib(e.blitPosLoc,34975),size:t.getVertexAttrib(e.blitPosLoc,34339),stride:t.getVertexAttrib(e.blitPosLoc,34340),type:t.getVertexAttrib(e.blitPosLoc,34341),normalized:t.getVertexAttrib(e.blitPosLoc,34922),pointer:t.getVertexAttribOffset(e.blitPosLoc,34373)},R=t.getParameter(34921),D=[];for(var a=0;a<R;++a){var s=t.getVertexAttrib(a,34338);let k=a==e.blitPosLoc;s&&!k&&t.disableVertexAttribArray(a),!s&&k&&t.enableVertexAttribArray(a),D[a]=s}U();for(var a=0;a<R;++a){var s=D[a];let Y=a==e.blitPosLoc;s&&!Y&&t.enableVertexAttribArray(a),!s&&Y&&t.disableVertexAttribArray(a)}t.bindBuffer(34962,G.buffer),t.vertexAttribPointer(e.blitPosLoc,G.size,G.type,G.normalized,G.stride,G.offset)}v&&t.enable(2960),y&&t.enable(2929),m&&t.enable(2884),I&&t.enable(3042),t.bindTexture(3553,h),t.activeTexture(d),t.bindBuffer(34962,u),t.useProgram(c)}t.bindFramebuffer(36160,o),r&&t.enable(3089)},registerContext(e,t){let r=w.getNewId(w.contexts),o={handle:r,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=o),w.contexts[r]=o,(typeof t.enableExtensionsByDefault=="undefined"||t.enableExtensionsByDefault)&&w.initExtensions(o),o.maxVertexAttribs=o.GLctx.getParameter(34921),o.clientBuffers=[];for(let a=0;a<o.maxVertexAttribs;a++)o.clientBuffers[a]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return w.generateTempBuffers(!1,o),t.renderViaOffscreenBackBuffer&&w.createOffscreenFramebuffer(o),r},makeContextCurrent(e){return w.currentContext=w.contexts[e],n.ctx=S=w.currentContext&&w.currentContext.GLctx,!(e&&!S)},getContext(e){return w.contexts[e]},deleteContext(e){w.currentContext===w.contexts[e]&&(w.currentContext=null),typeof fe=="object"&&fe.removeAllHandlersOnTarget(w.contexts[e].GLctx.canvas),w.contexts[e]&&w.contexts[e].GLctx.canvas&&(w.contexts[e].GLctx.canvas.GLctxObject=void 0),w.contexts[e]=null},initExtensions(e){if(e||(e=w.currentContext),e.initExtensionsDone)return;e.initExtensionsDone=!0;let{GLctx:t}=e;Ta(t),va(t),Qa(t),Pa(t),Ra(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),O(t),(t.getSupportedExtensions()||[]).forEach(o=>{!o.includes("lose_context")&&!o.includes("debug")&&t.getExtension(o)})}},fe={inEventHandler:0,removeAllEventListeners(){for(let e=fe.eventHandlers.length-1;e>=0;--e)fe._removeHandler(e);fe.eventHandlers=[],fe.deferredCalls=[]},registerRemoveEventListeners(){fe.removeEventListenersRegistered||(de.push(fe.removeAllEventListeners),fe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall(e,t,r){function o(a,s){if(a.length!=s.length)return!1;for(let A in a)if(a[A]!=s[A])return!1;return!0}for(let a in fe.deferredCalls){let s=fe.deferredCalls[a];if(s.targetFunction==e&&o(s.argsList,r))return}fe.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),fe.deferredCalls.sort((a,s)=>a.precedence<s.precedence)},removeDeferredCalls(e){for(let t=0;t<fe.deferredCalls.length;++t)fe.deferredCalls[t].targetFunction==e&&(fe.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests(){return fe.inEventHandler&&fe.currentEventHandler.allowsDeferredCalls},runDeferredCalls(){if(fe.canPerformEventHandlerRequests())for(let e=0;e<fe.deferredCalls.length;++e){let t=fe.deferredCalls[e];fe.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget(e,t){for(let r=0;r<fe.eventHandlers.length;++r)fe.eventHandlers[r].target==e&&(!t||t==fe.eventHandlers[r].eventTypeString)&&fe._removeHandler(r--)},_removeHandler(e){let t=fe.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),fe.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){let t=function(o){++fe.inEventHandler,fe.currentEventHandler=e,fe.runDeferredCalls(),e.handlerFunc(o),fe.runDeferredCalls(),--fe.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),fe.eventHandlers.push(e),fe.registerRemoveEventListeners();else for(let r=0;r<fe.eventHandlers.length;++r)fe.eventHandlers[r].target==e.target&&fe.eventHandlers[r].eventTypeString==e.eventTypeString&&fe._removeHandler(r--)},getNodeNameForTarget(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};let wo=["default","low-power","high-performance"],Sa=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function eo(e){tt("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!e||(typeof e=="number"&&(e=Sa[e]||Je(e)),e==="#window")?window:e==="#document"?document:e==="#screen"?screen:e==="#canvas"?n.canvas:typeof e=="string"?document.getElementById(e):e}catch(t){return null}}function to(e){return typeof e=="number"&&(e=Je(e)),!e||e==="#canvas"?typeof w!="undefined"&&w.offscreenCanvases.canvas?w.offscreenCanvases.canvas:n.canvas:typeof w!="undefined"&&w.offscreenCanvases[e]?w.offscreenCanvases[e]:eo(e)}function Ma(e,t){z(t);let r=t>>2,o=b[r+6],a={alpha:!!b[r+0],depth:!!b[r+1],stencil:!!b[r+2],antialias:!!b[r+3],premultipliedAlpha:!!b[r+4],preserveDrawingBuffer:!!b[r+5],powerPreference:wo[o],failIfMajorPerformanceCaveat:!!b[r+7],majorVersion:b[r+8],minorVersion:b[r+9],enableExtensionsByDefault:b[r+10],explicitSwapControl:b[r+11],proxyContextToMainThread:b[r+12],renderViaOffscreenBackBuffer:b[r+13]},s=to(e);if(!s)return 0;if(s.offscreenCanvas&&(s=s.offscreenCanvas),a.explicitSwapControl&&(s.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&s instanceof OffscreenCanvas||a.renderViaOffscreenBackBuffer||(a.renderViaOffscreenBackBuffer=!0),s.transferControlToOffscreen)){if(!s.controlTransferredOffscreen)w.offscreenCanvases[s.id]={canvas:s.transferControlToOffscreen(),canvasSharedPtr:tn(12),id:s.id},s.controlTransferredOffscreen=!0;else if(!w.offscreenCanvases[s.id])return 0;s=w.offscreenCanvases[s.id]}return w.createContext(s,a)}function Fa(e,t){return Ma(e,t)}function Do(){return w.currentContext?w.currentContext.handle:0}function ro(){return Do()}n._emscripten_webgl_get_current_context=ro;function bo(e){return w.makeContextCurrent(e)?0:-5}n._emscripten_webgl_make_context_current=bo;function ka(e){w.currentContext==e&&(w.currentContext=0),w.deleteContext(e)}function Na(e,t){if(!t)return-5;if(e=w.contexts[e],!e)return-3;let r=e.GLctx;if(!r)return-3;r=r.getContextAttributes(),b[t>>2]=r.alpha,b[t+4>>2]=r.depth,b[t+8>>2]=r.stencil,b[t+12>>2]=r.antialias,b[t+16>>2]=r.premultipliedAlpha,b[t+20>>2]=r.preserveDrawingBuffer;let o=r.powerPreference&&wo.indexOf(r.powerPreference);return b[t+24>>2]=o,b[t+28>>2]=r.failIfMajorPerformanceCaveat,b[t+32>>2]=e.version,b[t+36>>2]=0,b[t+40>>2]=e.attributes.enableExtensionsByDefault,0}function no(e){z(e);let t=e>>2;for(let r=0;r<14;++r)b[t+r]=0;b[t+0]=b[t+1]=b[t+3]=b[t+4]=b[t+8]=b[t+10]=1}let io={};function Fn(){return ht||"./this.program"}function kn(){if(!kn.strings){let r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:`${(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")}.UTF-8`,_:Fn()};for(var e in io)io[e]===void 0?delete r[e]:r[e]=io[e];let o=[];for(var e in r)o.push(`${e}=${r[e]}`);kn.strings=o}return kn.strings}function Ua(e,t){let r=0;return kn().forEach((o,a)=>{let s=t+r;b[e+a*4>>2]=s,kr(o,s),r+=o.length+1}),0}function xa(e,t){let r=kn();b[e>>2]=r.length;let o=0;return r.forEach(a=>{o+=a.length+1}),b[t>>2]=o,0}function ja(e){try{let t=Me.getStreamFromFD(e);return l.close(t),0}catch(t){return(typeof l=="undefined"||!(t instanceof l.ErrnoError))&&p(t),t.errno}}function La(e,t,r,o){try{let a=Me.getStreamFromFD(e),s=Me.doReadv(a,t,r);return b[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),a.errno}}function Ha(e,t,r,o,a){try{let s=Me.getStreamFromFD(e),c=r*4294967296+(t>>>0),u=9007199254740992;return c<=-u||c>=u?-61:(l.llseek(s,c,o),Bt=[s.position>>>0,(ye=s.position,+Math.abs(ye)>=1?ye>0?(Math.min(+Math.floor(ye/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ye-+(~~ye>>>0))/4294967296)>>>0:0)],b[a>>2]=Bt[0],b[a+4>>2]=Bt[1],s.getdents&&c===0&&o===0&&(s.getdents=null),0)}catch(s){return(typeof l=="undefined"||!(s instanceof l.ErrnoError))&&p(s),s.errno}}function Ga(e,t,r,o){try{let a=Me.getStreamFromFD(e),s=Me.doWritev(a,t,r);return b[o>>2]=s,0}catch(a){return(typeof l=="undefined"||!(a instanceof l.ErrnoError))&&p(a),a.errno}}function ci(){return Hn()}function ui(e,t){ui.randomDevice||(ui.randomDevice=dt());for(let r=0;r<t;r++)be[e+r>>0]=ui.randomDevice();return 0}function Ya(e){S.activeTexture(e)}function Xa(e,t){S.attachShader(w.programs[e],w.shaders[t])}function Wa(e,t,r){S.bindAttribLocation(w.programs[e],t,Je(r))}function Va(e,t){e==34962?S.currentArrayBufferBinding=t:e==34963&&(S.currentElementArrayBufferBinding=t),e==35051?S.currentPixelPackBufferBinding=t:e==35052&&(S.currentPixelUnpackBufferBinding=t),S.bindBuffer(e,w.buffers[t])}function za(e,t,r){S.bindBufferBase(e,t,w.buffers[r])}function $a(e,t){S.bindFramebuffer(e,t?w.framebuffers[t]:w.currentContext.defaultFbo)}function Ka(e,t){S.bindTexture(e,w.textures[t])}function Ja(e){S.bindVertexArray(w.vaos[e]);let t=S.getParameter(34965);S.currentElementArrayBufferBinding=t?t.name|0:0}function Za(e,t,r,o){w.currentContext.version>=2?r?S.bufferData(e,ve,o,r,t):S.bufferData(e,t,o):S.bufferData(e,r?ve.subarray(r,r+t):t,o)}function qa(e,t){return z(t===(t|0)),(e>>>0)+t*4294967296}function es(e,t,r,o){return S.clientWaitSync(w.syncs[e],t,qa(r,o))}function ts(e){S.compileShader(w.shaders[e])}function rs(){let e=w.getNewId(w.programs),t=S.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,w.programs[e]=t,e}function ns(e){let t=w.getNewId(w.shaders);return w.shaders[t]=S.createShader(e),t}function is(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2],a=w.buffers[o];a&&(S.deleteBuffer(a),a.name=0,w.buffers[o]=null,o==S.currentArrayBufferBinding&&(S.currentArrayBufferBinding=0),o==S.currentElementArrayBufferBinding&&(S.currentElementArrayBufferBinding=0),o==S.currentPixelPackBufferBinding&&(S.currentPixelPackBufferBinding=0),o==S.currentPixelUnpackBufferBinding&&(S.currentPixelUnpackBufferBinding=0))}}function os(e,t){for(let r=0;r<e;++r){let o=b[t+r*4>>2],a=w.framebuffers[o];a&&(S.deleteFramebuffer(a),a.name=0,w.framebuffers[o]=null)}}function as(e){if(!e)return;let t=w.programs[e];if(!t){w.recordError(1281);return}S.deleteProgram(t),t.name=0,w.programs[e]=null}function ss(e){if(!e)return;let t=w.shaders[e];if(!t){w.recordError(1281);return}S.deleteShader(t),w.shaders[e]=null}function As(e){if(!e)return;let t=w.syncs[e];if(!t){w.recordError(1281);return}S.deleteSync(t),t.name=0,w.syncs[e]=null}function cs(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2],a=w.textures[o];a&&(S.deleteTexture(a),a.name=0,w.textures[o]=null)}}function us(e,t){for(let r=0;r<e;r++){let o=b[t+r*4>>2];S.deleteVertexArray(w.vaos[o]),w.vaos[o]=null}}function ls(e){S.disable(e)}function ds(e){let t=w.currentContext.clientBuffers[e];t.enabled=!1,S.disableVertexAttribArray(e)}function Oo(e,t,r){w.preDrawHandleClientVertexAttribBindings(t+r),S.drawArrays(e,t,r),w.postDrawHandleClientVertexAttribBindings()}let Bo=[];function fs(e,t){let r=Bo[e];for(let o=0;o<e;o++)r[o]=b[t+o*4>>2];S.drawBuffers(r)}function gs(e){let t=w.currentContext.clientBuffers[e];t.enabled=!0,S.enableVertexAttribArray(e)}function Es(e,t){let r=S.fenceSync(e,t);if(r){let o=w.getNewId(w.syncs);return r.name=o,w.syncs[o]=r,o}return 0}function ps(){S.finish()}function _s(){S.flush()}function hs(e,t,r,o,a){S.framebufferTexture2D(e,t,r,w.textures[o],a)}function li(e,t,r,o,a){S.framebufferTextureLayer(e,t,w.textures[r],o,a)}function di(e,t,r,o){for(let a=0;a<e;a++){let s=S[r](),A=s&&w.getNewId(o);s?(s.name=A,o[A]=s):w.recordError(1282),b[t+a*4>>2]=A}}function Is(e,t){di(e,t,"createBuffer",w.buffers)}function ms(e,t){di(e,t,"createFramebuffer",w.framebuffers)}function Cs(e,t){di(e,t,"createTexture",w.textures)}function ys(e,t){di(e,t,"createVertexArray",w.vaos)}function ws(e,t){return S.getAttribLocation(w.programs[e],Je(t))}function Ds(){let e=S.getError()||w.lastError;return w.lastError=0,e}function bs(e){return Qe[e>>2]+b[e+4>>2]*4294967296}function Os(e){return Qe[e>>2]+Qe[e+4>>2]*4294967296}function Bs(e,t){Qe[e>>2]=t,Qe[e+4>>2]=(t-Qe[e>>2])/4294967296;let r=t>=0?Os(e):bs(e);r!=t&&tt(`writeI53ToI64() out of range: serialized JS Number ${t} to Wasm heap as bytes lo=0x${Qe[e>>2].toString(16)}, hi=0x${Qe[e+4>>2].toString(16)}, which deserializes back to ${r} instead!`)}function Ts(e,t,r){if(!t){w.recordError(1281);return}let o;switch(e){case 36346:o=1;break;case 36344:r!=0&&r!=1&&w.recordError(1280);return;case 34814:case 36345:o=0;break;case 34466:var a=S.getParameter(34467);o=a?a.length:0;break;case 33309:if(w.currentContext.version<2){w.recordError(1282);return}var s=S.getSupportedExtensions()||[];o=2*s.length;break;case 33307:case 33308:if(w.currentContext.version<2){w.recordError(1280);return}o=e==33307?3:0;break}if(o===void 0){let A=S.getParameter(e);switch(typeof A){case"number":o=A;break;case"boolean":o=A?1:0;break;case"string":w.recordError(1280);return;case"object":if(A===null)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{o=0;break}default:{w.recordError(1280);return}}else if(A instanceof Float32Array||A instanceof Uint32Array||A instanceof Int32Array||A instanceof Array){for(let c=0;c<A.length;++c)switch(r){case 0:b[t+c*4>>2]=A[c];break;case 2:ze[t+c*4>>2]=A[c];break;case 4:be[t+c>>0]=A[c]?1:0;break}return}else try{o=A.name|0}catch(c){w.recordError(1280),pe(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${c})`);return}break;default:w.recordError(1280),pe(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${A} of type ${typeof A}!`);return}}switch(r){case 1:Bs(t,o);break;case 0:b[t>>2]=o;break;case 2:ze[t>>2]=o;break;case 4:be[t>>0]=o?1:0;break}}function fi(e,t){Ts(e,t,0)}function gi(e){let t=bt(e)+1,r=tn(t);return tr(e,r,t),r}function vs(e){let t=w.stringCache[e];if(!t){switch(e){case 7939:var r=S.getSupportedExtensions()||[];r=r.concat(r.map(u=>`GL_${u}`)),t=gi(r.join(" "));break;case 7936:case 7937:case 37445:case 37446:var o=S.getParameter(e);o||w.recordError(1280),t=o&&gi(o);break;case 7938:var a=S.getParameter(7938);w.currentContext.version>=2?a=`OpenGL ES 3.0 (${a})`:a=`OpenGL ES 2.0 (${a})`,t=gi(a);break;case 35724:var s=S.getParameter(35724),A=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,c=s.match(A);c!==null&&(c[1].length==3&&(c[1]=`${c[1]}0`),s=`OpenGL ES GLSL ES ${c[1]} (${s})`),t=gi(s);break;default:w.recordError(1280)}w.stringCache[e]=t}return t}function Qs(e,t){return S.getUniformBlockIndex(w.programs[e],Je(t))}function To(e){return parseInt(e)}function vo(e){return e.slice(-1)=="]"&&e.lastIndexOf("[")}function Ps(e){let{uniformLocsById:t}=e,{uniformSizeAndIdsByName:r}=e,o,a;if(!t)for(e.uniformLocsById=t={},e.uniformArrayNamesById={},o=0;o<S.getProgramParameter(e,35718);++o){let s=S.getActiveUniform(e,o),A=s.name,c=s.size,u=vo(A),d=u>0?A.slice(0,u):A,h=e.uniformIdCounter;for(e.uniformIdCounter+=c,r[d]=[c,h],a=0;a<c;++a)t[h]=a,e.uniformArrayNamesById[h++]=d}}function Rs(e,t){if(t=Je(t),e=w.programs[e]){Ps(e);let{uniformLocsById:r}=e,o=0,a=t,s=vo(t);s>0&&(o=To(t.slice(s+1))>>>0,a=t.slice(0,s));let A=e.uniformSizeAndIdsByName[a];if(A&&o<A[0]&&(o+=A[1],r[o]=r[o]||S.getUniformLocation(e,t)))return o}else w.recordError(1281);return-1}function Ss(e){e=w.programs[e],S.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function Ms(e,t){e==3317&&(w.unpackAlignment=t),S.pixelStorei(e,t)}function Fs(e,t,r,o){function a(c,u){return c+u-1&-u}let s=e*r,A=a(s,o);return t*A}function Nn(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function pr(e){return e-=5120,e==0?be:e==1?ve:e==2?T:e==4?b:e==6?ze:e==5||e==28922||e==28520||e==30779||e==30782?Qe:Oe}function Jr(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function oo(e,t,r,o,a,s){let A=pr(e),c=Jr(A),u=1<<c,d=Nn(t)*u,h=Fs(r,o,d,w.unpackAlignment);return A.subarray(a>>c,a+h>>c)}function ks(e,t,r,o,a,s,A){if(w.currentContext.version>=2){if(S.currentPixelPackBufferBinding)S.readPixels(e,t,r,o,a,s,A);else{let u=pr(s);S.readPixels(e,t,r,o,a,s,u,A>>Jr(u))}return}let c=oo(s,a,r,o,A,a);if(!c){w.recordError(1280);return}S.readPixels(e,t,r,o,a,s,c)}function Ns(e,t,r,o){let a=w.getSource(e,t,r,o);S.shaderSource(w.shaders[e],a)}function Us(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texImage2D(e,t,r,o,a,s,A,c,u);else if(u){let d=pr(c);S.texImage2D(e,t,r,o,a,s,A,c,d,u>>Jr(d))}else S.texImage2D(e,t,r,o,a,s,A,c,null);return}S.texImage2D(e,t,r,o,a,s,A,c,u?oo(c,A,o,a,u,r):null)}function xs(e,t,r){let o=ze[r>>2];S.texParameterf(e,t,o)}function js(e,t,r){S.texParameteri(e,t,r)}function Ls(e,t,r,o,a){S.texStorage2D(e,t,r,o,a)}function Hs(e,t,r,o,a,s){S.texStorage3D(e,t,r,o,a,s)}function Gs(e,t,r,o,a,s,A,c,u){if(w.currentContext.version>=2){if(S.currentPixelUnpackBufferBinding)S.texSubImage2D(e,t,r,o,a,s,A,c,u);else if(u){let h=pr(c);S.texSubImage2D(e,t,r,o,a,s,A,c,h,u>>Jr(h))}else S.texSubImage2D(e,t,r,o,a,s,A,c,null);return}let d=null;u&&(d=oo(c,A,a,s,u,0)),S.texSubImage2D(e,t,r,o,a,s,A,c,d)}function Zt(e,t,r,o,a,s,A,c,u,d,h){if(S.currentPixelUnpackBufferBinding)S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,h);else if(h){let I=pr(d);S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,I,h>>Jr(I))}else S.texSubImage3D(e,t,r,o,a,s,A,c,u,d,null)}function qt(e){let t=S.currentProgram;if(t){let r=t.uniformLocsById[e];return typeof r=="number"&&(t.uniformLocsById[e]=r=S.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}w.recordError(1282)}function Ys(e,t){S.uniform1f(qt(e),t)}function Ei(e,t){S.uniform1i(qt(e),t)}let pi=[];function Xs(e,t,r){if(w.currentContext.version>=2){S.uniform2fv(qt(e),ze,r>>2,t*2);return}if(t<=144){var o=pi[2*t-1];for(let a=0;a<2*t;a+=2)o[a]=ze[r+4*a>>2],o[a+1]=ze[r+(4*a+4)>>2]}else var o=ze.subarray(r>>2,r+t*8>>2);S.uniform2fv(qt(e),o)}function Qo(e,t,r){if(w.currentContext.version>=2){S.uniform4fv(qt(e),ze,r>>2,t*4);return}if(t<=72){var o=pi[4*t-1];let a=ze;r>>=2;for(let s=0;s<4*t;s+=4){let A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3]}}else var o=ze.subarray(r>>2,r+t*16>>2);S.uniform4fv(qt(e),o)}let Po=[];function Ws(e,t,r){if(w.currentContext.version>=2){S.uniform4iv(qt(e),b,r>>2,t*4);return}if(t<=72){var o=Po[4*t-1];for(let a=0;a<4*t;a+=4)o[a]=b[r+4*a>>2],o[a+1]=b[r+(4*a+4)>>2],o[a+2]=b[r+(4*a+8)>>2],o[a+3]=b[r+(4*a+12)>>2]}else var o=b.subarray(r>>2,r+t*16>>2);S.uniform4iv(qt(e),o)}function Vs(e,t,r){e=w.programs[e],S.uniformBlockBinding(e,t,r)}function zs(e,t,r,o){if(w.currentContext.version>=2){S.uniformMatrix4fv(qt(e),!!r,ze,o>>2,t*16);return}if(t<=18){var a=pi[16*t-1];let s=ze;o>>=2;for(let A=0;A<16*t;A+=16){let c=o+A;a[A]=s[c],a[A+1]=s[c+1],a[A+2]=s[c+2],a[A+3]=s[c+3],a[A+4]=s[c+4],a[A+5]=s[c+5],a[A+6]=s[c+6],a[A+7]=s[c+7],a[A+8]=s[c+8],a[A+9]=s[c+9],a[A+10]=s[c+10],a[A+11]=s[c+11],a[A+12]=s[c+12],a[A+13]=s[c+13],a[A+14]=s[c+14],a[A+15]=s[c+15]}}else var a=ze.subarray(o>>2,o+t*64>>2);S.uniformMatrix4fv(qt(e),!!r,a)}function $s(e){e=w.programs[e],S.useProgram(e),S.currentProgram=e}function Ks(e,t,r,o,a,s){let A=w.currentContext.clientBuffers[e];if(!S.currentArrayBufferBinding){A.size=t,A.type=r,A.normalized=o,A.stride=a,A.ptr=s,A.clientside=!0,A.vertexAttribPointerAdaptor=function(c,u,d,h,I,m){this.vertexAttribPointer(c,u,d,h,I,m)};return}A.clientside=!1,S.vertexAttribPointer(e,t,r,!!o,a,s)}function _i(e,t,r,o){S.viewport(e,t,r,o)}function hi(e,t){let r=new Date(b[e>>2]*1e3);b[t>>2]=r.getUTCSeconds(),b[t+4>>2]=r.getUTCMinutes(),b[t+8>>2]=r.getUTCHours(),b[t+12>>2]=r.getUTCDate(),b[t+16>>2]=r.getUTCMonth(),b[t+20>>2]=r.getUTCFullYear()-1900,b[t+24>>2]=r.getUTCDay(),b[t+36>>2]=0,b[t+32>>2]=0;let o=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),a=(r.getTime()-o)/(1e3*60*60*24)|0;return b[t+28>>2]=a,hi.GMTString||(hi.GMTString=yn("GMT")),b[t+40>>2]=hi.GMTString,t}function Ii(e){return e}function mi(){if(mi.called)return;mi.called=!0;let e=new Date().getFullYear(),t=new Date(e,0,1),r=new Date(e,6,1),o=t.getTimezoneOffset(),a=r.getTimezoneOffset(),s=Math.max(o,a);b[ne()>>2]=s*60,b[nA()>>2]=+(o!=a);function A(I){let m=I.toTimeString().match(/\(([A-Za-z ]+)\)$/);return m?m[1]:"GMT"}let c=A(t),u=A(r),d=yn(c),h=yn(u);a<o?(b[jn()>>2]=d,b[jn()+4>>2]=h):(b[jn()>>2]=h,b[jn()+4>>2]=d)}function Js(e,t){mi();let r=new Date(b[e>>2]*1e3);b[t>>2]=r.getSeconds(),b[t+4>>2]=r.getMinutes(),b[t+8>>2]=r.getHours(),b[t+12>>2]=r.getDate(),b[t+16>>2]=r.getMonth(),b[t+20>>2]=r.getFullYear()-1900,b[t+24>>2]=r.getDay();let o=new Date(r.getFullYear(),0,1),a=(r.getTime()-o.getTime())/(1e3*60*60*24)|0;b[t+28>>2]=a,b[t+36>>2]=-(r.getTimezoneOffset()*60);let s=new Date(r.getFullYear(),6,1).getTimezoneOffset(),A=o.getTimezoneOffset(),c=(s!=A&&r.getTimezoneOffset()==Math.min(A,s))|0;b[t+32>>2]=c;let u=b[jn()+(c?4:0)>>2];return b[t+40>>2]=u,t}function Zs(e){mi();let t=new Date(b[e+20>>2]+1900,b[e+16>>2],b[e+12>>2],b[e+8>>2],b[e+4>>2],b[e>>2],0),r=b[e+32>>2],o=t.getTimezoneOffset(),a=new Date(t.getFullYear(),0,1),s=new Date(t.getFullYear(),6,1).getTimezoneOffset(),A=a.getTimezoneOffset(),c=Math.min(A,s);if(r<0)b[e+32>>2]=+(s!=A&&c==o);else if(r>0!=(c==o)){let d=Math.max(A,s),h=r>0?c:d;t.setTime(t.getTime()+(h-o)*6e4)}b[e+24>>2]=t.getDay();let u=(t.getTime()-a.getTime())/(1e3*60*60*24)|0;return b[e+28>>2]=u,b[e>>2]=t.getSeconds(),b[e+4>>2]=t.getMinutes(),b[e+8>>2]=t.getHours(),b[e+12>>2]=t.getDate(),b[e+16>>2]=t.getMonth(),t.getTime()/1e3|0}function qs(e){i(e)}function Ci(e){he(e)}function pn(e){return e%4===0&&(e%100!==0||e%400===0)}function _n(e,t){let r=0;for(let o=0;o<=t;r+=e[o++]);return r}let Zr=[31,29,31,30,31,30,31,31,30,31,30,31],qr=[31,28,31,30,31,30,31,31,30,31,30,31];function Un(e,t){let r=new Date(e.getTime());for(;t>0;){let o=pn(r.getFullYear()),a=r.getMonth(),s=(o?Zr:qr)[a];if(t>s-r.getDate())t-=s-r.getDate()+1,r.setDate(1),a<11?r.setMonth(a+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1));else return r.setDate(r.getDate()+t),r}return r}function Ro(e,t,r,o){let a=b[o+40>>2],s={tm_sec:b[o>>2],tm_min:b[o+4>>2],tm_hour:b[o+8>>2],tm_mday:b[o+12>>2],tm_mon:b[o+16>>2],tm_year:b[o+20>>2],tm_wday:b[o+24>>2],tm_yday:b[o+28>>2],tm_isdst:b[o+32>>2],tm_gmtoff:b[o+36>>2],tm_zone:a?Je(a):""},A=Je(r),c={"%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 u in c)A=A.replace(new RegExp(u,"g"),c[u]);let d=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],h=["January","February","March","April","May","June","July","August","September","October","November","December"];function I(D,k,$){let Y=typeof D=="number"?D.toString():D||"";for(;Y.length<k;)Y=$[0]+Y;return Y}function m(D,k){return I(D,k,"0")}function y(D,k){function $(Ce){return Ce<0?-1:Ce>0?1:0}let Y;return(Y=$(D.getFullYear()-k.getFullYear()))===0&&(Y=$(D.getMonth()-k.getMonth()))===0&&(Y=$(D.getDate()-k.getDate())),Y}function v(D){switch(D.getDay()){case 0:return new Date(D.getFullYear()-1,11,29);case 1:return D;case 2:return new Date(D.getFullYear(),0,3);case 3:return new Date(D.getFullYear(),0,2);case 4:return new Date(D.getFullYear(),0,1);case 5:return new Date(D.getFullYear()-1,11,31);case 6:return new Date(D.getFullYear()-1,11,30)}}function U(D){let k=Un(new Date(D.tm_year+1900,0,1),D.tm_yday),$=new Date(k.getFullYear(),0,4),Y=new Date(k.getFullYear()+1,0,4),Ce=v($),Ne=v(Y);return y(Ce,k)<=0?y(Ne,k)<=0?k.getFullYear()+1:k.getFullYear():k.getFullYear()-1}let G={"%a"(D){return d[D.tm_wday].substring(0,3)},"%A"(D){return d[D.tm_wday]},"%b"(D){return h[D.tm_mon].substring(0,3)},"%B"(D){return h[D.tm_mon]},"%C"(D){let k=D.tm_year+1900;return m(k/100|0,2)},"%d"(D){return m(D.tm_mday,2)},"%e"(D){return I(D.tm_mday,2," ")},"%g"(D){return U(D).toString().substring(2)},"%G"(D){return U(D)},"%H"(D){return m(D.tm_hour,2)},"%I"(D){let k=D.tm_hour;return k==0?k=12:k>12&&(k-=12),m(k,2)},"%j"(D){return m(D.tm_mday+_n(pn(D.tm_year+1900)?Zr:qr,D.tm_mon-1),3)},"%m"(D){return m(D.tm_mon+1,2)},"%M"(D){return m(D.tm_min,2)},"%n"(){return`
30
- `},"%p"(D){return D.tm_hour>=0&&D.tm_hour<12?"AM":"PM"},"%S"(D){return m(D.tm_sec,2)},"%t"(){return" "},"%u"(D){return D.tm_wday||7},"%U"(D){let k=new Date(D.tm_year+1900,0,1),$=k.getDay()===0?k:Un(k,7-k.getDay()),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let Ce=_n(pn(Y.getFullYear())?Zr:qr,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,k)===0?"01":"00"},"%V"(D){let k=new Date(D.tm_year+1900,0,4),$=new Date(D.tm_year+1901,0,4),Y=v(k),Ce=v($),Ne=Un(new Date(D.tm_year+1900,0,1),D.tm_yday);if(y(Ne,Y)<0)return"53";if(y(Ce,Ne)<=0)return"01";let hr;return Y.getFullYear()<D.tm_year+1900?hr=D.tm_yday+32-Y.getDate():hr=D.tm_yday+1-Y.getDate(),m(Math.ceil(hr/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let k=new Date(D.tm_year,0,1),$=k.getDay()===1?k:Un(k,k.getDay()===0?1:7-k.getDay()+1),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let Ce=_n(pn(Y.getFullYear())?Zr:qr,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,k)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let k=D.tm_gmtoff,$=k>=0;return k=Math.abs(k)/60,k=k/60*100+k%60,($?"+":"-")+`0000${k}`.slice(-4)},"%Z"(D){return D.tm_zone},"%%"(){return"%"}};for(var u in G)A.includes(u)&&(A=A.replace(new RegExp(u,"g"),G[u](s)));let R=yi(A,!1);return R.length>t?0:(Xn(R,e),R.length-1)}function So(e,t,r,o){return Ro(e,t,r,o)}n.requestFullscreen=function(t,r){Q.requestFullscreen(t,r)},n.requestFullScreen=function(){Q.requestFullScreen()},n.requestAnimationFrame=function(t){Q.requestAnimationFrame(t)},n.setCanvasSize=function(t,r,o){Q.setCanvasSize(t,r,o)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(t,r,o,a){return Q.createContext(t,r,o,a)};let xn=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=l.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},en=365,M=146;Object.defineProperties(xn.prototype,{read:{get(){return(this.mode&en)===en},set(e){e?this.mode|=en:this.mode&=~en}},write:{get(){return(this.mode&M)===M},set(e){e?this.mode|=M:this.mode&=~M}},isFolder:{get(){return l.isDir(this.mode)}},isDevice:{get(){return l.isChrdev(this.mode)}}}),l.FSNode=xn,l.staticInit(),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,un(),qn=n.PureVirtualError=Gr(Error,"PureVirtualError"),ei(),Nt(),ae=n.BindingError=Gr(Error,"BindingError"),F=n.InternalError=Gr(Error,"InternalError"),ke(),gr(),Qr=n.UnboundTypeError=Gr(Error,"UnboundTypeError");let S;for(var Dt=0;Dt<32;++Dt)Bo.push(new Array(Dt));let eA=new Float32Array(288);for(var Dt=0;Dt<288;++Dt)pi[Dt]=eA.subarray(0,Dt+1);let Ac=new Int32Array(288);for(var Dt=0;Dt<288;++Dt)Po[Dt]=Ac.subarray(0,Dt+1);let ao=!0;function yi(e,t,r){let o=r>0?r:bt(e)+1,a=new Array(o),s=Ze(e,a,0,a.length);return t&&(a.length=s),a}let cc=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",o,a,s,A,c,u,d,h=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do A=t.indexOf(e.charAt(h++)),c=t.indexOf(e.charAt(h++)),u=t.indexOf(e.charAt(h++)),d=t.indexOf(e.charAt(h++)),o=A<<2|c>>4,a=(c&15)<<4|u>>2,s=(u&3)<<6|d,r=r+String.fromCharCode(o),u!==64&&(r=r+String.fromCharCode(a)),d!==64&&(r=r+String.fromCharCode(s));while(h<e.length);return r};function tA(e){if(typeof It=="boolean"&&It){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=cc(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var rA={HaveOffsetConverter:br,__cxa_allocate_exception:fo,__cxa_atexit:Br,__cxa_begin_catch:Wt,__cxa_end_catch:zn,__cxa_find_matching_catch_2:Ni,__cxa_find_matching_catch_3:$n,__cxa_free_exception:Tr,__cxa_rethrow:Ui,__cxa_thread_atexit:xi,__cxa_throw:Kn,__resumeException:Pn,__sys_fcntl64:Hi,__sys_ioctl:Gi,__sys_mmap2:Xi,__sys_open:Wi,__sys_stat64:Zn,_embind_create_inheriting_constructor:ur,_embind_finalize_value_object:L,_embind_register_bigint:q,_embind_register_bool:me,_embind_register_class:_o,_embind_register_class_class_function:$o,_embind_register_class_constructor:Ko,_embind_register_class_function:ho,_embind_register_class_property:mo,_embind_register_emval:gn,_embind_register_float:Zo,_embind_register_function:qo,_embind_register_integer:ta,_embind_register_memory_view:ra,_embind_register_std_string:na,_embind_register_std_wstring:ia,_embind_register_value_object:oa,_embind_register_value_object_field:aa,_embind_register_void:sa,_emval_call_void_method:ca,_emval_decref:Co,_emval_get_method_caller:da,_emval_incref:fa,_emval_take_value:ga,abort:Ea,clock_gettime:_a,dlopen:ha,dlsym:ai,emscripten_asm_const_int:ma,emscripten_get_heap_max:Ca,emscripten_memcpy_big:ya,emscripten_pc_get_function:wa,emscripten_resize_heap:Ai,emscripten_stack_snapshot:ba,emscripten_stack_unwind_buffer:Oa,emscripten_thread_sleep:Ba,emscripten_webgl_create_context:Fa,emscripten_webgl_destroy_context:ka,emscripten_webgl_get_context_attributes:Na,emscripten_webgl_get_current_context:ro,emscripten_webgl_init_context_attributes:no,emscripten_webgl_make_context_current:bo,environ_get:Ua,environ_sizes_get:xa,exit:Wn,fd_close:ja,fd_read:La,fd_seek:Ha,fd_write:Ga,getTempRet0:ci,getentropy:ui,glActiveTexture:Ya,glAttachShader:Xa,glBindAttribLocation:Wa,glBindBuffer:Va,glBindBufferBase:za,glBindFramebuffer:$a,glBindTexture:Ka,glBindVertexArray:Ja,glBufferData:Za,glClientWaitSync:es,glCompileShader:ts,glCreateProgram:rs,glCreateShader:ns,glDeleteBuffers:is,glDeleteFramebuffers:os,glDeleteProgram:as,glDeleteShader:ss,glDeleteSync:As,glDeleteTextures:cs,glDeleteVertexArrays:us,glDisable:ls,glDisableVertexAttribArray:ds,glDrawArrays:Oo,glDrawBuffers:fs,glEnableVertexAttribArray:gs,glFenceSync:Es,glFinish:ps,glFlush:_s,glFramebufferTexture2D:hs,glFramebufferTextureLayer:li,glGenBuffers:Is,glGenFramebuffers:ms,glGenTextures:Cs,glGenVertexArrays:ys,glGetAttribLocation:ws,glGetError:Ds,glGetIntegerv:fi,glGetString:vs,glGetUniformBlockIndex:Qs,glGetUniformLocation:Rs,glLinkProgram:Ss,glPixelStorei:Ms,glReadPixels:ks,glShaderSource:Ns,glTexImage2D:Us,glTexParameterfv:xs,glTexParameteri:js,glTexStorage2D:Ls,glTexStorage3D:Hs,glTexSubImage2D:Gs,glTexSubImage3D:Zt,glUniform1f:Ys,glUniform1i:Ei,glUniform2fv:Xs,glUniform4fv:Qo,glUniform4iv:Ws,glUniformBlockBinding:Vs,glUniformMatrix4fv:zs,glUseProgram:$s,glVertexAttribPointer:Ks,glViewport:_i,gmtime_r:hi,invoke_diii:OA,invoke_i:PA,invoke_ii:fA,invoke_iii:sA,invoke_iiii:BA,invoke_iiiii:mA,invoke_iiiiii:wA,invoke_iiiiiii:cA,invoke_iiiiiiiddi:ZA,invoke_iiiiiiii:bA,invoke_iiiiiiiii:FA,invoke_v:uA,invoke_vdiii:wi,invoke_vi:aA,invoke_vididdii:VA,invoke_vidii:$A,invoke_vii:dA,invoke_viid:oA,invoke_viidi:tc,invoke_viididii:MA,invoke_viii:gA,invoke_viiid:zA,invoke_viiidd:yA,invoke_viiiddi:QA,invoke_viiidi:RA,invoke_viiii:IA,invoke_viiiid:qA,invoke_viiiidi:SA,invoke_viiiidid:ec,invoke_viiiidiidiiiiiii:WA,invoke_viiiifiifiiiiiii:XA,invoke_viiiii:AA,invoke_viiiiid:UA,invoke_viiiiif:HA,invoke_viiiiii:EA,invoke_viiiiiid:xA,invoke_viiiiiif:GA,invoke_viiiiiii:pA,invoke_viiiiiiiddi:JA,invoke_viiiiiiidiiii:LA,invoke_viiiiiiifiiii:YA,invoke_viiiiiiii:_A,invoke_viiiiiiiidd:NA,invoke_viiiiiiiidf:kA,invoke_viiiiiiiii:hA,invoke_viiiiiiiiidd:TA,invoke_viiiiiiiiiddi:vA,invoke_viiiiiiiiii:lA,invoke_viiiiiiiiiiddi:KA,invoke_viiiiiiiiiii:CA,invoke_viiiiiiiiiiii:jA,invoke_viiiiiiiiiiiii:DA,llvm_eh_typeid_for:Ii,localtime_r:Js,mktime:Zs,proc_exit:qs,setTempRet0:Ci,strftime:Ro,strftime_l:So};let Jc=We(),_r=n.___wasm_call_ctors=ce("__wasm_call_ctors");var it=n._free=ce("free"),tn=n._malloc=ce("malloc"),uc=n.___errno_location=ce("__errno_location");let lc=n._fflush=ce("fflush");var dc=n.___getTypeName=ce("__getTypeName");let Zc=n.___embind_register_native_and_builtin_types=ce("__embind_register_native_and_builtin_types"),Mo=n._emscripten_main_thread_process_queued_calls=ce("emscripten_main_thread_process_queued_calls");var rn=n._emscripten_stack_get_end=function(){return(rn=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},jn=n.__get_tzname=ce("_get_tzname"),nA=n.__get_daylight=ce("_get_daylight"),ne=n.__get_timezone=ce("_get_timezone"),j=n.stackSave=ce("stackSave"),te=n.stackRestore=ce("stackRestore"),so=n.stackAlloc=ce("stackAlloc"),Fo=n._emscripten_stack_init=function(){return(Fo=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},fc=n._emscripten_stack_get_free=function(){return(fc=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let oe=n._saveSetjmp=ce("saveSetjmp");var re=n._setThrew=ce("setThrew"),ko=n.___cxa_can_catch=ce("__cxa_can_catch"),iA=n.___cxa_is_pointer_type=ce("__cxa_is_pointer_type"),gc=n._memalign=ce("memalign");let qc=n._emscripten_builtin_malloc=ce("emscripten_builtin_malloc"),eu=n._emscripten_builtin_free=ce("emscripten_builtin_free"),tu=n._emscripten_builtin_memalign=ce("emscripten_builtin_memalign"),ru=n.dynCall_jii=ce("dynCall_jii"),nu=n.dynCall_viji=ce("dynCall_viji"),iu=n.dynCall_jjj=ce("dynCall_jjj"),ou=n.dynCall_iiiijj=ce("dynCall_iiiijj"),au=n.dynCall_viijj=ce("dynCall_viijj"),su=n.dynCall_viiijjjj=ce("dynCall_viiijjjj"),Au=n.dynCall_ji=ce("dynCall_ji"),cu=n.dynCall_vij=ce("dynCall_vij"),uu=n.dynCall_viijii=ce("dynCall_viijii"),lu=n.dynCall_vj=ce("dynCall_vj"),du=n.dynCall_viij=ce("dynCall_viij"),fu=n.dynCall_viiiiij=ce("dynCall_viiiiij"),gu=n.dynCall_iijjiiii=ce("dynCall_iijjiiii"),Eu=n.dynCall_jiji=ce("dynCall_jiji"),pu=n.dynCall_iiiiij=ce("dynCall_iiiiij"),_u=n.dynCall_iiiiijj=ce("dynCall_iiiiijj"),Ec=n.dynCall_iiiiiijj=ce("dynCall_iiiiiijj");function oA(e,t,r,o){let a=j();try{V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function aA(e,t){let r=j();try{V.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function sA(e,t,r){let o=j();try{return V.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function AA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function cA(e,t,r,o,a,s,A){let c=j();try{return V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function uA(e){let t=j();try{V.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function lA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function dA(e,t,r){let o=j();try{V.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function fA(e,t){let r=j();try{return V.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function gA(e,t,r,o){let a=j();try{V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function EA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function pA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function _A(e,t,r,o,a,s,A,c,u){let d=j();try{V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function hA(e,t,r,o,a,s,A,c,u,d){let h=j();try{V.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function IA(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function mA(e,t,r,o,a){let s=j();try{return V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function CA(e,t,r,o,a,s,A,c,u,d,h,I){let m=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function yA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function wA(e,t,r,o,a,s){let A=j();try{return V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function DA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(U){if(te(v),U!==U+0&&U!=="longjmp")throw U;re(1,0)}}function bA(e,t,r,o,a,s,A,c){let u=j();try{return V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function OA(e,t,r,o){let a=j();try{return V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function BA(e,t,r,o){let a=j();try{return V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function TA(e,t,r,o,a,s,A,c,u,d,h,I){let m=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function vA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function QA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function PA(e){let t=j();try{return V.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function RA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function SA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function MA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function FA(e,t,r,o,a,s,A,c,u){let d=j();try{return V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function kA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function NA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function UA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function xA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function jA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function LA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function HA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function GA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function YA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function XA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,U){let G=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,U)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function WA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,U){let G=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,U)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function VA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function zA(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function $A(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function KA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(U){if(te(v),U!==U+0&&U!=="longjmp")throw U;re(1,0)}}function JA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function ZA(e,t,r,o,a,s,A,c,u,d){let h=j();try{return V.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function qA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function ec(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function tc(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function wi(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){p("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){p("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){p("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){p("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){p("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){p("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){p("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){p("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){p("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){p("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){p("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){p("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){p("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){p("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){p("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){p("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){p("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){p("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){p("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){p("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=E,n.removeRunDependency=ir,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){p("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){p("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){p("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){p("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){p("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){p("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){p("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){p("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){p("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){p("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){p("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){p("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){p("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){p("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){p("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){p("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){p("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){p("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){p("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){p("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){p("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){p("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){p("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){p("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){p("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){p("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){p("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){p("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){p("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){p("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){p("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){p("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){p("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){p("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){p("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){p("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){p("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){p("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){p("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){p("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){p("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){p("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){p("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){p("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){p("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){p("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){p("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){p("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){p("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){p("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){p("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){p("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){p("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){p("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){p("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){p("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){p("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){p("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){p("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){p("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){p("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){p("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){p("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){p("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){p("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){p("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){p("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){p("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){p("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){p("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){p("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){p("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){p("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){p("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){p("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){p("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){p("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){p("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){p("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){p("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){p("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){p("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){p("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){p("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){p("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){p("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){p("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){p("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){p("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){p("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){p("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){p("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){p("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){p("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){p("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){p("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){p("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){p("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){p("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){p("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){p("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){p("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){p("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){p("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){p("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){p("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){p("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){p("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){p("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){p("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){p("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){p("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){p("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){p("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){p("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){p("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){p("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){p("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){p("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){p("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){p("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){p("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){p("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){p("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){p("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){p("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){p("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){p("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){p("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){p("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){p("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){p("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){p("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){p("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){p("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){p("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){p("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){p("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){p("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){p("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){p("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){p("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){p("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){p("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){p("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){p("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){p("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){p("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){p("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){p("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=w,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){p("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){p("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){p("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){p("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){p("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){p("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){p("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){p("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){p("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){p("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){p("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){p("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){p("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){p("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){p("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){p("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){p("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){p("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){p("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){p("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){p("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){p("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){p("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){p("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){p("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){p("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){p("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){p("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){p("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){p("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){p("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){p("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){p("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){p("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){p("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){p("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){p("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){p("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){p("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){p("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){p("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){p("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){p("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){p("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){p("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){p("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){p("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){p("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){p("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){p("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){p("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){p("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){p("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){p("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){p("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){p("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){p("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){p("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){p("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){p("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){p("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){p("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){p("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){p("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){p("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){p("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){p("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){p("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){p("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){p("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){p("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){p("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){p("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){p("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){p("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){p("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){p("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){p("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){p("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){p("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){p("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){p("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){p("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){p("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){p("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){p("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){p("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){p("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){p("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){p("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){p("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){p("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){p("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){p("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){p("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){p("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){p("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){p("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){p("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){p("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){p("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){p("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){p("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){p("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){p("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){p("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){p("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){p("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){p("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){p("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){p("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){p("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){p("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){p("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){p("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){p("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){p("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){p("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){p("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){p("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){p("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){p("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){p("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){p("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){p("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){p("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){p("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){p("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){p("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){p("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Lt,n.checkStackCookie=st,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){p("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get(){p("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let hn;function Ao(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}nr=function e(){hn||uo(),hn||(nr=e)};function co(){Fo(),Lt()}function uo(e){if(e=e||ot,lt>0||(co(),Gt(),lt>0))return;function t(){hn||(hn=!0,n.calledRun=!0,!W&&(Pi(),Ee(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),z(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),wn()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),st()}n.run=uo;function rc(){let e=Re,t=pe,r=!1;Re=pe=function(o){r=!0};try{let o=n._fflush;o&&o(0),["stdout","stderr"].forEach(a=>{let s=l.analyzePath(`/dev/${a}`);if(!s)return;let A=s.object,{rdev:c}=A,u=yt.ttys[c];u&&u.output&&u.output.length&&(r=!0)})}catch(o){}Re=e,pe=t,r&&tt("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.")}function No(e,t){if(Sr=e,rc(),Ct()){if(!t){let r=`program exited (with status: ${e}), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)`;N(r),pe(r)}}else Ri();i(e)}function i(e){Sr=e,Ct()||(n.onExit&&n.onExit(e),W=!0),$e(e,new Ao(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return uo(),x.ready}}(),Dc=bu;var Ou=function(){var K=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(K=K||__filename),function(x){x=x||{};var n=typeof x!="undefined"?x:{},Ee,N;n.ready=new Promise(function(i,e){Ee=i,N=e}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){E("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){E("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){E("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){E("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){E("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){E("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){E("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){E("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){E("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){E("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){E("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){E("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){E("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){E("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){E("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){E("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){E("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){E("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){E("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){E("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){E("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){E("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){E("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){E("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){E("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){E("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){E("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){E("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){E("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){E("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){E("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){E("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){E("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){E("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){E("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){E("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){E("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){E("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){E("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){E("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){E("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){E("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){E("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){E("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Ue={},we;for(we in n)n.hasOwnProperty(we)&&(Ue[we]=n[we]);var ot=[],ht="./this.program",$e=function(i,e){throw e},Ye=typeof window=="object",Ve=typeof importScripts=="function",It=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",bi=!Ye&&!It&&!Ve;if(n.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 Te="";function Oi(i){return n.locateFile?n.locateFile(i,Te):Te+i}var Rr,er,nn,In;if(Ye||Ve){if(Ve?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),K&&(Te=K),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Rr=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.send(null),e.responseText},Ve&&(nn=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),er=function(i,e,t){var r=new XMLHttpRequest;r.open("GET",i,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){e(r.response);return}t()},r.onerror=t,r.send(null)},In=function(i){document.title=i}}else throw new Error("environment detection error");var Ke=n.print||console.log.bind(console),ge=n.printErr||console.warn.bind(console);for(we in Ue)Ue.hasOwnProperty(we)&&(n[we]=Ue[we]);Ue=null,n.arguments&&(ot=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){E("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)")}}),n.thisProgram&&(ht=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){E("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)")}}),n.quit&&($e=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){E("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)")}}),W(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),W(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),W(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),W(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),W(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),W(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){E("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(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){E("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(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){E("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(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){E("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)")}}),W(!bi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Re(i){Re.shown||(Re.shown={}),Re.shown[i]||(Re.shown[i]=1,ge(i))}function pe(i,e){if(typeof WebAssembly.Function=="function"){for(var t={i:"i32",j:"i64",f:"f32",d:"f64"},r={parameters:[],results:e[0]=="v"?[]:[t[e[0]]]},o=1;o<e.length;++o)r.parameters.push(t[e[o]]);return new WebAssembly.Function(r,i)}var a=[1,0,1,96],s=e.slice(0,1),A=e.slice(1),c={i:127,j:126,f:125,d:124};a.push(A.length);for(var o=0;o<A.length;++o)a.push(c[A[o]]);s=="v"?a.push(0):a=a.concat([1,c[s]]),a[1]=a.length-2;var u=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])),d=new WebAssembly.Module(u),h=new WebAssembly.Instance(d,{e:{f:i}}),I=h.exports.f;return I}var tt=[],Ir;function Ut(){if(tt.length)return tt.pop();try{J.grow(1)}catch(i){throw i instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":i}return J.length-1}function Xe(i,e){if(!Ir){Ir=new WeakMap;for(var t=0;t<J.length;t++){var r=J.get(t);r&&Ir.set(r,t)}}if(Ir.has(i))return Ir.get(i);var o=Ut();try{J.set(o,i)}catch(s){if(!(s instanceof TypeError))throw s;W(typeof e!="undefined","Missing signature argument to addFunction: "+i);var a=pe(i,e);J.set(o,a)}return Ir.set(i,o),o}var mr=0,mt=function(i){mr=i},Cr=function(){return mr},he;n.wasmBinary&&(he=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){E("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)")}});var Hn=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){E("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)")}}),typeof WebAssembly!="object"&&E("no native wasm support detected");var xt,jt=!1,Pt;function W(i,e){i||E("Assertion failed: "+e)}function Sr(i){var e=n["_"+i];return W(e,"Cannot call unknown function "+i+", make sure it is exported"),e}function z(i,e,t,r,o){var a={string:function(y){var v=0;if(y!=null&&y!==0){var U=(y.length<<2)+1;v=te(U),Je(y,v,U)}return v},array:function(y){var v=te(y.length);return Fr(y,v),v}};function s(y){return e==="string"?at(y):e==="boolean"?!!y:y}var A=Sr(i),c=[],u=0;if(W(e!=="array",'Return type should not be "array".'),r)for(var d=0;d<r.length;d++){var h=a[t[d]];h?(u===0&&(u=ne()),c[d]=h(r[d])):c[d]=r[d]}var I=A.apply(null,c);function m(y){return u!==0&&j(u),s(y)}return I=m(I),I}var lo=1,Bi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Mr(i,e,t){for(var r=e+t,o=e;i[o]&&!(o>=r);)++o;if(o-e>16&&i.subarray&&Bi)return Bi.decode(i.subarray(e,o));for(var a="";e<o;){var s=i[e++];if(!(s&128)){a+=String.fromCharCode(s);continue}var A=i[e++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|A);continue}var c=i[e++]&63;if((s&240)==224?s=(s&15)<<12|A<<6|c:((s&248)!=240&&Re("Invalid UTF-8 leading byte 0x"+s.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),s=(s&7)<<18|A<<12|c<<6|i[e++]&63),s<65536)a+=String.fromCharCode(s);else{var u=s-65536;a+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return a}function at(i,e){return i?Mr(Se,i,e):""}function Rt(i,e,t,r){if(!(r>0))return 0;for(var o=t,a=t+r-1,s=0;s<i.length;++s){var A=i.charCodeAt(s);if(A>=55296&&A<=57343){var c=i.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(A<=127){if(t>=a)break;e[t++]=A}else if(A<=2047){if(t+1>=a)break;e[t++]=192|A>>6,e[t++]=128|A&63}else if(A<=65535){if(t+2>=a)break;e[t++]=224|A>>12,e[t++]=128|A>>6&63,e[t++]=128|A&63}else{if(t+3>=a)break;A>=2097152&&Re("Invalid Unicode code point 0x"+A.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF)."),e[t++]=240|A>>18,e[t++]=128|A>>12&63,e[t++]=128|A>>6&63,e[t++]=128|A&63}}return e[t]=0,t-o}function Je(i,e,t){return W(typeof t=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Rt(i,Se,e,t)}function Ze(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&(r=65536+((r&1023)<<10)|i.charCodeAt(++t)&1023),r<=127?++e:r<=2047?e+=2:r<=65535?e+=3:e+=4}return e}var tr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function bt(i,e){W(i%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=i,r=t>>1,o=r+e/2;!(r>=o)&&ve[r];)++r;if(t=r<<1,t-i>32&&tr)return tr.decode(Se.subarray(i,t));for(var a="",s=0;!(s>=e/2);++s){var A=be[i+s*2>>1];if(A==0)break;a+=String.fromCharCode(A)}return a}function Gn(i,e,t){if(W(e%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),W(typeof t=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<2)return 0;t-=2;for(var r=e,o=t<i.length*2?t/2:i.length,a=0;a<o;++a){var s=i.charCodeAt(a);be[e>>1]=s,e+=2}return be[e>>1]=0,e-r}function Ti(i){return i.length*2}function mn(i,e){W(i%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,r="";!(t>=e/4);){var o=T[i+t*4>>2];if(o==0)break;if(++t,o>=65536){var a=o-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(o)}return r}function Yn(i,e,t){if(W(e%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),W(typeof t=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<4)return 0;for(var r=e,o=r+t-4,a=0;a<i.length;++a){var s=i.charCodeAt(a);if(s>=55296&&s<=57343){var A=i.charCodeAt(++a);s=65536+((s&1023)<<10)|A&1023}if(T[e>>2]=s,e+=4,e+4>o)break}return T[e>>2]=0,e-r}function vi(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&++t,e+=4}return e}function Cn(i){var e=Ze(i)+1,t=it(e);return t&&Rt(i,xe,t,e),t}function Fr(i,e){W(i.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),xe.set(i,e)}function yn(i,e,t){for(var r=0;r<i.length;++r)W(i.charCodeAt(r)===i.charCodeAt(r)&255),xe[e++>>0]=i.charCodeAt(r);t||(xe[e>>0]=0)}function Xn(i,e){return i%e>0&&(i+=e-i%e),i}var kr,xe,Se,be,ve,T,Oe,b,Qe;function ze(i){kr=i,n.HEAP8=xe=new Int8Array(i),n.HEAP16=be=new Int16Array(i),n.HEAP32=T=new Int32Array(i),n.HEAPU8=Se=new Uint8Array(i),n.HEAPU16=ve=new Uint16Array(i),n.HEAPU32=Oe=new Uint32Array(i),n.HEAPF32=b=new Float32Array(i),n.HEAPF64=Qe=new Float64Array(i)}var Nr=5242880;n.TOTAL_STACK&&W(Nr===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var on=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){E("Module.INITIAL_MEMORY has been replaced with plain 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)")}}),W(on>=Nr,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+on+"! (TOTAL_STACK="+Nr+")"),W(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),W(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),W(on==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");var J;function Ur(){var i=Mo();W((i&3)==0),Oe[(i>>2)+1]=34821223,Oe[(i>>2)+2]=2310721022,T[0]=1668509029}function V(){if(!jt){var i=Mo(),e=Oe[(i>>2)+1],t=Oe[(i>>2)+2];(e!=34821223||t!=2310721022)&&E("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+t.toString(16)+" "+e.toString(16)),T[0]!==1668509029&&E("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var i=new Int16Array(1),e=new Int8Array(i.buffer);if(i[0]=25459,e[0]!==115||e[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();var Lt=[],st=[],xr=[],Ht=[],de=!1,an=!1,yr=0;function Ot(){return Hn||yr>0}function Qi(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ri(n.preRun.shift());Q(Lt)}function Ct(){V(),W(!de),de=!0,!n.noFSInit&&!f.init.initialized&&f.init(),f.ignorePermissions=!1,Pe.init(),Q(st)}function Gt(){V(),an=!0}function Pi(){if(V(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Dn(n.postRun.shift());Q(Ht)}function Ri(i){Lt.unshift(i)}function wn(i){st.unshift(i)}function Dn(i){Ht.unshift(i)}W(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(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 Yt=0,rr=null,lt=null,At={};function nr(i){for(var e=i;;){if(!At[i])return i;i=e+Math.random()}}function St(i){Yt++,n.monitorRunDependencies&&n.monitorRunDependencies(Yt),i?(W(!At[i]),At[i]=1,rr===null&&typeof setInterval!="undefined"&&(rr=setInterval(function(){if(jt){clearInterval(rr),rr=null;return}var e=!1;for(var t in At)e||(e=!0,ge("still waiting on run dependencies:")),ge("dependency: "+t);e&&ge("(end of list)")},1e4))):ge("warning: run dependency added without ID")}function wr(i){if(Yt--,n.monitorRunDependencies&&n.monitorRunDependencies(Yt),i?(W(At[i]),delete At[i]):ge("warning: run dependency removed without ID"),Yt==0&&(rr!==null&&(clearInterval(rr),rr=null),lt)){var e=lt;lt=null,e()}}n.preloadedImages={},n.preloadedAudios={};function E(i){n.onAbort&&n.onAbort(i),i+="",ge(i),jt=!0,Pt=1;var e="abort("+i+") at "+sn();i=e;var t=new WebAssembly.RuntimeError(i);throw N(t),t}var ir="data:application/octet-stream;base64,";function p(i){return i.startsWith(ir)}function bn(i){return i.startsWith("file://")}function le(i,e){return function(){var t=i,r=e;return e||(r=n.asm),W(de,"native function `"+t+"` called before runtime initialization"),W(!an,"native function `"+t+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),r[i]||W(r[i],"exported native function `"+t+"` not found"),r[i].apply(null,arguments)}}var He;He="selfie_segmentation_solution_wasm_bin.wasm",p(He)||(He=Oi(He));function ce(i){try{if(i==He&&he)return new Uint8Array(he);if(nn)return nn(i);throw"both async and sync fetching of the wasm failed"}catch(e){E(e)}}function Dr(){if(!he&&(Ye||Ve)){if(typeof fetch=="function"&&!bn(He))return fetch(He,{credentials:"same-origin"}).then(function(i){if(!i.ok)throw"failed to load wasm binary file at '"+He+"'";return i.arrayBuffer()}).catch(function(){return ce(He)});if(er)return new Promise(function(i,e){er(He,function(t){i(new Uint8Array(t))},e)})}return Promise.resolve().then(function(){return ce(He)})}function On(){var i={env:tA,wasi_snapshot_preview1:tA};function e(A,c){var u=A.exports;n.asm=u,xt=n.asm.memory,W(xt,"memory not found in wasm exports"),ze(xt.buffer),J=n.asm.__indirect_function_table,W(J,"table not found in wasm exports"),wn(n.asm.__wasm_call_ctors),wr("wasm-instantiate")}St("wasm-instantiate");var t=n;function r(A){W(n===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,e(A.instance)}function o(A){return Dr().then(function(c){var u=WebAssembly.instantiate(c,i);return u}).then(A,function(c){ge("failed to asynchronously prepare wasm: "+c),bn(He)&&ge("warning: Loading from a file URI ("+He+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),E(c)})}function a(){return!he&&typeof WebAssembly.instantiateStreaming=="function"&&!p(He)&&!bn(He)&&typeof fetch=="function"?fetch(He,{credentials:"same-origin"}).then(function(A){var c=WebAssembly.instantiateStreaming(A,i);return c.then(r,function(u){return ge("wasm streaming compile failed: "+u),ge("falling back to ArrayBuffer instantiation"),o(r)})}):o(r)}if(n.instantiateWasm)try{var s=n.instantiateWasm(i,e);return s}catch(A){return ge("Module.instantiateWasm callback failed with error: "+A),!1}return a().catch(N),{}}var We,ye,Bt={460976:function(){let i=!0;if(i){let e=eo;if(typeof e!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}eo=function(t){if(t==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return e(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return e(t)},i=!1}},461761:function(){return typeof wasmOffsetConverter!="undefined"}};function jr(){return typeof wasmOffsetConverter!="undefined"}function br(i,e){if(P.mainLoop.timingMode=i,P.mainLoop.timingValue=e,!P.mainLoop.func)return ge("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(P.mainLoop.running||(P.mainLoop.running=!0),i==0)P.mainLoop.scheduler=function(){var s=Math.max(0,P.mainLoop.tickStartTime+e-Tt())|0;setTimeout(P.mainLoop.runner,s)},P.mainLoop.method="timeout";else if(i==1)P.mainLoop.scheduler=function(){P.requestAnimationFrame(P.mainLoop.runner)},P.mainLoop.method="rAF";else if(i==2){if(typeof setImmediate=="undefined"){var t=[],r="setimmediate",o=function(a){(a.data===r||a.data.target===r)&&(a.stopPropagation(),t.shift()())};addEventListener("message",o,!0),setImmediate=function(s){t.push(s),Ve?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(s),postMessage({target:r})):postMessage(r,"*")}}P.mainLoop.scheduler=function(){setImmediate(P.mainLoop.runner)},P.mainLoop.method="immediate"}return 0}var Tt;It?Tt=function(){var i=process.hrtime();return i[0]*1e3+i[1]/1e6}:Tt=function(){return performance.now()};function Or(){return!O.currentContext||!O.currentContext.GLctx?-3:O.currentContext.defaultFbo?(O.blitOffscreenFramebuffer(O.currentContext),0):O.currentContext.attributes.explicitSwapControl?0:-3}function Si(i){rc(i)}function Wn(){if(!Ot())try{Si(Pt)}catch(i){if(i instanceof hn)return;throw i}}function Mi(i,e,t,r,o){W(!P.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),P.mainLoop.func=i,P.mainLoop.arg=r;var a=P.mainLoop.currentlyRunningMainloop;function s(){return a<P.mainLoop.currentlyRunningMainloop?(Wn(),!1):!0}if(P.mainLoop.running=!1,P.mainLoop.runner=function(){if(!jt){if(P.mainLoop.queue.length>0){var c=Date.now(),u=P.mainLoop.queue.shift();if(u.func(u.arg),P.mainLoop.remainingBlockers){var d=P.mainLoop.remainingBlockers,h=d%1==0?d-1:Math.floor(d);u.counted?P.mainLoop.remainingBlockers=h:(h=h+.5,P.mainLoop.remainingBlockers=(8*d+h)/9)}if(Ke('main loop blocker "'+u.name+'" took '+(Date.now()-c)+" ms"),P.mainLoop.updateStatus(),!s())return;setTimeout(P.mainLoop.runner,0);return}if(s()){if(P.mainLoop.currentFrameNumber=P.mainLoop.currentFrameNumber+1|0,P.mainLoop.timingMode==1&&P.mainLoop.timingValue>1&&P.mainLoop.currentFrameNumber%P.mainLoop.timingValue!=0){P.mainLoop.scheduler();return}else P.mainLoop.timingMode==0&&(P.mainLoop.tickStartTime=Tt());O.newRenderingFrameStarted(),typeof O!="undefined"&&O.currentContext&&!O.currentContextIsProxied&&!O.currentContext.attributes.explicitSwapControl&&O.currentContext.GLctx.commit&&O.currentContext.GLctx.commit(),P.mainLoop.method==="timeout"&&n.ctx&&(Re("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),P.mainLoop.method=""),P.mainLoop.runIter(i),V(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),P.mainLoop.scheduler())}}},o||(e&&e>0?br(0,1e3/e):br(1,1),P.mainLoop.scheduler()),t)throw"unwind"}function Bn(i,e){if(jt){ge("user callback triggered after application aborted. Ignoring.");return}if(e){i();return}try{i()}catch(t){if(t instanceof hn)return;if(t!=="unwind")throw t&&typeof t=="object"&&t.stack&&ge("exception thrown: "+[t,t.stack]),t}}function or(i,e){return setTimeout(function(){Bn(i)},e)}var P={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){P.mainLoop.scheduler=null,P.mainLoop.currentlyRunningMainloop++},resume:function(){P.mainLoop.currentlyRunningMainloop++;var i=P.mainLoop.timingMode,e=P.mainLoop.timingValue,t=P.mainLoop.func;P.mainLoop.func=null,Mi(t,0,!1,P.mainLoop.arg,!0),br(i,e),P.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var i=n.statusMessage||"Please wait...",e=P.mainLoop.remainingBlockers,t=P.mainLoop.expectedBlockers;e?e<t?n.setStatus(i+" ("+(t-e)+"/"+t+")"):n.setStatus(i):n.setStatus("")}},runIter:function(i){if(!jt){if(n.preMainLoop){var e=n.preMainLoop();if(e===!1)return}Bn(i),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!P.initted){P.initted=!0;try{new Blob,P.hasBlobConstructor=!0}catch(r){P.hasBlobConstructor=!1,Ke("warning: no blob constructor, cannot create blobs with mimetypes")}P.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:P.hasBlobConstructor?null:Ke("warning: no BlobBuilder"),P.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof P.URLObject=="undefined"&&(Ke("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var i={};i.canHandle=function(o){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},i.handle=function(o,a,s,A){var c=null;if(P.hasBlobConstructor)try{c=new Blob([o],{type:P.getMimetype(a)}),c.size!==o.length&&(c=new Blob([new Uint8Array(o).buffer],{type:P.getMimetype(a)}))}catch(I){Re("Blob constructor present but fails: "+I+"; falling back to blob builder")}if(!c){var u=new P.BlobBuilder;u.append(new Uint8Array(o).buffer),c=u.getBlob()}var d=P.URLObject.createObjectURL(c);W(typeof d=="string","createObjectURL must return a url as a string");var h=new Image;h.onload=function(){W(h.complete,"Image "+a+" could not be decoded");var m=document.createElement("canvas");m.width=h.width,m.height=h.height;var y=m.getContext("2d");y.drawImage(h,0,0),n.preloadedImages[a]=m,P.URLObject.revokeObjectURL(d),s&&s(o)},h.onerror=function(m){Ke("Image "+d+" could not be decoded"),A&&A()},h.src=d},n.preloadPlugins.push(i);var e={};e.canHandle=function(o){return!n.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(o,a,s,A){var c=!1;function u(y){c||(c=!0,n.preloadedAudios[a]=y,s&&s(o))}function d(){c||(c=!0,n.preloadedAudios[a]=new Audio,A&&A())}if(P.hasBlobConstructor){try{var h=new Blob([o],{type:P.getMimetype(a)})}catch(y){return d()}var I=P.URLObject.createObjectURL(h);W(typeof I=="string","createObjectURL must return a url as a string");var m=new Audio;m.addEventListener("canplaythrough",function(){u(m)},!1),m.onerror=function(v){if(c)return;Ke("warning: browser could not fully decode audio "+a+", trying slower base64 approach");function U(G){for(var R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",D="=",k="",$=0,Y=0,Ce=0;Ce<G.length;Ce++)for($=$<<8|G[Ce],Y+=8;Y>=6;){var Ne=$>>Y-6&63;Y-=6,k+=R[Ne]}return Y==2?(k+=R[($&3)<<4],k+=D+D):Y==4&&(k+=R[($&15)<<2],k+=D),k}m.src="data:audio/x-"+a.substr(-3)+";base64,"+U(o),u(m)},m.src=I,or(function(){u(m)},1e4)}else return d()},n.preloadPlugins.push(e);var t=n.canvas;t&&(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock||t.msRequestPointerLock||function(){},t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),n.elementPointerLock&&t.addEventListener("click",function(r){!P.pointerLock&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),r.preventDefault())},!1))}},createContext:function(i,e,t,r){if(e&&n.ctx&&i==n.canvas)return n.ctx;var o,a;if(e){var s={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(r)for(var A in r)s[A]=r[A];typeof O!="undefined"&&(a=O.createContext(i,s),a&&(o=O.getContext(a).GLctx))}else o=i.getContext("2d");return o?(t&&(e||W(typeof M=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=o,e&&O.makeContextCurrent(a),n.useWebGL=e,P.moduleContextCreatedCallbacks.forEach(function(c){c()}),P.init()),o):null},destroyContext:function(i,e,t){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,e){P.lockPointer=i,P.resizeCanvas=e,typeof P.lockPointer=="undefined"&&(P.lockPointer=!0),typeof P.resizeCanvas=="undefined"&&(P.resizeCanvas=!1);var t=n.canvas;function r(){P.isFullscreen=!1;var a=t.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a?(t.exitFullscreen=P.exitFullscreen,P.lockPointer&&t.requestPointerLock(),P.isFullscreen=!0,P.resizeCanvas?P.setFullscreenCanvasSize():P.updateCanvasDimensions(t)):(a.parentNode.insertBefore(t,a),a.parentNode.removeChild(a),P.resizeCanvas?P.setWindowedCanvasSize():P.updateCanvasDimensions(t)),n.onFullScreen&&n.onFullScreen(P.isFullscreen),n.onFullscreen&&n.onFullscreen(P.isFullscreen)}P.fullscreenHandlersInstalled||(P.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var o=document.createElement("div");t.parentNode.insertBefore(o,t),o.appendChild(t),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){E("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){if(!P.isFullscreen)return!1;var i=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){};return i.apply(document,[]),!0},nextRAF:0,fakeRequestAnimationFrame:function(i){var e=Date.now();if(P.nextRAF===0)P.nextRAF=e+1e3/60;else for(;e+2>=P.nextRAF;)P.nextRAF+=1e3/60;var t=Math.max(P.nextRAF-e,0);setTimeout(i,t)},requestAnimationFrame:function(i){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(i);return}var e=P.fakeRequestAnimationFrame;e(i)},safeSetTimeout:function(i){return or(i)},safeRequestAnimationFrame:function(i){return P.requestAnimationFrame(function(){Bn(i)})},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var e=0;switch(i.type){case"DOMMouseScroll":e=i.detail/3;break;case"mousewheel":e=i.wheelDelta/120;break;case"wheel":switch(e=i.deltaY,i.deltaMode){case 0:e/=100;break;case 1:e/=3;break;case 2:e*=80;break;default:throw"unrecognized mouse wheel delta mode: "+i.deltaMode}break;default:throw"unrecognized mouse wheel event: "+i.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(P.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?P.mouseMovementX=P.mouseMovementY=0:(P.mouseMovementX=P.getMovementX(i),P.mouseMovementY=P.getMovementY(i)),typeof SDL!="undefined"?(P.mouseX=SDL.mouseX+P.mouseMovementX,P.mouseY=SDL.mouseY+P.mouseMovementY):(P.mouseX+=P.mouseMovementX,P.mouseY+=P.mouseMovementY);else{var e=n.canvas.getBoundingClientRect(),t=n.canvas.width,r=n.canvas.height,o=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,a=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(W(typeof o!="undefined"&&typeof a!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var s=i.touch;if(s===void 0)return;var A=s.pageX-(o+e.left),c=s.pageY-(a+e.top);A=A*(t/e.width),c=c*(r/e.height);var u={x:A,y:c};if(i.type==="touchstart")P.lastTouches[s.identifier]=u,P.touches[s.identifier]=u;else if(i.type==="touchend"||i.type==="touchmove"){var d=P.touches[s.identifier];d||(d=u),P.lastTouches[s.identifier]=d,P.touches[s.identifier]=u}return}var h=i.pageX-(o+e.left),I=i.pageY-(a+e.top);h=h*(t/e.width),I=I*(r/e.height),P.mouseMovementX=h-P.mouseX,P.mouseMovementY=I-P.mouseY,P.mouseX=h,P.mouseY=I}},resizeListeners:[],updateResizeListeners:function(){var i=n.canvas;P.resizeListeners.forEach(function(e){e(i.width,i.height)})},setCanvasSize:function(i,e,t){var r=n.canvas;P.updateCanvasDimensions(r,i,e),t||P.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=Oe[SDL.screen>>2];i=i|8388608,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=Oe[SDL.screen>>2];i=i&-8388609,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},updateCanvasDimensions:function(i,e,t){e&&t?(i.widthNative=e,i.heightNative=t):(e=i.widthNative,t=i.heightNative);var r=e,o=t;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(r/o<n.forcedAspectRatio?r=Math.round(o*n.forcedAspectRatio):o=Math.round(r/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&typeof screen!="undefined"){var a=Math.min(screen.width/r,screen.height/o);r=Math.round(r*a),o=Math.round(o*a)}P.resizeCanvas?(i.width!=r&&(i.width=r),i.height!=o&&(i.height=o),typeof i.style!="undefined"&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=e&&(i.width=e),i.height!=t&&(i.height=t),typeof i.style!="undefined"&&(r!=e||o!=t?(i.style.setProperty("width",r+"px","important"),i.style.setProperty("height",o+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))}};function Q(i){for(;i.length>0;){var e=i.shift();if(typeof e=="function"){e(n);continue}var t=e.func;typeof t=="number"?e.arg===void 0?J.get(t)():J.get(t)(e.arg):t(e.arg===void 0?null:e.arg)}}function Tn(i){return Re("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function Lr(i){var e=/\b_Z[\w\d_]+/g;return i.replace(e,function(t){var r=Tn(t);return t===r?t:r+" ["+t+"]"})}function Vn(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function sn(){var i=Vn();return n.extraStackTrace&&(i+=`
31
- `+n.extraStackTrace()),Lr(i)}function Fi(i){return it(i+16)+16}function fo(i,e){}function vn(i,e){return void 0}function Br(i){this.excPtr=i,this.ptr=i-16,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_refcount=function(e){T[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,xe[this.ptr+12>>0]=e},this.get_caught=function(){return xe[this.ptr+12>>0]!=0},this.set_rethrown=function(e){e=e?1:0,xe[this.ptr+13>>0]=e},this.get_rethrown=function(){return xe[this.ptr+13>>0]!=0},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=T[this.ptr>>2];T[this.ptr>>2]=e+1},this.release_ref=function(){var e=T[this.ptr>>2];return T[this.ptr>>2]=e-1,W(e>0),e===1}}function Mt(i){this.free=function(){_r(this.ptr),this.ptr=0},this.set_base_ptr=function(e){T[this.ptr>>2]=e},this.get_base_ptr=function(){return T[this.ptr>>2]},this.set_adjusted_ptr=function(e){T[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return T[this.ptr+4>>2]},this.get_exception_ptr=function(){var e=ko(this.get_exception_info().get_type());if(e)return T[this.get_base_ptr()>>2];var t=this.get_adjusted_ptr();return t!==0?t:this.get_base_ptr()},this.get_exception_info=function(){return new Br(this.get_base_ptr())},i===void 0?(this.ptr=it(8),this.set_adjusted_ptr(0)):this.ptr=i}var Xt=[];function Hr(i){i.add_ref()}var vt=0;function Qn(i){var e=new Mt(i),t=e.get_exception_info();return t.get_caught()||(t.set_caught(!0),vt--),t.set_rethrown(!1),Xt.push(e),Hr(t),e.get_exception_ptr()}var Wt=0;function Ft(i){try{return _r(new Br(i).ptr)}catch(e){ge("exception during cxa_free_exception: "+e)}}function Tr(i){if(i.release_ref()&&!i.get_rethrown()){var e=i.get_destructor();e&&J.get(e)(i.excPtr),Ft(i.excPtr)}}function ki(){oe(0),W(Xt.length>0);var i=Xt.pop();Tr(i.get_exception_info()),i.free(),Wt=0}function zn(i){var e=new Mt(i),t=e.get_base_ptr();throw Wt||(Wt=t),e.free(),t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Pn(){var i=Wt;if(!i)return mt(0),0;var e=new Br(i),t=e.get_type(),r=new Mt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return mt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return mt(s),r.ptr|0}return mt(t),r.ptr|0}function Ni(){var i=Wt;if(!i)return mt(0),0;var e=new Br(i),t=e.get_type(),r=new Mt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return mt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return mt(s),r.ptr|0}return mt(t),r.ptr|0}function $n(){var i=Xt.pop();i||E("no exception to throw");var e=i.get_exception_info(),t=i.get_base_ptr();throw e.get_rethrown()?i.free():(Xt.push(i),e.set_rethrown(!0),e.set_caught(!1),vt++),Wt=t,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Ui(i,e){return void 0}function xi(i,e,t){var r=new Br(i);throw r.init(e,t),Wt=i,vt++,i+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Kn(i){return T[tn()>>2]=i,i}var _e={splitPath:function(i){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(i).slice(1)},normalizeArray:function(i,e){for(var t=0,r=i.length-1;r>=0;r--){var o=i[r];o==="."?i.splice(r,1):o===".."?(i.splice(r,1),t++):t&&(i.splice(r,1),t--)}if(e)for(;t;t--)i.unshift("..");return i},normalize:function(i){var e=i.charAt(0)==="/",t=i.substr(-1)==="/";return i=_e.normalizeArray(i.split("/").filter(function(r){return!!r}),!e).join("/"),!i&&!e&&(i="."),i&&t&&(i+="/"),(e?"/":"")+i},dirname:function(i){var e=_e.splitPath(i),t=e[0],r=e[1];return!t&&!r?".":(r&&(r=r.substr(0,r.length-1)),t+r)},basename:function(i){if(i==="/")return"/";i=_e.normalize(i),i=i.replace(/\/$/,"");var e=i.lastIndexOf("/");return e===-1?i:i.substr(e+1)},extname:function(i){return _e.splitPath(i)[3]},join:function(){var i=Array.prototype.slice.call(arguments,0);return _e.normalize(i.join("/"))},join2:function(i,e){return _e.normalize(i+"/"+e)}};function Ie(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var i=new Uint8Array(1);return function(){return crypto.getRandomValues(i),i[0]}}else if(It)try{var e=Ic("crypto");return function(){return e.randomBytes(1)[0]}}catch(t){}return function(){E("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 dt={resolve:function(){for(var i="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var r=t>=0?arguments[t]:f.cwd();if(typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";i=r+"/"+i,e=r.charAt(0)==="/"}return i=_e.normalizeArray(i.split("/").filter(function(o){return!!o}),!e).join("/"),(e?"/":"")+i||"."},relative:function(i,e){i=dt.resolve(i).substr(1),e=dt.resolve(e).substr(1);function t(u){for(var d=0;d<u.length&&u[d]==="";d++);for(var h=u.length-1;h>=0&&u[h]==="";h--);return d>h?[]:u.slice(d,h-d+1)}for(var r=t(i.split("/")),o=t(e.split("/")),a=Math.min(r.length,o.length),s=a,A=0;A<a;A++)if(r[A]!==o[A]){s=A;break}for(var c=[],A=s;A<r.length;A++)c.push("..");return c=c.concat(o.slice(s)),c.join("/")}},Pe={ttys:[],init:function(){},shutdown:function(){},register:function(i,e){Pe.ttys[i]={input:[],output:[],ops:e},f.registerDevice(i,Pe.stream_ops)},stream_ops:{open:function(i){var e=Pe.ttys[i.node.rdev];if(!e)throw new f.ErrnoError(43);i.tty=e,i.seekable=!1},close:function(i){i.tty.ops.flush(i.tty)},flush:function(i){i.tty.ops.flush(i.tty)},read:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.get_char)throw new f.ErrnoError(60);for(var a=0,s=0;s<r;s++){var A;try{A=i.tty.ops.get_char(i.tty)}catch(c){throw new f.ErrnoError(29)}if(A===void 0&&a===0)throw new f.ErrnoError(6);if(A==null)break;a++,e[t+s]=A}return a&&(i.node.timestamp=Date.now()),a},write:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.put_char)throw new f.ErrnoError(60);try{for(var a=0;a<r;a++)i.tty.ops.put_char(i.tty,e[t+a])}catch(s){throw new f.ErrnoError(29)}return r&&(i.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(i){if(!i.input.length){var e=null;if(It){var t=256,r=Buffer.alloc(t),o=0;try{o=nodeFS.readSync(process.stdin.fd,r,0,t,null)}catch(a){if(a.toString().includes("EOF"))o=0;else throw a}o>0?e=r.slice(0,o).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=`
30
+ `},"%p"(D){return D.tm_hour>=0&&D.tm_hour<12?"AM":"PM"},"%S"(D){return m(D.tm_sec,2)},"%t"(){return" "},"%u"(D){return D.tm_wday||7},"%U"(D){let k=new Date(D.tm_year+1900,0,1),$=k.getDay()===0?k:Un(k,7-k.getDay()),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let Ce=_n(pn(Y.getFullYear())?Zr:qr,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,k)===0?"01":"00"},"%V"(D){let k=new Date(D.tm_year+1900,0,4),$=new Date(D.tm_year+1901,0,4),Y=v(k),Ce=v($),Ne=Un(new Date(D.tm_year+1900,0,1),D.tm_yday);if(y(Ne,Y)<0)return"53";if(y(Ce,Ne)<=0)return"01";let hr;return Y.getFullYear()<D.tm_year+1900?hr=D.tm_yday+32-Y.getDate():hr=D.tm_yday+1-Y.getDate(),m(Math.ceil(hr/7),2)},"%w"(D){return D.tm_wday},"%W"(D){let k=new Date(D.tm_year,0,1),$=k.getDay()===1?k:Un(k,k.getDay()===0?1:7-k.getDay()+1),Y=new Date(D.tm_year+1900,D.tm_mon,D.tm_mday);if(y($,Y)<0){let Ce=_n(pn(Y.getFullYear())?Zr:qr,Y.getMonth()-1)-31,hr=31-$.getDate()+Ce+Y.getDate();return m(Math.ceil(hr/7),2)}return y($,k)===0?"01":"00"},"%y"(D){return(D.tm_year+1900).toString().substring(2)},"%Y"(D){return D.tm_year+1900},"%z"(D){let k=D.tm_gmtoff,$=k>=0;return k=Math.abs(k)/60,k=k/60*100+k%60,($?"+":"-")+`0000${k}`.slice(-4)},"%Z"(D){return D.tm_zone},"%%"(){return"%"}};for(var u in G)A.includes(u)&&(A=A.replace(new RegExp(u,"g"),G[u](s)));let R=yi(A,!1);return R.length>t?0:(Xn(R,e),R.length-1)}function So(e,t,r,o){return Ro(e,t,r,o)}n.requestFullscreen=function(t,r){Q.requestFullscreen(t,r)},n.requestFullScreen=function(){Q.requestFullScreen()},n.requestAnimationFrame=function(t){Q.requestAnimationFrame(t)},n.setCanvasSize=function(t,r,o){Q.setCanvasSize(t,r,o)},n.pauseMainLoop=function(){Q.mainLoop.pause()},n.resumeMainLoop=function(){Q.mainLoop.resume()},n.getUserMedia=function(){Q.getUserMedia()},n.createContext=function(t,r,o,a){return Q.createContext(t,r,o,a)};let xn=function(e,t,r,o){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=l.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=o},en=365,M=146;Object.defineProperties(xn.prototype,{read:{get(){return(this.mode&en)===en},set(e){e?this.mode|=en:this.mode&=~en}},write:{get(){return(this.mode&M)===M},set(e){e?this.mode|=M:this.mode&=~M}},isFolder:{get(){return l.isDir(this.mode)}},isDevice:{get(){return l.isChrdev(this.mode)}}}),l.FSNode=xn,l.staticInit(),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,un(),qn=n.PureVirtualError=Gr(Error,"PureVirtualError"),ei(),Nt(),ae=n.BindingError=Gr(Error,"BindingError"),F=n.InternalError=Gr(Error,"InternalError"),ke(),gr(),Qr=n.UnboundTypeError=Gr(Error,"UnboundTypeError");let S;for(var Dt=0;Dt<32;++Dt)Bo.push(new Array(Dt));let eA=new Float32Array(288);for(var Dt=0;Dt<288;++Dt)pi[Dt]=eA.subarray(0,Dt+1);let Ac=new Int32Array(288);for(var Dt=0;Dt<288;++Dt)Po[Dt]=Ac.subarray(0,Dt+1);let ao=!0;function yi(e,t,r){let o=r>0?r:bt(e)+1,a=new Array(o),s=Ze(e,a,0,a.length);return t&&(a.length=s),a}let cc=typeof atob=="function"?atob:function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",o,a,s,A,c,u,d,h=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do A=t.indexOf(e.charAt(h++)),c=t.indexOf(e.charAt(h++)),u=t.indexOf(e.charAt(h++)),d=t.indexOf(e.charAt(h++)),o=A<<2|c>>4,a=(c&15)<<4|u>>2,s=(u&3)<<6|d,r=r+String.fromCharCode(o),u!==64&&(r=r+String.fromCharCode(a)),d!==64&&(r=r+String.fromCharCode(s));while(h<e.length);return r};function tA(e){if(typeof It=="boolean"&&It){let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}try{let t=cc(e),r=new Uint8Array(t.length);for(let o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(t){throw new Error("Converting base64 string to bytes failed.")}}var rA={HaveOffsetConverter:br,__cxa_allocate_exception:fo,__cxa_atexit:Br,__cxa_begin_catch:Wt,__cxa_end_catch:zn,__cxa_find_matching_catch_2:Ni,__cxa_find_matching_catch_3:$n,__cxa_free_exception:Tr,__cxa_rethrow:Ui,__cxa_thread_atexit:xi,__cxa_throw:Kn,__resumeException:Pn,__sys_fcntl64:Hi,__sys_ioctl:Gi,__sys_mmap2:Xi,__sys_open:Wi,__sys_stat64:Zn,_embind_create_inheriting_constructor:ur,_embind_finalize_value_object:L,_embind_register_bigint:q,_embind_register_bool:me,_embind_register_class:_o,_embind_register_class_class_function:$o,_embind_register_class_constructor:Ko,_embind_register_class_function:ho,_embind_register_class_property:mo,_embind_register_emval:gn,_embind_register_float:Zo,_embind_register_function:qo,_embind_register_integer:ta,_embind_register_memory_view:ra,_embind_register_std_string:na,_embind_register_std_wstring:ia,_embind_register_value_object:oa,_embind_register_value_object_field:aa,_embind_register_void:sa,_emval_call_void_method:ca,_emval_decref:Co,_emval_get_method_caller:da,_emval_incref:fa,_emval_take_value:ga,abort:Ea,clock_gettime:_a,dlopen:ha,dlsym:ai,emscripten_asm_const_int:ma,emscripten_get_heap_max:Ca,emscripten_memcpy_big:ya,emscripten_pc_get_function:wa,emscripten_resize_heap:Ai,emscripten_stack_snapshot:ba,emscripten_stack_unwind_buffer:Oa,emscripten_thread_sleep:Ba,emscripten_webgl_create_context:Fa,emscripten_webgl_destroy_context:ka,emscripten_webgl_get_context_attributes:Na,emscripten_webgl_get_current_context:ro,emscripten_webgl_init_context_attributes:no,emscripten_webgl_make_context_current:bo,environ_get:Ua,environ_sizes_get:xa,exit:Wn,fd_close:ja,fd_read:La,fd_seek:Ha,fd_write:Ga,getTempRet0:ci,getentropy:ui,glActiveTexture:Ya,glAttachShader:Xa,glBindAttribLocation:Wa,glBindBuffer:Va,glBindBufferBase:za,glBindFramebuffer:$a,glBindTexture:Ka,glBindVertexArray:Ja,glBufferData:Za,glClientWaitSync:es,glCompileShader:ts,glCreateProgram:rs,glCreateShader:ns,glDeleteBuffers:is,glDeleteFramebuffers:os,glDeleteProgram:as,glDeleteShader:ss,glDeleteSync:As,glDeleteTextures:cs,glDeleteVertexArrays:us,glDisable:ls,glDisableVertexAttribArray:ds,glDrawArrays:Oo,glDrawBuffers:fs,glEnableVertexAttribArray:gs,glFenceSync:Es,glFinish:ps,glFlush:_s,glFramebufferTexture2D:hs,glFramebufferTextureLayer:li,glGenBuffers:Is,glGenFramebuffers:ms,glGenTextures:Cs,glGenVertexArrays:ys,glGetAttribLocation:ws,glGetError:Ds,glGetIntegerv:fi,glGetString:vs,glGetUniformBlockIndex:Qs,glGetUniformLocation:Rs,glLinkProgram:Ss,glPixelStorei:Ms,glReadPixels:ks,glShaderSource:Ns,glTexImage2D:Us,glTexParameterfv:xs,glTexParameteri:js,glTexStorage2D:Ls,glTexStorage3D:Hs,glTexSubImage2D:Gs,glTexSubImage3D:Zt,glUniform1f:Ys,glUniform1i:Ei,glUniform2fv:Xs,glUniform4fv:Qo,glUniform4iv:Ws,glUniformBlockBinding:Vs,glUniformMatrix4fv:zs,glUseProgram:$s,glVertexAttribPointer:Ks,glViewport:_i,gmtime_r:hi,invoke_diii:OA,invoke_i:PA,invoke_ii:fA,invoke_iii:sA,invoke_iiii:BA,invoke_iiiii:mA,invoke_iiiiii:wA,invoke_iiiiiii:cA,invoke_iiiiiiiddi:ZA,invoke_iiiiiiii:bA,invoke_iiiiiiiii:FA,invoke_v:uA,invoke_vdiii:wi,invoke_vi:aA,invoke_vididdii:VA,invoke_vidii:$A,invoke_vii:dA,invoke_viid:oA,invoke_viidi:tc,invoke_viididii:MA,invoke_viii:gA,invoke_viiid:zA,invoke_viiidd:yA,invoke_viiiddi:QA,invoke_viiidi:RA,invoke_viiii:IA,invoke_viiiid:qA,invoke_viiiidi:SA,invoke_viiiidid:ec,invoke_viiiidiidiiiiiii:WA,invoke_viiiifiifiiiiiii:XA,invoke_viiiii:AA,invoke_viiiiid:UA,invoke_viiiiif:HA,invoke_viiiiii:EA,invoke_viiiiiid:xA,invoke_viiiiiif:GA,invoke_viiiiiii:pA,invoke_viiiiiiiddi:JA,invoke_viiiiiiidiiii:LA,invoke_viiiiiiifiiii:YA,invoke_viiiiiiii:_A,invoke_viiiiiiiidd:NA,invoke_viiiiiiiidf:kA,invoke_viiiiiiiii:hA,invoke_viiiiiiiiidd:TA,invoke_viiiiiiiiiddi:vA,invoke_viiiiiiiiii:lA,invoke_viiiiiiiiiiddi:KA,invoke_viiiiiiiiiii:CA,invoke_viiiiiiiiiiii:jA,invoke_viiiiiiiiiiiii:DA,llvm_eh_typeid_for:Ii,localtime_r:Js,mktime:Zs,proc_exit:qs,setTempRet0:Ci,strftime:Ro,strftime_l:So};let Jc=We(),_r=n.___wasm_call_ctors=ce("__wasm_call_ctors");var it=n._free=ce("free"),tn=n._malloc=ce("malloc"),uc=n.___errno_location=ce("__errno_location");let lc=n._fflush=ce("fflush");var dc=n.___getTypeName=ce("__getTypeName");let Zc=n.___embind_register_native_and_builtin_types=ce("__embind_register_native_and_builtin_types"),Mo=n._emscripten_main_thread_process_queued_calls=ce("emscripten_main_thread_process_queued_calls");var rn=n._emscripten_stack_get_end=function(){return(rn=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},jn=n.__get_tzname=ce("_get_tzname"),nA=n.__get_daylight=ce("_get_daylight"),ne=n.__get_timezone=ce("_get_timezone"),j=n.stackSave=ce("stackSave"),te=n.stackRestore=ce("stackRestore"),so=n.stackAlloc=ce("stackAlloc"),Fo=n._emscripten_stack_init=function(){return(Fo=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},fc=n._emscripten_stack_get_free=function(){return(fc=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)};let oe=n._saveSetjmp=ce("saveSetjmp");var re=n._setThrew=ce("setThrew"),ko=n.___cxa_can_catch=ce("__cxa_can_catch"),iA=n.___cxa_is_pointer_type=ce("__cxa_is_pointer_type"),gc=n._memalign=ce("memalign");let qc=n._emscripten_builtin_malloc=ce("emscripten_builtin_malloc"),eu=n._emscripten_builtin_free=ce("emscripten_builtin_free"),tu=n._emscripten_builtin_memalign=ce("emscripten_builtin_memalign"),ru=n.dynCall_jii=ce("dynCall_jii"),nu=n.dynCall_viji=ce("dynCall_viji"),iu=n.dynCall_jjj=ce("dynCall_jjj"),ou=n.dynCall_iiiijj=ce("dynCall_iiiijj"),au=n.dynCall_viijj=ce("dynCall_viijj"),su=n.dynCall_viiijjjj=ce("dynCall_viiijjjj"),Au=n.dynCall_ji=ce("dynCall_ji"),cu=n.dynCall_vij=ce("dynCall_vij"),uu=n.dynCall_viijii=ce("dynCall_viijii"),lu=n.dynCall_vj=ce("dynCall_vj"),du=n.dynCall_viij=ce("dynCall_viij"),fu=n.dynCall_viiiiij=ce("dynCall_viiiiij"),gu=n.dynCall_iijjiiii=ce("dynCall_iijjiiii"),Eu=n.dynCall_jiji=ce("dynCall_jiji"),pu=n.dynCall_iiiiij=ce("dynCall_iiiiij"),_u=n.dynCall_iiiiijj=ce("dynCall_iiiiijj"),Ec=n.dynCall_iiiiiijj=ce("dynCall_iiiiiijj");function oA(e,t,r,o){let a=j();try{V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function aA(e,t){let r=j();try{V.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function sA(e,t,r){let o=j();try{return V.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function AA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function cA(e,t,r,o,a,s,A){let c=j();try{return V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function uA(e){let t=j();try{V.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function lA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function dA(e,t,r){let o=j();try{V.get(e)(t,r)}catch(a){if(te(o),a!==a+0&&a!=="longjmp")throw a;re(1,0)}}function fA(e,t){let r=j();try{return V.get(e)(t)}catch(o){if(te(r),o!==o+0&&o!=="longjmp")throw o;re(1,0)}}function gA(e,t,r,o){let a=j();try{V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function EA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function pA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function _A(e,t,r,o,a,s,A,c,u){let d=j();try{V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function hA(e,t,r,o,a,s,A,c,u,d){let h=j();try{V.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function IA(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function mA(e,t,r,o,a){let s=j();try{return V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function CA(e,t,r,o,a,s,A,c,u,d,h,I){let m=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function yA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function wA(e,t,r,o,a,s){let A=j();try{return V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function DA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(U){if(te(v),U!==U+0&&U!=="longjmp")throw U;re(1,0)}}function bA(e,t,r,o,a,s,A,c){let u=j();try{return V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function OA(e,t,r,o){let a=j();try{return V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function BA(e,t,r,o){let a=j();try{return V.get(e)(t,r,o)}catch(s){if(te(a),s!==s+0&&s!=="longjmp")throw s;re(1,0)}}function TA(e,t,r,o,a,s,A,c,u,d,h,I){let m=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(te(m),y!==y+0&&y!=="longjmp")throw y;re(1,0)}}function vA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function QA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function PA(e){let t=j();try{return V.get(e)()}catch(r){if(te(t),r!==r+0&&r!=="longjmp")throw r;re(1,0)}}function RA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function SA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function MA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function FA(e,t,r,o,a,s,A,c,u){let d=j();try{return V.get(e)(t,r,o,a,s,A,c,u)}catch(h){if(te(d),h!==h+0&&h!=="longjmp")throw h;re(1,0)}}function kA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function NA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function UA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function xA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function jA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function LA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function HA(e,t,r,o,a,s,A){let c=j();try{V.get(e)(t,r,o,a,s,A)}catch(u){if(te(c),u!==u+0&&u!=="longjmp")throw u;re(1,0)}}function GA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function YA(e,t,r,o,a,s,A,c,u,d,h,I,m){let y=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(te(y),v!==v+0&&v!=="longjmp")throw v;re(1,0)}}function XA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,U){let G=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,U)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function WA(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v,U){let G=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y,v,U)}catch(R){if(te(G),R!==R+0&&R!=="longjmp")throw R;re(1,0)}}function VA(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function zA(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function $A(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function KA(e,t,r,o,a,s,A,c,u,d,h,I,m,y){let v=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h,I,m,y)}catch(U){if(te(v),U!==U+0&&U!=="longjmp")throw U;re(1,0)}}function JA(e,t,r,o,a,s,A,c,u,d,h){let I=j();try{V.get(e)(t,r,o,a,s,A,c,u,d,h)}catch(m){if(te(I),m!==m+0&&m!=="longjmp")throw m;re(1,0)}}function ZA(e,t,r,o,a,s,A,c,u,d){let h=j();try{return V.get(e)(t,r,o,a,s,A,c,u,d)}catch(I){if(te(h),I!==I+0&&I!=="longjmp")throw I;re(1,0)}}function qA(e,t,r,o,a,s){let A=j();try{V.get(e)(t,r,o,a,s)}catch(c){if(te(A),c!==c+0&&c!=="longjmp")throw c;re(1,0)}}function ec(e,t,r,o,a,s,A,c){let u=j();try{V.get(e)(t,r,o,a,s,A,c)}catch(d){if(te(u),d!==d+0&&d!=="longjmp")throw d;re(1,0)}}function tc(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}function wi(e,t,r,o,a){let s=j();try{V.get(e)(t,r,o,a)}catch(A){if(te(s),A!==A+0&&A!=="longjmp")throw A;re(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){p("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){p("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){p("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){p("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){p("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){p("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){p("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){p("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){p("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){p("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){p("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){p("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){p("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){p("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){p("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){p("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){p("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){p("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){p("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){p("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=E,n.removeRunDependency=ir,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){p("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=l.createPath,n.FS_createDataFile=l.createDataFile,n.FS_createPreloadedFile=l.createPreloadedFile,n.FS_createLazyFile=l.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){p("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=l.createDevice,n.FS_unlink=l.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){p("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){p("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){p("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){p("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){p("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){p("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){p("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){p("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){p("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){p("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){p("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){p("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){p("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){p("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){p("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){p("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){p("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){p("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){p("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){p("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){p("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){p("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){p("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){p("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){p("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){p("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){p("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){p("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){p("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){p("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){p("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){p("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){p("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){p("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){p("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){p("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){p("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){p("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){p("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){p("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){p("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){p("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){p("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){p("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){p("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){p("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){p("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){p("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){p("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){p("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){p("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){p("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){p("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){p("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){p("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){p("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){p("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){p("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){p("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){p("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){p("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){p("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){p("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){p("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){p("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){p("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){p("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){p("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){p("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){p("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){p("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){p("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){p("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){p("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){p("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){p("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){p("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){p("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){p("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){p("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){p("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){p("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){p("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){p("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){p("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){p("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){p("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){p("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){p("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){p("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){p("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){p("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){p("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){p("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){p("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){p("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){p("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){p("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){p("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){p("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){p("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){p("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){p("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){p("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){p("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){p("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){p("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){p("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){p("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){p("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){p("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){p("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){p("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){p("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){p("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){p("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){p("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){p("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){p("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){p("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){p("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){p("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){p("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){p("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){p("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){p("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){p("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){p("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){p("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){p("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){p("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){p("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){p("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){p("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){p("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){p("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){p("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){p("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){p("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){p("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){p("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){p("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){p("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){p("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){p("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){p("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){p("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){p("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){p("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){p("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){p("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=w,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){p("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){p("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){p("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){p("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){p("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){p("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){p("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){p("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){p("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){p("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){p("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){p("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){p("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){p("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){p("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){p("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){p("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){p("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){p("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){p("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){p("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){p("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){p("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){p("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){p("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){p("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){p("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){p("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){p("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){p("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){p("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){p("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){p("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){p("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){p("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){p("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){p("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){p("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){p("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){p("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){p("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){p("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){p("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){p("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){p("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){p("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){p("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){p("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){p("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){p("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){p("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){p("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){p("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){p("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){p("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){p("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){p("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){p("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){p("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){p("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){p("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){p("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){p("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){p("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){p("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){p("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){p("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){p("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){p("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){p("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){p("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){p("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){p("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){p("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){p("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){p("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){p("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){p("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){p("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){p("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){p("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){p("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){p("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){p("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){p("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){p("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){p("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){p("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){p("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){p("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){p("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){p("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){p("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){p("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){p("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){p("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){p("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){p("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){p("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){p("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){p("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){p("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){p("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){p("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){p("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){p("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){p("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){p("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){p("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){p("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){p("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){p("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){p("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){p("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){p("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){p("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){p("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){p("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){p("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){p("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){p("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){p("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){p("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){p("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){p("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){p("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){p("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){p("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){p("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){p("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Lt,n.checkStackCookie=st,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get(){p("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get(){p("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});let hn;function Ao(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}nr=function e(){hn||uo(),hn||(nr=e)};function co(){Fo(),Lt()}function uo(e){if(e=e||ot,lt>0||(co(),Gt(),lt>0))return;function t(){hn||(hn=!0,n.calledRun=!0,!W&&(Pi(),Ee(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),z(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),wn()))}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>{n.setStatus("")},1),t()},1)):t(),st()}n.run=uo;function rc(){let e=Re,t=pe,r=!1;Re=pe=function(o){r=!0};try{let o=n._fflush;o&&o(0),["stdout","stderr"].forEach(a=>{let s=l.analyzePath(`/dev/${a}`);if(!s)return;let A=s.object,{rdev:c}=A,u=yt.ttys[c];u&&u.output&&u.output.length&&(r=!0)})}catch(o){}Re=e,pe=t,r&&tt("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.")}function No(e,t){if(Sr=e,rc(),Ct()){if(!t){let r=`program exited (with status: ${e}), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)`;N(r),pe(r)}}else Ri();i(e)}function i(e){Sr=e,Ct()||(n.onExit&&n.onExit(e),W=!0),$e(e,new Ao(e))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return uo(),x.ready}}(),Dc=bu;var Ou=function(){var J=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(J=J||__filename),function(x){x=x||{};var n=typeof x!="undefined"?x:{},Ee,N;n.ready=new Promise(function(i,e){Ee=i,N=e}),Object.getOwnPropertyDescriptor(n.ready,"_main")||(Object.defineProperty(n.ready,"_main",{configurable:!0,get:function(){E("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_main",{configurable:!0,set:function(){E("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_end")||(Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_get_free")||(Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){E("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){E("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_stack_init")||(Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,get:function(){E("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_stack_init",{configurable:!0,set:function(){E("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackSave")||(Object.defineProperty(n.ready,"_stackSave",{configurable:!0,get:function(){E("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackSave",{configurable:!0,set:function(){E("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackRestore")||(Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,get:function(){E("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackRestore",{configurable:!0,set:function(){E("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_stackAlloc")||(Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,get:function(){E("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_stackAlloc",{configurable:!0,set:function(){E("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___wasm_call_ctors")||(Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,get:function(){E("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___wasm_call_ctors",{configurable:!0,set:function(){E("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_fflush")||(Object.defineProperty(n.ready,"_fflush",{configurable:!0,get:function(){E("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_fflush",{configurable:!0,set:function(){E("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___errno_location")||(Object.defineProperty(n.ready,"___errno_location",{configurable:!0,get:function(){E("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___errno_location",{configurable:!0,set:function(){E("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_malloc")||(Object.defineProperty(n.ready,"_malloc",{configurable:!0,get:function(){E("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_malloc",{configurable:!0,set:function(){E("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_free")||(Object.defineProperty(n.ready,"_free",{configurable:!0,get:function(){E("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_free",{configurable:!0,set:function(){E("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_setThrew")||(Object.defineProperty(n.ready,"_setThrew",{configurable:!0,get:function(){E("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_setThrew",{configurable:!0,set:function(){E("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_is_pointer_type")||(Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,get:function(){E("You are getting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_is_pointer_type",{configurable:!0,set:function(){E("You are setting ___cxa_is_pointer_type on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___cxa_can_catch")||(Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,get:function(){E("You are getting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___cxa_can_catch",{configurable:!0,set:function(){E("You are setting ___cxa_can_catch on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_saveSetjmp")||(Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,get:function(){E("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_saveSetjmp",{configurable:!0,set:function(){E("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_memalign")||(Object.defineProperty(n.ready,"_memalign",{configurable:!0,get:function(){E("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_memalign",{configurable:!0,set:function(){E("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){E("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){E("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){E("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){E("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_tzname")||(Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,get:function(){E("You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_tzname",{configurable:!0,set:function(){E("You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_daylight")||(Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,get:function(){E("You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_daylight",{configurable:!0,set:function(){E("You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"__get_timezone")||(Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,get:function(){E("You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"__get_timezone",{configurable:!0,set:function(){E("You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_malloc")||(Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_malloc",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_free")||(Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_free",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"_emscripten_builtin_memalign")||(Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,get:function(){E("You are getting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"_emscripten_builtin_memalign",{configurable:!0,set:function(){E("You are setting _emscripten_builtin_memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___getTypeName")||(Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,get:function(){E("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___getTypeName",{configurable:!0,set:function(){E("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){E("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){E("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(n.ready,"onRuntimeInitialized")||(Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,get:function(){E("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(n.ready,"onRuntimeInitialized",{configurable:!0,set:function(){E("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Ue={},we;for(we in n)n.hasOwnProperty(we)&&(Ue[we]=n[we]);var ot=[],ht="./this.program",$e=function(i,e){throw e},Ye=typeof window=="object",Ve=typeof importScripts=="function",It=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",bi=!Ye&&!It&&!Ve;if(n.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 Te="";function Oi(i){return n.locateFile?n.locateFile(i,Te):Te+i}var Rr,er,nn,In;if(Ye||Ve){if(Ve?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.indexOf("blob:")!==0?Te=Te.substr(0,Te.lastIndexOf("/")+1):Te="",!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Rr=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.send(null),e.responseText},Ve&&(nn=function(i){var e=new XMLHttpRequest;return e.open("GET",i,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),er=function(i,e,t){var r=new XMLHttpRequest;r.open("GET",i,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){e(r.response);return}t()},r.onerror=t,r.send(null)},In=function(i){document.title=i}}else throw new Error("environment detection error");var Ke=n.print||console.log.bind(console),ge=n.printErr||console.warn.bind(console);for(we in Ue)Ue.hasOwnProperty(we)&&(n[we]=Ue[we]);Ue=null,n.arguments&&(ot=n.arguments),Object.getOwnPropertyDescriptor(n,"arguments")||Object.defineProperty(n,"arguments",{configurable:!0,get:function(){E("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)")}}),n.thisProgram&&(ht=n.thisProgram),Object.getOwnPropertyDescriptor(n,"thisProgram")||Object.defineProperty(n,"thisProgram",{configurable:!0,get:function(){E("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)")}}),n.quit&&($e=n.quit),Object.getOwnPropertyDescriptor(n,"quit")||Object.defineProperty(n,"quit",{configurable:!0,get:function(){E("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)")}}),W(typeof n.memoryInitializerPrefixURL=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.pthreadMainPrefixURL=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.cdInitializerPrefixURL=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),W(typeof n.filePackagePrefixURL=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),W(typeof n.read=="undefined","Module.read option was removed (modify read_ in JS)"),W(typeof n.readAsync=="undefined","Module.readAsync option was removed (modify readAsync in JS)"),W(typeof n.readBinary=="undefined","Module.readBinary option was removed (modify readBinary in JS)"),W(typeof n.setWindowTitle=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),W(typeof n.TOTAL_MEMORY=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(n,"read")||Object.defineProperty(n,"read",{configurable:!0,get:function(){E("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(n,"readAsync")||Object.defineProperty(n,"readAsync",{configurable:!0,get:function(){E("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(n,"readBinary")||Object.defineProperty(n,"readBinary",{configurable:!0,get:function(){E("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(n,"setWindowTitle")||Object.defineProperty(n,"setWindowTitle",{configurable:!0,get:function(){E("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)")}}),W(!bi,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");function Re(i){Re.shown||(Re.shown={}),Re.shown[i]||(Re.shown[i]=1,ge(i))}function pe(i,e){if(typeof WebAssembly.Function=="function"){for(var t={i:"i32",j:"i64",f:"f32",d:"f64"},r={parameters:[],results:e[0]=="v"?[]:[t[e[0]]]},o=1;o<e.length;++o)r.parameters.push(t[e[o]]);return new WebAssembly.Function(r,i)}var a=[1,0,1,96],s=e.slice(0,1),A=e.slice(1),c={i:127,j:126,f:125,d:124};a.push(A.length);for(var o=0;o<A.length;++o)a.push(c[A[o]]);s=="v"?a.push(0):a=a.concat([1,c[s]]),a[1]=a.length-2;var u=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])),d=new WebAssembly.Module(u),h=new WebAssembly.Instance(d,{e:{f:i}}),I=h.exports.f;return I}var tt=[],Ir;function Ut(){if(tt.length)return tt.pop();try{K.grow(1)}catch(i){throw i instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":i}return K.length-1}function Xe(i,e){if(!Ir){Ir=new WeakMap;for(var t=0;t<K.length;t++){var r=K.get(t);r&&Ir.set(r,t)}}if(Ir.has(i))return Ir.get(i);var o=Ut();try{K.set(o,i)}catch(s){if(!(s instanceof TypeError))throw s;W(typeof e!="undefined","Missing signature argument to addFunction: "+i);var a=pe(i,e);K.set(o,a)}return Ir.set(i,o),o}var mr=0,mt=function(i){mr=i},Cr=function(){return mr},he;n.wasmBinary&&(he=n.wasmBinary),Object.getOwnPropertyDescriptor(n,"wasmBinary")||Object.defineProperty(n,"wasmBinary",{configurable:!0,get:function(){E("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)")}});var Hn=n.noExitRuntime||!0;Object.getOwnPropertyDescriptor(n,"noExitRuntime")||Object.defineProperty(n,"noExitRuntime",{configurable:!0,get:function(){E("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)")}}),typeof WebAssembly!="object"&&E("no native wasm support detected");var xt,jt=!1,Pt;function W(i,e){i||E("Assertion failed: "+e)}function Sr(i){var e=n["_"+i];return W(e,"Cannot call unknown function "+i+", make sure it is exported"),e}function z(i,e,t,r,o){var a={string:function(y){var v=0;if(y!=null&&y!==0){var U=(y.length<<2)+1;v=te(U),Je(y,v,U)}return v},array:function(y){var v=te(y.length);return Fr(y,v),v}};function s(y){return e==="string"?at(y):e==="boolean"?!!y:y}var A=Sr(i),c=[],u=0;if(W(e!=="array",'Return type should not be "array".'),r)for(var d=0;d<r.length;d++){var h=a[t[d]];h?(u===0&&(u=ne()),c[d]=h(r[d])):c[d]=r[d]}var I=A.apply(null,c);function m(y){return u!==0&&j(u),s(y)}return I=m(I),I}var lo=1,Bi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Mr(i,e,t){for(var r=e+t,o=e;i[o]&&!(o>=r);)++o;if(o-e>16&&i.subarray&&Bi)return Bi.decode(i.subarray(e,o));for(var a="";e<o;){var s=i[e++];if(!(s&128)){a+=String.fromCharCode(s);continue}var A=i[e++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|A);continue}var c=i[e++]&63;if((s&240)==224?s=(s&15)<<12|A<<6|c:((s&248)!=240&&Re("Invalid UTF-8 leading byte 0x"+s.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),s=(s&7)<<18|A<<12|c<<6|i[e++]&63),s<65536)a+=String.fromCharCode(s);else{var u=s-65536;a+=String.fromCharCode(55296|u>>10,56320|u&1023)}}return a}function at(i,e){return i?Mr(Se,i,e):""}function Rt(i,e,t,r){if(!(r>0))return 0;for(var o=t,a=t+r-1,s=0;s<i.length;++s){var A=i.charCodeAt(s);if(A>=55296&&A<=57343){var c=i.charCodeAt(++s);A=65536+((A&1023)<<10)|c&1023}if(A<=127){if(t>=a)break;e[t++]=A}else if(A<=2047){if(t+1>=a)break;e[t++]=192|A>>6,e[t++]=128|A&63}else if(A<=65535){if(t+2>=a)break;e[t++]=224|A>>12,e[t++]=128|A>>6&63,e[t++]=128|A&63}else{if(t+3>=a)break;A>=2097152&&Re("Invalid Unicode code point 0x"+A.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF)."),e[t++]=240|A>>18,e[t++]=128|A>>12&63,e[t++]=128|A>>6&63,e[t++]=128|A&63}}return e[t]=0,t-o}function Je(i,e,t){return W(typeof t=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),Rt(i,Se,e,t)}function Ze(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&(r=65536+((r&1023)<<10)|i.charCodeAt(++t)&1023),r<=127?++e:r<=2047?e+=2:r<=65535?e+=3:e+=4}return e}var tr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function bt(i,e){W(i%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var t=i,r=t>>1,o=r+e/2;!(r>=o)&&ve[r];)++r;if(t=r<<1,t-i>32&&tr)return tr.decode(Se.subarray(i,t));for(var a="",s=0;!(s>=e/2);++s){var A=be[i+s*2>>1];if(A==0)break;a+=String.fromCharCode(A)}return a}function Gn(i,e,t){if(W(e%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),W(typeof t=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<2)return 0;t-=2;for(var r=e,o=t<i.length*2?t/2:i.length,a=0;a<o;++a){var s=i.charCodeAt(a);be[e>>1]=s,e+=2}return be[e>>1]=0,e-r}function Ti(i){return i.length*2}function mn(i,e){W(i%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var t=0,r="";!(t>=e/4);){var o=T[i+t*4>>2];if(o==0)break;if(++t,o>=65536){var a=o-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(o)}return r}function Yn(i,e,t){if(W(e%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),W(typeof t=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),t===void 0&&(t=2147483647),t<4)return 0;for(var r=e,o=r+t-4,a=0;a<i.length;++a){var s=i.charCodeAt(a);if(s>=55296&&s<=57343){var A=i.charCodeAt(++a);s=65536+((s&1023)<<10)|A&1023}if(T[e>>2]=s,e+=4,e+4>o)break}return T[e>>2]=0,e-r}function vi(i){for(var e=0,t=0;t<i.length;++t){var r=i.charCodeAt(t);r>=55296&&r<=57343&&++t,e+=4}return e}function Cn(i){var e=Ze(i)+1,t=it(e);return t&&Rt(i,xe,t,e),t}function Fr(i,e){W(i.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),xe.set(i,e)}function yn(i,e,t){for(var r=0;r<i.length;++r)W(i.charCodeAt(r)===i.charCodeAt(r)&255),xe[e++>>0]=i.charCodeAt(r);t||(xe[e>>0]=0)}function Xn(i,e){return i%e>0&&(i+=e-i%e),i}var kr,xe,Se,be,ve,T,Oe,b,Qe;function ze(i){kr=i,n.HEAP8=xe=new Int8Array(i),n.HEAP16=be=new Int16Array(i),n.HEAP32=T=new Int32Array(i),n.HEAPU8=Se=new Uint8Array(i),n.HEAPU16=ve=new Uint16Array(i),n.HEAPU32=Oe=new Uint32Array(i),n.HEAPF32=b=new Float32Array(i),n.HEAPF64=Qe=new Float64Array(i)}var Nr=5242880;n.TOTAL_STACK&&W(Nr===n.TOTAL_STACK,"the stack size can no longer be determined at runtime");var on=n.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(n,"INITIAL_MEMORY")||Object.defineProperty(n,"INITIAL_MEMORY",{configurable:!0,get:function(){E("Module.INITIAL_MEMORY has been replaced with plain 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)")}}),W(on>=Nr,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+on+"! (TOTAL_STACK="+Nr+")"),W(typeof Int32Array!="undefined"&&typeof Float64Array!="undefined"&&Int32Array.prototype.subarray!==void 0&&Int32Array.prototype.set!==void 0,"JS engine does not provide full typed array support"),W(!n.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),W(on==16777216,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");var K;function Ur(){var i=Mo();W((i&3)==0),Oe[(i>>2)+1]=34821223,Oe[(i>>2)+2]=2310721022,T[0]=1668509029}function V(){if(!jt){var i=Mo(),e=Oe[(i>>2)+1],t=Oe[(i>>2)+2];(e!=34821223||t!=2310721022)&&E("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+t.toString(16)+" "+e.toString(16)),T[0]!==1668509029&&E("Runtime error: The application has corrupted its heap memory area (address zero)!")}}(function(){var i=new Int16Array(1),e=new Int8Array(i.buffer);if(i[0]=25459,e[0]!==115||e[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"})();var Lt=[],st=[],xr=[],Ht=[],de=!1,an=!1,yr=0;function Ot(){return Hn||yr>0}function Qi(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)Ri(n.preRun.shift());Q(Lt)}function Ct(){V(),W(!de),de=!0,!n.noFSInit&&!f.init.initialized&&f.init(),f.ignorePermissions=!1,Pe.init(),Q(st)}function Gt(){V(),an=!0}function Pi(){if(V(),n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)Dn(n.postRun.shift());Q(Ht)}function Ri(i){Lt.unshift(i)}function wn(i){st.unshift(i)}function Dn(i){Ht.unshift(i)}W(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),W(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 Yt=0,rr=null,lt=null,At={};function nr(i){for(var e=i;;){if(!At[i])return i;i=e+Math.random()}}function St(i){Yt++,n.monitorRunDependencies&&n.monitorRunDependencies(Yt),i?(W(!At[i]),At[i]=1,rr===null&&typeof setInterval!="undefined"&&(rr=setInterval(function(){if(jt){clearInterval(rr),rr=null;return}var e=!1;for(var t in At)e||(e=!0,ge("still waiting on run dependencies:")),ge("dependency: "+t);e&&ge("(end of list)")},1e4))):ge("warning: run dependency added without ID")}function wr(i){if(Yt--,n.monitorRunDependencies&&n.monitorRunDependencies(Yt),i?(W(At[i]),delete At[i]):ge("warning: run dependency removed without ID"),Yt==0&&(rr!==null&&(clearInterval(rr),rr=null),lt)){var e=lt;lt=null,e()}}n.preloadedImages={},n.preloadedAudios={};function E(i){n.onAbort&&n.onAbort(i),i+="",ge(i),jt=!0,Pt=1;var e="abort("+i+") at "+sn();i=e;var t=new WebAssembly.RuntimeError(i);throw N(t),t}var ir="data:application/octet-stream;base64,";function p(i){return i.startsWith(ir)}function bn(i){return i.startsWith("file://")}function le(i,e){return function(){var t=i,r=e;return e||(r=n.asm),W(de,"native function `"+t+"` called before runtime initialization"),W(!an,"native function `"+t+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),r[i]||W(r[i],"exported native function `"+t+"` not found"),r[i].apply(null,arguments)}}var He;He="selfie_segmentation_solution_wasm_bin.wasm",p(He)||(He=Oi(He));function ce(i){try{if(i==He&&he)return new Uint8Array(he);if(nn)return nn(i);throw"both async and sync fetching of the wasm failed"}catch(e){E(e)}}function Dr(){if(!he&&(Ye||Ve)){if(typeof fetch=="function"&&!bn(He))return fetch(He,{credentials:"same-origin"}).then(function(i){if(!i.ok)throw"failed to load wasm binary file at '"+He+"'";return i.arrayBuffer()}).catch(function(){return ce(He)});if(er)return new Promise(function(i,e){er(He,function(t){i(new Uint8Array(t))},e)})}return Promise.resolve().then(function(){return ce(He)})}function On(){var i={env:tA,wasi_snapshot_preview1:tA};function e(A,c){var u=A.exports;n.asm=u,xt=n.asm.memory,W(xt,"memory not found in wasm exports"),ze(xt.buffer),K=n.asm.__indirect_function_table,W(K,"table not found in wasm exports"),wn(n.asm.__wasm_call_ctors),wr("wasm-instantiate")}St("wasm-instantiate");var t=n;function r(A){W(n===t,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),t=null,e(A.instance)}function o(A){return Dr().then(function(c){var u=WebAssembly.instantiate(c,i);return u}).then(A,function(c){ge("failed to asynchronously prepare wasm: "+c),bn(He)&&ge("warning: Loading from a file URI ("+He+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),E(c)})}function a(){return!he&&typeof WebAssembly.instantiateStreaming=="function"&&!p(He)&&!bn(He)&&typeof fetch=="function"?fetch(He,{credentials:"same-origin"}).then(function(A){var c=WebAssembly.instantiateStreaming(A,i);return c.then(r,function(u){return ge("wasm streaming compile failed: "+u),ge("falling back to ArrayBuffer instantiation"),o(r)})}):o(r)}if(n.instantiateWasm)try{var s=n.instantiateWasm(i,e);return s}catch(A){return ge("Module.instantiateWasm callback failed with error: "+A),!1}return a().catch(N),{}}var We,ye,Bt={460976:function(){let i=!0;if(i){let e=eo;if(typeof e!="function"){typeof console!="undefined"&&console.error('Expected Emscripten global function "findCanvasEventTarget" not found. WebGL context creation may fail.');return}eo=function(t){if(t==0){if(n&&n.canvas)return n.canvas;if(n&&n.canvasCssSelector)return e(n.canvasCssSelector);typeof console!="undefined"&&console.warn("Module properties canvas and canvasCssSelector not found during WebGL context creation.")}return e(t)},i=!1}},461761:function(){return typeof wasmOffsetConverter!="undefined"}};function jr(){return typeof wasmOffsetConverter!="undefined"}function br(i,e){if(P.mainLoop.timingMode=i,P.mainLoop.timingValue=e,!P.mainLoop.func)return ge("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(P.mainLoop.running||(P.mainLoop.running=!0),i==0)P.mainLoop.scheduler=function(){var s=Math.max(0,P.mainLoop.tickStartTime+e-Tt())|0;setTimeout(P.mainLoop.runner,s)},P.mainLoop.method="timeout";else if(i==1)P.mainLoop.scheduler=function(){P.requestAnimationFrame(P.mainLoop.runner)},P.mainLoop.method="rAF";else if(i==2){if(typeof setImmediate=="undefined"){var t=[],r="setimmediate",o=function(a){(a.data===r||a.data.target===r)&&(a.stopPropagation(),t.shift()())};addEventListener("message",o,!0),setImmediate=function(s){t.push(s),Ve?(n.setImmediates===void 0&&(n.setImmediates=[]),n.setImmediates.push(s),postMessage({target:r})):postMessage(r,"*")}}P.mainLoop.scheduler=function(){setImmediate(P.mainLoop.runner)},P.mainLoop.method="immediate"}return 0}var Tt;It?Tt=function(){var i=process.hrtime();return i[0]*1e3+i[1]/1e6}:Tt=function(){return performance.now()};function Or(){return!O.currentContext||!O.currentContext.GLctx?-3:O.currentContext.defaultFbo?(O.blitOffscreenFramebuffer(O.currentContext),0):O.currentContext.attributes.explicitSwapControl?0:-3}function Si(i){rc(i)}function Wn(){if(!Ot())try{Si(Pt)}catch(i){if(i instanceof hn)return;throw i}}function Mi(i,e,t,r,o){W(!P.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),P.mainLoop.func=i,P.mainLoop.arg=r;var a=P.mainLoop.currentlyRunningMainloop;function s(){return a<P.mainLoop.currentlyRunningMainloop?(Wn(),!1):!0}if(P.mainLoop.running=!1,P.mainLoop.runner=function(){if(!jt){if(P.mainLoop.queue.length>0){var c=Date.now(),u=P.mainLoop.queue.shift();if(u.func(u.arg),P.mainLoop.remainingBlockers){var d=P.mainLoop.remainingBlockers,h=d%1==0?d-1:Math.floor(d);u.counted?P.mainLoop.remainingBlockers=h:(h=h+.5,P.mainLoop.remainingBlockers=(8*d+h)/9)}if(Ke('main loop blocker "'+u.name+'" took '+(Date.now()-c)+" ms"),P.mainLoop.updateStatus(),!s())return;setTimeout(P.mainLoop.runner,0);return}if(s()){if(P.mainLoop.currentFrameNumber=P.mainLoop.currentFrameNumber+1|0,P.mainLoop.timingMode==1&&P.mainLoop.timingValue>1&&P.mainLoop.currentFrameNumber%P.mainLoop.timingValue!=0){P.mainLoop.scheduler();return}else P.mainLoop.timingMode==0&&(P.mainLoop.tickStartTime=Tt());O.newRenderingFrameStarted(),typeof O!="undefined"&&O.currentContext&&!O.currentContextIsProxied&&!O.currentContext.attributes.explicitSwapControl&&O.currentContext.GLctx.commit&&O.currentContext.GLctx.commit(),P.mainLoop.method==="timeout"&&n.ctx&&(Re("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),P.mainLoop.method=""),P.mainLoop.runIter(i),V(),s()&&(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),P.mainLoop.scheduler())}}},o||(e&&e>0?br(0,1e3/e):br(1,1),P.mainLoop.scheduler()),t)throw"unwind"}function Bn(i,e){if(jt){ge("user callback triggered after application aborted. Ignoring.");return}if(e){i();return}try{i()}catch(t){if(t instanceof hn)return;if(t!=="unwind")throw t&&typeof t=="object"&&t.stack&&ge("exception thrown: "+[t,t.stack]),t}}function or(i,e){return setTimeout(function(){Bn(i)},e)}var P={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){P.mainLoop.scheduler=null,P.mainLoop.currentlyRunningMainloop++},resume:function(){P.mainLoop.currentlyRunningMainloop++;var i=P.mainLoop.timingMode,e=P.mainLoop.timingValue,t=P.mainLoop.func;P.mainLoop.func=null,Mi(t,0,!1,P.mainLoop.arg,!0),br(i,e),P.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var i=n.statusMessage||"Please wait...",e=P.mainLoop.remainingBlockers,t=P.mainLoop.expectedBlockers;e?e<t?n.setStatus(i+" ("+(t-e)+"/"+t+")"):n.setStatus(i):n.setStatus("")}},runIter:function(i){if(!jt){if(n.preMainLoop){var e=n.preMainLoop();if(e===!1)return}Bn(i),n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!P.initted){P.initted=!0;try{new Blob,P.hasBlobConstructor=!0}catch(r){P.hasBlobConstructor=!1,Ke("warning: no blob constructor, cannot create blobs with mimetypes")}P.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:P.hasBlobConstructor?null:Ke("warning: no BlobBuilder"),P.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:void 0,!n.noImageDecoding&&typeof P.URLObject=="undefined"&&(Ke("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var i={};i.canHandle=function(o){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},i.handle=function(o,a,s,A){var c=null;if(P.hasBlobConstructor)try{c=new Blob([o],{type:P.getMimetype(a)}),c.size!==o.length&&(c=new Blob([new Uint8Array(o).buffer],{type:P.getMimetype(a)}))}catch(I){Re("Blob constructor present but fails: "+I+"; falling back to blob builder")}if(!c){var u=new P.BlobBuilder;u.append(new Uint8Array(o).buffer),c=u.getBlob()}var d=P.URLObject.createObjectURL(c);W(typeof d=="string","createObjectURL must return a url as a string");var h=new Image;h.onload=function(){W(h.complete,"Image "+a+" could not be decoded");var m=document.createElement("canvas");m.width=h.width,m.height=h.height;var y=m.getContext("2d");y.drawImage(h,0,0),n.preloadedImages[a]=m,P.URLObject.revokeObjectURL(d),s&&s(o)},h.onerror=function(m){Ke("Image "+d+" could not be decoded"),A&&A()},h.src=d},n.preloadPlugins.push(i);var e={};e.canHandle=function(o){return!n.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(o,a,s,A){var c=!1;function u(y){c||(c=!0,n.preloadedAudios[a]=y,s&&s(o))}function d(){c||(c=!0,n.preloadedAudios[a]=new Audio,A&&A())}if(P.hasBlobConstructor){try{var h=new Blob([o],{type:P.getMimetype(a)})}catch(y){return d()}var I=P.URLObject.createObjectURL(h);W(typeof I=="string","createObjectURL must return a url as a string");var m=new Audio;m.addEventListener("canplaythrough",function(){u(m)},!1),m.onerror=function(v){if(c)return;Ke("warning: browser could not fully decode audio "+a+", trying slower base64 approach");function U(G){for(var R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",D="=",k="",$=0,Y=0,Ce=0;Ce<G.length;Ce++)for($=$<<8|G[Ce],Y+=8;Y>=6;){var Ne=$>>Y-6&63;Y-=6,k+=R[Ne]}return Y==2?(k+=R[($&3)<<4],k+=D+D):Y==4&&(k+=R[($&15)<<2],k+=D),k}m.src="data:audio/x-"+a.substr(-3)+";base64,"+U(o),u(m)},m.src=I,or(function(){u(m)},1e4)}else return d()},n.preloadPlugins.push(e);var t=n.canvas;t&&(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock||t.msRequestPointerLock||function(){},t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),n.elementPointerLock&&t.addEventListener("click",function(r){!P.pointerLock&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),r.preventDefault())},!1))}},createContext:function(i,e,t,r){if(e&&n.ctx&&i==n.canvas)return n.ctx;var o,a;if(e){var s={antialias:!1,alpha:!1,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(r)for(var A in r)s[A]=r[A];typeof O!="undefined"&&(a=O.createContext(i,s),a&&(o=O.getContext(a).GLctx))}else o=i.getContext("2d");return o?(t&&(e||W(typeof M=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=o,e&&O.makeContextCurrent(a),n.useWebGL=e,P.moduleContextCreatedCallbacks.forEach(function(c){c()}),P.init()),o):null},destroyContext:function(i,e,t){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,e){P.lockPointer=i,P.resizeCanvas=e,typeof P.lockPointer=="undefined"&&(P.lockPointer=!0),typeof P.resizeCanvas=="undefined"&&(P.resizeCanvas=!1);var t=n.canvas;function r(){P.isFullscreen=!1;var a=t.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a?(t.exitFullscreen=P.exitFullscreen,P.lockPointer&&t.requestPointerLock(),P.isFullscreen=!0,P.resizeCanvas?P.setFullscreenCanvasSize():P.updateCanvasDimensions(t)):(a.parentNode.insertBefore(t,a),a.parentNode.removeChild(a),P.resizeCanvas?P.setWindowedCanvasSize():P.updateCanvasDimensions(t)),n.onFullScreen&&n.onFullScreen(P.isFullscreen),n.onFullscreen&&n.onFullscreen(P.isFullscreen)}P.fullscreenHandlersInstalled||(P.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var o=document.createElement("div");t.parentNode.insertBefore(o,t),o.appendChild(t),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},requestFullScreen:function(){E("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){if(!P.isFullscreen)return!1;var i=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){};return i.apply(document,[]),!0},nextRAF:0,fakeRequestAnimationFrame:function(i){var e=Date.now();if(P.nextRAF===0)P.nextRAF=e+1e3/60;else for(;e+2>=P.nextRAF;)P.nextRAF+=1e3/60;var t=Math.max(P.nextRAF-e,0);setTimeout(i,t)},requestAnimationFrame:function(i){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(i);return}var e=P.fakeRequestAnimationFrame;e(i)},safeSetTimeout:function(i){return or(i)},safeRequestAnimationFrame:function(i){return P.requestAnimationFrame(function(){Bn(i)})},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var e=0;switch(i.type){case"DOMMouseScroll":e=i.detail/3;break;case"mousewheel":e=i.wheelDelta/120;break;case"wheel":switch(e=i.deltaY,i.deltaMode){case 0:e/=100;break;case 1:e/=3;break;case 2:e*=80;break;default:throw"unrecognized mouse wheel delta mode: "+i.deltaMode}break;default:throw"unrecognized mouse wheel event: "+i.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(P.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?P.mouseMovementX=P.mouseMovementY=0:(P.mouseMovementX=P.getMovementX(i),P.mouseMovementY=P.getMovementY(i)),typeof SDL!="undefined"?(P.mouseX=SDL.mouseX+P.mouseMovementX,P.mouseY=SDL.mouseY+P.mouseMovementY):(P.mouseX+=P.mouseMovementX,P.mouseY+=P.mouseMovementY);else{var e=n.canvas.getBoundingClientRect(),t=n.canvas.width,r=n.canvas.height,o=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,a=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(W(typeof o!="undefined"&&typeof a!="undefined","Unable to retrieve scroll position, mouse positions likely broken."),i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var s=i.touch;if(s===void 0)return;var A=s.pageX-(o+e.left),c=s.pageY-(a+e.top);A=A*(t/e.width),c=c*(r/e.height);var u={x:A,y:c};if(i.type==="touchstart")P.lastTouches[s.identifier]=u,P.touches[s.identifier]=u;else if(i.type==="touchend"||i.type==="touchmove"){var d=P.touches[s.identifier];d||(d=u),P.lastTouches[s.identifier]=d,P.touches[s.identifier]=u}return}var h=i.pageX-(o+e.left),I=i.pageY-(a+e.top);h=h*(t/e.width),I=I*(r/e.height),P.mouseMovementX=h-P.mouseX,P.mouseMovementY=I-P.mouseY,P.mouseX=h,P.mouseY=I}},resizeListeners:[],updateResizeListeners:function(){var i=n.canvas;P.resizeListeners.forEach(function(e){e(i.width,i.height)})},setCanvasSize:function(i,e,t){var r=n.canvas;P.updateCanvasDimensions(r,i,e),t||P.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=Oe[SDL.screen>>2];i=i|8388608,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=Oe[SDL.screen>>2];i=i&-8388609,T[SDL.screen>>2]=i}P.updateCanvasDimensions(n.canvas),P.updateResizeListeners()},updateCanvasDimensions:function(i,e,t){e&&t?(i.widthNative=e,i.heightNative=t):(e=i.widthNative,t=i.heightNative);var r=e,o=t;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(r/o<n.forcedAspectRatio?r=Math.round(o*n.forcedAspectRatio):o=Math.round(r/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&typeof screen!="undefined"){var a=Math.min(screen.width/r,screen.height/o);r=Math.round(r*a),o=Math.round(o*a)}P.resizeCanvas?(i.width!=r&&(i.width=r),i.height!=o&&(i.height=o),typeof i.style!="undefined"&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=e&&(i.width=e),i.height!=t&&(i.height=t),typeof i.style!="undefined"&&(r!=e||o!=t?(i.style.setProperty("width",r+"px","important"),i.style.setProperty("height",o+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))}};function Q(i){for(;i.length>0;){var e=i.shift();if(typeof e=="function"){e(n);continue}var t=e.func;typeof t=="number"?e.arg===void 0?K.get(t)():K.get(t)(e.arg):t(e.arg===void 0?null:e.arg)}}function Tn(i){return Re("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function Lr(i){var e=/\b_Z[\w\d_]+/g;return i.replace(e,function(t){var r=Tn(t);return t===r?t:r+" ["+t+"]"})}function Vn(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function sn(){var i=Vn();return n.extraStackTrace&&(i+=`
31
+ `+n.extraStackTrace()),Lr(i)}function Fi(i){return it(i+16)+16}function fo(i,e){}function vn(i,e){return void 0}function Br(i){this.excPtr=i,this.ptr=i-16,this.set_type=function(e){T[this.ptr+4>>2]=e},this.get_type=function(){return T[this.ptr+4>>2]},this.set_destructor=function(e){T[this.ptr+8>>2]=e},this.get_destructor=function(){return T[this.ptr+8>>2]},this.set_refcount=function(e){T[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,xe[this.ptr+12>>0]=e},this.get_caught=function(){return xe[this.ptr+12>>0]!=0},this.set_rethrown=function(e){e=e?1:0,xe[this.ptr+13>>0]=e},this.get_rethrown=function(){return xe[this.ptr+13>>0]!=0},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=T[this.ptr>>2];T[this.ptr>>2]=e+1},this.release_ref=function(){var e=T[this.ptr>>2];return T[this.ptr>>2]=e-1,W(e>0),e===1}}function Mt(i){this.free=function(){_r(this.ptr),this.ptr=0},this.set_base_ptr=function(e){T[this.ptr>>2]=e},this.get_base_ptr=function(){return T[this.ptr>>2]},this.set_adjusted_ptr=function(e){T[this.ptr+4>>2]=e},this.get_adjusted_ptr_addr=function(){return this.ptr+4},this.get_adjusted_ptr=function(){return T[this.ptr+4>>2]},this.get_exception_ptr=function(){var e=ko(this.get_exception_info().get_type());if(e)return T[this.get_base_ptr()>>2];var t=this.get_adjusted_ptr();return t!==0?t:this.get_base_ptr()},this.get_exception_info=function(){return new Br(this.get_base_ptr())},i===void 0?(this.ptr=it(8),this.set_adjusted_ptr(0)):this.ptr=i}var Xt=[];function Hr(i){i.add_ref()}var vt=0;function Qn(i){var e=new Mt(i),t=e.get_exception_info();return t.get_caught()||(t.set_caught(!0),vt--),t.set_rethrown(!1),Xt.push(e),Hr(t),e.get_exception_ptr()}var Wt=0;function Ft(i){try{return _r(new Br(i).ptr)}catch(e){ge("exception during cxa_free_exception: "+e)}}function Tr(i){if(i.release_ref()&&!i.get_rethrown()){var e=i.get_destructor();e&&K.get(e)(i.excPtr),Ft(i.excPtr)}}function ki(){oe(0),W(Xt.length>0);var i=Xt.pop();Tr(i.get_exception_info()),i.free(),Wt=0}function zn(i){var e=new Mt(i),t=e.get_base_ptr();throw Wt||(Wt=t),e.free(),t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Pn(){var i=Wt;if(!i)return mt(0),0;var e=new Br(i),t=e.get_type(),r=new Mt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return mt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return mt(s),r.ptr|0}return mt(t),r.ptr|0}function Ni(){var i=Wt;if(!i)return mt(0),0;var e=new Br(i),t=e.get_type(),r=new Mt;if(r.set_base_ptr(i),r.set_adjusted_ptr(i),!t)return mt(0),r.ptr|0;for(var o=Array.prototype.slice.call(arguments),a=0;a<o.length;a++){var s=o[a];if(s===0||s===t)break;if(re(s,t,r.get_adjusted_ptr_addr()))return mt(s),r.ptr|0}return mt(t),r.ptr|0}function $n(){var i=Xt.pop();i||E("no exception to throw");var e=i.get_exception_info(),t=i.get_base_ptr();throw e.get_rethrown()?i.free():(Xt.push(i),e.set_rethrown(!0),e.set_caught(!1),vt++),Wt=t,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Ui(i,e){return void 0}function xi(i,e,t){var r=new Br(i);throw r.init(e,t),Wt=i,vt++,i+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function Kn(i){return T[tn()>>2]=i,i}var _e={splitPath:function(i){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(i).slice(1)},normalizeArray:function(i,e){for(var t=0,r=i.length-1;r>=0;r--){var o=i[r];o==="."?i.splice(r,1):o===".."?(i.splice(r,1),t++):t&&(i.splice(r,1),t--)}if(e)for(;t;t--)i.unshift("..");return i},normalize:function(i){var e=i.charAt(0)==="/",t=i.substr(-1)==="/";return i=_e.normalizeArray(i.split("/").filter(function(r){return!!r}),!e).join("/"),!i&&!e&&(i="."),i&&t&&(i+="/"),(e?"/":"")+i},dirname:function(i){var e=_e.splitPath(i),t=e[0],r=e[1];return!t&&!r?".":(r&&(r=r.substr(0,r.length-1)),t+r)},basename:function(i){if(i==="/")return"/";i=_e.normalize(i),i=i.replace(/\/$/,"");var e=i.lastIndexOf("/");return e===-1?i:i.substr(e+1)},extname:function(i){return _e.splitPath(i)[3]},join:function(){var i=Array.prototype.slice.call(arguments,0);return _e.normalize(i.join("/"))},join2:function(i,e){return _e.normalize(i+"/"+e)}};function Ie(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var i=new Uint8Array(1);return function(){return crypto.getRandomValues(i),i[0]}}else if(It)try{var e=Ic("crypto");return function(){return e.randomBytes(1)[0]}}catch(t){}return function(){E("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 dt={resolve:function(){for(var i="",e=!1,t=arguments.length-1;t>=-1&&!e;t--){var r=t>=0?arguments[t]:f.cwd();if(typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";i=r+"/"+i,e=r.charAt(0)==="/"}return i=_e.normalizeArray(i.split("/").filter(function(o){return!!o}),!e).join("/"),(e?"/":"")+i||"."},relative:function(i,e){i=dt.resolve(i).substr(1),e=dt.resolve(e).substr(1);function t(u){for(var d=0;d<u.length&&u[d]==="";d++);for(var h=u.length-1;h>=0&&u[h]==="";h--);return d>h?[]:u.slice(d,h-d+1)}for(var r=t(i.split("/")),o=t(e.split("/")),a=Math.min(r.length,o.length),s=a,A=0;A<a;A++)if(r[A]!==o[A]){s=A;break}for(var c=[],A=s;A<r.length;A++)c.push("..");return c=c.concat(o.slice(s)),c.join("/")}},Pe={ttys:[],init:function(){},shutdown:function(){},register:function(i,e){Pe.ttys[i]={input:[],output:[],ops:e},f.registerDevice(i,Pe.stream_ops)},stream_ops:{open:function(i){var e=Pe.ttys[i.node.rdev];if(!e)throw new f.ErrnoError(43);i.tty=e,i.seekable=!1},close:function(i){i.tty.ops.flush(i.tty)},flush:function(i){i.tty.ops.flush(i.tty)},read:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.get_char)throw new f.ErrnoError(60);for(var a=0,s=0;s<r;s++){var A;try{A=i.tty.ops.get_char(i.tty)}catch(c){throw new f.ErrnoError(29)}if(A===void 0&&a===0)throw new f.ErrnoError(6);if(A==null)break;a++,e[t+s]=A}return a&&(i.node.timestamp=Date.now()),a},write:function(i,e,t,r,o){if(!i.tty||!i.tty.ops.put_char)throw new f.ErrnoError(60);try{for(var a=0;a<r;a++)i.tty.ops.put_char(i.tty,e[t+a])}catch(s){throw new f.ErrnoError(29)}return r&&(i.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(i){if(!i.input.length){var e=null;if(It){var t=256,r=Buffer.alloc(t),o=0;try{o=nodeFS.readSync(process.stdin.fd,r,0,t,null)}catch(a){if(a.toString().includes("EOF"))o=0;else throw a}o>0?e=r.slice(0,o).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=`
32
32
  `)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=`
33
- `));if(!e)return null;i.input=ao(e,!0)}return i.input.shift()},put_char:function(i,e){e===null||e===10?(Ke(Mr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(Ke(Mr(i.output,0)),i.output=[])}},default_tty1_ops:{put_char:function(i,e){e===null||e===10?(ge(Mr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(ge(Mr(i.output,0)),i.output=[])}}};function yt(i,e){Se.fill(0,i,i+e)}function ji(i,e){return W(e,"alignment argument is required"),Math.ceil(i/e)*e}function Jn(i){i=ji(i,65536);var e=iA(65536,i);return e?(yt(e,i),e):0}var ie={ops_table:null,mount:function(i){return ie.createNode(null,"/",16895,0)},createNode:function(i,e,t,r){if(f.isBlkdev(t)||f.isFIFO(t))throw new f.ErrnoError(63);ie.ops_table||(ie.ops_table={dir:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,lookup:ie.node_ops.lookup,mknod:ie.node_ops.mknod,rename:ie.node_ops.rename,unlink:ie.node_ops.unlink,rmdir:ie.node_ops.rmdir,readdir:ie.node_ops.readdir,symlink:ie.node_ops.symlink},stream:{llseek:ie.stream_ops.llseek}},file:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:{llseek:ie.stream_ops.llseek,read:ie.stream_ops.read,write:ie.stream_ops.write,allocate:ie.stream_ops.allocate,mmap:ie.stream_ops.mmap,msync:ie.stream_ops.msync}},link:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,readlink:ie.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:f.chrdev_stream_ops}});var o=f.createNode(i,e,t,r);return f.isDir(o.mode)?(o.node_ops=ie.ops_table.dir.node,o.stream_ops=ie.ops_table.dir.stream,o.contents={}):f.isFile(o.mode)?(o.node_ops=ie.ops_table.file.node,o.stream_ops=ie.ops_table.file.stream,o.usedBytes=0,o.contents=null):f.isLink(o.mode)?(o.node_ops=ie.ops_table.link.node,o.stream_ops=ie.ops_table.link.stream):f.isChrdev(o.mode)&&(o.node_ops=ie.ops_table.chrdev.node,o.stream_ops=ie.ops_table.chrdev.stream),o.timestamp=Date.now(),i&&(i.contents[e]=o,i.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(i){return i.contents?i.contents.subarray?i.contents.subarray(0,i.usedBytes):new Uint8Array(i.contents):new Uint8Array(0)},expandFileStorage:function(i,e){var t=i.contents?i.contents.length:0;if(!(t>=e)){var r=1024*1024;e=Math.max(e,t*(t<r?2:1.125)>>>0),t!=0&&(e=Math.max(e,256));var o=i.contents;i.contents=new Uint8Array(e),i.usedBytes>0&&i.contents.set(o.subarray(0,i.usedBytes),0)}},resizeFileStorage:function(i,e){if(i.usedBytes!=e)if(e==0)i.contents=null,i.usedBytes=0;else{var t=i.contents;i.contents=new Uint8Array(e),t&&i.contents.set(t.subarray(0,Math.min(e,i.usedBytes))),i.usedBytes=e}},node_ops:{getattr:function(i){var e={};return e.dev=f.isChrdev(i.mode)?i.id:1,e.ino=i.id,e.mode=i.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=i.rdev,f.isDir(i.mode)?e.size=4096:f.isFile(i.mode)?e.size=i.usedBytes:f.isLink(i.mode)?e.size=i.link.length:e.size=0,e.atime=new Date(i.timestamp),e.mtime=new Date(i.timestamp),e.ctime=new Date(i.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(i,e){e.mode!==void 0&&(i.mode=e.mode),e.timestamp!==void 0&&(i.timestamp=e.timestamp),e.size!==void 0&&ie.resizeFileStorage(i,e.size)},lookup:function(i,e){throw f.genericErrors[44]},mknod:function(i,e,t,r){return ie.createNode(i,e,t,r)},rename:function(i,e,t){if(f.isDir(i.mode)){var r;try{r=f.lookupNode(e,t)}catch(a){}if(r)for(var o in r.contents)throw new f.ErrnoError(55)}delete i.parent.contents[i.name],i.parent.timestamp=Date.now(),i.name=t,e.contents[t]=i,e.timestamp=i.parent.timestamp,i.parent=e},unlink:function(i,e){delete i.contents[e],i.timestamp=Date.now()},rmdir:function(i,e){var t=f.lookupNode(i,e);for(var r in t.contents)throw new f.ErrnoError(55);delete i.contents[e],i.timestamp=Date.now()},readdir:function(i){var e=[".",".."];for(var t in i.contents)i.contents.hasOwnProperty(t)&&e.push(t);return e},symlink:function(i,e,t){var r=ie.createNode(i,e,41471,0);return r.link=t,r},readlink:function(i){if(!f.isLink(i.mode))throw new f.ErrnoError(28);return i.link}},stream_ops:{read:function(i,e,t,r,o){var a=i.node.contents;if(o>=i.node.usedBytes)return 0;var s=Math.min(i.node.usedBytes-o,r);if(W(s>=0),s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var A=0;A<s;A++)e[t+A]=a[o+A];return s},write:function(i,e,t,r,o,a){if(W(!(e instanceof ArrayBuffer)),e.buffer===xe.buffer&&(a=!1),!r)return 0;var s=i.node;if(s.timestamp=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return W(o===0,"canOwn must imply no weird position inside the file"),s.contents=e.subarray(t,t+r),s.usedBytes=r,r;if(s.usedBytes===0&&o===0)return s.contents=e.slice(t,t+r),s.usedBytes=r,r;if(o+r<=s.usedBytes)return s.contents.set(e.subarray(t,t+r),o),r}if(ie.expandFileStorage(s,o+r),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+r),o);else for(var A=0;A<r;A++)s.contents[o+A]=e[t+A];return s.usedBytes=Math.max(s.usedBytes,o+r),r},llseek:function(i,e,t){var r=e;if(t===1?r+=i.position:t===2&&f.isFile(i.node.mode)&&(r+=i.node.usedBytes),r<0)throw new f.ErrnoError(28);return r},allocate:function(i,e,t){ie.expandFileStorage(i.node,e+t),i.node.usedBytes=Math.max(i.node.usedBytes,e+t)},mmap:function(i,e,t,r,o,a){if(e!==0)throw new f.ErrnoError(28);if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);var s,A,c=i.node.contents;if(!(a&2)&&c.buffer===kr)A=!1,s=c.byteOffset;else{if((r>0||r+t<c.length)&&(c.subarray?c=c.subarray(r,r+t):c=Array.prototype.slice.call(c,r,r+t)),A=!0,s=Jn(t),!s)throw new f.ErrnoError(48);xe.set(c,s)}return{ptr:s,allocated:A}},msync:function(i,e,t,r,o){if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);if(o&2)return 0;var a=ie.stream_ops.write(i,e,0,r,t,!1);return 0}}};function se(i,e,t,r){var o=r?"":nr("al "+i);er(i,function(a){W(a,'Loading data file "'+i+'" failed (no arrayBuffer).'),e(new Uint8Array(a)),o&&wr(o)},function(a){if(t)t();else throw'Loading data file "'+i+'" failed.'}),o&&St(o)}var Li={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"},An={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},f={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,lookupPath:function(i,e){if(i=dt.resolve(f.cwd(),i),e=e||{},!i)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};for(var r in t)e[r]===void 0&&(e[r]=t[r]);if(e.recurse_count>8)throw new f.ErrnoError(32);for(var o=_e.normalizeArray(i.split("/").filter(function(I){return!!I}),!1),a=f.root,s="/",A=0;A<o.length;A++){var c=A===o.length-1;if(c&&e.parent)break;if(a=f.lookupNode(a,o[A]),s=_e.join2(s,o[A]),f.isMountpoint(a)&&(!c||c&&e.follow_mount)&&(a=a.mounted.root),!c||e.follow)for(var u=0;f.isLink(a.mode);){var d=f.readlink(s);s=dt.resolve(_e.dirname(s),d);var h=f.lookupPath(s,{recurse_count:e.recurse_count});if(a=h.node,u++>40)throw new f.ErrnoError(32)}}return{path:s,node:a}},getPath:function(i){for(var e;;){if(f.isRoot(i)){var t=i.mount.mountpoint;return e?t[t.length-1]!=="/"?t+"/"+e:t+e:t}e=e?i.name+"/"+e:i.name,i=i.parent}},hashName:function(i,e){for(var t=0,r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return(i+t>>>0)%f.nameTable.length},hashAddNode:function(i){var e=f.hashName(i.parent.id,i.name);i.name_next=f.nameTable[e],f.nameTable[e]=i},hashRemoveNode:function(i){var e=f.hashName(i.parent.id,i.name);if(f.nameTable[e]===i)f.nameTable[e]=i.name_next;else for(var t=f.nameTable[e];t;){if(t.name_next===i){t.name_next=i.name_next;break}t=t.name_next}},lookupNode:function(i,e){var t=f.mayLookup(i);if(t)throw new f.ErrnoError(t,i);for(var r=f.hashName(i.id,e),o=f.nameTable[r];o;o=o.name_next){var a=o.name;if(o.parent.id===i.id&&a===e)return o}return f.lookup(i,e)},createNode:function(i,e,t,r){W(typeof i=="object");var o=new f.FSNode(i,e,t,r);return f.hashAddNode(o),o},destroyNode:function(i){f.hashRemoveNode(i)},isRoot:function(i){return i===i.parent},isMountpoint:function(i){return!!i.mounted},isFile:function(i){return(i&61440)===32768},isDir:function(i){return(i&61440)===16384},isLink:function(i){return(i&61440)===40960},isChrdev:function(i){return(i&61440)===8192},isBlkdev:function(i){return(i&61440)===24576},isFIFO:function(i){return(i&61440)===4096},isSocket:function(i){return(i&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(i){var e=f.flagModes[i];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+i);return e},flagsToPermissionString:function(i){var e=["r","w","rw"][i&3];return i&512&&(e+="w"),e},nodePermissions:function(i,e){return f.ignorePermissions?0:e.includes("r")&&!(i.mode&292)||e.includes("w")&&!(i.mode&146)||e.includes("x")&&!(i.mode&73)?2:0},mayLookup:function(i){var e=f.nodePermissions(i,"x");return e||(i.node_ops.lookup?0:2)},mayCreate:function(i,e){try{var t=f.lookupNode(i,e);return 20}catch(r){}return f.nodePermissions(i,"wx")},mayDelete:function(i,e,t){var r;try{r=f.lookupNode(i,e)}catch(a){return a.errno}var o=f.nodePermissions(i,"wx");if(o)return o;if(t){if(!f.isDir(r.mode))return 54;if(f.isRoot(r)||f.getPath(r)===f.cwd())return 10}else if(f.isDir(r.mode))return 31;return 0},mayOpen:function(i,e){return i?f.isLink(i.mode)?32:f.isDir(i.mode)&&(f.flagsToPermissionString(e)!=="r"||e&512)?31:f.nodePermissions(i,f.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(i,e){i=i||0,e=e||f.MAX_OPEN_FDS;for(var t=i;t<=e;t++)if(!f.streams[t])return t;throw new f.ErrnoError(33)},getStream:function(i){return f.streams[i]},createStream:function(i,e,t){f.FSStream||(f.FSStream=function(){},f.FSStream.prototype={object:{get:function(){return this.node},set:function(s){this.node=s}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var r=new f.FSStream;for(var o in i)r[o]=i[o];i=r;var a=f.nextfd(e,t);return i.fd=a,f.streams[a]=i,i},closeStream:function(i){f.streams[i]=null},chrdev_stream_ops:{open:function(i){var e=f.getDevice(i.node.rdev);i.stream_ops=e.stream_ops,i.stream_ops.open&&i.stream_ops.open(i)},llseek:function(){throw new f.ErrnoError(70)}},major:function(i){return i>>8},minor:function(i){return i&255},makedev:function(i,e){return i<<8|e},registerDevice:function(i,e){f.devices[i]={stream_ops:e}},getDevice:function(i){return f.devices[i]},getMounts:function(i){for(var e=[],t=[i];t.length;){var r=t.pop();e.push(r),t.push.apply(t,r.mounts)}return e},syncfs:function(i,e){typeof i=="function"&&(e=i,i=!1),f.syncFSRequests++,f.syncFSRequests>1&&ge("warning: "+f.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=f.getMounts(f.root.mount),r=0;function o(s){return W(f.syncFSRequests>0),f.syncFSRequests--,e(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,o(s));++r>=t.length&&o(null)}t.forEach(function(s){if(!s.type.syncfs)return a(null);s.type.syncfs(s,i,a)})},mount:function(i,e,t){if(typeof i=="string")throw i;var r=t==="/",o=!t,a;if(r&&f.root)throw new f.ErrnoError(10);if(!r&&!o){var s=f.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,f.isMountpoint(a))throw new f.ErrnoError(10);if(!f.isDir(a.mode))throw new f.ErrnoError(54)}var A={type:i,opts:e,mountpoint:t,mounts:[]},c=i.mount(A);return c.mount=A,A.root=c,r?f.root=c:a&&(a.mounted=A,a.mount&&a.mount.mounts.push(A)),c},unmount:function(i){var e=f.lookupPath(i,{follow_mount:!1});if(!f.isMountpoint(e.node))throw new f.ErrnoError(28);var t=e.node,r=t.mounted,o=f.getMounts(r);Object.keys(f.nameTable).forEach(function(s){for(var A=f.nameTable[s];A;){var c=A.name_next;o.includes(A.mount)&&f.destroyNode(A),A=c}}),t.mounted=null;var a=t.mount.mounts.indexOf(r);W(a!==-1),t.mount.mounts.splice(a,1)},lookup:function(i,e){return i.node_ops.lookup(i,e)},mknod:function(i,e,t){var r=f.lookupPath(i,{parent:!0}),o=r.node,a=_e.basename(i);if(!a||a==="."||a==="..")throw new f.ErrnoError(28);var s=f.mayCreate(o,a);if(s)throw new f.ErrnoError(s);if(!o.node_ops.mknod)throw new f.ErrnoError(63);return o.node_ops.mknod(o,a,e,t)},create:function(i,e){return e=e!==void 0?e:438,e&=4095,e|=32768,f.mknod(i,e,0)},mkdir:function(i,e){return e=e!==void 0?e:511,e&=1023,e|=16384,f.mknod(i,e,0)},mkdirTree:function(i,e){for(var t=i.split("/"),r="",o=0;o<t.length;++o)if(t[o]){r+="/"+t[o];try{f.mkdir(r,e)}catch(a){if(a.errno!=20)throw a}}},mkdev:function(i,e,t){return typeof t=="undefined"&&(t=e,e=438),e|=8192,f.mknod(i,e,t)},symlink:function(i,e){if(!dt.resolve(i))throw new f.ErrnoError(44);var t=f.lookupPath(e,{parent:!0}),r=t.node;if(!r)throw new f.ErrnoError(44);var o=_e.basename(e),a=f.mayCreate(r,o);if(a)throw new f.ErrnoError(a);if(!r.node_ops.symlink)throw new f.ErrnoError(63);return r.node_ops.symlink(r,o,i)},rename:function(i,e){var t=_e.dirname(i),r=_e.dirname(e),o=_e.basename(i),a=_e.basename(e),s,A,c;if(s=f.lookupPath(i,{parent:!0}),A=s.node,s=f.lookupPath(e,{parent:!0}),c=s.node,!A||!c)throw new f.ErrnoError(44);if(A.mount!==c.mount)throw new f.ErrnoError(75);var u=f.lookupNode(A,o),d=dt.relative(i,r);if(d.charAt(0)!==".")throw new f.ErrnoError(28);if(d=dt.relative(e,t),d.charAt(0)!==".")throw new f.ErrnoError(55);var h;try{h=f.lookupNode(c,a)}catch(y){}if(u!==h){var I=f.isDir(u.mode),m=f.mayDelete(A,o,I);if(m)throw new f.ErrnoError(m);if(m=h?f.mayDelete(c,a,I):f.mayCreate(c,a),m)throw new f.ErrnoError(m);if(!A.node_ops.rename)throw new f.ErrnoError(63);if(f.isMountpoint(u)||h&&f.isMountpoint(h))throw new f.ErrnoError(10);if(c!==A&&(m=f.nodePermissions(A,"w"),m))throw new f.ErrnoError(m);try{f.trackingDelegate.willMovePath&&f.trackingDelegate.willMovePath(i,e)}catch(y){ge("FS.trackingDelegate['willMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}f.hashRemoveNode(u);try{A.node_ops.rename(u,c,a)}catch(y){throw y}finally{f.hashAddNode(u)}try{f.trackingDelegate.onMovePath&&f.trackingDelegate.onMovePath(i,e)}catch(y){ge("FS.trackingDelegate['onMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}}},rmdir:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!0);if(a)throw new f.ErrnoError(a);if(!t.node_ops.rmdir)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.rmdir(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readdir:function(i){var e=f.lookupPath(i,{follow:!0}),t=e.node;if(!t.node_ops.readdir)throw new f.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!1);if(a)throw new f.ErrnoError(a);if(!t.node_ops.unlink)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.unlink(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readlink:function(i){var e=f.lookupPath(i),t=e.node;if(!t)throw new f.ErrnoError(44);if(!t.node_ops.readlink)throw new f.ErrnoError(28);return dt.resolve(f.getPath(t.parent),t.node_ops.readlink(t))},stat:function(i,e){var t=f.lookupPath(i,{follow:!e}),r=t.node;if(!r)throw new f.ErrnoError(44);if(!r.node_ops.getattr)throw new f.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(i){return f.stat(i,!0)},chmod:function(i,e,t){var r;if(typeof i=="string"){var o=f.lookupPath(i,{follow:!t});r=o.node}else r=i;if(!r.node_ops.setattr)throw new f.ErrnoError(63);r.node_ops.setattr(r,{mode:e&4095|r.mode&-4096,timestamp:Date.now()})},lchmod:function(i,e){f.chmod(i,e,!0)},fchmod:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);f.chmod(t.node,e)},chown:function(i,e,t,r){var o;if(typeof i=="string"){var a=f.lookupPath(i,{follow:!r});o=a.node}else o=i;if(!o.node_ops.setattr)throw new f.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(i,e,t){f.chown(i,e,t,!0)},fchown:function(i,e,t){var r=f.getStream(i);if(!r)throw new f.ErrnoError(8);f.chown(r.node,e,t)},truncate:function(i,e){if(e<0)throw new f.ErrnoError(28);var t;if(typeof i=="string"){var r=f.lookupPath(i,{follow:!0});t=r.node}else t=i;if(!t.node_ops.setattr)throw new f.ErrnoError(63);if(f.isDir(t.mode))throw new f.ErrnoError(31);if(!f.isFile(t.mode))throw new f.ErrnoError(28);var o=f.nodePermissions(t,"w");if(o)throw new f.ErrnoError(o);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);if(!(t.flags&2097155))throw new f.ErrnoError(28);f.truncate(t.node,e)},utime:function(i,e,t){var r=f.lookupPath(i,{follow:!0}),o=r.node;o.node_ops.setattr(o,{timestamp:Math.max(e,t)})},open:function(i,e,t,r,o){if(i==="")throw new f.ErrnoError(44);e=typeof e=="string"?f.modeStringToFlags(e):e,t=typeof t=="undefined"?438:t,e&64?t=t&4095|32768:t=0;var a;if(typeof i=="object")a=i;else{i=_e.normalize(i);try{var s=f.lookupPath(i,{follow:!(e&131072)});a=s.node}catch(h){}}var A=!1;if(e&64)if(a){if(e&128)throw new f.ErrnoError(20)}else a=f.mknod(i,t,0),A=!0;if(!a)throw new f.ErrnoError(44);if(f.isChrdev(a.mode)&&(e&=-513),e&65536&&!f.isDir(a.mode))throw new f.ErrnoError(54);if(!A){var c=f.mayOpen(a,e);if(c)throw new f.ErrnoError(c)}e&512&&f.truncate(a,0),e&=-131713;var u=f.createStream({node:a,path:f.getPath(a),flags:e,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},r,o);u.stream_ops.open&&u.stream_ops.open(u),n.logReadFiles&&!(e&1)&&(f.readFiles||(f.readFiles={}),i in f.readFiles||(f.readFiles[i]=1,ge("FS.trackingDelegate error on read file: "+i)));try{if(f.trackingDelegate.onOpenFile){var d=0;(e&2097155)!==1&&(d|=f.tracking.openFlags.READ),e&2097155&&(d|=f.tracking.openFlags.WRITE),f.trackingDelegate.onOpenFile(i,d)}}catch(h){ge("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+h.message)}return u},close:function(i){if(f.isClosed(i))throw new f.ErrnoError(8);i.getdents&&(i.getdents=null);try{i.stream_ops.close&&i.stream_ops.close(i)}catch(e){throw e}finally{f.closeStream(i.fd)}i.fd=null},isClosed:function(i){return i.fd===null},llseek:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(!i.seekable||!i.stream_ops.llseek)throw new f.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new f.ErrnoError(28);return i.position=i.stream_ops.llseek(i,e,t),i.ungotten=[],i.position},read:function(i,e,t,r,o){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===1)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.read)throw new f.ErrnoError(28);var a=typeof o!="undefined";if(!a)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var s=i.stream_ops.read(i,e,t,r,o);return a||(i.position+=s),s},write:function(i,e,t,r,o,a){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if(!(i.flags&2097155))throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.write)throw new f.ErrnoError(28);i.seekable&&i.flags&1024&&f.llseek(i,0,2);var s=typeof o!="undefined";if(!s)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var A=i.stream_ops.write(i,e,t,r,o,a);s||(i.position+=A);try{i.path&&f.trackingDelegate.onWriteToFile&&f.trackingDelegate.onWriteToFile(i.path)}catch(c){ge("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+c.message)}return A},allocate:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(e<0||t<=0)throw new f.ErrnoError(28);if(!(i.flags&2097155))throw new f.ErrnoError(8);if(!f.isFile(i.node.mode)&&!f.isDir(i.node.mode))throw new f.ErrnoError(43);if(!i.stream_ops.allocate)throw new f.ErrnoError(138);i.stream_ops.allocate(i,e,t)},mmap:function(i,e,t,r,o,a){if(o&2&&!(a&2)&&(i.flags&2097155)!==2)throw new f.ErrnoError(2);if((i.flags&2097155)===1)throw new f.ErrnoError(2);if(!i.stream_ops.mmap)throw new f.ErrnoError(43);return i.stream_ops.mmap(i,e,t,r,o,a)},msync:function(i,e,t,r,o){return!i||!i.stream_ops.msync?0:i.stream_ops.msync(i,e,t,r,o)},munmap:function(i){return 0},ioctl:function(i,e,t){if(!i.stream_ops.ioctl)throw new f.ErrnoError(59);return i.stream_ops.ioctl(i,e,t)},readFile:function(i,e){if(e=e||{},e.flags=e.flags||0,e.encoding=e.encoding||"binary",e.encoding!=="utf8"&&e.encoding!=="binary")throw new Error('Invalid encoding type "'+e.encoding+'"');var t,r=f.open(i,e.flags),o=f.stat(i),a=o.size,s=new Uint8Array(a);return f.read(r,s,0,a,0),e.encoding==="utf8"?t=Mr(s,0):e.encoding==="binary"&&(t=s),f.close(r),t},writeFile:function(i,e,t){t=t||{},t.flags=t.flags||577;var r=f.open(i,t.flags,t.mode);if(typeof e=="string"){var o=new Uint8Array(Ze(e)+1),a=Rt(e,o,0,o.length);f.write(r,o,0,a,void 0,t.canOwn)}else if(ArrayBuffer.isView(e))f.write(r,e,0,e.byteLength,void 0,t.canOwn);else throw new Error("Unsupported data type");f.close(r)},cwd:function(){return f.currentPath},chdir:function(i){var e=f.lookupPath(i,{follow:!0});if(e.node===null)throw new f.ErrnoError(44);if(!f.isDir(e.node.mode))throw new f.ErrnoError(54);var t=f.nodePermissions(e.node,"x");if(t)throw new f.ErrnoError(t);f.currentPath=e.path},createDefaultDirectories:function(){f.mkdir("/tmp"),f.mkdir("/home"),f.mkdir("/home/web_user")},createDefaultDevices:function(){f.mkdir("/dev"),f.registerDevice(f.makedev(1,3),{read:function(){return 0},write:function(e,t,r,o,a){return o}}),f.mkdev("/dev/null",f.makedev(1,3)),Pe.register(f.makedev(5,0),Pe.default_tty_ops),Pe.register(f.makedev(6,0),Pe.default_tty1_ops),f.mkdev("/dev/tty",f.makedev(5,0)),f.mkdev("/dev/tty1",f.makedev(6,0));var i=Ie();f.createDevice("/dev","random",i),f.createDevice("/dev","urandom",i),f.mkdir("/dev/shm"),f.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){f.mkdir("/proc");var i=f.mkdir("/proc/self");f.mkdir("/proc/self/fd"),f.mount({mount:function(){var e=f.createNode(i,"fd",16895,73);return e.node_ops={lookup:function(t,r){var o=+r,a=f.getStream(o);if(!a)throw new f.ErrnoError(8);var s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return a.path}}};return s.parent=s,s}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?f.createDevice("/dev","stdin",n.stdin):f.symlink("/dev/tty","/dev/stdin"),n.stdout?f.createDevice("/dev","stdout",null,n.stdout):f.symlink("/dev/tty","/dev/stdout"),n.stderr?f.createDevice("/dev","stderr",null,n.stderr):f.symlink("/dev/tty1","/dev/stderr");var i=f.open("/dev/stdin",0),e=f.open("/dev/stdout",1),t=f.open("/dev/stderr",1);W(i.fd===0,"invalid handle for stdin ("+i.fd+")"),W(e.fd===1,"invalid handle for stdout ("+e.fd+")"),W(t.fd===2,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:function(){f.ErrnoError||(f.ErrnoError=function(e,t){this.node=t,this.setErrno=function(r){this.errno=r;for(var o in An)if(An[o]===r){this.code=o;break}},this.setErrno(e),this.message=Li[e],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Lr(this.stack))},f.ErrnoError.prototype=new Error,f.ErrnoError.prototype.constructor=f.ErrnoError,[44].forEach(function(i){f.genericErrors[i]=new f.ErrnoError(i),f.genericErrors[i].stack="<generic error, no stack>"}))},staticInit:function(){f.ensureErrnoError(),f.nameTable=new Array(4096),f.mount(ie,{},"/"),f.createDefaultDirectories(),f.createDefaultDevices(),f.createSpecialDirectories(),f.filesystems={MEMFS:ie}},init:function(i,e,t){W(!f.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)"),f.init.initialized=!0,f.ensureErrnoError(),n.stdin=i||n.stdin,n.stdout=e||n.stdout,n.stderr=t||n.stderr,f.createStandardStreams()},quit:function(){f.init.initialized=!1;var i=n._fflush;i&&i(0);for(var e=0;e<f.streams.length;e++){var t=f.streams[e];t&&f.close(t)}},getMode:function(i,e){var t=0;return i&&(t|=365),e&&(t|=146),t},findObject:function(i,e){var t=f.analyzePath(i,e);return t.exists?t.object:null},analyzePath:function(i,e){try{var t=f.lookupPath(i,{follow:!e});i=t.path}catch(o){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=f.lookupPath(i,{parent:!0});r.parentExists=!0,r.parentPath=t.path,r.parentObject=t.node,r.name=_e.basename(i),t=f.lookupPath(i,{follow:!e}),r.exists=!0,r.path=t.path,r.object=t.node,r.name=t.node.name,r.isRoot=t.path==="/"}catch(o){r.error=o.errno}return r},createPath:function(i,e,t,r){i=typeof i=="string"?i:f.getPath(i);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=_e.join2(i,a);try{f.mkdir(s)}catch(A){}i=s}}return s},createFile:function(i,e,t,r,o){var a=_e.join2(typeof i=="string"?i:f.getPath(i),e),s=f.getMode(r,o);return f.create(a,s)},createDataFile:function(i,e,t,r,o,a){var s=e?_e.join2(typeof i=="string"?i:f.getPath(i),e):i,A=f.getMode(r,o),c=f.create(s,A);if(t){if(typeof t=="string"){for(var u=new Array(t.length),d=0,h=t.length;d<h;++d)u[d]=t.charCodeAt(d);t=u}f.chmod(c,A|146);var I=f.open(c,577);f.write(I,t,0,t.length,0,a),f.close(I),f.chmod(c,A)}return c},createDevice:function(i,e,t,r){var o=_e.join2(typeof i=="string"?i:f.getPath(i),e),a=f.getMode(!!t,!!r);f.createDevice.major||(f.createDevice.major=64);var s=f.makedev(f.createDevice.major++,0);return f.registerDevice(s,{open:function(A){A.seekable=!1},close:function(A){r&&r.buffer&&r.buffer.length&&r(10)},read:function(A,c,u,d,h){for(var I=0,m=0;m<d;m++){var y;try{y=t()}catch(v){throw new f.ErrnoError(29)}if(y===void 0&&I===0)throw new f.ErrnoError(6);if(y==null)break;I++,c[u+m]=y}return I&&(A.node.timestamp=Date.now()),I},write:function(A,c,u,d,h){for(var I=0;I<d;I++)try{r(c[u+I])}catch(m){throw new f.ErrnoError(29)}return d&&(A.node.timestamp=Date.now()),I}}),f.mkdev(o,a,s)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(Rr)try{i.contents=ao(Rr(i.url),!0),i.usedBytes=i.contents.length}catch(e){throw new f.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(i,e,t,r,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(I){if(!(I>this.length-1||I<0)){var m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]}},a.prototype.setDataGetter=function(I){this.getter=I},a.prototype.cacheLength=function(){var I=new XMLHttpRequest;if(I.open("HEAD",t,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error("Couldn't load "+t+". Status: "+I.status);var m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);var R=function(k,$){if(k>$)throw new Error("invalid range ("+k+", "+$+") or no bytes requested!");if($>m-1)throw new Error("only "+m+" bytes available! programmer error!");var Y=new XMLHttpRequest;if(Y.open("GET",t,!1),m!==G&&Y.setRequestHeader("Range","bytes="+k+"-"+$),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error("Couldn't load "+t+". Status: "+Y.status);return Y.response!==void 0?new Uint8Array(Y.response||[]):ao(Y.responseText||"",!0)},D=this;D.setDataGetter(function(k){var $=k*G,Y=(k+1)*G-1;if(Y=Math.min(Y,m-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(U||!m)&&(G=m=1,m=this.getter(0).length,G=m,Ke("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!Ve)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:s}}else var A={isDevice:!1,url:t};var c=f.createFile(i,e,A,r,o);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={},d=Object.keys(c.stream_ops);return d.forEach(function(h){var I=c.stream_ops[h];u[h]=function(){return f.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,U){f.forceLoadFile(c);var G=I.node.contents;if(U>=G.length)return 0;var R=Math.min(G.length-U,v);if(W(R>=0),G.slice)for(var D=0;D<R;D++)m[y+D]=G[U+D];else for(var D=0;D<R;D++)m[y+D]=G.get(U+D);return R},c.stream_ops=u,c},createPreloadedFile:function(i,e,t,r,o,a,s,A,c,u){P.init();var d=e?dt.resolve(_e.join2(i,e)):i,h=nr("cp "+d);function I(m){function y(U){u&&u(),A||f.createDataFile(i,e,U,r,o,c),a&&a(),wr(h)}var v=!1;n.preloadPlugins.forEach(function(U){v||U.canHandle(d)&&(U.handle(m,d,y,function(){s&&s(),wr(h)}),v=!0)}),v||y(m)}St(h),typeof t=="string"?se(t,function(m){I(m)},s):I(t)},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(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=function(){Ke("creating db");var s=o.result;s.createObjectStore(f.DB_STORE_NAME)},o.onsuccess=function(){var s=o.result,A=s.transaction([f.DB_STORE_NAME],"readwrite"),c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.put(f.analyzePath(m).object.contents,m);y.onsuccess=function(){u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},loadFilesFromDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=t,o.onsuccess=function(){var s=o.result;try{var A=s.transaction([f.DB_STORE_NAME],"readonly")}catch(m){t(m);return}var c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.get(m);y.onsuccess=function(){f.analyzePath(m).exists&&f.unlink(m),f.createDataFile(_e.dirname(m),_e.basename(m),y.result,!0,!0,!0),u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},absolutePath:function(){E("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){E("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){E("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){E("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){E("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){E("FS.standardizePath has been removed; use PATH.normalize instead")}},l={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(i,e,t){if(e[0]==="/")return e;var r;if(i===-100)r=f.cwd();else{var o=f.getStream(i);if(!o)throw new f.ErrnoError(8);r=o.path}if(e.length==0){if(!t)throw new f.ErrnoError(44);return r}return _e.join2(r,e)},doStat:function(i,e,t){try{var r=i(e)}catch(o){if(o&&o.node&&_e.normalize(e)!==_e.normalize(f.getPath(o.node)))return-54;throw o}return T[t>>2]=r.dev,T[t+4>>2]=0,T[t+8>>2]=r.ino,T[t+12>>2]=r.mode,T[t+16>>2]=r.nlink,T[t+20>>2]=r.uid,T[t+24>>2]=r.gid,T[t+28>>2]=r.rdev,T[t+32>>2]=0,ye=[r.size>>>0,(We=r.size,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[t+40>>2]=ye[0],T[t+44>>2]=ye[1],T[t+48>>2]=4096,T[t+52>>2]=r.blocks,T[t+56>>2]=r.atime.getTime()/1e3|0,T[t+60>>2]=0,T[t+64>>2]=r.mtime.getTime()/1e3|0,T[t+68>>2]=0,T[t+72>>2]=r.ctime.getTime()/1e3|0,T[t+76>>2]=0,ye=[r.ino>>>0,(We=r.ino,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[t+80>>2]=ye[0],T[t+84>>2]=ye[1],0},doMsync:function(i,e,t,r,o){var a=Se.slice(i,i+t);f.msync(e,a,o,t,r)},doMkdir:function(i,e){return i=_e.normalize(i),i[i.length-1]==="/"&&(i=i.substr(0,i.length-1)),f.mkdir(i,e,0),0},doMknod:function(i,e,t){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return f.mknod(i,e,t),0},doReadlink:function(i,e,t){if(t<=0)return-28;var r=f.readlink(i),o=Math.min(t,Ze(r)),a=xe[e+o];return Je(r,e,t+1),xe[e+o]=a,o},doAccess:function(i,e){if(e&-8)return-28;var t,r=f.lookupPath(i,{follow:!0});if(t=r.node,!t)return-44;var o="";return e&4&&(o+="r"),e&2&&(o+="w"),e&1&&(o+="x"),o&&f.nodePermissions(t,o)?-2:0},doDup:function(i,e,t){var r=f.getStream(t);return r&&f.close(r),f.open(i,e,0,t,t).fd},doReadv:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.read(i,xe,s,A,r);if(c<0)return-1;if(o+=c,c<A)break}return o},doWritev:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.write(i,xe,s,A,r);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){W(l.varargs!=null),l.varargs+=4;var i=T[l.varargs-4>>2];return i},getStr:function(i){var e=at(i);return e},getStreamFromFD:function(i){var e=f.getStream(i);if(!e)throw new f.ErrnoError(8);return e},get64:function(i,e){return i>=0?W(e===0):W(e===-1),i}};function Me(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 0:{var o=l.get();if(o<0)return-28;var a;return a=f.open(r.path,r.flags,0,o),a.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var o=l.get();return r.flags|=o,0}case 12:{var o=l.get(),s=0;return be[o+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Kn(28),-1;default:return-28}}catch(A){return(typeof f=="undefined"||!(A instanceof f.ErrnoError))&&E(A),-A.errno}}function Hi(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 21509:case 21505:return r.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return r.tty?0:-59;case 21519:{if(!r.tty)return-59;var o=l.get();return T[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=l.get();return f.ioctl(r,e,o)}case 21523:return r.tty?0:-59;case 21524:return r.tty?0:-59;default:E("bad ioctl syscall "+e)}}catch(a){return(typeof f=="undefined"||!(a instanceof f.ErrnoError))&&E(a),-a.errno}}function Gi(i,e,t,r,o,a){a<<=12;var s,A=!1;if(r&16&&i%65536!==0)return-28;if(r&32){if(s=Jn(e),!s)return-48;A=!0}else{var c=f.getStream(o);if(!c)return-8;var u=f.mmap(c,i,e,a,t,r);s=u.ptr,A=u.allocated}return l.mappings[s]={malloc:s,len:e,allocated:A,fd:o,prot:t,flags:r,offset:a},s}function Yi(i,e,t,r,o,a){try{return Gi(i,e,t,r,o,a)}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function Xi(i,e,t){l.varargs=t;try{var r=l.getStr(i),o=t?l.get():0,a=f.open(r,e,o);return a.fd}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function Wi(i,e){try{return i=l.getStr(i),l.doStat(f.stat,i,e)}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),-t.errno}}var Zn=48,Vi=57;function cn(i){if(i===void 0)return"_unknown";i=i.replace(/[^a-zA-Z0-9_]/g,"$");var e=i.charCodeAt(0);return e>=Zn&&e<=Vi?"_"+i:i}function ar(i,e){return i=cn(i),new Function("body","return function "+i+`() {
33
+ `));if(!e)return null;i.input=ao(e,!0)}return i.input.shift()},put_char:function(i,e){e===null||e===10?(Ke(Mr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(Ke(Mr(i.output,0)),i.output=[])}},default_tty1_ops:{put_char:function(i,e){e===null||e===10?(ge(Mr(i.output,0)),i.output=[]):e!=0&&i.output.push(e)},flush:function(i){i.output&&i.output.length>0&&(ge(Mr(i.output,0)),i.output=[])}}};function yt(i,e){Se.fill(0,i,i+e)}function ji(i,e){return W(e,"alignment argument is required"),Math.ceil(i/e)*e}function Jn(i){i=ji(i,65536);var e=iA(65536,i);return e?(yt(e,i),e):0}var ie={ops_table:null,mount:function(i){return ie.createNode(null,"/",16895,0)},createNode:function(i,e,t,r){if(f.isBlkdev(t)||f.isFIFO(t))throw new f.ErrnoError(63);ie.ops_table||(ie.ops_table={dir:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,lookup:ie.node_ops.lookup,mknod:ie.node_ops.mknod,rename:ie.node_ops.rename,unlink:ie.node_ops.unlink,rmdir:ie.node_ops.rmdir,readdir:ie.node_ops.readdir,symlink:ie.node_ops.symlink},stream:{llseek:ie.stream_ops.llseek}},file:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:{llseek:ie.stream_ops.llseek,read:ie.stream_ops.read,write:ie.stream_ops.write,allocate:ie.stream_ops.allocate,mmap:ie.stream_ops.mmap,msync:ie.stream_ops.msync}},link:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr,readlink:ie.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ie.node_ops.getattr,setattr:ie.node_ops.setattr},stream:f.chrdev_stream_ops}});var o=f.createNode(i,e,t,r);return f.isDir(o.mode)?(o.node_ops=ie.ops_table.dir.node,o.stream_ops=ie.ops_table.dir.stream,o.contents={}):f.isFile(o.mode)?(o.node_ops=ie.ops_table.file.node,o.stream_ops=ie.ops_table.file.stream,o.usedBytes=0,o.contents=null):f.isLink(o.mode)?(o.node_ops=ie.ops_table.link.node,o.stream_ops=ie.ops_table.link.stream):f.isChrdev(o.mode)&&(o.node_ops=ie.ops_table.chrdev.node,o.stream_ops=ie.ops_table.chrdev.stream),o.timestamp=Date.now(),i&&(i.contents[e]=o,i.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(i){return i.contents?i.contents.subarray?i.contents.subarray(0,i.usedBytes):new Uint8Array(i.contents):new Uint8Array(0)},expandFileStorage:function(i,e){var t=i.contents?i.contents.length:0;if(!(t>=e)){var r=1024*1024;e=Math.max(e,t*(t<r?2:1.125)>>>0),t!=0&&(e=Math.max(e,256));var o=i.contents;i.contents=new Uint8Array(e),i.usedBytes>0&&i.contents.set(o.subarray(0,i.usedBytes),0)}},resizeFileStorage:function(i,e){if(i.usedBytes!=e)if(e==0)i.contents=null,i.usedBytes=0;else{var t=i.contents;i.contents=new Uint8Array(e),t&&i.contents.set(t.subarray(0,Math.min(e,i.usedBytes))),i.usedBytes=e}},node_ops:{getattr:function(i){var e={};return e.dev=f.isChrdev(i.mode)?i.id:1,e.ino=i.id,e.mode=i.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=i.rdev,f.isDir(i.mode)?e.size=4096:f.isFile(i.mode)?e.size=i.usedBytes:f.isLink(i.mode)?e.size=i.link.length:e.size=0,e.atime=new Date(i.timestamp),e.mtime=new Date(i.timestamp),e.ctime=new Date(i.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(i,e){e.mode!==void 0&&(i.mode=e.mode),e.timestamp!==void 0&&(i.timestamp=e.timestamp),e.size!==void 0&&ie.resizeFileStorage(i,e.size)},lookup:function(i,e){throw f.genericErrors[44]},mknod:function(i,e,t,r){return ie.createNode(i,e,t,r)},rename:function(i,e,t){if(f.isDir(i.mode)){var r;try{r=f.lookupNode(e,t)}catch(a){}if(r)for(var o in r.contents)throw new f.ErrnoError(55)}delete i.parent.contents[i.name],i.parent.timestamp=Date.now(),i.name=t,e.contents[t]=i,e.timestamp=i.parent.timestamp,i.parent=e},unlink:function(i,e){delete i.contents[e],i.timestamp=Date.now()},rmdir:function(i,e){var t=f.lookupNode(i,e);for(var r in t.contents)throw new f.ErrnoError(55);delete i.contents[e],i.timestamp=Date.now()},readdir:function(i){var e=[".",".."];for(var t in i.contents)i.contents.hasOwnProperty(t)&&e.push(t);return e},symlink:function(i,e,t){var r=ie.createNode(i,e,41471,0);return r.link=t,r},readlink:function(i){if(!f.isLink(i.mode))throw new f.ErrnoError(28);return i.link}},stream_ops:{read:function(i,e,t,r,o){var a=i.node.contents;if(o>=i.node.usedBytes)return 0;var s=Math.min(i.node.usedBytes-o,r);if(W(s>=0),s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var A=0;A<s;A++)e[t+A]=a[o+A];return s},write:function(i,e,t,r,o,a){if(W(!(e instanceof ArrayBuffer)),e.buffer===xe.buffer&&(a=!1),!r)return 0;var s=i.node;if(s.timestamp=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return W(o===0,"canOwn must imply no weird position inside the file"),s.contents=e.subarray(t,t+r),s.usedBytes=r,r;if(s.usedBytes===0&&o===0)return s.contents=e.slice(t,t+r),s.usedBytes=r,r;if(o+r<=s.usedBytes)return s.contents.set(e.subarray(t,t+r),o),r}if(ie.expandFileStorage(s,o+r),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+r),o);else for(var A=0;A<r;A++)s.contents[o+A]=e[t+A];return s.usedBytes=Math.max(s.usedBytes,o+r),r},llseek:function(i,e,t){var r=e;if(t===1?r+=i.position:t===2&&f.isFile(i.node.mode)&&(r+=i.node.usedBytes),r<0)throw new f.ErrnoError(28);return r},allocate:function(i,e,t){ie.expandFileStorage(i.node,e+t),i.node.usedBytes=Math.max(i.node.usedBytes,e+t)},mmap:function(i,e,t,r,o,a){if(e!==0)throw new f.ErrnoError(28);if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);var s,A,c=i.node.contents;if(!(a&2)&&c.buffer===kr)A=!1,s=c.byteOffset;else{if((r>0||r+t<c.length)&&(c.subarray?c=c.subarray(r,r+t):c=Array.prototype.slice.call(c,r,r+t)),A=!0,s=Jn(t),!s)throw new f.ErrnoError(48);xe.set(c,s)}return{ptr:s,allocated:A}},msync:function(i,e,t,r,o){if(!f.isFile(i.node.mode))throw new f.ErrnoError(43);if(o&2)return 0;var a=ie.stream_ops.write(i,e,0,r,t,!1);return 0}}};function se(i,e,t,r){var o=r?"":nr("al "+i);er(i,function(a){W(a,'Loading data file "'+i+'" failed (no arrayBuffer).'),e(new Uint8Array(a)),o&&wr(o)},function(a){if(t)t();else throw'Loading data file "'+i+'" failed.'}),o&&St(o)}var Li={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"},An={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},f={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,lookupPath:function(i,e){if(i=dt.resolve(f.cwd(),i),e=e||{},!i)return{path:"",node:null};var t={follow_mount:!0,recurse_count:0};for(var r in t)e[r]===void 0&&(e[r]=t[r]);if(e.recurse_count>8)throw new f.ErrnoError(32);for(var o=_e.normalizeArray(i.split("/").filter(function(I){return!!I}),!1),a=f.root,s="/",A=0;A<o.length;A++){var c=A===o.length-1;if(c&&e.parent)break;if(a=f.lookupNode(a,o[A]),s=_e.join2(s,o[A]),f.isMountpoint(a)&&(!c||c&&e.follow_mount)&&(a=a.mounted.root),!c||e.follow)for(var u=0;f.isLink(a.mode);){var d=f.readlink(s);s=dt.resolve(_e.dirname(s),d);var h=f.lookupPath(s,{recurse_count:e.recurse_count});if(a=h.node,u++>40)throw new f.ErrnoError(32)}}return{path:s,node:a}},getPath:function(i){for(var e;;){if(f.isRoot(i)){var t=i.mount.mountpoint;return e?t[t.length-1]!=="/"?t+"/"+e:t+e:t}e=e?i.name+"/"+e:i.name,i=i.parent}},hashName:function(i,e){for(var t=0,r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return(i+t>>>0)%f.nameTable.length},hashAddNode:function(i){var e=f.hashName(i.parent.id,i.name);i.name_next=f.nameTable[e],f.nameTable[e]=i},hashRemoveNode:function(i){var e=f.hashName(i.parent.id,i.name);if(f.nameTable[e]===i)f.nameTable[e]=i.name_next;else for(var t=f.nameTable[e];t;){if(t.name_next===i){t.name_next=i.name_next;break}t=t.name_next}},lookupNode:function(i,e){var t=f.mayLookup(i);if(t)throw new f.ErrnoError(t,i);for(var r=f.hashName(i.id,e),o=f.nameTable[r];o;o=o.name_next){var a=o.name;if(o.parent.id===i.id&&a===e)return o}return f.lookup(i,e)},createNode:function(i,e,t,r){W(typeof i=="object");var o=new f.FSNode(i,e,t,r);return f.hashAddNode(o),o},destroyNode:function(i){f.hashRemoveNode(i)},isRoot:function(i){return i===i.parent},isMountpoint:function(i){return!!i.mounted},isFile:function(i){return(i&61440)===32768},isDir:function(i){return(i&61440)===16384},isLink:function(i){return(i&61440)===40960},isChrdev:function(i){return(i&61440)===8192},isBlkdev:function(i){return(i&61440)===24576},isFIFO:function(i){return(i&61440)===4096},isSocket:function(i){return(i&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(i){var e=f.flagModes[i];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+i);return e},flagsToPermissionString:function(i){var e=["r","w","rw"][i&3];return i&512&&(e+="w"),e},nodePermissions:function(i,e){return f.ignorePermissions?0:e.includes("r")&&!(i.mode&292)||e.includes("w")&&!(i.mode&146)||e.includes("x")&&!(i.mode&73)?2:0},mayLookup:function(i){var e=f.nodePermissions(i,"x");return e||(i.node_ops.lookup?0:2)},mayCreate:function(i,e){try{var t=f.lookupNode(i,e);return 20}catch(r){}return f.nodePermissions(i,"wx")},mayDelete:function(i,e,t){var r;try{r=f.lookupNode(i,e)}catch(a){return a.errno}var o=f.nodePermissions(i,"wx");if(o)return o;if(t){if(!f.isDir(r.mode))return 54;if(f.isRoot(r)||f.getPath(r)===f.cwd())return 10}else if(f.isDir(r.mode))return 31;return 0},mayOpen:function(i,e){return i?f.isLink(i.mode)?32:f.isDir(i.mode)&&(f.flagsToPermissionString(e)!=="r"||e&512)?31:f.nodePermissions(i,f.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(i,e){i=i||0,e=e||f.MAX_OPEN_FDS;for(var t=i;t<=e;t++)if(!f.streams[t])return t;throw new f.ErrnoError(33)},getStream:function(i){return f.streams[i]},createStream:function(i,e,t){f.FSStream||(f.FSStream=function(){},f.FSStream.prototype={object:{get:function(){return this.node},set:function(s){this.node=s}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var r=new f.FSStream;for(var o in i)r[o]=i[o];i=r;var a=f.nextfd(e,t);return i.fd=a,f.streams[a]=i,i},closeStream:function(i){f.streams[i]=null},chrdev_stream_ops:{open:function(i){var e=f.getDevice(i.node.rdev);i.stream_ops=e.stream_ops,i.stream_ops.open&&i.stream_ops.open(i)},llseek:function(){throw new f.ErrnoError(70)}},major:function(i){return i>>8},minor:function(i){return i&255},makedev:function(i,e){return i<<8|e},registerDevice:function(i,e){f.devices[i]={stream_ops:e}},getDevice:function(i){return f.devices[i]},getMounts:function(i){for(var e=[],t=[i];t.length;){var r=t.pop();e.push(r),t.push.apply(t,r.mounts)}return e},syncfs:function(i,e){typeof i=="function"&&(e=i,i=!1),f.syncFSRequests++,f.syncFSRequests>1&&ge("warning: "+f.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var t=f.getMounts(f.root.mount),r=0;function o(s){return W(f.syncFSRequests>0),f.syncFSRequests--,e(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,o(s));++r>=t.length&&o(null)}t.forEach(function(s){if(!s.type.syncfs)return a(null);s.type.syncfs(s,i,a)})},mount:function(i,e,t){if(typeof i=="string")throw i;var r=t==="/",o=!t,a;if(r&&f.root)throw new f.ErrnoError(10);if(!r&&!o){var s=f.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,f.isMountpoint(a))throw new f.ErrnoError(10);if(!f.isDir(a.mode))throw new f.ErrnoError(54)}var A={type:i,opts:e,mountpoint:t,mounts:[]},c=i.mount(A);return c.mount=A,A.root=c,r?f.root=c:a&&(a.mounted=A,a.mount&&a.mount.mounts.push(A)),c},unmount:function(i){var e=f.lookupPath(i,{follow_mount:!1});if(!f.isMountpoint(e.node))throw new f.ErrnoError(28);var t=e.node,r=t.mounted,o=f.getMounts(r);Object.keys(f.nameTable).forEach(function(s){for(var A=f.nameTable[s];A;){var c=A.name_next;o.includes(A.mount)&&f.destroyNode(A),A=c}}),t.mounted=null;var a=t.mount.mounts.indexOf(r);W(a!==-1),t.mount.mounts.splice(a,1)},lookup:function(i,e){return i.node_ops.lookup(i,e)},mknod:function(i,e,t){var r=f.lookupPath(i,{parent:!0}),o=r.node,a=_e.basename(i);if(!a||a==="."||a==="..")throw new f.ErrnoError(28);var s=f.mayCreate(o,a);if(s)throw new f.ErrnoError(s);if(!o.node_ops.mknod)throw new f.ErrnoError(63);return o.node_ops.mknod(o,a,e,t)},create:function(i,e){return e=e!==void 0?e:438,e&=4095,e|=32768,f.mknod(i,e,0)},mkdir:function(i,e){return e=e!==void 0?e:511,e&=1023,e|=16384,f.mknod(i,e,0)},mkdirTree:function(i,e){for(var t=i.split("/"),r="",o=0;o<t.length;++o)if(t[o]){r+="/"+t[o];try{f.mkdir(r,e)}catch(a){if(a.errno!=20)throw a}}},mkdev:function(i,e,t){return typeof t=="undefined"&&(t=e,e=438),e|=8192,f.mknod(i,e,t)},symlink:function(i,e){if(!dt.resolve(i))throw new f.ErrnoError(44);var t=f.lookupPath(e,{parent:!0}),r=t.node;if(!r)throw new f.ErrnoError(44);var o=_e.basename(e),a=f.mayCreate(r,o);if(a)throw new f.ErrnoError(a);if(!r.node_ops.symlink)throw new f.ErrnoError(63);return r.node_ops.symlink(r,o,i)},rename:function(i,e){var t=_e.dirname(i),r=_e.dirname(e),o=_e.basename(i),a=_e.basename(e),s,A,c;if(s=f.lookupPath(i,{parent:!0}),A=s.node,s=f.lookupPath(e,{parent:!0}),c=s.node,!A||!c)throw new f.ErrnoError(44);if(A.mount!==c.mount)throw new f.ErrnoError(75);var u=f.lookupNode(A,o),d=dt.relative(i,r);if(d.charAt(0)!==".")throw new f.ErrnoError(28);if(d=dt.relative(e,t),d.charAt(0)!==".")throw new f.ErrnoError(55);var h;try{h=f.lookupNode(c,a)}catch(y){}if(u!==h){var I=f.isDir(u.mode),m=f.mayDelete(A,o,I);if(m)throw new f.ErrnoError(m);if(m=h?f.mayDelete(c,a,I):f.mayCreate(c,a),m)throw new f.ErrnoError(m);if(!A.node_ops.rename)throw new f.ErrnoError(63);if(f.isMountpoint(u)||h&&f.isMountpoint(h))throw new f.ErrnoError(10);if(c!==A&&(m=f.nodePermissions(A,"w"),m))throw new f.ErrnoError(m);try{f.trackingDelegate.willMovePath&&f.trackingDelegate.willMovePath(i,e)}catch(y){ge("FS.trackingDelegate['willMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}f.hashRemoveNode(u);try{A.node_ops.rename(u,c,a)}catch(y){throw y}finally{f.hashAddNode(u)}try{f.trackingDelegate.onMovePath&&f.trackingDelegate.onMovePath(i,e)}catch(y){ge("FS.trackingDelegate['onMovePath']('"+i+"', '"+e+"') threw an exception: "+y.message)}}},rmdir:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!0);if(a)throw new f.ErrnoError(a);if(!t.node_ops.rmdir)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.rmdir(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readdir:function(i){var e=f.lookupPath(i,{follow:!0}),t=e.node;if(!t.node_ops.readdir)throw new f.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(i){var e=f.lookupPath(i,{parent:!0}),t=e.node,r=_e.basename(i),o=f.lookupNode(t,r),a=f.mayDelete(t,r,!1);if(a)throw new f.ErrnoError(a);if(!t.node_ops.unlink)throw new f.ErrnoError(63);if(f.isMountpoint(o))throw new f.ErrnoError(10);try{f.trackingDelegate.willDeletePath&&f.trackingDelegate.willDeletePath(i)}catch(s){ge("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+s.message)}t.node_ops.unlink(t,r),f.destroyNode(o);try{f.trackingDelegate.onDeletePath&&f.trackingDelegate.onDeletePath(i)}catch(s){ge("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+s.message)}},readlink:function(i){var e=f.lookupPath(i),t=e.node;if(!t)throw new f.ErrnoError(44);if(!t.node_ops.readlink)throw new f.ErrnoError(28);return dt.resolve(f.getPath(t.parent),t.node_ops.readlink(t))},stat:function(i,e){var t=f.lookupPath(i,{follow:!e}),r=t.node;if(!r)throw new f.ErrnoError(44);if(!r.node_ops.getattr)throw new f.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(i){return f.stat(i,!0)},chmod:function(i,e,t){var r;if(typeof i=="string"){var o=f.lookupPath(i,{follow:!t});r=o.node}else r=i;if(!r.node_ops.setattr)throw new f.ErrnoError(63);r.node_ops.setattr(r,{mode:e&4095|r.mode&-4096,timestamp:Date.now()})},lchmod:function(i,e){f.chmod(i,e,!0)},fchmod:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);f.chmod(t.node,e)},chown:function(i,e,t,r){var o;if(typeof i=="string"){var a=f.lookupPath(i,{follow:!r});o=a.node}else o=i;if(!o.node_ops.setattr)throw new f.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(i,e,t){f.chown(i,e,t,!0)},fchown:function(i,e,t){var r=f.getStream(i);if(!r)throw new f.ErrnoError(8);f.chown(r.node,e,t)},truncate:function(i,e){if(e<0)throw new f.ErrnoError(28);var t;if(typeof i=="string"){var r=f.lookupPath(i,{follow:!0});t=r.node}else t=i;if(!t.node_ops.setattr)throw new f.ErrnoError(63);if(f.isDir(t.mode))throw new f.ErrnoError(31);if(!f.isFile(t.mode))throw new f.ErrnoError(28);var o=f.nodePermissions(t,"w");if(o)throw new f.ErrnoError(o);t.node_ops.setattr(t,{size:e,timestamp:Date.now()})},ftruncate:function(i,e){var t=f.getStream(i);if(!t)throw new f.ErrnoError(8);if((t.flags&2097155)===0)throw new f.ErrnoError(28);f.truncate(t.node,e)},utime:function(i,e,t){var r=f.lookupPath(i,{follow:!0}),o=r.node;o.node_ops.setattr(o,{timestamp:Math.max(e,t)})},open:function(i,e,t,r,o){if(i==="")throw new f.ErrnoError(44);e=typeof e=="string"?f.modeStringToFlags(e):e,t=typeof t=="undefined"?438:t,e&64?t=t&4095|32768:t=0;var a;if(typeof i=="object")a=i;else{i=_e.normalize(i);try{var s=f.lookupPath(i,{follow:!(e&131072)});a=s.node}catch(h){}}var A=!1;if(e&64)if(a){if(e&128)throw new f.ErrnoError(20)}else a=f.mknod(i,t,0),A=!0;if(!a)throw new f.ErrnoError(44);if(f.isChrdev(a.mode)&&(e&=-513),e&65536&&!f.isDir(a.mode))throw new f.ErrnoError(54);if(!A){var c=f.mayOpen(a,e);if(c)throw new f.ErrnoError(c)}e&512&&f.truncate(a,0),e&=-131713;var u=f.createStream({node:a,path:f.getPath(a),flags:e,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},r,o);u.stream_ops.open&&u.stream_ops.open(u),n.logReadFiles&&!(e&1)&&(f.readFiles||(f.readFiles={}),i in f.readFiles||(f.readFiles[i]=1,ge("FS.trackingDelegate error on read file: "+i)));try{if(f.trackingDelegate.onOpenFile){var d=0;(e&2097155)!==1&&(d|=f.tracking.openFlags.READ),(e&2097155)!==0&&(d|=f.tracking.openFlags.WRITE),f.trackingDelegate.onOpenFile(i,d)}}catch(h){ge("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+h.message)}return u},close:function(i){if(f.isClosed(i))throw new f.ErrnoError(8);i.getdents&&(i.getdents=null);try{i.stream_ops.close&&i.stream_ops.close(i)}catch(e){throw e}finally{f.closeStream(i.fd)}i.fd=null},isClosed:function(i){return i.fd===null},llseek:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(!i.seekable||!i.stream_ops.llseek)throw new f.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new f.ErrnoError(28);return i.position=i.stream_ops.llseek(i,e,t),i.ungotten=[],i.position},read:function(i,e,t,r,o){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===1)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.read)throw new f.ErrnoError(28);var a=typeof o!="undefined";if(!a)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var s=i.stream_ops.read(i,e,t,r,o);return a||(i.position+=s),s},write:function(i,e,t,r,o,a){if(r<0||o<0)throw new f.ErrnoError(28);if(f.isClosed(i))throw new f.ErrnoError(8);if((i.flags&2097155)===0)throw new f.ErrnoError(8);if(f.isDir(i.node.mode))throw new f.ErrnoError(31);if(!i.stream_ops.write)throw new f.ErrnoError(28);i.seekable&&i.flags&1024&&f.llseek(i,0,2);var s=typeof o!="undefined";if(!s)o=i.position;else if(!i.seekable)throw new f.ErrnoError(70);var A=i.stream_ops.write(i,e,t,r,o,a);s||(i.position+=A);try{i.path&&f.trackingDelegate.onWriteToFile&&f.trackingDelegate.onWriteToFile(i.path)}catch(c){ge("FS.trackingDelegate['onWriteToFile']('"+i.path+"') threw an exception: "+c.message)}return A},allocate:function(i,e,t){if(f.isClosed(i))throw new f.ErrnoError(8);if(e<0||t<=0)throw new f.ErrnoError(28);if((i.flags&2097155)===0)throw new f.ErrnoError(8);if(!f.isFile(i.node.mode)&&!f.isDir(i.node.mode))throw new f.ErrnoError(43);if(!i.stream_ops.allocate)throw new f.ErrnoError(138);i.stream_ops.allocate(i,e,t)},mmap:function(i,e,t,r,o,a){if((o&2)!==0&&(a&2)===0&&(i.flags&2097155)!==2)throw new f.ErrnoError(2);if((i.flags&2097155)===1)throw new f.ErrnoError(2);if(!i.stream_ops.mmap)throw new f.ErrnoError(43);return i.stream_ops.mmap(i,e,t,r,o,a)},msync:function(i,e,t,r,o){return!i||!i.stream_ops.msync?0:i.stream_ops.msync(i,e,t,r,o)},munmap:function(i){return 0},ioctl:function(i,e,t){if(!i.stream_ops.ioctl)throw new f.ErrnoError(59);return i.stream_ops.ioctl(i,e,t)},readFile:function(i,e){if(e=e||{},e.flags=e.flags||0,e.encoding=e.encoding||"binary",e.encoding!=="utf8"&&e.encoding!=="binary")throw new Error('Invalid encoding type "'+e.encoding+'"');var t,r=f.open(i,e.flags),o=f.stat(i),a=o.size,s=new Uint8Array(a);return f.read(r,s,0,a,0),e.encoding==="utf8"?t=Mr(s,0):e.encoding==="binary"&&(t=s),f.close(r),t},writeFile:function(i,e,t){t=t||{},t.flags=t.flags||577;var r=f.open(i,t.flags,t.mode);if(typeof e=="string"){var o=new Uint8Array(Ze(e)+1),a=Rt(e,o,0,o.length);f.write(r,o,0,a,void 0,t.canOwn)}else if(ArrayBuffer.isView(e))f.write(r,e,0,e.byteLength,void 0,t.canOwn);else throw new Error("Unsupported data type");f.close(r)},cwd:function(){return f.currentPath},chdir:function(i){var e=f.lookupPath(i,{follow:!0});if(e.node===null)throw new f.ErrnoError(44);if(!f.isDir(e.node.mode))throw new f.ErrnoError(54);var t=f.nodePermissions(e.node,"x");if(t)throw new f.ErrnoError(t);f.currentPath=e.path},createDefaultDirectories:function(){f.mkdir("/tmp"),f.mkdir("/home"),f.mkdir("/home/web_user")},createDefaultDevices:function(){f.mkdir("/dev"),f.registerDevice(f.makedev(1,3),{read:function(){return 0},write:function(e,t,r,o,a){return o}}),f.mkdev("/dev/null",f.makedev(1,3)),Pe.register(f.makedev(5,0),Pe.default_tty_ops),Pe.register(f.makedev(6,0),Pe.default_tty1_ops),f.mkdev("/dev/tty",f.makedev(5,0)),f.mkdev("/dev/tty1",f.makedev(6,0));var i=Ie();f.createDevice("/dev","random",i),f.createDevice("/dev","urandom",i),f.mkdir("/dev/shm"),f.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){f.mkdir("/proc");var i=f.mkdir("/proc/self");f.mkdir("/proc/self/fd"),f.mount({mount:function(){var e=f.createNode(i,"fd",16895,73);return e.node_ops={lookup:function(t,r){var o=+r,a=f.getStream(o);if(!a)throw new f.ErrnoError(8);var s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return a.path}}};return s.parent=s,s}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?f.createDevice("/dev","stdin",n.stdin):f.symlink("/dev/tty","/dev/stdin"),n.stdout?f.createDevice("/dev","stdout",null,n.stdout):f.symlink("/dev/tty","/dev/stdout"),n.stderr?f.createDevice("/dev","stderr",null,n.stderr):f.symlink("/dev/tty1","/dev/stderr");var i=f.open("/dev/stdin",0),e=f.open("/dev/stdout",1),t=f.open("/dev/stderr",1);W(i.fd===0,"invalid handle for stdin ("+i.fd+")"),W(e.fd===1,"invalid handle for stdout ("+e.fd+")"),W(t.fd===2,"invalid handle for stderr ("+t.fd+")")},ensureErrnoError:function(){f.ErrnoError||(f.ErrnoError=function(e,t){this.node=t,this.setErrno=function(r){this.errno=r;for(var o in An)if(An[o]===r){this.code=o;break}},this.setErrno(e),this.message=Li[e],this.stack&&(Object.defineProperty(this,"stack",{value:new Error().stack,writable:!0}),this.stack=Lr(this.stack))},f.ErrnoError.prototype=new Error,f.ErrnoError.prototype.constructor=f.ErrnoError,[44].forEach(function(i){f.genericErrors[i]=new f.ErrnoError(i),f.genericErrors[i].stack="<generic error, no stack>"}))},staticInit:function(){f.ensureErrnoError(),f.nameTable=new Array(4096),f.mount(ie,{},"/"),f.createDefaultDirectories(),f.createDefaultDevices(),f.createSpecialDirectories(),f.filesystems={MEMFS:ie}},init:function(i,e,t){W(!f.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)"),f.init.initialized=!0,f.ensureErrnoError(),n.stdin=i||n.stdin,n.stdout=e||n.stdout,n.stderr=t||n.stderr,f.createStandardStreams()},quit:function(){f.init.initialized=!1;var i=n._fflush;i&&i(0);for(var e=0;e<f.streams.length;e++){var t=f.streams[e];t&&f.close(t)}},getMode:function(i,e){var t=0;return i&&(t|=365),e&&(t|=146),t},findObject:function(i,e){var t=f.analyzePath(i,e);return t.exists?t.object:null},analyzePath:function(i,e){try{var t=f.lookupPath(i,{follow:!e});i=t.path}catch(o){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=f.lookupPath(i,{parent:!0});r.parentExists=!0,r.parentPath=t.path,r.parentObject=t.node,r.name=_e.basename(i),t=f.lookupPath(i,{follow:!e}),r.exists=!0,r.path=t.path,r.object=t.node,r.name=t.node.name,r.isRoot=t.path==="/"}catch(o){r.error=o.errno}return r},createPath:function(i,e,t,r){i=typeof i=="string"?i:f.getPath(i);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=_e.join2(i,a);try{f.mkdir(s)}catch(A){}i=s}}return s},createFile:function(i,e,t,r,o){var a=_e.join2(typeof i=="string"?i:f.getPath(i),e),s=f.getMode(r,o);return f.create(a,s)},createDataFile:function(i,e,t,r,o,a){var s=e?_e.join2(typeof i=="string"?i:f.getPath(i),e):i,A=f.getMode(r,o),c=f.create(s,A);if(t){if(typeof t=="string"){for(var u=new Array(t.length),d=0,h=t.length;d<h;++d)u[d]=t.charCodeAt(d);t=u}f.chmod(c,A|146);var I=f.open(c,577);f.write(I,t,0,t.length,0,a),f.close(I),f.chmod(c,A)}return c},createDevice:function(i,e,t,r){var o=_e.join2(typeof i=="string"?i:f.getPath(i),e),a=f.getMode(!!t,!!r);f.createDevice.major||(f.createDevice.major=64);var s=f.makedev(f.createDevice.major++,0);return f.registerDevice(s,{open:function(A){A.seekable=!1},close:function(A){r&&r.buffer&&r.buffer.length&&r(10)},read:function(A,c,u,d,h){for(var I=0,m=0;m<d;m++){var y;try{y=t()}catch(v){throw new f.ErrnoError(29)}if(y===void 0&&I===0)throw new f.ErrnoError(6);if(y==null)break;I++,c[u+m]=y}return I&&(A.node.timestamp=Date.now()),I},write:function(A,c,u,d,h){for(var I=0;I<d;I++)try{r(c[u+I])}catch(m){throw new f.ErrnoError(29)}return d&&(A.node.timestamp=Date.now()),I}}),f.mkdev(o,a,s)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(Rr)try{i.contents=ao(Rr(i.url),!0),i.usedBytes=i.contents.length}catch(e){throw new f.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(i,e,t,r,o){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(I){if(!(I>this.length-1||I<0)){var m=I%this.chunkSize,y=I/this.chunkSize|0;return this.getter(y)[m]}},a.prototype.setDataGetter=function(I){this.getter=I},a.prototype.cacheLength=function(){var I=new XMLHttpRequest;if(I.open("HEAD",t,!1),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error("Couldn't load "+t+". Status: "+I.status);var m=Number(I.getResponseHeader("Content-length")),y,v=(y=I.getResponseHeader("Accept-Ranges"))&&y==="bytes",U=(y=I.getResponseHeader("Content-Encoding"))&&y==="gzip",G=1024*1024;v||(G=m);var R=function(k,$){if(k>$)throw new Error("invalid range ("+k+", "+$+") or no bytes requested!");if($>m-1)throw new Error("only "+m+" bytes available! programmer error!");var Y=new XMLHttpRequest;if(Y.open("GET",t,!1),m!==G&&Y.setRequestHeader("Range","bytes="+k+"-"+$),typeof Uint8Array!="undefined"&&(Y.responseType="arraybuffer"),Y.overrideMimeType&&Y.overrideMimeType("text/plain; charset=x-user-defined"),Y.send(null),!(Y.status>=200&&Y.status<300||Y.status===304))throw new Error("Couldn't load "+t+". Status: "+Y.status);return Y.response!==void 0?new Uint8Array(Y.response||[]):ao(Y.responseText||"",!0)},D=this;D.setDataGetter(function(k){var $=k*G,Y=(k+1)*G-1;if(Y=Math.min(Y,m-1),typeof D.chunks[k]=="undefined"&&(D.chunks[k]=R($,Y)),typeof D.chunks[k]=="undefined")throw new Error("doXHR failed!");return D.chunks[k]}),(U||!m)&&(G=m=1,m=this.getter(0).length,G=m,Ke("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=m,this._chunkSize=G,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!Ve)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new a;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var A={isDevice:!1,contents:s}}else var A={isDevice:!1,url:t};var c=f.createFile(i,e,A,r,o);A.contents?c.contents=A.contents:A.url&&(c.contents=null,c.url=A.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={},d=Object.keys(c.stream_ops);return d.forEach(function(h){var I=c.stream_ops[h];u[h]=function(){return f.forceLoadFile(c),I.apply(null,arguments)}}),u.read=function(I,m,y,v,U){f.forceLoadFile(c);var G=I.node.contents;if(U>=G.length)return 0;var R=Math.min(G.length-U,v);if(W(R>=0),G.slice)for(var D=0;D<R;D++)m[y+D]=G[U+D];else for(var D=0;D<R;D++)m[y+D]=G.get(U+D);return R},c.stream_ops=u,c},createPreloadedFile:function(i,e,t,r,o,a,s,A,c,u){P.init();var d=e?dt.resolve(_e.join2(i,e)):i,h=nr("cp "+d);function I(m){function y(U){u&&u(),A||f.createDataFile(i,e,U,r,o,c),a&&a(),wr(h)}var v=!1;n.preloadPlugins.forEach(function(U){v||U.canHandle(d)&&(U.handle(m,d,y,function(){s&&s(),wr(h)}),v=!0)}),v||y(m)}St(h),typeof t=="string"?se(t,function(m){I(m)},s):I(t)},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(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=function(){Ke("creating db");var s=o.result;s.createObjectStore(f.DB_STORE_NAME)},o.onsuccess=function(){var s=o.result,A=s.transaction([f.DB_STORE_NAME],"readwrite"),c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.put(f.analyzePath(m).object.contents,m);y.onsuccess=function(){u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},loadFilesFromDB:function(i,e,t){e=e||function(){},t=t||function(){};var r=f.indexedDB();try{var o=r.open(f.DB_NAME(),f.DB_VERSION)}catch(a){return t(a)}o.onupgradeneeded=t,o.onsuccess=function(){var s=o.result;try{var A=s.transaction([f.DB_STORE_NAME],"readonly")}catch(m){t(m);return}var c=A.objectStore(f.DB_STORE_NAME),u=0,d=0,h=i.length;function I(){d==0?e():t()}i.forEach(function(m){var y=c.get(m);y.onsuccess=function(){f.analyzePath(m).exists&&f.unlink(m),f.createDataFile(_e.dirname(m),_e.basename(m),y.result,!0,!0,!0),u++,u+d==h&&I()},y.onerror=function(){d++,u+d==h&&I()}}),A.onerror=t},o.onerror=t},absolutePath:function(){E("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){E("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){E("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){E("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){E("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){E("FS.standardizePath has been removed; use PATH.normalize instead")}},l={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(i,e,t){if(e[0]==="/")return e;var r;if(i===-100)r=f.cwd();else{var o=f.getStream(i);if(!o)throw new f.ErrnoError(8);r=o.path}if(e.length==0){if(!t)throw new f.ErrnoError(44);return r}return _e.join2(r,e)},doStat:function(i,e,t){try{var r=i(e)}catch(o){if(o&&o.node&&_e.normalize(e)!==_e.normalize(f.getPath(o.node)))return-54;throw o}return T[t>>2]=r.dev,T[t+4>>2]=0,T[t+8>>2]=r.ino,T[t+12>>2]=r.mode,T[t+16>>2]=r.nlink,T[t+20>>2]=r.uid,T[t+24>>2]=r.gid,T[t+28>>2]=r.rdev,T[t+32>>2]=0,ye=[r.size>>>0,(We=r.size,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[t+40>>2]=ye[0],T[t+44>>2]=ye[1],T[t+48>>2]=4096,T[t+52>>2]=r.blocks,T[t+56>>2]=r.atime.getTime()/1e3|0,T[t+60>>2]=0,T[t+64>>2]=r.mtime.getTime()/1e3|0,T[t+68>>2]=0,T[t+72>>2]=r.ctime.getTime()/1e3|0,T[t+76>>2]=0,ye=[r.ino>>>0,(We=r.ino,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[t+80>>2]=ye[0],T[t+84>>2]=ye[1],0},doMsync:function(i,e,t,r,o){var a=Se.slice(i,i+t);f.msync(e,a,o,t,r)},doMkdir:function(i,e){return i=_e.normalize(i),i[i.length-1]==="/"&&(i=i.substr(0,i.length-1)),f.mkdir(i,e,0),0},doMknod:function(i,e,t){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return f.mknod(i,e,t),0},doReadlink:function(i,e,t){if(t<=0)return-28;var r=f.readlink(i),o=Math.min(t,Ze(r)),a=xe[e+o];return Je(r,e,t+1),xe[e+o]=a,o},doAccess:function(i,e){if(e&-8)return-28;var t,r=f.lookupPath(i,{follow:!0});if(t=r.node,!t)return-44;var o="";return e&4&&(o+="r"),e&2&&(o+="w"),e&1&&(o+="x"),o&&f.nodePermissions(t,o)?-2:0},doDup:function(i,e,t){var r=f.getStream(t);return r&&f.close(r),f.open(i,e,0,t,t).fd},doReadv:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.read(i,xe,s,A,r);if(c<0)return-1;if(o+=c,c<A)break}return o},doWritev:function(i,e,t,r){for(var o=0,a=0;a<t;a++){var s=T[e+a*8>>2],A=T[e+(a*8+4)>>2],c=f.write(i,xe,s,A,r);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){W(l.varargs!=null),l.varargs+=4;var i=T[l.varargs-4>>2];return i},getStr:function(i){var e=at(i);return e},getStreamFromFD:function(i){var e=f.getStream(i);if(!e)throw new f.ErrnoError(8);return e},get64:function(i,e){return i>=0?W(e===0):W(e===-1),i}};function Me(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 0:{var o=l.get();if(o<0)return-28;var a;return a=f.open(r.path,r.flags,0,o),a.fd}case 1:case 2:return 0;case 3:return r.flags;case 4:{var o=l.get();return r.flags|=o,0}case 12:{var o=l.get(),s=0;return be[o+s>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Kn(28),-1;default:return-28}}catch(A){return(typeof f=="undefined"||!(A instanceof f.ErrnoError))&&E(A),-A.errno}}function Hi(i,e,t){l.varargs=t;try{var r=l.getStreamFromFD(i);switch(e){case 21509:case 21505:return r.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return r.tty?0:-59;case 21519:{if(!r.tty)return-59;var o=l.get();return T[o>>2]=0,0}case 21520:return r.tty?-28:-59;case 21531:{var o=l.get();return f.ioctl(r,e,o)}case 21523:return r.tty?0:-59;case 21524:return r.tty?0:-59;default:E("bad ioctl syscall "+e)}}catch(a){return(typeof f=="undefined"||!(a instanceof f.ErrnoError))&&E(a),-a.errno}}function Gi(i,e,t,r,o,a){a<<=12;var s,A=!1;if((r&16)!==0&&i%65536!==0)return-28;if((r&32)!==0){if(s=Jn(e),!s)return-48;A=!0}else{var c=f.getStream(o);if(!c)return-8;var u=f.mmap(c,i,e,a,t,r);s=u.ptr,A=u.allocated}return l.mappings[s]={malloc:s,len:e,allocated:A,fd:o,prot:t,flags:r,offset:a},s}function Yi(i,e,t,r,o,a){try{return Gi(i,e,t,r,o,a)}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function Xi(i,e,t){l.varargs=t;try{var r=l.getStr(i),o=t?l.get():0,a=f.open(r,e,o);return a.fd}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),-s.errno}}function Wi(i,e){try{return i=l.getStr(i),l.doStat(f.stat,i,e)}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),-t.errno}}var Zn=48,Vi=57;function cn(i){if(i===void 0)return"_unknown";i=i.replace(/[^a-zA-Z0-9_]/g,"$");var e=i.charCodeAt(0);return e>=Zn&&e<=Vi?"_"+i:i}function ar(i,e){return i=cn(i),new Function("body","return function "+i+`() {
34
34
  "use strict"; return body.apply(this, arguments);
35
35
  };
36
36
  `)(e)}var sr=[],rt=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function ft(){for(var i=0,e=5;e<rt.length;++e)rt[e]!==void 0&&++i;return i}function zi(){for(var i=5;i<rt.length;++i)if(rt[i]!==void 0)return rt[i];return null}function $i(){n.count_emval_handles=ft,n.get_first_emval=zi}function un(i){switch(i){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var e=sr.length?sr.pop():rt.length;return rt[e]={refcount:1,value:i},e}}}function Ar(i,e){var t=ar(e,function(r){this.name=e,this.message=r;var o=new Error(r).stack;o!==void 0&&(this.stack=this.toString()+`
37
- `+o.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(i.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t}var Gr=void 0;function qn(){for(var i=new Array(256),e=0;e<256;++e)i[e]=String.fromCharCode(e);ei=i}var ei=void 0;function Fe(i){for(var e="",t=i;Se[t];)e+=ei[Se[t++]];return e}function je(){return Object.keys(Nt).length}function Ki(){var i=[];for(var e in Nt)Nt.hasOwnProperty(e)&&i.push(Nt[e]);return i}var Yr=[];function cr(){for(;Yr.length;){var i=Yr.pop();i.$$.deleteScheduled=!1,i.delete()}}var kt=void 0;function Xr(i){kt=i,Yr.length&&kt&&kt(cr)}function Ji(){n.getInheritedInstanceCount=je,n.getLiveInheritedInstances=Ki,n.flushPendingDeletes=cr,n.setDelayFunction=Xr}var Nt={},nt=void 0;function ae(i){throw new nt(i)}function Ae(i,e){for(e===void 0&&ae("ptr should not be undefined");i.baseClass;)e=i.upcast(e),i=i.baseClass;return e}function Rn(i,e,t){e=Ae(i,e),Nt.hasOwnProperty(e)?ae("Tried to register registered instance: "+e):Nt[e]=t}function ti(i){return i||ae("Cannot use deleted val. handle = "+i),rt[i].value}var Vt={};function zt(i){var e=lc(i),t=Fe(e);return _r(e),t}function ln(i,e){var t=Vt[i];return t===void 0&&ae(e+" has unknown type "+zt(i)),t}function gt(i,e){e=Ae(i,e),Nt.hasOwnProperty(e)?delete Nt[e]:ae("Tried to unregister unregistered instance: "+e)}function dn(i){}var $t=!1;function fn(i){i.smartPtr?i.smartPtrType.rawDestructor(i.smartPtr):i.ptrType.registeredClass.rawDestructor(i.ptr)}function Qt(i){i.count.value-=1;var e=i.count.value===0;e&&fn(i)}function Kt(i){return typeof FinalizationGroup=="undefined"?(Kt=function(e){return e},i):($t=new FinalizationGroup(function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Qt(r):console.warn("object already deleted: "+r.ptr)}}),Kt=function(e){return $t.register(e,e.$$,e.$$),e},dn=function(e){$t.unregister(e.$$)},Kt(i))}function Wr(i,e,t){i=Fe(i),e=ln(e,"wrapper"),t=ti(t);var r=[].slice,o=e.registeredClass,a=o.instancePrototype,s=o.baseClass,A=s.instancePrototype,c=o.baseClass.constructor,u=ar(i,function(){o.baseClass.pureVirtualFunctions.forEach(function(h){if(this[h]===A[h])throw new Gr("Pure virtual function "+h+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:a}),this.__construct.apply(this,r.call(arguments))});a.__construct=function(){this===a&&ae("Pass correct 'this' to __construct");var I=c.implement.apply(void 0,[this].concat(r.call(arguments)));dn(I);var m=I.$$;I.notifyOnDestruction(),m.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:m}}),Kt(this),Rn(o,m.ptr,this)},a.__destruct=function(){this===a&&ae("Pass correct 'this' to __destruct"),dn(this),gt(o,this.$$.ptr)},u.prototype=Object.create(a);for(var d in t)u.prototype[d]=t[d];return un(u)}var ur={};function lr(i){for(;i.length;){var e=i.pop(),t=i.pop();t(e)}}function _(i){return this.fromWireType(Oe[i>>2])}var g={},C={},B=void 0;function F(i){throw new B(i)}function H(i,e,t){i.forEach(function(A){C[A]=e});function r(A){var c=t(A);c.length!==i.length&&F("Mismatched type converter count");for(var u=0;u<i.length;++u)ee(i[u],c[u])}var o=new Array(e.length),a=[],s=0;e.forEach(function(A,c){Vt.hasOwnProperty(A)?o[c]=Vt[A]:(a.push(A),g.hasOwnProperty(A)||(g[A]=[]),g[A].push(function(){o[c]=Vt[A],++s,s===a.length&&r(o)}))}),a.length===0&&r(o)}function X(i){var e=ur[i];delete ur[i];var t=e.rawConstructor,r=e.rawDestructor,o=e.fields,a=o.map(function(s){return s.getterReturnType}).concat(o.map(function(s){return s.setterArgumentType}));H([i],a,function(s){var A={};return o.forEach(function(c,u){var d=c.fieldName,h=s[u],I=c.getter,m=c.getterContext,y=s[u+o.length],v=c.setter,U=c.setterContext;A[d]={read:function(G){return h.fromWireType(I(m,G))},write:function(G,R){var D=[];v(U,G,y.toWireType(D,R)),lr(D)}}}),[{name:e.name,fromWireType:function(c){var u={};for(var d in A)u[d]=A[d].read(c);return r(c),u},toWireType:function(c,u){for(var d in A)if(!(d in u))throw new TypeError('Missing field: "'+d+'"');var h=t();for(d in A)A[d].write(h,u[d]);return c!==null&&c.push(r,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:r}]})}function L(i,e,t,r,o){}function q(i){switch(i){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+i)}}function ee(i,e,t){if(t=t||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(i||ae('type "'+r+'" must have a positive integer typeid pointer'),Vt.hasOwnProperty(i)){if(t.ignoreDuplicateRegistrations)return;ae("Cannot register type '"+r+"' twice")}if(Vt[i]=e,delete C[i],g.hasOwnProperty(i)){var o=g[i];delete g[i],o.forEach(function(a){a()})}}function Z(i,e,t,r,o){var a=q(t);e=Fe(e),ee(i,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,A){return A?r:o},argPackAdvance:8,readValueFromPointer:function(s){var A;if(t===1)A=xe;else if(t===2)A=be;else if(t===4)A=T;else throw new TypeError("Unknown boolean type size: "+e);return this.fromWireType(A[s>>a])},destructorFunction:null})}function me(i){if(!(this instanceof ke)||!(i instanceof ke))return!1;for(var e=this.$$.ptrType.registeredClass,t=this.$$.ptr,r=i.$$.ptrType.registeredClass,o=i.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;r.baseClass;)o=r.upcast(o),r=r.baseClass;return e===r&&t===o}function Be(i){return{count:i.count,deleteScheduled:i.deleteScheduled,preservePointerOnDelete:i.preservePointerOnDelete,ptr:i.ptr,ptrType:i.ptrType,smartPtr:i.smartPtr,smartPtrType:i.smartPtrType}}function De(i){function e(t){return t.$$.ptrType.registeredClass.name}ae(e(i)+" instance already deleted")}function Ge(){if(this.$$.ptr||De(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var i=Kt(Object.create(Object.getPrototypeOf(this),{$$:{value:Be(this.$$)}}));return i.$$.count.value+=1,i.$$.deleteScheduled=!1,i}function Et(){this.$$.ptr||De(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),dn(this),Qt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ct(){return!this.$$.ptr}function qe(){return this.$$.ptr||De(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),Yr.push(this),Yr.length===1&&kt&&kt(cr),this.$$.deleteScheduled=!0,this}function dr(){ke.prototype.isAliasOf=me,ke.prototype.clone=Ge,ke.prototype.delete=Et,ke.prototype.isDeleted=ct,ke.prototype.deleteLater=qe}function ke(){}var wt={};function pt(i,e,t){if(i[e].overloadTable===void 0){var r=i[e];i[e]=function(){return i[e].overloadTable.hasOwnProperty(arguments.length)||ae("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+i[e].overloadTable+")!"),i[e].overloadTable[arguments.length].apply(this,arguments)},i[e].overloadTable=[],i[e].overloadTable[r.argCount]=r}}function fr(i,e,t){n.hasOwnProperty(i)?((t===void 0||n[i].overloadTable!==void 0&&n[i].overloadTable[t]!==void 0)&&ae("Cannot register public name '"+i+"' twice"),pt(n,i,i),n.hasOwnProperty(t)&&ae("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),n[i].overloadTable[t]=e):(n[i]=e,t!==void 0&&(n[i].numArguments=t))}function Sn(i,e,t,r,o,a,s,A){this.name=i,this.constructor=e,this.instancePrototype=t,this.rawDestructor=r,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=A,this.pureVirtualFunctions=[]}function Vr(i,e,t){for(;e!==t;)e.upcast||ae("Expected null or instance of "+t.name+", got an instance of "+e.name),i=e.upcast(i),e=e.baseClass;return i}function vr(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name);var t=e.$$.ptrType.registeredClass,r=Vr(e.$$.ptr,t,this.registeredClass);return r}function ri(i,e){var t;if(e===null)return this.isReference&&ae("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),i!==null&&i.push(this.rawDestructor,t),t):0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);var r=e.$$.ptrType.registeredClass;if(t=Vr(e.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,un(function(){o.delete()})),i!==null&&i.push(this.rawDestructor,t)}break;default:ae("Unsupporting sharing policy")}return t}function Ho(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+e.$$.ptrType.name+" to parameter type "+this.name);var t=e.$$.ptrType.registeredClass,r=Vr(e.$$.ptr,t,this.registeredClass);return r}function Go(i){return this.rawGetPointee&&(i=this.rawGetPointee(i)),i}function Yo(i){this.rawDestructor&&this.rawDestructor(i)}function Xo(i){i!==null&&i.delete()}function go(i,e,t){if(e===t)return i;if(t.baseClass===void 0)return null;var r=go(i,e,t.baseClass);return r===null?null:t.downcast(r)}function Eo(i,e){return e=Ae(i,e),Nt[e]}function ni(i,e){(!e.ptrType||!e.ptr)&&F("makeClassHandle requires ptr and ptrType");var t=!!e.smartPtrType,r=!!e.smartPtr;return t!==r&&F("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Kt(Object.create(i,{$$:{value:e}}))}function ii(i){var e=this.getPointee(i);if(!e)return this.destructor(i),null;var t=Eo(this.registeredClass,e);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=e,t.$$.smartPtr=i,t.clone();var r=t.clone();return this.destructor(i),r}function o(){return this.isSmartPointer?ni(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:i}):ni(this.registeredClass.instancePrototype,{ptrType:this,ptr:i})}var a=this.registeredClass.getActualType(e),s=wt[a];if(!s)return o.call(this);var A;this.isConst?A=s.constPointerType:A=s.pointerType;var c=go(e,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?ni(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:i}):ni(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function Wo(){gr.prototype.getPointee=Go,gr.prototype.destructor=Yo,gr.prototype.argPackAdvance=8,gr.prototype.readValueFromPointer=_,gr.prototype.deleteObject=Xo,gr.prototype.fromWireType=ii}function gr(i,e,t,r,o,a,s,A,c,u,d){this.name=i,this.registeredClass=e,this.isReference=t,this.isConst=r,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=A,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,!o&&e.baseClass===void 0?r?(this.toWireType=vr,this.destructorFunction=null):(this.toWireType=Ho,this.destructorFunction=null):this.toWireType=ri}function Jt(i,e,t){n.hasOwnProperty(i)||F("Replacing nonexistant public symbol"),n[i].overloadTable!==void 0&&t!==void 0?n[i].overloadTable[t]=e:(n[i]=e,n[i].argCount=t)}function po(i,e,t){W("dynCall_"+i in n,"bad function pointer type - no table for sig '"+i+"'"),t&&t.length?W(t.length===i.substring(1).replace(/j/g,"--").length):W(i.length==1);var r=n["dynCall_"+i];return t&&t.length?r.apply(null,[e].concat(t)):r.call(null,e)}function Vo(i,e,t){return i.includes("j")?po(i,e,t):(W(J.get(e),"missing table entry in dynCall: "+e),J.get(e).apply(null,t))}function zo(i,e){W(i.includes("j"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){t.length=arguments.length;for(var r=0;r<arguments.length;r++)t[r]=arguments[r];return Vo(i,e,t)}}function _t(i,e){i=Fe(i);function t(){return i.includes("j")?zo(i,e):J.get(e)}var r=t();return typeof r!="function"&&ae("unknown function pointer with signature "+i+": "+e),r}var ut=void 0;function Qr(i,e){var t=[],r={};function o(a){if(!r[a]&&!Vt[a]){if(C[a]){C[a].forEach(o);return}t.push(a),r[a]=!0}}throw e.forEach(o),new ut(i+": "+t.map(zt).join([", "]))}function zr(i,e,t,r,o,a,s,A,c,u,d,h,I){d=Fe(d),a=_t(o,a),A&&(A=_t(s,A)),u&&(u=_t(c,u)),I=_t(h,I);var m=cn(d);fr(m,function(){Qr("Cannot construct "+d+" due to unbound types",[r])}),H([i,e,t],r?[r]:[],function(y){y=y[0];var v,U;r?(v=y.registeredClass,U=v.instancePrototype):U=ke.prototype;var G=ar(m,function(){if(Object.getPrototypeOf(this)!==R)throw new nt("Use 'new' to construct "+d);if(D.constructor_body===void 0)throw new nt(d+" has no accessible constructor");var Ce=D.constructor_body[arguments.length];if(Ce===void 0)throw new nt("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(D.constructor_body).toString()+") parameters instead!");return Ce.apply(this,arguments)}),R=Object.create(U,{constructor:{value:G}});G.prototype=R;var D=new Sn(d,G,R,I,v,a,A,u),k=new gr(d,D,!0,!1,!1),$=new gr(d+"*",D,!1,!1,!1),Y=new gr(d+" const*",D,!1,!0,!1);return wt[i]={pointerType:$,constPointerType:Y},Jt(m,G),[k,$,Y]})}function _o(i,e){if(!(i instanceof Function))throw new TypeError("new_ called with constructor type "+typeof i+" which is not a function");var t=ar(i.name||"unknownFunctionName",function(){});t.prototype=i.prototype;var r=new t,o=i.apply(r,e);return o instanceof Object?o:r}function Mn(i,e,t,r,o){var a=e.length;a<2&&ae("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=e[1]!==null&&t!==null,A=!1,c=1;c<e.length;++c)if(e[c]!==null&&e[c].destructorFunction===void 0){A=!0;break}for(var u=e[0].name!=="void",d="",h="",c=0;c<a-2;++c)d+=(c!==0?", ":"")+"arg"+c,h+=(c!==0?", ":"")+"arg"+c+"Wired";var I="return function "+cn(i)+"("+d+`) {
37
+ `+o.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(i.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t}var Gr=void 0;function qn(){for(var i=new Array(256),e=0;e<256;++e)i[e]=String.fromCharCode(e);ei=i}var ei=void 0;function Fe(i){for(var e="",t=i;Se[t];)e+=ei[Se[t++]];return e}function je(){return Object.keys(Nt).length}function Ki(){var i=[];for(var e in Nt)Nt.hasOwnProperty(e)&&i.push(Nt[e]);return i}var Yr=[];function cr(){for(;Yr.length;){var i=Yr.pop();i.$$.deleteScheduled=!1,i.delete()}}var kt=void 0;function Xr(i){kt=i,Yr.length&&kt&&kt(cr)}function Ji(){n.getInheritedInstanceCount=je,n.getLiveInheritedInstances=Ki,n.flushPendingDeletes=cr,n.setDelayFunction=Xr}var Nt={},nt=void 0;function ae(i){throw new nt(i)}function Ae(i,e){for(e===void 0&&ae("ptr should not be undefined");i.baseClass;)e=i.upcast(e),i=i.baseClass;return e}function Rn(i,e,t){e=Ae(i,e),Nt.hasOwnProperty(e)?ae("Tried to register registered instance: "+e):Nt[e]=t}function ti(i){return i||ae("Cannot use deleted val. handle = "+i),rt[i].value}var Vt={};function zt(i){var e=lc(i),t=Fe(e);return _r(e),t}function ln(i,e){var t=Vt[i];return t===void 0&&ae(e+" has unknown type "+zt(i)),t}function gt(i,e){e=Ae(i,e),Nt.hasOwnProperty(e)?delete Nt[e]:ae("Tried to unregister unregistered instance: "+e)}function dn(i){}var $t=!1;function fn(i){i.smartPtr?i.smartPtrType.rawDestructor(i.smartPtr):i.ptrType.registeredClass.rawDestructor(i.ptr)}function Qt(i){i.count.value-=1;var e=i.count.value===0;e&&fn(i)}function Kt(i){return typeof FinalizationGroup=="undefined"?(Kt=function(e){return e},i):($t=new FinalizationGroup(function(e){for(var t=e.next();!t.done;t=e.next()){var r=t.value;r.ptr?Qt(r):console.warn("object already deleted: "+r.ptr)}}),Kt=function(e){return $t.register(e,e.$$,e.$$),e},dn=function(e){$t.unregister(e.$$)},Kt(i))}function Wr(i,e,t){i=Fe(i),e=ln(e,"wrapper"),t=ti(t);var r=[].slice,o=e.registeredClass,a=o.instancePrototype,s=o.baseClass,A=s.instancePrototype,c=o.baseClass.constructor,u=ar(i,function(){o.baseClass.pureVirtualFunctions.forEach(function(h){if(this[h]===A[h])throw new Gr("Pure virtual function "+h+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:a}),this.__construct.apply(this,r.call(arguments))});a.__construct=function(){this===a&&ae("Pass correct 'this' to __construct");var I=c.implement.apply(void 0,[this].concat(r.call(arguments)));dn(I);var m=I.$$;I.notifyOnDestruction(),m.preservePointerOnDelete=!0,Object.defineProperties(this,{$$:{value:m}}),Kt(this),Rn(o,m.ptr,this)},a.__destruct=function(){this===a&&ae("Pass correct 'this' to __destruct"),dn(this),gt(o,this.$$.ptr)},u.prototype=Object.create(a);for(var d in t)u.prototype[d]=t[d];return un(u)}var ur={};function lr(i){for(;i.length;){var e=i.pop(),t=i.pop();t(e)}}function _(i){return this.fromWireType(Oe[i>>2])}var g={},C={},B=void 0;function F(i){throw new B(i)}function H(i,e,t){i.forEach(function(A){C[A]=e});function r(A){var c=t(A);c.length!==i.length&&F("Mismatched type converter count");for(var u=0;u<i.length;++u)ee(i[u],c[u])}var o=new Array(e.length),a=[],s=0;e.forEach(function(A,c){Vt.hasOwnProperty(A)?o[c]=Vt[A]:(a.push(A),g.hasOwnProperty(A)||(g[A]=[]),g[A].push(function(){o[c]=Vt[A],++s,s===a.length&&r(o)}))}),a.length===0&&r(o)}function X(i){var e=ur[i];delete ur[i];var t=e.rawConstructor,r=e.rawDestructor,o=e.fields,a=o.map(function(s){return s.getterReturnType}).concat(o.map(function(s){return s.setterArgumentType}));H([i],a,function(s){var A={};return o.forEach(function(c,u){var d=c.fieldName,h=s[u],I=c.getter,m=c.getterContext,y=s[u+o.length],v=c.setter,U=c.setterContext;A[d]={read:function(G){return h.fromWireType(I(m,G))},write:function(G,R){var D=[];v(U,G,y.toWireType(D,R)),lr(D)}}}),[{name:e.name,fromWireType:function(c){var u={};for(var d in A)u[d]=A[d].read(c);return r(c),u},toWireType:function(c,u){for(var d in A)if(!(d in u))throw new TypeError('Missing field: "'+d+'"');var h=t();for(d in A)A[d].write(h,u[d]);return c!==null&&c.push(r,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:r}]})}function L(i,e,t,r,o){}function q(i){switch(i){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+i)}}function ee(i,e,t){if(t=t||{},!("argPackAdvance"in e))throw new TypeError("registerType registeredInstance requires argPackAdvance");var r=e.name;if(i||ae('type "'+r+'" must have a positive integer typeid pointer'),Vt.hasOwnProperty(i)){if(t.ignoreDuplicateRegistrations)return;ae("Cannot register type '"+r+"' twice")}if(Vt[i]=e,delete C[i],g.hasOwnProperty(i)){var o=g[i];delete g[i],o.forEach(function(a){a()})}}function Z(i,e,t,r,o){var a=q(t);e=Fe(e),ee(i,{name:e,fromWireType:function(s){return!!s},toWireType:function(s,A){return A?r:o},argPackAdvance:8,readValueFromPointer:function(s){var A;if(t===1)A=xe;else if(t===2)A=be;else if(t===4)A=T;else throw new TypeError("Unknown boolean type size: "+e);return this.fromWireType(A[s>>a])},destructorFunction:null})}function me(i){if(!(this instanceof ke)||!(i instanceof ke))return!1;for(var e=this.$$.ptrType.registeredClass,t=this.$$.ptr,r=i.$$.ptrType.registeredClass,o=i.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;r.baseClass;)o=r.upcast(o),r=r.baseClass;return e===r&&t===o}function Be(i){return{count:i.count,deleteScheduled:i.deleteScheduled,preservePointerOnDelete:i.preservePointerOnDelete,ptr:i.ptr,ptrType:i.ptrType,smartPtr:i.smartPtr,smartPtrType:i.smartPtrType}}function De(i){function e(t){return t.$$.ptrType.registeredClass.name}ae(e(i)+" instance already deleted")}function Ge(){if(this.$$.ptr||De(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var i=Kt(Object.create(Object.getPrototypeOf(this),{$$:{value:Be(this.$$)}}));return i.$$.count.value+=1,i.$$.deleteScheduled=!1,i}function Et(){this.$$.ptr||De(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),dn(this),Qt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ct(){return!this.$$.ptr}function qe(){return this.$$.ptr||De(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&ae("Object already scheduled for deletion"),Yr.push(this),Yr.length===1&&kt&&kt(cr),this.$$.deleteScheduled=!0,this}function dr(){ke.prototype.isAliasOf=me,ke.prototype.clone=Ge,ke.prototype.delete=Et,ke.prototype.isDeleted=ct,ke.prototype.deleteLater=qe}function ke(){}var wt={};function pt(i,e,t){if(i[e].overloadTable===void 0){var r=i[e];i[e]=function(){return i[e].overloadTable.hasOwnProperty(arguments.length)||ae("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+i[e].overloadTable+")!"),i[e].overloadTable[arguments.length].apply(this,arguments)},i[e].overloadTable=[],i[e].overloadTable[r.argCount]=r}}function fr(i,e,t){n.hasOwnProperty(i)?((t===void 0||n[i].overloadTable!==void 0&&n[i].overloadTable[t]!==void 0)&&ae("Cannot register public name '"+i+"' twice"),pt(n,i,i),n.hasOwnProperty(t)&&ae("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),n[i].overloadTable[t]=e):(n[i]=e,t!==void 0&&(n[i].numArguments=t))}function Sn(i,e,t,r,o,a,s,A){this.name=i,this.constructor=e,this.instancePrototype=t,this.rawDestructor=r,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=A,this.pureVirtualFunctions=[]}function Vr(i,e,t){for(;e!==t;)e.upcast||ae("Expected null or instance of "+t.name+", got an instance of "+e.name),i=e.upcast(i),e=e.baseClass;return i}function vr(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name);var t=e.$$.ptrType.registeredClass,r=Vr(e.$$.ptr,t,this.registeredClass);return r}function ri(i,e){var t;if(e===null)return this.isReference&&ae("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),i!==null&&i.push(this.rawDestructor,t),t):0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);var r=e.$$.ptrType.registeredClass;if(t=Vr(e.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(e.$$.smartPtr===void 0&&ae("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:ae("Cannot convert argument of type "+(e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,un(function(){o.delete()})),i!==null&&i.push(this.rawDestructor,t)}break;default:ae("Unsupporting sharing policy")}return t}function Ho(i,e){if(e===null)return this.isReference&&ae("null is not a valid "+this.name),0;e.$$||ae('Cannot pass "'+gn(e)+'" as a '+this.name),e.$$.ptr||ae("Cannot pass deleted object as a pointer of type "+this.name),e.$$.ptrType.isConst&&ae("Cannot convert argument of type "+e.$$.ptrType.name+" to parameter type "+this.name);var t=e.$$.ptrType.registeredClass,r=Vr(e.$$.ptr,t,this.registeredClass);return r}function Go(i){return this.rawGetPointee&&(i=this.rawGetPointee(i)),i}function Yo(i){this.rawDestructor&&this.rawDestructor(i)}function Xo(i){i!==null&&i.delete()}function go(i,e,t){if(e===t)return i;if(t.baseClass===void 0)return null;var r=go(i,e,t.baseClass);return r===null?null:t.downcast(r)}function Eo(i,e){return e=Ae(i,e),Nt[e]}function ni(i,e){(!e.ptrType||!e.ptr)&&F("makeClassHandle requires ptr and ptrType");var t=!!e.smartPtrType,r=!!e.smartPtr;return t!==r&&F("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Kt(Object.create(i,{$$:{value:e}}))}function ii(i){var e=this.getPointee(i);if(!e)return this.destructor(i),null;var t=Eo(this.registeredClass,e);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=e,t.$$.smartPtr=i,t.clone();var r=t.clone();return this.destructor(i),r}function o(){return this.isSmartPointer?ni(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:i}):ni(this.registeredClass.instancePrototype,{ptrType:this,ptr:i})}var a=this.registeredClass.getActualType(e),s=wt[a];if(!s)return o.call(this);var A;this.isConst?A=s.constPointerType:A=s.pointerType;var c=go(e,this.registeredClass,A.registeredClass);return c===null?o.call(this):this.isSmartPointer?ni(A.registeredClass.instancePrototype,{ptrType:A,ptr:c,smartPtrType:this,smartPtr:i}):ni(A.registeredClass.instancePrototype,{ptrType:A,ptr:c})}function Wo(){gr.prototype.getPointee=Go,gr.prototype.destructor=Yo,gr.prototype.argPackAdvance=8,gr.prototype.readValueFromPointer=_,gr.prototype.deleteObject=Xo,gr.prototype.fromWireType=ii}function gr(i,e,t,r,o,a,s,A,c,u,d){this.name=i,this.registeredClass=e,this.isReference=t,this.isConst=r,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=A,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,!o&&e.baseClass===void 0?r?(this.toWireType=vr,this.destructorFunction=null):(this.toWireType=Ho,this.destructorFunction=null):this.toWireType=ri}function Jt(i,e,t){n.hasOwnProperty(i)||F("Replacing nonexistant public symbol"),n[i].overloadTable!==void 0&&t!==void 0?n[i].overloadTable[t]=e:(n[i]=e,n[i].argCount=t)}function po(i,e,t){W("dynCall_"+i in n,"bad function pointer type - no table for sig '"+i+"'"),t&&t.length?W(t.length===i.substring(1).replace(/j/g,"--").length):W(i.length==1);var r=n["dynCall_"+i];return t&&t.length?r.apply(null,[e].concat(t)):r.call(null,e)}function Vo(i,e,t){return i.includes("j")?po(i,e,t):(W(K.get(e),"missing table entry in dynCall: "+e),K.get(e).apply(null,t))}function zo(i,e){W(i.includes("j"),"getDynCaller should only be called with i64 sigs");var t=[];return function(){t.length=arguments.length;for(var r=0;r<arguments.length;r++)t[r]=arguments[r];return Vo(i,e,t)}}function _t(i,e){i=Fe(i);function t(){return i.includes("j")?zo(i,e):K.get(e)}var r=t();return typeof r!="function"&&ae("unknown function pointer with signature "+i+": "+e),r}var ut=void 0;function Qr(i,e){var t=[],r={};function o(a){if(!r[a]&&!Vt[a]){if(C[a]){C[a].forEach(o);return}t.push(a),r[a]=!0}}throw e.forEach(o),new ut(i+": "+t.map(zt).join([", "]))}function zr(i,e,t,r,o,a,s,A,c,u,d,h,I){d=Fe(d),a=_t(o,a),A&&(A=_t(s,A)),u&&(u=_t(c,u)),I=_t(h,I);var m=cn(d);fr(m,function(){Qr("Cannot construct "+d+" due to unbound types",[r])}),H([i,e,t],r?[r]:[],function(y){y=y[0];var v,U;r?(v=y.registeredClass,U=v.instancePrototype):U=ke.prototype;var G=ar(m,function(){if(Object.getPrototypeOf(this)!==R)throw new nt("Use 'new' to construct "+d);if(D.constructor_body===void 0)throw new nt(d+" has no accessible constructor");var Ce=D.constructor_body[arguments.length];if(Ce===void 0)throw new nt("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(D.constructor_body).toString()+") parameters instead!");return Ce.apply(this,arguments)}),R=Object.create(U,{constructor:{value:G}});G.prototype=R;var D=new Sn(d,G,R,I,v,a,A,u),k=new gr(d,D,!0,!1,!1),$=new gr(d+"*",D,!1,!1,!1),Y=new gr(d+" const*",D,!1,!0,!1);return wt[i]={pointerType:$,constPointerType:Y},Jt(m,G),[k,$,Y]})}function _o(i,e){if(!(i instanceof Function))throw new TypeError("new_ called with constructor type "+typeof i+" which is not a function");var t=ar(i.name||"unknownFunctionName",function(){});t.prototype=i.prototype;var r=new t,o=i.apply(r,e);return o instanceof Object?o:r}function Mn(i,e,t,r,o){var a=e.length;a<2&&ae("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var s=e[1]!==null&&t!==null,A=!1,c=1;c<e.length;++c)if(e[c]!==null&&e[c].destructorFunction===void 0){A=!0;break}for(var u=e[0].name!=="void",d="",h="",c=0;c<a-2;++c)d+=(c!==0?", ":"")+"arg"+c,h+=(c!==0?", ":"")+"arg"+c+"Wired";var I="return function "+cn(i)+"("+d+`) {
38
38
  if (arguments.length !== `+(a-2)+`) {
39
39
  throwBindingError('function `+i+" called with ' + arguments.length + ' arguments, expected "+(a-2)+` args!');
40
40
  }
@@ -47,7 +47,7 @@ throwBindingError('function `+i+" called with ' + arguments.length + ' arguments
47
47
  `,y.push(U+"_dtor"),v.push(e[c].destructorFunction))}u&&(I+=`var ret = retType.fromWireType(rv);
48
48
  return ret;
49
49
  `),I+=`}
50
- `,y.push(I);var G=_o(Function,y).apply(null,v);return G}function $r(i,e){for(var t=[],r=0;r<i;r++)t.push(T[(e>>2)+r]);return t}function oi(i,e,t,r,o,a,s){var A=$r(t,r);e=Fe(e),a=_t(o,a),H([],[i],function(c){c=c[0];var u=c.name+"."+e;function d(){Qr("Cannot call "+u+" due to unbound types",A)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var h=c.registeredClass.constructor;return h[e]===void 0?(d.argCount=t-1,h[e]=d):(pt(h,e,u),h[e].overloadTable[t-1]=d),H([],A,function(I){var m=[I[0],null].concat(I.slice(1)),y=Mn(u,m,null,a,s);return h[e].overloadTable===void 0?(y.argCount=t-1,h[e]=y):h[e].overloadTable[t-1]=y,[]}),[]})}function $o(i,e,t,r,o,a){W(e>0);var s=$r(e,t);o=_t(r,o),H([],[i],function(A){A=A[0];var c="constructor "+A.name;if(A.registeredClass.constructor_body===void 0&&(A.registeredClass.constructor_body=[]),A.registeredClass.constructor_body[e-1]!==void 0)throw new nt("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+A.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return A.registeredClass.constructor_body[e-1]=function(){Qr("Cannot construct "+A.name+" due to unbound types",s)},H([],s,function(u){return u.splice(1,0,null),A.registeredClass.constructor_body[e-1]=Mn(c,u,null,o,a),[]}),[]})}function Ko(i,e,t,r,o,a,s,A){var c=$r(t,r);e=Fe(e),a=_t(o,a),H([],[i],function(u){u=u[0];var d=u.name+"."+e;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),A&&u.registeredClass.pureVirtualFunctions.push(e);function h(){Qr("Cannot call "+d+" due to unbound types",c)}var I=u.registeredClass.instancePrototype,m=I[e];return m===void 0||m.overloadTable===void 0&&m.className!==u.name&&m.argCount===t-2?(h.argCount=t-2,h.className=u.name,I[e]=h):(pt(I,e,d),I[e].overloadTable[t-2]=h),H([],c,function(y){var v=Mn(d,y,u,a,s);return I[e].overloadTable===void 0?(v.argCount=t-2,I[e]=v):I[e].overloadTable[t-2]=v,[]}),[]})}function ho(i,e,t){return i instanceof Object||ae(t+' with invalid "this": '+i),i instanceof e.registeredClass.constructor||ae(t+' incompatible with "this" of type '+i.constructor.name),i.$$.ptr||ae("cannot call emscripten binding method "+t+" on deleted object"),Vr(i.$$.ptr,i.$$.ptrType.registeredClass,e.registeredClass)}function Io(i,e,t,r,o,a,s,A,c,u){e=Fe(e),o=_t(r,o),H([],[i],function(d){d=d[0];var h=d.name+"."+e,I={get:function(){Qr("Cannot access "+h+" due to unbound types",[t,s])},enumerable:!0,configurable:!0};return c?I.set=function(){Qr("Cannot access "+h+" due to unbound types",[t,s])}:I.set=function(m){ae(h+" is a read-only property")},Object.defineProperty(d.registeredClass.instancePrototype,e,I),H([],c?[t,s]:[t],function(m){var y=m[0],v={get:function(){var G=ho(this,d,h+" getter");return y.fromWireType(o(a,G))},enumerable:!0};if(c){c=_t(A,c);var U=m[1];v.set=function(G){var R=ho(this,d,h+" setter"),D=[];c(u,R,U.toWireType(D,G)),lr(D)}}return Object.defineProperty(d.registeredClass.instancePrototype,e,v),[]}),[]})}function mo(i){i>4&&--rt[i].refcount===0&&(rt[i]=void 0,sr.push(i))}function Co(i,e){e=Fe(e),ee(i,{name:e,fromWireType:function(t){var r=rt[t].value;return mo(t),r},toWireType:function(t,r){return un(r)},argPackAdvance:8,readValueFromPointer:_,destructorFunction:null})}function gn(i){if(i===null)return"null";var e=typeof i;return e==="object"||e==="array"||e==="function"?i.toString():""+i}function En(i,e){switch(e){case 2:return function(t){return this.fromWireType(b[t>>2])};case 3:return function(t){return this.fromWireType(Qe[t>>3])};default:throw new TypeError("Unknown float type: "+i)}}function Jo(i,e,t){var r=q(t);e=Fe(e),ee(i,{name:e,fromWireType:function(o){return o},toWireType:function(o,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+gn(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:En(e,r),destructorFunction:null})}function Zo(i,e,t,r,o,a){var s=$r(e,t);i=Fe(i),o=_t(r,o),fr(i,function(){Qr("Cannot call "+i+" due to unbound types",s)},e-1),H([],s,function(A){var c=[A[0],null].concat(A.slice(1));return Jt(i,Mn(i,c,null,o,a),e-1),[]})}function qo(i,e,t){switch(e){case 0:return t?function(o){return xe[o]}:function(o){return Se[o]};case 1:return t?function(o){return be[o>>1]}:function(o){return ve[o>>1]};case 2:return t?function(o){return T[o>>2]}:function(o){return Oe[o>>2]};default:throw new TypeError("Unknown integer type: "+i)}}function ea(i,e,t,r,o){e=Fe(e),o===-1&&(o=4294967295);var a=q(t),s=function(u){return u};if(r===0){var A=32-8*t;s=function(u){return u<<A>>>A}}var c=e.includes("unsigned");ee(i,{name:e,fromWireType:s,toWireType:function(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError('Cannot convert "'+gn(d)+'" to '+this.name);if(d<r||d>o)throw new TypeError('Passing a number "'+gn(d)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+o+"]!");return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:qo(e,a,r!==0),destructorFunction:null})}function ta(i,e,t){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=r[e];function a(s){s=s>>2;var A=Oe,c=A[s],u=A[s+1];return new o(kr,u,c)}t=Fe(t),ee(i,{name:t,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function ra(i,e){e=Fe(e);var t=e==="std::string";ee(i,{name:e,fromWireType:function(r){var o=Oe[r>>2],a;if(t)for(var s=r+4,A=0;A<=o;++A){var c=r+4+A;if(A==o||Se[c]==0){var u=c-s,d=at(s,u);a===void 0?a=d:(a+=String.fromCharCode(0),a+=d),s=c+1}}else{for(var h=new Array(o),A=0;A<o;++A)h[A]=String.fromCharCode(Se[r+4+A]);a=h.join("")}return _r(r),a},toWireType:function(r,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var a,s=typeof o=="string";s||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||ae("Cannot pass non-string to std::string"),t&&s?a=function(){return Ze(o)}:a=function(){return o.length};var A=a(),c=it(4+A+1);if(Oe[c>>2]=A,t&&s)Je(o,c+4,A+1);else if(s)for(var u=0;u<A;++u){var d=o.charCodeAt(u);d>255&&(_r(c),ae("String has UTF-16 code units that do not fit in 8 bits")),Se[c+4+u]=d}else for(var u=0;u<A;++u)Se[c+4+u]=o[u];return r!==null&&r.push(_r,c),c},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(r){_r(r)}})}function na(i,e,t){t=Fe(t);var r,o,a,s,A;e===2?(r=bt,o=Gn,s=Ti,a=function(){return ve},A=1):e===4&&(r=mn,o=Yn,s=vi,a=function(){return Oe},A=2),ee(i,{name:t,fromWireType:function(c){for(var u=Oe[c>>2],d=a(),h,I=c+4,m=0;m<=u;++m){var y=c+4+m*e;if(m==u||d[y>>A]==0){var v=y-I,U=r(I,v);h===void 0?h=U:(h+=String.fromCharCode(0),h+=U),I=y+e}}return _r(c),h},toWireType:function(c,u){typeof u!="string"&&ae("Cannot pass non-string to C++ string type "+t);var d=s(u),h=it(4+d+e);return Oe[h>>2]=d>>A,o(u,h+4,d+e),c!==null&&c.push(_r,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(c){_r(c)}})}function ia(i,e,t,r,o,a){ur[i]={name:Fe(e),rawConstructor:_t(t,r),rawDestructor:_t(o,a),fields:[]}}function oa(i,e,t,r,o,a,s,A,c,u){ur[i].fields.push({fieldName:Fe(e),getterReturnType:t,getter:_t(r,o),getterContext:a,setterArgumentType:s,setter:_t(A,c),setterContext:u})}function aa(i,e){e=Fe(e),ee(i,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:function(){},toWireType:function(t,r){}})}var sa={};function Aa(i){var e=sa[i];return e===void 0?Fe(i):e}var Zi=[];function qi(i,e,t,r){i=Zi[i],e=ti(e),t=Aa(t),i(e,t,null,r)}function ca(i){var e=Zi.length;return Zi.push(i),e}function ua(i,e){for(var t=new Array(i),r=0;r<i;++r)t[r]=ln(T[(e>>2)+r],"parameter "+r);return t}function la(i,e){for(var t=ua(i,e),r=t[0],o=r.name+"_$"+t.slice(1).map(function(m){return m.name}).join("_")+"$",a=["retType"],s=[r],A="",c=0;c<i-1;++c)A+=(c!==0?", ":"")+"arg"+c,a.push("argType"+c),s.push(t[1+c]);for(var u=cn("methodCaller_"+o),d="return function "+u+`(handle, name, destructors, args) {
50
+ `,y.push(I);var G=_o(Function,y).apply(null,v);return G}function $r(i,e){for(var t=[],r=0;r<i;r++)t.push(T[(e>>2)+r]);return t}function oi(i,e,t,r,o,a,s){var A=$r(t,r);e=Fe(e),a=_t(o,a),H([],[i],function(c){c=c[0];var u=c.name+"."+e;function d(){Qr("Cannot call "+u+" due to unbound types",A)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]);var h=c.registeredClass.constructor;return h[e]===void 0?(d.argCount=t-1,h[e]=d):(pt(h,e,u),h[e].overloadTable[t-1]=d),H([],A,function(I){var m=[I[0],null].concat(I.slice(1)),y=Mn(u,m,null,a,s);return h[e].overloadTable===void 0?(y.argCount=t-1,h[e]=y):h[e].overloadTable[t-1]=y,[]}),[]})}function $o(i,e,t,r,o,a){W(e>0);var s=$r(e,t);o=_t(r,o),H([],[i],function(A){A=A[0];var c="constructor "+A.name;if(A.registeredClass.constructor_body===void 0&&(A.registeredClass.constructor_body=[]),A.registeredClass.constructor_body[e-1]!==void 0)throw new nt("Cannot register multiple constructors with identical number of parameters ("+(e-1)+") for class '"+A.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return A.registeredClass.constructor_body[e-1]=function(){Qr("Cannot construct "+A.name+" due to unbound types",s)},H([],s,function(u){return u.splice(1,0,null),A.registeredClass.constructor_body[e-1]=Mn(c,u,null,o,a),[]}),[]})}function Ko(i,e,t,r,o,a,s,A){var c=$r(t,r);e=Fe(e),a=_t(o,a),H([],[i],function(u){u=u[0];var d=u.name+"."+e;e.startsWith("@@")&&(e=Symbol[e.substring(2)]),A&&u.registeredClass.pureVirtualFunctions.push(e);function h(){Qr("Cannot call "+d+" due to unbound types",c)}var I=u.registeredClass.instancePrototype,m=I[e];return m===void 0||m.overloadTable===void 0&&m.className!==u.name&&m.argCount===t-2?(h.argCount=t-2,h.className=u.name,I[e]=h):(pt(I,e,d),I[e].overloadTable[t-2]=h),H([],c,function(y){var v=Mn(d,y,u,a,s);return I[e].overloadTable===void 0?(v.argCount=t-2,I[e]=v):I[e].overloadTable[t-2]=v,[]}),[]})}function ho(i,e,t){return i instanceof Object||ae(t+' with invalid "this": '+i),i instanceof e.registeredClass.constructor||ae(t+' incompatible with "this" of type '+i.constructor.name),i.$$.ptr||ae("cannot call emscripten binding method "+t+" on deleted object"),Vr(i.$$.ptr,i.$$.ptrType.registeredClass,e.registeredClass)}function Io(i,e,t,r,o,a,s,A,c,u){e=Fe(e),o=_t(r,o),H([],[i],function(d){d=d[0];var h=d.name+"."+e,I={get:function(){Qr("Cannot access "+h+" due to unbound types",[t,s])},enumerable:!0,configurable:!0};return c?I.set=function(){Qr("Cannot access "+h+" due to unbound types",[t,s])}:I.set=function(m){ae(h+" is a read-only property")},Object.defineProperty(d.registeredClass.instancePrototype,e,I),H([],c?[t,s]:[t],function(m){var y=m[0],v={get:function(){var G=ho(this,d,h+" getter");return y.fromWireType(o(a,G))},enumerable:!0};if(c){c=_t(A,c);var U=m[1];v.set=function(G){var R=ho(this,d,h+" setter"),D=[];c(u,R,U.toWireType(D,G)),lr(D)}}return Object.defineProperty(d.registeredClass.instancePrototype,e,v),[]}),[]})}function mo(i){i>4&&--rt[i].refcount===0&&(rt[i]=void 0,sr.push(i))}function Co(i,e){e=Fe(e),ee(i,{name:e,fromWireType:function(t){var r=rt[t].value;return mo(t),r},toWireType:function(t,r){return un(r)},argPackAdvance:8,readValueFromPointer:_,destructorFunction:null})}function gn(i){if(i===null)return"null";var e=typeof i;return e==="object"||e==="array"||e==="function"?i.toString():""+i}function En(i,e){switch(e){case 2:return function(t){return this.fromWireType(b[t>>2])};case 3:return function(t){return this.fromWireType(Qe[t>>3])};default:throw new TypeError("Unknown float type: "+i)}}function Jo(i,e,t){var r=q(t);e=Fe(e),ee(i,{name:e,fromWireType:function(o){return o},toWireType:function(o,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+gn(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:En(e,r),destructorFunction:null})}function Zo(i,e,t,r,o,a){var s=$r(e,t);i=Fe(i),o=_t(r,o),fr(i,function(){Qr("Cannot call "+i+" due to unbound types",s)},e-1),H([],s,function(A){var c=[A[0],null].concat(A.slice(1));return Jt(i,Mn(i,c,null,o,a),e-1),[]})}function qo(i,e,t){switch(e){case 0:return t?function(o){return xe[o]}:function(o){return Se[o]};case 1:return t?function(o){return be[o>>1]}:function(o){return ve[o>>1]};case 2:return t?function(o){return T[o>>2]}:function(o){return Oe[o>>2]};default:throw new TypeError("Unknown integer type: "+i)}}function ea(i,e,t,r,o){e=Fe(e),o===-1&&(o=4294967295);var a=q(t),s=function(u){return u};if(r===0){var A=32-8*t;s=function(u){return u<<A>>>A}}var c=e.includes("unsigned");ee(i,{name:e,fromWireType:s,toWireType:function(u,d){if(typeof d!="number"&&typeof d!="boolean")throw new TypeError('Cannot convert "'+gn(d)+'" to '+this.name);if(d<r||d>o)throw new TypeError('Passing a number "'+gn(d)+'" from JS side to C/C++ side to an argument of type "'+e+'", which is outside the valid range ['+r+", "+o+"]!");return c?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:qo(e,a,r!==0),destructorFunction:null})}function ta(i,e,t){var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=r[e];function a(s){s=s>>2;var A=Oe,c=A[s],u=A[s+1];return new o(kr,u,c)}t=Fe(t),ee(i,{name:t,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function ra(i,e){e=Fe(e);var t=e==="std::string";ee(i,{name:e,fromWireType:function(r){var o=Oe[r>>2],a;if(t)for(var s=r+4,A=0;A<=o;++A){var c=r+4+A;if(A==o||Se[c]==0){var u=c-s,d=at(s,u);a===void 0?a=d:(a+="\0",a+=d),s=c+1}}else{for(var h=new Array(o),A=0;A<o;++A)h[A]=String.fromCharCode(Se[r+4+A]);a=h.join("")}return _r(r),a},toWireType:function(r,o){o instanceof ArrayBuffer&&(o=new Uint8Array(o));var a,s=typeof o=="string";s||o instanceof Uint8Array||o instanceof Uint8ClampedArray||o instanceof Int8Array||ae("Cannot pass non-string to std::string"),t&&s?a=function(){return Ze(o)}:a=function(){return o.length};var A=a(),c=it(4+A+1);if(Oe[c>>2]=A,t&&s)Je(o,c+4,A+1);else if(s)for(var u=0;u<A;++u){var d=o.charCodeAt(u);d>255&&(_r(c),ae("String has UTF-16 code units that do not fit in 8 bits")),Se[c+4+u]=d}else for(var u=0;u<A;++u)Se[c+4+u]=o[u];return r!==null&&r.push(_r,c),c},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(r){_r(r)}})}function na(i,e,t){t=Fe(t);var r,o,a,s,A;e===2?(r=bt,o=Gn,s=Ti,a=function(){return ve},A=1):e===4&&(r=mn,o=Yn,s=vi,a=function(){return Oe},A=2),ee(i,{name:t,fromWireType:function(c){for(var u=Oe[c>>2],d=a(),h,I=c+4,m=0;m<=u;++m){var y=c+4+m*e;if(m==u||d[y>>A]==0){var v=y-I,U=r(I,v);h===void 0?h=U:(h+="\0",h+=U),I=y+e}}return _r(c),h},toWireType:function(c,u){typeof u!="string"&&ae("Cannot pass non-string to C++ string type "+t);var d=s(u),h=it(4+d+e);return Oe[h>>2]=d>>A,o(u,h+4,d+e),c!==null&&c.push(_r,h),h},argPackAdvance:8,readValueFromPointer:_,destructorFunction:function(c){_r(c)}})}function ia(i,e,t,r,o,a){ur[i]={name:Fe(e),rawConstructor:_t(t,r),rawDestructor:_t(o,a),fields:[]}}function oa(i,e,t,r,o,a,s,A,c,u){ur[i].fields.push({fieldName:Fe(e),getterReturnType:t,getter:_t(r,o),getterContext:a,setterArgumentType:s,setter:_t(A,c),setterContext:u})}function aa(i,e){e=Fe(e),ee(i,{isVoid:!0,name:e,argPackAdvance:0,fromWireType:function(){},toWireType:function(t,r){}})}var sa={};function Aa(i){var e=sa[i];return e===void 0?Fe(i):e}var Zi=[];function qi(i,e,t,r){i=Zi[i],e=ti(e),t=Aa(t),i(e,t,null,r)}function ca(i){var e=Zi.length;return Zi.push(i),e}function ua(i,e){for(var t=new Array(i),r=0;r<i;++r)t[r]=ln(T[(e>>2)+r],"parameter "+r);return t}function la(i,e){for(var t=ua(i,e),r=t[0],o=r.name+"_$"+t.slice(1).map(function(m){return m.name}).join("_")+"$",a=["retType"],s=[r],A="",c=0;c<i-1;++c)A+=(c!==0?", ":"")+"arg"+c,a.push("argType"+c),s.push(t[1+c]);for(var u=cn("methodCaller_"+o),d="return function "+u+`(handle, name, destructors, args) {
51
51
  `,h=0,c=0;c<i-1;++c)d+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(h?"+"+h:"")+`);
52
52
  `,h+=t[c+1].argPackAdvance;d+=" var rv = handle[name]("+A+`);
53
53
  `;for(var c=0;c<i-1;++c)t[c+1].deleteObject&&(d+=" argType"+c+".deleteObject(arg"+c+`);
@@ -56,5 +56,5 @@ return ret;
56
56
  `,a.push(d);var I=_o(Function,a).apply(null,s);return ca(I)}function da(i){i>4&&(rt[i].refcount+=1)}function fa(i,e){i=ln(i,"_emval_take_value");var t=i.readValueFromPointer(e);return un(t)}function ga(){E()}var Ea=!0;function pa(i,e){var t;if(i===0)t=Date.now();else if((i===1||i===4)&&Ea)t=Tt();else return Kn(28),-1;return T[e>>2]=t/1e3|0,T[e+4>>2]=t%1e3*1e3*1e3|0,0}function _a(i,e){E("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function ha(i,e){E("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}var ai=[];function si(i,e){W(Array.isArray(ai)),W(e%16==0),ai.length=0;var t;for(e>>=2;t=Se[i++];){W(t===100||t===102||t===105);var r=t<105;r&&e&1&&e++,ai.push(r?Qe[e++>>1]:T[e]),++e}return ai}function Ia(i,e,t){var r=si(e,t);return Bt.hasOwnProperty(i)||E("No EM_ASM constant found at address "+i),Bt[i].apply(null,r)}function ma(){return 2147483648}function Ca(i,e,t){Se.copyWithin(i,e,e+t)}function ya(i){E("Cannot use emscripten_pc_get_function without -s USE_OFFSET_CONVERTER")}function wa(i){try{return xt.grow(i-kr.byteLength+65535>>>16),ze(xt.buffer),1}catch(e){ge("emscripten_realloc_buffer: Attempted to grow heap from "+kr.byteLength+" bytes to "+i+" bytes, but got error: "+e)}}function Da(i){var e=Se.length;i=i>>>0,W(i>e);var t=2147483648;if(i>t)return ge("Cannot enlarge memory, asked to go up to "+i+" bytes, but the limit is "+t+" bytes!"),!1;for(var r=1;r<=4;r*=2){var o=e*(1+.2/r);o=Math.min(o,i+100663296);var a=Math.min(t,Xn(Math.max(i,o),65536)),s=wa(a);if(s)return!0}return ge("Failed to grow the heap from "+e+" bytes to "+a+" bytes, not enough memory!"),!1}function Ai(i){E("Cannot use emscripten_generate_pc (needed by __builtin_return_address) without -s USE_OFFSET_CONVERTER")}var Er={};function Kr(i){i.forEach(function(e){var t=Ai(e);t&&(Er[t]=e)})}function yo(){var i=new Error().stack.split(`
57
57
  `);return i[0]=="Error"&&i.shift(),Kr(i),Er.last_addr=Ai(i[2]),Er.last_stack=i,Er.last_addr}function ba(i,e,t){var r;Er.last_addr==i?r=Er.last_stack:(r=new Error().stack.split(`
58
58
  `),r[0]=="Error"&&r.shift(),Kr(r));for(var o=2;r[o]&&Ai(r[o])!=i;)++o;for(var a=0;a<t&&r[a+o];++a)T[e+a*4>>2]=Ai(r[a+o]);return a}function Oa(i){for(var e=Tt();Tt()-e<i;);}function Ba(i){var e=i.getExtension("ANGLE_instanced_arrays");if(e)return i.vertexAttribDivisor=function(t,r){e.vertexAttribDivisorANGLE(t,r)},i.drawArraysInstanced=function(t,r,o,a){e.drawArraysInstancedANGLE(t,r,o,a)},i.drawElementsInstanced=function(t,r,o,a,s){e.drawElementsInstancedANGLE(t,r,o,a,s)},1}function Ta(i){var e=i.getExtension("OES_vertex_array_object");if(e)return i.createVertexArray=function(){return e.createVertexArrayOES()},i.deleteVertexArray=function(t){e.deleteVertexArrayOES(t)},i.bindVertexArray=function(t){e.bindVertexArrayOES(t)},i.isVertexArray=function(t){return e.isVertexArrayOES(t)},1}function va(i){var e=i.getExtension("WEBGL_draw_buffers");if(e)return i.drawBuffers=function(t,r){e.drawBuffersWEBGL(t,r)},1}function Qa(i){return!!(i.dibvbi=i.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function Pa(i){return!!(i.mdibvbi=i.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function Ra(i){return!!(i.multiDrawWebgl=i.getExtension("WEBGL_multi_draw"))}var O={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){O.lastError||(O.lastError=e)},getNewId:function(i){for(var e=O.counter++,t=i.length;t<e;t++)i[t]=null;return e},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:function(i){return 32-Math.clz32(i===0?0:i-1)},generateTempBuffers:function(i,e){var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE);e.tempVertexBufferCounters1=[],e.tempVertexBufferCounters2=[],e.tempVertexBufferCounters1.length=e.tempVertexBufferCounters2.length=t+1,e.tempVertexBuffers1=[],e.tempVertexBuffers2=[],e.tempVertexBuffers1.length=e.tempVertexBuffers2.length=t+1,e.tempIndexBuffers=[],e.tempIndexBuffers.length=t+1;for(var r=0;r<=t;++r){e.tempIndexBuffers[r]=null,e.tempVertexBufferCounters1[r]=e.tempVertexBufferCounters2[r]=0;var o=O.numTempVertexBuffersPerSize;e.tempVertexBuffers1[r]=[],e.tempVertexBuffers2[r]=[];var a=e.tempVertexBuffers1[r],s=e.tempVertexBuffers2[r];a.length=s.length=o;for(var A=0;A<o;++A)a[A]=s[A]=null}if(i){e.tempQuadIndexBuffer=M.createBuffer(),e.GLctx.bindBuffer(34963,e.tempQuadIndexBuffer);for(var c=O.MAX_TEMP_BUFFER_SIZE>>1,u=new Uint16Array(c),r=0,d=0;u[r++]=d,!(r>=c||(u[r++]=d+1,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d,r>=c)||(u[r++]=d+2,r>=c)||(u[r++]=d+3,r>=c));)d+=4;e.GLctx.bufferData(34963,u,35044),e.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempVertexBuffers1[t],o=O.currentContext.tempVertexBufferCounters1[t];O.currentContext.tempVertexBufferCounters1[t]=O.currentContext.tempVertexBufferCounters1[t]+1&O.numTempVertexBuffersPerSize-1;var a=r[o];if(a)return a;var s=M.getParameter(34964);return r[o]=M.createBuffer(),M.bindBuffer(34962,r[o]),M.bufferData(34962,1<<t,35048),M.bindBuffer(34962,s),r[o]},getTempIndexBuffer:function(e){var t=O.log2ceilLookup(e),r=O.currentContext.tempIndexBuffers[t];if(r)return r;var o=M.getParameter(34965);return O.currentContext.tempIndexBuffers[t]=M.createBuffer(),M.bindBuffer(34963,O.currentContext.tempIndexBuffers[t]),M.bufferData(34963,1<<t,35048),M.bindBuffer(34963,o),O.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:function(){if(O.currentContext){var e=O.currentContext.tempVertexBuffers1;O.currentContext.tempVertexBuffers1=O.currentContext.tempVertexBuffers2,O.currentContext.tempVertexBuffers2=e,e=O.currentContext.tempVertexBufferCounters1,O.currentContext.tempVertexBufferCounters1=O.currentContext.tempVertexBufferCounters2,O.currentContext.tempVertexBufferCounters2=e;for(var t=O.log2ceilLookup(O.MAX_TEMP_BUFFER_SIZE),r=0;r<=t;++r)O.currentContext.tempVertexBufferCounters1[r]=0}},getSource:function(i,e,t,r){for(var o="",a=0;a<e;++a){var s=r?T[r+a*4>>2]:-1;o+=at(T[t+a*4>>2],s<0?void 0:s)}return o},calcBufLength:function(e,t,r,o){if(r>0)return o*r;var a=O.byteSizeByType[t-O.byteSizeByTypeRoot];return e*a*o},usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:function(e){O.resetBufferBinding=!1;for(var t=0;t<O.currentContext.maxVertexAttribs;++t){var r=O.currentContext.clientBuffers[t];if(!(!r.clientside||!r.enabled)){O.resetBufferBinding=!0;var o=O.calcBufLength(r.size,r.type,r.stride,e),a=O.getTempVertexBuffer(o);M.bindBuffer(34962,a),M.bufferSubData(34962,0,Se.subarray(r.ptr,r.ptr+o)),r.vertexAttribPointerAdaptor.call(M,t,r.size,r.type,r.normalized,r.stride,0)}}},postDrawHandleClientVertexAttribBindings:function(){O.resetBufferBinding&&M.bindBuffer(34962,O.buffers[M.currentArrayBufferBinding])},createContext:function(i,e){e.renderViaOffscreenBackBuffer&&(e.preserveDrawingBuffer=!0);var t=e.majorVersion>1?i.getContext("webgl2",e):i.getContext("webgl",e);if(!t)return 0;var r=O.registerContext(t,e);return r},enableOffscreenFramebufferAttributes:function(i){i.renderViaOffscreenBackBuffer=!0,i.preserveDrawingBuffer=!0},createOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.createFramebuffer();if(e.bindFramebuffer(36160,t),i.defaultFbo=t,i.defaultFboForbidBlitFramebuffer=!1,e.getContextAttributes().antialias)i.defaultFboForbidBlitFramebuffer=!0;else{var r=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(r!=null){var o=r[1];i.defaultFboForbidBlitFramebuffer=o<67}}i.defaultColorTarget=e.createTexture(),i.defaultDepthTarget=e.createRenderbuffer(),O.resizeOffscreenFramebuffer(i),e.bindTexture(3553,i.defaultColorTarget),e.texParameteri(3553,10241,9728),e.texParameteri(3553,10240,9728),e.texParameteri(3553,10242,33071),e.texParameteri(3553,10243,33071),e.texImage2D(3553,0,6408,e.canvas.width,e.canvas.height,0,6408,5121,null),e.framebufferTexture2D(36160,36064,3553,i.defaultColorTarget,0),e.bindTexture(3553,null);var a=e.createRenderbuffer();e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.canvas.width,e.canvas.height),e.framebufferRenderbuffer(36160,36096,36161,i.defaultDepthTarget),e.bindRenderbuffer(36161,null);var s=[-1,-1,-1,1,1,-1,1,1],A=e.createBuffer();e.bindBuffer(34962,A),e.bufferData(34962,new Float32Array(s),35044),e.bindBuffer(34962,null),i.blitVB=A;var c="attribute vec2 pos;varying lowp vec2 tex;void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }",u=e.createShader(35633);e.shaderSource(u,c),e.compileShader(u);var d="varying lowp vec2 tex;uniform sampler2D sampler;void main() { gl_FragColor = texture2D(sampler, tex); }",h=e.createShader(35632);e.shaderSource(h,d),e.compileShader(h);var I=e.createProgram();e.attachShader(I,u),e.attachShader(I,h),e.linkProgram(I),i.blitProgram=I,i.blitPosLoc=e.getAttribLocation(I,"pos"),e.useProgram(I),e.uniform1i(e.getUniformLocation(I,"sampler"),0),e.useProgram(null),i.defaultVao=void 0,e.createVertexArray&&(i.defaultVao=e.createVertexArray(),e.bindVertexArray(i.defaultVao),e.enableVertexAttribArray(i.blitPosLoc),e.bindVertexArray(null))},resizeOffscreenFramebuffer:function(i){var e=i.GLctx;if(i.defaultColorTarget){var t=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget),e.texImage2D(3553,0,6408,e.drawingBufferWidth,e.drawingBufferHeight,0,6408,5121,null),e.bindTexture(3553,t)}if(i.defaultDepthTarget){var r=e.getParameter(36007);e.bindRenderbuffer(36161,i.defaultDepthTarget),e.renderbufferStorage(36161,33189,e.drawingBufferWidth,e.drawingBufferHeight),e.bindRenderbuffer(36161,r)}},blitOffscreenFramebuffer:function(i){var e=i.GLctx,t=e.getParameter(3089);t&&e.disable(3089);var r=e.getParameter(36006);if(e.blitFramebuffer&&!i.defaultFboForbidBlitFramebuffer)e.bindFramebuffer(36008,i.defaultFbo),e.bindFramebuffer(36009,null),e.blitFramebuffer(0,0,e.canvas.width,e.canvas.height,0,0,e.canvas.width,e.canvas.height,16384,9728);else{let $=function(){e.vertexAttribPointer(i.blitPosLoc,2,5126,!1,0,0),e.drawArrays(5,0,4)};var k=$;e.bindFramebuffer(36160,null);var o=e.getParameter(35725);e.useProgram(i.blitProgram);var a=e.getParameter(34964);e.bindBuffer(34962,i.blitVB);var s=e.getParameter(34016);e.activeTexture(33984);var A=e.getParameter(32873);e.bindTexture(3553,i.defaultColorTarget);var c=e.getParameter(3042);c&&e.disable(3042);var u=e.getParameter(2884);u&&e.disable(2884);var d=e.getParameter(2929);d&&e.disable(2929);var h=e.getParameter(2960);if(h&&e.disable(2960),i.defaultVao){var I=e.getParameter(34229);e.bindVertexArray(i.defaultVao),$(),e.bindVertexArray(I)}else{for(var m={buffer:e.getVertexAttrib(i.blitPosLoc,34975),size:e.getVertexAttrib(i.blitPosLoc,34339),stride:e.getVertexAttrib(i.blitPosLoc,34340),type:e.getVertexAttrib(i.blitPosLoc,34341),normalized:e.getVertexAttrib(i.blitPosLoc,34922),pointer:e.getVertexAttribOffset(i.blitPosLoc,34373)},y=e.getParameter(34921),v=[],U=0;U<y;++U){var G=e.getVertexAttrib(U,34338),R=U==i.blitPosLoc;G&&!R&&e.disableVertexAttribArray(U),!G&&R&&e.enableVertexAttribArray(U),v[U]=G}$();for(var U=0;U<y;++U){var G=v[U],D=U==i.blitPosLoc;G&&!D&&e.enableVertexAttribArray(U),!G&&D&&e.disableVertexAttribArray(U)}e.bindBuffer(34962,m.buffer),e.vertexAttribPointer(i.blitPosLoc,m.size,m.type,m.normalized,m.stride,m.offset)}h&&e.enable(2960),d&&e.enable(2929),u&&e.enable(2884),c&&e.enable(3042),e.bindTexture(3553,A),e.activeTexture(s),e.bindBuffer(34962,a),e.useProgram(o)}e.bindFramebuffer(36160,r),t&&e.enable(3089)},registerContext:function(i,e){var t=O.getNewId(O.contexts),r={handle:t,attributes:e,version:e.majorVersion,GLctx:i};i.canvas&&(i.canvas.GLctxObject=r),O.contexts[t]=r,(typeof e.enableExtensionsByDefault=="undefined"||e.enableExtensionsByDefault)&&O.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var o=0;o<r.maxVertexAttribs;o++)r.clientBuffers[o]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return O.generateTempBuffers(!1,r),e.renderViaOffscreenBackBuffer&&O.createOffscreenFramebuffer(r),t},makeContextCurrent:function(i){return O.currentContext=O.contexts[i],n.ctx=M=O.currentContext&&O.currentContext.GLctx,!(i&&!M)},getContext:function(i){return O.contexts[i]},deleteContext:function(i){O.currentContext===O.contexts[i]&&(O.currentContext=null),typeof w=="object"&&w.removeAllHandlersOnTarget(O.contexts[i].GLctx.canvas),O.contexts[i]&&O.contexts[i].GLctx.canvas&&(O.contexts[i].GLctx.canvas.GLctxObject=void 0),O.contexts[i]=null},initExtensions:function(i){if(i||(i=O.currentContext),!i.initExtensionsDone){i.initExtensionsDone=!0;var e=i.GLctx;Ba(e),Ta(e),va(e),Qa(e),Pa(e),i.version>=2&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query_webgl2")),(i.version<2||!e.disjointTimerQueryExt)&&(e.disjointTimerQueryExt=e.getExtension("EXT_disjoint_timer_query")),Ra(e);var t=e.getSupportedExtensions()||[];t.forEach(function(r){!r.includes("lose_context")&&!r.includes("debug")&&e.getExtension(r)})}}},w={inEventHandler:0,removeAllEventListeners:function(){for(var i=w.eventHandlers.length-1;i>=0;--i)w._removeHandler(i);w.eventHandlers=[],w.deferredCalls=[]},registerRemoveEventListeners:function(){w.removeEventListenersRegistered||(xr.push(w.removeAllEventListeners),w.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(i,e,t){function r(s,A){if(s.length!=A.length)return!1;for(var c in s)if(s[c]!=A[c])return!1;return!0}for(var o in w.deferredCalls){var a=w.deferredCalls[o];if(a.targetFunction==i&&r(a.argsList,t))return}w.deferredCalls.push({targetFunction:i,precedence:e,argsList:t}),w.deferredCalls.sort(function(s,A){return s.precedence<A.precedence})},removeDeferredCalls:function(i){for(var e=0;e<w.deferredCalls.length;++e)w.deferredCalls[e].targetFunction==i&&(w.deferredCalls.splice(e,1),--e)},canPerformEventHandlerRequests:function(){return w.inEventHandler&&w.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(w.canPerformEventHandlerRequests())for(var i=0;i<w.deferredCalls.length;++i){var e=w.deferredCalls[i];w.deferredCalls.splice(i,1),--i,e.targetFunction.apply(null,e.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(i,e){for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i&&(!e||e==w.eventHandlers[t].eventTypeString)&&w._removeHandler(t--)},_removeHandler:function(i){var e=w.eventHandlers[i];e.target.removeEventListener(e.eventTypeString,e.eventListenerFunc,e.useCapture),w.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(i){var e=function(o){++w.inEventHandler,w.currentEventHandler=i,w.runDeferredCalls(),i.handlerFunc(o),w.runDeferredCalls(),--w.inEventHandler};if(i.callbackfunc)i.eventListenerFunc=e,i.target.addEventListener(i.eventTypeString,e,i.useCapture),w.eventHandlers.push(i),w.registerRemoveEventListeners();else for(var t=0;t<w.eventHandlers.length;++t)w.eventHandlers[t].target==i.target&&w.eventHandlers[t].eventTypeString==i.eventTypeString&&w._removeHandler(t--)},getNodeNameForTarget:function(i){return i?i==window?"#window":i==screen?"#screen":i&&i.nodeName?i.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},fe=["default","low-power","high-performance"],wo=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Sa(i){Re("Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details.");try{return!i||(typeof i=="number"&&(i=wo[i]||at(i)),i==="#window")?window:i==="#document"?document:i==="#screen"?screen:i==="#canvas"?n.canvas:typeof i=="string"?document.getElementById(i):i}catch(e){return null}}function eo(i){return typeof i=="number"&&(i=at(i)),!i||i==="#canvas"?typeof O!="undefined"&&O.offscreenCanvases.canvas?O.offscreenCanvases.canvas:n.canvas:typeof O!="undefined"&&O.offscreenCanvases[i]?O.offscreenCanvases[i]:Sa(i)}function to(i,e){W(e);var t=e>>2,r=T[t+6],o={alpha:!!T[t+0],depth:!!T[t+1],stencil:!!T[t+2],antialias:!!T[t+3],premultipliedAlpha:!!T[t+4],preserveDrawingBuffer:!!T[t+5],powerPreference:fe[r],failIfMajorPerformanceCaveat:!!T[t+7],majorVersion:T[t+8],minorVersion:T[t+9],enableExtensionsByDefault:T[t+10],explicitSwapControl:T[t+11],proxyContextToMainThread:T[t+12],renderViaOffscreenBackBuffer:T[t+13]},a=eo(i);if(!a)return 0;if(a.offscreenCanvas&&(a=a.offscreenCanvas),o.explicitSwapControl){var s=a.transferControlToOffscreen||typeof OffscreenCanvas!="undefined"&&a instanceof OffscreenCanvas;if(s||o.renderViaOffscreenBackBuffer||(o.renderViaOffscreenBackBuffer=!0),a.transferControlToOffscreen){if(!a.controlTransferredOffscreen)O.offscreenCanvases[a.id]={canvas:a.transferControlToOffscreen(),canvasSharedPtr:it(12),id:a.id},a.controlTransferredOffscreen=!0;else if(!O.offscreenCanvases[a.id])return 0;a=O.offscreenCanvases[a.id]}}var A=O.createContext(a,o);return A}function Ma(i,e){return to(i,e)}function Fa(){return O.currentContext?O.currentContext.handle:0}function Do(){return Fa()}n._emscripten_webgl_get_current_context=Do;function ro(i){var e=O.makeContextCurrent(i);return e?0:-5}n._emscripten_webgl_make_context_current=ro;function bo(i){O.currentContext==i&&(O.currentContext=0),O.deleteContext(i)}function ka(i,e){if(!e)return-5;if(i=O.contexts[i],!i)return-3;var t=i.GLctx;if(!t)return-3;t=t.getContextAttributes(),T[e>>2]=t.alpha,T[e+4>>2]=t.depth,T[e+8>>2]=t.stencil,T[e+12>>2]=t.antialias,T[e+16>>2]=t.premultipliedAlpha,T[e+20>>2]=t.preserveDrawingBuffer;var r=t.powerPreference&&fe.indexOf(t.powerPreference);return T[e+24>>2]=r,T[e+28>>2]=t.failIfMajorPerformanceCaveat,T[e+32>>2]=i.version,T[e+36>>2]=0,T[e+40>>2]=i.attributes.enableExtensionsByDefault,0}function Na(i){W(i);for(var e=i>>2,t=0;t<14;++t)T[e+t]=0;T[e+0]=T[e+1]=T[e+3]=T[e+4]=T[e+8]=T[e+10]=1}var no={};function io(){return ht||"./this.program"}function Fn(){if(!Fn.strings){var i=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:i,_:io()};for(var t in no)no[t]===void 0?delete e[t]:e[t]=no[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Fn.strings=r}return Fn.strings}function kn(i,e){var t=0;return Fn().forEach(function(r,o){var a=e+t;T[i+o*4>>2]=a,yn(r,a),t+=r.length+1}),0}function Ua(i,e){var t=Fn();T[i>>2]=t.length;var r=0;return t.forEach(function(o){r+=o.length+1}),T[e>>2]=r,0}function xa(i){try{var e=l.getStreamFromFD(i);return f.close(e),0}catch(t){return(typeof f=="undefined"||!(t instanceof f.ErrnoError))&&E(t),t.errno}}function ja(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doReadv(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function La(i,e,t,r,o){try{var a=l.getStreamFromFD(i),s=4294967296,A=t*s+(e>>>0),c=9007199254740992;return A<=-c||A>=c?-61:(f.llseek(a,A,r),ye=[a.position>>>0,(We=a.position,+Math.abs(We)>=1?We>0?(Math.min(+Math.floor(We/4294967296),4294967295)|0)>>>0:~~+Math.ceil((We-+(~~We>>>0))/4294967296)>>>0:0)],T[o>>2]=ye[0],T[o+4>>2]=ye[1],a.getdents&&A===0&&r===0&&(a.getdents=null),0)}catch(u){return(typeof f=="undefined"||!(u instanceof f.ErrnoError))&&E(u),u.errno}}function Ha(i,e,t,r){try{var o=l.getStreamFromFD(i),a=l.doWritev(o,e,t);return T[r>>2]=a,0}catch(s){return(typeof f=="undefined"||!(s instanceof f.ErrnoError))&&E(s),s.errno}}function Ga(){return Cr()}function ci(i,e){ci.randomDevice||(ci.randomDevice=Ie());for(var t=0;t<e;t++)xe[i+t>>0]=ci.randomDevice();return 0}function ui(i){M.activeTexture(i)}function Ya(i,e){M.attachShader(O.programs[i],O.shaders[e])}function Xa(i,e,t){M.bindAttribLocation(O.programs[i],e,at(t))}function Wa(i,e){i==34962?M.currentArrayBufferBinding=e:i==34963&&(M.currentElementArrayBufferBinding=e),i==35051?M.currentPixelPackBufferBinding=e:i==35052&&(M.currentPixelUnpackBufferBinding=e),M.bindBuffer(i,O.buffers[e])}function Va(i,e,t){M.bindBufferBase(i,e,O.buffers[t])}function za(i,e){M.bindFramebuffer(i,e?O.framebuffers[e]:O.currentContext.defaultFbo)}function $a(i,e){M.bindTexture(i,O.textures[e])}function Ka(i){M.bindVertexArray(O.vaos[i]);var e=M.getParameter(34965);M.currentElementArrayBufferBinding=e?e.name|0:0}function Ja(i,e,t,r){O.currentContext.version>=2?t?M.bufferData(i,Se,r,t,e):M.bufferData(i,e,r):M.bufferData(i,t?Se.subarray(t,t+e):e,r)}function Za(i,e){return W(e===(e|0)),(i>>>0)+e*4294967296}function qa(i,e,t,r){return M.clientWaitSync(O.syncs[i],e,Za(t,r))}function es(i){M.compileShader(O.shaders[i])}function ts(){var i=O.getNewId(O.programs),e=M.createProgram();return e.name=i,e.maxUniformLength=e.maxAttributeLength=e.maxUniformBlockNameLength=0,e.uniformIdCounter=1,O.programs[i]=e,i}function rs(i){var e=O.getNewId(O.shaders);return O.shaders[e]=M.createShader(i),e}function ns(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.buffers[r];o&&(M.deleteBuffer(o),o.name=0,O.buffers[r]=null,r==M.currentArrayBufferBinding&&(M.currentArrayBufferBinding=0),r==M.currentElementArrayBufferBinding&&(M.currentElementArrayBufferBinding=0),r==M.currentPixelPackBufferBinding&&(M.currentPixelPackBufferBinding=0),r==M.currentPixelUnpackBufferBinding&&(M.currentPixelUnpackBufferBinding=0))}}function is(i,e){for(var t=0;t<i;++t){var r=T[e+t*4>>2],o=O.framebuffers[r];o&&(M.deleteFramebuffer(o),o.name=0,O.framebuffers[r]=null)}}function os(i){if(i){var e=O.programs[i];if(!e){O.recordError(1281);return}M.deleteProgram(e),e.name=0,O.programs[i]=null}}function as(i){if(i){var e=O.shaders[i];if(!e){O.recordError(1281);return}M.deleteShader(e),O.shaders[i]=null}}function ss(i){if(i){var e=O.syncs[i];if(!e){O.recordError(1281);return}M.deleteSync(e),e.name=0,O.syncs[i]=null}}function As(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2],o=O.textures[r];o&&(M.deleteTexture(o),o.name=0,O.textures[r]=null)}}function cs(i,e){for(var t=0;t<i;t++){var r=T[e+t*4>>2];M.deleteVertexArray(O.vaos[r]),O.vaos[r]=null}}function us(i){M.disable(i)}function ls(i){var e=O.currentContext.clientBuffers[i];e.enabled=!1,M.disableVertexAttribArray(i)}function ds(i,e,t){O.preDrawHandleClientVertexAttribBindings(e+t),M.drawArrays(i,e,t),O.postDrawHandleClientVertexAttribBindings()}var Oo=[];function Bo(i,e){for(var t=Oo[i],r=0;r<i;r++)t[r]=T[e+r*4>>2];M.drawBuffers(t)}function fs(i){var e=O.currentContext.clientBuffers[i];e.enabled=!0,M.enableVertexAttribArray(i)}function gs(i,e){var t=M.fenceSync(i,e);if(t){var r=O.getNewId(O.syncs);return t.name=r,O.syncs[r]=t,r}else return 0}function Es(){M.finish()}function ps(){M.flush()}function _s(i,e,t,r,o){M.framebufferTexture2D(i,e,t,O.textures[r],o)}function hs(i,e,t,r,o){M.framebufferTextureLayer(i,e,O.textures[t],r,o)}function li(i,e,t,r){for(var o=0;o<i;o++){var a=M[t](),s=a&&O.getNewId(r);a?(a.name=s,r[s]=a):O.recordError(1282),T[e+o*4>>2]=s}}function di(i,e){li(i,e,"createBuffer",O.buffers)}function Is(i,e){li(i,e,"createFramebuffer",O.framebuffers)}function ms(i,e){li(i,e,"createTexture",O.textures)}function Cs(i,e){li(i,e,"createVertexArray",O.vaos)}function ys(i,e){return M.getAttribLocation(O.programs[i],at(e))}function ws(){var i=M.getError()||O.lastError;return O.lastError=0,i}function Ds(i){return Oe[i>>2]+T[i+4>>2]*4294967296}function bs(i){return Oe[i>>2]+Oe[i+4>>2]*4294967296}function Os(i,e){Oe[i>>2]=e,Oe[i+4>>2]=(e-Oe[i>>2])/4294967296;var t=e>=0?bs(i):Ds(i);t!=e&&Re("writeI53ToI64() out of range: serialized JS Number "+e+" to Wasm heap as bytes lo=0x"+Oe[i>>2].toString(16)+", hi=0x"+Oe[i+4>>2].toString(16)+", which deserializes back to "+t+" instead!")}function Bs(i,e,t){if(!e){O.recordError(1281);return}var r=void 0;switch(i){case 36346:r=1;break;case 36344:t!=0&&t!=1&&O.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var o=M.getParameter(34467);r=o?o.length:0;break;case 33309:if(O.currentContext.version<2){O.recordError(1282);return}var a=M.getSupportedExtensions()||[];r=2*a.length;break;case 33307:case 33308:if(O.currentContext.version<2){O.recordError(1280);return}r=i==33307?3:0;break}if(r===void 0){var s=M.getParameter(i);switch(typeof s){case"number":r=s;break;case"boolean":r=s?1:0;break;case"string":O.recordError(1280);return;case"object":if(s===null)switch(i){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{r=0;break}default:{O.recordError(1280);return}}else if(s instanceof Float32Array||s instanceof Uint32Array||s instanceof Int32Array||s instanceof Array){for(var A=0;A<s.length;++A)switch(t){case 0:T[e+A*4>>2]=s[A];break;case 2:b[e+A*4>>2]=s[A];break;case 4:xe[e+A>>0]=s[A]?1:0;break}return}else try{r=s.name|0}catch(c){O.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Unknown object returned from WebGL getParameter("+i+")! (error: "+c+")");return}break;default:O.recordError(1280),ge("GL_INVALID_ENUM in glGet"+t+"v: Native code calling glGet"+t+"v("+i+") and it returns "+s+" of type "+typeof s+"!");return}}switch(t){case 1:Os(e,r);break;case 0:T[e>>2]=r;break;case 2:b[e>>2]=r;break;case 4:xe[e>>0]=r?1:0;break}}function Ts(i,e){Bs(i,e,0)}function fi(i){var e=Ze(i)+1,t=it(e);return Je(i,t,e),t}function gi(i){var e=O.stringCache[i];if(!e){switch(i){case 7939:var t=M.getSupportedExtensions()||[];t=t.concat(t.map(function(c){return"GL_"+c})),e=fi(t.join(" "));break;case 7936:case 7937:case 37445:case 37446:var r=M.getParameter(i);r||O.recordError(1280),e=r&&fi(r);break;case 7938:var o=M.getParameter(7938);O.currentContext.version>=2?o="OpenGL ES 3.0 ("+o+")":o="OpenGL ES 2.0 ("+o+")",e=fi(o);break;case 35724:var a=M.getParameter(35724),s=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/,A=a.match(s);A!==null&&(A[1].length==3&&(A[1]=A[1]+"0"),a="OpenGL ES GLSL ES "+A[1]+" ("+a+")"),e=fi(a);break;default:O.recordError(1280)}O.stringCache[i]=e}return e}function vs(i,e){return M.getUniformBlockIndex(O.programs[i],at(e))}function Qs(i){return parseInt(i)}function To(i){return i.slice(-1)=="]"&&i.lastIndexOf("[")}function vo(i){var e=i.uniformLocsById,t=i.uniformSizeAndIdsByName,r,o;if(!e)for(i.uniformLocsById=e={},i.uniformArrayNamesById={},r=0;r<M.getProgramParameter(i,35718);++r){var a=M.getActiveUniform(i,r),s=a.name,A=a.size,c=To(s),u=c>0?s.slice(0,c):s,d=i.uniformIdCounter;for(i.uniformIdCounter+=A,t[u]=[A,d],o=0;o<A;++o)e[d]=o,i.uniformArrayNamesById[d++]=u}}function Ps(i,e){if(e=at(e),i=O.programs[i]){vo(i);var t=i.uniformLocsById,r=0,o=e,a=To(e);a>0&&(r=Qs(e.slice(a+1))>>>0,o=e.slice(0,a));var s=i.uniformSizeAndIdsByName[o];if(s&&r<s[0]&&(r+=s[1],t[r]=t[r]||M.getUniformLocation(i,e)))return r}else O.recordError(1281);return-1}function Rs(i){i=O.programs[i],M.linkProgram(i),i.uniformLocsById=0,i.uniformSizeAndIdsByName={}}function Ss(i,e){i==3317&&(O.unpackAlignment=e),M.pixelStorei(i,e)}function Ms(i,e,t,r){function o(A,c){return A+c-1&-c}var a=i*t,s=o(a,r);return e*s}function Fs(i){var e={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return e[i-6402]||1}function Nn(i){return i-=5120,i==0?xe:i==1?Se:i==2?be:i==4?T:i==6?b:i==5||i==28922||i==28520||i==30779||i==30782?Oe:ve}function pr(i){return 31-Math.clz32(i.BYTES_PER_ELEMENT)}function Jr(i,e,t,r,o,a){var s=Nn(i),A=pr(s),c=1<<A,u=Fs(e)*c,d=Ms(t,r,u,O.unpackAlignment);return s.subarray(o>>A,o+d>>A)}function oo(i,e,t,r,o,a,s){if(O.currentContext.version>=2){if(M.currentPixelPackBufferBinding)M.readPixels(i,e,t,r,o,a,s);else{var A=Nn(a);M.readPixels(i,e,t,r,o,a,A,s>>pr(A))}return}var c=Jr(a,o,t,r,s,o);if(!c){O.recordError(1280);return}M.readPixels(i,e,t,r,o,a,c)}function ks(i,e,t,r){var o=O.getSource(i,e,t,r);M.shaderSource(O.shaders[i],o)}function Ns(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=Nn(A);M.texImage2D(i,e,t,r,o,a,s,A,u,c>>pr(u))}else M.texImage2D(i,e,t,r,o,a,s,A,null);return}M.texImage2D(i,e,t,r,o,a,s,A,c?Jr(A,s,r,o,c,t):null)}function Us(i,e,t){var r=b[t>>2];M.texParameterf(i,e,r)}function xs(i,e,t){M.texParameteri(i,e,t)}function js(i,e,t,r,o){M.texStorage2D(i,e,t,r,o)}function Ls(i,e,t,r,o,a){M.texStorage3D(i,e,t,r,o,a)}function Hs(i,e,t,r,o,a,s,A,c){if(O.currentContext.version>=2){if(M.currentPixelUnpackBufferBinding)M.texSubImage2D(i,e,t,r,o,a,s,A,c);else if(c){var u=Nn(A);M.texSubImage2D(i,e,t,r,o,a,s,A,u,c>>pr(u))}else M.texSubImage2D(i,e,t,r,o,a,s,A,null);return}var d=null;c&&(d=Jr(A,s,o,a,c,0)),M.texSubImage2D(i,e,t,r,o,a,s,A,d)}function Gs(i,e,t,r,o,a,s,A,c,u,d){if(M.currentPixelUnpackBufferBinding)M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,d);else if(d){var h=Nn(u);M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,h,d>>pr(h))}else M.texSubImage3D(i,e,t,r,o,a,s,A,c,u,null)}function Zt(i){var e=M.currentProgram;if(e){var t=e.uniformLocsById[i];return typeof t=="number"&&(e.uniformLocsById[i]=t=M.getUniformLocation(e,e.uniformArrayNamesById[i]+(t>0?"["+t+"]":""))),t}else O.recordError(1282)}function qt(i,e){M.uniform1f(Zt(i),e)}function Ys(i,e){M.uniform1i(Zt(i),e)}var Ei=[];function pi(i,e,t){if(O.currentContext.version>=2){M.uniform2fv(Zt(i),b,t>>2,e*2);return}if(e<=144)for(var r=Ei[2*e-1],o=0;o<2*e;o+=2)r[o]=b[t+4*o>>2],r[o+1]=b[t+(4*o+4)>>2];else var r=b.subarray(t>>2,t+e*8>>2);M.uniform2fv(Zt(i),r)}function Xs(i,e,t){if(O.currentContext.version>=2){M.uniform4fv(Zt(i),b,t>>2,e*4);return}if(e<=72){var r=Ei[4*e-1],o=b;t>>=2;for(var a=0;a<4*e;a+=4){var s=t+a;r[a]=o[s],r[a+1]=o[s+1],r[a+2]=o[s+2],r[a+3]=o[s+3]}}else var r=b.subarray(t>>2,t+e*16>>2);M.uniform4fv(Zt(i),r)}var Qo=[];function Po(i,e,t){if(O.currentContext.version>=2){M.uniform4iv(Zt(i),T,t>>2,e*4);return}if(e<=72)for(var r=Qo[4*e-1],o=0;o<4*e;o+=4)r[o]=T[t+4*o>>2],r[o+1]=T[t+(4*o+4)>>2],r[o+2]=T[t+(4*o+8)>>2],r[o+3]=T[t+(4*o+12)>>2];else var r=T.subarray(t>>2,t+e*16>>2);M.uniform4iv(Zt(i),r)}function Ws(i,e,t){i=O.programs[i],M.uniformBlockBinding(i,e,t)}function Vs(i,e,t,r){if(O.currentContext.version>=2){M.uniformMatrix4fv(Zt(i),!!t,b,r>>2,e*16);return}if(e<=18){var o=Ei[16*e-1],a=b;r>>=2;for(var s=0;s<16*e;s+=16){var A=r+s;o[s]=a[A],o[s+1]=a[A+1],o[s+2]=a[A+2],o[s+3]=a[A+3],o[s+4]=a[A+4],o[s+5]=a[A+5],o[s+6]=a[A+6],o[s+7]=a[A+7],o[s+8]=a[A+8],o[s+9]=a[A+9],o[s+10]=a[A+10],o[s+11]=a[A+11],o[s+12]=a[A+12],o[s+13]=a[A+13],o[s+14]=a[A+14],o[s+15]=a[A+15]}}else var o=b.subarray(r>>2,r+e*64>>2);M.uniformMatrix4fv(Zt(i),!!t,o)}function zs(i){i=O.programs[i],M.useProgram(i),M.currentProgram=i}function $s(i,e,t,r,o,a){var s=O.currentContext.clientBuffers[i];if(!M.currentArrayBufferBinding){s.size=e,s.type=t,s.normalized=r,s.stride=o,s.ptr=a,s.clientside=!0,s.vertexAttribPointerAdaptor=function(A,c,u,d,h,I){this.vertexAttribPointer(A,c,u,d,h,I)};return}s.clientside=!1,M.vertexAttribPointer(i,e,t,!!r,o,a)}function Ks(i,e,t,r){M.viewport(i,e,t,r)}function _i(i,e){var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getUTCSeconds(),T[e+4>>2]=t.getUTCMinutes(),T[e+8>>2]=t.getUTCHours(),T[e+12>>2]=t.getUTCDate(),T[e+16>>2]=t.getUTCMonth(),T[e+20>>2]=t.getUTCFullYear()-1900,T[e+24>>2]=t.getUTCDay(),T[e+36>>2]=0,T[e+32>>2]=0;var r=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-r)/(1e3*60*60*24)|0;return T[e+28>>2]=o,_i.GMTString||(_i.GMTString=Cn("GMT")),T[e+40>>2]=_i.GMTString,e}function hi(i){return i}function Ii(){if(Ii.called)return;Ii.called=!0;var i=new Date().getFullYear(),e=new Date(i,0,1),t=new Date(i,6,1),r=e.getTimezoneOffset(),o=t.getTimezoneOffset(),a=Math.max(r,o);T[nA()>>2]=a*60,T[jn()>>2]=+(r!=o);function s(h){var I=h.toTimeString().match(/\(([A-Za-z ]+)\)$/);return I?I[1]:"GMT"}var A=s(e),c=s(t),u=Cn(A),d=Cn(c);o<r?(T[rn()>>2]=u,T[rn()+4>>2]=d):(T[rn()>>2]=d,T[rn()+4>>2]=u)}function mi(i,e){Ii();var t=new Date(T[i>>2]*1e3);T[e>>2]=t.getSeconds(),T[e+4>>2]=t.getMinutes(),T[e+8>>2]=t.getHours(),T[e+12>>2]=t.getDate(),T[e+16>>2]=t.getMonth(),T[e+20>>2]=t.getFullYear()-1900,T[e+24>>2]=t.getDay();var r=new Date(t.getFullYear(),0,1),o=(t.getTime()-r.getTime())/(1e3*60*60*24)|0;T[e+28>>2]=o,T[e+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=r.getTimezoneOffset(),A=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;T[e+32>>2]=A;var c=T[rn()+(A?4:0)>>2];return T[e+40>>2]=c,e}function Js(i){Ii();var e=new Date(T[i+20>>2]+1900,T[i+16>>2],T[i+12>>2],T[i+8>>2],T[i+4>>2],T[i>>2],0),t=T[i+32>>2],r=e.getTimezoneOffset(),o=new Date(e.getFullYear(),0,1),a=new Date(e.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),A=Math.min(s,a);if(t<0)T[i+32>>2]=+(a!=s&&A==r);else if(t>0!=(A==r)){var c=Math.max(s,a),u=t>0?A:c;e.setTime(e.getTime()+(u-r)*6e4)}T[i+24>>2]=e.getDay();var d=(e.getTime()-o.getTime())/(1e3*60*60*24)|0;return T[i+28>>2]=d,T[i>>2]=e.getSeconds(),T[i+4>>2]=e.getMinutes(),T[i+8>>2]=e.getHours(),T[i+12>>2]=e.getDate(),T[i+16>>2]=e.getMonth(),e.getTime()/1e3|0}function Zs(i){No(i)}function qs(i){mt(i)}function Ci(i){return i%4===0&&(i%100!==0||i%400===0)}function pn(i,e){for(var t=0,r=0;r<=e;t+=i[r++]);return t}var _n=[31,29,31,30,31,30,31,31,30,31,30,31],Zr=[31,28,31,30,31,30,31,31,30,31,30,31];function qr(i,e){for(var t=new Date(i.getTime());e>0;){var r=Ci(t.getFullYear()),o=t.getMonth(),a=(r?_n:Zr)[o];if(e>a-t.getDate())e-=a-t.getDate()+1,t.setDate(1),o<11?t.setMonth(o+1):(t.setMonth(0),t.setFullYear(t.getFullYear()+1));else return t.setDate(t.getDate()+e),t}return t}function Un(i,e,t,r){var o=T[r+40>>2],a={tm_sec:T[r>>2],tm_min:T[r+4>>2],tm_hour:T[r+8>>2],tm_mday:T[r+12>>2],tm_mon:T[r+16>>2],tm_year:T[r+20>>2],tm_wday:T[r+24>>2],tm_yday:T[r+28>>2],tm_isdst:T[r+32>>2],tm_gmtoff:T[r+36>>2],tm_zone:o?at(o):""},s=at(t),A={"%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 c in A)s=s.replace(new RegExp(c,"g"),A[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function h(R,D,k){for(var $=typeof R=="number"?R.toString():R||"";$.length<D;)$=k[0]+$;return $}function I(R,D){return h(R,D,"0")}function m(R,D){function k(Y){return Y<0?-1:Y>0?1:0}var $;return($=k(R.getFullYear()-D.getFullYear()))===0&&($=k(R.getMonth()-D.getMonth()))===0&&($=k(R.getDate()-D.getDate())),$}function y(R){switch(R.getDay()){case 0:return new Date(R.getFullYear()-1,11,29);case 1:return R;case 2:return new Date(R.getFullYear(),0,3);case 3:return new Date(R.getFullYear(),0,2);case 4:return new Date(R.getFullYear(),0,1);case 5:return new Date(R.getFullYear()-1,11,31);case 6:return new Date(R.getFullYear()-1,11,30)}}function v(R){var D=qr(new Date(R.tm_year+1900,0,1),R.tm_yday),k=new Date(D.getFullYear(),0,4),$=new Date(D.getFullYear()+1,0,4),Y=y(k),Ce=y($);return m(Y,D)<=0?m(Ce,D)<=0?D.getFullYear()+1:D.getFullYear():D.getFullYear()-1}var U={"%a":function(R){return u[R.tm_wday].substring(0,3)},"%A":function(R){return u[R.tm_wday]},"%b":function(R){return d[R.tm_mon].substring(0,3)},"%B":function(R){return d[R.tm_mon]},"%C":function(R){var D=R.tm_year+1900;return I(D/100|0,2)},"%d":function(R){return I(R.tm_mday,2)},"%e":function(R){return h(R.tm_mday,2," ")},"%g":function(R){return v(R).toString().substring(2)},"%G":function(R){return v(R)},"%H":function(R){return I(R.tm_hour,2)},"%I":function(R){var D=R.tm_hour;return D==0?D=12:D>12&&(D-=12),I(D,2)},"%j":function(R){return I(R.tm_mday+pn(Ci(R.tm_year+1900)?_n:Zr,R.tm_mon-1),3)},"%m":function(R){return I(R.tm_mon+1,2)},"%M":function(R){return I(R.tm_min,2)},"%n":function(){return`
59
- `},"%p":function(R){return R.tm_hour>=0&&R.tm_hour<12?"AM":"PM"},"%S":function(R){return I(R.tm_sec,2)},"%t":function(){return" "},"%u":function(R){return R.tm_wday||7},"%U":function(R){var D=new Date(R.tm_year+1900,0,1),k=D.getDay()===0?D:qr(D,7-D.getDay()),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,Ce=31-k.getDate(),Ne=Ce+Y+$.getDate();return I(Math.ceil(Ne/7),2)}return m(k,D)===0?"01":"00"},"%V":function(R){var D=new Date(R.tm_year+1900,0,4),k=new Date(R.tm_year+1901,0,4),$=y(D),Y=y(k),Ce=qr(new Date(R.tm_year+1900,0,1),R.tm_yday);if(m(Ce,$)<0)return"53";if(m(Y,Ce)<=0)return"01";var Ne;return $.getFullYear()<R.tm_year+1900?Ne=R.tm_yday+32-$.getDate():Ne=R.tm_yday+1-$.getDate(),I(Math.ceil(Ne/7),2)},"%w":function(R){return R.tm_wday},"%W":function(R){var D=new Date(R.tm_year,0,1),k=D.getDay()===1?D:qr(D,D.getDay()===0?1:7-D.getDay()+1),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,Ce=31-k.getDate(),Ne=Ce+Y+$.getDate();return I(Math.ceil(Ne/7),2)}return m(k,D)===0?"01":"00"},"%y":function(R){return(R.tm_year+1900).toString().substring(2)},"%Y":function(R){return R.tm_year+1900},"%z":function(R){var D=R.tm_gmtoff,k=D>=0;return D=Math.abs(D)/60,D=D/60*100+D%60,(k?"+":"-")+("0000"+D).slice(-4)},"%Z":function(R){return R.tm_zone},"%%":function(){return"%"}};for(var c in U)s.includes(c)&&(s=s.replace(new RegExp(c,"g"),U[c](a)));var G=ao(s,!1);return G.length>e?0:(Fr(G,i),G.length-1)}function Ro(i,e,t,r){return Un(i,e,t,r)}n.requestFullscreen=function(e,t){P.requestFullscreen(e,t)},n.requestFullScreen=function(){P.requestFullScreen()},n.requestAnimationFrame=function(e){P.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){P.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){P.mainLoop.pause()},n.resumeMainLoop=function(){P.mainLoop.resume()},n.getUserMedia=function(){P.getUserMedia()},n.createContext=function(e,t,r,o){return P.createContext(e,t,r,o)};var So=function(i,e,t,r){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=f.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r},xn=365,en=146;Object.defineProperties(So.prototype,{read:{get:function(){return(this.mode&xn)===xn},set:function(i){i?this.mode|=xn:this.mode&=~xn}},write:{get:function(){return(this.mode&en)===en},set:function(i){i?this.mode|=en:this.mode&=~en}},isFolder:{get:function(){return f.isDir(this.mode)}},isDevice:{get:function(){return f.isChrdev(this.mode)}}}),f.FSNode=So,f.staticInit(),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,$i(),Gr=n.PureVirtualError=Ar(Error,"PureVirtualError"),qn(),Ji(),nt=n.BindingError=Ar(Error,"BindingError"),B=n.InternalError=Ar(Error,"InternalError"),dr(),Wo(),ut=n.UnboundTypeError=Ar(Error,"UnboundTypeError");for(var M,S=0;S<32;++S)Oo.push(new Array(S));for(var Dt=new Float32Array(288),S=0;S<288;++S)Ei[S]=Dt.subarray(0,S+1);for(var eA=new Int32Array(288),S=0;S<288;++S)Qo[S]=eA.subarray(0,S+1);var Ac=!0;function ao(i,e,t){var r=t>0?t:Ze(i)+1,o=new Array(r),a=Rt(i,o,0,o.length);return e&&(o.length=a),o}var yi=typeof atob=="function"?atob:function(i){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="",r,o,a,s,A,c,u,d=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=e.indexOf(i.charAt(d++)),A=e.indexOf(i.charAt(d++)),c=e.indexOf(i.charAt(d++)),u=e.indexOf(i.charAt(d++)),r=s<<2|A>>4,o=(A&15)<<4|c>>2,a=(c&3)<<6|u,t=t+String.fromCharCode(r),c!==64&&(t=t+String.fromCharCode(o)),u!==64&&(t=t+String.fromCharCode(a));while(d<i.length);return t};function cc(i){if(typeof It=="boolean"&&It){var e=Buffer.from(i,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=yi(i),r=new Uint8Array(t.length),o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(a){throw new Error("Converting base64 string to bytes failed.")}}var tA={HaveOffsetConverter:jr,__cxa_allocate_exception:Fi,__cxa_atexit:vn,__cxa_begin_catch:Qn,__cxa_end_catch:ki,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:Ni,__cxa_free_exception:Ft,__cxa_rethrow:$n,__cxa_thread_atexit:Ui,__cxa_throw:xi,__resumeException:zn,__sys_fcntl64:Me,__sys_ioctl:Hi,__sys_mmap2:Yi,__sys_open:Xi,__sys_stat64:Wi,_embind_create_inheriting_constructor:Wr,_embind_finalize_value_object:X,_embind_register_bigint:L,_embind_register_bool:Z,_embind_register_class:zr,_embind_register_class_class_function:oi,_embind_register_class_constructor:$o,_embind_register_class_function:Ko,_embind_register_class_property:Io,_embind_register_emval:Co,_embind_register_float:Jo,_embind_register_function:Zo,_embind_register_integer:ea,_embind_register_memory_view:ta,_embind_register_std_string:ra,_embind_register_std_wstring:na,_embind_register_value_object:ia,_embind_register_value_object_field:oa,_embind_register_void:aa,_emval_call_void_method:qi,_emval_decref:mo,_emval_get_method_caller:la,_emval_incref:da,_emval_take_value:fa,abort:ga,clock_gettime:pa,dlopen:_a,dlsym:ha,emscripten_asm_const_int:Ia,emscripten_get_heap_max:ma,emscripten_memcpy_big:Ca,emscripten_pc_get_function:ya,emscripten_resize_heap:Da,emscripten_stack_snapshot:yo,emscripten_stack_unwind_buffer:ba,emscripten_thread_sleep:Oa,emscripten_webgl_create_context:Ma,emscripten_webgl_destroy_context:bo,emscripten_webgl_get_context_attributes:ka,emscripten_webgl_get_current_context:Do,emscripten_webgl_init_context_attributes:Na,emscripten_webgl_make_context_current:ro,environ_get:kn,environ_sizes_get:Ua,exit:Si,fd_close:xa,fd_read:ja,fd_seek:La,fd_write:Ha,getTempRet0:Ga,getentropy:ci,glActiveTexture:ui,glAttachShader:Ya,glBindAttribLocation:Xa,glBindBuffer:Wa,glBindBufferBase:Va,glBindFramebuffer:za,glBindTexture:$a,glBindVertexArray:Ka,glBufferData:Ja,glClientWaitSync:qa,glCompileShader:es,glCreateProgram:ts,glCreateShader:rs,glDeleteBuffers:ns,glDeleteFramebuffers:is,glDeleteProgram:os,glDeleteShader:as,glDeleteSync:ss,glDeleteTextures:As,glDeleteVertexArrays:cs,glDisable:us,glDisableVertexAttribArray:ls,glDrawArrays:ds,glDrawBuffers:Bo,glEnableVertexAttribArray:fs,glFenceSync:gs,glFinish:Es,glFlush:ps,glFramebufferTexture2D:_s,glFramebufferTextureLayer:hs,glGenBuffers:di,glGenFramebuffers:Is,glGenTextures:ms,glGenVertexArrays:Cs,glGetAttribLocation:ys,glGetError:ws,glGetIntegerv:Ts,glGetString:gi,glGetUniformBlockIndex:vs,glGetUniformLocation:Ps,glLinkProgram:Rs,glPixelStorei:Ss,glReadPixels:oo,glShaderSource:ks,glTexImage2D:Ns,glTexParameterfv:Us,glTexParameteri:xs,glTexStorage2D:js,glTexStorage3D:Ls,glTexSubImage2D:Hs,glTexSubImage3D:Gs,glUniform1f:qt,glUniform1i:Ys,glUniform2fv:pi,glUniform4fv:Xs,glUniform4iv:Po,glUniformBlockBinding:Ws,glUniformMatrix4fv:Vs,glUseProgram:zs,glVertexAttribPointer:$s,glViewport:Ks,gmtime_r:_i,invoke_diii:bA,invoke_i:QA,invoke_ii:dA,invoke_iii:aA,invoke_iiii:OA,invoke_iiiii:IA,invoke_iiiiii:yA,invoke_iiiiiii:AA,invoke_iiiiiiiddi:JA,invoke_iiiiiiii:DA,invoke_iiiiiiiii:MA,invoke_v:cA,invoke_vdiii:tc,invoke_vi:oA,invoke_vididdii:WA,invoke_vidii:zA,invoke_vii:lA,invoke_viid:Ec,invoke_viidi:ec,invoke_viididii:SA,invoke_viii:fA,invoke_viiid:VA,invoke_viiidd:CA,invoke_viiiddi:vA,invoke_viiidi:PA,invoke_viiii:hA,invoke_viiiid:ZA,invoke_viiiidi:RA,invoke_viiiidid:qA,invoke_viiiidiidiiiiiii:XA,invoke_viiiifiifiiiiiii:YA,invoke_viiiii:sA,invoke_viiiiid:NA,invoke_viiiiif:LA,invoke_viiiiii:gA,invoke_viiiiiid:UA,invoke_viiiiiif:HA,invoke_viiiiiii:EA,invoke_viiiiiiiddi:KA,invoke_viiiiiiidiiii:jA,invoke_viiiiiiifiiii:GA,invoke_viiiiiiii:pA,invoke_viiiiiiiidd:kA,invoke_viiiiiiiidf:FA,invoke_viiiiiiiii:_A,invoke_viiiiiiiiidd:BA,invoke_viiiiiiiiiddi:TA,invoke_viiiiiiiiii:uA,invoke_viiiiiiiiiiddi:$A,invoke_viiiiiiiiiii:mA,invoke_viiiiiiiiiiii:xA,invoke_viiiiiiiiiiiii:wA,llvm_eh_typeid_for:hi,localtime_r:mi,mktime:Js,proc_exit:Zs,setTempRet0:qs,strftime:Un,strftime_l:Ro},rA=On(),Jc=n.___wasm_call_ctors=le("__wasm_call_ctors"),_r=n._free=le("free"),it=n._malloc=le("malloc"),tn=n.___errno_location=le("__errno_location"),uc=n._fflush=le("fflush"),lc=n.___getTypeName=le("__getTypeName"),dc=n.___embind_register_native_and_builtin_types=le("__embind_register_native_and_builtin_types"),Zc=n._emscripten_main_thread_process_queued_calls=le("emscripten_main_thread_process_queued_calls"),Mo=n._emscripten_stack_get_end=function(){return(Mo=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},rn=n.__get_tzname=le("_get_tzname"),jn=n.__get_daylight=le("_get_daylight"),nA=n.__get_timezone=le("_get_timezone"),ne=n.stackSave=le("stackSave"),j=n.stackRestore=le("stackRestore"),te=n.stackAlloc=le("stackAlloc"),so=n._emscripten_stack_init=function(){return(so=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Fo=n._emscripten_stack_get_free=function(){return(Fo=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},fc=n._saveSetjmp=le("saveSetjmp"),oe=n._setThrew=le("setThrew"),re=n.___cxa_can_catch=le("__cxa_can_catch"),ko=n.___cxa_is_pointer_type=le("__cxa_is_pointer_type"),iA=n._memalign=le("memalign"),gc=n._emscripten_builtin_malloc=le("emscripten_builtin_malloc"),qc=n._emscripten_builtin_free=le("emscripten_builtin_free"),eu=n._emscripten_builtin_memalign=le("emscripten_builtin_memalign"),tu=n.dynCall_jii=le("dynCall_jii"),ru=n.dynCall_viji=le("dynCall_viji"),nu=n.dynCall_jjj=le("dynCall_jjj"),iu=n.dynCall_iiiijj=le("dynCall_iiiijj"),ou=n.dynCall_viijj=le("dynCall_viijj"),au=n.dynCall_viiijjjj=le("dynCall_viiijjjj"),su=n.dynCall_ji=le("dynCall_ji"),Au=n.dynCall_vij=le("dynCall_vij"),cu=n.dynCall_viijii=le("dynCall_viijii"),uu=n.dynCall_vj=le("dynCall_vj"),lu=n.dynCall_viij=le("dynCall_viij"),du=n.dynCall_viiiiij=le("dynCall_viiiiij"),fu=n.dynCall_iijjiiii=le("dynCall_iijjiiii"),gu=n.dynCall_jiji=le("dynCall_jiji"),Eu=n.dynCall_iiiiij=le("dynCall_iiiiij"),pu=n.dynCall_iiiiijj=le("dynCall_iiiiijj"),_u=n.dynCall_iiiiiijj=le("dynCall_iiiiiijj");function Ec(i,e,t,r){var o=ne();try{J.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function oA(i,e){var t=ne();try{J.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function aA(i,e,t){var r=ne();try{return J.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function sA(i,e,t,r,o,a){var s=ne();try{J.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function AA(i,e,t,r,o,a,s){var A=ne();try{return J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function cA(i){var e=ne();try{J.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function uA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function lA(i,e,t){var r=ne();try{J.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function dA(i,e){var t=ne();try{return J.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function fA(i,e,t,r){var o=ne();try{J.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function gA(i,e,t,r,o,a,s){var A=ne();try{J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function EA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function pA(i,e,t,r,o,a,s,A,c){var u=ne();try{J.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function _A(i,e,t,r,o,a,s,A,c,u){var d=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function hA(i,e,t,r,o){var a=ne();try{J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function IA(i,e,t,r,o){var a=ne();try{return J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function mA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function CA(i,e,t,r,o,a){var s=ne();try{J.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function yA(i,e,t,r,o,a){var s=ne();try{return J.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function wA(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function DA(i,e,t,r,o,a,s,A){var c=ne();try{return J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function bA(i,e,t,r){var o=ne();try{return J.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function OA(i,e,t,r){var o=ne();try{return J.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function BA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function TA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function vA(i,e,t,r,o,a,s){var A=ne();try{J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function QA(i){var e=ne();try{return J.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function PA(i,e,t,r,o,a){var s=ne();try{J.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function RA(i,e,t,r,o,a,s){var A=ne();try{J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function SA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function MA(i,e,t,r,o,a,s,A,c){var u=ne();try{return J.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function FA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function kA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function NA(i,e,t,r,o,a,s){var A=ne();try{J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function UA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function xA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function jA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function LA(i,e,t,r,o,a,s){var A=ne();try{J.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function HA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function GA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function YA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function XA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function WA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function VA(i,e,t,r,o){var a=ne();try{J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function zA(i,e,t,r,o){var a=ne();try{J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function $A(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function KA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{J.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function JA(i,e,t,r,o,a,s,A,c,u){var d=ne();try{return J.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function ZA(i,e,t,r,o,a){var s=ne();try{J.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function qA(i,e,t,r,o,a,s,A){var c=ne();try{J.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function ec(i,e,t,r,o){var a=ne();try{J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function tc(i,e,t,r,o){var a=ne();try{J.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){E("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){E("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){E("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){E("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){E("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){E("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){E("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){E("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){E("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){E("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){E("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){E("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){E("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){E("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){E("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){E("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){E("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){E("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){E("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){E("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=St,n.removeRunDependency=wr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){E("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){E("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){E("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){E("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){E("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){E("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){E("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){E("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){E("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){E("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){E("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){E("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){E("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){E("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){E("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){E("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){E("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){E("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){E("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){E("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){E("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){E("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){E("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){E("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){E("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){E("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){E("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){E("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){E("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){E("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){E("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){E("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){E("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){E("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){E("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){E("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){E("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){E("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){E("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){E("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){E("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){E("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){E("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){E("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){E("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){E("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){E("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){E("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){E("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){E("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){E("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){E("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){E("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){E("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){E("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){E("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){E("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){E("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){E("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){E("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){E("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){E("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){E("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){E("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){E("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){E("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){E("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){E("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){E("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){E("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){E("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){E("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){E("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){E("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){E("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){E("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){E("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){E("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){E("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){E("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){E("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){E("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){E("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){E("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){E("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){E("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){E("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){E("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){E("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){E("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){E("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){E("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){E("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){E("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){E("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){E("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){E("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){E("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){E("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){E("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){E("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){E("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){E("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){E("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){E("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){E("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){E("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){E("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){E("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){E("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){E("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){E("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){E("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){E("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){E("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){E("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){E("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){E("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){E("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){E("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){E("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){E("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){E("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){E("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){E("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){E("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){E("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){E("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){E("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){E("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){E("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){E("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){E("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){E("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){E("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){E("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){E("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){E("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){E("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){E("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){E("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){E("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){E("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){E("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){E("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){E("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){E("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){E("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){E("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){E("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=O,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){E("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){E("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){E("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){E("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){E("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){E("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){E("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){E("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){E("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){E("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){E("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){E("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){E("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){E("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){E("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){E("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){E("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){E("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){E("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){E("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){E("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){E("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){E("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){E("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){E("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){E("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){E("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){E("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){E("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){E("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){E("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){E("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){E("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){E("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){E("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){E("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){E("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){E("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){E("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){E("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){E("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){E("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){E("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){E("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){E("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){E("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){E("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){E("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){E("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){E("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){E("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){E("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){E("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){E("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){E("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){E("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){E("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){E("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){E("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){E("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){E("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){E("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){E("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){E("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){E("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){E("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){E("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){E("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){E("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){E("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){E("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){E("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){E("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){E("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){E("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){E("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){E("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){E("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){E("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){E("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){E("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){E("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){E("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){E("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){E("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){E("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){E("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){E("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){E("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){E("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){E("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){E("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){E("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){E("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){E("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){E("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){E("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){E("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){E("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){E("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){E("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){E("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){E("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){E("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){E("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){E("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){E("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){E("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){E("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){E("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){E("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){E("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){E("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){E("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){E("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){E("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){E("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){E("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){E("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){E("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){E("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){E("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){E("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){E("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){E("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){E("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){E("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){E("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){E("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){E("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Ur,n.checkStackCookie=V,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){E("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){E("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var wi;function hn(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}lt=function i(){wi||co(),wi||(lt=i)};function Ao(){so(),Ur()}function co(i){if(i=i||ot,Yt>0||(Ao(),Qi(),Yt>0))return;function e(){wi||(wi=!0,n.calledRun=!0,!jt&&(Ct(),Ee(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),W(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Pi()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),e()},1)):e(),V()}n.run=co;function uo(){var i=Ke,e=ge,t=!1;Ke=ge=function(o){t=!0};try{var r=n._fflush;r&&r(0),["stdout","stderr"].forEach(function(o){var a=f.analyzePath("/dev/"+o);if(a){var s=a.object,A=s.rdev,c=Pe.ttys[A];c&&c.output&&c.output.length&&(t=!0)}})}catch(o){}Ke=i,ge=e,t&&Re("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.")}function rc(i,e){if(Pt=i,uo(),Ot()){if(!e){var t="program exited (with status: "+i+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";N(t),ge(t)}}else Gt();No(i)}function No(i){Pt=i,Ot()||(n.onExit&&n.onExit(i),jt=!0),$e(i,new hn(i))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return co(),x.ready}}(),bc=Ou;var Bu=(()=>{var x;var K=typeof document!="undefined"?(x=document.currentScript)==null?void 0:x.src:void 0;return function(n={}){var Ee,N=Object.assign({},n),Ue,we,ot=new Promise((_,g)=>{Ue=_,we=g}),ht=!0,$e=!1,Ye=Object.assign({},N),Ve=[],It="./this.program",bi=(_,g)=>{throw g},Te="",Oi,Rr,er;(ht||$e)&&($e?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),K&&(Te=K),Te.startsWith("blob:")?Te="":Te=Te.substr(0,Te.replace(/[?#].*/,"").lastIndexOf("/")+1),Oi=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.send(null),g.responseText},$e&&(er=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Rr=(_,g,C)=>{var B=new XMLHttpRequest;B.open("GET",_,!0),B.responseType="arraybuffer",B.onload=()=>{if(B.status==200||B.status==0&&B.response){g(B.response);return}C()},B.onerror=C,B.send(null)});var nn=N.print||console.log.bind(console),In=N.printErr||console.error.bind(console);Object.assign(N,Ye),Ye=null,N.arguments&&(Ve=N.arguments),N.thisProgram&&(It=N.thisProgram),N.quit&&(bi=N.quit);var Ke;N.wasmBinary&&(Ke=N.wasmBinary);function ge(_){for(var g=atob(_),C=new Uint8Array(g.length),B=0;B<g.length;++B)C[B]=g.charCodeAt(B);return C}function Re(_){if(vi(_))return ge(_.slice(Yn.length))}var pe,tt=!1,Ir,Ut,Xe,mr,mt,Cr,he,Hn,xt;function jt(){var _=pe.buffer;N.HEAP8=Ut=new Int8Array(_),N.HEAP16=mr=new Int16Array(_),N.HEAPU8=Xe=new Uint8Array(_),N.HEAPU16=mt=new Uint16Array(_),N.HEAP32=Cr=new Int32Array(_),N.HEAPU32=he=new Uint32Array(_),N.HEAPF32=Hn=new Float32Array(_),N.HEAPF64=xt=new Float64Array(_)}var Pt=[],W=[],Sr=[],z=!1;function lo(){if(N.preRun)for(typeof N.preRun=="function"&&(N.preRun=[N.preRun]);N.preRun.length;)at(N.preRun.shift());ve(Pt)}function Bi(){z=!0,ve(W)}function Mr(){if(N.postRun)for(typeof N.postRun=="function"&&(N.postRun=[N.postRun]);N.postRun.length;)Je(N.postRun.shift());ve(Sr)}function at(_){Pt.unshift(_)}function Rt(_){W.unshift(_)}function Je(_){Sr.unshift(_)}var Ze=0,tr=null,bt=null;function Gn(_){var g;Ze++,(g=N.monitorRunDependencies)==null||g.call(N,Ze)}function Ti(_){var C;if(Ze--,(C=N.monitorRunDependencies)==null||C.call(N,Ze),Ze==0&&(tr!==null&&(clearInterval(tr),tr=null),bt)){var g=bt;bt=null,g()}}function mn(_){var C;(C=N.onAbort)==null||C.call(N,_),_="Aborted("+_+")",In(_),tt=!0,Ir=1,_+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(_);throw we(g),g}var Yn="data:application/octet-stream;base64,",vi=_=>_.startsWith(Yn);function Cn(){var _="data:application/octet-stream;base64,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BSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC+UDAQV/IwBBEGsiAyQAIAMgACgCACIEQQhrKAIAIgI2AgwgAyAAIAJqNgIEIAMgBEEEaygCADYCCCADKAIIIgQgAUEAEB0hAiADKAIEIQUCQCACBEAgAygCDCEAIwBBQGoiASQAIAFBQGskAEEAIAUgABshAgwBCyMAQUBqIgIkACAAIAVOBEAgAkIANwIcIAJCADcCJCACQgA3AiwgAkIANwIUIAJBADYCECACIAE2AgwgAiAENgIEIAJBADYCPCACQoGAgICAgICAATcCNCACIAA2AgggBCACQQRqIAUgBUEBQQAgBCgCACgCFBEJACAAQQAgAigCHBshBgsgAkFAayQAIAYiAg0AIwBBQGoiAiQAIAJBADYCECACQezIADYCDCACIAA2AgggAiABNgIEQQAhACACQRRqQQBBJxAjGiACQQA2AjwgAkEBOgA7IAQgAkEEaiAFQQFBACAEKAIAKAIYEQgAAkACQAJAIAIoAigOAgABAgsgAigCGEEAIAIoAiRBAUYbQQAgAigCIEEBRhtBACACKAIsQQFGGyEADAELIAIoAhxBAUcEQCACKAIsDQEgAigCIEEBRw0BIAIoAiRBAUcNAQsgAigCFCEACyACQUBrJAAgACECCyADQRBqJAAgAgu0AQEFfyMAQRBrIgYkACAGQQRqIgIQQSMAQRBrIgUkAAJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSABOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBFGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QYDHAGpBAiAAEEULBQAQaQALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQps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IAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAlAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBDIAAgASAFaiIAEDAgBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAwIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACz0BAX8jAEEQayICJAAgAkEAOgAPA0AgAQRAIAAgAi0ADzoAACABQQFrIQEgAEEBaiEADAELCyACQRBqJAALGgAgAC0AC0EHdgRAIAAoAggaIAAoAgAQGAsL5gEBBX8jAEEQayIFJAAjAEEgayIDJAAjAEEQayIEJAAgBCAANgIMIAQgACABajYCCCADIAQoAgw2AhggAyAEKAIINgIcIARBEGokACADKAIYIQQgAygCHCEGIwBBEGsiASQAIAEgBjYCDCACIAQgBiAEayIEEDUgASACIARqNgIIIAMgASgCDDYCECADIAEoAgg2AhQgAUEQaiQAIAMgACADKAIQIABrajYCDCADIAIgAygCFCACa2o2AgggBSADKAIMNgIIIAUgAygCCDYCDCADQSBqJAAgBSgCDCEHIAVBEGokACAHC/MCAQV/IwBBEGsiByQAIAIgAUF/c0H3////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSABQfP///8DSQR/IAcgAUEBdDYCDCAHIAEgAmo2AgQjAEEQayICJAAgCSgCACAHQQxqIgooAgBJIQsgAkEQaiQAIAogCSALGygCACICQQtPBH8gAkEIakF4cSICIAJBAWsiAiACQQtGGwVBCgtBAWoFQff///8HCxAvIAcoAgQhAiAHKAIIGiAEBEAgAiAIIAQQIgsgBQRAIAIgBGogBiAFECILIAMgBGshBiADIARHBEAgAiAEaiAFaiAEIAhqIAYQIgsgAUEKRwRAIAgQGAsgACACNgIAIAAgACgCCEGAgICAeHEgBygCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAVqIAZqIgA2AgQgB0EAOgAMIAAgAmogBy0ADDoAACAHQRBqJAAPCxAlAAvHAwEFfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYASADQQBBkAEQIyIAQX82AkwgAEEbNgIkIABBfzYCUCAAIABBnwFqNgIsIAAgAEGUAWo2AlQgBEEAOgAAQQAhAyMAQdABayIBJAAgASACNgLMASABQaABaiICQQBBKBAjGiABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogAhBMQQBIBEBBfyECDAELIAAoAkxBAEghByAAIAAoAgAiBkFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQMgACABNgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgAUHIAWogAUHQAGogAUGgAWoQTAshAiADBEAgAEEAQQAgACgCJBEDABogAEEANgIwIAAgAzYCLCAAQQA2AhwgACgCFCEDIABCADcDECACQX8gAxshAgsgACAAKAIAIgMgBkEgcXI2AgBBfyACIANBIHEbIQIgBw0ACyABQdABaiQAIABBoAFqJAAgBUEQaiQAIAILngUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQsgASkDACEDIAEpAwghByMAQSBrIggkACAHQv///////z+DIQQCfiAHQjCIQv//AYMiBaciCkGB+ABrQf0PTQRAIARCBIYgA0I8iIQhAiAKQYD4AGutIQUCQCADQv//////////D4MiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgAbIQIgAK0gBXwMAQsCQCADIASEUA0AIAVC//8BUg0AIARCBIYgA0I8iIRCgICAgICAgASEIQJC/w8MAQtC/w8gCkH+hwFLDQAaQgBBgPgAQYH4ACAFUCIBGyIAIAprIglB8ABKDQAaIAMhAiAEIARCgICAgICAwACEIAEbIgYhBAJAQYABIAlrIgFBwABxBEAgAyABQUBqrYYhBEIAIQIMAQsgAUUNACAEIAGtIgWGIAJBwAAgAWutiIQhBCACIAWGIQILIAggAjcDECAIIAQ3AxgCQCAJQcAAcQRAIAYgCUFAaq2IIQNCACEGDAELIAlF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AgQgAEHM0AA2AgAgAkEQaiQAC2ACAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGszAAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAAn8gA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLNgI8IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQazMACACQQhqEAg2AgQgAEHM0AA2AgAgAkEQaiQACwvGRhAAQYAIC5Qic2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKAApOyAgICBuZXdDb2xvci5yZ2IgPSB2ZWMzKG5ld0NvbG9yLnJnYiArIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICB2ZWM0IG5ld0NvbG9yID0gb3V0Q29sb3I7ICAgICBuZXdDb2xvci5yZ2IgPSBtaXgobWl4KG1peChuZXdDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSksIHNvZnRMaWdodCwgACk7ICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gbmV3Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG5ld0NvbG9yLnJnYiA9IG1peChuZXdDb2xvci5yZ2IsIHNhdENvbG9yLCAAICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKTsgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3IsIG5ld0NvbG9yLCAxLjApOyAgIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgACAgICBmbG9hdCBzYW1wbGVDb2xvciA9IG91dENvbG9yLmcgKiAyMi4wOyAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAJAmAABwFAAAUDZBbGxJbjEAAAAAFCcAAIAUAAAAAAAAeBQAAFBLNkFsbEluMQAAABQnAACcFAAAAQAAAHgUAABwcAB2AHZwAIwUAADcFAAATjEwZW1zY3JpcHRlbjN2YWxFAACQJgAAyBQAAHBwcAB2cHBwAAAAAMwlAACMFAAAgCYAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkZABBoCoLyAjMJQAAjBQAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkAMwlAACMFAAAdnBwAMwlAADcFAAA3BQAAIwUAADcFAAALCYAAMwlAADcFAAAsBUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACQJgAAcBUAANwUAADMJQAA3BQAANwUAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAkCYAAMgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAkCYAABAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAJAmAABYFgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACQJgAApBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAkCYAAPAWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAJAmAAAYFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACQJgAAQBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAkCYAAGgXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAJAmAACQFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACQJgAAuBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAkCYAAOAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAJAmAAAIGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACQJgAAMBgAAE4xMGVtc2NyaXB0ZW4x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";return _}var Fr;function yn(_){if(_==Fr&&Ke)return new Uint8Array(Ke);var g=Re(_);if(g)return g;if(er)return er(_);throw"both async and sync fetching of the wasm failed"}function Xn(_){return Promise.resolve().then(()=>yn(_))}function kr(_,g,C){return Xn(_).then(B=>WebAssembly.instantiate(B,g)).then(C,B=>{In(`failed to asynchronously prepare wasm: ${B}`),mn(B)})}function xe(_,g,C,B){return kr(g,C,B)}function Se(){return{a:ln}}function be(){var _=Se();function g(B,F){return gt=B.exports,pe=gt.y,jt(),Br=gt.B,Rt(gt.z),Ti("wasm-instantiate"),gt}Gn("wasm-instantiate");function C(B){g(B.instance)}if(N.instantiateWasm)try{return N.instantiateWasm(_,g)}catch(B){In(`Module.instantiateWasm callback failed with error: ${B}`),we(B)}return Fr||(Fr=Cn()),xe(Ke,Fr,_,C).catch(we),{}}var ve=_=>{for(;_.length>0;)_.shift()(N)},T=N.noExitRuntime||!0;class Oe{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){he[this.ptr+4>>2]=g}get_type(){return he[this.ptr+4>>2]}set_destructor(g){he[this.ptr+8>>2]=g}get_destructor(){return he[this.ptr+8>>2]}set_caught(g){g=g?1:0,Ut[this.ptr+12]=g}get_caught(){return Ut[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,Ut[this.ptr+13]=g}get_rethrown(){return Ut[this.ptr+13]!=0}init(g,C){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(C)}set_adjusted_ptr(g){he[this.ptr+16>>2]=g}get_adjusted_ptr(){return he[this.ptr+16>>2]}get_exception_ptr(){var g=Kt(this.get_type());if(g)return he[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var b=0,Qe=0,ze=(_,g,C)=>{var B=new Oe(_);throw B.init(g,C),b=_,Qe++,b},Nr=()=>{mn("")},on=(_,g,C,B,F)=>{},J=()=>{for(var _=new Array(256),g=0;g<256;++g)_[g]=String.fromCharCode(g);Ur=_},Ur,V=_=>{for(var g="",C=_;Xe[C];)g+=Ur[Xe[C++]];return g},Lt={},st={},xr={},Ht,de=_=>{throw new Ht(_)},an,yr=_=>{throw new an(_)},Ot=(_,g,C)=>{_.forEach(function(L){xr[L]=g});function B(L){var q=C(L);q.length!==_.length&&yr("Mismatched type converter count");for(var ee=0;ee<_.length;++ee)Ct(_[ee],q[ee])}var F=new Array(g.length),H=[],X=0;g.forEach((L,q)=>{st.hasOwnProperty(L)?F[q]=st[L]:(H.push(L),Lt.hasOwnProperty(L)||(Lt[L]=[]),Lt[L].push(()=>{F[q]=st[L],++X,X===H.length&&B(F)}))}),H.length===0&&B(F)};function Qi(_,g,C={}){var B=g.name;if(_||de(`type "${B}" must have a positive integer typeid pointer`),st.hasOwnProperty(_)){if(C.ignoreDuplicateRegistrations)return;de(`Cannot register type '${B}' twice`)}if(st[_]=g,delete xr[_],Lt.hasOwnProperty(_)){var F=Lt[_];delete Lt[_],F.forEach(H=>H())}}function Ct(_,g,C={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Qi(_,g,C)}var Gt=8,Pi=(_,g,C,B)=>{g=V(g),Ct(_,{name:g,fromWireType:function(F){return!!F},toWireType:function(F,H){return H?C:B},argPackAdvance:Gt,readValueFromPointer:function(F){return this.fromWireType(Xe[F])},destructorFunction:null})},Ri=_=>({count:_.count,deleteScheduled:_.deleteScheduled,preservePointerOnDelete:_.preservePointerOnDelete,ptr:_.ptr,ptrType:_.ptrType,smartPtr:_.smartPtr,smartPtrType:_.smartPtrType}),wn=_=>{function g(C){return C.$$.ptrType.registeredClass.name}de(g(_)+" instance already deleted")},Dn=!1,Yt=_=>{},rr=_=>{_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)},lt=_=>{_.count.value-=1;var g=_.count.value===0;g&&rr(_)},At=(_,g,C)=>{if(g===C)return _;if(C.baseClass===void 0)return null;var B=At(_,g,C.baseClass);return B===null?null:C.downcast(B)},nr={},St=()=>Object.keys(He).length,wr=()=>{var _=[];for(var g in He)He.hasOwnProperty(g)&&_.push(He[g]);return _},E=[],ir=()=>{for(;E.length;){var _=E.pop();_.$$.deleteScheduled=!1,_.delete()}},p,bn=_=>{p=_,E.length&&p&&p(ir)},le=()=>{N.getInheritedInstanceCount=St,N.getLiveInheritedInstances=wr,N.flushPendingDeletes=ir,N.setDelayFunction=bn},He={},ce=(_,g)=>{for(g===void 0&&de("ptr should not be undefined");_.baseClass;)g=_.upcast(g),_=_.baseClass;return g},Dr=(_,g)=>(g=ce(_,g),He[g]),On=(_,g)=>{(!g.ptrType||!g.ptr)&&yr("makeClassHandle requires ptr and ptrType");var C=!!g.smartPtrType,B=!!g.smartPtr;return C!==B&&yr("Both smartPtrType and smartPtr must be specified"),g.count={value:1},ye(Object.create(_,{$$:{value:g,writable:!0}}))};function We(_){var g=this.getPointee(_);if(!g)return this.destructor(_),null;var C=Dr(this.registeredClass,g);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=g,C.$$.smartPtr=_,C.clone();var B=C.clone();return this.destructor(_),B}function F(){return this.isSmartPointer?On(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:_}):On(this.registeredClass.instancePrototype,{ptrType:this,ptr:_})}var H=this.registeredClass.getActualType(g),X=nr[H];if(!X)return F.call(this);var L;this.isConst?L=X.constPointerType:L=X.pointerType;var q=At(g,this.registeredClass,L.registeredClass);return q===null?F.call(this):this.isSmartPointer?On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q,smartPtrType:this,smartPtr:_}):On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q})}var ye=_=>typeof FinalizationRegistry=="undefined"?(ye=g=>g,_):(Dn=new FinalizationRegistry(g=>{lt(g.$$)}),ye=g=>{var C=g.$$,B=!!C.smartPtr;if(B){var F={$$:C};Dn.register(g,F,g)}return g},Yt=g=>Dn.unregister(g),ye(_)),Bt=()=>{Object.assign(jr.prototype,{isAliasOf(_){if(!(this instanceof jr)||!(_ instanceof jr))return!1;var g=this.$$.ptrType.registeredClass,C=this.$$.ptr;_.$$=_.$$;for(var B=_.$$.ptrType.registeredClass,F=_.$$.ptr;g.baseClass;)C=g.upcast(C),g=g.baseClass;for(;B.baseClass;)F=B.upcast(F),B=B.baseClass;return g===B&&C===F},clone(){if(this.$$.ptr||wn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var _=ye(Object.create(Object.getPrototypeOf(this),{$$:{value:Ri(this.$$)}}));return _.$$.count.value+=1,_.$$.deleteScheduled=!1,_},delete(){this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),Yt(this),lt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),E.push(this),E.length===1&&p&&p(ir),this.$$.deleteScheduled=!0,this}})};function jr(){}var br=(_,g)=>Object.defineProperty(g,"name",{value:_}),Tt=(_,g,C)=>{if(_[g].overloadTable===void 0){var B=_[g];_[g]=function(...F){return _[g].overloadTable.hasOwnProperty(F.length)||de(`Function '${C}' called with an invalid number of arguments (${F.length}) - expects one of (${_[g].overloadTable})!`),_[g].overloadTable[F.length].apply(this,F)},_[g].overloadTable=[],_[g].overloadTable[B.argCount]=B}},Or=(_,g,C)=>{N.hasOwnProperty(_)?((C===void 0||N[_].overloadTable!==void 0&&N[_].overloadTable[C]!==void 0)&&de(`Cannot register public name '${_}' twice`),Tt(N,_,_),N.hasOwnProperty(C)&&de(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`),N[_].overloadTable[C]=g):(N[_]=g,C!==void 0&&(N[_].numArguments=C))},Si=48,Wn=57,Mi=_=>{if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var g=_.charCodeAt(0);return g>=Si&&g<=Wn?`_${_}`:_};function Bn(_,g,C,B,F,H,X,L){this.name=_,this.constructor=g,this.instancePrototype=C,this.rawDestructor=B,this.baseClass=F,this.getActualType=H,this.upcast=X,this.downcast=L,this.pureVirtualFunctions=[]}var or=(_,g,C)=>{for(;g!==C;)g.upcast||de(`Expected null or instance of ${C.name}, got an instance of ${g.name}`),_=g.upcast(_),g=g.baseClass;return _};function P(_,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=or(g.$$.ptr,C,this.registeredClass);return B}function Q(_,g){var C;if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),_!==null&&_.push(this.rawDestructor,C),C):0;(!g||!g.$$)&&de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var B=g.$$.ptrType.registeredClass;if(C=or(g.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&de("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?C=g.$$.smartPtr:de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)C=g.$$.smartPtr;else{var F=g.clone();C=this.rawShare(C,ie.toHandle(()=>F.delete())),_!==null&&_.push(this.rawDestructor,C)}break;default:de("Unsupporting sharing policy")}return C}function Tn(_,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=or(g.$$.ptr,C,this.registeredClass);return B}function Lr(_){return this.fromWireType(he[_>>2])}var Vn=()=>{Object.assign(sn.prototype,{getPointee(_){return this.rawGetPointee&&(_=this.rawGetPointee(_)),_},destructor(_){var g;(g=this.rawDestructor)==null||g.call(this,_)},argPackAdvance:Gt,readValueFromPointer:Lr,fromWireType:We})};function sn(_,g,C,B,F,H,X,L,q,ee,Z){this.name=_,this.registeredClass=g,this.isReference=C,this.isConst=B,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=X,this.rawGetPointee=L,this.rawConstructor=q,this.rawShare=ee,this.rawDestructor=Z,!F&&g.baseClass===void 0?B?(this.toWireType=P,this.destructorFunction=null):(this.toWireType=Tn,this.destructorFunction=null):this.toWireType=Q}var Fi=(_,g,C)=>{N.hasOwnProperty(_)||yr("Replacing nonexistent public symbol"),N[_].overloadTable!==void 0&&C!==void 0?N[_].overloadTable[C]=g:(N[_]=g,N[_].argCount=C)},fo=(_,g,C)=>{_=_.replace(/p/g,"i");var B=N["dynCall_"+_];return B(g,...C)},vn=[],Br,Mt=_=>{var g=vn[_];return g||(_>=vn.length&&(vn.length=_+1),vn[_]=g=Br.get(_)),g},Xt=(_,g,C=[])=>{if(_.includes("j"))return fo(_,g,C);var B=Mt(g)(...C);return B},Hr=(_,g)=>(...C)=>Xt(_,g,C),vt=(_,g)=>{_=V(_);function C(){return _.includes("j")?Hr(_,g):Mt(g)}var B=C();return typeof B!="function"&&de(`unknown function pointer with signature ${_}: ${g}`),B},Qn=(_,g)=>{var C=br(g,function(B){this.name=g,this.message=B;var F=new Error(B).stack;F!==void 0&&(this.stack=this.toString()+`
60
- `+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(_.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},Wt,Ft=_=>{var g=fn(_),C=V(g);return Qt(g),C},Tr=(_,g)=>{var C=[],B={};function F(H){if(!B[H]&&!st[H]){if(xr[H]){xr[H].forEach(F);return}C.push(H),B[H]=!0}}throw g.forEach(F),new Wt(`${_}: `+C.map(Ft).join([", "]))},ki=(_,g,C,B,F,H,X,L,q,ee,Z,me,Be)=>{Z=V(Z),H=vt(F,H),L&&(L=vt(X,L)),ee&&(ee=vt(q,ee)),Be=vt(me,Be);var De=Mi(Z);Or(De,function(){Tr(`Cannot construct ${Z} due to unbound types`,[B])}),Ot([_,g,C],B?[B]:[],Ge=>{var Sn,Vr;Ge=Ge[0];var Et,ct;B?(Et=Ge.registeredClass,ct=Et.instancePrototype):ct=jr.prototype;var qe=br(Z,function(...vr){if(Object.getPrototypeOf(this)!==dr)throw new Ht("Use 'new' to construct "+Z);if(ke.constructor_body===void 0)throw new Ht(Z+" has no accessible constructor");var ri=ke.constructor_body[vr.length];if(ri===void 0)throw new Ht(`Tried to invoke ctor of ${Z} with invalid number of parameters (${vr.length}) - expected (${Object.keys(ke.constructor_body).toString()}) parameters instead!`);return ri.apply(this,vr)}),dr=Object.create(ct,{constructor:{value:qe}});qe.prototype=dr;var ke=new Bn(Z,qe,dr,Be,Et,H,L,ee);ke.baseClass&&((Vr=(Sn=ke.baseClass).__derivedClasses)!=null||(Sn.__derivedClasses=[]),ke.baseClass.__derivedClasses.push(ke));var wt=new sn(Z,ke,!0,!1,!1),pt=new sn(Z+"*",ke,!1,!1,!1),fr=new sn(Z+" const*",ke,!1,!0,!1);return nr[_]={pointerType:pt,constPointerType:fr},Fi(De,qe),[wt,pt,fr]})},zn=(_,g)=>{for(var C=[],B=0;B<_;B++)C.push(he[g+B*4>>2]);return C},Pn=_=>{for(;_.length;){var g=_.pop(),C=_.pop();C(g)}};function Ni(_){for(var g=1;g<_.length;++g)if(_[g]!==null&&_[g].destructorFunction===void 0)return!0;return!1}function $n(_,g,C,B,F,H){var X=g.length;X<2&&de("argTypes array size mismatch! Must at least get return value and 'this' types!");var L=g[1]!==null&&C!==null,q=Ni(g),ee=g[0].name!=="void",Z=X-2,me=new Array(Z),Be=[],De=[],Ge=function(...Et){Et.length!==Z&&de(`function ${_} called with ${Et.length} arguments, expected ${Z}`),De.length=0;var ct;Be.length=L?2:1,Be[0]=F,L&&(ct=g[1].toWireType(De,this),Be[1]=ct);for(var qe=0;qe<Z;++qe)me[qe]=g[qe+2].toWireType(De,Et[qe]),Be.push(me[qe]);var dr=B(...Be);function ke(wt){if(q)Pn(De);else for(var pt=L?1:2;pt<g.length;pt++){var fr=pt===1?ct:me[pt-2];g[pt].destructorFunction!==null&&g[pt].destructorFunction(fr)}if(ee)return g[0].fromWireType(wt)}return ke(dr)};return br(_,Ge)}var Ui=(_,g,C,B,F,H)=>{var X=zn(g,C);F=vt(B,F),Ot([],[_],L=>{L=L[0];var q=`constructor ${L.name}`;if(L.registeredClass.constructor_body===void 0&&(L.registeredClass.constructor_body=[]),L.registeredClass.constructor_body[g-1]!==void 0)throw new Ht(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${L.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return L.registeredClass.constructor_body[g-1]=()=>{Tr(`Cannot construct ${L.name} due to unbound types`,X)},Ot([],X,ee=>(ee.splice(1,0,null),L.registeredClass.constructor_body[g-1]=$n(q,ee,null,F,H),[])),[]})},xi=_=>{_=_.trim();let g=_.indexOf("(");return g!==-1?_.substr(0,g):_},Kn=(_,g,C,B,F,H,X,L,q)=>{var ee=zn(C,B);g=V(g),g=xi(g),H=vt(F,H),Ot([],[_],Z=>{Z=Z[0];var me=`${Z.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),L&&Z.registeredClass.pureVirtualFunctions.push(g);function Be(){Tr(`Cannot call ${me} due to unbound types`,ee)}var De=Z.registeredClass.instancePrototype,Ge=De[g];return Ge===void 0||Ge.overloadTable===void 0&&Ge.className!==Z.name&&Ge.argCount===C-2?(Be.argCount=C-2,Be.className=Z.name,De[g]=Be):(Tt(De,g,me),De[g].overloadTable[C-2]=Be),Ot([],ee,Et=>{var ct=$n(me,Et,Z,H,X,q);return De[g].overloadTable===void 0?(ct.argCount=C-2,De[g]=ct):De[g].overloadTable[C-2]=ct,[]}),[]})},_e=(_,g,C)=>(_ instanceof Object||de(`${C} with invalid "this": ${_}`),_ instanceof g.registeredClass.constructor||de(`${C} incompatible with "this" of type ${_.constructor.name}`),_.$$.ptr||de(`cannot call emscripten binding method ${C} on deleted object`),or(_.$$.ptr,_.$$.ptrType.registeredClass,g.registeredClass)),Ie=(_,g,C,B,F,H,X,L,q,ee)=>{g=V(g),F=vt(B,F),Ot([],[_],Z=>{Z=Z[0];var me=`${Z.name}.${g}`,Be={get(){Tr(`Cannot access ${me} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return q?Be.set=()=>Tr(`Cannot access ${me} due to unbound types`,[C,X]):Be.set=De=>de(me+" is a read-only property"),Object.defineProperty(Z.registeredClass.instancePrototype,g,Be),Ot([],q?[C,X]:[C],De=>{var Ge=De[0],Et={get(){var qe=_e(this,Z,me+" getter");return Ge.fromWireType(F(H,qe))},enumerable:!0};if(q){q=vt(L,q);var ct=De[1];Et.set=function(qe){var dr=_e(this,Z,me+" setter"),ke=[];q(ee,dr,ct.toWireType(ke,qe)),Pn(ke)}}return Object.defineProperty(Z.registeredClass.instancePrototype,g,Et),[]}),[]})},dt=[],Pe=[],yt=_=>{_>9&&--Pe[_+1]===0&&(Pe[_]=void 0,dt.push(_))},ji=()=>Pe.length/2-5-dt.length,Jn=()=>{Pe.push(0,1,void 0,1,null,1,!0,1,!1,1),N.count_emval_handles=ji},ie={toValue:_=>(_||de("Cannot use deleted val. handle = "+_),Pe[_]),toHandle:_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=dt.pop()||Pe.length;return Pe[g]=_,Pe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:_=>{var g=ie.toValue(_);return yt(_),g},toWireType:(_,g)=>ie.toHandle(g),argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction:null},Li=_=>Ct(_,se),An=_=>{if(_===null)return"null";var g=typeof _;return g==="object"||g==="array"||g==="function"?_.toString():""+_},f=(_,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Hn[C>>2])};case 8:return function(C){return this.fromWireType(xt[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${_}`)}},l=(_,g,C)=>{g=V(g),Ct(_,{name:g,fromWireType:B=>B,toWireType:(B,F)=>F,argPackAdvance:Gt,readValueFromPointer:f(g,C),destructorFunction:null})},Me=(_,g,C)=>{switch(g){case 1:return C?B=>Ut[B]:B=>Xe[B];case 2:return C?B=>mr[B>>1]:B=>mt[B>>1];case 4:return C?B=>Cr[B>>2]:B=>he[B>>2];default:throw new TypeError(`invalid integer width (${g}): ${_}`)}},Hi=(_,g,C,B,F)=>{g=V(g),F===-1&&(F=4294967295);var H=Z=>Z;if(B===0){var X=32-8*C;H=Z=>Z<<X>>>X}var L=g.includes("unsigned"),q=(Z,me)=>{},ee;L?ee=function(Z,me){return q(me,this.name),me>>>0}:ee=function(Z,me){return q(me,this.name),me},Ct(_,{name:g,fromWireType:H,toWireType:ee,argPackAdvance:Gt,readValueFromPointer:Me(g,C,B!==0),destructorFunction:null})},Gi=(_,g,C)=>{var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=B[g];function H(X){var L=he[X>>2],q=he[X+4>>2];return new F(Ut.buffer,q,L)}C=V(C),Ct(_,{name:C,fromWireType:H,argPackAdvance:Gt,readValueFromPointer:H},{ignoreDuplicateRegistrations:!0})},Yi=(_,g,C,B)=>{if(!(B>0))return 0;for(var F=C,H=C+B-1,X=0;X<_.length;++X){var L=_.charCodeAt(X);if(L>=55296&&L<=57343){var q=_.charCodeAt(++X);L=65536+((L&1023)<<10)|q&1023}if(L<=127){if(C>=H)break;g[C++]=L}else if(L<=2047){if(C+1>=H)break;g[C++]=192|L>>6,g[C++]=128|L&63}else if(L<=65535){if(C+2>=H)break;g[C++]=224|L>>12,g[C++]=128|L>>6&63,g[C++]=128|L&63}else{if(C+3>=H)break;g[C++]=240|L>>18,g[C++]=128|L>>12&63,g[C++]=128|L>>6&63,g[C++]=128|L&63}}return g[C]=0,C-F},Xi=(_,g,C)=>Yi(_,Xe,g,C),Wi=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B<=127?g++:B<=2047?g+=2:B>=55296&&B<=57343?(g+=4,++C):g+=3}return g},Zn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Vi=(_,g,C)=>{for(var B=g+C,F=g;_[F]&&!(F>=B);)++F;if(F-g>16&&_.buffer&&Zn)return Zn.decode(_.subarray(g,F));for(var H="";g<F;){var X=_[g++];if(!(X&128)){H+=String.fromCharCode(X);continue}var L=_[g++]&63;if((X&224)==192){H+=String.fromCharCode((X&31)<<6|L);continue}var q=_[g++]&63;if((X&240)==224?X=(X&15)<<12|L<<6|q:X=(X&7)<<18|L<<12|q<<6|_[g++]&63,X<65536)H+=String.fromCharCode(X);else{var ee=X-65536;H+=String.fromCharCode(55296|ee>>10,56320|ee&1023)}}return H},cn=(_,g)=>_?Vi(Xe,_,g):"",ar=(_,g)=>{g=V(g);var C=g==="std::string";Ct(_,{name:g,fromWireType(B){var F=he[B>>2],H=B+4,X;if(C)for(var L=H,q=0;q<=F;++q){var ee=H+q;if(q==F||Xe[ee]==0){var Z=ee-L,me=cn(L,Z);X===void 0?X=me:(X+=String.fromCharCode(0),X+=me),L=ee+1}}else{for(var Be=new Array(F),q=0;q<F;++q)Be[q]=String.fromCharCode(Xe[H+q]);X=Be.join("")}return Qt(B),X},toWireType(B,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var H,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||de("Cannot pass non-string to std::string"),C&&X?H=Wi(F):H=F.length;var L=$t(4+H+1),q=L+4;if(he[L>>2]=H,C&&X)Xi(F,q,H+1);else if(X)for(var ee=0;ee<H;++ee){var Z=F.charCodeAt(ee);Z>255&&(Qt(q),de("String has UTF-16 code units that do not fit in 8 bits")),Xe[q+ee]=Z}else for(var ee=0;ee<H;++ee)Xe[q+ee]=F[ee];return B!==null&&B.push(Qt,L),L},argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction(B){Qt(B)}})},sr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,rt=(_,g)=>{for(var C=_,B=C>>1,F=B+g/2;!(B>=F)&&mt[B];)++B;if(C=B<<1,C-_>32&&sr)return sr.decode(Xe.subarray(_,C));for(var H="",X=0;!(X>=g/2);++X){var L=mr[_+X*2>>1];if(L==0)break;H+=String.fromCharCode(L)}return H},ft=(_,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var B=g,F=C<_.length*2?C/2:_.length,H=0;H<F;++H){var X=_.charCodeAt(H);mr[g>>1]=X,g+=2}return mr[g>>1]=0,g-B},zi=_=>_.length*2,$i=(_,g)=>{for(var C=0,B="";!(C>=g/4);){var F=Cr[_+C*4>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;B+=String.fromCharCode(55296|H>>10,56320|H&1023)}else B+=String.fromCharCode(F)}return B},un=(_,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var B=g,F=B+C-4,H=0;H<_.length;++H){var X=_.charCodeAt(H);if(X>=55296&&X<=57343){var L=_.charCodeAt(++H);X=65536+((X&1023)<<10)|L&1023}if(Cr[g>>2]=X,g+=4,g+4>F)break}return Cr[g>>2]=0,g-B},Ar=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B>=55296&&B<=57343&&++C,g+=4}return g},Gr=(_,g,C)=>{C=V(C);var B,F,H,X;g===2?(B=rt,F=ft,X=zi,H=L=>mt[L>>1]):g===4&&(B=$i,F=un,X=Ar,H=L=>he[L>>2]),Ct(_,{name:C,fromWireType:L=>{for(var q=he[L>>2],ee,Z=L+4,me=0;me<=q;++me){var Be=L+4+me*g;if(me==q||H(Be)==0){var De=Be-Z,Ge=B(Z,De);ee===void 0?ee=Ge:(ee+=String.fromCharCode(0),ee+=Ge),Z=Be+g}}return Qt(L),ee},toWireType:(L,q)=>{typeof q!="string"&&de(`Cannot pass non-string to C++ string type ${C}`);var ee=X(q),Z=$t(4+ee+g);return he[Z>>2]=ee/g,F(q,Z+4,ee+g),L!==null&&L.push(Qt,Z),Z},argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction(L){Qt(L)}})},qn=(_,g)=>{g=V(g),Ct(_,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,B)=>{}})},ei=(_,g,C)=>Xe.copyWithin(_,g,g+C),Fe=(_,g)=>{var C=st[_];return C===void 0&&de(`${g} has unknown type ${Ft(_)}`),C},je=(_,g,C)=>{var B=[],F=_.toWireType(B,C);return B.length&&(he[g>>2]=ie.toHandle(B)),F},Ki=(_,g,C)=>(_=ie.toValue(_),g=Fe(g,"emval::as"),je(g,C,_)),Yr={},cr=_=>{var g=Yr[_];return g===void 0?V(_):g},kt=[],Xr=(_,g,C,B,F)=>(_=kt[_],g=ie.toValue(g),C=cr(C),_(g,g[C],B,F)),Ji=_=>{var g=kt.length;return kt.push(_),g},Nt=(_,g)=>{for(var C=new Array(_),B=0;B<_;++B)C[B]=Fe(he[g+B*4>>2],"parameter "+B);return C},nt=Reflect.construct,ae=(_,g,C)=>{var B=Nt(_,g),F=B.shift();_--;var H=new Array(_),X=(q,ee,Z,me)=>{for(var Be=0,De=0;De<_;++De)H[De]=B[De].readValueFromPointer(me+Be),Be+=B[De].argPackAdvance;var Ge=C===1?nt(ee,H):ee.apply(q,H);return je(F,Z,Ge)},L=`methodCaller<(${B.map(q=>q.name).join(", ")}) => ${F.name}>`;return Ji(br(L,X))},Ae=_=>{_>9&&(Pe[_+1]+=1)},Rn=_=>{var g=ie.toValue(_);Pn(g),yt(_)},ti=(_,g)=>{_=Fe(_,"_emval_take_value");var C=_.readValueFromPointer(g);return ie.toHandle(C)},Vt=_=>{mn("OOM")},zt=_=>{var g=Xe.length;_>>>=0,Vt(_)};J(),Ht=N.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},an=N.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},Bt(),le(),Vn(),Wt=N.UnboundTypeError=Qn(Error,"UnboundTypeError"),Jn();var ln={v:ze,p:Nr,o:on,t:Pi,x:ki,w:Ui,h:Kn,k:Ie,s:Li,n:l,g:Hi,a:Gi,m:ar,l:Gr,u:qn,r:ei,j:Ki,e:Xr,c:yt,f:ae,d:Ae,b:Rn,i:ti,q:zt},gt=be(),dn=()=>(dn=gt.z)(),$t=_=>($t=gt.A)(_),fn=_=>(fn=gt.C)(_),Qt=_=>(Qt=gt.D)(_),Kt=_=>(Kt=gt.E)(_),Wr=N._vertexShaderSource=10192,ur;bt=function _(){ur||lr(),ur||(bt=_)};function lr(){if(Ze>0||(lo(),Ze>0))return;function _(){ur||(ur=!0,N.calledRun=!0,!tt&&(Bi(),Ue(N),N.onRuntimeInitialized&&N.onRuntimeInitialized(),Mr()))}N.setStatus?(N.setStatus("Running..."),setTimeout(function(){setTimeout(function(){N.setStatus("")},1),_()},1)):_()}if(N.preInit)for(typeof N.preInit=="function"&&(N.preInit=[N.preInit]);N.preInit.length>0;)N.preInit.pop()();return lr(),Ee=ot,Ee}})(),Oc=Bu;var Uo=class{constructor(x,n){Le(this,"canvas");Le(this,"locateFile");Le(this,"_glName");Le(this,"_solutionWasm");Le(this,"ctx");Le(this,"fileDownloader");Le(this,"startTime");Le(this,"lastTimestamp");Le(this,"pl",{onResults:x=>this.onResults(x.get(0).glName)});this.locateFile=Ee=>`${x}/${Ee}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=n}bindTexture(){var x;(x=this.ctx)==null||x.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let x=new this.StringList;x.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(x,n),x.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(x){this.canvas=x,this.createContext(x,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(x){return this.fileDownloader.downloadWithFetch(x,"fetch-response")}loadWasm(x,n){return this.fileDownloader.loadWasm(x,n)}async changeModel(x="selfie_segmentation_landscape.tflite"){x=typeof x=="string"?await this.fileDownloader.download(this.locateFile(x),{type:"arraybuffer"}):x,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",x);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(x,n){let Ee=new this.PacketDataList,N=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=N?this.lastTimestamp++:this.lastTimestamp=N,Ee.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:x,height:n}),this._solutionWasm.send(Ee),Ee.delete()}close(){var x,n,Ee;(x=this.canvas)==null||delete x.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(Ee=this._solutionWasm)==null||Ee.delete();for(let N of Object.keys(this))delete this[N]}};var Pr=typeof navigator=="undefined"?"":navigator.userAgent,ue=K=>new RegExp(K,"i").test(Pr),et=K=>{if(ue(K)){let x=new RegExp(`${K}\\/([\\d.]+)`),n=Pr.match(x);if(n&&n[1])return n[1]}return""},ic=K=>{if(ue(K)){let x=new RegExp(`${K}\\/(\\d+)`),n=Pr.match(x);if(n&&n[1])return parseFloat(n[1])}return NaN},Bc=/AppleWebKit\/([\d.]+)/i.exec(Pr),Tu=Bc?parseFloat(Bc[1]):NaN,vc=ue("iPad"),Qc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ue("Macintosh"),Pc=ue("iPhone")&&!vc,vu=ue("iPod"),Rc=Pc||vc||vu||Qc,xo=ue("Android"),Sc=function(){if(xo){let K=Pr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(K){let x=K[1]&&parseFloat(K[1]),n=K[2]&&parseFloat(K[2]);if(x&&n)return parseFloat(`${K[1]}.${K[2]}`);if(x)return x}}return NaN}(),El=xo&&ue("webkit")&&Sc<2.3,pl=xo&&Sc<5&&Tu<537,Qu=ue("Firefox"),Pu=et("Firefox"),_l=ic("Firefox"),Mc=ue("Edge"),Ru=et("Edge"),Fc=ue("Edg"),Su=et("Edg"),hl=ic("Edg"),kc=ue("SogouMobileBrowser"),Mu=et("SogouMobileBrowser"),Nc=ue("MetaSr\\s"),Fu=et("MetaSr\\s"),Ln=ue("TBS"),ku=et("TBS"),Uc=ue("XWEB"),Nu=et("XWEB"),Il=ue("MSIE\\s8\\.0"),Uu=ue("MSIE\\/\\d+"),ml=function(){if(Uu){let K=/MSIE\s(\d+)\.\d/.exec(Pr),x=K&&parseFloat(K[1]);return!x&&/Trident\/7.0/i.test(Pr)&&/rv:11.0/.test(Pr)&&(x=11),x}return NaN}(),xu=ue("(micromessenger|webbrowser)"),ju=et("MicroMessenger"),oc=!Ln&&ue("MQQBrowser")&&ue("COVC"),ac=!Ln&&ue("MQQBrowser")&&!ue("COVC"),Tc=ac||oc?et("MQQBrowser"):"",xc=!Ln&&ue(" QQBrowser"),Lu=et(" QQBrowser"),jc=!Ln&&ue("QQBrowserLite"),Hu=et("QQBrowserLite"),Lc=!Ln&&ue("MQBHD"),Gu=et("MQBHD"),Cl=ue("Windows"),yl=!Rc&&ue("MAC OS X"),wl=!xo&&ue("Linux"),Dl=ue("CrOS"),bl=ue("MicroMessenger"),Ol=ue("UCBrowser"),Bl=ue("Electron"),Hc=ue("MiuiBrowser"),Yu=et("MiuiBrowser"),Gc=ue("HuaweiBrowser"),Tl=ue("Huawei")||ue("HUAWEI"),vl=ue("Honor")||ue("HONOR"),Xu=et("HuaweiBrowser"),Yc=ue("SamsungBrowser"),Wu=et("SamsungBrowser"),Xc=ue("HeyTapBrowser"),Vu=et("HeyTapBrowser"),Wc=ue("VivoBrowser"),zu=et("VivoBrowser"),$u=()=>ic("Chrome"),Vc=ue("Chrome"),Ku=!Mc&&!Nc&&!kc&&!Ln&&!Uc&&!Fc&&!xc&&!Hc&&!Gc&&!Yc&&!Xc&&!Wc&&Vc,Ql=ue("HeadlessChrome"),zc=$u(),Ju=et("Chrome"),Zu=!Vc&&!ac&&!oc&&!jc&&!Lc&&ue("Safari");var $c=et("Version"),Pl=/Android.*(wv|.0.0.0)/.test(Pr),Kc=(()=>{if(Qc)return $c;if(Rc){let K=Pr.match(/OS (\d+)_(\d+)/i);if(K&&K[1]){let x=K[1];return K[2]&&(x+=`.${K[2]}`),x}}return""})(),Rl=Number(Kc.split(".")[0]);var Sl=(()=>{let K=Number(Kc.split(".")[0]);return K===14||K===13})(),Ml=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Fl=(()=>{let K;return()=>{if(typeof K=="undefined")try{K=!!window.localStorage}catch(x){K=!1}return K}})(),kl=qu();function qu(){let K=new Map([[Qu,["Firefox",Pu]],[Fc,["Edg",Su]],[Ku,["Chrome",Ju]],[Zu,["Safari",$c]],[Ln,["TBS",ku]],[Uc,["XWEB",Nu]],[xu&&Pc,["WeChat",ju]],[xc,["QQ(Win)",Lu]],[ac,["QQ(Mobile)",Tc]],[oc,["QQ(Mobile X5)",Tc]],[jc,["QQ(Mac)",Hu]],[Lc,["QQ(iPad)",Gu]],[Hc,["MI",Yu]],[Gc,["HW",Xu]],[Yc,["Samsung",Wu]],[Xc,["OPPO",Vu]],[Wc,["VIVO",zu]],[Mc,["EDGE",Ru]],[kc,["SogouMobile",Mu]],[Nc,["Sogou",Fu]]]),x="unknown",n="unknown";return K.has(!0)&&([x,n]=K.get(!0)),{name:x,version:n}}var Di=570703;var jo=0,Lo=class Lo{constructor(x){this.core=x;Le(this,"seq");Le(this,"_core");Le(this,"log");Le(this,"preLoadPromise");Le(this,"startResolve");Le(this,"startReject");Le(this,"mediaPipeSolutions");Le(this,"assetsPath");Le(this,"currentType");Le(this,"onAbort");Le(this,"isAborted",!1);jo=jo+1,this.seq=jo,this._core=x,this.log=x.log.createChild({id:`${this.getAlias()}${jo}`}),this.log.info("created"),x.assetsPath&&(this.preLoadPromise=this.preload(x.assetsPath))}static isSupported(){if(zc<90)return!1;let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(x="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await Oc()),this.assetsPath=`${x}/selfie_segmentation/`;let n=new Uo(this.assetsPath,this._core.fileDownloader);n.onAbort=Ee=>{var N;this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",Ee),this.core.clearStarted(this,this.getGroup()),this.stop(),(N=this.onAbort)==null||N.call(this,Ee)},n.print=this.log.info.bind(this.log),n.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?Dc:bc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:Ee,ErrorCode:N}=this._core.errorModule;throw new Ee({code:N.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Lo.Name}getAlias(){return"vb"}getValidateRule(x){switch(x){case"start":return Cc(this._core);case"update":return yc(this._core);case"stop":return wc(this._core)}}getGroup(){return"vb"}getKVTypeValue(x=!1,n=!1,Ee="NONE"){let N=0;switch(this.currentType){case"blur":N|=0;break;case"image":N|=1;break;case"green":N|=2;break}switch(x&&(N|=256),n&&(N|=512),Ee){case"ABORT_IN_INFERENCE":N|=4096;break;case"ABORT_IN_VIDEO_MANAGER":N|=8192;break;case"OTHER":N|=61440}return N}async start(x){let{type:n="blur",src:Ee,blurLevel:N=3,onAbort:Ue}=x;this.currentType=n,this.onAbort=Ue;let{auth:we,sign:ot,timestamp:ht}=await mc({sdkAppId:x.sdkAppId,userId:x.userId,userSig:x.userSig,core:this._core});if(!we){let{RtcError:$e,ErrorCode:Ye,ErrorCodeDictionary:Ve}=this._core.errorModule;throw new $e({code:Ye.SERVER_ERROR,extraCode:Ve.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:Ee,blurLevel:N,onAbort:$e=>{var Ye;this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(Ye=this.onAbort)==null||Ye.call(this,$e)}}).then(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")})})}async update(x){let{type:n,src:Ee}=x;return n!==this.currentType&&(this.currentType=n),this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:Ee,blurLevel:x.blurLevel}).then(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,!1,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,!1,"OTHER")})})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Le(Lo,"Name","VirtualBackground");var sc=Lo;var Xl=sc;export{sc as VirtualBackground,Xl as default};
59
+ `},"%p":function(R){return R.tm_hour>=0&&R.tm_hour<12?"AM":"PM"},"%S":function(R){return I(R.tm_sec,2)},"%t":function(){return" "},"%u":function(R){return R.tm_wday||7},"%U":function(R){var D=new Date(R.tm_year+1900,0,1),k=D.getDay()===0?D:qr(D,7-D.getDay()),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,Ce=31-k.getDate(),Ne=Ce+Y+$.getDate();return I(Math.ceil(Ne/7),2)}return m(k,D)===0?"01":"00"},"%V":function(R){var D=new Date(R.tm_year+1900,0,4),k=new Date(R.tm_year+1901,0,4),$=y(D),Y=y(k),Ce=qr(new Date(R.tm_year+1900,0,1),R.tm_yday);if(m(Ce,$)<0)return"53";if(m(Y,Ce)<=0)return"01";var Ne;return $.getFullYear()<R.tm_year+1900?Ne=R.tm_yday+32-$.getDate():Ne=R.tm_yday+1-$.getDate(),I(Math.ceil(Ne/7),2)},"%w":function(R){return R.tm_wday},"%W":function(R){var D=new Date(R.tm_year,0,1),k=D.getDay()===1?D:qr(D,D.getDay()===0?1:7-D.getDay()+1),$=new Date(R.tm_year+1900,R.tm_mon,R.tm_mday);if(m(k,$)<0){var Y=pn(Ci($.getFullYear())?_n:Zr,$.getMonth()-1)-31,Ce=31-k.getDate(),Ne=Ce+Y+$.getDate();return I(Math.ceil(Ne/7),2)}return m(k,D)===0?"01":"00"},"%y":function(R){return(R.tm_year+1900).toString().substring(2)},"%Y":function(R){return R.tm_year+1900},"%z":function(R){var D=R.tm_gmtoff,k=D>=0;return D=Math.abs(D)/60,D=D/60*100+D%60,(k?"+":"-")+("0000"+D).slice(-4)},"%Z":function(R){return R.tm_zone},"%%":function(){return"%"}};for(var c in U)s.includes(c)&&(s=s.replace(new RegExp(c,"g"),U[c](a)));var G=ao(s,!1);return G.length>e?0:(Fr(G,i),G.length-1)}function Ro(i,e,t,r){return Un(i,e,t,r)}n.requestFullscreen=function(e,t){P.requestFullscreen(e,t)},n.requestFullScreen=function(){P.requestFullScreen()},n.requestAnimationFrame=function(e){P.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){P.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){P.mainLoop.pause()},n.resumeMainLoop=function(){P.mainLoop.resume()},n.getUserMedia=function(){P.getUserMedia()},n.createContext=function(e,t,r,o){return P.createContext(e,t,r,o)};var So=function(i,e,t,r){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=f.nextInode++,this.name=e,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=r},xn=365,en=146;Object.defineProperties(So.prototype,{read:{get:function(){return(this.mode&xn)===xn},set:function(i){i?this.mode|=xn:this.mode&=~xn}},write:{get:function(){return(this.mode&en)===en},set:function(i){i?this.mode|=en:this.mode&=~en}},isFolder:{get:function(){return f.isDir(this.mode)}},isDevice:{get:function(){return f.isChrdev(this.mode)}}}),f.FSNode=So,f.staticInit(),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,$i(),Gr=n.PureVirtualError=Ar(Error,"PureVirtualError"),qn(),Ji(),nt=n.BindingError=Ar(Error,"BindingError"),B=n.InternalError=Ar(Error,"InternalError"),dr(),Wo(),ut=n.UnboundTypeError=Ar(Error,"UnboundTypeError");for(var M,S=0;S<32;++S)Oo.push(new Array(S));for(var Dt=new Float32Array(288),S=0;S<288;++S)Ei[S]=Dt.subarray(0,S+1);for(var eA=new Int32Array(288),S=0;S<288;++S)Qo[S]=eA.subarray(0,S+1);var Ac=!0;function ao(i,e,t){var r=t>0?t:Ze(i)+1,o=new Array(r),a=Rt(i,o,0,o.length);return e&&(o.length=a),o}var yi=typeof atob=="function"?atob:function(i){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="",r,o,a,s,A,c,u,d=0;i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=e.indexOf(i.charAt(d++)),A=e.indexOf(i.charAt(d++)),c=e.indexOf(i.charAt(d++)),u=e.indexOf(i.charAt(d++)),r=s<<2|A>>4,o=(A&15)<<4|c>>2,a=(c&3)<<6|u,t=t+String.fromCharCode(r),c!==64&&(t=t+String.fromCharCode(o)),u!==64&&(t=t+String.fromCharCode(a));while(d<i.length);return t};function cc(i){if(typeof It=="boolean"&&It){var e=Buffer.from(i,"base64");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}try{for(var t=yi(i),r=new Uint8Array(t.length),o=0;o<t.length;++o)r[o]=t.charCodeAt(o);return r}catch(a){throw new Error("Converting base64 string to bytes failed.")}}var tA={HaveOffsetConverter:jr,__cxa_allocate_exception:Fi,__cxa_atexit:vn,__cxa_begin_catch:Qn,__cxa_end_catch:ki,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:Ni,__cxa_free_exception:Ft,__cxa_rethrow:$n,__cxa_thread_atexit:Ui,__cxa_throw:xi,__resumeException:zn,__sys_fcntl64:Me,__sys_ioctl:Hi,__sys_mmap2:Yi,__sys_open:Xi,__sys_stat64:Wi,_embind_create_inheriting_constructor:Wr,_embind_finalize_value_object:X,_embind_register_bigint:L,_embind_register_bool:Z,_embind_register_class:zr,_embind_register_class_class_function:oi,_embind_register_class_constructor:$o,_embind_register_class_function:Ko,_embind_register_class_property:Io,_embind_register_emval:Co,_embind_register_float:Jo,_embind_register_function:Zo,_embind_register_integer:ea,_embind_register_memory_view:ta,_embind_register_std_string:ra,_embind_register_std_wstring:na,_embind_register_value_object:ia,_embind_register_value_object_field:oa,_embind_register_void:aa,_emval_call_void_method:qi,_emval_decref:mo,_emval_get_method_caller:la,_emval_incref:da,_emval_take_value:fa,abort:ga,clock_gettime:pa,dlopen:_a,dlsym:ha,emscripten_asm_const_int:Ia,emscripten_get_heap_max:ma,emscripten_memcpy_big:Ca,emscripten_pc_get_function:ya,emscripten_resize_heap:Da,emscripten_stack_snapshot:yo,emscripten_stack_unwind_buffer:ba,emscripten_thread_sleep:Oa,emscripten_webgl_create_context:Ma,emscripten_webgl_destroy_context:bo,emscripten_webgl_get_context_attributes:ka,emscripten_webgl_get_current_context:Do,emscripten_webgl_init_context_attributes:Na,emscripten_webgl_make_context_current:ro,environ_get:kn,environ_sizes_get:Ua,exit:Si,fd_close:xa,fd_read:ja,fd_seek:La,fd_write:Ha,getTempRet0:Ga,getentropy:ci,glActiveTexture:ui,glAttachShader:Ya,glBindAttribLocation:Xa,glBindBuffer:Wa,glBindBufferBase:Va,glBindFramebuffer:za,glBindTexture:$a,glBindVertexArray:Ka,glBufferData:Ja,glClientWaitSync:qa,glCompileShader:es,glCreateProgram:ts,glCreateShader:rs,glDeleteBuffers:ns,glDeleteFramebuffers:is,glDeleteProgram:os,glDeleteShader:as,glDeleteSync:ss,glDeleteTextures:As,glDeleteVertexArrays:cs,glDisable:us,glDisableVertexAttribArray:ls,glDrawArrays:ds,glDrawBuffers:Bo,glEnableVertexAttribArray:fs,glFenceSync:gs,glFinish:Es,glFlush:ps,glFramebufferTexture2D:_s,glFramebufferTextureLayer:hs,glGenBuffers:di,glGenFramebuffers:Is,glGenTextures:ms,glGenVertexArrays:Cs,glGetAttribLocation:ys,glGetError:ws,glGetIntegerv:Ts,glGetString:gi,glGetUniformBlockIndex:vs,glGetUniformLocation:Ps,glLinkProgram:Rs,glPixelStorei:Ss,glReadPixels:oo,glShaderSource:ks,glTexImage2D:Ns,glTexParameterfv:Us,glTexParameteri:xs,glTexStorage2D:js,glTexStorage3D:Ls,glTexSubImage2D:Hs,glTexSubImage3D:Gs,glUniform1f:qt,glUniform1i:Ys,glUniform2fv:pi,glUniform4fv:Xs,glUniform4iv:Po,glUniformBlockBinding:Ws,glUniformMatrix4fv:Vs,glUseProgram:zs,glVertexAttribPointer:$s,glViewport:Ks,gmtime_r:_i,invoke_diii:bA,invoke_i:QA,invoke_ii:dA,invoke_iii:aA,invoke_iiii:OA,invoke_iiiii:IA,invoke_iiiiii:yA,invoke_iiiiiii:AA,invoke_iiiiiiiddi:JA,invoke_iiiiiiii:DA,invoke_iiiiiiiii:MA,invoke_v:cA,invoke_vdiii:tc,invoke_vi:oA,invoke_vididdii:WA,invoke_vidii:zA,invoke_vii:lA,invoke_viid:Ec,invoke_viidi:ec,invoke_viididii:SA,invoke_viii:fA,invoke_viiid:VA,invoke_viiidd:CA,invoke_viiiddi:vA,invoke_viiidi:PA,invoke_viiii:hA,invoke_viiiid:ZA,invoke_viiiidi:RA,invoke_viiiidid:qA,invoke_viiiidiidiiiiiii:XA,invoke_viiiifiifiiiiiii:YA,invoke_viiiii:sA,invoke_viiiiid:NA,invoke_viiiiif:LA,invoke_viiiiii:gA,invoke_viiiiiid:UA,invoke_viiiiiif:HA,invoke_viiiiiii:EA,invoke_viiiiiiiddi:KA,invoke_viiiiiiidiiii:jA,invoke_viiiiiiifiiii:GA,invoke_viiiiiiii:pA,invoke_viiiiiiiidd:kA,invoke_viiiiiiiidf:FA,invoke_viiiiiiiii:_A,invoke_viiiiiiiiidd:BA,invoke_viiiiiiiiiddi:TA,invoke_viiiiiiiiii:uA,invoke_viiiiiiiiiiddi:$A,invoke_viiiiiiiiiii:mA,invoke_viiiiiiiiiiii:xA,invoke_viiiiiiiiiiiii:wA,llvm_eh_typeid_for:hi,localtime_r:mi,mktime:Js,proc_exit:Zs,setTempRet0:qs,strftime:Un,strftime_l:Ro},rA=On(),Jc=n.___wasm_call_ctors=le("__wasm_call_ctors"),_r=n._free=le("free"),it=n._malloc=le("malloc"),tn=n.___errno_location=le("__errno_location"),uc=n._fflush=le("fflush"),lc=n.___getTypeName=le("__getTypeName"),dc=n.___embind_register_native_and_builtin_types=le("__embind_register_native_and_builtin_types"),Zc=n._emscripten_main_thread_process_queued_calls=le("emscripten_main_thread_process_queued_calls"),Mo=n._emscripten_stack_get_end=function(){return(Mo=n._emscripten_stack_get_end=n.asm.emscripten_stack_get_end).apply(null,arguments)},rn=n.__get_tzname=le("_get_tzname"),jn=n.__get_daylight=le("_get_daylight"),nA=n.__get_timezone=le("_get_timezone"),ne=n.stackSave=le("stackSave"),j=n.stackRestore=le("stackRestore"),te=n.stackAlloc=le("stackAlloc"),so=n._emscripten_stack_init=function(){return(so=n._emscripten_stack_init=n.asm.emscripten_stack_init).apply(null,arguments)},Fo=n._emscripten_stack_get_free=function(){return(Fo=n._emscripten_stack_get_free=n.asm.emscripten_stack_get_free).apply(null,arguments)},fc=n._saveSetjmp=le("saveSetjmp"),oe=n._setThrew=le("setThrew"),re=n.___cxa_can_catch=le("__cxa_can_catch"),ko=n.___cxa_is_pointer_type=le("__cxa_is_pointer_type"),iA=n._memalign=le("memalign"),gc=n._emscripten_builtin_malloc=le("emscripten_builtin_malloc"),qc=n._emscripten_builtin_free=le("emscripten_builtin_free"),eu=n._emscripten_builtin_memalign=le("emscripten_builtin_memalign"),tu=n.dynCall_jii=le("dynCall_jii"),ru=n.dynCall_viji=le("dynCall_viji"),nu=n.dynCall_jjj=le("dynCall_jjj"),iu=n.dynCall_iiiijj=le("dynCall_iiiijj"),ou=n.dynCall_viijj=le("dynCall_viijj"),au=n.dynCall_viiijjjj=le("dynCall_viiijjjj"),su=n.dynCall_ji=le("dynCall_ji"),Au=n.dynCall_vij=le("dynCall_vij"),cu=n.dynCall_viijii=le("dynCall_viijii"),uu=n.dynCall_vj=le("dynCall_vj"),lu=n.dynCall_viij=le("dynCall_viij"),du=n.dynCall_viiiiij=le("dynCall_viiiiij"),fu=n.dynCall_iijjiiii=le("dynCall_iijjiiii"),gu=n.dynCall_jiji=le("dynCall_jiji"),Eu=n.dynCall_iiiiij=le("dynCall_iiiiij"),pu=n.dynCall_iiiiijj=le("dynCall_iiiiijj"),_u=n.dynCall_iiiiiijj=le("dynCall_iiiiiijj");function Ec(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function oA(i,e){var t=ne();try{K.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function aA(i,e,t){var r=ne();try{return K.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function sA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function AA(i,e,t,r,o,a,s){var A=ne();try{return K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function cA(i){var e=ne();try{K.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function uA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function lA(i,e,t){var r=ne();try{K.get(i)(e,t)}catch(o){if(j(r),o!==o+0&&o!=="longjmp")throw o;oe(1,0)}}function dA(i,e){var t=ne();try{return K.get(i)(e)}catch(r){if(j(t),r!==r+0&&r!=="longjmp")throw r;oe(1,0)}}function fA(i,e,t,r){var o=ne();try{K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function gA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function EA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function pA(i,e,t,r,o,a,s,A,c){var u=ne();try{K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function _A(i,e,t,r,o,a,s,A,c,u){var d=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function hA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function IA(i,e,t,r,o){var a=ne();try{return K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function mA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function CA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function yA(i,e,t,r,o,a){var s=ne();try{return K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function wA(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function DA(i,e,t,r,o,a,s,A){var c=ne();try{return K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function bA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function OA(i,e,t,r){var o=ne();try{return K.get(i)(e,t,r)}catch(a){if(j(o),a!==a+0&&a!=="longjmp")throw a;oe(1,0)}}function BA(i,e,t,r,o,a,s,A,c,u,d,h){var I=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h)}catch(m){if(j(I),m!==m+0&&m!=="longjmp")throw m;oe(1,0)}}function TA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function vA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function QA(i){var e=ne();try{return K.get(i)()}catch(t){if(j(e),t!==t+0&&t!=="longjmp")throw t;oe(1,0)}}function PA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function RA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function SA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function MA(i,e,t,r,o,a,s,A,c){var u=ne();try{return K.get(i)(e,t,r,o,a,s,A,c)}catch(d){if(j(u),d!==d+0&&d!=="longjmp")throw d;oe(1,0)}}function FA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function kA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function NA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function UA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function xA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function jA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function LA(i,e,t,r,o,a,s){var A=ne();try{K.get(i)(e,t,r,o,a,s)}catch(c){if(j(A),c!==c+0&&c!=="longjmp")throw c;oe(1,0)}}function HA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function GA(i,e,t,r,o,a,s,A,c,u,d,h,I){var m=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I)}catch(y){if(j(m),y!==y+0&&y!=="longjmp")throw y;oe(1,0)}}function YA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function XA(i,e,t,r,o,a,s,A,c,u,d,h,I,m,y,v){var U=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m,y,v)}catch(G){if(j(U),G!==G+0&&G!=="longjmp")throw G;oe(1,0)}}function WA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function VA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function zA(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function $A(i,e,t,r,o,a,s,A,c,u,d,h,I,m){var y=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d,h,I,m)}catch(v){if(j(y),v!==v+0&&v!=="longjmp")throw v;oe(1,0)}}function KA(i,e,t,r,o,a,s,A,c,u,d){var h=ne();try{K.get(i)(e,t,r,o,a,s,A,c,u,d)}catch(I){if(j(h),I!==I+0&&I!=="longjmp")throw I;oe(1,0)}}function JA(i,e,t,r,o,a,s,A,c,u){var d=ne();try{return K.get(i)(e,t,r,o,a,s,A,c,u)}catch(h){if(j(d),h!==h+0&&h!=="longjmp")throw h;oe(1,0)}}function ZA(i,e,t,r,o,a){var s=ne();try{K.get(i)(e,t,r,o,a)}catch(A){if(j(s),A!==A+0&&A!=="longjmp")throw A;oe(1,0)}}function qA(i,e,t,r,o,a,s,A){var c=ne();try{K.get(i)(e,t,r,o,a,s,A)}catch(u){if(j(c),u!==u+0&&u!=="longjmp")throw u;oe(1,0)}}function ec(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}function tc(i,e,t,r,o){var a=ne();try{K.get(i)(e,t,r,o)}catch(s){if(j(a),s!==s+0&&s!=="longjmp")throw s;oe(1,0)}}Object.getOwnPropertyDescriptor(n,"intArrayFromString")||(n.intArrayFromString=function(){E("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"intArrayToString")||(n.intArrayToString=function(){E("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ccall")||(n.ccall=function(){E("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"cwrap")||(n.cwrap=function(){E("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setValue")||(n.setValue=function(){E("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getValue")||(n.getValue=function(){E("'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocate")||(n.allocate=function(){E("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ArrayToString")||(n.UTF8ArrayToString=function(){E("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF8ToString")||(n.UTF8ToString=function(){E("'UTF8ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8Array")||(n.stringToUTF8Array=function(){E("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF8")||(n.stringToUTF8=function(){E("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF8")||(n.lengthBytesUTF8=function(){E("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreRun")||(n.addOnPreRun=function(){E("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnInit")||(n.addOnInit=function(){E("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPreMain")||(n.addOnPreMain=function(){E("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnExit")||(n.addOnExit=function(){E("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addOnPostRun")||(n.addOnPostRun=function(){E("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeStringToMemory")||(n.writeStringToMemory=function(){E("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeArrayToMemory")||(n.writeArrayToMemory=function(){E("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeAsciiToMemory")||(n.writeAsciiToMemory=function(){E("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.addRunDependency=St,n.removeRunDependency=wr,Object.getOwnPropertyDescriptor(n,"FS_createFolder")||(n.FS_createFolder=function(){E("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createPath=f.createPath,n.FS_createDataFile=f.createDataFile,n.FS_createPreloadedFile=f.createPreloadedFile,n.FS_createLazyFile=f.createLazyFile,Object.getOwnPropertyDescriptor(n,"FS_createLink")||(n.FS_createLink=function(){E("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.FS_createDevice=f.createDevice,n.FS_unlink=f.unlink,Object.getOwnPropertyDescriptor(n,"getLEB")||(n.getLEB=function(){E("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFunctionTables")||(n.getFunctionTables=function(){E("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignFunctionTables")||(n.alignFunctionTables=function(){E("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFunctions")||(n.registerFunctions=function(){E("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"addFunction")||(n.addFunction=function(){E("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"removeFunction")||(n.removeFunction=function(){E("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"prettyPrint")||(n.prettyPrint=function(){E("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCompilerSetting")||(n.getCompilerSetting=function(){E("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"print")||(n.print=function(){E("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"printErr")||(n.printErr=function(){E("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTempRet0")||(n.getTempRet0=function(){E("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setTempRet0")||(n.setTempRet0=function(){E("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callMain")||(n.callMain=function(){E("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"abort")||(n.abort=function(){E("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"keepRuntimeAlive")||(n.keepRuntimeAlive=function(){E("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"zeroMemory")||(n.zeroMemory=function(){E("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToNewUTF8")||(n.stringToNewUTF8=function(){E("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setFileTime")||(n.setFileTime=function(){E("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscripten_realloc_buffer")||(n.emscripten_realloc_buffer=function(){E("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ENV")||(n.ENV=function(){E("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_CODES")||(n.ERRNO_CODES=function(){E("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ERRNO_MESSAGES")||(n.ERRNO_MESSAGES=function(){E("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setErrNo")||(n.setErrNo=function(){E("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton4")||(n.inetPton4=function(){E("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop4")||(n.inetNtop4=function(){E("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetPton6")||(n.inetPton6=function(){E("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"inetNtop6")||(n.inetNtop6=function(){E("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readSockaddr")||(n.readSockaddr=function(){E("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeSockaddr")||(n.writeSockaddr=function(){E("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"DNS")||(n.DNS=function(){E("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getHostByName")||(n.getHostByName=function(){E("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GAI_ERRNO_MESSAGES")||(n.GAI_ERRNO_MESSAGES=function(){E("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Protocols")||(n.Protocols=function(){E("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Sockets")||(n.Sockets=function(){E("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getRandomDevice")||(n.getRandomDevice=function(){E("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"traverseStack")||(n.traverseStack=function(){E("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UNWIND_CACHE")||(n.UNWIND_CACHE=function(){E("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"withBuiltinMalloc")||(n.withBuiltinMalloc=function(){E("'withBuiltinMalloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgsArray")||(n.readAsmConstArgsArray=function(){E("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readAsmConstArgs")||(n.readAsmConstArgs=function(){E("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mainThreadEM_ASM")||(n.mainThreadEM_ASM=function(){E("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_q")||(n.jstoi_q=function(){E("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jstoi_s")||(n.jstoi_s=function(){E("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getExecutableName")||(n.getExecutableName=function(){E("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"listenOnce")||(n.listenOnce=function(){E("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"autoResumeAudioContext")||(n.autoResumeAudioContext=function(){E("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCallLegacy")||(n.dynCallLegacy=function(){E("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getDynCaller")||(n.getDynCaller=function(){E("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"dynCall")||(n.dynCall=function(){E("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callRuntimeCallbacks")||(n.callRuntimeCallbacks=function(){E("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePush")||(n.runtimeKeepalivePush=function(){E("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runtimeKeepalivePop")||(n.runtimeKeepalivePop=function(){E("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"callUserCallback")||(n.callUserCallback=function(){E("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"maybeExit")||(n.maybeExit=function(){E("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"safeSetTimeout")||(n.safeSetTimeout=function(){E("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asmjsMangle")||(n.asmjsMangle=function(){E("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"asyncLoad")||(n.asyncLoad=function(){E("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"alignMemory")||(n.alignMemory=function(){E("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"mmapAlloc")||(n.mmapAlloc=function(){E("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reallyNegative")||(n.reallyNegative=function(){E("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unSign")||(n.unSign=function(){E("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"reSign")||(n.reSign=function(){E("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"formatString")||(n.formatString=function(){E("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH")||(n.PATH=function(){E("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PATH_FS")||(n.PATH_FS=function(){E("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SYSCALLS")||(n.SYSCALLS=function(){E("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMmap2")||(n.syscallMmap2=function(){E("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"syscallMunmap")||(n.syscallMunmap=function(){E("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketFromFD")||(n.getSocketFromFD=function(){E("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getSocketAddress")||(n.getSocketAddress=function(){E("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"JSEvents")||(n.JSEvents=function(){E("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerKeyEventCallback")||(n.registerKeyEventCallback=function(){E("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"specialHTMLTargets")||(n.specialHTMLTargets=function(){E("'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findEventTarget")||(n.findEventTarget=function(){E("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"findCanvasEventTarget")||(n.findCanvasEventTarget=function(){E("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBoundingClientRect")||(n.getBoundingClientRect=function(){E("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillMouseEventData")||(n.fillMouseEventData=function(){E("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerMouseEventCallback")||(n.registerMouseEventCallback=function(){E("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerWheelEventCallback")||(n.registerWheelEventCallback=function(){E("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerUiEventCallback")||(n.registerUiEventCallback=function(){E("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFocusEventCallback")||(n.registerFocusEventCallback=function(){E("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceOrientationEventData")||(n.fillDeviceOrientationEventData=function(){E("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceOrientationEventCallback")||(n.registerDeviceOrientationEventCallback=function(){E("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillDeviceMotionEventData")||(n.fillDeviceMotionEventData=function(){E("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerDeviceMotionEventCallback")||(n.registerDeviceMotionEventCallback=function(){E("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"screenOrientation")||(n.screenOrientation=function(){E("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillOrientationChangeEventData")||(n.fillOrientationChangeEventData=function(){E("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerOrientationChangeEventCallback")||(n.registerOrientationChangeEventCallback=function(){E("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillFullscreenChangeEventData")||(n.fillFullscreenChangeEventData=function(){E("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerFullscreenChangeEventCallback")||(n.registerFullscreenChangeEventCallback=function(){E("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerRestoreOldStyle")||(n.registerRestoreOldStyle=function(){E("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"hideEverythingExceptGivenElement")||(n.hideEverythingExceptGivenElement=function(){E("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreHiddenElements")||(n.restoreHiddenElements=function(){E("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setLetterbox")||(n.setLetterbox=function(){E("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"currentFullscreenStrategy")||(n.currentFullscreenStrategy=function(){E("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"restoreOldWindowedStyle")||(n.restoreOldWindowedStyle=function(){E("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"softFullscreenResizeWebGLRenderTarget")||(n.softFullscreenResizeWebGLRenderTarget=function(){E("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"doRequestFullscreen")||(n.doRequestFullscreen=function(){E("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillPointerlockChangeEventData")||(n.fillPointerlockChangeEventData=function(){E("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockChangeEventCallback")||(n.registerPointerlockChangeEventCallback=function(){E("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerPointerlockErrorEventCallback")||(n.registerPointerlockErrorEventCallback=function(){E("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requestPointerLock")||(n.requestPointerLock=function(){E("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillVisibilityChangeEventData")||(n.fillVisibilityChangeEventData=function(){E("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerVisibilityChangeEventCallback")||(n.registerVisibilityChangeEventCallback=function(){E("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerTouchEventCallback")||(n.registerTouchEventCallback=function(){E("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillGamepadEventData")||(n.fillGamepadEventData=function(){E("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerGamepadEventCallback")||(n.registerGamepadEventCallback=function(){E("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBeforeUnloadEventCallback")||(n.registerBeforeUnloadEventCallback=function(){E("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"fillBatteryEventData")||(n.fillBatteryEventData=function(){E("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"battery")||(n.battery=function(){E("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerBatteryEventCallback")||(n.registerBatteryEventCallback=function(){E("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setCanvasElementSize")||(n.setCanvasElementSize=function(){E("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getCanvasElementSize")||(n.getCanvasElementSize=function(){E("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"polyfillSetImmediate")||(n.polyfillSetImmediate=function(){E("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangle")||(n.demangle=function(){E("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"demangleAll")||(n.demangleAll=function(){E("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"jsStackTrace")||(n.jsStackTrace=function(){E("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackTrace")||(n.stackTrace=function(){E("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getEnvStrings")||(n.getEnvStrings=function(){E("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"checkWasiClock")||(n.checkWasiClock=function(){E("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64")||(n.writeI53ToI64=function(){E("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Clamped")||(n.writeI53ToI64Clamped=function(){E("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToI64Signaling")||(n.writeI53ToI64Signaling=function(){E("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Clamped")||(n.writeI53ToU64Clamped=function(){E("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeI53ToU64Signaling")||(n.writeI53ToU64Signaling=function(){E("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromI64")||(n.readI53FromI64=function(){E("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readI53FromU64")||(n.readI53FromU64=function(){E("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertI32PairToI53")||(n.convertI32PairToI53=function(){E("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"convertU32PairToI53")||(n.convertU32PairToI53=function(){E("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"uncaughtExceptionCount")||(n.uncaughtExceptionCount=function(){E("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionLast")||(n.exceptionLast=function(){E("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exceptionCaught")||(n.exceptionCaught=function(){E("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ExceptionInfo")||(n.ExceptionInfo=function(){E("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"CatchInfo")||(n.CatchInfo=function(){E("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_addRef")||(n.exception_addRef=function(){E("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exception_decRef")||(n.exception_decRef=function(){E("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"Browser")||(n.Browser=function(){E("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"funcWrappers")||(n.funcWrappers=function(){E("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getFuncWrapper")||(n.getFuncWrapper=function(){E("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setMainLoop")||(n.setMainLoop=function(){E("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"wget")||(n.wget=function(){E("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"FS")||(n.FS=function(){E("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"MEMFS")||(n.MEMFS=function(){E("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"TTY")||(n.TTY=function(){E("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PIPEFS")||(n.PIPEFS=function(){E("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SOCKFS")||(n.SOCKFS=function(){E("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"_setNetworkCallback")||(n._setNetworkCallback=function(){E("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tempFixedLengthArray")||(n.tempFixedLengthArray=function(){E("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"miniTempWebGLFloatBuffers")||(n.miniTempWebGLFloatBuffers=function(){E("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapObjectForWebGLType")||(n.heapObjectForWebGLType=function(){E("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heapAccessShiftForWebGLHeap")||(n.heapAccessShiftForWebGLHeap=function(){E("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.GL=O,Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGet")||(n.emscriptenWebGLGet=function(){E("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"computeUnpackAlignedImageSize")||(n.computeUnpackAlignedImageSize=function(){E("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetTexPixelData")||(n.emscriptenWebGLGetTexPixelData=function(){E("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetUniform")||(n.emscriptenWebGLGetUniform=function(){E("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetUniformLocation")||(n.webglGetUniformLocation=function(){E("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglPrepareUniformLocationsBeforeFirstUse")||(n.webglPrepareUniformLocationsBeforeFirstUse=function(){E("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"webglGetLeftBracePos")||(n.webglGetLeftBracePos=function(){E("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetVertexAttrib")||(n.emscriptenWebGLGetVertexAttrib=function(){E("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetBufferBinding")||(n.emscriptenWebGLGetBufferBinding=function(){E("'emscriptenWebGLGetBufferBinding' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLValidateMapBufferTarget")||(n.emscriptenWebGLValidateMapBufferTarget=function(){E("'emscriptenWebGLValidateMapBufferTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"writeGLArray")||(n.writeGLArray=function(){E("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AL")||(n.AL=function(){E("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_unicode")||(n.SDL_unicode=function(){E("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_ttfContext")||(n.SDL_ttfContext=function(){E("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_audio")||(n.SDL_audio=function(){E("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL")||(n.SDL=function(){E("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"SDL_gfx")||(n.SDL_gfx=function(){E("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLUT")||(n.GLUT=function(){E("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"EGL")||(n.EGL=function(){E("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW_Window")||(n.GLFW_Window=function(){E("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLFW")||(n.GLFW=function(){E("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"GLEW")||(n.GLEW=function(){E("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"IDBStore")||(n.IDBStore=function(){E("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runAndAbortIfError")||(n.runAndAbortIfError=function(){E("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_handle_array")||(n.emval_handle_array=function(){E("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_free_list")||(n.emval_free_list=function(){E("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_symbols")||(n.emval_symbols=function(){E("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_emval")||(n.init_emval=function(){E("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"count_emval_handles")||(n.count_emval_handles=function(){E("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"get_first_emval")||(n.get_first_emval=function(){E("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getStringOrSymbol")||(n.getStringOrSymbol=function(){E("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireHandle")||(n.requireHandle=function(){E("'requireHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_newers")||(n.emval_newers=function(){E("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftEmvalAllocator")||(n.craftEmvalAllocator=function(){E("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_get_global")||(n.emval_get_global=function(){E("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emval_methodCallers")||(n.emval_methodCallers=function(){E("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"InternalError")||(n.InternalError=function(){E("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"BindingError")||(n.BindingError=function(){E("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UnboundTypeError")||(n.UnboundTypeError=function(){E("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"PureVirtualError")||(n.PureVirtualError=function(){E("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_embind")||(n.init_embind=function(){E("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInternalError")||(n.throwInternalError=function(){E("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwBindingError")||(n.throwBindingError=function(){E("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwUnboundTypeError")||(n.throwUnboundTypeError=function(){E("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ensureOverloadTable")||(n.ensureOverloadTable=function(){E("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"exposePublicSymbol")||(n.exposePublicSymbol=function(){E("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"replacePublicSymbol")||(n.replacePublicSymbol=function(){E("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"extendError")||(n.extendError=function(){E("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"createNamedFunction")||(n.createNamedFunction=function(){E("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredInstances")||(n.registeredInstances=function(){E("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getBasestPointer")||(n.getBasestPointer=function(){E("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerInheritedInstance")||(n.registerInheritedInstance=function(){E("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"unregisterInheritedInstance")||(n.unregisterInheritedInstance=function(){E("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstance")||(n.getInheritedInstance=function(){E("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getInheritedInstanceCount")||(n.getInheritedInstanceCount=function(){E("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getLiveInheritedInstances")||(n.getLiveInheritedInstances=function(){E("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredTypes")||(n.registeredTypes=function(){E("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"awaitingDependencies")||(n.awaitingDependencies=function(){E("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"typeDependencies")||(n.typeDependencies=function(){E("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registeredPointers")||(n.registeredPointers=function(){E("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"registerType")||(n.registerType=function(){E("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"whenDependentTypesAreResolved")||(n.whenDependentTypesAreResolved=function(){E("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_charCodes")||(n.embind_charCodes=function(){E("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind_init_charCodes")||(n.embind_init_charCodes=function(){E("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"readLatin1String")||(n.readLatin1String=function(){E("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getTypeName")||(n.getTypeName=function(){E("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"heap32VectorToArray")||(n.heap32VectorToArray=function(){E("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"requireRegisteredType")||(n.requireRegisteredType=function(){E("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"getShiftFromSize")||(n.getShiftFromSize=function(){E("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"integerReadValueFromPointer")||(n.integerReadValueFromPointer=function(){E("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"enumReadValueFromPointer")||(n.enumReadValueFromPointer=function(){E("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"floatReadValueFromPointer")||(n.floatReadValueFromPointer=function(){E("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"simpleReadValueFromPointer")||(n.simpleReadValueFromPointer=function(){E("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructors")||(n.runDestructors=function(){E("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"new_")||(n.new_=function(){E("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"craftInvokerFunction")||(n.craftInvokerFunction=function(){E("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"embind__requireFunction")||(n.embind__requireFunction=function(){E("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"tupleRegistrations")||(n.tupleRegistrations=function(){E("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"structRegistrations")||(n.structRegistrations=function(){E("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"genericPointerToWireType")||(n.genericPointerToWireType=function(){E("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"constNoSmartPtrRawPointerToWireType")||(n.constNoSmartPtrRawPointerToWireType=function(){E("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"nonConstNoSmartPtrRawPointerToWireType")||(n.nonConstNoSmartPtrRawPointerToWireType=function(){E("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_RegisteredPointer")||(n.init_RegisteredPointer=function(){E("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer")||(n.RegisteredPointer=function(){E("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_getPointee")||(n.RegisteredPointer_getPointee=function(){E("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_destructor")||(n.RegisteredPointer_destructor=function(){E("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_deleteObject")||(n.RegisteredPointer_deleteObject=function(){E("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredPointer_fromWireType")||(n.RegisteredPointer_fromWireType=function(){E("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"runDestructor")||(n.runDestructor=function(){E("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"releaseClassHandle")||(n.releaseClassHandle=function(){E("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"finalizationGroup")||(n.finalizationGroup=function(){E("'finalizationGroup' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer_deps")||(n.detachFinalizer_deps=function(){E("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"detachFinalizer")||(n.detachFinalizer=function(){E("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"attachFinalizer")||(n.attachFinalizer=function(){E("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeClassHandle")||(n.makeClassHandle=function(){E("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"init_ClassHandle")||(n.init_ClassHandle=function(){E("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle")||(n.ClassHandle=function(){E("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isAliasOf")||(n.ClassHandle_isAliasOf=function(){E("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"throwInstanceAlreadyDeleted")||(n.throwInstanceAlreadyDeleted=function(){E("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_clone")||(n.ClassHandle_clone=function(){E("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_delete")||(n.ClassHandle_delete=function(){E("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"deletionQueue")||(n.deletionQueue=function(){E("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_isDeleted")||(n.ClassHandle_isDeleted=function(){E("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"ClassHandle_deleteLater")||(n.ClassHandle_deleteLater=function(){E("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"flushPendingDeletes")||(n.flushPendingDeletes=function(){E("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"delayFunction")||(n.delayFunction=function(){E("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"setDelayFunction")||(n.setDelayFunction=function(){E("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"RegisteredClass")||(n.RegisteredClass=function(){E("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"shallowCopyInternalPointer")||(n.shallowCopyInternalPointer=function(){E("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"downcastPointer")||(n.downcastPointer=function(){E("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"upcastPointer")||(n.upcastPointer=function(){E("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"validateThis")||(n.validateThis=function(){E("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_0")||(n.char_0=function(){E("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"char_9")||(n.char_9=function(){E("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"makeLegalFunctionName")||(n.makeLegalFunctionName=function(){E("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"emscriptenWebGLGetIndexed")||(n.emscriptenWebGLGetIndexed=function(){E("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"warnOnce")||(n.warnOnce=function(){E("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackSave")||(n.stackSave=function(){E("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackRestore")||(n.stackRestore=function(){E("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stackAlloc")||(n.stackAlloc=function(){E("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"AsciiToString")||(n.AsciiToString=function(){E("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToAscii")||(n.stringToAscii=function(){E("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF16ToString")||(n.UTF16ToString=function(){E("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF16")||(n.stringToUTF16=function(){E("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF16")||(n.lengthBytesUTF16=function(){E("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"UTF32ToString")||(n.UTF32ToString=function(){E("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"stringToUTF32")||(n.stringToUTF32=function(){E("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"lengthBytesUTF32")||(n.lengthBytesUTF32=function(){E("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8")||(n.allocateUTF8=function(){E("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(n,"allocateUTF8OnStack")||(n.allocateUTF8OnStack=function(){E("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),n.writeStackCookie=Ur,n.checkStackCookie=V,Object.getOwnPropertyDescriptor(n,"ALLOC_NORMAL")||Object.defineProperty(n,"ALLOC_NORMAL",{configurable:!0,get:function(){E("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(n,"ALLOC_STACK")||Object.defineProperty(n,"ALLOC_STACK",{configurable:!0,get:function(){E("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var wi;function hn(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}lt=function i(){wi||co(),wi||(lt=i)};function Ao(){so(),Ur()}function co(i){if(i=i||ot,Yt>0||(Ao(),Qi(),Yt>0))return;function e(){wi||(wi=!0,n.calledRun=!0,!jt&&(Ct(),Ee(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),W(!n._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Pi()))}n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),e()},1)):e(),V()}n.run=co;function uo(){var i=Ke,e=ge,t=!1;Ke=ge=function(o){t=!0};try{var r=n._fflush;r&&r(0),["stdout","stderr"].forEach(function(o){var a=f.analyzePath("/dev/"+o);if(a){var s=a.object,A=s.rdev,c=Pe.ttys[A];c&&c.output&&c.output.length&&(t=!0)}})}catch(o){}Ke=i,ge=e,t&&Re("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.")}function rc(i,e){if(Pt=i,uo(),Ot()){if(!e){var t="program exited (with status: "+i+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";N(t),ge(t)}}else Gt();No(i)}function No(i){Pt=i,Ot()||(n.onExit&&n.onExit(i),jt=!0),$e(i,new hn(i))}if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return co(),x.ready}}(),bc=Ou;var Bu=(()=>{var x;var J=typeof document!="undefined"?(x=document.currentScript)==null?void 0:x.src:void 0;return function(n={}){var Ee,N=Object.assign({},n),Ue,we,ot=new Promise((_,g)=>{Ue=_,we=g}),ht=!0,$e=!1,Ye=Object.assign({},N),Ve=[],It="./this.program",bi=(_,g)=>{throw g},Te="",Oi,Rr,er;(ht||$e)&&($e?Te=self.location.href:typeof document!="undefined"&&document.currentScript&&(Te=document.currentScript.src),J&&(Te=J),Te.startsWith("blob:")?Te="":Te=Te.substr(0,Te.replace(/[?#].*/,"").lastIndexOf("/")+1),Oi=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.send(null),g.responseText},$e&&(er=_=>{var g=new XMLHttpRequest;return g.open("GET",_,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}),Rr=(_,g,C)=>{var B=new XMLHttpRequest;B.open("GET",_,!0),B.responseType="arraybuffer",B.onload=()=>{if(B.status==200||B.status==0&&B.response){g(B.response);return}C()},B.onerror=C,B.send(null)});var nn=N.print||console.log.bind(console),In=N.printErr||console.error.bind(console);Object.assign(N,Ye),Ye=null,N.arguments&&(Ve=N.arguments),N.thisProgram&&(It=N.thisProgram),N.quit&&(bi=N.quit);var Ke;N.wasmBinary&&(Ke=N.wasmBinary);function ge(_){for(var g=atob(_),C=new Uint8Array(g.length),B=0;B<g.length;++B)C[B]=g.charCodeAt(B);return C}function Re(_){if(vi(_))return ge(_.slice(Yn.length))}var pe,tt=!1,Ir,Ut,Xe,mr,mt,Cr,he,Hn,xt;function jt(){var _=pe.buffer;N.HEAP8=Ut=new Int8Array(_),N.HEAP16=mr=new Int16Array(_),N.HEAPU8=Xe=new Uint8Array(_),N.HEAPU16=mt=new Uint16Array(_),N.HEAP32=Cr=new Int32Array(_),N.HEAPU32=he=new Uint32Array(_),N.HEAPF32=Hn=new Float32Array(_),N.HEAPF64=xt=new Float64Array(_)}var Pt=[],W=[],Sr=[],z=!1;function lo(){if(N.preRun)for(typeof N.preRun=="function"&&(N.preRun=[N.preRun]);N.preRun.length;)at(N.preRun.shift());ve(Pt)}function Bi(){z=!0,ve(W)}function Mr(){if(N.postRun)for(typeof N.postRun=="function"&&(N.postRun=[N.postRun]);N.postRun.length;)Je(N.postRun.shift());ve(Sr)}function at(_){Pt.unshift(_)}function Rt(_){W.unshift(_)}function Je(_){Sr.unshift(_)}var Ze=0,tr=null,bt=null;function Gn(_){var g;Ze++,(g=N.monitorRunDependencies)==null||g.call(N,Ze)}function Ti(_){var C;if(Ze--,(C=N.monitorRunDependencies)==null||C.call(N,Ze),Ze==0&&(tr!==null&&(clearInterval(tr),tr=null),bt)){var g=bt;bt=null,g()}}function mn(_){var C;(C=N.onAbort)==null||C.call(N,_),_="Aborted("+_+")",In(_),tt=!0,Ir=1,_+=". Build with -sASSERTIONS for more info.";var g=new WebAssembly.RuntimeError(_);throw we(g),g}var Yn="data:application/octet-stream;base64,",vi=_=>_.startsWith(Yn);function Cn(){var _="data:application/octet-stream;base64,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BSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgASACIANrIgNBgAIgA0GAAkkiARsQIxogAUUEQANAIAAgBUGAAhAcIANBgAJrIgNB/wFLDQALCyAAIAUgAxAcCyAFQYACaiQAC+UDAQV/IwBBEGsiAyQAIAMgACgCACIEQQhrKAIAIgI2AgwgAyAAIAJqNgIEIAMgBEEEaygCADYCCCADKAIIIgQgAUEAEB0hAiADKAIEIQUCQCACBEAgAygCDCEAIwBBQGoiASQAIAFBQGskAEEAIAUgABshAgwBCyMAQUBqIgIkACAAIAVOBEAgAkIANwIcIAJCADcCJCACQgA3AiwgAkIANwIUIAJBADYCECACIAE2AgwgAiAENgIEIAJBADYCPCACQoGAgICAgICAATcCNCACIAA2AgggBCACQQRqIAUgBUEBQQAgBCgCACgCFBEJACAAQQAgAigCHBshBgsgAkFAayQAIAYiAg0AIwBBQGoiAiQAIAJBADYCECACQezIADYCDCACIAA2AgggAiABNgIEQQAhACACQRRqQQBBJxAjGiACQQA2AjwgAkEBOgA7IAQgAkEEaiAFQQFBACAEKAIAKAIYEQgAAkACQAJAIAIoAigOAgABAgsgAigCGEEAIAIoAiRBAUYbQQAgAigCIEEBRhtBACACKAIsQQFGGyEADAELIAIoAhxBAUcEQCACKAIsDQEgAigCIEEBRw0BIAIoAiRBAUcNAQsgAigCFCEACyACQUBrJAAgACECCyADQRBqJAAgAgu0AQEFfyMAQRBrIgYkACAGQQRqIgIQQSMAQRBrIgUkAAJ/IAItAAtBB3YEQCACKAIEDAELIAItAAtB/wBxCyEEA0ACQAJ/IAItAAtBB3YEQCACKAIADAELIAILIQMgBSABOQMAIAICfyADIARBAWogBRBHIgNBAE4EQCADIARNDQIgAwwBCyAEQQF0QQFyCyIEECwMAQsLIAIgAxAsIAAgAhBAIAVBEGokACACEEQgBkEQaiQAC4AEAQN/IAJBgARPBEAgACABIAIQESAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsLACABIAIgABBFGgvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsSACABQQF0QYDHAGpBAiAAEEULBQAQaQALiAECAX4FfwJAIABCgICAgBBUBEAgACECDAELA0AgAUEBayIBIAAgAEIKgCICQgp+fadBMHI6AAAgAEL/////nwFWIQYgAiEAIAYNAAsLIAJCAFIEQCACpyEDA0AgAUEBayIBIAMgA0EKbiIEQQps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IAAoAghBgICAgHhyNgIIIARBEGokAAwBCxAlAAsgACABNgIECyABAn8gAC0AC0EHdgRAIAAoAgAMAQsgAAsiAmogBRBDIAAgASAFaiIAEDAgBkEAOgAPIAAgAmogBi0ADzoAAAsgBkEQaiQADwsCfyAALQALQQd2BEAgACgCAAwBCyAACyEEIwBBEGsiAiQAAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0ACwsaIAAgARAwIAJBADoADyABIARqIAItAA86AAAgAkEQaiQACz0BAX8jAEEQayICJAAgAkEAOgAPA0AgAQRAIAAgAi0ADzoAACABQQFrIQEgAEEBaiEADAELCyACQRBqJAALGgAgAC0AC0EHdgRAIAAoAggaIAAoAgAQGAsL5gEBBX8jAEEQayIFJAAjAEEgayIDJAAjAEEQayIEJAAgBCAANgIMIAQgACABajYCCCADIAQoAgw2AhggAyAEKAIINgIcIARBEGokACADKAIYIQQgAygCHCEGIwBBEGsiASQAIAEgBjYCDCACIAQgBiAEayIEEDUgASACIARqNgIIIAMgASgCDDYCECADIAEoAgg2AhQgAUEQaiQAIAMgACADKAIQIABrajYCDCADIAIgAygCFCACa2o2AgggBSADKAIMNgIIIAUgAygCCDYCDCADQSBqJAAgBSgCDCEHIAVBEGokACAHC/MCAQV/IwBBEGsiByQAIAIgAUF/c0H3////B2pNBEACfyAALQALQQd2BEAgACgCAAwBCyAACyEIIAdBBGoiCSABQfP///8DSQR/IAcgAUEBdDYCDCAHIAEgAmo2AgQjAEEQayICJAAgCSgCACAHQQxqIgooAgBJIQsgAkEQaiQAIAogCSALGygCACICQQtPBH8gAkEIakF4cSICIAJBAWsiAiACQQtGGwVBCgtBAWoFQff///8HCxAvIAcoAgQhAiAHKAIIGiAEBEAgAiAIIAQQIgsgBQRAIAIgBGogBiAFECILIAMgBGshBiADIARHBEAgAiAEaiAFaiAEIAhqIAYQIgsgAUEKRwRAIAgQGAsgACACNgIAIAAgACgCCEGAgICAeHEgBygCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAVqIAZqIgA2AgQgB0EAOgAMIAAgAmogBy0ADDoAACAHQRBqJAAPCxAlAAvHAwEFfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIAMgACADQZ4BaiABGyIENgKUASADIAFBAWsiAEEAIAAgAU0bNgKYASADQQBBkAEQIyIAQX82AkwgAEEbNgIkIABBfzYCUCAAIABBnwFqNgIsIAAgAEGUAWo2AlQgBEEAOgAAQQAhAyMAQdABayIBJAAgASACNgLMASABQaABaiICQQBBKBAjGiABIAEoAswBNgLIAQJAQQAgAUHIAWogAUHQAGogAhBMQQBIBEBBfyECDAELIAAoAkxBAEghByAAIAAoAgAiBkFfcTYCAAJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQMgACABNgIsDAELIAAoAhANAQtBfyAAEE8NARoLIAAgAUHIAWogAUHQAGogAUGgAWoQTAshAiADBEAgAEEAQQAgACgCJBEDABogAEEANgIwIAAgAzYCLCAAQQA2AhwgACgCFCEDIABCADcDECACQX8gAxshAgsgACAAKAIAIgMgBkEgcXI2AgBBfyACIANBIHEbIQIgBw0ACyABQdABaiQAIABBoAFqJAAgBUEQaiQAIAILngUCBn4EfyABIAEoAgBBB2pBeHEiAUEQajYCACAAIQsgASkDACEDIAEpAwghByMAQSBrIggkACAHQv///////z+DIQQCfiAHQjCIQv//AYMiBaciCkGB+ABrQf0PTQRAIARCBIYgA0I8iIQhAiAKQYD4AGutIQUCQCADQv//////////D4MiA0KBgICAgICAgAhaBEAgAkIBfCECDAELIANCgICAgICAgIAIUg0AIAJCAYMgAnwhAgtCACACIAJC/////////wdWIgAbIQIgAK0gBXwMAQsCQCADIASEUA0AIAVC//8BUg0AIARCBIYgA0I8iIRCgICAgICAgASEIQJC/w8MAQtC/w8gCkH+hwFLDQAaQgBBgPgAQYH4ACAFUCIBGyIAIAprIglB8ABKDQAaIAMhAiAEIARCgICAgICAwACEIAEbIgYhBAJAQYABIAlrIgFBwABxBEAgAyABQUBqrYYhBEIAIQIMAQsgAUUNACAEIAGtIgWGIAJBwAAgAWutiIQhBCACIAWGIQILIAggAjcDECAIIAQ3AxgCQCAJQcAAcQRAIAYgCUFAaq2IIQNCACEGDAELIAlF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AgQgAEHM0AA2AgAgAkEQaiQAC2ACAX8BfCMAQRBrIgIkACACQQA2AgwgASgCBEGszAAgAkEMahAJIQMgAigCDCIBBEAgARABCyAAAn8gA5lEAAAAAAAA4EFjBEAgA6oMAQtBgICAgHgLNgI8IAJBEGokAAs3AQF/IwBBEGsiAiQAIAIgASgCPDYCCCAAQazMACACQQhqEAg2AgQgAEHM0AA2AgAgAkEQaiQACwvGRhAAQYAIC5Qic2V0QmVhdXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAdWludDY0X3QAYmx1clJhZGl1cwB2ZWN0b3IAbWlycm9yAGF0dGFjaFNoYWRlcgBkZWxldGVTaGFkZXIAY3JlYXRlU2hhZGVyAGNvbXBpbGVTaGFkZXIAdW5zaWduZWQgY2hhcgBzdGQ6OmV4Y2VwdGlvbgBuYW4AbGlua1Byb2dyYW0AZGVsZXRlUHJvZ3JhbQBjcmVhdGVQcm9ncmFtAGJvb2wAc2V0V2F0ZXJNYXJrAHN0b3BXYXRlck1hcmsAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlZgBjbG9zZQBkb3VibGUAdmJNb2RlAHNoYWRlclNvdXJjZQB2b2lkAHNhbXBsZUNvbG9yICs9IHRleHR1cmUoZnJhbWUsIGJsdXJDb29yZGluYXRlc1sATkFOAElORgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgc2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgaW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxmbG9hdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDY0X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQzMl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBjaGFyPgBzdGQ6OmJhc2ljX3N0cmluZzx1bnNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZG91YmxlPgB2ZWMyIGMgPSB2X3RleENvb3JkOwB2ZWMyIGMgPSB2ZWMyKDEuMCAtIHZfdGV4Q29vcmQueCwgdl90ZXhDb29yZC55KTsAQWxsSW4xAC4ALjAsAC4wKSpvKSoAKG51bGwpACkqby55KTsgICAgdmVjMiBjb29yZDIgPSB2ZWMyKGZsb2F0KAAgICAgYyA9IHZlYzIodl90ZXhDb29yZC54LCAxLjAgLSB2X3RleENvb3JkLnkpOyAgICB2ZWMyIGNvb3JkMSA9IHZlYzIoZmxvYXQoACksIChjLnkgLWNvb3JkMS55KSAvIG8ueSAvIGZsb2F0KAApKm8ueSk7ICAgIGlmIChjLnggPiBjb29yZDEueCAmJiBjLnggPCBjb29yZDIueCAmJiBjLnkgPiBjb29yZDEueSAmJiBjLnkgPCBjb29yZDIueSkgeyAgICAgIHZlYzQgd2F0ZXJDb2xvciA9IHRleHR1cmUod2F0ZXJNYXJrLCB2ZWMyKChjLnggLSBjb29yZDEueCkgIC8gby54IC8gZmxvYXQoACkgKiBvLngsIGZsb2F0KAApOyAgICAgdmVjMyBzbW9vdGhDb2xvciA9IG91dENvbG9yLnJnYiArIChvdXRDb2xvci5yZ2ItdmVjMyhoaWdoUGFzcykpKmFscGhhKjAuMTsgICAgIHNtb290aENvbG9yID0gY2xhbXAocG93KHNtb290aENvbG9yLCB2ZWMzKAApOyAgICBuZXdDb2xvci5yZ2IgPSB2ZWMzKG5ld0NvbG9yLnJnYiArIHZlYzMoAGcrPUcoYyx2ZWMyKAAgICAgdmVjMiBvZmZzZXQgPSB2ZWMyKABdID0gdl90ZXhDb29yZC54eSArIG9mZnNldCAqIHZlYzIoADsgACkpLCB2ZWMzKDAuMCksIHZlYzMoMS4wKSk7ICAgIHZlYzMgc2NyZWVuID0gdmVjMygxLjApIC0gKHZlYzMoMS4wKS1zbW9vdGhDb2xvcikgKiAodmVjMygxLjApLW91dENvbG9yLnJnYik7ICAgICB2ZWMzIGxpZ2h0ZW4gPSBtYXgoc21vb3RoQ29sb3IsIG91dENvbG9yLnJnYik7ICAgICB2ZWMzIHNvZnRMaWdodCA9IDIuMCAqIG91dENvbG9yLnJnYipzbW9vdGhDb2xvciArIG91dENvbG9yLnJnYipvdXRDb2xvci5yZ2IgLSAyLjAgKiBvdXRDb2xvci5yZ2Iqb3V0Q29sb3IucmdiICogc21vb3RoQ29sb3I7ICAgICB2ZWM0IG5ld0NvbG9yID0gb3V0Q29sb3I7ICAgICBuZXdDb2xvci5yZ2IgPSBtaXgobWl4KG1peChuZXdDb2xvci5yZ2IsIHNjcmVlbiwgYWxwaGEpLCBsaWdodGVuLCBhbHBoYSksIHNvZnRMaWdodCwgACk7ICAgIGNvbnN0IG1hdDMgc2F0dXJhdGVNYXRyaXggPSBtYXQzKDEuMTEwMiwtMC4wNTk4LC0wLjA2MSwtMC4wNzc0LDEuMDgyNiwtMC4xMTg2LC0wLjAyMjgsLTAuMDIyOCwxLjE3NzIpOyAgICB2ZWMzIHNhdENvbG9yID0gbmV3Q29sb3IucmdiICogc2F0dXJhdGVNYXRyaXg7ICAgIG5ld0NvbG9yLnJnYiA9IG1peChuZXdDb2xvci5yZ2IsIHNhdENvbG9yLCAAICAgIHNhbXBsZUNvbG9yID0gc2FtcGxlQ29sb3IgLyA2Mi4wOyAgICAgZmxvYXQgaGlnaFBhc3MgPSBvdXRDb2xvci5nIC0gc2FtcGxlQ29sb3IgKyAwLjU7ICAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7ICAgICAgIGlmIChoaWdoUGFzcyA8PSAwLjUpIHsgICAgICAgICBoaWdoUGFzcyA9IGhpZ2hQYXNzICogaGlnaFBhc3MgKiAyLjA7ICAgICAgIH0gZWxzZSB7ICAgICAgICAgaGlnaFBhc3MgPSAxLjAgLSAoKDEuMCAtIGhpZ2hQYXNzKSooMS4wIC0gaGlnaFBhc3MpICogMi4wKTsgICAgICAgfSAgICAgfSAgICAgY29uc3QgaGlnaHAgdmVjMyBXID0gdmVjMygwLjI5OSwwLjU4NywwLjExNCk7ICAgIGZsb2F0IGx1bWluYW5jZSA9IGRvdChvdXRDb2xvci5yZ2IsIFcpOyAgICAgZmxvYXQgYWxwaGEgPSBwb3cobHVtaW5hbmNlLCAAXSkuZyAqIAApKTsgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3IsIG5ld0NvbG9yLCAxLjApOyAgIAApKSk7ICAgICAgb3V0Q29sb3IgPSBtaXgob3V0Q29sb3Isd2F0ZXJDb2xvciwgIHdhdGVyQ29sb3IuYSk7ICAgIH0gICAgACk7ICAgIHZlYzIgYmx1ckNvb3JkaW5hdGVzWzI0XTsgICAgACAgICBmbG9hdCBzYW1wbGVDb2xvciA9IG91dENvbG9yLmcgKiAyMi4wOyAgICAgACN2ZXJzaW9uIDMwMCBlcwogICAgcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwogICAgdW5pZm9ybSBzYW1wbGVyMkQgZnJhbWU7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBtYXNrOwogICAgdW5pZm9ybSBzYW1wbGVyMkQgYmc7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCB3YXRlck1hcms7CiAgICB1bmlmb3JtIHNhbXBsZXIyRCBsYXN0TWFzazsKICAgIGluIHZlYzIgdl90ZXhDb29yZDsKICAgIG91dCB2ZWM0IG91dENvbG9yOwogICAgdmVjNCBHKHZlYzIgYyx2ZWMyIHMpewogICAgICByZXR1cm4gdGV4dHVyZShmcmFtZSx0ZXh0dXJlKG1hc2ssYytzKS5hPjAuMz9jOmMrcyk7CiAgICB9CiAgICB2b2lkIG1haW4oKSB7CiAgICAgIAAKICAgIHZlYzQgZyA9IHZlYzQoMC4wKTsKICAgIAAKICAgICAgYy55ID0gMS4wIC0gYy55OwogICAgICB2ZWM0IHNyY19jb2xvciA9IHRleHR1cmUoZnJhbWUsIGMpOwogICAgICBmbG9hdCBhID0gdGV4dHVyZShtYXNrLCBjKS5hOwogICAgICBhID0gYTwwLjU/Mi4wKmEqYToxLjAtMi4wKigxLjAtYSkqKDEuMC1hKTsKICAgICAgLy8gZmxvYXQgYTIgPSB0ZXh0dXJlKGxhc3RNYXNrLCBjKS5hOwogICAgICAvLyBhMiA9IGEyPDAuNT8yLjAqYTIqYTI6MS4wLTIuMCooMS4wLWEyKSooMS4wLWEyKTsKICAgICAgLy8gZmxvYXQgZGVsdGEgPSBhIC0gYTI7CiAgICAgIC8vIGlmIChkZWx0YSA8IDAuMjUgJiYgZGVsdGEgPiAtMC4yNSkKICAgICAgLy8gewogICAgICAvLyAgICAgYSA9IGEgKyAwLjUqZGVsdGE7CiAgICAgIC8vIH0KICAgICAgCiAgICAgIHZlYzIgbyA9IDEuMCAvIHZlYzIodGV4dHVyZVNpemUoZnJhbWUsIDApKTsKICAgIAAKICAgICAgb3V0Q29sb3IgPSBnOwogIAAjdmVyc2lvbiAzMDAgZXMKaW4gdmVjMiBhX3Bvc2l0aW9uOwppbiB2ZWMyIGFfdGV4Q29vcmQ7Cm91dCB2ZWMyIHZfdGV4Q29vcmQ7CnZvaWQgbWFpbigpIHsKICBnbF9Qb3NpdGlvbiA9IHZlYzQoYV9wb3NpdGlvbi54LCBhX3Bvc2l0aW9uLnksIDAsIDEpOwogIHZfdGV4Q29vcmQgPSBhX3RleENvb3JkOwp9CgBvdXRDb2xvciA9IHNyY19jb2xvcjsKAG91dENvbG9yID0gbWl4KHRleHR1cmUoYmcsIGMpLHNyY19jb2xvcixhKTsKAG91dENvbG9yID0gbWl4KHZlYzQoMC4wLDEuMCwwLjAsMS4wKSxzcmNfY29sb3IsYSk7CgA2QWxsSW4xAJAmAABwFAAAUDZBbGxJbjEAAAAAFCcAAIAUAAAAAAAAeBQAAFBLNkFsbEluMQAAABQnAACcFAAAAQAAAHgUAABwcAB2AHZwAIwUAADcFAAATjEwZW1zY3JpcHRlbjN2YWxFAACQJgAAyBQAAHBwcAB2cHBwAAAAAMwlAACMFAAAgCYAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkZABBoCoLyAjMJQAAjBQAAIAmAACAJgAAgCYAAIAmAAB2cHBkZGRkAMwlAACMFAAAdnBwAMwlAADcFAAA3BQAAIwUAADcFAAALCYAAMwlAADcFAAAsBUAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAACQJgAAcBUAANwUAADMJQAA3BQAANwUAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAkCYAAMgVAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAkCYAABAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAJAmAABYFgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACQJgAApBYAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAkCYAAPAWAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAJAmAAAYFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACQJgAAQBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAkCYAAGgXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAJAmAACQFwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACQJgAAuBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAkCYAAOAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAJAmAAAIGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACQJgAAMBgAAE4xMGVtc2NyaXB0ZW4x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";return _}var Fr;function yn(_){if(_==Fr&&Ke)return new Uint8Array(Ke);var g=Re(_);if(g)return g;if(er)return er(_);throw"both async and sync fetching of the wasm failed"}function Xn(_){return Promise.resolve().then(()=>yn(_))}function kr(_,g,C){return Xn(_).then(B=>WebAssembly.instantiate(B,g)).then(C,B=>{In(`failed to asynchronously prepare wasm: ${B}`),mn(B)})}function xe(_,g,C,B){return kr(g,C,B)}function Se(){return{a:ln}}function be(){var _=Se();function g(B,F){return gt=B.exports,pe=gt.y,jt(),Br=gt.B,Rt(gt.z),Ti("wasm-instantiate"),gt}Gn("wasm-instantiate");function C(B){g(B.instance)}if(N.instantiateWasm)try{return N.instantiateWasm(_,g)}catch(B){In(`Module.instantiateWasm callback failed with error: ${B}`),we(B)}return Fr||(Fr=Cn()),xe(Ke,Fr,_,C).catch(we),{}}var ve=_=>{for(;_.length>0;)_.shift()(N)},T=N.noExitRuntime||!0;class Oe{constructor(g){this.excPtr=g,this.ptr=g-24}set_type(g){he[this.ptr+4>>2]=g}get_type(){return he[this.ptr+4>>2]}set_destructor(g){he[this.ptr+8>>2]=g}get_destructor(){return he[this.ptr+8>>2]}set_caught(g){g=g?1:0,Ut[this.ptr+12]=g}get_caught(){return Ut[this.ptr+12]!=0}set_rethrown(g){g=g?1:0,Ut[this.ptr+13]=g}get_rethrown(){return Ut[this.ptr+13]!=0}init(g,C){this.set_adjusted_ptr(0),this.set_type(g),this.set_destructor(C)}set_adjusted_ptr(g){he[this.ptr+16>>2]=g}get_adjusted_ptr(){return he[this.ptr+16>>2]}get_exception_ptr(){var g=Kt(this.get_type());if(g)return he[this.excPtr>>2];var C=this.get_adjusted_ptr();return C!==0?C:this.excPtr}}var b=0,Qe=0,ze=(_,g,C)=>{var B=new Oe(_);throw B.init(g,C),b=_,Qe++,b},Nr=()=>{mn("")},on=(_,g,C,B,F)=>{},K=()=>{for(var _=new Array(256),g=0;g<256;++g)_[g]=String.fromCharCode(g);Ur=_},Ur,V=_=>{for(var g="",C=_;Xe[C];)g+=Ur[Xe[C++]];return g},Lt={},st={},xr={},Ht,de=_=>{throw new Ht(_)},an,yr=_=>{throw new an(_)},Ot=(_,g,C)=>{_.forEach(function(L){xr[L]=g});function B(L){var q=C(L);q.length!==_.length&&yr("Mismatched type converter count");for(var ee=0;ee<_.length;++ee)Ct(_[ee],q[ee])}var F=new Array(g.length),H=[],X=0;g.forEach((L,q)=>{st.hasOwnProperty(L)?F[q]=st[L]:(H.push(L),Lt.hasOwnProperty(L)||(Lt[L]=[]),Lt[L].push(()=>{F[q]=st[L],++X,X===H.length&&B(F)}))}),H.length===0&&B(F)};function Qi(_,g,C={}){var B=g.name;if(_||de(`type "${B}" must have a positive integer typeid pointer`),st.hasOwnProperty(_)){if(C.ignoreDuplicateRegistrations)return;de(`Cannot register type '${B}' twice`)}if(st[_]=g,delete xr[_],Lt.hasOwnProperty(_)){var F=Lt[_];delete Lt[_],F.forEach(H=>H())}}function Ct(_,g,C={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Qi(_,g,C)}var Gt=8,Pi=(_,g,C,B)=>{g=V(g),Ct(_,{name:g,fromWireType:function(F){return!!F},toWireType:function(F,H){return H?C:B},argPackAdvance:Gt,readValueFromPointer:function(F){return this.fromWireType(Xe[F])},destructorFunction:null})},Ri=_=>({count:_.count,deleteScheduled:_.deleteScheduled,preservePointerOnDelete:_.preservePointerOnDelete,ptr:_.ptr,ptrType:_.ptrType,smartPtr:_.smartPtr,smartPtrType:_.smartPtrType}),wn=_=>{function g(C){return C.$$.ptrType.registeredClass.name}de(g(_)+" instance already deleted")},Dn=!1,Yt=_=>{},rr=_=>{_.smartPtr?_.smartPtrType.rawDestructor(_.smartPtr):_.ptrType.registeredClass.rawDestructor(_.ptr)},lt=_=>{_.count.value-=1;var g=_.count.value===0;g&&rr(_)},At=(_,g,C)=>{if(g===C)return _;if(C.baseClass===void 0)return null;var B=At(_,g,C.baseClass);return B===null?null:C.downcast(B)},nr={},St=()=>Object.keys(He).length,wr=()=>{var _=[];for(var g in He)He.hasOwnProperty(g)&&_.push(He[g]);return _},E=[],ir=()=>{for(;E.length;){var _=E.pop();_.$$.deleteScheduled=!1,_.delete()}},p,bn=_=>{p=_,E.length&&p&&p(ir)},le=()=>{N.getInheritedInstanceCount=St,N.getLiveInheritedInstances=wr,N.flushPendingDeletes=ir,N.setDelayFunction=bn},He={},ce=(_,g)=>{for(g===void 0&&de("ptr should not be undefined");_.baseClass;)g=_.upcast(g),_=_.baseClass;return g},Dr=(_,g)=>(g=ce(_,g),He[g]),On=(_,g)=>{(!g.ptrType||!g.ptr)&&yr("makeClassHandle requires ptr and ptrType");var C=!!g.smartPtrType,B=!!g.smartPtr;return C!==B&&yr("Both smartPtrType and smartPtr must be specified"),g.count={value:1},ye(Object.create(_,{$$:{value:g,writable:!0}}))};function We(_){var g=this.getPointee(_);if(!g)return this.destructor(_),null;var C=Dr(this.registeredClass,g);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=g,C.$$.smartPtr=_,C.clone();var B=C.clone();return this.destructor(_),B}function F(){return this.isSmartPointer?On(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:g,smartPtrType:this,smartPtr:_}):On(this.registeredClass.instancePrototype,{ptrType:this,ptr:_})}var H=this.registeredClass.getActualType(g),X=nr[H];if(!X)return F.call(this);var L;this.isConst?L=X.constPointerType:L=X.pointerType;var q=At(g,this.registeredClass,L.registeredClass);return q===null?F.call(this):this.isSmartPointer?On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q,smartPtrType:this,smartPtr:_}):On(L.registeredClass.instancePrototype,{ptrType:L,ptr:q})}var ye=_=>typeof FinalizationRegistry=="undefined"?(ye=g=>g,_):(Dn=new FinalizationRegistry(g=>{lt(g.$$)}),ye=g=>{var C=g.$$,B=!!C.smartPtr;if(B){var F={$$:C};Dn.register(g,F,g)}return g},Yt=g=>Dn.unregister(g),ye(_)),Bt=()=>{Object.assign(jr.prototype,{isAliasOf(_){if(!(this instanceof jr)||!(_ instanceof jr))return!1;var g=this.$$.ptrType.registeredClass,C=this.$$.ptr;_.$$=_.$$;for(var B=_.$$.ptrType.registeredClass,F=_.$$.ptr;g.baseClass;)C=g.upcast(C),g=g.baseClass;for(;B.baseClass;)F=B.upcast(F),B=B.baseClass;return g===B&&C===F},clone(){if(this.$$.ptr||wn(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var _=ye(Object.create(Object.getPrototypeOf(this),{$$:{value:Ri(this.$$)}}));return _.$$.count.value+=1,_.$$.deleteScheduled=!1,_},delete(){this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),Yt(this),lt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||wn(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&de("Object already scheduled for deletion"),E.push(this),E.length===1&&p&&p(ir),this.$$.deleteScheduled=!0,this}})};function jr(){}var br=(_,g)=>Object.defineProperty(g,"name",{value:_}),Tt=(_,g,C)=>{if(_[g].overloadTable===void 0){var B=_[g];_[g]=function(...F){return _[g].overloadTable.hasOwnProperty(F.length)||de(`Function '${C}' called with an invalid number of arguments (${F.length}) - expects one of (${_[g].overloadTable})!`),_[g].overloadTable[F.length].apply(this,F)},_[g].overloadTable=[],_[g].overloadTable[B.argCount]=B}},Or=(_,g,C)=>{N.hasOwnProperty(_)?((C===void 0||N[_].overloadTable!==void 0&&N[_].overloadTable[C]!==void 0)&&de(`Cannot register public name '${_}' twice`),Tt(N,_,_),N.hasOwnProperty(C)&&de(`Cannot register multiple overloads of a function with the same number of arguments (${C})!`),N[_].overloadTable[C]=g):(N[_]=g,C!==void 0&&(N[_].numArguments=C))},Si=48,Wn=57,Mi=_=>{if(_===void 0)return"_unknown";_=_.replace(/[^a-zA-Z0-9_]/g,"$");var g=_.charCodeAt(0);return g>=Si&&g<=Wn?`_${_}`:_};function Bn(_,g,C,B,F,H,X,L){this.name=_,this.constructor=g,this.instancePrototype=C,this.rawDestructor=B,this.baseClass=F,this.getActualType=H,this.upcast=X,this.downcast=L,this.pureVirtualFunctions=[]}var or=(_,g,C)=>{for(;g!==C;)g.upcast||de(`Expected null or instance of ${C.name}, got an instance of ${g.name}`),_=g.upcast(_),g=g.baseClass;return _};function P(_,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=or(g.$$.ptr,C,this.registeredClass);return B}function Q(_,g){var C;if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),_!==null&&_.push(this.rawDestructor,C),C):0;(!g||!g.$$)&&de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);var B=g.$$.ptrType.registeredClass;if(C=or(g.$$.ptr,B,this.registeredClass),this.isSmartPointer)switch(g.$$.smartPtr===void 0&&de("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:g.$$.smartPtrType===this?C=g.$$.smartPtr:de(`Cannot convert argument of type ${g.$$.smartPtrType?g.$$.smartPtrType.name:g.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=g.$$.smartPtr;break;case 2:if(g.$$.smartPtrType===this)C=g.$$.smartPtr;else{var F=g.clone();C=this.rawShare(C,ie.toHandle(()=>F.delete())),_!==null&&_.push(this.rawDestructor,C)}break;default:de("Unsupporting sharing policy")}return C}function Tn(_,g){if(g===null)return this.isReference&&de(`null is not a valid ${this.name}`),0;g.$$||de(`Cannot pass "${An(g)}" as a ${this.name}`),g.$$.ptr||de(`Cannot pass deleted object as a pointer of type ${this.name}`),g.$$.ptrType.isConst&&de(`Cannot convert argument of type ${g.$$.ptrType.name} to parameter type ${this.name}`);var C=g.$$.ptrType.registeredClass,B=or(g.$$.ptr,C,this.registeredClass);return B}function Lr(_){return this.fromWireType(he[_>>2])}var Vn=()=>{Object.assign(sn.prototype,{getPointee(_){return this.rawGetPointee&&(_=this.rawGetPointee(_)),_},destructor(_){var g;(g=this.rawDestructor)==null||g.call(this,_)},argPackAdvance:Gt,readValueFromPointer:Lr,fromWireType:We})};function sn(_,g,C,B,F,H,X,L,q,ee,Z){this.name=_,this.registeredClass=g,this.isReference=C,this.isConst=B,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=X,this.rawGetPointee=L,this.rawConstructor=q,this.rawShare=ee,this.rawDestructor=Z,!F&&g.baseClass===void 0?B?(this.toWireType=P,this.destructorFunction=null):(this.toWireType=Tn,this.destructorFunction=null):this.toWireType=Q}var Fi=(_,g,C)=>{N.hasOwnProperty(_)||yr("Replacing nonexistent public symbol"),N[_].overloadTable!==void 0&&C!==void 0?N[_].overloadTable[C]=g:(N[_]=g,N[_].argCount=C)},fo=(_,g,C)=>{_=_.replace(/p/g,"i");var B=N["dynCall_"+_];return B(g,...C)},vn=[],Br,Mt=_=>{var g=vn[_];return g||(_>=vn.length&&(vn.length=_+1),vn[_]=g=Br.get(_)),g},Xt=(_,g,C=[])=>{if(_.includes("j"))return fo(_,g,C);var B=Mt(g)(...C);return B},Hr=(_,g)=>(...C)=>Xt(_,g,C),vt=(_,g)=>{_=V(_);function C(){return _.includes("j")?Hr(_,g):Mt(g)}var B=C();return typeof B!="function"&&de(`unknown function pointer with signature ${_}: ${g}`),B},Qn=(_,g)=>{var C=br(g,function(B){this.name=g,this.message=B;var F=new Error(B).stack;F!==void 0&&(this.stack=this.toString()+`
60
+ `+F.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(_.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},C},Wt,Ft=_=>{var g=fn(_),C=V(g);return Qt(g),C},Tr=(_,g)=>{var C=[],B={};function F(H){if(!B[H]&&!st[H]){if(xr[H]){xr[H].forEach(F);return}C.push(H),B[H]=!0}}throw g.forEach(F),new Wt(`${_}: `+C.map(Ft).join([", "]))},ki=(_,g,C,B,F,H,X,L,q,ee,Z,me,Be)=>{Z=V(Z),H=vt(F,H),L&&(L=vt(X,L)),ee&&(ee=vt(q,ee)),Be=vt(me,Be);var De=Mi(Z);Or(De,function(){Tr(`Cannot construct ${Z} due to unbound types`,[B])}),Ot([_,g,C],B?[B]:[],Ge=>{var Sn,Vr;Ge=Ge[0];var Et,ct;B?(Et=Ge.registeredClass,ct=Et.instancePrototype):ct=jr.prototype;var qe=br(Z,function(...vr){if(Object.getPrototypeOf(this)!==dr)throw new Ht("Use 'new' to construct "+Z);if(ke.constructor_body===void 0)throw new Ht(Z+" has no accessible constructor");var ri=ke.constructor_body[vr.length];if(ri===void 0)throw new Ht(`Tried to invoke ctor of ${Z} with invalid number of parameters (${vr.length}) - expected (${Object.keys(ke.constructor_body).toString()}) parameters instead!`);return ri.apply(this,vr)}),dr=Object.create(ct,{constructor:{value:qe}});qe.prototype=dr;var ke=new Bn(Z,qe,dr,Be,Et,H,L,ee);ke.baseClass&&((Vr=(Sn=ke.baseClass).__derivedClasses)!=null||(Sn.__derivedClasses=[]),ke.baseClass.__derivedClasses.push(ke));var wt=new sn(Z,ke,!0,!1,!1),pt=new sn(Z+"*",ke,!1,!1,!1),fr=new sn(Z+" const*",ke,!1,!0,!1);return nr[_]={pointerType:pt,constPointerType:fr},Fi(De,qe),[wt,pt,fr]})},zn=(_,g)=>{for(var C=[],B=0;B<_;B++)C.push(he[g+B*4>>2]);return C},Pn=_=>{for(;_.length;){var g=_.pop(),C=_.pop();C(g)}};function Ni(_){for(var g=1;g<_.length;++g)if(_[g]!==null&&_[g].destructorFunction===void 0)return!0;return!1}function $n(_,g,C,B,F,H){var X=g.length;X<2&&de("argTypes array size mismatch! Must at least get return value and 'this' types!");var L=g[1]!==null&&C!==null,q=Ni(g),ee=g[0].name!=="void",Z=X-2,me=new Array(Z),Be=[],De=[],Ge=function(...Et){Et.length!==Z&&de(`function ${_} called with ${Et.length} arguments, expected ${Z}`),De.length=0;var ct;Be.length=L?2:1,Be[0]=F,L&&(ct=g[1].toWireType(De,this),Be[1]=ct);for(var qe=0;qe<Z;++qe)me[qe]=g[qe+2].toWireType(De,Et[qe]),Be.push(me[qe]);var dr=B(...Be);function ke(wt){if(q)Pn(De);else for(var pt=L?1:2;pt<g.length;pt++){var fr=pt===1?ct:me[pt-2];g[pt].destructorFunction!==null&&g[pt].destructorFunction(fr)}if(ee)return g[0].fromWireType(wt)}return ke(dr)};return br(_,Ge)}var Ui=(_,g,C,B,F,H)=>{var X=zn(g,C);F=vt(B,F),Ot([],[_],L=>{L=L[0];var q=`constructor ${L.name}`;if(L.registeredClass.constructor_body===void 0&&(L.registeredClass.constructor_body=[]),L.registeredClass.constructor_body[g-1]!==void 0)throw new Ht(`Cannot register multiple constructors with identical number of parameters (${g-1}) for class '${L.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return L.registeredClass.constructor_body[g-1]=()=>{Tr(`Cannot construct ${L.name} due to unbound types`,X)},Ot([],X,ee=>(ee.splice(1,0,null),L.registeredClass.constructor_body[g-1]=$n(q,ee,null,F,H),[])),[]})},xi=_=>{_=_.trim();let g=_.indexOf("(");return g!==-1?_.substr(0,g):_},Kn=(_,g,C,B,F,H,X,L,q)=>{var ee=zn(C,B);g=V(g),g=xi(g),H=vt(F,H),Ot([],[_],Z=>{Z=Z[0];var me=`${Z.name}.${g}`;g.startsWith("@@")&&(g=Symbol[g.substring(2)]),L&&Z.registeredClass.pureVirtualFunctions.push(g);function Be(){Tr(`Cannot call ${me} due to unbound types`,ee)}var De=Z.registeredClass.instancePrototype,Ge=De[g];return Ge===void 0||Ge.overloadTable===void 0&&Ge.className!==Z.name&&Ge.argCount===C-2?(Be.argCount=C-2,Be.className=Z.name,De[g]=Be):(Tt(De,g,me),De[g].overloadTable[C-2]=Be),Ot([],ee,Et=>{var ct=$n(me,Et,Z,H,X,q);return De[g].overloadTable===void 0?(ct.argCount=C-2,De[g]=ct):De[g].overloadTable[C-2]=ct,[]}),[]})},_e=(_,g,C)=>(_ instanceof Object||de(`${C} with invalid "this": ${_}`),_ instanceof g.registeredClass.constructor||de(`${C} incompatible with "this" of type ${_.constructor.name}`),_.$$.ptr||de(`cannot call emscripten binding method ${C} on deleted object`),or(_.$$.ptr,_.$$.ptrType.registeredClass,g.registeredClass)),Ie=(_,g,C,B,F,H,X,L,q,ee)=>{g=V(g),F=vt(B,F),Ot([],[_],Z=>{Z=Z[0];var me=`${Z.name}.${g}`,Be={get(){Tr(`Cannot access ${me} due to unbound types`,[C,X])},enumerable:!0,configurable:!0};return q?Be.set=()=>Tr(`Cannot access ${me} due to unbound types`,[C,X]):Be.set=De=>de(me+" is a read-only property"),Object.defineProperty(Z.registeredClass.instancePrototype,g,Be),Ot([],q?[C,X]:[C],De=>{var Ge=De[0],Et={get(){var qe=_e(this,Z,me+" getter");return Ge.fromWireType(F(H,qe))},enumerable:!0};if(q){q=vt(L,q);var ct=De[1];Et.set=function(qe){var dr=_e(this,Z,me+" setter"),ke=[];q(ee,dr,ct.toWireType(ke,qe)),Pn(ke)}}return Object.defineProperty(Z.registeredClass.instancePrototype,g,Et),[]}),[]})},dt=[],Pe=[],yt=_=>{_>9&&--Pe[_+1]===0&&(Pe[_]=void 0,dt.push(_))},ji=()=>Pe.length/2-5-dt.length,Jn=()=>{Pe.push(0,1,void 0,1,null,1,!0,1,!1,1),N.count_emval_handles=ji},ie={toValue:_=>(_||de("Cannot use deleted val. handle = "+_),Pe[_]),toHandle:_=>{switch(_){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let g=dt.pop()||Pe.length;return Pe[g]=_,Pe[g+1]=1,g}}}},se={name:"emscripten::val",fromWireType:_=>{var g=ie.toValue(_);return yt(_),g},toWireType:(_,g)=>ie.toHandle(g),argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction:null},Li=_=>Ct(_,se),An=_=>{if(_===null)return"null";var g=typeof _;return g==="object"||g==="array"||g==="function"?_.toString():""+_},f=(_,g)=>{switch(g){case 4:return function(C){return this.fromWireType(Hn[C>>2])};case 8:return function(C){return this.fromWireType(xt[C>>3])};default:throw new TypeError(`invalid float width (${g}): ${_}`)}},l=(_,g,C)=>{g=V(g),Ct(_,{name:g,fromWireType:B=>B,toWireType:(B,F)=>F,argPackAdvance:Gt,readValueFromPointer:f(g,C),destructorFunction:null})},Me=(_,g,C)=>{switch(g){case 1:return C?B=>Ut[B]:B=>Xe[B];case 2:return C?B=>mr[B>>1]:B=>mt[B>>1];case 4:return C?B=>Cr[B>>2]:B=>he[B>>2];default:throw new TypeError(`invalid integer width (${g}): ${_}`)}},Hi=(_,g,C,B,F)=>{g=V(g),F===-1&&(F=4294967295);var H=Z=>Z;if(B===0){var X=32-8*C;H=Z=>Z<<X>>>X}var L=g.includes("unsigned"),q=(Z,me)=>{},ee;L?ee=function(Z,me){return q(me,this.name),me>>>0}:ee=function(Z,me){return q(me,this.name),me},Ct(_,{name:g,fromWireType:H,toWireType:ee,argPackAdvance:Gt,readValueFromPointer:Me(g,C,B!==0),destructorFunction:null})},Gi=(_,g,C)=>{var B=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],F=B[g];function H(X){var L=he[X>>2],q=he[X+4>>2];return new F(Ut.buffer,q,L)}C=V(C),Ct(_,{name:C,fromWireType:H,argPackAdvance:Gt,readValueFromPointer:H},{ignoreDuplicateRegistrations:!0})},Yi=(_,g,C,B)=>{if(!(B>0))return 0;for(var F=C,H=C+B-1,X=0;X<_.length;++X){var L=_.charCodeAt(X);if(L>=55296&&L<=57343){var q=_.charCodeAt(++X);L=65536+((L&1023)<<10)|q&1023}if(L<=127){if(C>=H)break;g[C++]=L}else if(L<=2047){if(C+1>=H)break;g[C++]=192|L>>6,g[C++]=128|L&63}else if(L<=65535){if(C+2>=H)break;g[C++]=224|L>>12,g[C++]=128|L>>6&63,g[C++]=128|L&63}else{if(C+3>=H)break;g[C++]=240|L>>18,g[C++]=128|L>>12&63,g[C++]=128|L>>6&63,g[C++]=128|L&63}}return g[C]=0,C-F},Xi=(_,g,C)=>Yi(_,Xe,g,C),Wi=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B<=127?g++:B<=2047?g+=2:B>=55296&&B<=57343?(g+=4,++C):g+=3}return g},Zn=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Vi=(_,g,C)=>{for(var B=g+C,F=g;_[F]&&!(F>=B);)++F;if(F-g>16&&_.buffer&&Zn)return Zn.decode(_.subarray(g,F));for(var H="";g<F;){var X=_[g++];if(!(X&128)){H+=String.fromCharCode(X);continue}var L=_[g++]&63;if((X&224)==192){H+=String.fromCharCode((X&31)<<6|L);continue}var q=_[g++]&63;if((X&240)==224?X=(X&15)<<12|L<<6|q:X=(X&7)<<18|L<<12|q<<6|_[g++]&63,X<65536)H+=String.fromCharCode(X);else{var ee=X-65536;H+=String.fromCharCode(55296|ee>>10,56320|ee&1023)}}return H},cn=(_,g)=>_?Vi(Xe,_,g):"",ar=(_,g)=>{g=V(g);var C=g==="std::string";Ct(_,{name:g,fromWireType(B){var F=he[B>>2],H=B+4,X;if(C)for(var L=H,q=0;q<=F;++q){var ee=H+q;if(q==F||Xe[ee]==0){var Z=ee-L,me=cn(L,Z);X===void 0?X=me:(X+="\0",X+=me),L=ee+1}}else{for(var Be=new Array(F),q=0;q<F;++q)Be[q]=String.fromCharCode(Xe[H+q]);X=Be.join("")}return Qt(B),X},toWireType(B,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var H,X=typeof F=="string";X||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||de("Cannot pass non-string to std::string"),C&&X?H=Wi(F):H=F.length;var L=$t(4+H+1),q=L+4;if(he[L>>2]=H,C&&X)Xi(F,q,H+1);else if(X)for(var ee=0;ee<H;++ee){var Z=F.charCodeAt(ee);Z>255&&(Qt(q),de("String has UTF-16 code units that do not fit in 8 bits")),Xe[q+ee]=Z}else for(var ee=0;ee<H;++ee)Xe[q+ee]=F[ee];return B!==null&&B.push(Qt,L),L},argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction(B){Qt(B)}})},sr=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,rt=(_,g)=>{for(var C=_,B=C>>1,F=B+g/2;!(B>=F)&&mt[B];)++B;if(C=B<<1,C-_>32&&sr)return sr.decode(Xe.subarray(_,C));for(var H="",X=0;!(X>=g/2);++X){var L=mr[_+X*2>>1];if(L==0)break;H+=String.fromCharCode(L)}return H},ft=(_,g,C)=>{if(C!=null||(C=2147483647),C<2)return 0;C-=2;for(var B=g,F=C<_.length*2?C/2:_.length,H=0;H<F;++H){var X=_.charCodeAt(H);mr[g>>1]=X,g+=2}return mr[g>>1]=0,g-B},zi=_=>_.length*2,$i=(_,g)=>{for(var C=0,B="";!(C>=g/4);){var F=Cr[_+C*4>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;B+=String.fromCharCode(55296|H>>10,56320|H&1023)}else B+=String.fromCharCode(F)}return B},un=(_,g,C)=>{if(C!=null||(C=2147483647),C<4)return 0;for(var B=g,F=B+C-4,H=0;H<_.length;++H){var X=_.charCodeAt(H);if(X>=55296&&X<=57343){var L=_.charCodeAt(++H);X=65536+((X&1023)<<10)|L&1023}if(Cr[g>>2]=X,g+=4,g+4>F)break}return Cr[g>>2]=0,g-B},Ar=_=>{for(var g=0,C=0;C<_.length;++C){var B=_.charCodeAt(C);B>=55296&&B<=57343&&++C,g+=4}return g},Gr=(_,g,C)=>{C=V(C);var B,F,H,X;g===2?(B=rt,F=ft,X=zi,H=L=>mt[L>>1]):g===4&&(B=$i,F=un,X=Ar,H=L=>he[L>>2]),Ct(_,{name:C,fromWireType:L=>{for(var q=he[L>>2],ee,Z=L+4,me=0;me<=q;++me){var Be=L+4+me*g;if(me==q||H(Be)==0){var De=Be-Z,Ge=B(Z,De);ee===void 0?ee=Ge:(ee+="\0",ee+=Ge),Z=Be+g}}return Qt(L),ee},toWireType:(L,q)=>{typeof q!="string"&&de(`Cannot pass non-string to C++ string type ${C}`);var ee=X(q),Z=$t(4+ee+g);return he[Z>>2]=ee/g,F(q,Z+4,ee+g),L!==null&&L.push(Qt,Z),Z},argPackAdvance:Gt,readValueFromPointer:Lr,destructorFunction(L){Qt(L)}})},qn=(_,g)=>{g=V(g),Ct(_,{isVoid:!0,name:g,argPackAdvance:0,fromWireType:()=>{},toWireType:(C,B)=>{}})},ei=(_,g,C)=>Xe.copyWithin(_,g,g+C),Fe=(_,g)=>{var C=st[_];return C===void 0&&de(`${g} has unknown type ${Ft(_)}`),C},je=(_,g,C)=>{var B=[],F=_.toWireType(B,C);return B.length&&(he[g>>2]=ie.toHandle(B)),F},Ki=(_,g,C)=>(_=ie.toValue(_),g=Fe(g,"emval::as"),je(g,C,_)),Yr={},cr=_=>{var g=Yr[_];return g===void 0?V(_):g},kt=[],Xr=(_,g,C,B,F)=>(_=kt[_],g=ie.toValue(g),C=cr(C),_(g,g[C],B,F)),Ji=_=>{var g=kt.length;return kt.push(_),g},Nt=(_,g)=>{for(var C=new Array(_),B=0;B<_;++B)C[B]=Fe(he[g+B*4>>2],"parameter "+B);return C},nt=Reflect.construct,ae=(_,g,C)=>{var B=Nt(_,g),F=B.shift();_--;var H=new Array(_),X=(q,ee,Z,me)=>{for(var Be=0,De=0;De<_;++De)H[De]=B[De].readValueFromPointer(me+Be),Be+=B[De].argPackAdvance;var Ge=C===1?nt(ee,H):ee.apply(q,H);return je(F,Z,Ge)},L=`methodCaller<(${B.map(q=>q.name).join(", ")}) => ${F.name}>`;return Ji(br(L,X))},Ae=_=>{_>9&&(Pe[_+1]+=1)},Rn=_=>{var g=ie.toValue(_);Pn(g),yt(_)},ti=(_,g)=>{_=Fe(_,"_emval_take_value");var C=_.readValueFromPointer(g);return ie.toHandle(C)},Vt=_=>{mn("OOM")},zt=_=>{var g=Xe.length;_>>>=0,Vt(_)};K(),Ht=N.BindingError=class extends Error{constructor(g){super(g),this.name="BindingError"}},an=N.InternalError=class extends Error{constructor(g){super(g),this.name="InternalError"}},Bt(),le(),Vn(),Wt=N.UnboundTypeError=Qn(Error,"UnboundTypeError"),Jn();var ln={v:ze,p:Nr,o:on,t:Pi,x:ki,w:Ui,h:Kn,k:Ie,s:Li,n:l,g:Hi,a:Gi,m:ar,l:Gr,u:qn,r:ei,j:Ki,e:Xr,c:yt,f:ae,d:Ae,b:Rn,i:ti,q:zt},gt=be(),dn=()=>(dn=gt.z)(),$t=_=>($t=gt.A)(_),fn=_=>(fn=gt.C)(_),Qt=_=>(Qt=gt.D)(_),Kt=_=>(Kt=gt.E)(_),Wr=N._vertexShaderSource=10192,ur;bt=function _(){ur||lr(),ur||(bt=_)};function lr(){if(Ze>0||(lo(),Ze>0))return;function _(){ur||(ur=!0,N.calledRun=!0,!tt&&(Bi(),Ue(N),N.onRuntimeInitialized&&N.onRuntimeInitialized(),Mr()))}N.setStatus?(N.setStatus("Running..."),setTimeout(function(){setTimeout(function(){N.setStatus("")},1),_()},1)):_()}if(N.preInit)for(typeof N.preInit=="function"&&(N.preInit=[N.preInit]);N.preInit.length>0;)N.preInit.pop()();return lr(),Ee=ot,Ee}})(),Oc=Bu;var Uo=class{constructor(x,n){Le(this,"canvas");Le(this,"locateFile");Le(this,"_glName");Le(this,"_solutionWasm");Le(this,"ctx");Le(this,"fileDownloader");Le(this,"startTime");Le(this,"lastTimestamp");Le(this,"pl",{onResults:x=>this.onResults(x.get(0).glName)});this.locateFile=Ee=>`${x}/${Ee}`.replace(/([^:]\/)\/+/g,"$1"),this.fileDownloader=n}bindTexture(){var x;(x=this.ctx)==null||x.activeTexture(this.ctx.TEXTURE0),this.bindTexture2d(this._glName)}async initialize(){this._solutionWasm=new this.SolutionWasm;let x=new this.StringList;x.push_back("segmentation_mask");let n=this.PacketListener.implement(this.pl);return this._solutionWasm.attachMultiListener(x,n),x.delete(),this._solutionWasm.loadGraph(await this.fileDownloader.download(this.locateFile("selfie_segmentation.binarypb"),{type:"arraybuffer"})),this}setCanvas(x){this.canvas=x,this.createContext(x,!0,!0,{}),this._glName=this.createTexture()}fetchResponse(x){return this.fileDownloader.downloadWithFetch(x,"fetch-response")}loadWasm(x,n){return this.fileDownloader.loadWasm(x,n)}async changeModel(x="selfie_segmentation_landscape.tflite"){x=typeof x=="string"?await this.fileDownloader.download(this.locateFile(x),{type:"arraybuffer"}):x,this._solutionWasm.overrideFile("third_party/mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite",x);let n=new this.GraphOptionChangeRequestList;n.push_back({calculatorIndex:1,calculatorName:"",calculatorType:"GlScalerCalculator",fieldName:"flip_horizontal",valueBoolean:!1,valueNumber:0,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value",valueBoolean:!1,valueNumber:1,valueString:""}),n.push_back({calculatorIndex:0,calculatorType:"InferenceCalculator",calculatorName:"",fieldName:"use_cpu_inference",valueBoolean:!1,valueNumber:0,valueString:""}),this._solutionWasm.changeOptions(n),this.startTime=Date.now()}send(x,n){let Ee=new this.PacketDataList,N=Date.now()-this.startTime;this.lastTimestamp&&this.lastTimestamp>=N?this.lastTimestamp++:this.lastTimestamp=N,Ee.pushTexture2d({stream:"input_frames_gpu",timestamp:this.lastTimestamp,glName:this._glName,width:x,height:n}),this._solutionWasm.send(Ee),Ee.delete()}close(){var x,n,Ee;(x=this.canvas)==null||delete x.getContext,delete this.readyPromiseResolve,delete this.readyPromiseReject,this.pl.onResults=null,delete this.onResults,(n=this.deleteTexture)==null||n.call(this,this._glName),(Ee=this._solutionWasm)==null||Ee.delete();for(let N of Object.keys(this))delete this[N]}};var Pr=typeof navigator=="undefined"?"":navigator.userAgent,ue=J=>new RegExp(J,"i").test(Pr),et=J=>{if(ue(J)){let x=new RegExp(`${J}\\/([\\d.]+)`),n=Pr.match(x);if(n&&n[1])return n[1]}return""},ic=J=>{if(ue(J)){let x=new RegExp(`${J}\\/(\\d+)`),n=Pr.match(x);if(n&&n[1])return parseFloat(n[1])}return NaN},Bc=/AppleWebKit\/([\d.]+)/i.exec(Pr),Tu=Bc?parseFloat(Bc[1]):NaN,vc=ue("iPad"),Qc=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ue("Macintosh"),Pc=ue("iPhone")&&!vc,vu=ue("iPod"),Rc=Pc||vc||vu||Qc,xo=ue("Android"),Sc=function(){if(xo){let J=Pr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(J){let x=J[1]&&parseFloat(J[1]),n=J[2]&&parseFloat(J[2]);if(x&&n)return parseFloat(`${J[1]}.${J[2]}`);if(x)return x}}return NaN}(),El=xo&&ue("webkit")&&Sc<2.3,pl=xo&&Sc<5&&Tu<537,Qu=ue("Firefox"),Pu=et("Firefox"),_l=ic("Firefox"),Mc=ue("Edge"),Ru=et("Edge"),Fc=ue("Edg"),Su=et("Edg"),hl=ic("Edg"),kc=ue("SogouMobileBrowser"),Mu=et("SogouMobileBrowser"),Nc=ue("MetaSr\\s"),Fu=et("MetaSr\\s"),Ln=ue("TBS"),ku=et("TBS"),Uc=ue("XWEB"),Nu=et("XWEB"),Il=ue("MSIE\\s8\\.0"),Uu=ue("MSIE\\/\\d+"),ml=function(){if(Uu){let J=/MSIE\s(\d+)\.\d/.exec(Pr),x=J&&parseFloat(J[1]);return!x&&/Trident\/7.0/i.test(Pr)&&/rv:11.0/.test(Pr)&&(x=11),x}return NaN}(),xu=ue("(micromessenger|webbrowser)"),ju=et("MicroMessenger"),oc=!Ln&&ue("MQQBrowser")&&ue("COVC"),ac=!Ln&&ue("MQQBrowser")&&!ue("COVC"),Tc=ac||oc?et("MQQBrowser"):"",xc=!Ln&&ue(" QQBrowser"),Lu=et(" QQBrowser"),jc=!Ln&&ue("QQBrowserLite"),Hu=et("QQBrowserLite"),Lc=!Ln&&ue("MQBHD"),Gu=et("MQBHD"),Cl=ue("Windows"),yl=!Rc&&ue("MAC OS X"),wl=!xo&&ue("Linux"),Dl=ue("CrOS"),bl=ue("MicroMessenger"),Ol=ue("UCBrowser"),Bl=ue("Electron"),Hc=ue("MiuiBrowser"),Yu=et("MiuiBrowser"),Gc=ue("HuaweiBrowser"),Tl=ue("Huawei")||ue("HUAWEI"),vl=ue("Honor")||ue("HONOR"),Xu=et("HuaweiBrowser"),Yc=ue("SamsungBrowser"),Wu=et("SamsungBrowser"),Xc=ue("HeyTapBrowser"),Vu=et("HeyTapBrowser"),Wc=ue("VivoBrowser"),zu=et("VivoBrowser"),$u=()=>ic("Chrome"),Vc=ue("Chrome"),Ku=!Mc&&!Nc&&!kc&&!Ln&&!Uc&&!Fc&&!xc&&!Hc&&!Gc&&!Yc&&!Xc&&!Wc&&Vc,Ql=ue("HeadlessChrome"),zc=$u(),Ju=et("Chrome"),Zu=!Vc&&!ac&&!oc&&!jc&&!Lc&&ue("Safari");var $c=et("Version"),Pl=/Android.*(wv|.0.0.0)/.test(Pr),Kc=(()=>{if(Qc)return $c;if(Rc){let J=Pr.match(/OS (\d+)_(\d+)/i);if(J&&J[1]){let x=J[1];return J[2]&&(x+=`.${J[2]}`),x}}return""})(),Rl=Number(Kc.split(".")[0]);var Sl=(()=>{let J=Number(Kc.split(".")[0]);return J===14||J===13})(),Ml=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1";var Fl=qu();function qu(){let J=new Map([[Qu,["Firefox",Pu]],[Fc,["Edg",Su]],[Ku,["Chrome",Ju]],[Zu,["Safari",$c]],[Ln,["TBS",ku]],[Uc,["XWEB",Nu]],[xu&&Pc,["WeChat",ju]],[xc,["QQ(Win)",Lu]],[ac,["QQ(Mobile)",Tc]],[oc,["QQ(Mobile X5)",Tc]],[jc,["QQ(Mac)",Hu]],[Lc,["QQ(iPad)",Gu]],[Hc,["MI",Yu]],[Gc,["HW",Xu]],[Yc,["Samsung",Wu]],[Xc,["OPPO",Vu]],[Wc,["VIVO",zu]],[Mc,["EDGE",Ru]],[kc,["SogouMobile",Mu]],[Nc,["Sogou",Fu]]]),x="unknown",n="unknown";return J.has(!0)&&([x,n]=J.get(!0)),{name:x,version:n}}var Di=570703;var jo=0,Lo=class Lo{constructor(x){this.core=x;Le(this,"seq");Le(this,"_core");Le(this,"log");Le(this,"preLoadPromise");Le(this,"startResolve");Le(this,"startReject");Le(this,"mediaPipeSolutions");Le(this,"assetsPath");Le(this,"currentType");Le(this,"onAbort");Le(this,"isAborted",!1);jo=jo+1,this.seq=jo,this._core=x,this.log=x.log.createChild({id:`${this.getAlias()}${jo}`}),this.log.info("created"),x.assetsPath&&(this.preLoadPromise=this.preload(x.assetsPath))}static isSupported(){if(zc<90)return!1;let n=document.createElement("canvas").getContext("webgl2");return!!(n&&n instanceof WebGL2RenderingContext)}async preload(x="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/"){try{this._core.room.videoManager.Wasm||(this._core.room.videoManager.Wasm=await Oc()),this.assetsPath=`${x}/selfie_segmentation/`;let n=new Uo(this.assetsPath,this._core.fileDownloader);n.onAbort=Ee=>{var N;this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,this.isAborted,"ABORT_IN_INFERENCE")}),this.isAborted=!0,this.log.error("mediaPipeSolutions abort",Ee),this.core.clearStarted(this,this.getGroup()),this.stop(),(N=this.onAbort)==null||N.call(this,Ee)},n.print=this.log.info.bind(this.log),n.printErr=this.log.warn.bind(this.log),this.mediaPipeSolutions=await(this.core.rtcDectection.isSIMDSupported()?Dc:bc)(n),await this.mediaPipeSolutions.initialize(),await this._core.room.videoManager.initVirtualBackground(this.mediaPipeSolutions)}catch(n){let{RtcError:Ee,ErrorCode:N}=this._core.errorModule;throw new Ee({code:N.INVALID_OPERATION,message:`VirtualBackground preload error, please check your assetsPath. detail: ${n}`})}}getName(){return Lo.Name}getAlias(){return"vb"}getValidateRule(x){switch(x){case"start":return Cc(this._core);case"update":return yc(this._core);case"stop":return wc(this._core)}}getGroup(){return"vb"}getKVTypeValue(x=!1,n=!1,Ee="NONE"){let N=0;switch(this.currentType){case"blur":N|=0;break;case"image":N|=1;break;case"green":N|=2;break}switch(x&&(N|=256),n&&(N|=512),Ee){case"ABORT_IN_INFERENCE":N|=4096;break;case"ABORT_IN_VIDEO_MANAGER":N|=8192;break;case"OTHER":N|=61440}return N}async start(x){let{type:n="blur",src:Ee,blurLevel:N=3,onAbort:Ue}=x;this.currentType=n,this.onAbort=Ue;let{auth:we,sign:ot,timestamp:ht}=await mc({sdkAppId:x.sdkAppId,userId:x.userId,userSig:x.userSig,core:this._core});if(!we){let{RtcError:$e,ErrorCode:Ye,ErrorCodeDictionary:Ve}=this._core.errorModule;throw new $e({code:Ye.SERVER_ERROR,extraCode:Ve.NEED_TO_BUY,messageParams:{value:"Virtual Background",url:"https://cloud.tencent.com/document/product/647/85386"}})}return this.preLoadPromise||(this.preLoadPromise=this.preload(this._core.assetsPath)),await this.preLoadPromise,this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:Ee,blurLevel:N,onAbort:$e=>{var Ye;this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,this.isAborted,"ABORT_IN_VIDEO_MANAGER")}),this.isAborted=!0,this.core.clearStarted(this,this.getGroup()),this.stop(),delete this.preLoadPromise,(Ye=this.onAbort)==null||Ye.call(this,$e)}}).then(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,this.isAborted,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,this.isAborted,"OTHER")})})}async update(x){let{type:n,src:Ee}=x;return n!==this.currentType&&(this.currentType=n),this.core.room.videoManager.setVirtualBackground({type:n,imageUrl:Ee,blurLevel:x.blurLevel}).then(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!1,!1,"NONE")})}).catch(()=>{this.core.kvStatManager.addEnum({key:Di,value:this.getKVTypeValue(!0,!1,"OTHER")})})}async stop(){return this.core.room.videoManager.setVirtualBackground()}};Le(Lo,"Name","VirtualBackground");var sc=Lo;var Yl=sc;export{sc as VirtualBackground,Yl as default};