UNPKG

@aislamov/onnxruntime-web64

Version:

A Javascript library for running ONNX models on browsers

8 lines (6 loc) 132 kB
var ortWasmThreaded = (() => { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(moduleArg = {}) { function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});"use strict";Module["jsepInit"]=(backend,alloc,free,copy,copyAsync,createKernel,releaseKernel,runKernel)=>{Module.jsepBackend=backend;Module.jsepAlloc=alloc;Module.jsepFree=free;Module.jsepCopy=copy;Module.jsepCopyAsync=copyAsync;Module.jsepCreateKernel=createKernel;Module.jsepReleaseKernel=releaseKernel;Module.jsepRunKernel=runKernel;Module["jsepOnRunStart"]=sessionId=>{Module["jsepRunPromise"]=new Promise(r=>{Module.jsepRunPromiseResolve=r});if(Module.jsepSessionState){throw new Error("Session already started")}Module.jsepSessionState={sessionId:sessionId,errors:[]}};Module["jsepOnRunEnd"]=sessionId=>{if(Module.jsepSessionState.sessionId!==sessionId){throw new Error("Session ID mismatch")}const errorPromises=Module.jsepSessionState.errors;Module.jsepSessionState=null;return errorPromises.length===0?Promise.resolve():new Promise((resolve,reject)=>{Promise.all(errorPromises).then(errors=>{errors=errors.filter(e=>e);if(errors.length>0){reject(new Error(errors.join("\n")))}else{resolve()}},reason=>{reject(reason)})})}};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;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);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[Emscripten Module object]";let nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!ENVIRONMENT_IS_NODE){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)}}setWindowTitle=title=>document.title=title}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance=="undefined"){global.performance=require("perf_hooks").performance}}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){defaultPrint=(...args)=>fs.writeSync(1,args.join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.join(" ")+"\n")}var out=Module["print"]||defaultPrint;var err=Module["printErr"]||defaultPrintErr;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 wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;var maxArraySize=Math.min(b.byteLength,4*1024*1024*1024-2);function getHeapBlock(type,offset,length){if(!offset){offset=0}let heap=wasmMemory.buffer;function createTypedArray(arrayType,offset,length){let bpe=arrayType.BYTES_PER_ELEMENT;return new arrayType(heap,offset,length||Math.min((heap.byteLength-offset)/bpe,maxArraySize))}switch(type){case"i1":case"i8":return createTypedArray(Int8Array,offset,length);case"u1":case"u8":return createTypedArray(Uint8Array,offset,length);case"i16":return createTypedArray(Int16Array,offset,length);case"u16":return createTypedArray(Uint16Array,offset,length);default:throw new Error("Invalid type")}}function createProxyHandler(type,heapBlocks){let firstHeapBlock=heapBlocks[0];let bpe=firstHeapBlock.BYTES_PER_ELEMENT;function getRealStartAndEnd(start,end){let startReal=(start||0)*bpe;let endReal=end?end*bpe:wasmMemory.buffer.byteLength;return[startReal,endReal]}function copyWithin(target,start,end){if(target*bpe>=maxArraySize||start*bpe>=maxArraySize||end&&end*bpe>=maxArraySize){let len=end-start;let targetArray=getHeapBlock(type,target*bpe,len);let sourceArray=getHeapBlock(type,start*bpe,len);targetArray.set(sourceArray);return heapBlocks[0]}return heapBlocks[0].copyWithin(target,start,end)}function setOverridden(array,offset){let offsetReal=(offset||0)*bpe;if(offsetReal>=maxArraySize||array.byteLength+offsetReal>=maxArraySize){let targetArray=getHeapBlock(type,offsetReal,array.length);targetArray.set(array)}else{firstHeapBlock.set(array,offset)}}function subarray(start,end){let[startReal,endReal]=getRealStartAndEnd(start,end);if(startReal>=maxArraySize||endReal>=maxArraySize){return getHeapBlock(type,startReal,endReal-startReal)}return firstHeapBlock.subarray(start,end)}function fill(value,start,end){let[startReal,endReal]=getRealStartAndEnd(start,end);if(startReal>=maxArraySize||endReal>=maxArraySize){let hb=getHeapBlock(type,startReal,endReal-startReal);hb.fill(value,0,end-start);return firstHeapBlock}return firstHeapBlock.fill(value,start,end)}function slice(start,end){let[startReal,endReal]=getRealStartAndEnd(start,end);if(startReal>=maxArraySize||endReal>=maxArraySize){let hb=getHeapBlock(type,startReal,endReal-startReal);return hb.slice(0,end-start)}return firstHeapBlock.slice(start,end)}return{get(target,property){if(parseInt(property,10)==property){let memoryOffset=property*bpe;let blockNumber=Math.floor(memoryOffset/maxArraySize);return heapBlocks[blockNumber][property-blockNumber*maxArraySize]}switch(property){case"copyWithin":return copyWithin;case"set":return setOverridden;case"subarray":return subarray;case"fill":return fill;case"slice":return slice;case"length":return wasmMemory.buffer.byteLength}return firstHeapBlock[property]},set(target,property,value){if(parseInt(property,10)==property){let memoryOffset=property*bpe;let blockNumber=Math.floor(memoryOffset/maxArraySize);heapBlocks[blockNumber][property-blockNumber*maxArraySize]=value;return true}firstHeapBlock[property]=value;return true}}}function createMemoryProxy(type){let heapBlocks=[];let bpe=type==="i16"||type==="u16"?2:1;let numberOfBlocks=Math.ceil(b.byteLength/maxArraySize/bpe);for(let i=0;i<numberOfBlocks;i++){heapBlocks.push(getHeapBlock(type,i*maxArraySize*bpe))}return new Proxy(heapBlocks[0],createProxyHandler(type,heapBlocks))}if(b.byteLength>maxArraySize){Module["HEAP8"]=HEAP8=createMemoryProxy("i8");Module["HEAPU8"]=HEAPU8=createMemoryProxy("u8")}else{Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b)}if(b.byteLength>maxArraySize*2){Module["HEAP16"]=HEAP16=createMemoryProxy("i16");Module["HEAPU16"]=HEAPU16=createMemoryProxy("u16")}else{Module["HEAP16"]=HEAP16=new Int16Array(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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=5242880,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+5242880+")");if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":17179869184/65536,"shared":true,"index":"i64"});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)")}throw Error("bad memory")}}}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];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(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;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.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);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="ort-wasm-simd-threaded.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){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);exports=applySignatureConversions(exports);wasmExports=exports;registerTLSInit(wasmExports["_emscripten_tls_init"]);wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);wasmModule=module;removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var ASM_CONSTS={1461228:$0=>{Module.jsepRunPromiseResolve?.($0)},1461269:$0=>Module.jsepAlloc($0),1461302:$0=>Module.jsepFree($0),1461334:($0,$1,$2)=>{Module.jsepCopy($0,$1,$2,true)},1461373:($0,$1,$2)=>{Module.jsepCopy($0,$1,$2)},1461406:$0=>{Module.jsepCreateKernel("Abs",$0,undefined)},1461457:$0=>{Module.jsepCreateKernel("Neg",$0,undefined)},1461508:$0=>{Module.jsepCreateKernel("Floor",$0,undefined)},1461561:$0=>{Module.jsepCreateKernel("Ceil",$0,undefined)},1461613:$0=>{Module.jsepCreateKernel("Reciprocal",$0,undefined)},1461671:$0=>{Module.jsepCreateKernel("Sqrt",$0,undefined)},1461723:$0=>{Module.jsepCreateKernel("Exp",$0,undefined)},1461774:$0=>{Module.jsepCreateKernel("Erf",$0,undefined)},1461825:$0=>{Module.jsepCreateKernel("Sigmoid",$0,undefined)},1461880:$0=>{Module.jsepCreateKernel("Log",$0,undefined)},1461931:$0=>{Module.jsepCreateKernel("Sin",$0,undefined)},1461982:$0=>{Module.jsepCreateKernel("Cos",$0,undefined)},1462033:$0=>{Module.jsepCreateKernel("Tan",$0,undefined)},1462084:$0=>{Module.jsepCreateKernel("Asin",$0,undefined)},1462136:$0=>{Module.jsepCreateKernel("Acos",$0,undefined)},1462188:$0=>{Module.jsepCreateKernel("Atan",$0,undefined)},1462240:$0=>{Module.jsepCreateKernel("Sinh",$0,undefined)},1462292:$0=>{Module.jsepCreateKernel("Cosh",$0,undefined)},1462344:$0=>{Module.jsepCreateKernel("Asinh",$0,undefined)},1462397:$0=>{Module.jsepCreateKernel("Acosh",$0,undefined)},1462450:$0=>{Module.jsepCreateKernel("Atanh",$0,undefined)},1462503:$0=>{Module.jsepCreateKernel("Tanh",$0,undefined)},1462555:$0=>{Module.jsepCreateKernel("Not",$0,undefined)},1462606:($0,$1,$2)=>{Module.jsepCreateKernel("ClipV10",$0,{"min":$1,"max":$2})},1462678:$0=>{Module.jsepCreateKernel("Clip",$0,undefined)},1462730:($0,$1)=>{Module.jsepCreateKernel("Elu",$0,{"alpha":$1})},1462788:$0=>{Module.jsepCreateKernel("Relu",$0,undefined)},1462840:($0,$1)=>{Module.jsepCreateKernel("LeakyRelu",$0,{"alpha":$1})},1462904:($0,$1)=>{Module.jsepCreateKernel("ThresholdedRelu",$0,{"alpha":$1})},1462974:($0,$1)=>{Module.jsepCreateKernel("Cast",$0,{"to":$1})},1463032:$0=>{Module.jsepCreateKernel("Add",$0,undefined)},1463083:$0=>{Module.jsepCreateKernel("Sub",$0,undefined)},1463134:$0=>{Module.jsepCreateKernel("Mul",$0,undefined)},1463185:$0=>{Module.jsepCreateKernel("Div",$0,undefined)},1463236:$0=>{Module.jsepCreateKernel("Pow",$0,undefined)},1463287:$0=>{Module.jsepCreateKernel("Equal",$0,undefined)},1463340:$0=>{Module.jsepCreateKernel("Greater",$0,undefined)},1463395:$0=>{Module.jsepCreateKernel("Less",$0,undefined)},1463447:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceMean",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1463627:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceMax",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1463806:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceMin",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1463985:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceProd",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1464165:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceSum",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1464344:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceL1",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1464522:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceL2",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1464700:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceLogSum",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1464882:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceSumSquare",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1465067:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("ReduceLogSumExp",$0,{"keepDims":!!$1,"noopWithEmptyAxes":!!$2,"axes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1465252:($0,$1,$2)=>{Module.jsepCreateKernel("Transpose",$0,{"perm":$1?Array.from(GROWABLE_HEAP_I32().subarray(Number($2),Number($2)+$1)):[]})},1465381:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10)=>{Module.jsepCreateKernel("Conv",$0,{"format":$8?"NHWC":"NCHW","weightsFormat":$9?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2],"group":$3,"kernel_shape":[$4],"pads":[$5,$6],"strides":[$7],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($10)]})},1465658:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("Conv",$0,{"format":$13?"NHWC":"NCHW","weightsFormat":$14?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2,$3],"group":$4,"kernel_shape":[$5,$6],"pads":[$7,$8,$9,$10],"strides":[$11,$12],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($15)]})},1465966:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10)=>{Module.jsepCreateKernel("Conv",$0,{"format":$8?"NHWC":"NCHW","weightsFormat":$9?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2],"group":$3,"kernel_shape":[$4],"pads":[$5,$6],"strides":[$7],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($10)]})},1466243:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("Conv",$0,{"format":$13?"NHWC":"NCHW","weightsFormat":$14?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2,$3],"group":$4,"kernel_shape":[$5,$6],"pads":[$7,$8,$9,$10],"strides":[$11,$12],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($15)]})},1466551:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)=>{Module.jsepCreateKernel("ConvTranspose",$0,{"format":$8?"NHWC":"NCHW","autoPad":$1,"dilations":[$2],"group":$3,"kernel_shape":[$4],"pads":[$5,$6],"strides":[$7],"wIsConst":()=>!!GROWABLE_HEAP_I8()[Number($9)],"outputPadding":$10?Array.from(GROWABLE_HEAP_I32().subarray(Number($11),Number($11)+$10)):[],"outputShape":$12?Array.from(GROWABLE_HEAP_I32().subarray(Number(Number($13)),Number($13)+$12)):[]})},1466979:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)=>{Module.jsepCreateKernel("ConvTranspose",$0,{"format":$7?"NHWC":"NCHW","autoPad":$1,"dilations":Array.from(GROWABLE_HEAP_I32().subarray(Number($2),Number($2)+2)),"group":$3,"kernelShape":Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+2)),"pads":Array.from(GROWABLE_HEAP_I32().subarray(Number($5),Number($5)+4)),"strides":Array.from(GROWABLE_HEAP_I32().subarray(Number($6),Number($6)+2)),"wIsConst":()=>!!GROWABLE_HEAP_I8()[Number($8)],"outputPadding":$9>0?Array.from(GROWABLE_HEAP_I32().subarray(Number($10),Number($10)+$9)):[],"outputShape":$11>0?Array.from(GROWABLE_HEAP_I32().subarray(Number($12),Number($12)+$11)):[]})},1467606:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13)=>{Module.jsepCreateKernel("ConvTranspose",$0,{"format":$8?"NHWC":"NCHW","autoPad":$1,"dilations":[$2],"group":$3,"kernel_shape":[$4],"pads":[$5,$6],"strides":[$7],"wIsConst":()=>!!GROWABLE_HEAP_I8()[Number($9)],"outputPadding":$10?Array.from(GROWABLE_HEAP_I32().subarray(Number($11),Number($11)+$10)):[],"outputShape":$12?Array.from(GROWABLE_HEAP_I32().subarray(Number(Number($13)),Number($13)+$12)):[]})},1468034:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)=>{Module.jsepCreateKernel("ConvTranspose",$0,{"format":$7?"NHWC":"NCHW","autoPad":$1,"dilations":Array.from(GROWABLE_HEAP_I32().subarray(Number($2),Number($2)+2)),"group":$3,"kernelShape":Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+2)),"pads":Array.from(GROWABLE_HEAP_I32().subarray(Number($5),Number($5)+4)),"strides":Array.from(GROWABLE_HEAP_I32().subarray(Number($6),Number($6)+2)),"wIsConst":()=>!!GROWABLE_HEAP_I8()[Number($8)],"outputPadding":$9>0?Array.from(GROWABLE_HEAP_I32().subarray(Number($10),Number($10)+$9)):[],"outputShape":$11>0?Array.from(GROWABLE_HEAP_I32().subarray(Number($12),Number($12)+$11)):[]})},1468661:($0,$1)=>{Module.jsepCreateKernel("GlobalAveragePool",$0,{"format":$1?"NHWC":"NCHW"})},1468752:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("AveragePool",$0,{"format":$15?"NHWC":"NCHW","auto_pad":$1,"ceil_mode":$2,"count_include_pad":$3,"storage_order":$4,"dilations":[$5,$6],"kernel_shape":[$7,$8],"pads":[$9,$10,$11,$12],"strides":[$13,$14]})},1469036:($0,$1)=>{Module.jsepCreateKernel("GlobalAveragePool",$0,{"format":$1?"NHWC":"NCHW"})},1469127:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("AveragePool",$0,{"format":$15?"NHWC":"NCHW","auto_pad":$1,"ceil_mode":$2,"count_include_pad":$3,"storage_order":$4,"dilations":[$5,$6],"kernel_shape":[$7,$8],"pads":[$9,$10,$11,$12],"strides":[$13,$14]})},1469411:($0,$1)=>{Module.jsepCreateKernel("GlobalMaxPool",$0,{"format":$1?"NHWC":"NCHW"})},1469498:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("MaxPool",$0,{"format":$15?"NHWC":"NCHW","auto_pad":$1,"ceil_mode":$2,"count_include_pad":$3,"storage_order":$4,"dilations":[$5,$6],"kernel_shape":[$7,$8],"pads":[$9,$10,$11,$12],"strides":[$13,$14]})},1469778:($0,$1)=>{Module.jsepCreateKernel("GlobalMaxPool",$0,{"format":$1?"NHWC":"NCHW"})},1469865:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("MaxPool",$0,{"format":$15?"NHWC":"NCHW","auto_pad":$1,"ceil_mode":$2,"count_include_pad":$3,"storage_order":$4,"dilations":[$5,$6],"kernel_shape":[$7,$8],"pads":[$9,$10,$11,$12],"strides":[$13,$14]})},1470145:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("Gemm",$0,{"alpha":$1,"beta":$2,"transA":$3,"transB":$4})},1470250:$0=>{Module.jsepCreateKernel("MatMul",$0,undefined)},1470304:($0,$1,$2,$3)=>{Module.jsepCreateKernel("ArgMax",$0,{"keepDims":!!$1,"selectLastIndex":!!$2,"axis":$3})},1470412:($0,$1,$2,$3)=>{Module.jsepCreateKernel("ArgMin",$0,{"keepDims":!!$1,"selectLastIndex":!!$2,"axis":$3})},1470520:($0,$1)=>{Module.jsepCreateKernel("Softmax",$0,{"axis":$1})},1470583:($0,$1)=>{Module.jsepCreateKernel("Concat",$0,{"axis":$1})},1470643:($0,$1,$2,$3,$4)=>{Module.jsepCreateKernel("Split",$0,{"axis":$1,"numOutputs":$2,"splitSizes":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[]})},1470804:$0=>{Module.jsepCreateKernel("Expand",$0,undefined)},1470858:($0,$1)=>{Module.jsepCreateKernel("Gather",$0,{"axis":Number($1)})},1470929:($0,$1)=>{Module.jsepCreateKernel("GatherElements",$0,{"axis":Number($1)})},1471008:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10)=>{Module.jsepCreateKernel("Resize",$0,{"antialias":$1,"axes":$2?Array.from(GROWABLE_HEAP_I32().subarray(Number($3),Number($3)+$2)):[],"coordinateTransformMode":UTF8ToString($4),"cubicCoeffA":$5,"excludeOutside":$6,"extrapolationValue":$7,"keepAspectRatioPolicy":UTF8ToString($8),"mode":UTF8ToString($9),"nearestMode":UTF8ToString($10)})},1471375:($0,$1,$2,$3,$4,$5,$6)=>{Module.jsepCreateKernel("Slice",$0,{"starts":$1?Array.from(GROWABLE_HEAP_I32().subarray(Number($2),Number($2)+$1)):[],"ends":$3?Array.from(GROWABLE_HEAP_I32().subarray(Number($4),Number($4)+$3)):[],"axes":$5?Array.from(GROWABLE_HEAP_I32().subarray(Number($6),Number($6)+$5)):[]})},1471654:$0=>{Module.jsepCreateKernel("Tile",$0,undefined)},1471706:($0,$1,$2)=>{Module.jsepCreateKernel("LayerNormalization",$0,{"axis":Number($1),"epsilon":Number($2)})},1471813:($0,$1,$2)=>{Module.jsepCreateKernel("InstanceNormalization",$0,{"epsilon":$1,"format":$2?"NHWC":"NCHW"})},1471927:($0,$1,$2)=>{Module.jsepCreateKernel("InstanceNormalization",$0,{"epsilon":$1,"format":$2?"NHWC":"NCHW"})},1472041:($0,$1,$2,$3,$4,$5,$6,$7,$8)=>{Module.jsepCreateKernel("Attention",$0,{numHeads:$1,isUnidirectional:$2,maskFilterValue:$3,scale:$4,doRotary:$5,qkvHiddenSizes:$6?Array.from(GROWABLE_HEAP_I32().subarray(Number($7),Number($7)+$6)):[],pastPresentShareBuffer:!!$8})},1472299:$0=>{Module.jsepCreateKernel("Gelu",$0,undefined)},1472351:$0=>{Module.jsepCreateKernel("BiasAdd",$0,undefined)},1472406:$0=>{Module.jsepCreateKernel("BiasSplitGelu",$0,undefined)},1472467:($0,$1)=>{Module.jsepCreateKernel("SkipLayerNormalization",$0,{"epsilon":$1})},1472548:($0,$1,$2,$3,$4,$5)=>{Module.jsepCreateKernel("MultiHeadAttention",$0,{"numHeads":$1,"isUnidirectional":$2,"maskFilterValue":$3,"scale":$4,"doRotary":$5})},1472707:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10)=>{Module.jsepCreateKernel("Conv",$0,{"format":$8?"NHWC":"NCHW","weightsFormat":$9?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2],"group":$3,"kernel_shape":[$4],"pads":[$5,$6],"strides":[$7],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($10)]})},1472984:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15)=>{Module.jsepCreateKernel("Conv",$0,{"format":$13?"NHWC":"NCHW","weightsFormat":$14?"NHWC":"NCHW","auto_pad":$1,"dilations":[$2,$3],"group":$4,"kernel_shape":[$5,$6],"pads":[$7,$8,$9,$10],"strides":[$11,$12],"w_is_const":()=>!!GROWABLE_HEAP_I8()[Number($15)]})},1473292:$0=>{Module.jsepReleaseKernel($0)},1473326:($0,$1)=>Module.jsepRunKernel($0,$1,Module.jsepSessionState)};function __asyncjs__jsepDownload(src_data,dst_data,bytes){return Asyncify.handleAsync(async()=>{await Module.jsepCopyAsync(src_data,dst_data,bytes)})}__asyncjs__jsepDownload.sig="vjjj";function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var killThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];delete PThread.pthreads[pthread_ptr];terminateWorker(worker);__emscripten_thread_free_data(pthread_ptr);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0};var cancelThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];worker.postMessage({"cmd":"cancel"})};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];assert(worker);PThread.returnWorkerToPool(worker)};var zeroMemory=(address,size)=>{GROWABLE_HEAP_U8().fill(0,address,address+size);return address};var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"pthread_ptr":threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};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=>(view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))),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<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=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<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer?heapOrArray.slice(idx,endPtr):heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){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 alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};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<CAPACITY_DOUBLING_MAX?2:1.125)>>>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;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===GROWABLE_HEAP_I8().buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===GROWABLE_HEAP_I8().buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}GROWABLE_HEAP_I8().set(contents,ptr)}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 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;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){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<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>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.m