From 98e1326287d090206b61ec5b382464a37ecf3b5c Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Fri, 22 Sep 2023 17:10:10 +0000 Subject: [PATCH] Segmented off loop progression Co-authored-by: sigonasr2 --- .../ChampionsLeaguePointSolver.cpp | 167 +++++++++++------- .../ChampionsLeaguePointSolver.js | 2 +- .../ChampionsLeaguePointSolver.wasm | Bin 334277 -> 353587 bytes 3 files changed, 104 insertions(+), 65 deletions(-) diff --git a/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.cpp b/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.cpp index fff1a0a..16d46cb 100644 --- a/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.cpp +++ b/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.cpp @@ -51,18 +51,10 @@ class ChampionsLeaguePointSolver : public olc::PixelGameEngine }; std::vectordataA,dataB; std::vector>player1Score,player2Score,player3Score; - void Evaluate(){ - std::vectorcases; - for(int i=0;i<5;i++){ - for(int j=0;j<5;j++){ - for(int k=0;k<5;k++){ - if(i+j+k==6){ - cases.push_back(TestCase{i,j,k}); - } - } - } - } - + std::vectorcases; + std::vector bestComboA,bestComboB; + int calculationStep=0; + void Evaluate(int caseInd,bool ASet){ auto ChooseSong = [](SongCombinations&combinations,std::vector&dat,int index){ if(combinations.remainingA>0&&combinations.p1Picked.count(index)==0&&combinations.p2Picked.count(index)==0&&combinations.p3Picked.count(index)==0){ combinations.remainingA--; @@ -84,13 +76,11 @@ class ChampionsLeaguePointSolver : public olc::PixelGameEngine } }; - std::vector bestComboA,bestComboB; - int caseInd=0; - for(TestCase&_case:cases){ + if(ASet){ bestComboA.push_back({}); - bestComboA[caseInd].remainingA=_case.p1Amt; - bestComboA[caseInd].remainingB=_case.p2Amt; - bestComboA[caseInd].remainingC=_case.p3Amt; + bestComboA[caseInd].remainingA=cases[caseInd].p1Amt; + bestComboA[caseInd].remainingB=cases[caseInd].p2Amt; + bestComboA[caseInd].remainingC=cases[caseInd].p3Amt; SongCombinations testCombo=bestComboA[caseInd]; for(int i=0;i<12;i++){ SongCombinations c1=testCombo; @@ -113,7 +103,7 @@ class ChampionsLeaguePointSolver : public olc::PixelGameEngine if(bestComboA[caseInd].totalEX&p1:bestComboA[caseInd].p1){ std::cout<<"P1["<&p1:bestComboB[caseInd].p1){ std::cout<<"P1["<highestEX&&A.p1Picked.size()+B.p1Picked.size()==4&&A.p2Picked.size()+B.p2Picked.size()==4&&A.p3Picked.size()+B.p3Picked.size()==4){ - highestEX=A.totalEX+B.totalEX; - picked1=A; - picked2=B; - std::cout<<"New Best Song Combinations found for Final Picks - Total EX: "<&p1:picked1.p1){ - std::cout<<"P1["<&p2:picked1.p2){ - std::cout<<"P2["<&p3:picked1.p3){ - std::cout<<"P3["<&p1:picked2.p1){ - std::cout<<"P1["<&p2:picked2.p2){ - std::cout<<"P2["<&p3:picked2.p3){ - std::cout<<"P3["<tabNext=p1Score; } @@ -244,6 +197,12 @@ class ChampionsLeaguePointSolver : public olc::PixelGameEngine }; QuickGUI::Manager gui; std::vectorsongs; + QuickGUI::Label*p1Label; + QuickGUI::Label*p2Label; + QuickGUI::Label*p3Label; + QuickGUI::Button*calculateButton; + int totalCalculationSteps=0; + bool calculating=false; ChampionsLeaguePointSolver() { @@ -302,14 +261,94 @@ class ChampionsLeaguePointSolver : public olc::PixelGameEngine } std::cout<<"==================="<bPressed&&!calculating){ + calculateButton->Enable(false); + for(SongElement&element:songs){ + element.p1Score->Enable(false); + element.p2Score->Enable(false); + element.p3Score->Enable(false); + } + calculating=true; + calculationStep=0; + totalCalculationSteps=cases.size()*2; + bestComboA={}; + bestComboB={}; + } gui.Update(this); gui.Draw(this); + if(calculating){ + if(calculationStephighestEX&&A.p1Picked.size()+B.p1Picked.size()==4&&A.p2Picked.size()+B.p2Picked.size()==4&&A.p3Picked.size()+B.p3Picked.size()==4){ + highestEX=A.totalEX+B.totalEX; + picked1=A; + picked2=B; + std::cout<<"New Best Song Combinations found for Final Picks - Total EX: "<&p1:picked1.p1){ + std::cout<<"P1["<&p2:picked1.p2){ + std::cout<<"P2["<&p3:picked1.p3){ + std::cout<<"P3["<&p1:picked2.p1){ + std::cout<<"P1["<&p2:picked2.p2){ + std::cout<<"P2["<&p3:picked2.p3){ + std::cout<<"P3["<bPressed=false; + } + } return true; } }; diff --git a/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.js b/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.js index b4656d8..36dd1a4 100644 --- a/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.js +++ b/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="ChampionsLeaguePointSolver.data";var REMOTE_PACKAGE_BASE="ChampionsLeaguePointSolver.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{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"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}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 __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){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);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="ChampionsLeaguePointSolver.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={39356:()=>{window.onunload=Module._olc_OnPageUnload},39400:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)};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};function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>>2>>>0]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>>2>>>0]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>>2>>>0]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0>>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>>0>>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0>>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>>0>>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>>2>>>0]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>>2>>>0]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var setErrNo=value=>{HEAP32[___errno_location()>>>2>>>0]=value;return value};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:function(){var paths=Array.prototype.slice.call(arguments);return 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:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var 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 in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{assert(arrayBuffer,`Loading data file "${url}" failed (no 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){if(preFinish)preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),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:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}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){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){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.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();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;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>>2>>>0]=tempI64[0],HEAP32[buf+28>>>2>>>0]=tempI64[1];HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>>2>>>0]=tempI64[0],HEAP32[buf+44>>>2>>>0]=tempI64[1];HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>>2>>>0]=tempI64[0],HEAP32[buf+60>>>2>>>0]=tempI64[1];HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>>2>>>0]=tempI64[0],HEAP32[buf+76>>>2>>>0]=tempI64[1];HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>>2>>>0]=tempI64[0],HEAP32[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_throw_longjmp=()=>{throw Infinity};var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof 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);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,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)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 _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])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=>{if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,`Image ${name} could not be decoded`);var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)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;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])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){if(!window.getUserMedia){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:{},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{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;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};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];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags|8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags&~8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>>2>>>0];if(param==12321){var alphaSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>>2>>>0]=1}if(config&&config_size>0){HEAP32[config>>>2>>>0]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){display>>>=0;attrib_list>>>=0;configs>>>=0;numConfigs>>>=0;return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{var source="";for(var i=0;i>>2>>>0]:-1;source+=UTF8ToString(HEAP32[string+i*4>>>2>>>0],len<0?undefined:len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:context=>{if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){display>>>=0;config>>>=0;hmm>>>=0;contextAttribs>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>>2>>>0];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>>2>>>0]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){display>>>=0;config>>>=0;attrib_list>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){display>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){display>>>=0;surface>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){display>>>=0;majorVersion>>>=0;minorVersion>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>>2>>>0]=1}if(minorVersion){HEAP32[minorVersion>>>2>>>0]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){display>>>=0;draw>>>=0;read>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){dpy>>>=0;surface>>>=0;if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();function _emscripten_memcpy_js(dest,src,num){dest>>>=0;src>>>=0;num>>>=0;return HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}var getHeapMax=()=>4294901760;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}var findCanvasEventTarget=target=>findEventTarget(target);function _emscripten_set_canvas_element_size(target,width,height){target>>>=0;var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>>3>>>0]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2>>>0]=e.location;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;HEAP32[idx+7>>>0]=e.repeat;HEAP32[idx+8>>>0]=e.charCode;HEAP32[idx+9>>>0]=e.keyCode;HEAP32[idx+10>>>0]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){func>>>=0;var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>>3>>>0]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2>>>0]=e.screenX;HEAP32[idx+3>>>0]=e.screenY;HEAP32[idx+4>>>0]=e.clientX;HEAP32[idx+5>>>0]=e.clientY;HEAP32[idx+6>>>0]=e.ctrlKey;HEAP32[idx+7>>>0]=e.shiftKey;HEAP32[idx+8>>>0]=e.altKey;HEAP32[idx+9>>>0]=e.metaKey;HEAP16[idx*2+20>>>0]=e.button;HEAP16[idx*2+21>>>0]=e.buttons;HEAP32[idx+11>>>0]=e["movementX"];HEAP32[idx+12>>>0]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13>>>0]=e.clientX-rect.left;HEAP32[idx+14>>>0]=e.clientY-rect.top};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>>3>>>0]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0>>>0]=t.identifier;HEAP32[idx+1>>>0]=t.screenX;HEAP32[idx+2>>>0]=t.screenY;HEAP32[idx+3>>>0]=t.clientX;HEAP32[idx+4>>>0]=t.clientY;HEAP32[idx+5>>>0]=t.pageX;HEAP32[idx+6>>>0]=t.pageY;HEAP32[idx+7>>>0]=t.isChanged;HEAP32[idx+8>>>0]=t.onTarget;HEAP32[idx+9>>>0]=t.clientX-targetRect.left;HEAP32[idx+10>>>0]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>>2>>>0]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>>3>>>0]=e["deltaX"];HEAPF64[wheelEvent+80>>>3>>>0]=e["deltaY"];HEAPF64[wheelEvent+88>>>3>>>0]=e["deltaZ"];HEAP32[wheelEvent+96>>>2>>>0]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){title>>>=0;return document.title=UTF8ToString(title)}var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>>0>>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0>>>0]=0};var _environ_get=function(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=function(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>>2>>>0]=tempI64[0],HEAP32[newOffset+4>>>2>>>0]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}function _glBufferData(target,size,data,usage){size>>>=0;data>>>=0;if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data>>>0,data+size>>>0):size,usage)}}function _glClear(x0){GLctx.clear(x0)}function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};function _glDeleteTextures(n,textures){textures>>>=0;for(var i=0;i>>2>>>0];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};function _glEnable(x0){GLctx.enable(x0)}var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var __glGenObject=(n,buffers,createFunction,objectTable)=>{for(var i=0;i>>2>>>0]=id}};function _glGenBuffers(n,buffers){buffers>>>=0;__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){textures>>>=0;__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){arrays>>>=0;__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){length>>>=0;infoLog>>>=0;var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>>2>>>0]=numBytesWrittenExclNull}var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var heapAccessShiftForWebGLHeap=heap=>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>>shift,pixels+bytes>>>shift)};function _glReadPixels(x,y,width,height,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){string>>>=0;length>>>=0;var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){ptr>>>=0;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=HEAPU32[tm+40>>>2>>>0];var date={tm_sec:HEAP32[tm>>>2>>>0],tm_min:HEAP32[tm+4>>>2>>>0],tm_hour:HEAP32[tm+8>>>2>>>0],tm_mday:HEAP32[tm+12>>>2>>>0],tm_mon:HEAP32[tm+16>>>2>>>0],tm_year:HEAP32[tm+20>>>2>>>0],tm_wday:HEAP32[tm+24>>>2>>>0],tm_yday:HEAP32[tm+28>>>2>>>0],tm_isdst:HEAP32[tm+32>>>2>>>0],tm_gmtoff:HEAP32[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=(lockPointer,resizeCanvas)=>Browser.requestFullscreen(lockPointer,resizeCanvas);Module["requestAnimationFrame"]=func=>Browser.requestAnimationFrame(func);Module["setCanvasSize"]=(width,height,noUpdates)=>Browser.setCanvasSize(width,height,noUpdates);Module["pauseMainLoop"]=()=>Browser.mainLoop.pause();Module["resumeMainLoop"]=()=>Browser.mainLoop.resume();Module["getUserMedia"]=()=>Browser.getUserMedia();Module["createContext"]=(canvas,useWebGL,setInModule,webGLContextAttributes)=>Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes);var preloadedImages={};var preloadedAudios={};var GLctx;var wasmImports={__cxa_throw:___cxa_throw,__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_throw_longjmp:__emscripten_throw_longjmp,abort:_abort,eglChooseConfig:_eglChooseConfig,eglCreateContext:_eglCreateContext,eglCreateWindowSurface:_eglCreateWindowSurface,eglDestroyContext:_eglDestroyContext,eglDestroySurface:_eglDestroySurface,eglGetDisplay:_eglGetDisplay,eglInitialize:_eglInitialize,eglMakeCurrent:_eglMakeCurrent,eglSwapBuffers:_eglSwapBuffers,eglSwapInterval:_eglSwapInterval,eglTerminate:_eglTerminate,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_cancel_main_loop:_emscripten_cancel_main_loop,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_blur_callback_on_thread:_emscripten_set_blur_callback_on_thread,emscripten_set_canvas_element_size:_emscripten_set_canvas_element_size,emscripten_set_focus_callback_on_thread:_emscripten_set_focus_callback_on_thread,emscripten_set_keydown_callback_on_thread:_emscripten_set_keydown_callback_on_thread,emscripten_set_keyup_callback_on_thread:_emscripten_set_keyup_callback_on_thread,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_set_mousedown_callback_on_thread:_emscripten_set_mousedown_callback_on_thread,emscripten_set_mousemove_callback_on_thread:_emscripten_set_mousemove_callback_on_thread,emscripten_set_mouseup_callback_on_thread:_emscripten_set_mouseup_callback_on_thread,emscripten_set_touchend_callback_on_thread:_emscripten_set_touchend_callback_on_thread,emscripten_set_touchmove_callback_on_thread:_emscripten_set_touchmove_callback_on_thread,emscripten_set_touchstart_callback_on_thread:_emscripten_set_touchstart_callback_on_thread,emscripten_set_wheel_callback_on_thread:_emscripten_set_wheel_callback_on_thread,emscripten_set_window_title:_emscripten_set_window_title,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,glAttachShader:_glAttachShader,glBindBuffer:_glBindBuffer,glBindTexture:_glBindTexture,glBindVertexArrayOES:_glBindVertexArrayOES,glBlendFunc:_glBlendFunc,glBufferData:_glBufferData,glClear:_glClear,glClearColor:_glClearColor,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteProgram:_glDeleteProgram,glDeleteShader:_glDeleteShader,glDeleteTextures:_glDeleteTextures,glDrawArrays:_glDrawArrays,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glGenBuffers:_glGenBuffers,glGenTextures:_glGenTextures,glGenVertexArraysOES:_glGenVertexArraysOES,glGetShaderInfoLog:_glGetShaderInfoLog,glLinkProgram:_glLinkProgram,glReadPixels:_glReadPixels,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameteri:_glTexParameteri,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,invoke_ii:invoke_ii,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_viii:invoke_viii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _olc_OnPageUnload=Module["_olc_OnPageUnload"]=()=>(_olc_OnPageUnload=Module["_olc_OnPageUnload"]=wasmExports["olc_OnPageUnload"])();var _olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=(a0,a1)=>(_olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=wasmExports["olc_PGE_UpdateWindowSize"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _free=a0=>(_free=wasmExports["free"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"])(a0);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["dynCall_viijii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["dynCall_iiiiij"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["dynCall_iiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["dynCall_iiiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["__errno_location"]=makeWrapper_p(wasmExports["__errno_location"]);wasmExports["stackSave"]=makeWrapper_p(wasmExports["stackSave"]);wasmExports["stackAlloc"]=makeWrapper_pp(wasmExports["stackAlloc"]);return wasmExports}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}try{var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="ChampionsLeaguePointSolver.data";var REMOTE_PACKAGE_BASE="ChampionsLeaguePointSolver.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"](`Downloading data... (${loaded}/${total})`)}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"](`fp ${this.name}`)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"](`fp ${that.name}`);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]"}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{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"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}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 __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}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++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){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);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="ChampionsLeaguePointSolver.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}else if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=applySignatureConversions(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={39580:()=>{window.onunload=Module._olc_OnPageUnload},39624:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var listenOnce=(object,event,func)=>{object.addEventListener(event,func,{"once":true})};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)};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};function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>>2>>>0]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>>2>>>0]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>>2>>>0]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>>2>>>0]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>>0>>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>>0>>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>>0>>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>>0>>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>>2>>>0]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>>2>>>0]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>>2>>>0]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___cxa_throw(ptr,type,destructor){ptr>>>=0;type>>>=0;destructor>>>=0;var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}var setErrNo=value=>{HEAP32[___errno_location()>>>2>>>0]=value;return value};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:function(){var paths=Array.prototype.slice.call(arguments);return 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:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var 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 in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length>>0)}return{ptr:ptr,allocated:allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=(url,onload,onerror,noRunDep)=>{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{assert(arrayBuffer,`Loading data file "${url}" failed (no 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){if(preFinish)preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),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:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}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){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get(){return this.node},set(val){this.node=val}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(val){this.shared.flags=val}},position:{get(){return this.shared.position},set(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){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.apply(check,m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i0,ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit(){FS.ensureErrnoError();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;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>>2>>>0]=tempI64[0],HEAP32[buf+28>>>2>>>0]=tempI64[1];HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>>2>>>0]=tempI64[0],HEAP32[buf+44>>>2>>>0]=tempI64[1];HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>>2>>>0]=tempI64[0],HEAP32[buf+60>>>2>>>0]=tempI64[1];HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>>2>>>0]=tempI64[0],HEAP32[buf+76>>>2>>>0]=tempI64[1];HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>>2>>>0]=tempI64[0],HEAP32[buf+92>>>2>>>0]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.getp();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=SYSCALLS.getp();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.getp();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.getp();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=SYSCALLS.getp();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;var __emscripten_get_now_is_monotonic=()=>nowIsMonotonic;var __emscripten_throw_longjmp=()=>{throw Infinity};var _abort=()=>{abort("")};var _emscripten_set_main_loop_timing=(mode,value)=>{Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof 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);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,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0};var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var setMainLoop=(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming)=>{assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)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 _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])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=>{if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}};var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,`Image ${name} could not be decoded`);var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{err(`Image ${url} could not be decoded`);if(onerror)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;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err(`warning: browser could not fully decode audio ${name}, trying slower base64 approach`);function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(()=>{finish(audio)},1e4)};preloadPlugins.push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:2};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(callback=>callback());Browser.init()}return ctx},destroyContext(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])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){if(!window.getUserMedia){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:{},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{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;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};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];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(listener=>listener(canvas.width,canvas.height))},setCanvasSize(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags|8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>>2>>>0];flags=flags&~8388608;HEAP32[SDL.screen>>>2>>>0]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h>>2>>>0];if(param==12321){var alphaSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>>2>>>0];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>>2>>>0]=1}if(config&&config_size>0){HEAP32[config>>>2>>>0]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){display>>>=0;attrib_list>>>=0;configs>>>=0;numConfigs>>>=0;return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance=ctx=>!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));var webgl_enable_WEBGL_multi_draw=ctx=>!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"));var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:table=>{var ret=GL.counter++;for(var i=table.length;i{var source="";for(var i=0;i>>2>>>0]:-1;source+=UTF8ToString(HEAP32[string+i*4>>>2>>>0],len<0?undefined:len)}return source},createContext:(canvas,webGLContextAttributes)=>{if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:(ctx,webGLContextAttributes)=>{var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:contextHandle=>{GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:contextHandle=>GL.contexts[contextHandle],deleteContext:contextHandle=>{if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:context=>{if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(ext=>{if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _eglCreateContext(display,config,hmm,contextAttribs){display>>>=0;config>>>=0;hmm>>>=0;contextAttribs>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>>2>>>0];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>>2>>>0]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){display>>>=0;config>>>=0;attrib_list>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){display>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){display>>>=0;surface>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){display>>>=0;majorVersion>>>=0;minorVersion>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>>2>>>0]=1}if(minorVersion){HEAP32[minorVersion>>>2>>>0]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){display>>>=0;draw>>>=0;read>>>=0;context>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){dpy>>>=0;surface>>>=0;if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){display>>>=0;if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}var _emscripten_cancel_main_loop=()=>{Browser.mainLoop.pause();Browser.mainLoop.func=null};var _emscripten_date_now=()=>Date.now();function _emscripten_memcpy_js(dest,src,num){dest>>>=0;src>>>=0;num>>>=0;return HEAPU8.copyWithin(dest>>>0,src>>>0,src+num>>>0)}var getHeapMax=()=>4294901760;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}var JSEvents={inEventHandler:0,removeAllEventListeners(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort((x,y)=>x.precedence{for(var i=0;icString>2?UTF8ToString(cString):cString;var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];var findEventTarget=target=>{target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var registerFocusEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=(e=event)=>{var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}var findCanvasEventTarget=target=>findEventTarget(target);function _emscripten_set_canvas_element_size(target,width,height){target>>>=0;var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}var registerKeyEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=e=>{var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>>3>>>0]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2>>>0]=e.location;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;HEAP32[idx+7>>>0]=e.repeat;HEAP32[idx+8>>>0]=e.charCode;HEAP32[idx+9>>>0]=e.keyCode;HEAP32[idx+10>>>0]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){func>>>=0;var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var getBoundingClientRect=e=>specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0};var fillMouseEventData=(eventStruct,e,target)=>{HEAPF64[eventStruct>>>3>>>0]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2>>>0]=e.screenX;HEAP32[idx+3>>>0]=e.screenY;HEAP32[idx+4>>>0]=e.clientX;HEAP32[idx+5>>>0]=e.clientY;HEAP32[idx+6>>>0]=e.ctrlKey;HEAP32[idx+7>>>0]=e.shiftKey;HEAP32[idx+8>>>0]=e.altKey;HEAP32[idx+9>>>0]=e.metaKey;HEAP16[idx*2+20>>>0]=e.button;HEAP16[idx*2+21>>>0]=e.buttons;HEAP32[idx+11>>>0]=e["movementX"];HEAP32[idx+12>>>0]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13>>>0]=e.clientX-rect.left;HEAP32[idx+14>>>0]=e.clientY-rect.top};var registerMouseEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=(e=event)=>{fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}var registerTouchEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=e=>{var t,touches={},et=e.touches;for(var i=0;i>>3>>>0]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3>>>0]=e.ctrlKey;HEAP32[idx+4>>>0]=e.shiftKey;HEAP32[idx+5>>>0]=e.altKey;HEAP32[idx+6>>>0]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0>>>0]=t.identifier;HEAP32[idx+1>>>0]=t.screenX;HEAP32[idx+2>>>0]=t.screenY;HEAP32[idx+3>>>0]=t.clientX;HEAP32[idx+4>>>0]=t.clientY;HEAP32[idx+5>>>0]=t.pageX;HEAP32[idx+6>>>0]=t.pageY;HEAP32[idx+7>>>0]=t.isChanged;HEAP32[idx+8>>>0]=t.onTarget;HEAP32[idx+9>>>0]=t.clientX-targetRect.left;HEAP32[idx+10>>>0]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>>2>>>0]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}var registerWheelEventCallback=(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread)=>{if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=(e=event)=>{var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>>3>>>0]=e["deltaX"];HEAPF64[wheelEvent+80>>>3>>>0]=e["deltaY"];HEAPF64[wheelEvent+88>>>3>>>0]=e["deltaZ"];HEAP32[wheelEvent+96>>>2>>>0]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)};function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target>>>=0;userData>>>=0;callbackfunc>>>=0;targetThread>>>=0;target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){title>>>=0;return document.title=UTF8ToString(title)}var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i>>0>>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0>>>0]=0};var _environ_get=function(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>>2>>>0]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=function(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>>2>>>0]=tempI64[0],HEAP32[newOffset+4>>>2>>>0]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _glAttachShader=(program,shader)=>{GLctx.attachShader(GL.programs[program],GL.shaders[shader])};var _glBindBuffer=(target,buffer)=>{if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])};var _glBindTexture=(target,texture)=>{GLctx.bindTexture(target,GL.textures[texture])};var _glBindVertexArray=vao=>{GLctx.bindVertexArray(GL.vaos[vao])};var _glBindVertexArrayOES=_glBindVertexArray;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}function _glBufferData(target,size,data,usage){size>>>=0;data>>>=0;if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data>>>0,data+size>>>0):size,usage)}}function _glClear(x0){GLctx.clear(x0)}function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}var _glCompileShader=shader=>{GLctx.compileShader(GL.shaders[shader])};var _glCreateProgram=()=>{var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id};var _glCreateShader=shaderType=>{var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id};var _glDeleteProgram=id=>{if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null};var _glDeleteShader=id=>{if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null};function _glDeleteTextures(n,textures){textures>>>=0;for(var i=0;i>>2>>>0];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}var _glDrawArrays=(mode,first,count)=>{GLctx.drawArrays(mode,first,count)};function _glEnable(x0){GLctx.enable(x0)}var _glEnableVertexAttribArray=index=>{GLctx.enableVertexAttribArray(index)};var __glGenObject=(n,buffers,createFunction,objectTable)=>{for(var i=0;i>>2>>>0]=id}};function _glGenBuffers(n,buffers){buffers>>>=0;__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){textures>>>=0;__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){arrays>>>=0;__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;function _glGetShaderInfoLog(shader,maxLength,length,infoLog){length>>>=0;infoLog>>>=0;var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>>2>>>0]=numBytesWrittenExclNull}var _glLinkProgram=program=>{program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}};var computeUnpackAlignedImageSize=(width,height,sizePerPixel,alignment)=>{function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize};var colorChannelsInGlTextureFormat=format=>{var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1};var heapObjectForWebGLType=type=>{type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16};var heapAccessShiftForWebGLHeap=heap=>31-Math.clz32(heap.BYTES_PER_ELEMENT);var emscriptenWebGLGetTexPixelData=(type,format,width,height,pixels,internalFormat)=>{var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>>shift,pixels+bytes>>>shift)};function _glReadPixels(x,y,width,height,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glShaderSource(shader,count,string,length){string>>>=0;length>>>=0;var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){pixels>>>=0;if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}var _glUseProgram=program=>{program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program};function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){ptr>>>=0;GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx.viewport(x0,x1,x2,x3)}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var arraySum=(array,index)=>{var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum};var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];var addDays=(date,days)=>{var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};function _strftime(s,maxsize,format,tm){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;var tm_zone=HEAPU32[tm+40>>>2>>>0];var date={tm_sec:HEAP32[tm>>>2>>>0],tm_min:HEAP32[tm+4>>>2>>>0],tm_hour:HEAP32[tm+8>>>2>>>0],tm_mday:HEAP32[tm+12>>>2>>>0],tm_mon:HEAP32[tm+16>>>2>>>0],tm_year:HEAP32[tm+20>>>2>>>0],tm_wday:HEAP32[tm+24>>>2>>>0],tm_yday:HEAP32[tm+28>>>2>>>0],tm_isdst:HEAP32[tm+32>>>2>>>0],tm_gmtoff:HEAP32[tm+36>>>2>>>0],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":date=>WEEKDAYS[date.tm_wday].substring(0,3),"%A":date=>WEEKDAYS[date.tm_wday],"%b":date=>MONTHS[date.tm_mon].substring(0,3),"%B":date=>MONTHS[date.tm_mon],"%C":date=>{var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":date=>leadingNulls(date.tm_mday,2),"%e":date=>leadingSomething(date.tm_mday,2," "),"%g":date=>getWeekBasedYear(date).toString().substring(2),"%G":date=>getWeekBasedYear(date),"%H":date=>leadingNulls(date.tm_hour,2),"%I":date=>{var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":date=>leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3),"%m":date=>leadingNulls(date.tm_mon+1,2),"%M":date=>leadingNulls(date.tm_min,2),"%n":()=>"\n","%p":date=>{if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":date=>leadingNulls(date.tm_sec,2),"%t":()=>"\t","%u":date=>date.tm_wday||7,"%U":date=>{var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":date=>{var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":date=>date.tm_wday,"%W":date=>{var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":date=>(date.tm_year+1900).toString().substring(2),"%Y":date=>date.tm_year+1900,"%z":date=>{var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":date=>date.tm_zone,"%%":()=>"%"};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){s>>>=0;maxsize>>>=0;format>>>=0;tm>>>=0;loc>>>=0;return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=(lockPointer,resizeCanvas)=>Browser.requestFullscreen(lockPointer,resizeCanvas);Module["requestAnimationFrame"]=func=>Browser.requestAnimationFrame(func);Module["setCanvasSize"]=(width,height,noUpdates)=>Browser.setCanvasSize(width,height,noUpdates);Module["pauseMainLoop"]=()=>Browser.mainLoop.pause();Module["resumeMainLoop"]=()=>Browser.mainLoop.resume();Module["getUserMedia"]=()=>Browser.getUserMedia();Module["createContext"]=(canvas,useWebGL,setInModule,webGLContextAttributes)=>Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes);var preloadedImages={};var preloadedAudios={};var GLctx;var wasmImports={__cxa_throw:___cxa_throw,__syscall_fcntl64:___syscall_fcntl64,__syscall_ioctl:___syscall_ioctl,__syscall_openat:___syscall_openat,_emscripten_get_now_is_monotonic:__emscripten_get_now_is_monotonic,_emscripten_throw_longjmp:__emscripten_throw_longjmp,abort:_abort,eglChooseConfig:_eglChooseConfig,eglCreateContext:_eglCreateContext,eglCreateWindowSurface:_eglCreateWindowSurface,eglDestroyContext:_eglDestroyContext,eglDestroySurface:_eglDestroySurface,eglGetDisplay:_eglGetDisplay,eglInitialize:_eglInitialize,eglMakeCurrent:_eglMakeCurrent,eglSwapBuffers:_eglSwapBuffers,eglSwapInterval:_eglSwapInterval,eglTerminate:_eglTerminate,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_cancel_main_loop:_emscripten_cancel_main_loop,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,emscripten_set_blur_callback_on_thread:_emscripten_set_blur_callback_on_thread,emscripten_set_canvas_element_size:_emscripten_set_canvas_element_size,emscripten_set_focus_callback_on_thread:_emscripten_set_focus_callback_on_thread,emscripten_set_keydown_callback_on_thread:_emscripten_set_keydown_callback_on_thread,emscripten_set_keyup_callback_on_thread:_emscripten_set_keyup_callback_on_thread,emscripten_set_main_loop:_emscripten_set_main_loop,emscripten_set_mousedown_callback_on_thread:_emscripten_set_mousedown_callback_on_thread,emscripten_set_mousemove_callback_on_thread:_emscripten_set_mousemove_callback_on_thread,emscripten_set_mouseup_callback_on_thread:_emscripten_set_mouseup_callback_on_thread,emscripten_set_touchend_callback_on_thread:_emscripten_set_touchend_callback_on_thread,emscripten_set_touchmove_callback_on_thread:_emscripten_set_touchmove_callback_on_thread,emscripten_set_touchstart_callback_on_thread:_emscripten_set_touchstart_callback_on_thread,emscripten_set_wheel_callback_on_thread:_emscripten_set_wheel_callback_on_thread,emscripten_set_window_title:_emscripten_set_window_title,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,glAttachShader:_glAttachShader,glBindBuffer:_glBindBuffer,glBindTexture:_glBindTexture,glBindVertexArrayOES:_glBindVertexArrayOES,glBlendFunc:_glBlendFunc,glBufferData:_glBufferData,glClear:_glClear,glClearColor:_glClearColor,glCompileShader:_glCompileShader,glCreateProgram:_glCreateProgram,glCreateShader:_glCreateShader,glDeleteProgram:_glDeleteProgram,glDeleteShader:_glDeleteShader,glDeleteTextures:_glDeleteTextures,glDrawArrays:_glDrawArrays,glEnable:_glEnable,glEnableVertexAttribArray:_glEnableVertexAttribArray,glGenBuffers:_glGenBuffers,glGenTextures:_glGenTextures,glGenVertexArraysOES:_glGenVertexArraysOES,glGetShaderInfoLog:_glGetShaderInfoLog,glLinkProgram:_glLinkProgram,glReadPixels:_glReadPixels,glShaderSource:_glShaderSource,glTexImage2D:_glTexImage2D,glTexParameteri:_glTexParameteri,glUseProgram:_glUseProgram,glVertexAttribPointer:_glVertexAttribPointer,glViewport:_glViewport,invoke_ii:invoke_ii,invoke_iii:invoke_iii,invoke_iiii:invoke_iiii,invoke_iiiii:invoke_iiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_viii:invoke_viii,invoke_viiii:invoke_viiii,invoke_viiiiii:invoke_viiiiii,strftime_l:_strftime_l};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _olc_OnPageUnload=Module["_olc_OnPageUnload"]=()=>(_olc_OnPageUnload=Module["_olc_OnPageUnload"]=wasmExports["olc_OnPageUnload"])();var _olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=(a0,a1)=>(_olc_PGE_UpdateWindowSize=Module["_olc_PGE_UpdateWindowSize"]=wasmExports["olc_PGE_UpdateWindowSize"])(a0,a1);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var setTempRet0=a0=>(setTempRet0=wasmExports["setTempRet0"])(a0);var _free=a0=>(_free=wasmExports["free"])(a0);var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var ___cxa_is_pointer_type=a0=>(___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"])(a0);var dynCall_viijii=Module["dynCall_viijii"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_viijii=Module["dynCall_viijii"]=wasmExports["dynCall_viijii"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);var dynCall_iiiiij=Module["dynCall_iiiiij"]=(a0,a1,a2,a3,a4,a5,a6)=>(dynCall_iiiiij=Module["dynCall_iiiiij"]=wasmExports["dynCall_iiiiij"])(a0,a1,a2,a3,a4,a5,a6);var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=wasmExports["dynCall_iiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=wasmExports["dynCall_iiiiiijj"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["__errno_location"]=makeWrapper_p(wasmExports["__errno_location"]);wasmExports["stackSave"]=makeWrapper_p(wasmExports["stackSave"]);wasmExports["stackAlloc"]=makeWrapper_pp(wasmExports["stackAlloc"]);return wasmExports}function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}try{var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.wasm b/ChallengeLeaguePointSolver/ChampionsLeaguePointSolver.wasm index 87e1494ad48703a5eb7b9e99b3b114527a111e81..a346e78dca4762e56405eb7dfef7243ca8a0c159 100755 GIT binary patch delta 107689 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ξ*}nL~wD0 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 Ndb3NEDy37-e*xT2)%O4Z delta 90047 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%0A7e!|L`0>sLNT$``D0x3a0wg@Nco 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 l3y?GH04noKm{DnFdQJNJ{y)7?rqcib