From 4f2af128f2466315fd9af2c56598fe1861ec9faa Mon Sep 17 00:00:00 2001 From: David Konsumer Date: Sun, 14 Jul 2024 14:26:44 -0700 Subject: [PATCH] more troubleshooting of sfx --- docs/cart/colorbars.null0 | Bin 12327 -> 12327 bytes docs/cart/draw.null0 | Bin 12197 -> 12197 bytes docs/cart/filesystem.null0 | Bin 13250 -> 13250 bytes docs/cart/flappybird.null0 | Bin 1192638 -> 1192638 bytes docs/cart/hello.null0 | Bin 12065 -> 12065 bytes docs/cart/input.null0 | Bin 52056 -> 52056 bytes docs/cart/justlog.null0 | Bin 12102 -> 12102 bytes docs/cart/sound.null0 | Bin 103295 -> 103295 bytes docs/cart/tracker.null0 | Bin 17222 -> 17222 bytes docs/cart/typesizes.null0 | Bin 12152 -> 12152 bytes docs/wasm/null0.mjs | 2 +- docs/wasm/null0.wasm | Bin 244620 -> 245872 bytes null0_api/src/null0_api_sound.h | 28 +++++++++++++++------------- 13 files changed, 16 insertions(+), 14 deletions(-) diff --git a/docs/cart/colorbars.null0 b/docs/cart/colorbars.null0 index 6d1368378e40e83232a86dc87f360c53ca2a392b..7f327e241ee14afa0e56c3835d1c920de7149621 100644 GIT binary patch delta 44 zcmZ3Uusne$z?+#xgn@y9gQ2ltB98)_qwSP5N861?bM%=S3npLC*JE`_3nq&i>oGanPIfh}1pplh B48Z^Z delta 45 zcmX?`{b0&)#>oHlGO?EY|1pp5I B3=aSR diff --git a/docs/cart/flappybird.null0 b/docs/cart/flappybird.null0 index 821da1863dfbbb70c690564bd36e53cc20828442..a2a8513f7d638596f19deb6352b28cad051ca84e 100644 GIT binary patch delta 115 zcmdn@)MMXM51s&TW)=|!1_lm>=7Nbl3T&>nQ_@^*8;x3x7+Z~)T8)@njaXWZSX+(Q zT8-FSjW}A3I9rXlT8+3{jd)s(cw3G5T8;QyjRaba1h*Oq)oU{~7fj!*Eu_Z`G-!ID So{-q|039K&?JPP%yVw9bkRMb4 delta 115 zcmdn@)MMXM51s&TW)=|!1_llW$DD~g3T#$pQ_`%=8jV_w7+Z~)T8)@njaXWZSX+(Q zT8-FSjW}A3I9rXlT8+3{jd)s(cw3G5T8;QyjRaba1h*Oq)oU|3=1kwLEu_Z`G-!ID So{-q|039K&?JPP%yVw8=fgX|o diff --git a/docs/cart/hello.null0 b/docs/cart/hello.null0 index 43ae841eefa5f9bbd30a262027bed627e61e005e..ef3fa83ebea0584bc3246a76136bfcff194b2a93 100644 GIT binary patch delta 45 zcmZ1&w=j+;z?+#xgn@y9gQ2ltB98)_qwSP5N861?)AX1c3nrh^(_?b9o%~Br9RLzz B4JZHr delta 45 zcmZ1&w=j+;z?+#xgn@y9gTXOpB98)_mD!XuE3=J8)AX1eb0(kC(_^wSoBT^p9RLJa B40Zqj diff --git a/docs/cart/input.null0 b/docs/cart/input.null0 index 06b4757d2266f07ac579a33e2be2d4f051545cd1..2a74aa162dcc14460c577bf4d1fe35df1ac1224b 100644 GIT binary patch delta 48 zcmcaHjrqnjW}X0VW)=|!1_lm>#)64F3T#fcQ_`GlHyZUEV`?mzeBhWKlauY{563cC E09?xu9smFU delta 48 zcmcaHjrqnjW}X0VW)=|!1_llW$DD~g3T#$pQ_`%=HX8LDV{*)yeBhWKla<-#563cC E08QBsX#fBK diff --git a/docs/cart/justlog.null0 b/docs/cart/justlog.null0 index eaa2cf335a3af71c69fe168c854716d5680ceb9d..37bda6e869b1778f9cc2bddb4ef6c3ca912a0682 100644 GIT binary patch delta 45 zcmX>WcPx%4z?+#xgn@y9gQ2ltB98)_qwSP5N861?yY-kF3nstU(_?b9oh+}f4gerd B4B`L) delta 45 zcmX>WcPx%4z?+#xgn@y9gTXOpB98)_mD!XuE3=J8yY-kHb0)vn(_^wSn=G%d4geBE B3@`uy diff --git a/docs/cart/sound.null0 b/docs/cart/sound.null0 index 5f617cbefc87c316ed16d8d724c625a64b3d221d..6d39f1a5c5805d92cf715a89cfc7ac45adfe07b5 100644 GIT binary patch delta 58 zcmeyrjP3t2Hl6@)W)=|!1_lm>#)64F3T%$HQ_>u58;!OaF*;0QYAl#uGKo=-87Mma O&m=~L=|?9q?g9V;EE4+w delta 58 zcmeyrjP3t2Hl6@)W)=|!1_lm>!n}z*3T$CkQ_{k$8jZFZF*;0QD$JW+GKo=-87Mma O&m=~L=|?9q?g9VbZ DE)NaI delta 47 zcmX@s#(1oakte{LnMH(wfq{d;F=rx=0-KfDlr$@|jYjcKOpZB|Cp+meS(!~f?9>bZ D9_9@N diff --git a/docs/cart/typesizes.null0 b/docs/cart/typesizes.null0 index ea34659305d0ae77bd755b54e666ece7d8883508..0728de538fb9a18815f520708c89bdd9a4f39c37 100644 GIT binary patch delta 45 zcmewn_alxcz?+#xgn@y9gQ2-#B98)_tL>CDSKEz7Z}pg(3nnY->oK|7P7c&p2LLWl B4DA2_ delta 45 zcmewn_alxcz?+#xgn@y9gCRO^B98)_uGN$@U8{{oZ}pg>^Cm0m>oMtCO%Bvo2LK`n B3`hU~ diff --git a/docs/wasm/null0.mjs b/docs/wasm/null0.mjs index 6251339..1fbb9ce 100644 --- a/docs/wasm/null0.mjs +++ b/docs/wasm/null0.mjs @@ -5,7 +5,7 @@ var Module = (() => { return ( async function(moduleArg = {}) { -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{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){const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}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);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(_scriptDir){scriptDirectory=_scriptDir}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")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="null0.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("null0.wasm",import.meta.url).href}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={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["Z"];updateMemoryViews();wasmTable=wasmExports["mc"];addOnInit(wasmExports["_"]);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}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function emscripten_clipboard__register(clipboard,text,text_size){function emscripten_clipboard__change_event(e){const newText=e.clipboardData.getData("text/plain");let i;for(i=0;i{if(error.name==="NotAllowedError"){setTimeout(function(){pntr_play_sound(sound,loop)},500)}})}}function pntr_stop_sound(sound){const audio=Module.pntr_sounds[sound-1];if(audio){audio.pause();audio.currentTime=0}}function pntr_unload_sound(sound){const audio=Module.pntr_sounds[sound-1];if(audio){audio.pause();audio.currentTime=0;URL.revokeObjectURL(audio.src)}}function pntr_app_platform_set_size(app,width,height){Module.canvas.width=width;Module.canvas.height=height;Module.ctx=Module.canvas.getContext("2d");Module.screen=Module.ctx.getImageData(0,0,width,height);specialHTMLTargets["!canvas"]=Module.canvas;return true}function pntr_app_platform_get_width(app){return Module.canvas.width}function pntr_app_platform_get_height(app){return Module.canvas.height}function pntr_app_platform_render_js(data,dataSize,width,height){Module.screen.data.set(HEAPU8.subarray(data,data+dataSize));Module.ctx.putImageData(Module.screen,0,0)}function pntr_app_emscripten_init_filedropped(app){const stringToNewUTF8Local=s=>{const buff_ptr=Module._pntr_app_emscripten_load_memory(s.length+1);Module.HEAPU8.set((new TextEncoder).encode(s+"\0"),buff_ptr);return buff_ptr};Module.canvas.addEventListener("dragover",e=>e.preventDefault());Module.canvas.addEventListener("drop",e=>{e.preventDefault();for(const file of e.dataTransfer.files){const reader=new FileReader;reader.addEventListener("load",e=>{const bytes=new Uint8Array(event.target.result);const data_ptr=Module._pntr_app_emscripten_load_memory(bytes.byteLength);Module.HEAPU8.set(bytes,data_ptr);Module._pntr_app_emscripten_file_dropped(app,stringToNewUTF8Local(file.name),data_ptr,bytes.byteLength);Module._pntr_app_emscripten_unload_memory(data_ptr)});reader.readAsArrayBuffer(file)}})}function pntr_app_emscripten_get_time(){return performance.now()}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;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{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)=>{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++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=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{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?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]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=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]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=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]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=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]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=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]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=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]=tempI64[0],HEAP32[buf+92>>2]=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];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_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fcntl64(fd,cmd,varargs){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]=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_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){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}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}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 isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return setTempRet0((tempDouble=ret,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),ret>>>0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset{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:1};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];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=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{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();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;i{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var _emscripten_random=()=>Math.random();var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var maybeCStringToJsString=cString=>cString>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 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 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]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=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)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop_arg=(func,arg,fps,simulateInfiniteLoop)=>{var browserIterationFunc=()=>getWasmTableEntry(func)(arg);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg)};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=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)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",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]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=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)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>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{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=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];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=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);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]=tempI64[0],HEAP32[newOffset+4>>2]=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}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}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];var len=HEAPU32[iov+4>>2];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){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};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 wasmImports={H:___syscall_faccessat,C:___syscall_fcntl64,B:___syscall_fstat64,q:___syscall_getdents64,y:___syscall_lstat64,u:___syscall_mkdirat,z:___syscall_newfstatat,s:___syscall_openat,p:___syscall_readlinkat,n:___syscall_rmdir,A:___syscall_stat64,o:___syscall_unlinkat,D:__emscripten_get_now_is_monotonic,i:__mktime_js,m:__tzset_js,M:_emscripten_cancel_main_loop,X:emscripten_clipboard__register,Y:emscripten_clipboard__write_text,N:_emscripten_console_error,F:_emscripten_date_now,j:_emscripten_get_gamepad_status,t:_emscripten_get_num_gamepads,G:_emscripten_memcpy_js,O:_emscripten_random,l:_emscripten_resize_heap,E:_emscripten_sample_gamepad_data,V:_emscripten_set_keydown_callback_on_thread,U:_emscripten_set_keyup_callback_on_thread,L:_emscripten_set_main_loop_arg,T:_emscripten_set_mousedown_callback_on_thread,R:_emscripten_set_mousemove_callback_on_thread,S:_emscripten_set_mouseup_callback_on_thread,Q:_emscripten_set_wheel_callback_on_thread,W:_emscripten_set_window_title,v:_environ_get,w:_environ_sizes_get,b:_fd_close,r:_fd_read,k:_fd_seek,x:_fd_sync,a:_fd_write,d:pntr_app_emscripten_get_time,P:pntr_app_emscripten_init_filedropped,f:pntr_app_platform_get_height,g:pntr_app_platform_get_width,h:pntr_app_platform_render_js,e:pntr_app_platform_set_size,c:pntr_load_sound_from_memory,K:pntr_play_sound,J:pntr_stop_sound,I:pntr_unload_sound};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["_"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["$"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["aa"])(a0);var _null0_file_read=Module["_null0_file_read"]=(a0,a1)=>(_null0_file_read=Module["_null0_file_read"]=wasmExports["ba"])(a0,a1);var _null0_file_write=Module["_null0_file_write"]=(a0,a1,a2)=>(_null0_file_write=Module["_null0_file_write"]=wasmExports["ca"])(a0,a1,a2);var _pntr_app_emscripten_file_dropped=Module["_pntr_app_emscripten_file_dropped"]=(a0,a1,a2,a3)=>(_pntr_app_emscripten_file_dropped=Module["_pntr_app_emscripten_file_dropped"]=wasmExports["da"])(a0,a1,a2,a3);var _pntr_app_emscripten_load_memory=Module["_pntr_app_emscripten_load_memory"]=a0=>(_pntr_app_emscripten_load_memory=Module["_pntr_app_emscripten_load_memory"]=wasmExports["ea"])(a0);var _pntr_app_emscripten_unload_memory=Module["_pntr_app_emscripten_unload_memory"]=a0=>(_pntr_app_emscripten_unload_memory=Module["_pntr_app_emscripten_unload_memory"]=wasmExports["fa"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["ga"])(a0,a1);var _null0_color_tint=Module["_null0_color_tint"]=(a0,a1,a2)=>(_null0_color_tint=Module["_null0_color_tint"]=wasmExports["ha"])(a0,a1,a2);var _null0_color_fade=Module["_null0_color_fade"]=(a0,a1,a2)=>(_null0_color_fade=Module["_null0_color_fade"]=wasmExports["ia"])(a0,a1,a2);var _null0_color_brightness=Module["_null0_color_brightness"]=(a0,a1,a2)=>(_null0_color_brightness=Module["_null0_color_brightness"]=wasmExports["ja"])(a0,a1,a2);var _null0_color_invert=Module["_null0_color_invert"]=(a0,a1)=>(_null0_color_invert=Module["_null0_color_invert"]=wasmExports["ka"])(a0,a1);var _null0_color_alpha_blend=Module["_null0_color_alpha_blend"]=(a0,a1,a2)=>(_null0_color_alpha_blend=Module["_null0_color_alpha_blend"]=wasmExports["la"])(a0,a1,a2);var _null0_color_contrast=Module["_null0_color_contrast"]=(a0,a1,a2)=>(_null0_color_contrast=Module["_null0_color_contrast"]=wasmExports["ma"])(a0,a1,a2);var _null0_color_bilinear_interpolate=Module["_null0_color_bilinear_interpolate"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_color_bilinear_interpolate=Module["_null0_color_bilinear_interpolate"]=wasmExports["na"])(a0,a1,a2,a3,a4,a5,a6);var _null0_file_info=Module["_null0_file_info"]=(a0,a1)=>(_null0_file_info=Module["_null0_file_info"]=wasmExports["oa"])(a0,a1);var _null0_file_append=Module["_null0_file_append"]=(a0,a1,a2)=>(_null0_file_append=Module["_null0_file_append"]=wasmExports["pa"])(a0,a1,a2);var _null0_file_list=Module["_null0_file_list"]=a0=>(_null0_file_list=Module["_null0_file_list"]=wasmExports["qa"])(a0);var _null0_get_write_dir=Module["_null0_get_write_dir"]=()=>(_null0_get_write_dir=Module["_null0_get_write_dir"]=wasmExports["ra"])();var _null0_trace=Module["_null0_trace"]=(a0,a1)=>(_null0_trace=Module["_null0_trace"]=wasmExports["sa"])(a0,a1);var _null0_current_time=Module["_null0_current_time"]=()=>(_null0_current_time=Module["_null0_current_time"]=wasmExports["ta"])();var _null0_delta_time=Module["_null0_delta_time"]=()=>(_null0_delta_time=Module["_null0_delta_time"]=wasmExports["ua"])();var _null0_random_int=Module["_null0_random_int"]=(a0,a1)=>(_null0_random_int=Module["_null0_random_int"]=wasmExports["va"])(a0,a1);var _null0_new_image=Module["_null0_new_image"]=(a0,a1,a2)=>(_null0_new_image=Module["_null0_new_image"]=wasmExports["wa"])(a0,a1,a2);var _null0_image_copy=Module["_null0_image_copy"]=a0=>(_null0_image_copy=Module["_null0_image_copy"]=wasmExports["xa"])(a0);var _null0_image_subimage=Module["_null0_image_subimage"]=(a0,a1,a2,a3,a4)=>(_null0_image_subimage=Module["_null0_image_subimage"]=wasmExports["ya"])(a0,a1,a2,a3,a4);var _null0_clear=Module["_null0_clear"]=a0=>(_null0_clear=Module["_null0_clear"]=wasmExports["za"])(a0);var _null0_draw_point=Module["_null0_draw_point"]=(a0,a1,a2)=>(_null0_draw_point=Module["_null0_draw_point"]=wasmExports["Aa"])(a0,a1,a2);var _null0_draw_line=Module["_null0_draw_line"]=(a0,a1,a2,a3,a4)=>(_null0_draw_line=Module["_null0_draw_line"]=wasmExports["Ba"])(a0,a1,a2,a3,a4);var _null0_draw_rectangle=Module["_null0_draw_rectangle"]=(a0,a1,a2,a3,a4)=>(_null0_draw_rectangle=Module["_null0_draw_rectangle"]=wasmExports["Ca"])(a0,a1,a2,a3,a4);var _null0_draw_triangle=Module["_null0_draw_triangle"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_triangle=Module["_null0_draw_triangle"]=wasmExports["Da"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_ellipse=Module["_null0_draw_ellipse"]=(a0,a1,a2,a3,a4)=>(_null0_draw_ellipse=Module["_null0_draw_ellipse"]=wasmExports["Ea"])(a0,a1,a2,a3,a4);var _null0_draw_circle=Module["_null0_draw_circle"]=(a0,a1,a2,a3)=>(_null0_draw_circle=Module["_null0_draw_circle"]=wasmExports["Fa"])(a0,a1,a2,a3);var _null0_draw_polygon=Module["_null0_draw_polygon"]=(a0,a1,a2)=>(_null0_draw_polygon=Module["_null0_draw_polygon"]=wasmExports["Ga"])(a0,a1,a2);var _null0_draw_polyline=Module["_null0_draw_polyline"]=(a0,a1,a2)=>(_null0_draw_polyline=Module["_null0_draw_polyline"]=wasmExports["Ha"])(a0,a1,a2);var _null0_draw_arc=Module["_null0_draw_arc"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_arc=Module["_null0_draw_arc"]=wasmExports["Ia"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_rectangle_rounded=Module["_null0_draw_rectangle_rounded"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_rounded=Module["_null0_draw_rectangle_rounded"]=wasmExports["Ja"])(a0,a1,a2,a3,a4,a5);var _null0_draw_image=Module["_null0_draw_image"]=(a0,a1,a2)=>(_null0_draw_image=Module["_null0_draw_image"]=wasmExports["Ka"])(a0,a1,a2);var _null0_draw_image_tint=Module["_null0_draw_image_tint"]=(a0,a1,a2,a3)=>(_null0_draw_image_tint=Module["_null0_draw_image_tint"]=wasmExports["La"])(a0,a1,a2,a3);var _null0_draw_image_rotated=Module["_null0_draw_image_rotated"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_image_rotated=Module["_null0_draw_image_rotated"]=wasmExports["Ma"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_flipped=Module["_null0_draw_image_flipped"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_image_flipped=Module["_null0_draw_image_flipped"]=wasmExports["Na"])(a0,a1,a2,a3,a4,a5);var _null0_draw_image_scaled=Module["_null0_draw_image_scaled"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_image_scaled=Module["_null0_draw_image_scaled"]=wasmExports["Oa"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_text=Module["_null0_draw_text"]=(a0,a1,a2,a3,a4)=>(_null0_draw_text=Module["_null0_draw_text"]=wasmExports["Pa"])(a0,a1,a2,a3,a4);var _null0_save_image=Module["_null0_save_image"]=(a0,a1)=>(_null0_save_image=Module["_null0_save_image"]=wasmExports["Qa"])(a0,a1);var _null0_load_image=Module["_null0_load_image"]=a0=>(_null0_load_image=Module["_null0_load_image"]=wasmExports["Ra"])(a0);var _null0_image_resize=Module["_null0_image_resize"]=(a0,a1,a2,a3,a4,a5)=>(_null0_image_resize=Module["_null0_image_resize"]=wasmExports["Sa"])(a0,a1,a2,a3,a4,a5);var _null0_image_scale=Module["_null0_image_scale"]=(a0,a1,a2,a3)=>(_null0_image_scale=Module["_null0_image_scale"]=wasmExports["Ta"])(a0,a1,a2,a3);var _null0_image_color_replace=Module["_null0_image_color_replace"]=(a0,a1,a2)=>(_null0_image_color_replace=Module["_null0_image_color_replace"]=wasmExports["Ua"])(a0,a1,a2);var _null0_image_color_tint=Module["_null0_image_color_tint"]=(a0,a1)=>(_null0_image_color_tint=Module["_null0_image_color_tint"]=wasmExports["Va"])(a0,a1);var _null0_image_color_fade=Module["_null0_image_color_fade"]=(a0,a1)=>(_null0_image_color_fade=Module["_null0_image_color_fade"]=wasmExports["Wa"])(a0,a1);var _null0_font_copy=Module["_null0_font_copy"]=a0=>(_null0_font_copy=Module["_null0_font_copy"]=wasmExports["Xa"])(a0);var _null0_font_scale=Module["_null0_font_scale"]=(a0,a1,a2,a3)=>(_null0_font_scale=Module["_null0_font_scale"]=wasmExports["Ya"])(a0,a1,a2,a3);var _null0_load_font_bmf=Module["_null0_load_font_bmf"]=(a0,a1)=>(_null0_load_font_bmf=Module["_null0_load_font_bmf"]=wasmExports["Za"])(a0,a1);var _null0_load_font_bmf_from_image=Module["_null0_load_font_bmf_from_image"]=(a0,a1)=>(_null0_load_font_bmf_from_image=Module["_null0_load_font_bmf_from_image"]=wasmExports["_a"])(a0,a1);var _null0_measure_text=Module["_null0_measure_text"]=(a0,a1,a2)=>(_null0_measure_text=Module["_null0_measure_text"]=wasmExports["$a"])(a0,a1,a2);var _null0_measure_image=Module["_null0_measure_image"]=(a0,a1)=>(_null0_measure_image=Module["_null0_measure_image"]=wasmExports["ab"])(a0,a1);var _null0_load_font_tty=Module["_null0_load_font_tty"]=(a0,a1,a2,a3)=>(_null0_load_font_tty=Module["_null0_load_font_tty"]=wasmExports["bb"])(a0,a1,a2,a3);var _null0_load_font_tty_from_image=Module["_null0_load_font_tty_from_image"]=(a0,a1,a2,a3)=>(_null0_load_font_tty_from_image=Module["_null0_load_font_tty_from_image"]=wasmExports["cb"])(a0,a1,a2,a3);var _null0_load_font_ttf=Module["_null0_load_font_ttf"]=(a0,a1)=>(_null0_load_font_ttf=Module["_null0_load_font_ttf"]=wasmExports["db"])(a0,a1);var _null0_image_color_invert=Module["_null0_image_color_invert"]=a0=>(_null0_image_color_invert=Module["_null0_image_color_invert"]=wasmExports["eb"])(a0);var _null0_image_alpha_border=Module["_null0_image_alpha_border"]=(a0,a1,a2)=>(_null0_image_alpha_border=Module["_null0_image_alpha_border"]=wasmExports["fb"])(a0,a1,a2);var _null0_image_crop=Module["_null0_image_crop"]=(a0,a1,a2,a3,a4)=>(_null0_image_crop=Module["_null0_image_crop"]=wasmExports["gb"])(a0,a1,a2,a3,a4);var _null0_image_alpha_crop=Module["_null0_image_alpha_crop"]=(a0,a1)=>(_null0_image_alpha_crop=Module["_null0_image_alpha_crop"]=wasmExports["hb"])(a0,a1);var _null0_image_color_brightness=Module["_null0_image_color_brightness"]=(a0,a1)=>(_null0_image_color_brightness=Module["_null0_image_color_brightness"]=wasmExports["ib"])(a0,a1);var _null0_image_flip=Module["_null0_image_flip"]=(a0,a1,a2)=>(_null0_image_flip=Module["_null0_image_flip"]=wasmExports["jb"])(a0,a1,a2);var _null0_image_color_contrast=Module["_null0_image_color_contrast"]=(a0,a1)=>(_null0_image_color_contrast=Module["_null0_image_color_contrast"]=wasmExports["kb"])(a0,a1);var _null0_image_alpha_mask=Module["_null0_image_alpha_mask"]=(a0,a1,a2,a3)=>(_null0_image_alpha_mask=Module["_null0_image_alpha_mask"]=wasmExports["lb"])(a0,a1,a2,a3);var _null0_image_rotate=Module["_null0_image_rotate"]=(a0,a1,a2)=>(_null0_image_rotate=Module["_null0_image_rotate"]=wasmExports["mb"])(a0,a1,a2);var _null0_image_gradient=Module["_null0_image_gradient"]=(a0,a1,a2,a3,a4,a5)=>(_null0_image_gradient=Module["_null0_image_gradient"]=wasmExports["nb"])(a0,a1,a2,a3,a4,a5);var _null0_unload_image=Module["_null0_unload_image"]=a0=>(_null0_unload_image=Module["_null0_unload_image"]=wasmExports["ob"])(a0);var _null0_unload_font=Module["_null0_unload_font"]=a0=>(_null0_unload_font=Module["_null0_unload_font"]=wasmExports["pb"])(a0);var _null0_clear_on_image=Module["_null0_clear_on_image"]=(a0,a1)=>(_null0_clear_on_image=Module["_null0_clear_on_image"]=wasmExports["qb"])(a0,a1);var _null0_draw_point_on_image=Module["_null0_draw_point_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_point_on_image=Module["_null0_draw_point_on_image"]=wasmExports["rb"])(a0,a1,a2,a3);var _null0_draw_line_on_image=Module["_null0_draw_line_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_line_on_image=Module["_null0_draw_line_on_image"]=wasmExports["sb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_on_image=Module["_null0_draw_rectangle_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_on_image=Module["_null0_draw_rectangle_on_image"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_triangle_on_image=Module["_null0_draw_triangle_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_triangle_on_image=Module["_null0_draw_triangle_on_image"]=wasmExports["ub"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_ellipse_on_image=Module["_null0_draw_ellipse_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_ellipse_on_image=Module["_null0_draw_ellipse_on_image"]=wasmExports["vb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_circle_on_image=Module["_null0_draw_circle_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_circle_on_image=Module["_null0_draw_circle_on_image"]=wasmExports["wb"])(a0,a1,a2,a3,a4);var _null0_draw_polygon_on_image=Module["_null0_draw_polygon_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polygon_on_image=Module["_null0_draw_polygon_on_image"]=wasmExports["xb"])(a0,a1,a2,a3);var _null0_draw_polyline_on_image=Module["_null0_draw_polyline_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polyline_on_image=Module["_null0_draw_polyline_on_image"]=wasmExports["yb"])(a0,a1,a2,a3);var _null0_draw_rectangle_rounded_on_image=Module["_null0_draw_rectangle_rounded_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_rectangle_rounded_on_image=Module["_null0_draw_rectangle_rounded_on_image"]=wasmExports["zb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_on_image=Module["_null0_draw_image_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_image_on_image=Module["_null0_draw_image_on_image"]=wasmExports["Ab"])(a0,a1,a2,a3);var _null0_draw_image_tint_on_image=Module["_null0_draw_image_tint_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_image_tint_on_image=Module["_null0_draw_image_tint_on_image"]=wasmExports["Bb"])(a0,a1,a2,a3,a4);var _null0_draw_image_rotated_on_image=Module["_null0_draw_image_rotated_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_image_rotated_on_image=Module["_null0_draw_image_rotated_on_image"]=wasmExports["Cb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_image_flipped_on_image=Module["_null0_draw_image_flipped_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_image_flipped_on_image=Module["_null0_draw_image_flipped_on_image"]=wasmExports["Db"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_scaled_on_image=Module["_null0_draw_image_scaled_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_null0_draw_image_scaled_on_image=Module["_null0_draw_image_scaled_on_image"]=wasmExports["Eb"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _null0_draw_text_on_image=Module["_null0_draw_text_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_text_on_image=Module["_null0_draw_text_on_image"]=wasmExports["Fb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_outline=Module["_null0_draw_rectangle_outline"]=(a0,a1,a2,a3,a4)=>(_null0_draw_rectangle_outline=Module["_null0_draw_rectangle_outline"]=wasmExports["Gb"])(a0,a1,a2,a3,a4);var _null0_draw_triangle_outline=Module["_null0_draw_triangle_outline"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_triangle_outline=Module["_null0_draw_triangle_outline"]=wasmExports["Hb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_ellipse_outline=Module["_null0_draw_ellipse_outline"]=(a0,a1,a2,a3,a4)=>(_null0_draw_ellipse_outline=Module["_null0_draw_ellipse_outline"]=wasmExports["Ib"])(a0,a1,a2,a3,a4);var _null0_draw_circle_outline=Module["_null0_draw_circle_outline"]=(a0,a1,a2,a3)=>(_null0_draw_circle_outline=Module["_null0_draw_circle_outline"]=wasmExports["Jb"])(a0,a1,a2,a3);var _null0_draw_polygon_outline=Module["_null0_draw_polygon_outline"]=(a0,a1,a2)=>(_null0_draw_polygon_outline=Module["_null0_draw_polygon_outline"]=wasmExports["Kb"])(a0,a1,a2);var _null0_draw_arc_outline=Module["_null0_draw_arc_outline"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_arc_outline=Module["_null0_draw_arc_outline"]=wasmExports["Lb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_rectangle_rounded_outline=Module["_null0_draw_rectangle_rounded_outline"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_rounded_outline=Module["_null0_draw_rectangle_rounded_outline"]=wasmExports["Mb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_outline_on_image=Module["_null0_draw_rectangle_outline_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_outline_on_image=Module["_null0_draw_rectangle_outline_on_image"]=wasmExports["Nb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_triangle_outline_on_image=Module["_null0_draw_triangle_outline_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_triangle_outline_on_image=Module["_null0_draw_triangle_outline_on_image"]=wasmExports["Ob"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_ellipse_outline_on_image=Module["_null0_draw_ellipse_outline_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_ellipse_outline_on_image=Module["_null0_draw_ellipse_outline_on_image"]=wasmExports["Pb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_circle_outline_on_image=Module["_null0_draw_circle_outline_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_circle_outline_on_image=Module["_null0_draw_circle_outline_on_image"]=wasmExports["Qb"])(a0,a1,a2,a3,a4);var _null0_draw_polygon_outline_on_image=Module["_null0_draw_polygon_outline_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polygon_outline_on_image=Module["_null0_draw_polygon_outline_on_image"]=wasmExports["Rb"])(a0,a1,a2,a3);var _null0_draw_rectangle_rounded_outline_on_image=Module["_null0_draw_rectangle_rounded_outline_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_rectangle_rounded_outline_on_image=Module["_null0_draw_rectangle_rounded_outline_on_image"]=wasmExports["Sb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_key_pressed=Module["_null0_key_pressed"]=a0=>(_null0_key_pressed=Module["_null0_key_pressed"]=wasmExports["Tb"])(a0);var _null0_key_down=Module["_null0_key_down"]=a0=>(_null0_key_down=Module["_null0_key_down"]=wasmExports["Ub"])(a0);var _null0_key_released=Module["_null0_key_released"]=a0=>(_null0_key_released=Module["_null0_key_released"]=wasmExports["Vb"])(a0);var _null0_key_up=Module["_null0_key_up"]=a0=>(_null0_key_up=Module["_null0_key_up"]=wasmExports["Wb"])(a0);var _null0_gamepad_button_pressed=Module["_null0_gamepad_button_pressed"]=(a0,a1)=>(_null0_gamepad_button_pressed=Module["_null0_gamepad_button_pressed"]=wasmExports["Xb"])(a0,a1);var _null0_gamepad_button_down=Module["_null0_gamepad_button_down"]=(a0,a1)=>(_null0_gamepad_button_down=Module["_null0_gamepad_button_down"]=wasmExports["Yb"])(a0,a1);var _null0_gamepad_button_released=Module["_null0_gamepad_button_released"]=(a0,a1)=>(_null0_gamepad_button_released=Module["_null0_gamepad_button_released"]=wasmExports["Zb"])(a0,a1);var _null0_mouse_position=Module["_null0_mouse_position"]=a0=>(_null0_mouse_position=Module["_null0_mouse_position"]=wasmExports["_b"])(a0);var _null0_mouse_button_pressed=Module["_null0_mouse_button_pressed"]=a0=>(_null0_mouse_button_pressed=Module["_null0_mouse_button_pressed"]=wasmExports["$b"])(a0);var _null0_mouse_button_down=Module["_null0_mouse_button_down"]=a0=>(_null0_mouse_button_down=Module["_null0_mouse_button_down"]=wasmExports["ac"])(a0);var _null0_mouse_button_released=Module["_null0_mouse_button_released"]=a0=>(_null0_mouse_button_released=Module["_null0_mouse_button_released"]=wasmExports["bc"])(a0);var _null0_mouse_button_up=Module["_null0_mouse_button_up"]=a0=>(_null0_mouse_button_up=Module["_null0_mouse_button_up"]=wasmExports["cc"])(a0);var _null0_load_sound=Module["_null0_load_sound"]=a0=>(_null0_load_sound=Module["_null0_load_sound"]=wasmExports["dc"])(a0);var _null0_play_sound=Module["_null0_play_sound"]=(a0,a1)=>(_null0_play_sound=Module["_null0_play_sound"]=wasmExports["ec"])(a0,a1);var _null0_stop_sound=Module["_null0_stop_sound"]=a0=>(_null0_stop_sound=Module["_null0_stop_sound"]=wasmExports["fc"])(a0);var _null0_unload_sound=Module["_null0_unload_sound"]=a0=>(_null0_unload_sound=Module["_null0_unload_sound"]=wasmExports["gc"])(a0);var _null0_new_sfx=Module["_null0_new_sfx"]=a0=>(_null0_new_sfx=Module["_null0_new_sfx"]=wasmExports["hc"])(a0);var _null0_preset_sfx=Module["_null0_preset_sfx"]=(a0,a1)=>(_null0_preset_sfx=Module["_null0_preset_sfx"]=wasmExports["ic"])(a0,a1);var _null0_randomize_sfx=Module["_null0_randomize_sfx"]=(a0,a1)=>(_null0_randomize_sfx=Module["_null0_randomize_sfx"]=wasmExports["jc"])(a0,a1);var _null0_mutate_sfx=Module["_null0_mutate_sfx"]=(a0,a1,a2)=>(_null0_mutate_sfx=Module["_null0_mutate_sfx"]=wasmExports["kc"])(a0,a1,a2);var _null0_load_sfx=Module["_null0_load_sfx"]=(a0,a1)=>(_null0_load_sfx=Module["_null0_load_sfx"]=wasmExports["lc"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["nc"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["oc"])(a0);var ___start_em_js=Module["___start_em_js"]=26724;var ___stop_em_js=Module["___stop_em_js"]=29848;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["stringToUTF8"]=stringToUTF8;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS"]=FS;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);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=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{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){const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}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);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(_scriptDir){scriptDirectory=_scriptDir}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")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="null0.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("null0.wasm",import.meta.url).href}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={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["Y"];updateMemoryViews();wasmTable=wasmExports["lc"];addOnInit(wasmExports["Z"]);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}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function emscripten_clipboard__register(clipboard,text,text_size){function emscripten_clipboard__change_event(e){const newText=e.clipboardData.getData("text/plain");let i;for(i=0;i{if(error.name==="NotAllowedError"){setTimeout(function(){pntr_play_sound(sound,loop)},500)}})}}function pntr_stop_sound(sound){const audio=Module.pntr_sounds[sound-1];if(audio){audio.pause();audio.currentTime=0}}function pntr_unload_sound(sound){const audio=Module.pntr_sounds[sound-1];if(audio){audio.pause();audio.currentTime=0;URL.revokeObjectURL(audio.src)}}function pntr_app_platform_set_size(app,width,height){Module.canvas.width=width;Module.canvas.height=height;Module.ctx=Module.canvas.getContext("2d");Module.screen=Module.ctx.getImageData(0,0,width,height);specialHTMLTargets["!canvas"]=Module.canvas;return true}function pntr_app_platform_get_width(app){return Module.canvas.width}function pntr_app_platform_get_height(app){return Module.canvas.height}function pntr_app_platform_render_js(data,dataSize,width,height){Module.screen.data.set(HEAPU8.subarray(data,data+dataSize));Module.ctx.putImageData(Module.screen,0,0)}function pntr_app_emscripten_init_filedropped(app){const stringToNewUTF8Local=s=>{const buff_ptr=Module._pntr_app_emscripten_load_memory(s.length+1);Module.HEAPU8.set((new TextEncoder).encode(s+"\0"),buff_ptr);return buff_ptr};Module.canvas.addEventListener("dragover",e=>e.preventDefault());Module.canvas.addEventListener("drop",e=>{e.preventDefault();for(const file of e.dataTransfer.files){const reader=new FileReader;reader.addEventListener("load",e=>{const bytes=new Uint8Array(event.target.result);const data_ptr=Module._pntr_app_emscripten_load_memory(bytes.byteLength);Module.HEAPU8.set(bytes,data_ptr);Module._pntr_app_emscripten_file_dropped(app,stringToNewUTF8Local(file.name),data_ptr,bytes.byteLength);Module._pntr_app_emscripten_unload_memory(data_ptr)});reader.readAsArrayBuffer(file)}})}function pntr_app_emscripten_get_time(){return performance.now()}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;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{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)=>{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++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=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{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?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]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=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]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=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]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=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]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=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]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=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]=tempI64[0],HEAP32[buf+92>>2]=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];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_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fcntl64(fd,cmd,varargs){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]=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_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){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}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}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 isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;var __mktime_js=function(tmPtr){var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return setTempRet0((tempDouble=ret,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)),ret>>>0};var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffset{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:1};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];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=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{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_console_error=str=>{console.error(UTF8ToString(str))};var _emscripten_date_now=()=>Date.now();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;i{HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)};var _emscripten_get_gamepad_status=(index,gamepadState)=>{if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0};var _emscripten_get_num_gamepads=()=>JSEvents.lastGamepadState.length;var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var _emscripten_random=()=>Math.random();var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;abortOnCannotGrowMemory(requestedSize)};var _emscripten_sample_gamepad_data=()=>{try{if(navigator.getGamepads)return(JSEvents.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1};var maybeCStringToJsString=cString=>cString>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 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 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]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=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)};var _emscripten_set_keydown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread);var _emscripten_set_keyup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread);var _emscripten_set_main_loop_arg=(func,arg,fps,simulateInfiniteLoop)=>{var browserIterationFunc=()=>getWasmTableEntry(func)(arg);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg)};var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-(rect.left|0);HEAP32[idx+14]=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)};var _emscripten_set_mousedown_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);var _emscripten_set_mousemove_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);var _emscripten_set_mouseup_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",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]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=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)};var _emscripten_set_wheel_callback_on_thread=(target,userData,useCapture,callbackfunc,targetThread)=>{target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}};var _emscripten_set_window_title=title=>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{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=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];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=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);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]=tempI64[0],HEAP32[newOffset+4>>2]=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}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}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];var len=HEAPU32[iov+4>>2];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){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};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 wasmImports={H:___syscall_faccessat,C:___syscall_fcntl64,B:___syscall_fstat64,q:___syscall_getdents64,y:___syscall_lstat64,u:___syscall_mkdirat,z:___syscall_newfstatat,t:___syscall_openat,p:___syscall_readlinkat,n:___syscall_rmdir,A:___syscall_stat64,o:___syscall_unlinkat,E:__emscripten_get_now_is_monotonic,j:__mktime_js,m:__tzset_js,N:_emscripten_cancel_main_loop,X:emscripten_clipboard__register,W:_emscripten_console_error,F:_emscripten_date_now,s:_emscripten_get_gamepad_status,D:_emscripten_get_num_gamepads,G:_emscripten_memcpy_js,O:_emscripten_random,l:_emscripten_resize_heap,M:_emscripten_sample_gamepad_data,V:_emscripten_set_keydown_callback_on_thread,U:_emscripten_set_keyup_callback_on_thread,L:_emscripten_set_main_loop_arg,T:_emscripten_set_mousedown_callback_on_thread,R:_emscripten_set_mousemove_callback_on_thread,S:_emscripten_set_mouseup_callback_on_thread,Q:_emscripten_set_wheel_callback_on_thread,e:_emscripten_set_window_title,v:_environ_get,w:_environ_sizes_get,b:_fd_close,r:_fd_read,k:_fd_seek,x:_fd_sync,a:_fd_write,d:pntr_app_emscripten_get_time,P:pntr_app_emscripten_init_filedropped,g:pntr_app_platform_get_height,h:pntr_app_platform_get_width,i:pntr_app_platform_render_js,f:pntr_app_platform_set_size,c:pntr_load_sound_from_memory,K:pntr_play_sound,J:pntr_stop_sound,I:pntr_unload_sound};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["Z"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["_"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["$"])(a0);var _null0_file_read=Module["_null0_file_read"]=(a0,a1)=>(_null0_file_read=Module["_null0_file_read"]=wasmExports["aa"])(a0,a1);var _null0_file_write=Module["_null0_file_write"]=(a0,a1,a2)=>(_null0_file_write=Module["_null0_file_write"]=wasmExports["ba"])(a0,a1,a2);var _pntr_app_emscripten_file_dropped=Module["_pntr_app_emscripten_file_dropped"]=(a0,a1,a2,a3)=>(_pntr_app_emscripten_file_dropped=Module["_pntr_app_emscripten_file_dropped"]=wasmExports["ca"])(a0,a1,a2,a3);var _pntr_app_emscripten_load_memory=Module["_pntr_app_emscripten_load_memory"]=a0=>(_pntr_app_emscripten_load_memory=Module["_pntr_app_emscripten_load_memory"]=wasmExports["da"])(a0);var _pntr_app_emscripten_unload_memory=Module["_pntr_app_emscripten_unload_memory"]=a0=>(_pntr_app_emscripten_unload_memory=Module["_pntr_app_emscripten_unload_memory"]=wasmExports["ea"])(a0);var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["fa"])(a0,a1);var _null0_color_tint=Module["_null0_color_tint"]=(a0,a1,a2)=>(_null0_color_tint=Module["_null0_color_tint"]=wasmExports["ga"])(a0,a1,a2);var _null0_color_fade=Module["_null0_color_fade"]=(a0,a1,a2)=>(_null0_color_fade=Module["_null0_color_fade"]=wasmExports["ha"])(a0,a1,a2);var _null0_color_brightness=Module["_null0_color_brightness"]=(a0,a1,a2)=>(_null0_color_brightness=Module["_null0_color_brightness"]=wasmExports["ia"])(a0,a1,a2);var _null0_color_invert=Module["_null0_color_invert"]=(a0,a1)=>(_null0_color_invert=Module["_null0_color_invert"]=wasmExports["ja"])(a0,a1);var _null0_color_alpha_blend=Module["_null0_color_alpha_blend"]=(a0,a1,a2)=>(_null0_color_alpha_blend=Module["_null0_color_alpha_blend"]=wasmExports["ka"])(a0,a1,a2);var _null0_color_contrast=Module["_null0_color_contrast"]=(a0,a1,a2)=>(_null0_color_contrast=Module["_null0_color_contrast"]=wasmExports["la"])(a0,a1,a2);var _null0_color_bilinear_interpolate=Module["_null0_color_bilinear_interpolate"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_color_bilinear_interpolate=Module["_null0_color_bilinear_interpolate"]=wasmExports["ma"])(a0,a1,a2,a3,a4,a5,a6);var _null0_file_info=Module["_null0_file_info"]=(a0,a1)=>(_null0_file_info=Module["_null0_file_info"]=wasmExports["na"])(a0,a1);var _null0_file_append=Module["_null0_file_append"]=(a0,a1,a2)=>(_null0_file_append=Module["_null0_file_append"]=wasmExports["oa"])(a0,a1,a2);var _null0_file_list=Module["_null0_file_list"]=a0=>(_null0_file_list=Module["_null0_file_list"]=wasmExports["pa"])(a0);var _null0_get_write_dir=Module["_null0_get_write_dir"]=()=>(_null0_get_write_dir=Module["_null0_get_write_dir"]=wasmExports["qa"])();var _null0_trace=Module["_null0_trace"]=(a0,a1)=>(_null0_trace=Module["_null0_trace"]=wasmExports["ra"])(a0,a1);var _null0_current_time=Module["_null0_current_time"]=()=>(_null0_current_time=Module["_null0_current_time"]=wasmExports["sa"])();var _null0_delta_time=Module["_null0_delta_time"]=()=>(_null0_delta_time=Module["_null0_delta_time"]=wasmExports["ta"])();var _null0_random_int=Module["_null0_random_int"]=(a0,a1)=>(_null0_random_int=Module["_null0_random_int"]=wasmExports["ua"])(a0,a1);var _null0_new_image=Module["_null0_new_image"]=(a0,a1,a2)=>(_null0_new_image=Module["_null0_new_image"]=wasmExports["va"])(a0,a1,a2);var _null0_image_copy=Module["_null0_image_copy"]=a0=>(_null0_image_copy=Module["_null0_image_copy"]=wasmExports["wa"])(a0);var _null0_image_subimage=Module["_null0_image_subimage"]=(a0,a1,a2,a3,a4)=>(_null0_image_subimage=Module["_null0_image_subimage"]=wasmExports["xa"])(a0,a1,a2,a3,a4);var _null0_clear=Module["_null0_clear"]=a0=>(_null0_clear=Module["_null0_clear"]=wasmExports["ya"])(a0);var _null0_draw_point=Module["_null0_draw_point"]=(a0,a1,a2)=>(_null0_draw_point=Module["_null0_draw_point"]=wasmExports["za"])(a0,a1,a2);var _null0_draw_line=Module["_null0_draw_line"]=(a0,a1,a2,a3,a4)=>(_null0_draw_line=Module["_null0_draw_line"]=wasmExports["Aa"])(a0,a1,a2,a3,a4);var _null0_draw_rectangle=Module["_null0_draw_rectangle"]=(a0,a1,a2,a3,a4)=>(_null0_draw_rectangle=Module["_null0_draw_rectangle"]=wasmExports["Ba"])(a0,a1,a2,a3,a4);var _null0_draw_triangle=Module["_null0_draw_triangle"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_triangle=Module["_null0_draw_triangle"]=wasmExports["Ca"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_ellipse=Module["_null0_draw_ellipse"]=(a0,a1,a2,a3,a4)=>(_null0_draw_ellipse=Module["_null0_draw_ellipse"]=wasmExports["Da"])(a0,a1,a2,a3,a4);var _null0_draw_circle=Module["_null0_draw_circle"]=(a0,a1,a2,a3)=>(_null0_draw_circle=Module["_null0_draw_circle"]=wasmExports["Ea"])(a0,a1,a2,a3);var _null0_draw_polygon=Module["_null0_draw_polygon"]=(a0,a1,a2)=>(_null0_draw_polygon=Module["_null0_draw_polygon"]=wasmExports["Fa"])(a0,a1,a2);var _null0_draw_polyline=Module["_null0_draw_polyline"]=(a0,a1,a2)=>(_null0_draw_polyline=Module["_null0_draw_polyline"]=wasmExports["Ga"])(a0,a1,a2);var _null0_draw_arc=Module["_null0_draw_arc"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_arc=Module["_null0_draw_arc"]=wasmExports["Ha"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_rectangle_rounded=Module["_null0_draw_rectangle_rounded"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_rounded=Module["_null0_draw_rectangle_rounded"]=wasmExports["Ia"])(a0,a1,a2,a3,a4,a5);var _null0_draw_image=Module["_null0_draw_image"]=(a0,a1,a2)=>(_null0_draw_image=Module["_null0_draw_image"]=wasmExports["Ja"])(a0,a1,a2);var _null0_draw_image_tint=Module["_null0_draw_image_tint"]=(a0,a1,a2,a3)=>(_null0_draw_image_tint=Module["_null0_draw_image_tint"]=wasmExports["Ka"])(a0,a1,a2,a3);var _null0_draw_image_rotated=Module["_null0_draw_image_rotated"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_image_rotated=Module["_null0_draw_image_rotated"]=wasmExports["La"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_flipped=Module["_null0_draw_image_flipped"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_image_flipped=Module["_null0_draw_image_flipped"]=wasmExports["Ma"])(a0,a1,a2,a3,a4,a5);var _null0_draw_image_scaled=Module["_null0_draw_image_scaled"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_image_scaled=Module["_null0_draw_image_scaled"]=wasmExports["Na"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_text=Module["_null0_draw_text"]=(a0,a1,a2,a3,a4)=>(_null0_draw_text=Module["_null0_draw_text"]=wasmExports["Oa"])(a0,a1,a2,a3,a4);var _null0_save_image=Module["_null0_save_image"]=(a0,a1)=>(_null0_save_image=Module["_null0_save_image"]=wasmExports["Pa"])(a0,a1);var _null0_load_image=Module["_null0_load_image"]=a0=>(_null0_load_image=Module["_null0_load_image"]=wasmExports["Qa"])(a0);var _null0_image_resize=Module["_null0_image_resize"]=(a0,a1,a2,a3,a4,a5)=>(_null0_image_resize=Module["_null0_image_resize"]=wasmExports["Ra"])(a0,a1,a2,a3,a4,a5);var _null0_image_scale=Module["_null0_image_scale"]=(a0,a1,a2,a3)=>(_null0_image_scale=Module["_null0_image_scale"]=wasmExports["Sa"])(a0,a1,a2,a3);var _null0_image_color_replace=Module["_null0_image_color_replace"]=(a0,a1,a2)=>(_null0_image_color_replace=Module["_null0_image_color_replace"]=wasmExports["Ta"])(a0,a1,a2);var _null0_image_color_tint=Module["_null0_image_color_tint"]=(a0,a1)=>(_null0_image_color_tint=Module["_null0_image_color_tint"]=wasmExports["Ua"])(a0,a1);var _null0_image_color_fade=Module["_null0_image_color_fade"]=(a0,a1)=>(_null0_image_color_fade=Module["_null0_image_color_fade"]=wasmExports["Va"])(a0,a1);var _null0_font_copy=Module["_null0_font_copy"]=a0=>(_null0_font_copy=Module["_null0_font_copy"]=wasmExports["Wa"])(a0);var _null0_font_scale=Module["_null0_font_scale"]=(a0,a1,a2,a3)=>(_null0_font_scale=Module["_null0_font_scale"]=wasmExports["Xa"])(a0,a1,a2,a3);var _null0_load_font_bmf=Module["_null0_load_font_bmf"]=(a0,a1)=>(_null0_load_font_bmf=Module["_null0_load_font_bmf"]=wasmExports["Ya"])(a0,a1);var _null0_load_font_bmf_from_image=Module["_null0_load_font_bmf_from_image"]=(a0,a1)=>(_null0_load_font_bmf_from_image=Module["_null0_load_font_bmf_from_image"]=wasmExports["Za"])(a0,a1);var _null0_measure_text=Module["_null0_measure_text"]=(a0,a1,a2)=>(_null0_measure_text=Module["_null0_measure_text"]=wasmExports["_a"])(a0,a1,a2);var _null0_measure_image=Module["_null0_measure_image"]=(a0,a1)=>(_null0_measure_image=Module["_null0_measure_image"]=wasmExports["$a"])(a0,a1);var _null0_load_font_tty=Module["_null0_load_font_tty"]=(a0,a1,a2,a3)=>(_null0_load_font_tty=Module["_null0_load_font_tty"]=wasmExports["ab"])(a0,a1,a2,a3);var _null0_load_font_tty_from_image=Module["_null0_load_font_tty_from_image"]=(a0,a1,a2,a3)=>(_null0_load_font_tty_from_image=Module["_null0_load_font_tty_from_image"]=wasmExports["bb"])(a0,a1,a2,a3);var _null0_load_font_ttf=Module["_null0_load_font_ttf"]=(a0,a1)=>(_null0_load_font_ttf=Module["_null0_load_font_ttf"]=wasmExports["cb"])(a0,a1);var _null0_image_color_invert=Module["_null0_image_color_invert"]=a0=>(_null0_image_color_invert=Module["_null0_image_color_invert"]=wasmExports["db"])(a0);var _null0_image_alpha_border=Module["_null0_image_alpha_border"]=(a0,a1,a2)=>(_null0_image_alpha_border=Module["_null0_image_alpha_border"]=wasmExports["eb"])(a0,a1,a2);var _null0_image_crop=Module["_null0_image_crop"]=(a0,a1,a2,a3,a4)=>(_null0_image_crop=Module["_null0_image_crop"]=wasmExports["fb"])(a0,a1,a2,a3,a4);var _null0_image_alpha_crop=Module["_null0_image_alpha_crop"]=(a0,a1)=>(_null0_image_alpha_crop=Module["_null0_image_alpha_crop"]=wasmExports["gb"])(a0,a1);var _null0_image_color_brightness=Module["_null0_image_color_brightness"]=(a0,a1)=>(_null0_image_color_brightness=Module["_null0_image_color_brightness"]=wasmExports["hb"])(a0,a1);var _null0_image_flip=Module["_null0_image_flip"]=(a0,a1,a2)=>(_null0_image_flip=Module["_null0_image_flip"]=wasmExports["ib"])(a0,a1,a2);var _null0_image_color_contrast=Module["_null0_image_color_contrast"]=(a0,a1)=>(_null0_image_color_contrast=Module["_null0_image_color_contrast"]=wasmExports["jb"])(a0,a1);var _null0_image_alpha_mask=Module["_null0_image_alpha_mask"]=(a0,a1,a2,a3)=>(_null0_image_alpha_mask=Module["_null0_image_alpha_mask"]=wasmExports["kb"])(a0,a1,a2,a3);var _null0_image_rotate=Module["_null0_image_rotate"]=(a0,a1,a2)=>(_null0_image_rotate=Module["_null0_image_rotate"]=wasmExports["lb"])(a0,a1,a2);var _null0_image_gradient=Module["_null0_image_gradient"]=(a0,a1,a2,a3,a4,a5)=>(_null0_image_gradient=Module["_null0_image_gradient"]=wasmExports["mb"])(a0,a1,a2,a3,a4,a5);var _null0_unload_image=Module["_null0_unload_image"]=a0=>(_null0_unload_image=Module["_null0_unload_image"]=wasmExports["nb"])(a0);var _null0_unload_font=Module["_null0_unload_font"]=a0=>(_null0_unload_font=Module["_null0_unload_font"]=wasmExports["ob"])(a0);var _null0_clear_on_image=Module["_null0_clear_on_image"]=(a0,a1)=>(_null0_clear_on_image=Module["_null0_clear_on_image"]=wasmExports["pb"])(a0,a1);var _null0_draw_point_on_image=Module["_null0_draw_point_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_point_on_image=Module["_null0_draw_point_on_image"]=wasmExports["qb"])(a0,a1,a2,a3);var _null0_draw_line_on_image=Module["_null0_draw_line_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_line_on_image=Module["_null0_draw_line_on_image"]=wasmExports["rb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_on_image=Module["_null0_draw_rectangle_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_on_image=Module["_null0_draw_rectangle_on_image"]=wasmExports["sb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_triangle_on_image=Module["_null0_draw_triangle_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_triangle_on_image=Module["_null0_draw_triangle_on_image"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_ellipse_on_image=Module["_null0_draw_ellipse_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_ellipse_on_image=Module["_null0_draw_ellipse_on_image"]=wasmExports["ub"])(a0,a1,a2,a3,a4,a5);var _null0_draw_circle_on_image=Module["_null0_draw_circle_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_circle_on_image=Module["_null0_draw_circle_on_image"]=wasmExports["vb"])(a0,a1,a2,a3,a4);var _null0_draw_polygon_on_image=Module["_null0_draw_polygon_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polygon_on_image=Module["_null0_draw_polygon_on_image"]=wasmExports["wb"])(a0,a1,a2,a3);var _null0_draw_polyline_on_image=Module["_null0_draw_polyline_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polyline_on_image=Module["_null0_draw_polyline_on_image"]=wasmExports["xb"])(a0,a1,a2,a3);var _null0_draw_rectangle_rounded_on_image=Module["_null0_draw_rectangle_rounded_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_rectangle_rounded_on_image=Module["_null0_draw_rectangle_rounded_on_image"]=wasmExports["yb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_on_image=Module["_null0_draw_image_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_image_on_image=Module["_null0_draw_image_on_image"]=wasmExports["zb"])(a0,a1,a2,a3);var _null0_draw_image_tint_on_image=Module["_null0_draw_image_tint_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_image_tint_on_image=Module["_null0_draw_image_tint_on_image"]=wasmExports["Ab"])(a0,a1,a2,a3,a4);var _null0_draw_image_rotated_on_image=Module["_null0_draw_image_rotated_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_image_rotated_on_image=Module["_null0_draw_image_rotated_on_image"]=wasmExports["Bb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_image_flipped_on_image=Module["_null0_draw_image_flipped_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_image_flipped_on_image=Module["_null0_draw_image_flipped_on_image"]=wasmExports["Cb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_image_scaled_on_image=Module["_null0_draw_image_scaled_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_null0_draw_image_scaled_on_image=Module["_null0_draw_image_scaled_on_image"]=wasmExports["Db"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _null0_draw_text_on_image=Module["_null0_draw_text_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_text_on_image=Module["_null0_draw_text_on_image"]=wasmExports["Eb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_outline=Module["_null0_draw_rectangle_outline"]=(a0,a1,a2,a3,a4)=>(_null0_draw_rectangle_outline=Module["_null0_draw_rectangle_outline"]=wasmExports["Fb"])(a0,a1,a2,a3,a4);var _null0_draw_triangle_outline=Module["_null0_draw_triangle_outline"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_triangle_outline=Module["_null0_draw_triangle_outline"]=wasmExports["Gb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_ellipse_outline=Module["_null0_draw_ellipse_outline"]=(a0,a1,a2,a3,a4)=>(_null0_draw_ellipse_outline=Module["_null0_draw_ellipse_outline"]=wasmExports["Hb"])(a0,a1,a2,a3,a4);var _null0_draw_circle_outline=Module["_null0_draw_circle_outline"]=(a0,a1,a2,a3)=>(_null0_draw_circle_outline=Module["_null0_draw_circle_outline"]=wasmExports["Ib"])(a0,a1,a2,a3);var _null0_draw_polygon_outline=Module["_null0_draw_polygon_outline"]=(a0,a1,a2)=>(_null0_draw_polygon_outline=Module["_null0_draw_polygon_outline"]=wasmExports["Jb"])(a0,a1,a2);var _null0_draw_arc_outline=Module["_null0_draw_arc_outline"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_arc_outline=Module["_null0_draw_arc_outline"]=wasmExports["Kb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_draw_rectangle_rounded_outline=Module["_null0_draw_rectangle_rounded_outline"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_rounded_outline=Module["_null0_draw_rectangle_rounded_outline"]=wasmExports["Lb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_rectangle_outline_on_image=Module["_null0_draw_rectangle_outline_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_rectangle_outline_on_image=Module["_null0_draw_rectangle_outline_on_image"]=wasmExports["Mb"])(a0,a1,a2,a3,a4,a5);var _null0_draw_triangle_outline_on_image=Module["_null0_draw_triangle_outline_on_image"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_null0_draw_triangle_outline_on_image=Module["_null0_draw_triangle_outline_on_image"]=wasmExports["Nb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _null0_draw_ellipse_outline_on_image=Module["_null0_draw_ellipse_outline_on_image"]=(a0,a1,a2,a3,a4,a5)=>(_null0_draw_ellipse_outline_on_image=Module["_null0_draw_ellipse_outline_on_image"]=wasmExports["Ob"])(a0,a1,a2,a3,a4,a5);var _null0_draw_circle_outline_on_image=Module["_null0_draw_circle_outline_on_image"]=(a0,a1,a2,a3,a4)=>(_null0_draw_circle_outline_on_image=Module["_null0_draw_circle_outline_on_image"]=wasmExports["Pb"])(a0,a1,a2,a3,a4);var _null0_draw_polygon_outline_on_image=Module["_null0_draw_polygon_outline_on_image"]=(a0,a1,a2,a3)=>(_null0_draw_polygon_outline_on_image=Module["_null0_draw_polygon_outline_on_image"]=wasmExports["Qb"])(a0,a1,a2,a3);var _null0_draw_rectangle_rounded_outline_on_image=Module["_null0_draw_rectangle_rounded_outline_on_image"]=(a0,a1,a2,a3,a4,a5,a6)=>(_null0_draw_rectangle_rounded_outline_on_image=Module["_null0_draw_rectangle_rounded_outline_on_image"]=wasmExports["Rb"])(a0,a1,a2,a3,a4,a5,a6);var _null0_key_pressed=Module["_null0_key_pressed"]=a0=>(_null0_key_pressed=Module["_null0_key_pressed"]=wasmExports["Sb"])(a0);var _null0_key_down=Module["_null0_key_down"]=a0=>(_null0_key_down=Module["_null0_key_down"]=wasmExports["Tb"])(a0);var _null0_key_released=Module["_null0_key_released"]=a0=>(_null0_key_released=Module["_null0_key_released"]=wasmExports["Ub"])(a0);var _null0_key_up=Module["_null0_key_up"]=a0=>(_null0_key_up=Module["_null0_key_up"]=wasmExports["Vb"])(a0);var _null0_gamepad_button_pressed=Module["_null0_gamepad_button_pressed"]=(a0,a1)=>(_null0_gamepad_button_pressed=Module["_null0_gamepad_button_pressed"]=wasmExports["Wb"])(a0,a1);var _null0_gamepad_button_down=Module["_null0_gamepad_button_down"]=(a0,a1)=>(_null0_gamepad_button_down=Module["_null0_gamepad_button_down"]=wasmExports["Xb"])(a0,a1);var _null0_gamepad_button_released=Module["_null0_gamepad_button_released"]=(a0,a1)=>(_null0_gamepad_button_released=Module["_null0_gamepad_button_released"]=wasmExports["Yb"])(a0,a1);var _null0_mouse_position=Module["_null0_mouse_position"]=a0=>(_null0_mouse_position=Module["_null0_mouse_position"]=wasmExports["Zb"])(a0);var _null0_mouse_button_pressed=Module["_null0_mouse_button_pressed"]=a0=>(_null0_mouse_button_pressed=Module["_null0_mouse_button_pressed"]=wasmExports["_b"])(a0);var _null0_mouse_button_down=Module["_null0_mouse_button_down"]=a0=>(_null0_mouse_button_down=Module["_null0_mouse_button_down"]=wasmExports["$b"])(a0);var _null0_mouse_button_released=Module["_null0_mouse_button_released"]=a0=>(_null0_mouse_button_released=Module["_null0_mouse_button_released"]=wasmExports["ac"])(a0);var _null0_mouse_button_up=Module["_null0_mouse_button_up"]=a0=>(_null0_mouse_button_up=Module["_null0_mouse_button_up"]=wasmExports["bc"])(a0);var _null0_load_sound=Module["_null0_load_sound"]=a0=>(_null0_load_sound=Module["_null0_load_sound"]=wasmExports["cc"])(a0);var _null0_play_sound=Module["_null0_play_sound"]=(a0,a1)=>(_null0_play_sound=Module["_null0_play_sound"]=wasmExports["dc"])(a0,a1);var _null0_stop_sound=Module["_null0_stop_sound"]=a0=>(_null0_stop_sound=Module["_null0_stop_sound"]=wasmExports["ec"])(a0);var _null0_unload_sound=Module["_null0_unload_sound"]=a0=>(_null0_unload_sound=Module["_null0_unload_sound"]=wasmExports["fc"])(a0);var _null0_new_sfx=Module["_null0_new_sfx"]=a0=>(_null0_new_sfx=Module["_null0_new_sfx"]=wasmExports["gc"])(a0);var _null0_preset_sfx=Module["_null0_preset_sfx"]=(a0,a1)=>(_null0_preset_sfx=Module["_null0_preset_sfx"]=wasmExports["hc"])(a0,a1);var _null0_randomize_sfx=Module["_null0_randomize_sfx"]=(a0,a1)=>(_null0_randomize_sfx=Module["_null0_randomize_sfx"]=wasmExports["ic"])(a0,a1);var _null0_mutate_sfx=Module["_null0_mutate_sfx"]=(a0,a1,a2)=>(_null0_mutate_sfx=Module["_null0_mutate_sfx"]=wasmExports["jc"])(a0,a1,a2);var _null0_load_sfx=Module["_null0_load_sfx"]=(a0,a1)=>(_null0_load_sfx=Module["_null0_load_sfx"]=wasmExports["kc"])(a0,a1);var setTempRet0=a0=>(setTempRet0=wasmExports["mc"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["nc"])(a0);var ___start_em_js=Module["___start_em_js"]=26804;var ___stop_em_js=Module["___stop_em_js"]=29928;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["stringToUTF8"]=stringToUTF8;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS"]=FS;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_unlink"]=FS.unlink;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);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(); return moduleArg.ready diff --git a/docs/wasm/null0.wasm b/docs/wasm/null0.wasm index 546ca6b4cccd961d3349bb7e4b63e1b2d863e7fb..5820597642596d42c93901f95e7258ecafce7c8c 100755 GIT binary patch delta 44780 zcmeFad3;sH88?3BxqI$SazYXkvXFCb0wfUj5E9m$uUaYc<5tF|uK+SayK(OQ?f{l3r4xi=R?yL{fy=lA~c+LDod6TTV8zxWC6N*sB;!Yl_ z@OAWb&+L(5c)~)2NyJb0OcF)$hdm2KaXil(9kcd1e>f%_BOLg4vjs z7nPF{72Y~alvBQQa5s(NxN|W6UZ7L|eL9;^)Z#y$I*ZG5vC-bTWbIMu9yF*Mi1!Tk z&u(uvnJyR1qb|Psh_iiH{FY$xAT&{pmJ%gLp;vNrf7KM^n8gJmB76+UvMb$+wm4=j zO90qp*8r(3J|i?KZ_9p$eq6e+3`;cFC_#13UHjv^LzVvZ`^j0qKmPa7-Lz?cd}G?6 z@~57mhNu@6EDr{2c@;bsr3+^x%Hkhm;$ln4rL#p&JR`g~woRp3KE@5=mWM~!jKcWG z?HCPF14)+00wtVNOq$WSPjheuBRaqn!K3ye5($SBP=`l>dcunwTJAjcO#H;GC5+u?vsM#E zFs;LJgv2{K+|R+!vZpg__hxtIA}?g0lY!=V1U_I7P{b$X%pb-*2zSmkeHl&=lo<(y zEx$`PQ5uH|AR&t^e`8b?2X%qM;(y5*RQchv+$u_ZrXpY%=gViQJ~j{oIE+YBa})ma z^5=)~DY?06P0zV>))qfA*GfO2szrTh;i+fiH|G}GZO>9q!*JBhFpKd2n4T5zD0VRZ zdTy_bc~Np=qtiW>u)WUVcy`C0iKZABG&QMXVctB<9gRsB5nq@IuF(oCje5;_@mR-R z;OUmbbz7T82##PZ&HM8ye)fI0!&+1QuafY~}+HgDk9tHpGyz-b922sN?EWkLakjWKkY8JwdVH?gHsP5&- zIf#goR!pBUPT7fwMm&EV0vOC45RV}KBjf z9fC$FOY*PsE5*Th*G_%vnTWhjc_T)>60^Y#i^iy;b?y$+pu0gV;7TaqrokzPta3DH z8$0zJ@Yb_bLB>EbSy8z0po3I=2OAh8KSbT3_`f=x9%Y0;?k44h5(0_?DZzn{b}ox= zEf{MnnIRPIxe~(%b~REYhFRDe)shud=AQ(0#^XcuC?+ZFNlm-s`9)KwY9hA0KPI39 zM+<1?CM^YZB^C`zs)KPM9^yNTW+bF-Zt(zS^ohl*wWNih0#&l41zMQ|exNxFtvSrj zR~{2Dfur%VT;s$@#fd9LeF-T#x#XE5rMMJRC_%4zz%rELiubjiJZ5j6BYVrWmlw3p z08;~_UQZH4-R<^Ex*H#ll8ph&r&uk~&2`Z|THq>mhC)h9B*bmN(qbPXd`W3ln6b*7 z0gSe6D_!PGuY#TtPTdsHGiI)`VkU&e52>)u1n-GUygt#;&bJune-hZRU_{dlNyzqmR6a%H}# zihoeq$3L*ZGR*!hoqPV-FRpCySN&0Rs4aj2;;mzGVELRTGKa>$9gru6#&fH?W>m49 zf}~@zFbB4btFG~gE%8fg`{D1ywNq*Jfp}n0*NLm27Y#i;#^#ZR`tR`G=BR(Ov-W^M zVzcG9{F|czE3kR9vr#4C+i7+)1Dl<@5{VF{YoCw*e9()A2PUt_C3>b`ru!9#1(NGUeT%PuT0U=P@yFjgNHFN=)mn|PFu^! z;TL$t!1%rqv&EQ}qLDkj;`Wx;#?BRDPP}UTFflB?Ym1OyKza z6JDY1yINLF{Ixe8JFZ4djPE?IDtFSg(0@<@Vq|{Lk<-7nzuMbuPKt|ZQRJ6RtIC;_ z$bQxCAG`3)4*NKJ@w8H8uSKCd;w{tc;)!k{lS>mC`-RC#Y)zu{C)4_1_M*p+%BqU8 zgtxHhu>5BKFcjI!<4Z(s%f{ooiaJa!n`olJG8SXB4fqO}ZX$&F4--8{CdR*;-WQ1J z^D{dPlJJKg@sjr>+XrcFHXzFv z{;OB`V$MO=AWyN?2@?LE83o{w>t@!(znyV%)=pI@%V2fs6g4=X#m}BuBtAg?#=b}A zeE>UK6k0HrikNGNRi)dBYtP?$Vp$g_WcJGpGxnhR60IMjWJUT9>b87!;;AGai_bmj z-1z%*x{HA=nR8=8Op33WSKVjQwLCY*ZfJgTjIrQ1Z(`DiH=7fYnf$c8x0w^;|D0Ei zs+IHe`*0>|j%+7_i3&c;h-1{Sc)kftNjJcon809zc}INtd^>*<)0G#bz?Howy2p^b z=ERo!=65D>fBeA7J-aoIN+)nGvFY!PV$}oKSjY*p5$al1K>UQbbxNr?AwKeyexhH? zic?AnBfEKFBQ+lWi_kU#jAbXstcrTrvf$KX?{185XU z1}!g=ET7q5CkrIQ0Ej5T!pSJuKfZKPNlyQiw!_od7T^9#e9NM$%%2zUhok>HQdMtOA&E;!mE@qvMY=Zsf4$ zX%K~39j|EUVs6(Q=Erghs||>xxeZqOnY{4u^)%SH{xE(`Lq+H6DEh|i1tuVeSV{%h zl7=3JVp$r0wV_;G5dXTN_!M`Ijhf8o$wj_e##d85&oA@8!fg=?0C(BX9s=biU_}Ok zIcnKY-Z}!Gs21ZFG!Dy2^aGYbhVCjpcTHLRlg0x3eKn|2)l>%DIAr!iKQ2;IN={wu zPl%9YYL^Hv!WkAXgin0^;`b&GvtU6W5uO47@53y^=JSDj0?g~}xmwKzRfab;1LLw7 zRj6SOi~nlL5K+DE%yZdHTybXaNG-2K9K&e}nzb!E&fMauT+Tpm0=Gb#K%XxUW7UF* zfK|gJ07%SHQGf^{!+c+I&eh`Dc>1zMzLof18$W+p6=H-~%d+uV{p!JwmeJE-26r-1 zK4bZ0Xo)$??OROg@t=4;2LDn%mkYtHTVL#lf6 z+^&956)y`vI=2M0l5w5|bsX<=UcTrTA9vo+Zl9^%szDlvsdcIaopekU(L>D#V}K`# zF#`SbgPCrJGj6TunQ>)?c>>QXIaeSSpS@y`o8$qSRnqM%P7?jrtsE3OH;%?2_s)%v zSb4sf((?Gq+XO6#`R8v?fAiw$7c55X+w-IGO&6qxrrL#&Z9a2m%Z>{mnjdfZ%|&64 zcs&05rm00Rz!YIS-o~B=)@w`k7fblsmdUH;i%2%OeARr{`rLKN?VyX6d6zB`K+B7l z4b1C@dG|n*I2}wK#Y#0B^H_NKER;C!@`d>O*5y6KxOni2A}tG;c0rlr;(f1({vaj4 zw9fL}cN}H{4e~I#w7915bv4!xiy@tNWsz zmPuFd0-#B12izIxB=5QbAofYuT|GIK*tHbV#14aoeS?rou<4U>$+R7 zEIxIyFFyJDh^UUwzP=mN@@3ce%V8RaZ3STwL5p4|(qLW?fByRNq9ZW|c>wY(1KBG4 zW~`~`2IEKxnIebHBwpcL#u42}Z>dg*4_n(CgmmWGzG8H|d99uErGkbz%odQy!s%^}iNCgXKtaNX3i*DN(2%d( zO?k9$m;5*?Iu;!1wLL<7FS%htLVO?TIz4bh4S?{i8`zJD;XZh86>mc~DW5Uq+vozQ zx^ONWZ@buS#I)yOYtek9W#+m^N&Ky)!-l6tw2K8*glPnXJP^_ELOgX}p`OY3&&2ox%203l^-TfqjD)qN*v4D}+!|I6 zl)JeQbDdM+F{3lL!gPvSGtI^JOwj6dE6N}m@b7Tl3(+X*f{VyC_Ikp8+>Le&^kP@02LS{wd5Lio3Zj+wM7s0vD%8kalrPm-{Nc zVsL!ggFQlnt@Ls-odbpOD;``cYT|i2=71&6-4Vs#jXRc!s+LI0)1K_MVyBtRGe)KR ztz74DiDQ{(wEXdr8;RCh@rxeqCeDc8@o1U2uI2eh>q*qc)Av|W6!uxU7C@Dm1T)Pua5wUGCg7m9|^)w8zS6yB)83Y;*Q?0?ymw38?RdWQf9IjK=@+ zSQ%|EZOME*AQ;TObyyh9+*?5SSoQ?3Z0>mCMA1L~{S$-mchHlY0r}fc4iRE!yx^%{ zAp7B`ct~$NRh>H!M3Mypie_1%v1-D@Fkege4-`9FX767`;+vMYp9u-^Wy_zRZ55dE zTc4jV`mcMTG^@Xr&c3xEBesD5#H(Jo9o@b0LYd!9paTcc^UDWL3?ry`@1p)z2beA>gCIwl*<8ZexK@~F$3OqWPH9qINmYoAxI-m z!7^xcdVoFBFtp5FE#9v`5=X=41#DQ5Fl>dGoU(6^!x+x{w(_UTwH*9*JSMxP@Cqr#LRsvnZ~1w~JM{VpgrarK{v#PNCU z)$JLe7w>qt<{v_$mJ4-G6M3|@SPo1Rb5ZxkG|`unpGy;`h~2VhSo9J@T2Bg#SE$1* zc#gjmOPw~*n6h?e$>ABI=h5R01uGUEZ+s znS3TwoSFmQMVZwZ@^_#eLFnh09BzvFsM2hT`dqchge3$iYp|46!ccx;ij#{Ik~VCC zX~I^N|KtEvc25}cqBBJoQ7dmhQ*;&0^7%8xq9|5%0&I`gV1hi0<%!Q}Gx%>a;=Isp zmebD?=g1XV;+0@EHpkd3mh(DeuXnZld1tXs43v=)v8?sD4q^p~!}7TtOu{F!TdtTS zK9%Qk@DKSb4nC7v9TEIf&g0;7c^?N~w0_-DEDXq4iRcasPTpH0dW$RM?@B}wZQL!t zDiNKXenbIKecbSl2Q!#XR^MgK3`Emu!8v$;->c1oPmZbgD0rdZ*e+yq69&k3R(~M5U&g2 z$Y*++G}EgH~n`}kc8o4q+yr#7_{W>G+` zim@(t%_VvH7*WUb@yr-e>@17IPcRvadOa~wath(+z__t~gh~K{)e4{W#J2p#P>rQ3Jwcu}wx!T_fbT2tVo(5x6%T#MMq{0s`f) zWPy0xO!2IkD+^8(&p|G~f1(&ockP#zvqX1y6GfghOO#*-OkOlg#IW-%zndi{= zLs4y@33nS)&Ymll>HRvQIs%QfACSNfalqZLlON9&uhK(%LhMAYQPG2CN5He$-_>CCa`p1Rh93gI%Gfx-KAg~sR z!Qx|i(jsx1_@(^SB2g=vRO$^4;<8>%LGC2tG^y36fE~Pw zQ=ChJaDpLSERC9lVLR6l-d)B?|2`P)JTZQ*_D)-mEm{J11smun>UR0V2y{d4ha1P`7sCfo44 z_}T9g)_xcGK9BOdv|1O4OM_slEtiTLGqF)*uvO)RoWq7$E5}_XuBP8+x4w3n_yZOF zHoKt`db?~&x+j968CEtg)&g+-!o)jxB`{wrJFJExJ0y==E!sqFYxF7+^ox6Ck2PWp zGMB9p@6prQ@`SabXBGs4;lO^iB36e6V0~cg`n6)22bF{Cp|%gn^7Y~+1YfKdQE{lX zV1szoFSg3R-;8r=TjlRJK`{@MlW!4!69ZcZ{ZjNM(N8usixb3Y@`+|tIZeLbEbPM5 zFh^L0f*;`zwbCqJNCccOjRx~HY279kij(9Ow~6Tpes`Ogg`j$~n12^_$p#FAID(1-3_-l?_bGxVzgXE*Pi#jn?&bw0-MKT(&ZH6NTR;D>qez*k$Hf)PX zL!oh7K<|U(rCX9^<)JMiEL5qk$a(t?kuQ7PA#B7a-O*m^o;wnyioy{XuvVIr(_pId z*vpii?@Sc!rrRnCV;_)9!P7KI-hZbkK8ABnzI`XmQrK&ut)M%EqqmBl9G<&XG>et8 zBj`q~m9=+?{rLL+F7byF_G|NkOnbfIcw?`32sWqodP{MS$j@sp1Qi8_QTgUD+2h!1|V%e{y3(CWn$7?yi(_4uf_zti&qx_s~okPe8bG!WD z9#K5B-9S+rT*^pB84pwlYfQ5?3NNmTx<_ER*U`KoC(Qe0{k`Hmae{pGUNNB8L)z2{ z7+85y(r|JODjQ2GC_g^YN9Z01D%u9AGg{Vc6FtNXdFnQCfAJtF{dUZtMk7QHECKep z4wAj^6NS0$MHnw3&PCR|`^2e5uEU+_UTH1Yu7vLdk>(A0z9ws zf$@0Y#fAlgq^=QK4?Nr{UQm$)(wGn7D z$QTV`Wdwpl1Xbt=pQmO$o>4e&xPpfd8N%4d>ecBzn0MTR*j9+L&Bjf2NZBsu4FjIR z+ge1&;-t4&wa{*T0{5WsgDs+0pJWj>S^Ka8^MrpvIJ^53l$ymyEEAq`woE^eiysn0 zVkvEbFj97Clzo`eJu{eMJj38-wE5~_xEON*r+`r4Dp7~hv<8MWaAXLl8s*bSEJ}i9`J)Cq z5R+R{&WEzwBcdB-e99xDd+JaDLh4ZQnX(=L=*c$0y6E*YHF6u=s@D2pW>^;iZ>TJ0 z4o63$EUSPB`0rT(8_qYXL_>KeGHi0*QePkn&;gGEc!wL-JJ&w(|b@ty(zf2M+p z&s0$H8EJPtg1W{5)hKq&>rzqgAlXH7+p!BE*)4GB z*aeUrb4zHv|DX>fy9M-6e^4MXEF7IpfO|L*!M29djtOrL20$1>3V9plbEya-h}U^Z z1SA#8vC1E-__mbMWo1F^?nyv!uyxa;Fo9sby}3)gBdS_=?iRU1yw>{C9)aETf$|^E zic9H0Ve880L?=I#A$<5CFKnS%P)?SIm0<`gh(Wi0-7|OChY9OKY?2N)(9t)eY*yHySE<_kFYCt_Ip@>43YcZ z6E%hViqt7{pA%cQw3_y;fh}SAmV)Kr!Oi}?_z30b4`OlFkYsDvzf!Hm{(u`BXszsh z7{Imig7@K%9U^afzrE35d!qp>=r;P{`{Hwy`@a#OpWwb7BG3Dib};AsS)A-T zm~E^8?I6zvJD3^#>;5bTCg9C%Z#rycF2$(V7Pr3pXR*=)&+g2>!SsiN_ithbh~>+_ z3GB+q!VkqDUI6%Dv*9=qi(8*_xb?IT#o2Jlx4!;&(MDol>s^Q8@y^zVm@N3V)aDzU zJpJVdpNKB~2IAZ`Xe-UhSPXvxuOZ>s#Yak_6<}vbd%fYGid9+blsQLMu$)ffx>fR( zPenG?W`Fz?-eTIgO9s9aW8oE<`lV7OX{x4Bc+3rtaVBpj;ZxT^< zv=$JYdl;1R8DkPWFwXY;OPpw33KJ1|I4ELjZ<7%PCb7%Tj(0fcTL*kCq)L~>Yy;4C zTmu{3xW+Ia{YMy)_G&_)USYG0xiQO(0 z1-#_oqkK&(*>PkdCA^7}$GiMxhJ%Lw>7nl8u(Z6?8LqM6UYcf3QCMT{SAwFyyv<8f z%YZhYHl+Oe^w(Y2T{yewrm{eVgnaq}oVTG)o)EKG6SJL8>ksYh^*^cU;^M4Oq&r6oAPO ztHFoupnXBAh>f)}z{zQFv-m+yWTt*&6?4Ql?|G!=^CB+w8>Hlpr6ULS+riqPmmXMpq!3}vKz3Q*l2l{TgEw< zU92aZ<{WuP2b!SEokRO_2w6Ql~7;V z)QPz%ixk-%3|)YJjEAiqhb~3>eE0;qt*KO%{i5ETuxgRa8pD5u8*?7v@z( zbHJd6^3iv&a;j;qI-f2-E(KrI%KS3w(fRN}cVi9=bf~C-kHCJ1`<59Xh5bvJcBI%IIY5qt5Dr&OeoRbMO!OB?q6$FgVz0B6ftmewAoUuNQ2H!O)KI4kofQp%XILBd z?d-{xuh&pr#f|7Rs83a`(ANyC#;69}t;6O-vd;0fG(>r8*XAt3m8Ndk5b)7RAK9jD?K@g zj>q0s$H8Rh9W`w1>G8ntk&_2g8KLa*!PGZz5Mvj{F^&}>z}^ak{y7jCdj``e_=IT) zIA*5oF@$FOZ-6@#b93zw>dDo24*^?EkQ0XzyK%1@N_JLCk8C!XH^{w6&Q3{oPY|BA zVUNe^eMGuDFAwl>2Q`;#JR;paik^l6Z`##bKa5ThaAMy%oVqgvuMVe~aCG;mBkP!R zJVDM!R%uE%3aUYtNB3~KM}*nqgQjk;qbiW<8z?VoTfeHKYym4jy`Bp5_2fXqCQLeQ zYaW($_0$OKfG;0FBf|Wbt@U&fTW4%RLpVQw;Ar9R4$Eu&Hz|7a9t(%N0}`%$zkwpI~v zcO16ro8-Wh`vYtLiY@y#18ggBFQ>r4x48hqRLyh9a4!2Rd^AS*g>;eT&Nw*D^7HX6 zIGXEIxAT*3MU z2<^opwN`;&RE`=;<+1Gwlq?(uB}fW)Fqj<70C0nqAr>}plY&~Yp9Kr35VuSD)T%ZC z(-bxzMAPiK<;7QuV~aOjaR*p9#q6w#@mbLTFe-3AnAsgNrM!X63*<**sp2Pm%KVB! zKi5~Kj@h!``rroK>Fh(ka2yR!c$ZmBV&HDh%j4(-@uloKo<{yezdv>G z7EX3F2hTBg^x}A`E$_$Y64~eH`pjZB&I#yghD9pcOZS>UCnfGjpgbCg<9e3dJpqS@ zck0Rb$y4_-Z6akPz*fuMgd2<3N&siiT>4M(CDbrdpcr-!`Q_G$l%GJ{k#6~4PlRc* zbC>KmiJ~d)T(v)f-NA_7Dd8hZ(e2 z{@{OEelz@$$ABl*=kKfUKG0*p0>z#ct6{{PN7AscJs$pVXV?T_-36INKvsbLF6zD? z7f!Su#htm)*lvW#nheGO2B2)Bp8I(A+iT&`nJ`YS8`dnAZoH^v;dZ)qBXNQN%8{1D z7E7*_&oJ*1LK;HIeHJ#a0j;p~X2AJY7qli!YH6KFojQ>@S)Txch(!V7y8;5GM$5@3 zQeM%Rls()qF(W^ojx8w`^l5U{iBu44ha3Bd7C84vI9PHM*JLlt=%|1O;38-PBNL5E zAwW-{Q=O!Dy4(-+g^e(P3nJn@T3&%;4D8VG^ZF4Z7Q1BOEGo%OVuHPm?kLjalvz}q zGKD-eG>uk{z&8)L(B?}L?r{#%R*b?Skj`8hvKi$L*(eJfG-63|)czd<$XQS|Krc?e z@(3|iJ}}FHUGnfO%AIp_#GMS7Y;X@@0EW4o2?9~xrfE9lS?aEi)l8|TAdUE;1cfXt zTYHZ=V&71msPw5BJ9##BiSfyvN=OFA&LKXW;Eq6t_e$=J2Y*jhIhgIS+U+?b4QO2(R#u`S8iwnR+H ziM!MnK+-@0ub^%ak*6-X`319#*X#H{TrQ1D!6?VV8@po6MR<-<;)8WWQrPErm@ z*{W9hiO24q161QwafksPpNeAx!_lBsQw`z(Sf%$t90OAEa>OxU6}J$lYqv@N94d)v zB$^i{&*U@VXl&}lARpA{M2%RT7)c~*9P30gk+@o62D{D)Lf7GttXO;KgIL@ZHE z-Kup2%n;X#ZT+SmS8t^>pQcb3SH z+*|@-u$0pV6wXYPRfCTJD`*guPE%hI@q& z7#{48!_~;9t-fc-9!3wWXp8SkMg4<}7{nys+VQd2R1SRJQ|4M)M(K)BL6D`m%);Oo5P-=Tlki z$_z#(A7(FbR&yMsxlMF~gE|bnP)NgbEUb|rX&W({$mPYn=RBuqDXvAbMGgQg?{amM z3rZ0C9v~=H8){R5p>(6_DW!I7soItDo`++SEG>Rmm4{+9Vu0{wYVde4ipszopf?^1 ztTT9M3~iVpg%A4ixdb&L*1qgmzd`_2h#L+{1NSJ`Gffu+M25V00rkqn!6ZhAyVfz} z?gen^qdXrX!H{q~3JzYB&^TqZyZ7^z72{=q65yfNFduMnngrj6{Y*0gw*0^$7D&Di z4tF_M2 z8JWD?^(*W~K41rTJxfxLW*G)cmBI{w!)w|I0B2Pyv?WiR}`$6%}_R8)7~*U@WZ>IIx>& z-7-_#-l@=l#XyV;Xt@U9xzR9y>%+DOoEO^m2$(JG)G;r@{HjNxKJ9?@|0zrl+QHGD z?5E~H!$ zkk>Dy9!L!9#I}Xh314aal_x!?p#m-==&#=Vg>8TRHTyI&%UHUCdxC14CBz>g=UqGn z2wT+9!pri=HK$R1%)@jsPg(T1e8eSr|6ne2I2OQ;F`l&o^fAblAE;q>f_r@n{(ktS z`Q;JJB9{r`AOr$0SVVUMJ?e$B!O;SKlLUvgef6t(&lQ&*ap}^+zJoJ4xFqUd5)ESt zm?u=C6<*w^zWFfa(Y4fqSjo;Pq>UP13V5>Q6i+8d?_x72DGS&lY{D`hZ*(;^Q?V0l zR8|jS5xi5zaf6p|C6zrp+4Y(=qLK@K(ms-%s**)oh64iok87-0fV;n)*`|N2wn@F z1TQ;yX!T#^f-`WX6z-FY&VUOO;VoxSMcV#|vP?P9&VFrpYy)x2BB|Sc18o<*kkc2%8oRqK1BffgztM!CN zdQ0$S6YQqSnk6)irok797}m#tQnB#MSbo^Qka$UC_>E=2;tbu926XPa}u&6^m>uQ(duGmF65~oLWnx zzCve5nsYsFv==fVom_~k{`wXMMhHRFq;Fw(FQ779t*E$w#`?v4dCn?YQIOhVA0UKX zxY%^(OB<-im%(w^)Fy{s zPLGV|mV)jb6&|j_j(d>>rbbQJk3H34#H_-PQoG9og=U+n$@yv;Q<{CP)@J{Sk z;H?yPy#<^mFLRI|9$+U6<)>atQJnTa0uAA~AaOCSq=AxPE4go#@aj>0uaLK0OZVo? zhLB`h!)bbD!ovzVUCzIbDo3`zxx#i3ECtLa`$PvqwRv2}pK919bioTu%m|iOEN1lw z#@Tiqm5g1%pU{Ia(4ZmM>}7?QIyF%rj_a$*K{10jR@5dNTc*mD=+4r>>miR;$Qjqu zRXyCvGLAh{kW+AwBxWkShOVnR;>{O!L-WE05~Gq=FF*k=2Av|^qq^CFxID0iR^UR@ z$h9;WLDO355*z_MU=cy`h8rO9N5}&yiC&eMDB?>L8FoW^y+9)IY9yli_LRJ|MBXlH{W`d0?#A(ss0 z~nUW*!T!)U-acp0Whq^hw+%mcQRXBN?9Z8$s^~*W5@$ zQ{Yk$4$0r$NIhfit+m~FQy;fM=44*c_GvIrmT|Fc8!+0egBT7J|!AaEq@tpQ{ ztJG^osuOR8r%yD`LJ*vGWJB%6y-p24lDj2MUZ5x$O3Uf2AOnoOMQ67ny8u#hI9{Go z3Y(WGT%H)MTN;Z_j0CiZ(q)LthK*DJv6j-9ykR3vJRUnXE>nRkU=6rjp}bR&81T13 z0xF9LRwmCgyB0UL@q~k;-(Z!Ga34b0N%c*{BDBv>NMgGl`UOcH6%yIl@;JD;Hj-;_ zyhBPn&5e6{i!?h&WhaujD9%EtjyRs|f%}jZo2WYFVJdmXCaPlMy>$~^B(}@qTd1Hs zg|`yK4oRw4<`tf?^@dA2t@Ccd?rItUWCOutj+A?UiF0@-%1*aZcLXDErLJ8;c6`k# z*a$~k*!li@cC0}%gQL_bzZ^|Wa_y~jdLH(U!K;`y%o<*LFrgb*UCNARyo-deTQe0O z`RK#o|LM^OXmEI{jTX`(@f=P78V3{GUTnd;nYIA8cB>CMx(YJQ{Iwbmi?6P zYQxV!<{CL+v$p!ry6xx&`~0^J%Fh7?+YdkTFvPgcRK&2KzL|;(uZJ@qECOVGVVLb7 zpW;K_x|#AYI5z4rxW_kBx8vGn7`E!wwBj-d4-U)J_J=a~mH`GAz~Gc8)qwho!L({> zDg*wOVav4QS4~3q2*@D*wgnqaOowmQjr&Ta? z#f&Xv^N7yhLgkaHd2t8DZMY5@<^gE?axIRrv7*g+#qBt!a>Vvc;)0_pf<8yfkGIf> zx>NNdfY{7|T;Yct7_yWz3=Cze1N~@2O`dZHFn~cmbO-es&$pIYFzKfx_2CEIbW}C2 zyaFhqUm67Ppm&SHIcgYQzH){=C`LQte?F8P8<`tT127nrtyAK%HxJ^mm=I(cZosc|IAzb6a-|FdJYpw3?bW6XwI{h zPUaC>cTtaCM~TF%$DcTry`AstbErund7)#5v3h z!sDg9o2q0X|zR$0O*$%_G z&PSS9)g5A0$JVEQrPO6wVJ@-JFlZRh^CS~HrS=Ti zxul4e4G*x+KH==|fa=%?F;B4wZlIWFJK96UbC(-7yWvJR#K~5bzuFC(+z>Bja<#K{ zut*2#q73KFjr|rGtDOU;)ELvB9S*IuB%k9!^F} zhxtXL@V|VXNG#_fg}64}_JG$Cei=}A6tq!JZGI33!Z-YU6d93&{-_UUg{u)^MwP1VHn2n^>&t$QE81eU`6XVFrdA2bVL5sb$ftkCjk`ce?0zdIRrCK`qllAoFhuZX4e z9bOjAfZ|LAz-I*$0C1%YRN@f;lBVG{(_tpo!+|6mEu7JN{d$JfShvo~ibpe5*}3Tk zhkI29UToX<+>K&sVYGu4%Z!S-ENeUP5iSg~1|q{}<02S8ihx17e$S4|NeDZ&nx16` zhq=4f18UmX0rmz{)5(_6-3Z#kGAaziF6FO?4Fj#aVPe1ta_kNq?Q;?HfX!MF~lz9pw2GhV5D8l!C1R92NUfQ z4yM``2h(kvgPC>|;39GoAO@{_tSBNNc8_Hv5^Ls|g&64FW0fERg7;XR5dp<}tYSo( zI8uZNe(k|3M0hsB0)&eYc0xEGVLrl{2=fq5Mc5JHSYW5F(aJ>>9BJhstU;KKun)ql z-L*dh_2V8g5-fz72=fs#c1?t(%rdY;@EK$d@Bq&q{iauVX9rJOEVrElaQx2Y06T=6 zyma=QkfwSIA(J|R+&B)_@NlSE15AOuG~}s!3?7tAumSjh9V^S1!RLmZl4Wpm!5gzo zt)u<2^COfed~)ed>R1_#SdsO%_P8;{Vhx_G=S2s)byPF}VUEQ>=8Gq8`1o&>}Y830fAeUyr4 zWm=i=x0+DeD2ZgASWJABzaeV8JUMBY3wIE_zs=Oga#>NIrV?CzimbEJ*D3tZVME4> zFi~a8*o(NJ^X;P)%wp)V9jK^B1F-6ODv{qKZwQV+=`OizMfiS{WSRj4Kj<2_teEg! z0+kOQqRt(ZEFG?!2dTTnR5YwU&e)iUzPW;?C~Q}@H>xJQoeFq{85T|E^1Xwg*7>_B z%p^Bck(^xn2>JWeMg&L0SM45Auj}XQ6H^~s!KK|AEk^&YGpK5E2D{88BNv7Xu4KLGi?jdqFGn{1eC6U`Uxmq1ML$~x(3=OpmYti zPeAD!XrF*mHqbr+rEOLsgtm!6{REV{S%i?)&3uHcZe}86T{9IS>zc8^4%82;8ytpF zTBZge)DF~7KxvtBgsgQK$_#}02-6Xo2yNCr0V{$}rF{a>KDfD5pbW4#C$+1eeK5dq zV%J$Ky^q18j5GV)AES98FI&lNeu(^{gH$Fz`W1!c6OZAJmsg5cv19w;W0aAvS&MBm z)-EplK^DjdccRFxdnu#afuZZPi~%n(J+Z9U#a#i4dd!2b{06XR0*wtww8n;DRcc-6hF~0U0_%6ijq0A|nBacZkTinTfDHNlbCi1`>r&Os zTYkt^)h?fGQgcO?fi=I|1tb-I91K6w!O{*;<392ap1VBDRr5a`*l2Y3Y z9g^ktodCrGcI5|8kTXXKB!N0i7RXoRp+JPfI|FV$K%$XkgA3ar zr^i1<#Ybl-6}|c?>O2F}?UE*Qn@a(Vd_5et0oh)G6*2_FO%S6Zh*aFVqzja2(v{*@ zIM(s*6BLrg`zbBRl+W0dz4z1PzL*w`PLzP`Q1hc8N$`@8PrM5x zpYb$x_iF-`55UG&v>dyZwX&K(MZf^Y9Swtwfw(-{J|ApVVG4QH3AD-sQPp`dpea-h zO%arueO@9%5GHV!oE)asYFYaX6%N!AC6%{T@2;KWR%hfU@#N!~m9PAo1?bZh&Yl@| znpo!flQPfCGH*#tFVs<2i!=|QhyO;uib=tZhZdx@#Y$5bRc zzeFph0T4YafK<&&k~u+BoWzQfwKciR5-TzX6F_v%KuTg~Jy$`h*xUK+3oxpFTJ$kL{v zvysUFhvPv8-@Zn3(jhO@Y_q(8x%VcOWx4>lv+R}cy-CIL)L&C~%#2GjKVC9Nw!J`U z8rV;NP4VV9b@o^*SG2DT-$-VMux+LFU?|{phz8F4OC4%qLGjMvhtFvPxyR zctD%`Vb6wM``_$YExMS#fdi;p@ELeC)t+VA%+}5lK#|09K-w>(-r^?D(a7jLLa6d{(=Jw(xrkQOl3%kL z?64$=z>OkQw(elT``fR!*)p!qlaDXFa4ewd##2g;5O-!{&@yycDV$Obo1zKtu?6A*|MY7r#Zt z-8L5TgCFeVbh#4q%@!$UI8~g=C*Pv!Y&~e=k|l4`K&2#6+^@AWdt>DK*IlpRAQNPw zn)x9wFhX4eL%CjHM=4c^4G!M@kiUJK2Eq7AXbTXRyFOvw^U2}+VGB%nhcak;p`85= z6?*^|ud@o27ggT;4)rz@y|PLImVENJ@8I17pUixh`V}(XPzSm>!NIOU0lR4KdsHb` zzl&p=C;^-(Ui8W4cWFpDkBA41HeJ2#w&cR+DsQj!9-=6g9q=I~>};Q0)k>Y@q(fAF zlvShfw*3&*0J?VpI)YB`;WZ|7?>4KU8d~di|3BC?3toUF|G|4?_GTi%5R&U*9)RLr zHBgt1AOtiWdF9}jv6N$vY|O__aw7~+o^yE``^X6|8^EFTf2+4El;Z6QCA?jsgtse{ z@OFg~-mXx>+Z9T9yF#wFE0pkdg&3^Z&#?@+ZA%XT_M-o6>_~@ zA=ld#a=l%6@LYMjLYDG&h1$JcA$YrRWvoJZyViH{TCt*w0v9GX9Qk!KSCRS4C zyFBbq)PHIzhEFwicMi&;HYTsG&aAh4@OQo)wQP=9(JqK|nOm61uH@7{QQNZD@3x0p zT+J}%doQ$x$|wFr9b-dBa)M!$)opfThle+ZZJc85PDOSXKCZ#hD%D}r@Y!(Mpb1EQ zJFXfXVbpCJt+oa0*G27XxcMpUI=Am)iOAOpR)&?ol&0D}xuuzQHx5p+dvOq}w6S~A zoyzUr989+>IGAV;w!H8bAsTdhnfj|S>wm2MXoTHPt$#*T6l5?WBh7Xumg>oF?O!3`hcuX@P8n{}Os09v zco(_Xn$)ZzsULNzA0tyg#-@HuO#PUe`Y}EAV`l2dN%)8*2R=VF>(tbbMX4W)Q$Nm5 z{aBv*u`>1J!qkr@p8sU8V=g=56K?*L%xl%84i7%C0MbBh<)p+~6f_4*L_f9XSZW_1ClXwm(L1Q{Fv@TLhKC6H z#-rs{IRr(DxF~NI7v-tq!h-`2LBed|P!s?0E{=9^aPr@!V#pq`h7`WF7izuCpqv3YK`y4*zW$zHY<%D7sM< z<`&w0tgcp9&WVjg`nBkw>j+%-HHb73P0~y*AsCcC&kvRYyX;^)^9pj`zY$gG15o|P(vlc?pW5psn z?7mjU4!hdQ++hy{f+JSt?vWSd+&|{M^Do=Gxn1^0>+PYc8M~(rdg!1+2R5o^cp%?x zAP&Nhf7{Q_!en*gvmRMiCw`3!f^mpFgo7Hcg^|@M?Nx>^7LU8_VVs#CWo)FN-5$Zo z|BJR7awK7tGD!?OHbsm831AR-F`YY0DmI*^GHg8E54A-xz}a*R6&L#{9fup^*zN=N z!j@yzSwownLjeL$h+!NaZVk7x`TAbAl|D8aC~QwpFWkI2I?NhoIj2U$h4wIjrO3gU z3nkqfzlqgzU9_h;6=(uQ>9(4!VVix{u<#>4rVzoEOEElS zI3LbY5xbP{f#A_5lds3|$-bQNcpfze;PT~2lfgC}&**eKmwQAxG=NjK;b_hd+s5l* zb^Jdr-k3pxpSZBCz8kO(bdhOQZ%`(~I!3$c5-zZv$R4;M9=2#WiZOs9Jx5Rk*s;Ycraxv_Rb9O<|; z!9_>>E^}PndUGmLuprFE8AIQ4D{~1820meEgI_HL#Bet9xkeN+ob@6%ALD$teFVl{ zovVtV6TWXW0J<>>g^2%{;krVzGM}|GTo*0{2{BQ%GuvCI%Gwp&vu#D=R+sfwg=*L8 z1I=GyMbWU8Z)JcbWBe#=gVh5CRgq|X9cyMVdpz2M&mW?gRoIA0oQH9T>c9!S%0oPoqZq9cq9U}26Ht4(|D zsGRywtgwPsM}B|<*~WMEEcT2MfQnn3GDoEv#(X})i6VF7$|lc*{>?9*fsSy&z z@YaD*juXYJnwp#TZQHo(J!7C@;rppKE@|4gy2n5RZlwCPSjDYv+J`I?U$0;C<~{Fk zyLp#2(7<&VZUAl!=hbyL?eJC`@Kd2}Wqsh)g@M3f9?E!4vMsn5`db#BO^H#R)4WSw zvk0%Z=ke?9dF%;B$^(mlF87gjY=!c0kc@>CAf?1zZSKhCy4=cBs<-KeYNf^A+@Ye1%ZDv*zu<*6gg58~LW-$^<46Sa&A@EeXY zb;qewn*-DC!a)vf9|ZZZGY}N1MJ;qIFJ^J*lvlAvxmv5^*bgt!ap;tn;y83#&Owch zS9bW&DKC3*>W3G@#z?G?V+hB>hD0zC78`=8Fc1+;he3#7rab`QBH|wV@mmAnX1EJ( zEUOBUW{&hn1WQA|)fW*gE&Wy>L?Gk*R!>BlIMNG|l?ZzyJR4y@go_Zy$`P55NF~CV z2zwx$im*GvvDk9Kv7ZV=8EIt*YY=ur*au-L!g7RN5n2elAjGdVs^hS{Z#|Na{rJ@} zS#|8k4@U@I5N1D!m52KbJXsZNe;7=`h?r3~^@zmMa7QjGXMTbEaJK~2bLxh(H}RZ0 zq54++in`%kipSG&n}P3r^Ao+wywexJ5?8_9BpiVESWLa@rZv2c)3NbOfNox?R>(Zg;Sm5csG zliZII`I~>yy3|Gnj0%^yja>9K73HL~KOoujeP4rp@J_+&UsK=0d$F2R0wla!;D)h& zip2|e6$+GoLmTm=?w)VR=JM};L){7=W z56|EPb%9gArG5h^z#7C4MdYg+c@}T|@RoZJbVUSV2Y;U=jLwx9#5MOl23n6UAWP|e@|<~gbf#Y zdK}{g;YT;@_Sm`l;Rz-=z|HGyK)z$cC!Rd6pC&vNMH8^l=C?5@bJ(x314$$FY@H&Y*c~~1g}{QFI&0O zQp}=5Ps^(IX4SiyT;x{rEG*_HrbD{xi;_J9TafH1VtYIbiY1D;&|RD?g2~lIZuNLh zDa51FLEXspZbx`Gh~Y;Y#a_?3g?K_*|8PV23Xyz5+9kOAyq+Zm?QcwvOi~z68X5q_ zcJ&7stM|zHK973Mc(w2U>+5WwqAJrke(!w%fk7BRDG~6BAepErW~+!YYGsz~SlX8) zplD(!qe3d_&RACKM|w^2wZsL@l+(>POGb(X4THxe&qh2 zdmqU5oL$e6-~6BF{krdc?|t97aG#f+#URa%qq58q9kZcpRA*KxdTAWxXRgPz<@Cbn zPQSE`2X~KI|9@;F7_@ZaCc*}*&Ui|+n-&_~g=#q%^qzRSo`>nFc&h4Aj`SQA0*_OS zpCbwLk?^(BxiB*+fBnc|MPAd$ov30pYhr2X;QAHveKwP`BJGLVoyJpN*wegGmR$db!v7R4NSNft4+U|%5DJl?u;&e@r*~x@W+PtE?Yih$iMk+yJx*zu5Sfds@SE$a7pj zXF4>@emosk^K_VMR%1GxiPhX>GZlMRqp>r0V(wHWxzsPeV^-xt`rx}mZcjk3&&{dL zEk@>R_|@xZXk{*aoYH>^>VCq&z)0W?s#tAz6mD>=UT_qK%M`VG2u;wZsE>xw(?Crz zjnn<=K>Rzr`fsiSBB-rQCzN6~gz2acx3E|1!Q>GD+7C@O$2^zmqnpNyfo z8T=A*`I_E$dJqwU4>Jqrr_@9LG6K39F@`RnfB|D^dh&4mMK}V7V7-dhriZI7W2pt( zE0vC;gp876b7F3ay&_LG)9_lmnZ{RI2LC{DW*&b?_E;R_0viOtlI}!|x!%lI%kQVD zH|Fz~lY9vp<-$`EJm$j*=l503Yp~4;p9kI}1`X^CYRuua(x=kRXyE-*>A9R@vkxLF zX}#?Ob)m}6h*4ZbD6Jg5i?j4L$+ni~3_Q)iu{j^HrL_9s0UFkY zca}~O<8yy6ZjBWNx~KF@!xpTo`k9 za2&$hKzxbeR)t&1wd$t|T&pZ9?Q8Xa#(q+FSK?Yl!b${!GR(eeLnRdq#?^fF8ZtMY zL;PGlSUF~H9PY8`R?OZ{NUpS$TCsT4wy*5NrqM>WjYSoA;F&)H~_*S9D9qudm`=%}JpV z)%3QZdOb)zLX#h)663D94fR#^Gb^-YHN!s=FMEhR&&5rw%WR? zYDv1VBi(|kdDV4uYZ^Pss7_P^9;BZA%~=cT=9>8n2PSG`>l$jS&3Se8=G?l5dG#=w zRSV5U3u@|T4ydkKFi<^Ng9}j8)T=c#%4qARF4j<^(biqn&7s-GGZ~>z=Fke=Xz3BE zsHH^R2=`PE&83Hp!&&OV2 zY6|w{xw`6_rlBs4@IMA&(ZvL%#o~XQ=D8GVnoq?sMsR>S+CV$?uhjg9X{fPvklOh$ z?a<#>cPyeIz;Z@J?OQ~Hjiy7`Cz=ZNld9Wd+-RC!S7R63(r3#*s}@Hdv*ls+Pe)$2 zgcHA^?pb0dUSZ2O)vJzdx8)I)(r9}}HX^b0mU^g>ico!XBMmZ|j;iC1_aE$SdRz5- z#7=zoBP`!hk2~`Bwmhc3bY${U_8wQIOYOvSAmf|f)m#NX>Iv%563SM8T1pA=C)xB5 zn7)T8^{Xpx?Q8t^G@am-U0f==k+Kud!E~O@Cspn;Zec`CT80)zLXR$^Q--nUBUK)t z>-@fKVo|?Vgb#KD*uVvdwnPU(&JYnD z740sO9uay$JHOBZxo28IE z%Q+@GB0MSf&qTM2K2wVR=ZxoJ;0i8_LmTDjB#;a2Cd?A%2@8cog(E>OuT1oK(YK49 zEc#xM>#O#QVYV0oARoCUx>?vJ+$RhRj|oo+zX7=cXKd}+`-SF;8O=p{!uYr)!41I` zXMvo~Z;GK1u*>8#74zfQ8a{36!>7t_D9;aa@$b+>EWPhdTfbI9AKyd_Z zgQkTgLA&UvX!jVWfFh9Zd|r@`yb|OJmV$NzL2gi+=rG6?pA_9L{>!XY<`b0SH{dQB z>tq`baxs;n7mKz;w}G5K2y(H9#UBy_IRVIs$TqQSocHIQdMF{beBg%Rz3qPwbW-AGp9)F@!}&z&O~WVt0>s zbP>n}dPVz0TcU%aBf==il3hTQZMnLu#c_&K(FqsRO;v_H(GGbyT$K>Sn$|)=?FWkNR z({#eD|k`0u0^h>I&I5KDr223z3bTfgIeRrH`h@k z5_v4jG_1d?2P|5WZC%z}_@jX_`c1J7vD0!Yaw>Y=)2piYd_3FQ z8<9G=LcOt(RvF>P)g*<7F4hyO8AP&g6^_k%GL*Inxs1Rn^_yp@M|SHf-PP@F?XTK9 z`Z4`v&WAa*JLc}V;mVXNnkT$U?R%C^8?9@U^&B@$m29RtMtH5-xtU8|r!H(pH-*=! z>}J-Mn%!)7>b7R? zt^8Z?JuI+6?PrEJgnrn9em4Re)!-Jo(Fku;b6U_tL8U%yp>o68q>5YVv>pv5Z>40U zYgRei=qbb65_)MHy<`~SZK3iPsH=e{&)G@K(4}W~(%2+d5FjG4=sU5 zw>`Asdj&o{P4gUhSG~BO`t-U0otz1GW+wl{KkTaZ{0St&FN9t>q0XV;gwI*yw?1c8 z@&Ot!3EQ{2Qsa@7qvH&+Gw}uO*#kTFm+%}0ld-JSumaR({|-NJQGdoxeAhh>#&X6) NjLY}18-TT4{}1|86K?X|VNVB;9RW8`R(BIb5k?(FpQxy)2uK5k zicUb>(Ltj|#03={oIwqaj?TEDGA>s~8L!uI_xC;3{VYM8xpUw9`@H|WIFqifuI1FJ zv(-6O^&D)@UHOlkHP1)m{7=N^hvLhwf8}+(m1^AIii$2mED)z@gukb&zh`J!NS~?F zjhgO$B5K1K$XTl8xIJibI1lNmn&$q7hG!xMWUR7a~^oX93Mdd}Ar8@Nt z7U|Wwy>c`?Dnyh-9_8s}*?LA1Wo3$huJ@)+kwBj)y6GG3=f?E`qQbpjUm(ie{D9rC zYfmT|7mgMUe-^w%oIskGr>zyDQmdr}3$%fB(gN)}K_@TJz7=%J0_`h7r!LU`OVDWx zv@ZpnzCioJT^1M@eoxTS1={!S?*o6JU7}S6uNHCbw?t>1EHqklvi5_ZvrpE36d7@$ zIU+jhKDw8-(LHoG-9>kj^Nsk2_*(p392B36&%}RI%z zbQ9e`8%fdzT2Jf9rL}ZDt)lB_4c$ts=~wu-lCGt#;u^Y|Mz5f&=t{bguAt>~IbBAV zQZxM|GCzDI`w6;D7kZrPO>Jzp=6t$?sz|d%pxzW!RN^e(N#i)}EO*}wm)0EgJ`;+X z{70`hxjYv;GEkqaJvLiMgI)t}-;7FkawIoD)pY9HqDU3(-{EeIRK(H5AheVyH5R>+ z@{K`!T)JECzA{(8+=;;?O)0-z^>zz8uKcVI>ny|UZgoRLqj z?{*)~=pEX z(x%SiXh)g$-R_!b>5$je_i@=FXD>1}{)#M>$c=I`SsQ7uHWx&nYof*OH_^HjB(^&% zD~G{6GwTlX%jc-k4kRj@0firvvIT(i0laWbqH~QqH@WlNsHr(Wi77y^=3KDY`E)lm zT7u#jtD5_OBk(~#Z>g;<#w;)jKFeOxm3ywNuSLF_?;0|mJH1s7Bs#+CAY=thAcqexK` zab^+4O@=n2pw$!59yEsaWK4z`(>&@R5?Rq`0_y14Y+**vaA>K62|Xt7EJo-vc`FDb zn9^xF&vHwr`}i>}{}_ht_WaIV zKoO)(GDA(aDgfdDfw%_>hECeFhYO*^R+Ru%J9qA(hWKEB+=4`NOEdlj_!ULXOed?+ zIcKr+`rWVI9bCelZQtXQQnPzzp*i9E-+6GM#V@^N#1xHoh8dZXonZ#ej0xEpQL1;E z_fQ{AbJUDsCe?pTv}#bOyxe`cuy4)+o1FNO*}5sLfYajU6!jV9cfcU~9R$rlqa8Mb zQ?di5W`-wZ2cl-cSb&)ZLy4>)-b`vT!;5X?x)&DpE%C-`gT~E3Q=@}|O^a>9$6ZC` zF+j%90T3r}E=CB3HWpYIB)YD(ADCn*Sb(V- z#Lc8>Go>N@HD{?bBz&Xo{!kogU{VM;RZTXS4g+_97ty3DD4_vHYE)EW3Nz>kV1Tho zjZPI(&VInK%^g?Lw_FJrw4kdNG_OuV+FW1KJ?IsEtfZ{7H)@k6rH>Zm7y!FtqQ5NZ zEtb1hY5$7DgQnOAW=nYd#AEqxl_nT}xS*pV4(-l+nVJ4V1Lr z(RE2MyB7LHIQ2(?$bjV@J!guoZgbDM1seqmHIEg|5Mvzb@Qa=`U3roehbdA!;rY5RSf*As2*Ad10hh)91d1&CS#<&>v?zS z&<%aQ-osTfj|Wx44w>N=G!fdonHz3?KGpCRXN5a>SWi0mTF&zNJrv%Yz<#hB{un{MO#m(vFpOig@#*{X>z`*WvV{CW6{uJ}BE zhAnP&FP~vmOz{gDTpIH$ZZtTH?L(A)YDRxi>wYm~Y+kL+g5AUd!weY%qtIvLkM1Id zww`fxcTtb&4`6mhqp2;#_#5#SHvCM;@SkVu9W&h*j~O89)*fqRfoek0hXWM2Sj64G z-&NS!aBMjZ{*QnN#+~JlDg}!_NsF4;W>$79xFKn`vK)ZG+v@H*{>HqIl(C(su_|=R z8Ivs`S%w>o#%%=th2zR?{pD?i)s%QwEK&+1{<ik)D z>zA`mA@P_yYxb|=t4WBsv#FiwrVN0_!8(I&*xeB7Uaq5!XR{LUw!b8dD_8`iy+v*9 z$ZQP^hXKLnMt3c$EhiJ%&ViQ{J!;N=mGH9wHe2)%c8>e@8Rc>BBNixeQv_8nSBh-% z>qHZc2(Eod;{eKQNjRB9H6?WbB-+hwbfCpmr+K_2 z+H6bIwSF@@F2q##*K-Hq@AkPBou+^S6U02q3~V;0xbMsz)O#uuCMm3pNzk&X?ZjvP zpzTa%wxEJDuNy87sshr-yO}3-700`MPdY->v@STQD*^f|PHCce%g4gAZ?GV63XED? zXRC;FFJYm}%LEn}Qk$!LGOyXy3Tx!WHlr$2)c2XM&SclxU0u9y`=*Z>V+ z#m2>KEf8mw^Uj$)vun6_7TQjRQR5ai_8R{0vRsSDq8PF<*j?7x&DifTOGvW=ST8_o z+}~(spT$duAS`I~w8?$Dv1fQN%vr9I(^MqRal18Di3{DSO%*l%Iu->@tYVUE4+GO@ zdyFE<_RM()ceuAS6_s^dNkd@)>z>?jUu+s#kZ2aujSpVS?)|GP-7yQxtaWM(V+TpyEA1-_s68`zKD#}KgVUw4a3GEiaw1u5OqcLjj zqC%7@S~Oe?c8^~4D>kpPFE4T5TU4Ai)PgE>G^aUY3~ddby;bkMgn`)vS)sJ3u_TJ6 z1<S3Q1C z8HML{4}mhURCAs4x_|%{oM*;T^aJ?>+XN%6ge>Q2aW|beqQ_PR0Q)MCQVU3|wt{I> zlLDoeng&KuASJ_jxE-cARo-24exIDZImYqIP2>ClDfhnfhx%DM=0RnBb^dHo;~ss% z(2S)nS_8K(bvImap_ta1_v_69>b&*B_4qsCqRa7j+C{ee`9;|oGprcoe$Y6fHMk7I z`tWIFzOXvIcV)o^? zf_hpXxcn>uSj;O17uSF?bjUxali?*P>f{4wi>^2UC7!?HRQ&CCWiK(&J@LwNkMW`0 zvGy<~y34P$56Nl0(k^An0QCi&P@^$cfrB*2c&z)`l{aM`1=$HI;AwHMn%ea!+jkCy zO;F^$cGL{R36U4n%;*e^BA`^?pKiKMt@vN_%sY;poC z8aO@!yf8GaYQH&wUAQ(~(I%&MF7W~n2-8ECw`NI<^9)BF( z5OF+N;^8JcokLQR#ND(i4+7x6RXx~;_u8r>3YZCCK|x|<@j4Su3*$n!Vs%w{M{EJJ zAl4)|ELh#M$HpW#Amy)aI&ed>+kR%!jQJT0Bnwr#m21XU4YmLTER+ybFxJ{S`w4(~ zR;n;dVZfi`Ww_U`=?AKMYRv#K&i&6dR>7SL8s;}kK*tKFpE2I8y1q6c)eqwyJ&cU; zq`Dk1kN&Ax-*x?@gjnz3mvpzQ)%;MXcTop zt26KL$VYu?z4;a=nmybxmO^+8w*%)|QFrl(vTXGh_OsnicmJ(4QHGsBm?xC>zqXd# zb1sFKWoIF8S?l%p_6~^Q?i2U-DjaTRSCQd-U)Bhbvk+#6Bdj9#sryUa;s=_<5cl#2 z=70&_eZa=wKFkb9#Prh0{XD8Dq0UW}(y4#W9UDTBo;dAllW%{dh+YafX}s zXr;KOb?B!;@be$2E{IA|6E5gCnUl&iwa6++(@flNYX%(%wg`Pdogvhwk1w7-jc z-sA9Zn{LbFTk@|FcEG8ag!%!<0vl$H~RC_C-e+(`Ed}ZTZ8k z_%>#5WysH1w0AGM9`?elC?4xyKRMb(*>oTq(*Wt1ISx$0ERcYa1t%b~-QolN$_JXA zVELd79tFw@GofLoYNZxQ8 z#wW~VmQoQjVhnHH|G~pV@5EX+etcE{NC|y*E&i_k?3AK`CN;pz)f?7(6%DlEN`$x= z=w^K$17@l|pBTV0KzHwdq0qhd^D=$7b*$W(1>C&#`Sl^O(>?pE>0(6dQ(qk?@KW;i ztzv}x)K{mZ?e)z!!AAjQzI)WyC9d=BG5EOQ+xs(zTgRC}wuXkg)4%I1cC?=J z-Dl!ZI0AqJ2DSW~E*OwCKTHR_@BPsGpOczq%yF2ZAISk!Uu(y*9Pz9z=(>4>F`c5Xkx zhH=2rCgTw_M##6q;w@Cz8A0_mvNS{V!P~eDv5BkyHA5U-oT_de52^`F^lKiKDTc%j z##CS-(}^!xJcu4!jhKL$xfm3(t6biiDdwUvii!c;SZ!3CEFP6NL`7dQqHRx9?4wRh zRbPXa+Ch5C5SlIT$q{`HMT8Q&!2V}BjD4AzD=P4)$`yk|t(=!D_GEz(tIaMHzb4TlHx&bco8`B~Vv5)z$Cu!7tK7hkt?~dr zZj(op;&Hod=EogvFP4f^!==v%F9rx6gfs)W!(s`7AFq_13&dJcC+{y1OJt2Ds$s3k zd6wuWE|;qJkPD>j_pZ z0XBI9Y%DmJ=9^lKg}n~rsW}4#KD`WSGS$&Zf=1fp>>`s!YxsvZT53ib zt7)Y$@V&tQ&dMz9lPYUm-?p`ncuj}~xvU>3wV~~;eh9hab^j6K(&7f5KQafI1I@u^ zty$yMX^ckZ7RSlZFcBBWwOu((yb>yDKudlZ6kll$ zOtf}xgE%#hzt*7_v}4woXheS0AZ7v(XEe44G{_T2i!H{vn*;~23G zZ}*H9%K&=Sk>X9NP1#N%-&|)82h}%ZrI}S>wc5sN-Z!`8kO`t5bGl)oC?40`Y=Sb+ zwS$f}75)HkhHY|UP(MHi7O~JPti#yQZV03`%j*jWxs%Iyks;?!6s0*7?F!dYlO3o; zB#+y#aQ;_X?iOdy3ADLJ^;8d=1PsMN3~<>~fIkTM1OFZP%|HXMRId^Z+R?D>yun(` znkSc;8UJLg*=n#{Obs@7lIS{RoCPm6vwH*&lSZ2s;dt#D^Q+yAvDym?kU>Sy`Uqa|I$00ky z85k!@fu$1#5upU?5}Cp%#QY+N>?1hg9CQxsB60s0e0}K>-%Pdje1v&?!DWXP(T<lz zkx(wm)5n53c!Jm?=F1mP5YI#4Z#+>PiH#6)|B0g754}iZw&;SOmmDw~DBZhTJ}_HM zLd;11G+QLXUvm09Q7(tf5pxp3w&b=5g-is05C@X?&k_Ibz6e#_i^XyE5*eE-1}7k! zITykgkXJ#?hb$6DiPddaFA{eN`TQy3PhwjnEbqH2!V){nX*L#v$OUZh)tuw3i8!kw$QO%k zBNnv^&2lr(I7$B4C}vi?m}82Vo$dUDf9z?<@KQ&`?69#}E@=|eMZJ8sNsJaZ$c%+z z1m4CigvoS+u(Qp~Mmy6CPhyh>RkMwe@|uOfUA??#AuNXq`Nl$V3LvjPORR{4MX;hW z5MrHVK$`bFhfJ-B`csO*T~0Lh;}iwZPnEx5)uccTrI}o<2$RxyYwHOfFx;Imkvv5Lo1Zu%FoHcUYI`Ja9IC;IW#hSJ& z*Nc}!usLUK5?|sm^=8q8(L8#y_(asT-F}PcN1{glsYM(oPL+K&qspmr+Gb(JPQ@H! zT@9YU03*pnPeJtcwbp2yDpzh6r;54qi_PK~JjQJiC*ZMVi&&~+&ff-vO7e@Vf>78!W}TfVR8QI4iF-q58NU8@bld}M2k3IUUnz&c%8iM zPVp?>n(h+s0|!UljkU@sdDh*cq?rBsywU`70J#Da2fw~CN^ZJaEQrss12Fyryp|r! zaG@M~^r1Sj`3u%JTw$l#As93vFQ9`4;E?2XX~^lv5gtSg3t&J)MWZrem{ z(E%@N6K0?(WyqbgO%!!b84VnJQ`>zIGlGy}t8JXzx=r*Fvt;`=aUajty^zVnB8yV z=rrHMi=n&>EV%;p4drRpug=@Z99TDxVf%0`mUJN=BB4pAuQ8rIE5HI&D>kcn88D|I zT~t54tpGsSCUdrfgB#^{+eHmr&9eXfu%LdsU33xKY4~o7=CYgrmqCaa;Jz9tz znmc$OAv3FPV1I$}kci$$@FDyHE67_O6eU@HOo1)!jq>RS#qfAq>!6>s=$0~I(*WWn zHrwVLK|?djG6(4^tdwyM1`Xem;u9s;9Bmw%I9Rh|L${@ajC>{qlDudvOn-U$JnAfO z0`Ov^yyGD;wtuo0Gw8=%67dKy;e#r|j3&YI8n(=0qlPShSd1-C)e6~~iq<4zdd?Kf8}fLd97BXOqASs8nG}rJa@XKifoQd={Gx zUhg(`%3uc_wniGW${fJR{|7{f#9)H_xrzFj3TIxu^hUi3$sTzq-kJP3GdVrd08reQkHLG5KRsh+4fi;IOfb6(m0&rraKWicZ zel&riLxD&P3!8xx14Q)MgBu*DG;YEdhPs3yq*1e0HJ8dEhCo}XfhCpG;mRMb_?v0? z$;*Q*hVRXTV0qgYJ78DARP47?ye(?mavsC7Rb0_l`MAK2gE~3kd2u;?U)J{G^P)5~ zWEjjOZ~H)r$vQ@F!lD3sk)gqi)HkeYpT7It6T1ne8yihsnY1!km&S2@!}^ zP|j-w0pHX&SSYF$^ueuQg`fJS;aetaaJ0O&9VXInId-3z-+8zb7>B*l_>8$Sh7Y3U zYeZI9F(zKyp4lgIMPAD5>=%>ozbyXDHuN81N)K=Q{*Q1ul|BsbZ5GxXy9Xj%hQ6FN z*$X*9^l)3wpF|)twhU~cI!SwaIm=|9{o=MBBUHDquVw)Q^2PQEgv;S?L9Jb@g_Fx} zat&_sZ}y9a*@=DsyI4StkVWr#{`G0^iDH7Q`^@)nWMqV#`My|~HzHYiB0D)y`PKKu ztz7xS1F*M;%6$i55{{6c9}sm3|9K?kKM$Lc#gGtawBfJfE0i1ZfjAN4UjG5S-6Q1Q z4?Nd=rT-!*T+GiG7exfy2HJa_p1hhlJ|>D*M)Q8U+b&9~KlBree52*2+WtUzkz zSD%REK}J(Q6$op|#h;3yybcM%RK!Li7P&z^h87Q*v!&KIJ9+YEb#PNL-cFT|zYfPA%40}IO8 zTpCTXCc&{dJjw!;oW%riuugu%-@ z#vGLF`;F+qH9q^Eii(CH)R5)vUuPM(2h3#{wQ^UGhHx2is$MSt@{PzWz6=&0ZD-w7$W zwaOnvkG>2fw#j-x>M?ju6F}mNi41?@kGNDN;Xn+dc6m=schh7uY5QRJ#_ zSeYeoLCJ3ZHKu>_qsXG&JKFC35vC#%5510UZg|SKi4GJUGObYUz)FjJU8l)CE)`|G zx`C^rx%mPZ(z=11=qADrNzb(#f@>EIO$tyojNkJD)ETb5^#Ph;OyeC)hO(+zC=8T& zU3Ev+1u3@@cno@0R><3V_@v;Sj+${uf?Cc9sU5ttELUik>j?w&iV8I*(P+Mh~P7t*FCD|OIAz8I{o@Z?b z!8y-HXpop7zmHHUgho*Y^_)Jz%mH^~!ebO-_At`lv2yD0&T*#n@4ReGf5!^Pm>}0= zsMhb!pyBANB8$qT$fQQ3v1x8O9)I^9=SAsSyipcCj>oPnDjf-F1J4z&Z=#56tBsj? z-j+y&yTM8!SPi?>=2HtpXV(`?9_BeG6T>UcrdeW$T%1j##n85gvZ+a6k!t1A2r;B> zUM|oAq5P;pe?p<_^XOymajb0bM1@6b@*5FpZGtb-)Xv4cU~%EJ=gaRp(WFGVP5D$o z2lM65eAgpROd1Gqs0+Y2~`)d)!w884@ofcjF^o&->6 zB8u${+|;r1sbbparDw`dN^pqL&p%j7vyq-sMt6BxW99G|4MaF~ag6fuxFSZ)_!26| zfQQHz%jpQYwVZl->ABvcM$WIGK1i>spz)%v?X?Ozk$bM`LZ{<#Qy09d#{gMns)EQG zAg?m1EH*0&d|)DY1)-T`uxuejhu}ONaQ>J{pMxs5SyWQiQmG_*#EG1@#KsKV#H-!m!{N&ZQlR|S zCJrF@k7sQf7M=w|n1xHYD^0ENyAP>;LLQWTG~ok!ZdV$G+7EQ4WyQ620c<4=L4&B- z$t)N|Yt*)RIku9jU^FbMq+Td`V>sP?Qz{M}!{hw+M?<~kg5QzeR1C6tAdpZq4jsG;wH>(2+$-|{}pvI0qkLiNsv z@^7{D9C!K9Ai7>;v(&s8QWKkSFxf}fQQzdwZkFF>EgX07qGR>?Yg?ep{>BA}4jIQP zh0VJa)CTu)NwpP(+B!t9Ede3rA<*U2UXE96O#t&a74WKFem5%zGG0bH}mj#O#@ z*DG#kfXP@JmJOk!g)0{gp|TwR6HGDnX~PgYs^>a@9CA#!8KM`UDX*n)dQ0$?sNy+8 zX}VY>=MSZlfILrh70@FZb(uH#uTB zmBG_Ib2u321bOLjIx(~gPFKv>UL+1G(hGPLa|2V%T4lpi>*5sNZ-79wh6 zTJ-PiCqfmFLvw=?TN@gv2}+$07eFDx$d}op>0&m+*kpzXzjZWq=hp$>Qic3zG z5T3t3k}B+7VBqF_CTSQ{FV5 zs?wa%1a4+$G`I*j1s2g52Uxi9I1m}4T`*f>IOfWGaJ`U2roz>4(KNeTd6AUniQ*V; z9J{!j3hdT#;uac){4j+@ic=vDsv60-P>z{EJ!x}F>cav#F2h~HB zJAGEAoIjazPW3xbtJO3tDmIGwC?^fnK~cd;ofr!mVF=X zkPD}P znsG{7U@E;9j_>F}d2w-x^NNSVPyky=OhmsRrZgy%7KD&9p`9SkV8weraeNH0(-~;v zT>KyZIbW*=SipUR#aJGoaSkBSi4)*#C!Z6q@1O>3I#rSc=_-nA{tmXh9G(^Bi!<&P zeBe~$W=&RGn3Y5xP6Q|Cn=5dM#Eh^L2(tj1$5YXOG?@QcgI^{alnZB4>Aze3z5lc7+u^44hSQ<< zX(`~%a6|QAT~ioBtOX!tp{yfVAMouU*rEx4EUukUCKJc5 zA_gCi0nM?#1inT_Td}9`s z#lZnSMIa^#R|DoeoiM#lP?NnY<80AK1;`MW#?2PM6keTvpcjDQWqFY>{{?*^P=@h< z3fZrhfstX5?48J97C=uKNgj~DJ%Ne~Q&WVIUe@ zSBqJw6886*5D*JQDP&`IIGteyR5*_14L)H1=%H~w29!TB+)#N&9gh@qIst5o0EIdi z19saFb`u_}Id>%{5xdX$j2&D0OPG(4wh#7(bYTST=M6Is;vTABUMTC3avV}xq2e2u@vSQCi?M~0BG0)~nI4Y4Oe2x`h{6oQ&>tpa{{x#w?d|425Q7~4I>cH8?XWCVTA2^- z4#El*qk&iosL`|ZMn=SjNc2wqB@8%BjE1VdIkYI!js3zkj<8svt7>?Ilz`@C21ZDp zM+HW>CC8Y_)(G>iaQ5b~ls2&o1I`r4Q1xVihW!H!8^Fc~u!ARG6?dqk+c29@#N!QK z)iq5}r=B!iQj;u-4p?sbMKJ&tmm%CPp%j3pJ2rZk@i3h+Obm~FZ~;}u_vWA-FWlg~ zz-a&v!(C&DKwpsG=nL7n1BE3x=&uRG!dHYD;4OB_7sGw$;T#T$rRw|`Jnei31pwmO zLDVC(X(QX~DXn&VvGVi<&%=I5#YI1>ih-d|3<{ z@vR}`@Wwn2;;T`y#==01%LR~yH0IqgjiF^ZD9B);AfO7!{U=f1T-XvS53{5)D^8}K z@qqG>z$qh4tqHLtltAMEMU9i0O7m7qK>(Em5#U96(+FaVeE4>UM-_0BGr1r@X7FLv zD}{3fqGdRN!Nh`bz+d8day;vn=_!sa9{}9hknJM@48#Lb7YHQM9X>f;$UL3#EJEYh z0nh%Xz1h6ahw7acrOd)m7rT(fss{{Y+8OC*B9)3|lL18$ zby5e~c#l^AZ|YtcD1PS=K5vNAB~W7Qwqc(Y!{#p!m=&;TjBi~6sbgMvKO4KeaiSNS zpTIn79C6Lk2vh{>WO_$`FhpSPAOmv*u44(}jo4Tz*a%S@<5;JATzk<$dDms9*K+ySAdVEF+I*cFPVcR zT)m(pD;GEl0JWIPM)oH-!o;-{y1eZ)>Z0prjy!l8705SEqfSDXpPfd%keMahPp4v8 zb2@dxTZUI;_UTv^>heWAAmIACLXu^ZfGQ!Ux8tqfLZG2XUUI_8-)h@$%e1<%NsY{JS<-a&SU!;*XzgTUO!BWKz8ALE`WU1gflg-z<64ZA~Y zsr4lq1fYWNX=6%C1CQ6NDmn>HK=+V7%oBp+=FbRH8{1^H`F%=Cxw4V%ht(D+5?`)(Vo%f& zdqUW=y|{@6iw*KFT)+Z9WzU5)scS7C90HPA2vy<1?5Zjo0q-1#(O=4i)TP%~*j(Y@ z@*0>xeaf7)x85Dzdf~0@-G%g~;IKS`jPjX9G{X;5_Qk3^4=v>(L40OdgZix zU|k*JnP3oXfP4U033~Yf&M#nNLN|_)UoD|i#W8KOm(p%RL)Q6J5dS4lQ3Fnfh)X;T zN$@agI4iG%Xo;_)I0f?v{_m;7j^oqvpke{}%fWDxrjS(v!w_e%eajT5A5EQ0=z$4eW z3E!BhZizTI$ed*~W(4Nf%r|q@5sKBB&X0_KbFm$aIlD5QO_0GcroEG5*w8uBghj$A z;U?873%Pn3RpJoDgUe`qNSq{pxQxy(OK-71iZhQRe2qgHa@FND1jY7TPE%teA*XnE zv6+o4`fy5}XBwssH0nq>U^xWxNpjM1su3e)d^s(^+q=tYTl1aaY1U zhodrkuB3-2a!Ux<`NvTFvHQnRKxIMy1JqU%c-cFVf}LK6!_}UvaL+D|^&GVV7xUuz z*A?_qEUCo7S}8jSut9XZbT#5U$u+s9HynV@-68*RHC5m`6Nth9x;(%~KCEl##=dY3 z4x(d}oaiU|0-d4(N+E51iqE|0gQ*64NPc_`oe5Xy(btlbU4!eIa6SZt!Cy9Ci%1sw z|J}9Js~`y=A8-XVsV%^vl{5`?k6%egr=3Jlx9@NRkFBJ>`25LAI+b4EA!l4iixA&^ z>N@3ned9W^``shd5S5<<&c>)KNL+%`V~lP-IH2?kuZGn7d9wE^x~E_cBqCD@Hkz{` zE}Tl^H2KLY>fJMSSqodXh!tUC!D&XFjlU4GY_O?@W&LWn{xG%^S7SAO9up8?fLR66 z&n6;kkA|u=oCUFMU7=lp8q!jJF6B=1@NZ!>fYn=Nl;^Rs1AxSq3EDT#1JF=F*kuid zht7!g)J;~e@|)FkZjnE2TE{t)m#(1#;Bdnlx-PrJ1u?S!^;CxWNB_#QE(gMozn;#= z>7kddr(t+R*FwUMkpu9EjNuOZXu51)i=9SehPkS-1>WN- zmwIH4!Kfm*{@LNKA9bngxc$Db0(!t{-j?uN1f8$_{1W6J^wS2?ANgqrYu2R!e;qF? z*CC*X*_phKdgUf5k3|wPuUv;9UX5&9M?!Dch zkki-Gk*K?IJza=L{s!vPX(F3qn1$ZB*$rdC!IZWc8z@iU=AXn_V0o6LF$_ERi%2C+)nwEWeQ^4^GNE z70tk610^9-61%?;4S~Q@1`y0ho_zMF?RiQ5=0+;()}b<(?`M^p3DWZI8|hL}(>DJm zY!x{1!QINEfwjHO0h|Z1lzIgJe`q&3kL@NS%h`oDq}bwn%=^GeR8uY?roehEgN(?% zUB$f(=9SCsLXaj}f`rey8LM*4D)f6TY<66ji_+MH>}9bT550k`B85{nqI7uHz00UL z-6<`d>8JI6BGW2RMH5+E6gvP^tDH{uz)?N<;LS8B?KUg<<;^sZX}S6qx;TIXSRt8r z3l&$Taa)4?AxPBc&_(u?1VvPLx|)u%q!r`BDpY z?+!xb13-}`tg)jwAYHFk zQ8WiKJf$L|ckvcT&q9Jn#kUkYTrY9V|LA%NDDg8bjp|w7Vd8#vp~H+VRE29SU{%21 zFRO2*9oW1>Z7} zzg_u9yzBFT7$DtLoy|(kF_SHOIZW(4#2;Y%UCp=_4sq}0AL%b&sF(lHlj!Eaxo4OU zX1j{fFkvh80Mtp!iF=fzj`!p0R7_m*HV@v24>TaGC0n*qLH4|TPMp!tp*WlmO6m8TF8y5M#^1%s*Uc=k%EUdSa?1mKL57v4^z>reJBG4y7D z?|@*S)3za~1zd`V(?Mcs5_`{4VqD2I46#+L>MjaU+|iS=u;O=DAw_B zO2ni?xd4=1ozxUz4~^9wt-#KD9H{a zF53`iD@NPKLV?}wa?)KiH&J)wzgM>*9*v%X?P{1&&(bTnn{08K9DFwofXYAfZW1o9g0wvl%O4+%p3gF|S8LSeE?Ai^%C^Yz(pph2I-AThhpB9F!ZF zCzN9G_ctgXMW{Pu@m$U+78RevY+ev>a$?;A8r^CxE$>3gu6xxWgFYEvE;zwQi$vk$B^w zOI9o^_Oq5%2vDXJHq0mz!eSOJfTGo67E(F6l!Yy2H1Vt+>nyWibpuXpiuc`*%meI? zjQ*7|%0RWXG0N^@N z)ZqaDlIBsCz>H>L!*?(VM=O8mw{G2N?Nq?JcCDG?+F7db+-!}XPvVaTLmT&cZxD-P zcCMLai@7YLa(VX>+-Y^7OssWSMdEb1a&d9EvWVSx(QUaDNnzRw%VEz_54mUuO*j!d zkAPty#Y3yW&^V20fYMG(LjV)tp&afDU}XuGQX%w&Auqv}RW)`j!v)X|?aesiLCX6d zru-m`DeQ8b{yY`+(bnQzR^~b@lgS4^d9eij3T{Nz)zJxhM-OOXiRDi3UMk~HP-ymO z9{i}a7Mz@B04;-X*#lJ$`pvAvst}6BL}i_41#|+62z#vqA~h=zdmszWL@~JgK^9yG z{gd4M5|wXwj3Sw%>!=bff^;_QA~P4!SYD?A5*~U$wmnI`11K|G&VQc@ak`Cya`jFM z9XHyJt~B9Q82!TD$s^~+kjxxiQ&Tf)ZY=G?<8!Qd!v|(MwAgjDomB_#@V{!a ztXj>M4IF1B3jfo_yJ3E#@RXr2J5oG&nN?HJ!nBjq_EV7@`Z#5tkZoowk6Vb#qG_H% z%rGvz02%NY!NrJSd$Y(irzj2t0=dkD=8*$xz#`HHc z*=0~QJz}(-xe^YrOddXy8GK<#?j6BoHZ5)5AcweNpC_1x(#R}W*-~$y_1UPPW&z(I zMinU~C@p9*rIo2(D^ZqL{;Dj`T%xRxuMUkX8Xli0{fjM^OLG?mD*knoXK8EeXdqZP z2`QruP^d{%ps>*O8AQzlqZ5UE;Q#_sAg9o;%KB1*5tWn?v_we=`OYp1mPWVF&@Q? zP>%fkHI^ZNp`7R;GRBgh{TZa0^*Uwb@#G~*f+tUY{Uli)?f&fi>nZQ@r zDv9jLIeFh-s06#N{4B*gd|VNt5G2SbfUsl@37W)AV^IqY8<0=^iSp$+ui$jgU2h>} zzC~F@8p~hCImpo?Bc4V1$ZqOf!m1|GD<={i$iKWswQ|&c3g-8ZI$vjCw-lCtp02lo ztbxv)gqvG^Rf8vMe6+6gkw7zm1`Z+4V13W>L`@&d1x015BX;fuc)H}Y52D6= zNh}zOd4i&H?(fJsG08bh6PO@H8;aI3uZfxrnvLNoLC4|%U9d9rClM3O4H^KN72?&LDa3mc zKuh9$BuB%3j&e0qzWsrY6=5=|`Md)RF*Sf@=D*|7Om$dMnXdFlp+~U&_fj~HaVe1v zXgZRk&y6Xp`{bwyRat;O6;c`oJzDnlo9)?rj7R37bRzSHDV(6(`!arv2lsnpuGA>f zm|EE$zG(9W4dXnCvw+eIrHVESp_QY~Dwc4ejuNg)&U=BzRwN`2o-E1~pCYZ6Izjo= z3sg7)s7TYzz$%LQSjhw-VGR7)XVS!+U@w3oW10UV-E|5sobn|Swz7Bx=!1)u5DOp^ zW*-}#S~bEGS!Nb&FZkkrK>#Z$fMpGXoY1XUIDj?sWz9=iMhE1nFHt`cl#&7)1**9&TFSK)Vi>poP2-!xD2n;m;vOA?KCu~1g6a1M=^tw-Xg)9 zKq+3pnWmL>G~VZaZ~-wfcoxxb-i91pxsOVE`kg1GfNv2br9gs}1M-D^)E&I$F@+Q# z;G&lwpGPy5FH^&b=^|5MgT)1;1`9IPZ$fG*BJ@Y$x8(^OJ24STJf?^cO7>-%Fqu16 z6U*G_4VBr!6Wsn(CQX&3l1PLY{E^SX5Y3<=)!4j}l;>r|bo2!_qHUoJlW zP{TLDmJ#{;uxoU=>>Vi7EegjbD!) znZz*$j~$usfJ~1iJPIs=Lf~vHJ{iY8c6Hh14VswwTm;y|eOVs%=E(Lpuyq^<;oqPV zY#Q7AX9(Cj?Bs^7P;-O_ca@lH)|R>)^d^n$#+(~%fP-biF|70{{5QX3XN47JVVW+6qZ0|d6~PIwh>$UcWArvUy}9Scc`u-S&#J= zaI5!FM4kP>#{c@- zsk?qoYHflkW^oO{sq6ztYxs1O{*X_-OZmOk?FM_w_%J^k5j>d~C`g@6Q_u->W`f*g z-FtKl8wj3}DEEH=^O?nWh^`ilZr($jqp6+5sF(4#+DG z&=E1#$^aHhEWusAAz%gMD<4pA`Qrh~%0dYY+A|Ae(O+qJ6%POiP_TKr)NjcLhv}ZJ zGI`-&$%d2zfkW2&Ex=us@A(v;{wodcV3N!MVDmnJr4^8?KfuK%=-F@418Bq$zvusf z88Y!hs;prp1;9HPzs#l{a30VYTe|TpH-Cr|x^5;1KFOGwpiHc{1}6cYIxKmo{h(F+%$|womIq-fw)K( zkNy_6099+f5j@8uUd1;kRBM%1j31^2hj6u4ZdLH3#OlnC0;>x@49mo^VWpUs1}?)zVk0MVk!ayW4ia~AA{&YAoUm{X z5D$ht0*H3;u3V=%;(Qs;!367%JlQ#!6K0L`jT_z*Y4sV|iN zCH;f`OCJ!W0Hbk~4f0Y&DbPFoH@GJDm;2{BLEe}QhDQVxp$!iluo@^avAGLjTU+gy zRiN4$jtSs?YCgM&#SfBGV|Iua$=-h~I&5tT`c@%+ZJfeo!2ek?#uCG027m=S$eYJ- z*%fxUI&pPe1W4f@edSsh4IuL>0&NO9l!f9#Ro>2n{R0!cGa4N43gWgi4Cd0ymPeX! z{0`3xaDxweg5}L{0zvGeSJ51`^FVj>Nvcs5Pt)T+g9?=afvSZEo3acWSK&EUVH4~) zz=jzxypJm~j^Lm@=-Ann!9lqzZM{pp{NnI3&{&GIaU^I%43wkj$-z1kcClRiF?B!P z23t{`)sr8UwmDkU>fuSYs`V3|35 z41Cx4_vw>c#&Djd9URpXG>6MIf2X22Hl0=@)=|mFlsGw1b=W-WMELR0MDr-qbXB9H zwfap*BAlja4Qp-lT236rp#k$wR;0W^{(>mWscM?Wk&|kgX?5qvY^x7HdRtxjQDybz z$1zqFKPFr8p=JOMM5H5rFVmhGx9*qPx1+32$=Qmzs7O@I`tMZCX8ig+6{J-d|BGGa z@UN)>uJJ%P9%HO-W(5Mb2=5Pt1RaX;t6Av>aEwN)K%VdknR))241|ld8Qh~`dF?0E zD-7As#+Q8eJt~Q}wg zrQ@X_{iP)Rr9Az`On<3Nf2m4;>7D+<+nIS?rTW2dLGcTI5{G-OOaC-H{RJX6RcTE6 z%lPz{$>}fC(qE2Af0>#7G8-@PBtY}iKb?~Paz^^g!t|GO(qERQzg&?1vMl|jnddgy z>y+gkUZL&MKCbk(4X|$jJM)!40DIm%+EcXnO2`W8^=1Li7x4*Ek9y*~;{ri<7X0j) z=3R1ZJApLN3X=uaExaNC9cQut&U8%H3;@bA5urqVDuIti#XBHiUkTw{p(irHFZFhR z*Y08VfW%0X8$FcVh%3R-BVBOl5T{|nRN_Dm{|PL#^Bnw+j%M1Ui`%9@vd-$k5@(dz zQ$5zXmTgw=9CO{@9%}i=bK9TTVvX`;+pK!iGOcwx$9#X+-(Q|`(zH=6w^}38zg3!6 z+^n1vvj><1Iu@(vc;6_qpNjRZvnxkuzSed4TJ+aaZ&sOAEc;p<{@Xli?fP{#x=|J8 z#;ks3H?tdmiH|}4NrZoF0ND@pV#YT0(()j-W+8PZ?T61 z1PmYl4vsQM;?Oo&rjwa9-VVi5`B||oTkH|$2($haJ2PgD09c9!w7JmHea#xP_gcHR zF#~u?G}U5`*b+2HL?2G*sQAzHZP4st+G{P3uq+$X$FyxVDZHmeB`oZzVdKZl zWm&-cuJR{ByygR3mJzuOcCMoz$@{j`i=jTOov5AP=K;&a1yS|<9~W=RA;BlDOtb%b z_z2KRGt33EcD=F~IK3n z(Y?`orxVQ_<^tRSceWLkQ@^Cn|4&&awDW~`&aEKexR za#ol@Gxl#QOkQdQc#B!|0dvTDtE)$7EI&03yryUkf91ZfaBqukb_MI0d~Si0u)U!= z)|&Qu6mNbKQUG5#ISTo&z)GWeJqw?-SwpglBPL;6SwKh~PINY_Xd21d@ znPp9hf*62Vz1AGO&g`|;>V*cNuCkTp;xpPb`~&gLgA3&ZpNV>PSg=$as4HEb60&&Y7;9~)RPYoh@r*F9>E%GI>_ zyx9>&?!r2kCjwiITPoH{at3Ut*jA9;dov z=wFX>U>HFX1vL*g7Kr9)zN^pV-<`ZYG!|C2P}dc%{DCS8JqNY_Eo%9np7;UhxZsih z;0HQ}pTmEohy1543xA?1{!15m`A@Vqy^-3n(Jo#i>#Ozhg0$vq6CJNV0sDb*8vET0 zz5DvR^=RxaY%Ec<72PRBD0LwqI@!zxVQkXM4dGP$~hRq+r;tX*OTQu(#y(F!cn)A z?oGAeU-a#gJ_8qPen5I>Jc7Dz55(y{rPG@WJ>7tQ)6`y|XPi zY{9o^Zq{+|XPDflqqP~bGNAMCPE8Kz{F_uu0(v)Y=Ei`&8iTD4>b(kZN}UZTkiQ9M z6dw=5uz&F)(CzY;pkB;vv<3B^Xye_WUWUi_cwlg0Z*b3uxVMq<` zhL9TEV|eR5j|GWB$uV9f-08s>+2g^*R}8U*hr2WUX%OpW|FB-hvoblXpIYHUnq+t_ zT%7C{$N>MM$ctfpfmkQ|NBkNQ{bbzwx;>(oa09=O=)b}}pY<8u>j@e9S!Jm!U&kZ? zV%(xQ2&osYV9d_c)or4+nfeVF`%6%>K&}x5Vo=D*(YxVy^p5ghnUch*9SP~)7$wqDK6U6HLXD4mNLSKH#9BuGBhFkzNXP7uV1cpU#6?e2QLzdpt?Q1rMmq z>I7AA0fwnVk3bsZwtpQn&*bR;BmuT0vEpzvoaFIuV1Ub-uYZt>OY{Q%Wde2UDz11f zmkSH^PTWs(p*|#IsmlsS7)#~Th5CTd(dt-#w?^B|y z%VI~C==_rn9ez|HaeoAUP$7B8E4DxG&_%?XoVFKA^e1s!{f@R(W%>l-#GlLcn^ewu zo%KAGbG4}-5JgW2-HD~`|1-GqdN7?Kb` zfeaXe+JF(muOPY`6wo53iXJ?*vZe%yU`QdNA|V4tTYkDh;06h>@dVTILzdd(_J=j2 z4JsI5drAu`*41NA{aIJ!DD9!8-#c@SfAsW^&1b&%zW3(Nn>TNMW#0461T)#AWES`2 z2{Zg|o;?cB7>(TB_<+a%f((0(cu@%r8TajpN_LBkdVuqreWibzvg|A6G&NsNQv>Yz zI8D{yjC?1*SV9xb7=K#u5WY)2U0ocNhMj=1B`}CR-+k5!K-<^tz(< z_zErQF3z7ww_pO{dneLn;LC}0quIz4CSkWW^0rCznAw=fn@k^@I5I9&P>orVsGdR- z0_INMegl1OmhewQG}G+jWC#cK&cyi;)nY0UuC62};9%fH-d{;W_+ljuFq=4U8g;;# zm_{r5h%;yx^TA3gRDa^W8>z}H96z#9UIW~-VZ`mIp$w^$p%`-G^_%E|xrz@@r?V*I z*E6U(rvh)rFd_jSi{QJ>3cg|{?Zz}FZ_K3Z!YSqUts^h-p8x0AdHBrM&XZ%cQ2wAa zyI2--!qI>{#kXx(^8GO+uChzG-#q$ZW{F&ZmGFb}Xz-A7Z)6#nN&(UIjzC(B>ziHk zXgb3A+dO(^c)5K!#%3|_y$`l5h!ymXM`I7dh#xy6s8yu>_kHLcC-L>wR0P~xO%wXa z(D41RjXSF8x_oI2tFWpd2FSt3L?|he_@tWdHpe1l6pJ+=~xzqp!g+>YWw!>@zY;KT_%) zPDDnb%tW_~TEl#Pm_&DZ4YlQ9%cMrW4GCR=ACkO7^FqQ@D^_p6M$&!ZV->Go!}-p; zgv2Z+mvMB#cOh}l0?IMhV0a=LHnjK9!9}-((8s@Y?u+9n!UgwJOPN%zv?2@LDvop9 z1K`fg`1YGe)EtIm3FE;}Z;*e!AD24V{QunlT~{TSb||BFNS&(|qN~y>%FYg!pit@J z*Da(GmtvB@789=%vVyCFbq_6GTsE(+=HYqE7Cd4k5)0|5mHXh5hw2*ahnLni)Qp*5 zyL2osUqr=fT~NEYX4#|58fqR)Y+6J!EM8tmMH%5}e(*ZxI=bFEozJK0XoYpUfbUpB z3$4Qg6Te?V&8Br?aAMj|sIO_IFXh{o(sJwEW&HY5sudn8mrsoH&;@r+05rx(ip4z6&~H_$vKT8 zU**Sr8TaHL_&s0tTP5CZp0dhIywH<}nSI&q$=CQRUt$omF_!x}-`0dP*cx`4=xVF` z4L;Q5<^8L8yN_^x$CDL~$fI2A%Wa-~lMh2?HTM|7(f>5E__9?rEco)pT%!xWaCZ-n zSnXw=y;?FK<3?ZZh0N+cE}8lS*=)jD^ulV&#>Qr@k&sUC_%#U0Ni0}Hr!5N;Zik+r zE1K+bze+=3CaN}~bih8)G1ac>lxkzVVPwH?gR)CPpqC$%e2y}vc2}7KCB1>0J*3Br z0xWn1_y!}Q+5x=))b1)%O59F*E5v;ynuuYPfl^MD>WFGbbyRg+wd?67!$@I4R%A@_ zX)8m@h|*EUl&&%b%9b0G{QzuG$_uHEsCHDxKuPb4#`=wvCXn~_vIREi6`(o-N(M)D zOtq^_DUB(bUl{_WW~x9buU@qSN_jD`Nml4$L7376X-$xOonL?rN`^_G9FbL^SD^YG zQ1Wj9<*1FRJ+5@se-f1ZDb>bQ?0<R&Rp!5}O6xjN#iUsBzz>`|Uno>6|N{0x-x(yGs^zMwjAz3 z*GQ`23@CN?q4G1epI7GI;P2#OP(m*QC4C6=TAA7-px0W(&O6uAAg_%jHCYOjwsH=X zVvLZVd@v}**`WB#LGg!F&jH0B0lnhY9#idt5=Ih~wwVT{oLoE%^9*HSKS2l-M?`f! zC>f%vW2#+H(xpJ@=!{A~e=aELOF=I{Py(8(x*n8#&8nl7{L6Kemn~^d!)EcZbyRe> zmvx$E1ueKEpk!?T33OD;V?Xi7RR0PjXjk<~Q2b}a&QsT;%EfKp=ocSSMwE`S6_j*w zP*$5%rojNTag)ELHYmCbl&z>z9Z|odItofn#cx8DXJ8?zhBPP{bEo?W%0MYF1d2TZ zN_q#Bs*Qo-kAsYGbDFw?VHU z)e+T>G6s49sXwXqv@&qBf7IoIQchVD7Q8J4C4jl0RCPVr2aKveri`oK1*L$KpzP6< z>T~KhZt?vEp!jXjTaVf!s+$}v$cp1?NP-eTT6OOC{fuRxq>F%k!I;`zFiX;d60kkX z*HxedSPyzNtM(L#K4$yhjo=RRR_)g9TMc6X633OH*=PgMt}=9+VdOz4m60kxeHs+I z^8-J zh|*-pt|+}}CI7)2TJWIF;TK!*JShGJe*kHvzDV@nOcf?>iDy2IT&c6%{4{dK_+?Li z#sBhU`4;h><*+(JgAMlyc0eRM+J=pDpG)P6jCaty$D(Ps@zLk$>i(x7pX)Vc9z=b7 zw2#Lfq>&WeZ~8Yf@dJDUH!>7`-t=x|5cuvmEkgYT57D(&GM)$>qIdgRFT9p0dWp_i z)}bCA*hM9`f7)XP&3;Ds8*pI0v}Es3c0XA(@E5*4$B+gW{)fPU(x?O8A&~7gd};ph zy(ek%jPR$&cw-k`j)~b0bx}dzKOKh|?>gQ)&L_I)((H{Vpz%gyJD=_HZwW@YR5#H<*JrandSeed = 0.5f; + printf("null0_new_sfx - %u\n", o); + print_sfx(*params); + return o; } void null0_preset_sfx(SfxParams* params, SfxPresetType type) { @@ -123,22 +121,26 @@ void null0_preset_sfx(SfxParams* params, SfxPresetType type) { default: printf("null0_preset_sfx: no type!\n"); } - - print_sfx(null0_app, *params); - + print_sfx(*params); } void null0_randomize_sfx(SfxParams* params, enum SfxWaveType waveType) { pntr_app_sfx_gen_randomize(null0_app, params, waveType); + printf("null0_randomize_sfx: %d\n", waveType); + print_sfx(*params); } void null0_mutate_sfx(SfxParams* params, float range, uint32_t mask) { pntr_app_sfx_mutate(null0_app, params, range, mask); + printf("null0_mutate_sfx: %f %u\n", range, mask); + print_sfx(*params); } // Create a new sound-effect from a .rfx file SfxParams null0_load_sfx(char* filename) { SfxParams params = {0}; pntr_app_sfx_load_params(¶ms, filename); + printf("null0_load_sfx: %s\n", filename); + print_sfx(params); return params; }