From f5588d053b3adb64154d5f373080707063fb3bec Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii <89110903+Nic0Nic0Nii@users.noreply.github.com> Date: Thu, 14 Mar 2024 20:16:14 +0000 Subject: [PATCH] Add grid snapping Co-authored-by: sigonasr2 --- TiledCollisionEditor.data | 12 +++++++++- TiledCollisionEditor.js | 2 +- TiledCollisionEditor.wasm | Bin 344990 -> 346066 bytes TiledCollisionEditor/main.cpp | 29 ++++++++++++++++--------- TiledCollisionEditor/pixelGameEngine.h | 1 + assets/font3.png | Bin 0 -> 1893 bytes 6 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 assets/font3.png diff --git a/TiledCollisionEditor.data b/TiledCollisionEditor.data index f516856..9aedf29 100644 --- a/TiledCollisionEditor.data +++ b/TiledCollisionEditor.data @@ -956,4 +956,14 @@ wH 'VkbKGD? pHYsodtIME *)IDATx\ݖ ,OU紮ZWmIm`9oe{xyR<΍ s@Q}>ن<}ߑz׻{bDef^hx:s mn@r٪ߓ_wT?3ƖZKx750wfА(ڗ1z3;);g>E,Db~=OB,~گ@'M~>f3nn&ٿ-=vf.G%ҬnDza$ړjjߖto'G]9K[)lX;eLhCҨ va&[5Ja.>0F=dۧ}пf3'2#Ϸ4-(PyYy$m!Kk깴xl]ɋ@-g|G#bg ^. -]K[۵itfXb`3dE?f ~ryxSy+j5϶>[+_ b3[<ȓY<@k8 [%o/`9zDh)S3#dl-+OD36cRyKsbc \ouK߿+˚]L^W>AZG>R?2ί9yeS:JW? g1fGOC3f UXZ>} cgkϮ(^wX"Dwy~N{wFFdp{fƖGkeThw(Z tm=AHq&պĕ{br8Τxpf=t3geS.Rb$Wƕ.l*#Ć6]tTBڒұCb1y[GeiEΓDҲwyov霟yw8"'m[KoDYoZ.j.\+ G9N[IENDB` \ No newline at end of file +]K[۵itfXb`3dE?f ~ryxSy+j5϶>[+_ b3[<ȓY<@k8 [%o/`9zDh)S3#dl-+OD36cRyKsbc \ouK߿+˚]L^W>AZG>R?2ί9yeS:JW? g1fGOC3f UXZ>} cgkϮ(^wX"Dwy~N{wFFdp{fƖGkeThw(Z tm=AHq&պĕ{br8Τxpf=t3geS.Rb$Wƕ.l*#Ć6]tTBڒұCb1y[GeiEΓDҲwyov霟yw8"'m[KoDYoZ.j.\+ G9N[IENDB`PNG + + IHDR`iCCPICC profile(}=H@_S*-vqPbEK`Zu0 4$).kŪ "%/)=BT/ed 1_X#AD9x{zY!h2'ǙnXijy8*B|Nr"MbKGD? pHYs.#.#x?vtIME 0*_tEXtCommentCreated with GIMPW=IDATxю ES%6jw6缌F*`cL<'Z_eF\剶g"X<'2:9NzS b"@[ElYY:`"3l۶mV3l:<[VwȢP3FWTpKuhy `[2ATg|ֆ2e>^ŝ_b+pf;,ѲG<|3FH]͜ +3iWQѯ.E +hYU鴢~J%f]UQov#vQ.c,CF5ͦrv8ҹgAXT)[>RZg|3u|:GgFL.'V^]NPLbDp߮Ũ#.a+dKI1WG&oV΀ΔX@1 Rj+]Vn0kf&%fs&`+Wve a|Q%s +j2W3II{ؼ (yhckL>e6@ +6*su+Bn!`@ f +u(Z^qUuc%9mpRukyes r`ٌL7\j8:%J W,LrjwC"Ag\ܮ]>+e :Q@zGb+DUC#y?3gW9+vOٲxrb wa,6՗r$It+kڑIENDB` \ No newline at end of file diff --git a/TiledCollisionEditor.js b/TiledCollisionEditor.js index 58d7485..e576c5c 100644 --- a/TiledCollisionEditor.js +++ b/TiledCollisionEditor.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="TiledCollisionEditor.data";var REMOTE_PACKAGE_BASE="TiledCollisionEditor.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);Module["FS_createPath"]("/assets","Tiles",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;ifilename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="TiledCollisionEditor.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={39468:()=>{window.onunload=Module._olc_OnPageUnload},39512:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>>2>>>0]=type}get_type(){return HEAPU32[this.ptr+4>>>2>>>0]}set_destructor(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0]=caught}get_caught(){return HEAP8[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0]=rethrown}get_rethrown(){return HEAP8[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>>2>>>0]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>>2>>>0]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>>2>>>0]=tempI64[0],HEAP32[buf+28>>>2>>>0]=tempI64[1];HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>>2>>>0]=tempI64[0],HEAP32[buf+44>>>2>>>0]=tempI64[1];HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>>2>>>0]=tempI64[0],HEAP32[buf+60>>>2>>>0]=tempI64[1];HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>>2>>>0]=tempI64[0],HEAP32[buf+76>>>2>>>0]=tempI64[1];HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>>2>>>0]=tempI64[0],HEAP32[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_throw_longjmp=()=>{throw Infinity};var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags|8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags&~8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>>2>>>0];if(param==12321){var alphaSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>>2>>>0]=1}if(config&&config_size>0){HEAPU32[config>>>2>>>0]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){display>>>=0;attrib_list>>>=0;configs>>>=0;numConfigs>>>=0;return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>>2>>>0]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>>2>>>0]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>>2>>>0],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){display>>>=0;config>>>=0;hmm>>>=0;contextAttribs>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>>2>>>0];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>>2>>>0]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){display>>>=0;config>>>=0;attrib_list>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){display>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){display>>>=0;surface>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){nativeDisplayType>>>=0;EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3}function _eglInitialize(display,majorVersion,minorVersion){display>>>=0;majorVersion>>>=0;minorVersion>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>>2>>>0]=1}if(minorVersion){HEAP32[minorVersion>>>2>>>0]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){display>>>=0;draw>>>=0;read>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){dpy>>>=0;surface>>>=0;if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();function _emscripten_memcpy_js(dest,src,num){dest>>>=0;src>>>=0;num>>>=0;return HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}var getHeapMax=()=>4294901760;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}var findCanvasEventTarget=findEventTarget;function _emscripten_set_canvas_element_size(target,width,height){target>>>=0;var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>>3>>>0]=e.timeStamp;var idx=keyEventData>>>2;HEAP32[idx+2>>>0]=e.location;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;HEAP32[idx+7>>>0]=e.repeat;HEAP32[idx+8>>>0]=e.charCode;HEAP32[idx+9>>>0]=e.keyCode;HEAP32[idx+10>>>0]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){func>>>=0;var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>>3>>>0]=e.timeStamp;var idx=eventStruct>>>2;HEAP32[idx+2>>>0]=e.screenX;HEAP32[idx+3>>>0]=e.screenY;HEAP32[idx+4>>>0]=e.clientX;HEAP32[idx+5>>>0]=e.clientY;HEAP32[idx+6>>>0]=e.ctrlKey;HEAP32[idx+7>>>0]=e.shiftKey;HEAP32[idx+8>>>0]=e.altKey;HEAP32[idx+9>>>0]=e.metaKey;HEAP16[idx*2+20>>>0]=e.button;HEAP16[idx*2+21>>>0]=e.buttons;HEAP32[idx+11>>>0]=e["movementX"];HEAP32[idx+12>>>0]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13>>>0]=e.clientX-(rect.left|0);HEAP32[idx+14>>>0]=e.clientY-(rect.top|0)};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>>3>>>0]=e.timeStamp;var idx=touchEvent>>>2;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0>>>0]=t.identifier;HEAP32[idx+1>>>0]=t.screenX;HEAP32[idx+2>>>0]=t.screenY;HEAP32[idx+3>>>0]=t.clientX;HEAP32[idx+4>>>0]=t.clientY;HEAP32[idx+5>>>0]=t.pageX;HEAP32[idx+6>>>0]=t.pageY;HEAP32[idx+7>>>0]=t.isChanged;HEAP32[idx+8>>>0]=t.onTarget;HEAP32[idx+9>>>0]=t.clientX-(targetRect.left|0);HEAP32[idx+10>>>0]=t.clientY-(targetRect.top|0);idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>>2>>>0]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>>3>>>0]=e["deltaX"];HEAPF64[wheelEvent+80>>>3>>>0]=e["deltaY"];HEAPF64[wheelEvent+88>>>3>>>0]=e["deltaZ"];HEAP32[wheelEvent+96>>>2>>>0]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){title>>>=0;return document.title=UTF8ToString(title)}var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0]=0};var _environ_get=function(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=function(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>>2>>>0]=tempI64[0],HEAP32[newOffset+4>>>2>>>0]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);function _glBufferData(target,size,data,usage){size>>>=0;data>>>=0;if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}return}GLctx.bufferData(target,data?HEAPU8.subarray(data>>>0,data+size>>>0):size,usage)}var _glClear=x0=>GLctx.clear(x0);var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};function _glDeleteTextures(n,textures){textures>>>=0;for(var i=0;i>>2>>>0];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _glEnable=x0=>GLctx.enable(x0);var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};function _glGenBuffers(n,buffers){buffers>>>=0;GL.genObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){textures>>>=0;GL.genObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){arrays>>>=0;GL.genObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){length>>>=0;infoLog>>>=0;var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>>2>>>0]=numBytesWrittenExclNull}var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap)>>>0,toTypedArrayIndex(pixels+bytes,heap)>>>0)};function _glReadPixels(x,y,width,height,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){string>>>=0;length>>>=0;var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){ptr>>>=0;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=HEAPU32[tm+40>>>2>>>0];var date={tm_sec:HEAP32[tm>>>2>>>0],tm_min:HEAP32[tm+4>>>2>>>0],tm_hour:HEAP32[tm+8>>>2>>>0],tm_mday:HEAP32[tm+12>>>2>>>0],tm_mon:HEAP32[tm+16>>>2>>>0],tm_year:HEAP32[tm+20>>>2>>>0],tm_wday:HEAP32[tm+24>>>2>>>0],tm_yday:HEAP32[tm+28>>>2>>>0],tm_isdst:HEAP32[tm+32>>>2>>>0],tm_gmtoff:HEAP32[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%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 rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;var wasmImports={__cxa_throw:___cxa_throw,__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_throw_longjmp:__emscripten_throw_longjmp,abort:_abort,eglChooseConfig:_eglChooseConfig,eglCreateContext:_eglCreateContext,eglCreateWindowSurface:_eglCreateWindowSurface,eglDestroyContext:_eglDestroyContext,eglDestroySurface:_eglDestroySurface,eglGetDisplay:_eglGetDisplay,eglInitialize:_eglInitialize,eglMakeCurrent:_eglMakeCurrent,eglSwapBuffers:_eglSwapBuffers,eglSwapInterval:_eglSwapInterval,eglTerminate:_eglTerminate,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_cancel_main_loop:_emscripten_cancel_main_loop,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_blur_callback_on_thread:_emscripten_set_blur_callback_on_thread,emscripten_set_canvas_element_size:_emscripten_set_canvas_element_size,emscripten_set_focus_callback_on_thread:_emscripten_set_focus_callback_on_thread,emscripten_set_keydown_callback_on_thread:_emscripten_set_keydown_callback_on_thread,emscripten_set_keyup_callback_on_thread:_emscripten_set_keyup_callback_on_thread,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_set_mousedown_callback_on_thread:_emscripten_set_mousedown_callback_on_thread,emscripten_set_mousemove_callback_on_thread:_emscripten_set_mousemove_callback_on_thread,emscripten_set_mouseup_callback_on_thread:_emscripten_set_mouseup_callback_on_thread,emscripten_set_touchend_callback_on_thread:_emscripten_set_touchend_callback_on_thread,emscripten_set_touchmove_callback_on_thread:_emscripten_set_touchmove_callback_on_thread,emscripten_set_touchstart_callback_on_thread:_emscripten_set_touchstart_callback_on_thread,emscripten_set_wheel_callback_on_thread:_emscripten_set_wheel_callback_on_thread,emscripten_set_window_title:_emscripten_set_window_title,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,glAttachShader:_glAttachShader,glBindBuffer:_glBindBuffer,glBindTexture:_glBindTexture,glBindVertexArrayOES:_glBindVertexArrayOES,glBlendFunc:_glBlendFunc,glBufferData:_glBufferData,glClear:_glClear,glClearColor:_glClearColor,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteProgram:_glDeleteProgram,glDeleteShader:_glDeleteShader,glDeleteTextures:_glDeleteTextures,glDrawArrays:_glDrawArrays,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glGenBuffers:_glGenBuffers,glGenTextures:_glGenTextures,glGenVertexArraysOES:_glGenVertexArraysOES,glGetShaderInfoLog:_glGetShaderInfoLog,glLinkProgram:_glLinkProgram,glReadPixels:_glReadPixels,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameteri:_glTexParameteri,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,invoke_ii:invoke_ii,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_viii:invoke_viii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _olc_OnPageUnload=Module["_olc_OnPageUnload"]=()=>(_olc_OnPageUnload=Module["_olc_OnPageUnload"]=wasmExports["olc_OnPageUnload"])();var _olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=(a0,a1)=>(_olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=wasmExports["olc_PGE_UpdateWindowSize"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"])(a0);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["dynCall_viijii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["dynCall_iiiiij"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["dynCall_iiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["dynCall_iiiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["stackSave"]=makeWrapper_p(wasmExports["stackSave"]);wasmExports["stackAlloc"]=makeWrapper_pp(wasmExports["stackAlloc"]);return wasmExports}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="TiledCollisionEditor.data";var REMOTE_PACKAGE_BASE="TiledCollisionEditor.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);Module["FS_createPath"]("/assets","Tiles",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;ifilename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="TiledCollisionEditor.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={39452:()=>{window.onunload=Module._olc_OnPageUnload},39496:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return f(ptr,...args)};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var noExitRuntime=Module["noExitRuntime"]||true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>>2>>>0]=type}get_type(){return HEAPU32[this.ptr+4>>>2>>>0]}set_destructor(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>>2>>>0]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0]=caught}get_caught(){return HEAP8[this.ptr+12>>>0]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0]=rethrown}get_rethrown(){return HEAP8[this.ptr+13>>>0]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>>2>>>0]}get_exception_ptr(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>>2>>>0]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>>2>>>0]=tempI64[0],HEAP32[buf+28>>>2>>>0]=tempI64[1];HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>>2>>>0]=tempI64[0],HEAP32[buf+44>>>2>>>0]=tempI64[1];HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>>2>>>0]=tempI64[0],HEAP32[buf+60>>>2>>>0]=tempI64[1];HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>>2>>>0]=tempI64[0],HEAP32[buf+76>>>2>>>0]=tempI64[1];HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>>2>>>0]=tempI64[0],HEAP32[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=1;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_throw_longjmp=()=>{throw Infinity};var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof Browser.setImmediate=="undefined"){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);Browser.setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}else{Browser.setImmediate=setImmediate}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){Browser.setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!Browser.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.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object")SDL.audio?.queueNewAudioData?.();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0){_emscripten_set_main_loop_timing(0,1e3/fps)}else{_emscripten_set_main_loop_timing(1,1)}Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var warnOnce=text=>{warnOnce.shown||={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,`Image ${name} could not be decoded`);var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);onload?.(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);onerror?.()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;onload?.(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}Module["onFullScreen"]?.(Browser.isFullscreen);Module["onFullscreen"]?.(Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||(()=>{});CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame(func){return Browser.requestAnimationFrame(()=>{callUserCallback(func)})},getMimetype(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia(func){window.getUserMedia||=navigator["getUserMedia"]||navigator["mozGetUserMedia"];window.getUserMedia(func)},getMovementX(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(pageX,pageY){var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;var adjustedX=pageX-(scrollX+rect.left);var adjustedY=pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);return{x:adjustedX,y:adjustedY}},setMouseCoords(pageX,pageY){const{x:x,y:y}=Browser.calculateMouseCoords(pageX,pageY);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y},calculateMouseEvent(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var coords=Browser.calculateMouseCoords(touch.pageX,touch.pageY);if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];last||=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}Browser.setMouseCoords(event.pageX,event.pageY)}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags|8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags&~8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>>2>>>0];if(param==12321){var alphaSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>>2>>>0]=1}if(config&&config_size>0){HEAPU32[config>>>2>>>0]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){display>>>=0;attrib_list>>>=0;configs>>>=0;numConfigs>>>=0;return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var getEmscriptenSupportedExtensions=ctx=>{var supportedExtensions=["EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(ctx.getSupportedExtensions()||[]).filter(ext=>supportedExtensions.includes(ext))};var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:errorCode=>{if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{for(var i=0;i>>2>>>0]=id}},getSource:(shader,count,string,length)=>{var source="";for(var i=0;i>>2>>>0]:undefined;source+=UTF8ToString(HEAPU32[string+i*4>>>2>>>0],len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext?.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle]){GL.currentContext=null}if(typeof JSEvents=="object"){JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas)}if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas){GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined}GL.contexts[contextHandle]=null},initExtensions:context=>{context||=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);getEmscriptenSupportedExtensions(GLctx).forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){display>>>=0;config>>>=0;hmm>>>=0;contextAttribs>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>>2>>>0];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>>2>>>0]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){display>>>=0;config>>>=0;attrib_list>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){display>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){display>>>=0;surface>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){nativeDisplayType>>>=0;EGL.setErrorCode(12288);if(nativeDisplayType!=0&&nativeDisplayType!=1){return 0}return 62e3}function _eglInitialize(display,majorVersion,minorVersion){display>>>=0;majorVersion>>>=0;minorVersion>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>>2>>>0]=1}if(minorVersion){HEAP32[minorVersion>>>2>>>0]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){display>>>=0;draw>>>=0;read>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){dpy>>>=0;surface>>>=0;if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();function _emscripten_memcpy_js(dest,src,num){dest>>>=0;src>>>=0;num>>>=0;return HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}var getHeapMax=()=>4294901760;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var JSEvents={removeAllEventListeners(){while(JSEvents.eventHandlers.length){JSEvents._removeHandler(JSEvents.eventHandlers.length-1)}JSEvents.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}var findCanvasEventTarget=findEventTarget;function _emscripten_set_canvas_element_size(target,width,height){target>>>=0;var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>>3>>>0]=e.timeStamp;var idx=keyEventData>>>2;HEAP32[idx+2>>>0]=e.location;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;HEAP32[idx+7>>>0]=e.repeat;HEAP32[idx+8>>>0]=e.charCode;HEAP32[idx+9>>>0]=e.keyCode;HEAP32[idx+10>>>0]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){func>>>=0;var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>>3>>>0]=e.timeStamp;var idx=eventStruct>>>2;HEAP32[idx+2>>>0]=e.screenX;HEAP32[idx+3>>>0]=e.screenY;HEAP32[idx+4>>>0]=e.clientX;HEAP32[idx+5>>>0]=e.clientY;HEAP32[idx+6>>>0]=e.ctrlKey;HEAP32[idx+7>>>0]=e.shiftKey;HEAP32[idx+8>>>0]=e.altKey;HEAP32[idx+9>>>0]=e.metaKey;HEAP16[idx*2+20>>>0]=e.button;HEAP16[idx*2+21>>>0]=e.buttons;HEAP32[idx+11>>>0]=e["movementX"];HEAP32[idx+12>>>0]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13>>>0]=e.clientX-rect.left;HEAP32[idx+14>>>0]=e.clientY-rect.top};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>>3>>>0]=e.timeStamp;var idx=touchEvent>>>2;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0>>>0]=t.identifier;HEAP32[idx+1>>>0]=t.screenX;HEAP32[idx+2>>>0]=t.screenY;HEAP32[idx+3>>>0]=t.clientX;HEAP32[idx+4>>>0]=t.clientY;HEAP32[idx+5>>>0]=t.pageX;HEAP32[idx+6>>>0]=t.pageY;HEAP32[idx+7>>>0]=t.isChanged;HEAP32[idx+8>>>0]=t.onTarget;HEAP32[idx+9>>>0]=t.clientX-targetRect.left;HEAP32[idx+10>>>0]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>>2>>>0]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>>3>>>0]=e["deltaX"];HEAPF64[wheelEvent+80>>>3>>>0]=e["deltaY"];HEAPF64[wheelEvent+88>>>3>>>0]=e["deltaZ"];HEAP32[wheelEvent+96>>>2>>>0]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){title>>>=0;return document.title=UTF8ToString(title)}var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0]=0};var _environ_get=function(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=function(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>>2>>>0]=tempI64[0],HEAP32[newOffset+4>>>2>>>0]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;var _glBlendFunc=(x0,x1)=>GLctx.blendFunc(x0,x1);function _glBufferData(target,size,data,usage){size>>>=0;data>>>=0;if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data>>>0,data+size>>>0):size,usage)}}var _glClear=x0=>GLctx.clear(x0);var _glClearColor=(x0,x1,x2,x3)=>GLctx.clearColor(x0,x1,x2,x3);var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};function _glDeleteTextures(n,textures){textures>>>=0;for(var i=0;i>>2>>>0];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};var _glEnable=x0=>GLctx.enable(x0);var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};function _glGenBuffers(n,buffers){buffers>>>=0;GL.genObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){textures>>>=0;GL.genObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){arrays>>>=0;GL.genObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){length>>>=0;infoLog>>>=0;var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>>2>>>0]=numBytesWrittenExclNull}var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var toTypedArrayIndex=(pointer,heap)=>pointer>>>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var sizePerPixel=colorChannelsInGlTextureFormat(format)*heap.BYTES_PER_ELEMENT;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(toTypedArrayIndex(pixels,heap)>>>0,toTypedArrayIndex(pixels+bytes,heap)>>>0)};function _glReadPixels(x,y,width,height,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);var target=toTypedArrayIndex(pixels,heap);GLctx.readPixels(x,y,width,height,format,type,heap,target)}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){string>>>=0;length>>>=0;var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,toTypedArrayIndex(pixels,heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}var _glTexParameteri=(x0,x1,x2)=>GLctx.texParameteri(x0,x1,x2);var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){ptr>>>=0;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}var _glViewport=(x0,x1,x2,x3)=>GLctx.viewport(x0,x1,x2,x3);var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=HEAPU32[tm+40>>>2>>>0];var date={tm_sec:HEAP32[tm>>>2>>>0],tm_min:HEAP32[tm+4>>>2>>>0],tm_hour:HEAP32[tm+8>>>2>>>0],tm_mday:HEAP32[tm+12>>>2>>>0],tm_mon:HEAP32[tm+16>>>2>>>0],tm_year:HEAP32[tm+20>>>2>>>0],tm_wday:HEAP32[tm+24>>>2>>>0],tm_yday:HEAP32[tm+28>>>2>>>0],tm_isdst:HEAP32[tm+32>>>2>>>0],tm_gmtoff:HEAP32[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%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 rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":getWeekBasedYear,"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=Browser.requestFullscreen;Module["requestAnimationFrame"]=Browser.requestAnimationFrame;Module["setCanvasSize"]=Browser.setCanvasSize;Module["pauseMainLoop"]=Browser.mainLoop.pause;Module["resumeMainLoop"]=Browser.mainLoop.resume;Module["getUserMedia"]=Browser.getUserMedia;Module["createContext"]=Browser.createContext;var preloadedImages={};var preloadedAudios={};var GLctx;var wasmImports={__cxa_throw:___cxa_throw,__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_throw_longjmp:__emscripten_throw_longjmp,abort:_abort,eglChooseConfig:_eglChooseConfig,eglCreateContext:_eglCreateContext,eglCreateWindowSurface:_eglCreateWindowSurface,eglDestroyContext:_eglDestroyContext,eglDestroySurface:_eglDestroySurface,eglGetDisplay:_eglGetDisplay,eglInitialize:_eglInitialize,eglMakeCurrent:_eglMakeCurrent,eglSwapBuffers:_eglSwapBuffers,eglSwapInterval:_eglSwapInterval,eglTerminate:_eglTerminate,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_cancel_main_loop:_emscripten_cancel_main_loop,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_blur_callback_on_thread:_emscripten_set_blur_callback_on_thread,emscripten_set_canvas_element_size:_emscripten_set_canvas_element_size,emscripten_set_focus_callback_on_thread:_emscripten_set_focus_callback_on_thread,emscripten_set_keydown_callback_on_thread:_emscripten_set_keydown_callback_on_thread,emscripten_set_keyup_callback_on_thread:_emscripten_set_keyup_callback_on_thread,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_set_mousedown_callback_on_thread:_emscripten_set_mousedown_callback_on_thread,emscripten_set_mousemove_callback_on_thread:_emscripten_set_mousemove_callback_on_thread,emscripten_set_mouseup_callback_on_thread:_emscripten_set_mouseup_callback_on_thread,emscripten_set_touchend_callback_on_thread:_emscripten_set_touchend_callback_on_thread,emscripten_set_touchmove_callback_on_thread:_emscripten_set_touchmove_callback_on_thread,emscripten_set_touchstart_callback_on_thread:_emscripten_set_touchstart_callback_on_thread,emscripten_set_wheel_callback_on_thread:_emscripten_set_wheel_callback_on_thread,emscripten_set_window_title:_emscripten_set_window_title,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,glAttachShader:_glAttachShader,glBindBuffer:_glBindBuffer,glBindTexture:_glBindTexture,glBindVertexArrayOES:_glBindVertexArrayOES,glBlendFunc:_glBlendFunc,glBufferData:_glBufferData,glClear:_glClear,glClearColor:_glClearColor,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteProgram:_glDeleteProgram,glDeleteShader:_glDeleteShader,glDeleteTextures:_glDeleteTextures,glDrawArrays:_glDrawArrays,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glGenBuffers:_glGenBuffers,glGenTextures:_glGenTextures,glGenVertexArraysOES:_glGenVertexArraysOES,glGetShaderInfoLog:_glGetShaderInfoLog,glLinkProgram:_glLinkProgram,glReadPixels:_glReadPixels,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameteri:_glTexParameteri,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,invoke_ii:invoke_ii,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_viii:invoke_viii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _olc_OnPageUnload=Module["_olc_OnPageUnload"]=()=>(_olc_OnPageUnload=Module["_olc_OnPageUnload"]=wasmExports["olc_OnPageUnload"])();var _olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=(a0,a1)=>(_olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=wasmExports["olc_PGE_UpdateWindowSize"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"])(a0);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["dynCall_viijii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["dynCall_iiiiij"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["dynCall_iiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["dynCall_iiiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["stackSave"]=makeWrapper_p(wasmExports["stackSave"]);wasmExports["stackAlloc"]=makeWrapper_pp(wasmExports["stackAlloc"]);return wasmExports}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/TiledCollisionEditor.wasm b/TiledCollisionEditor.wasm index 4743aa3e34438fabefdee51b6fbea3195e625237..5037d1239edd5a03d71be9f6139db3d71d8d92d3 100755 GIT binary patch delta 101414 zcmc${37i$h)$rZb-FKO}votU;12aJ1%K!rog0jjwt>T6XDlSR%!98)n1tmUay`z!@ z6%}cCE-EVS7y%J5prVcnii(O#6cr6dV$fiMN(_lazyGP~duN6vdA>Kkzjv0~)wP|a zPMtb+YPq-ns^jZ7cAV8SX`Sh0vssmWxZifA+^~z?jn6~uV^l1hZjWsrbI!Zy^5P3F zy8PnF=S{l&f(tBn`MdT+o74fZqg8DAk7HNb6xf{@#pm$kTs}7>40!#TM^wQMv2bu5Bk$ zRwv7LifWYGt`vZ7AJ=uASl^OOB_bfLSvt5gK$F^f` zs>rb{$BC(gT?Ay?c4MSCPTWZpQK=x{IK@TDgu|QsDC)MU)=9=}i~23AJs%FgmKCdy z0W>^4Rh4zE#K2THDNGLK*k0A3!Jb_dv(*sWuJSx@=&(baBCvBD+p?g^wrsfJI+n(v z)NvDzfTUI@1+7lZRhGjmke%+`hg*u@Scegbn3T6P6ctm1Eby~NN}Oa@%275b2>+yn zYmrIvSmd%20vIGMrvnkBlsHaFEbL#>@q4bs3O1JA9v;SufDU(f1ql3%lEEhm+c9UP zuv-`bjt*=e6;HS^`A-$W_90;cv%|!cVuS<+?VX)a(jja4$ylBoa;{ z;f8-IJy0zOyOi}A;$C>x1s7Qtcb+uqf{V_*;L`KXnKtSCA6|6Mv9@oHJ?sMH9~Y{&^=~H09#6&b4j{e^geTov-2-o;794#phTX?9^rFO`CY$g_oRo z-n0SMdv;P@e{kt}|82c(7hN{(taB!xbk^nPSuZ3?^vj9oT{i9FOV6`jOcd+)K-cn8 zqT{4V=Uj2tqzf*abjigRTr};xOD9eH(Iw|u&nC*w{n15-0ZY1XBRzP1qU79c6xB$K z^>Ry=3*@KKdL>bwFJxjGtydFXo2UyK8?6nAq8UkL1u8YyeLk^Rop8d5C!cou8Rvv* zj+(1}rEVi;>SA@P+Nn0EKdH_30{acMRNZ1~dcK2`UX7z}(MBV57My*t<)T8P# z)vddq&h)75*{gS5pS}mw_dBrvrI$^cr+%LOwR(_hA8>x{EOKsAH>t(WQs-f3xwC@* ztJHL2W&>`n%BkDco$3yCm%3ZsqwZDrsr%JpwM0Fn9@fuLEmL7uEmtelBkFM#^1E6+ zp-y;GJ*Aq})9M-ZtXiYis^`@6YMpvPy{KMNU#RWsbM=aPS$(R$RMYKW*uS)YWzVqZ z*mLdq_HFj<_8s;M_KWr>_7ZigbHB6F`Hi#6dBJ(fdC^(#yyk3lUUz=$yy3j*yya|i zpdwo!;~mJ@3<>Y?|HvK%f8qYp{lfW``xj@2^SSe-v&)(8e(f~5SGrfZe|Nrec02bt z_v-%{?ltbU?se`=_j>mR_eOV?dy{*cdoPT-!#&|)cbU7~UE%)5T}kLM_i=Z1)_uZ# z(tXNpcAs&dCA5~v=iKMr7v0zF6Yh-P9e+3eUVKaZ_wlXqkK)_npTxJv{~X^D|2)1k z{$>2u`26@?@rU9|;}6G|#h1rd#P4t(iT@_PGJaG1@%ZZalkw*G)A5_sv+*_Y_3@YE z8{)6UUypB$zZHKa{%ZV>&Nkt?KCF-8|z480v_s18;ABg`t{veetiZ6~Y zi7!#B;;Z71#-)WG<8z5x8-I>>Y5eEo>qy`8{e}38QTj_dz3sa|d)s}--Rv$_*(K^d z_kDMZyF`89Zg)R-ce-ElyUYED`?cE?yDGLsT@$-Lc2jJ2EaZ1iY;J5`?B>`l#4m{5 z7h4ot99t55D7HMdf|!-D$6`;!o{T*eYmPk=dp0J3UWmOIdnvX)_DXC+?2Xtv@!!Qi zjQ=J6Mf{KPKMC1cGQ1gkE4C^2PHc1Rcd^a!58{7_e-{61{Nwni@m=x1#ka)d^FylN z8rvHCgZ}*}c9Z&J?2r42+ZNjv<@>mhZ(nhr#QqY4{=dckK}A=^XTZp7;@9(eL;S}0 z9B{uOK8xpKb#vlsM`$_WgohK)B%VsFNGwrLC!S0^!m~N?cw!aLwfsNF|C+?Q#BBc8 zC5qp8tNoRUjh>2SgBP~i{VZ#&+YoGeL)F<<#!fputiYS>XH=~fZ2Q3W7CIR#Snzv$ zh+XGfzB9!3eJi-<&2URa7qvb7s-kmtLEKk?*GT>~n{98Ao3?`0o9$rHS_W2&%*{Fw zG!ti;7^!!$8!Y_29c(smonX`NZSQ_J*#4d^@!mo=*h2EQ)fz1~nDwDfp7T3f;w5?Y z7CYdzE^Avs$z+h1x5he#a!K55ON@!C+U%Nr` z`?f@Q4?^`;+b6=rZ-aIsbo>Xf2HFdh@X}a!JhW2?kSz(kG)j#^`(7o4_PrwWxnBrB z=$Of_2Lr3lE(z>uf!pY9urrz#HMW$dt+SIl2KgZ$K=WA}HGTO=lh8nL@Xd8E43C1-4kUglvzkbgj!U~B4RXdg+fb-(a04_tuUoDc2TiaLEYyqR~rd$h(J4~sTh@GZP#1FxGmnj3RJYBm@A)w`B zn%3^ozSDI?R7T6+3?0*|%*=cl%|d}RD_@9mhNwCDLXva05*SytPMl~+5DNPjYMgz^UyXCL75itn@ypXh%Kf_M60lLtCY!VSovzUnNpfq z18F-knxpwFJ9LDGWpeD)5v_{s$`{e>5lFl9WhiC}H9aTQQYg#6iJGpXG%OP_BZ?># zni)kDip(M+A}Fe44lx?HLZNxYXygi|=9^L)yC7>|Eg-IS>)lg$*R8jd*A>s{*5hGX zZ`bp7u+zjXCD@m)o8qq=vgiYJV$`*FQmUKfE4RVtQ@@*l>z(8)?=?G>I{olA=@awm z6Ma>0^$x6~C`-v2$t+RTg(%NN=~_B#-B52q0tG~I2(Z_}7yJ{lQNa#{g2_Tb-^r*_ zE5&d@_O$XTF7|`qYp`onD(hQrg98EiEDe(-e7Fay_0||uD-nZqtybVSdS^*W_bBDa zI=jLo)msq`{`oiAUWBXaq$mioM6W{-+U7~J-Qc{c()|du5bG#VSSGw z?dREDQoiH6SPwFIRC%|A(|V-KX#|)!N2Q&VjiC|V)8hbjOSqxOSj}%+n-V1|<$VVM zZy?7;EnYGjA#s@$U2m$NqOqzoB|*E!OkBfH9PN@9#Nt8maR^kA$W{~B(|epNAR<28 zx>~5(Wi_T9swZRlrGbJ7LE4cVh{8{KViQXNH)!JLic57hC1UVk(jn@RxC;u$SNkPi zL}f|%a&7(CqI#f^AQ<>Xbzm^Wu99FM=Zc|@Cvb_qBJBtZ>+GL`y+K#-s|G!nvH^V2+L_)zdJ5hm6FrX(29IK-~!*)X|PrAJAQ;noBgv-345 zU8)E*g=M|EsOe#!UiI1AT|chtykw|-RGVB|B>&+WXK!)_net;YHHjIBF#+QHv7mXK zHcw;0AcQFB@7-*7@$I0bk=)xI9YRk8TR*bBT->`Yo=)gEZ$aEo&;-ZZNU6yhBO%%7 z?WA!JH$n2m{FtbgzdFOMvr|BWe*mRM4CHn(OF)TT>&G%3sktc3^sd7bHLmw4H9x$j z_xbA4a7XXMvlJ*vqgV{ATixI<^oK;C=m&P7j;-d?I<`8U^bQMp(@1`FKvq`0iezfm)CVxsqp2xp50R3 zU5Wiy5PE%TvMI!6h+QJoBKt8vc_i8}P-%!yK|~@CTl%)8&HfT1^-IQ;r>DtsFZE;9 zmwNMEMhVR$z&dqEh||v+C>fjSpqY4e#${q*(nd;J{ICp2H-``P8J$fD39+abCPdst zTf~OgH9S(%ZyZ=A;wYWaPtg;6^au~tD8T9vsJcc!UhTVdfV`TK6iUKsf!8CG$0Ut1 zk+d54D|q?gwd%KVak${j3yRj5TM9^8}OMIx>@(oJQo}A?%7*r{e&31ADxi_2c{|L@KGrXS$w> z`NiR}^}dRS7uI(zDpVNGsz0V;>8r^974UeC1n6HX*ckq~zKhxv7WJzi*0z7CVDqbb zdX09t0>z*uh!Uv0#$bz1(&KHgL8>@#Ypa-+>gNlfODGkAE|zXtO0RyTU$5*Wzf?MC zy9a#H+Ef_x|-+b616q6TE#AUPG`E%l2LKl327pY)4S z;iA+^MXA+`Jk7Kl)1GFSH&y1PCKriWB9noxur8pJeUq3PFl^D0MHgpW#sJvu`pL=6 za_&wbUlb73G+?T)6_G0qiicYV_;#B1rmvaNiD<#B$~-FM5fRx>h@^$7=J;y*PK{sM z&l(Uof||xhS6>|1ll@|YR3k`g>?UWD!j~9KKpiCMGU=pXkkq3|X_)E%Q&w*7=wFw8 z)ain(mp9V2F{t8biKL%wtp%#QwN3{6-Fwc#y#oMR$wg_<0o&w6o}YG7)TI?y9Nm*S zLdHlnm9EH}f5cQcs)8+6BmEG4ff97bw$Hc{Z3m-{@LgK-(sV35Z9w-!`dR2^@(C4o zbtW#YfrL#*+x4@qv-5nZ7L>5;?M73xHz`~)pz>6hi&7Jn76*0f*is9_E*6aPaf{d) z8zzYSTL3MURzq2$kpLK2$DovGoHRygJjl|fiOJHiM@YYQ!r4HorT;DoNn}()mCCtnqR@(<#iR8M*OcM2kbYXsJeJ;vR{EZig)QQ}MB}4nO zc0F=v{n>FD`o;8U5q)eW5jKm5u1M=@%n;Fg#@eMi(Qrtk%oF@nJywinb_%Vjn-Bu} z*b{JU`Kj>5p}o{=;b%j8V@Bom6b*HW7=v)O&BQkxKCJg)E!jMsjlQTS!^guxSR|9- z5*vtO&h5qQSLhAigW)~HhG#WH8^nV1Mc4HG(! zl?AsW3SWVJ(`05%w8j146{(>4+Q;ITdiP;#*xqe!7vB?-X4&{w$azTurjV_0ypBW6RZ*L&UjstL<@EF zzJzCvw29`MBW=pOuml|-)XP7}G0hiSdkDS_Lh~2}tzbo2qlx8n4#odVrv39&rldzu z(Fo;nPnd+ji83gmH_+AaX-yJ&D+zx-x=*}B6m~3JJi2!;nVRZ38ETfG&r%Thp=VoO z(6iw`M)$_7%#5i`l90r=5ettWj(b;rcOSFM?soOsPnf#SAEj{ZL#nT4TC&xx{2960skSBM#GF z#5>`a$;gA2M=oVPL`hfd@?zhf%w&QIgh{8jM*2lE!(tcKhkno{iyp%wk_b4KpfZdX z;YmW!M*4@?7(Ci%fwnG{34twUMYA=&6zA_Z-;ANZxIe`FV_^3aM_2Q@MH^+9goTV! zX%L&1u^Fl|x_S+TZXZ?!UB8zTM^|e^ydQ}D3Rjt^qeL9w6KMdV%uU$I}He$ z41T441%o4cO9o6q9(EvicGfQqX9b5Ipp44KL>*28Fj#7BlsD*vOrx&L@UZLV-;eNP%Zg9-mG^3p2~*7adlrvU*x7GsQ$udbyvtESUSo z^Y6!|F#jsQ+)rL6JdODk2v^h+8CSPLg_$O`>UY}3<;TU95y$Bzc2J2Q?_&=e%D6zN zpEY5)b*_m!YN&m>go1|bWX;2ggt4J0Jpi2=ueS~`DwPOd_c-R{;;$wJwI<4z6l1O6 zIE;Ml=m+C#FQ}7wqE39#Cb*&t+64XLo$a$l3qReYepYvsY~1KWCNFz9Obg_s! zsV(#JypOaPJ%KWEeFPD%k+(#~S?n`o`=AT8Yb8zwqx6O9bX*+A3FZyw98pt7pVqy~ zr6c1yzW#{bIAtC=Vqg~jMa&k8G_&#IHJ1fS6e}y2dCqy0aKRcctuz3+uh6-Rf&~hl z9;osbAw;eJuGlWg+CLN1iO$;(Z%^L2#hkH7I4|aK%28H(Wlr^L$4f zRdj=KGKr3lmpL2rOYg$)gHyM4hSCph zQcW%#aoi!Lb~V(Cz9!BNuRN|p*U#*X5*G}Nw@@Om#cLuzKyB~J@ZsY+sGZ^3<9bwS zN1N_>ffe(uR2ReYXJ#LNgqj#0dHmecNr(|9aa?9olfsXWuchBrXH;|8eta(-1hG-$ ztKsc;#!ppK!k5Os*?*$%Xq_qolFYc^;c7=eD={dViCRIUqnrji8`RMl8zx*xV~jqb zFXUZt!uJWkc0%7W8HAj|upSnj*dr;RF)5qFfhQW^@#gTqP88rjK2d;gKk=vM>G^G8 zIE5=_IK`~`KUxUO?NjQOuRrPae<5U5kWi2?h+23`xBrJC6+@(!4G3R3tyA_My?`U* z=6pR!4zWivfQ)R^DjZ?)GAVH^p$lBC5T-ElinmB!#C%BviK*!#?GH<%H?=1{DQ=5I zuuF#Osp(=IOAe!jJ*|-ri0@d23m%vOeu{+-nNRX6V;B$5JY-!L zx8QcuMj>;RQrQl=6n5}+0O+TI-I zKDT_gI_qNSIz*;BOA9133|TJvn<$IYGJuKc+t;q8N&%TEmXt0MRhO>vd2^}Q71~aR zx!{s1*7lf*JJvkJ`X0%=tX0Y&of5wDYDxA=ZLtlt&qbHu5b(*&tY8Wc_P&6DxEo4L z8VzWC2Kr%PtDvw^HkqV%ji{nZziLjV(yyE?di1H;naY`&>S0X%T)z{lD!yz^rjy@k z_8cEubWTS3O7dkTqne%RGz@8R{mwo^?y@oJD~S!r};&CI3@O|me^xkVn?>b0xX|*KuhePme|@T zHcQ3WBqnpf)K^5(m~NPc$D*BioS7-QFtCo%y9ZePCE&-Fr8|kfKs(qpFPSDR%cwcS zU;q<}Wwh`x*h2I~x(jCXFw;k$)gpzRgW<)9H^j~k<5{$9n0*@EtN~`VbTf!X<}qPR z-xhl&>Sb_Xg-T;8GbN>mNSC6A=q{hp{i(|IKsudtn9gvNIsOV-MOKTGnVO-F7+5v; zXB;#bLbFTNDClT6VI2en39s?xHq5ceViCQf}G*y%da^R&NRr-)WLjVxbRZ?(z%j4s5R@^(L^XLI3 zwbbQd)N2^hz6Qpbk~$y{<21^&z?c=m7$7hVh>3fFU=HvAbDRiM9`%e!NDsAYz>RsL z@)gsFaFJ=BtdohsR74g{t$`8>A(61<#U@WreV!h{7!Y*^Ru(qNYrO#mb*+HSh=A3# z1}02~*8)f=1Loe8)d?`V2W$B0c2v0q&D??ZMuit?Eibd3RHoQ3&Nj=Os~C@(tY6YX zCSlpTpVXncu zg&s&tK`O2Qj1AZCz?P3uP))};Q>1}KDyY}8fj>)21&T=oKF*VN57PLrF@PIfEudc`uA4b8&M6spOY^Hxnzmip~fIYMDL>8l`!H-zj z=iKUXT2E?AYo}ORqs2bUcUp!FCUAU+5w|c>Ls+5t`XbYWDlXCW-FR+wR^#(8>hoIF zXNf_iXS=d8M!=O3NUGwQHzoxcfq#dhE7^S+1q~t@XW1E8(8QdJK_fV2V$06R5~b4z z;D=fEU%ctGLG&s8#!w*hW3ppXiApzpRQFRl_^fi@>c>twhJ$1?Dxq4;_5{48?TyMW z)`LS~xY%<*&U!5)GJVQBH^ZEb?GR!@!~*-mXjM`M>I@2S$}&bJ`@&_jAqx8IGOi{n z=6j^XiDv8+%HlfOIHK4GqDj$7gZwyedVNwW!cHjbJ%@j3>eBOTW%m?Adn@4=)wW;Z zFF`@?E$4d<>8PcBiuoQRIWj#gySJe4F_af19cxG=org#|50P{pI1Bb6=?vI1h8NnT z%@FQMiibH@G$tCuO|vlVL7?)#TDg~Hl4B(>ubkxa_IZj@N_caxg4xCRH3DZ7D5%lx4CY1510mV}+ z!_ml0;s|_Lj1na)54ZHsmN9p++WYbM{q{;!VC(24(V1+qAdf#%O#g(a8JPz1CX+(m zWQxd}Oc;5S=_7A4o8(PKKS2q5OH5%|w;To&rO&XYpTxt>#zfevcP5CRxybmLlj3LA z(-B5g9L>psquFH~DdfhY#?_3=i=_=2eM@+g*3+ma4XXOBf@agG>bDZ}CTm|BRh_1% zKT;mfC#9bjBPj{&dUl#g1n3GWlQW6P2h3|9yGr){>5w-RPUui_C|r=TVgL%Q;-zP5 zFa))OF(9^QT;^TF{Df8t+E%y3{XP$+A_4E91T10NhSE*vSN!S0Grt?KW>f zmbdBUq=hRk5Rg((#4nP!%EluqlVoXz)rsJSr0ks;ZZRTKU|M6(x`fZ9X?vN}Lr`kc zG)g;bDEf_d4xeu9R0@8>@Ei!5nWAuO1Q4?a%;mO@56uZNwwviwWEa2^sGN z4|WIqAZ&MGMOJKFi~myiuU#po=@8(k>Fj+po!z$S#McgNYS1kh+gA$;($ais!OWG` zD-~6cE%jr2H=n3+_%CW)KPt>aH=g)2bfj)n%{9p>)zXa%%_Os~eY6sOFpM*euWl@M z)tj=cGEr;9CF*P4R9?g~e}7G-eKW#-_F(fP5&_?TNR0%KtL9~Qv~uR?RRJSBB-+`3 z*|vtS(zd!?BQiDj;ALaRYSpfJBxQlfbV4yd#W|KPVFX8&Sxj2(U<;EOXkY^slNwQZ+Id$4-O?2$RW>2B)>h~Gz6MOpvwlNqhag@p_9%O1h11HA8p zhj|Dr?|W8it1I&_?dR7^0<98Y0g;TF_(5zR(QdsgPjugzTA0f z*G@10pE$8Qxw0hM#*e-9hbR3%^kb{xOA{X2{1Ffii`-r%heh5Cd)M@4p+S~t zV$I>nHD;l~Z4R4i(kwLm?nejm`C3gq(7vvbMWl1P%DTmkU5{e{;=Qgtl6c$yVyi?p z>{pX+T@mwBraiK9#j?-7svGg+|JGIb$>{9L_m^k7b+*Ize%uW(yMJ7zUR&PrCyy$< zUjh{hbt%Y0G9D=B>P%s6@hn>1o%W1=gI zSjp&AMxDh88nbxIChp69CtAxbokDh#a9P?3zw@&R9i04o{z?4mpB;RlLk4=J>?TQ0 zqXK!Ohhrb)*M%iUyw$7~J7LYwd(>4*w=zp_RUpQTtNTr*pJ4s1>I|7e1a{gDzyI@Y zy{r667UC+!fy_djJT0>jSNQ;)RIE1H6_pCVIi}m`^PRM-tHWNRVoXTc62XH7IK~m@ zX!fPE!4=@keI{$N!uKyK#*TKy!{Mi7;uZdAoS$vGt|!&X5=k-tdh*834YMkX2ffJ^ zplm}I>rz}|q94Id<_?Utf|phgoZq39F+82AX@`m=D0U4GQSijZP<&Dkw$j=xd&^{~ z!#t2p3|N?Eq+=8zm%z|j8%1;^hTz5K(F=LdvBy<`@_lW#C!_BODT%Sw+LQ;FlvDG#mn9 zlZiOlvr@v0GF8gz8toEchWjrG8Dn)z!2)!hg>0b(txUTkXoyr8TwM_d=wwLz-qqEv zlR{Jc`07KH6Rx;=XjWDZwTz*r$b``As(oi%DXr?;ml)Ng{R_s9k_|CSJ*WDZnZ6}{l%|(h`|vv zM?g5f9}9X8u@}fwAJJGOp^f1yzv#-LknO+ddkBX@ELjX{(ub~M`9mRKPS)sL5k(f+ zZBB*6I2AJfmzAwfg|vpKPlepm8m7y+5Ke{6`Q-w2b2#`{gF4Ra2g7BzjtZvt>tk6% zQRJ(`pZ_YY)`SawbzAYAX3aY*m=_*7<4SdB_`-~-T^8xZ%8b&yM8MloNYU=WqU95> z8Lg`JNcTu*5)~{8e|_!Q?(2tmw};+!Rf&GqSLHIgsW}73Uo+UirYWB`!C?d+H9cnjoIg;ARu#pi^+u;PB2HPIj*u44@CfE^PqabVvcv3nnOlo;E=N z^r#66podLR06k!W0_aW?6hJp0q5<6`6zvJ_q<6BIxn znVcVK>@VZ1O?C&CMbX&F+l;e*aQX8y(TDtZVMOO zaEd#3#NKemUvJQ{$hFo41f&%Dn6BIzVnxFs*!<%k8#l3FG-f+ghXhc&8y2=y~IR7xQ0_SrR6gZ!lpuqXP z2@0HdOi@Vc1O?DW&AIja;N0Mk z=$9raaK1Jf1kRTxC~*F4f&%9w6BIb_YuSEtU$T9p5g38=S!sd-=OGgm zIQN^Nz`4T&1y0V0+>QGXx$!RyEVR&-g9-%w-NXu@&rDDNeQbgP=mQfJKyRC%0D5hp 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",WHITE,{1.5f,1.5f}); + /*DrawStringDecal({0,0},"the quick brown fox jumps over the lazy dog 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); DrawStringDecal({0,18},"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); DrawStringPropDecal({0,36},"the quick brown fox jumps over the lazy dog 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); DrawStringPropDecal({0,54},"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); - + */ return true; } diff --git a/TiledCollisionEditor/pixelGameEngine.h b/TiledCollisionEditor/pixelGameEngine.h index 043373d..d6d535a 100644 --- a/TiledCollisionEditor/pixelGameEngine.h +++ b/TiledCollisionEditor/pixelGameEngine.h @@ -6307,6 +6307,7 @@ namespace olc mapKeys[DOM_PK_END] = Key::END; mapKeys[DOM_PK_PAGE_UP] = Key::PGUP; mapKeys[DOM_PK_PAGE_DOWN] = Key::PGDN; mapKeys[DOM_PK_BACKSPACE] = Key::BACK; mapKeys[DOM_PK_ESCAPE] = Key::ESCAPE; mapKeys[DOM_PK_ENTER] = Key::ENTER; mapKeys[DOM_PK_NUMPAD_EQUAL] = Key::EQUALS; + mapKeys[DOM_PK_NUMPAD_ENTER] = Key::ENTER; mapKeys[DOM_PK_PAUSE] = Key::PAUSE; mapKeys[DOM_PK_SCROLL_LOCK] = Key::SCROLL; mapKeys[DOM_PK_NUMPAD_0] = Key::NP0; mapKeys[DOM_PK_NUMPAD_1] = Key::NP1; mapKeys[DOM_PK_NUMPAD_2] = Key::NP2; diff --git a/assets/font3.png b/assets/font3.png new file mode 100644 index 0000000000000000000000000000000000000000..348a508bddb0949f84bcc596abbba28856bca5a0 GIT binary patch literal 1893 zcmV-r2b%baP)EX>4Tx04R}tkv&MmKpe$iQ>7{`4t5Z6$WWc^VnrNF6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0Ya)N&;^Mfxh}i>#<}dUz%#=}E;COYCKk&*EcY<07%K4$aYRuy$`|r3 zE1b7DtF;E}+>^gBSkzXsT&FpXB$kju8X{ygP(=+EqO@wHn8?t6!oxr2_|xQ)$yEg- z#{%k5Avu2VKlt6PS&B`&Nx=lr|6)#N?kat9cF(j`N3BtK1|R07`5=$i__$Sp9m=JwXv$LRx*qpp^3fP+I| zvP{|Q9`7FL?d{()o&J6R)jo30B29;$00006VoOIv01p5M00x&opB?}J010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=mQNFFe;y4v84b202y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00lisL_t(|+U=duj^iK+fC#(W0AFR@MqI7^tL2HdmzA^1^JgMh*a18zGUcN> zIqKkyP851m4Pqh~96(#8MIF)n`)nOqSvn42A^`6*-0#rwjPY#Sw$0_YZQE8eoNS+u zIy_rep?4g}qU-0Z15ng6m!1DcmH}7mRMpPv?{Jpx`^rmz|An*Fb<^DeJm1i90&?ko zC1g}eevb-5xD9BYxugA<%g%LvQ{TTlIL@`ldyrMf59=uU-d=Yr zKl`1b56u3|zQ91R>;wb=0000000000_&M$aNzV4iQHabZk?cmAO#4pxj}I8SHFb6`Y7$hS`CvxP<7+xWfQeJwT!X-aT}T03_|HUP5Ks zR%hnzvW8ZbcRv4UdENo|*8czu003a{0{{R30000000000z*{mKK~$T7vh8Qv?%Mx< z{eQN6)`l`=92=27mH)P0#hs9u=U-wgaArI1@%PcgEYY$@`Lq3xJbbn@_wKjqMyg0% zyTTK`8qJ&v`-L-!luA7P`Bmw(qV?Rt>D}ReN{9U8 z7lYu+CBPkKT~&Xh5zJBl4+sz7`ELi=_t^lVv)6V2BZ8}=kM4Hol7GM3+EMW?WA(uV z>nuY?HN(xOqjILib~w_x{~c$+qx_CRSmhm5OV000000000000000?!l(K zTRu|0TKi|~$R5Xh_xm$-e7e`~+d9&S~#i+QM`IwL+`urUBx8E+LVJl=yvPm(NSG-5$jwY3{Z{Jp=w93wa&Xid0 z2tY9l9gV+IYOE{uuh3mq{%#TIs4#10ua+hymSz@nCWNVAgDdubS9Zc>ybNLJynIom zv5V9ta{vktx@t0!SHCk!Nu#s){CkJ~iP*dhmGQd5DEE12&SPt%xJ*8XjQwToHk;Ex z`57CB3IG5A000000000000000HY)A>bIQ_nE44yy$04qY_UB-KKncgw`DWV+b%4OV0000006xKYLx3B=-4r6_LBD6`Jdjl33yk7| zS{wi@{p{RFqSgKXR;FEf9@%w0v-3Q@`Z#Umdi9I}R5(tout6q+82f9@5ZzP$+JBu{ zcPMUG&D`t8y2-~jQ9+i~^uJdzf=t=YJK?g|J0HuRttWdkv2x~J)d?T%_extHcTnJ* zkARsxKJZ-ntMuHimg8MMjVoms41qdPK=yj-jz?lEL>^TfjzbS4>v`Pg(G}l6GXrP! z^Z1JXSNMkAIV