varModule=typeofModule!=="undefined"?Module:{};varIDHandler=function(){varids={};varsize=0;this.has=function(id){returnids.hasOwnProperty(id)};this.add=function(obj){size+=1;varid=crypto.getRandomValues(newInt32Array(32))[0];ids[id]=obj;returnid};this.get=function(id){returnids[id]};this.remove=function(id){size-=1;deleteids[id]};this.size=function(){returnsize};this.ids=ids};Module.IDHandler=newIDHandler;varmoduleOverrides={};varkey;for(keyinModule){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}vararguments_=[];varthisProgram="./this.program";varquit_=function(status,toThrow){throwtoThrow};varENVIRONMENT_IS_WEB=true;varENVIRONMENT_IS_WORKER=false;varENVIRONMENT_IS_NODE=false;varscriptDirectory="";functionlocateFile(path){if(Module["locateFile"]){returnModule["locateFile"](path,scriptDirectory)}returnscriptDirectory+path}varread_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}elseif(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=functionshell_read(url){varxhr=newXMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);returnxhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=functionreadBinary(url){varxhr=newXMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);returnnewUint8Array(xhr.response)}}readAsync=functionreadAsync(url,onload,onerror){varxhr=newXMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=functionxhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}varout=Module["print"]||console.log.bind(console);varerr=Module["printErr"]||console.warn.bind(console);for(keyinmoduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];functiondynamicAlloc(size){varret=HEAP32[DYNAMICTOP_PTR>>2];varend=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;returnret}functiongetNativeTypeSize(type){switch(type){case"i1":case"i8":return1;case"i16":return2;case"i32":return4;case"i64":return8;case"float":return4;case"double":return8;default:{if(type[type.length-1]==="*"){return4}elseif(type[0]==="i"){varbits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);returnbits/8}else{return0}}}}functionwarnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}functionmakeBigInt(low,high,unsigned){returnunsigned?+(low>>>0)++(high>>>0)*4294967296:+(low>>>0)++(high|0)*4294967296}vartempRet0=0;varsetTempRet0=function(value){tempRet0=value};vargetTempRet0=function(){returntempRet0};varwasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];varnoExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeofWebAssembly!=="object"){err("no native wasm support detected")}functionsetValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+ty