From 6d92d503cc12a842b91eaa5d0d85c3d884f89e33 Mon Sep 17 00:00:00 2001 From: yhirose Date: Wed, 8 Jun 2022 11:10:59 -0400 Subject: [PATCH] Added automatic EOI check --- README.md | 2 ++ docs/native.js | 2 +- docs/native.wasm | Bin 422413 -> 415011 bytes peglib.h | 21 ++++++++++++++++----- test/test1.cc | 17 +++++++++++++++-- test/test2.cc | 30 +++++++----------------------- 6 files changed, 41 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 067d220..f92d9f2 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ The PEG syntax is well described on page 2 in the [document](http://www.brynosau * `exp⇑label` or `exp^label` (Syntax sugar for `(exp / %recover(label))`) * `label { message "..." }` (Error message instruction) +'End of Input' check will be done as default. In order to disable the check, please call `disable_eoi_check`. + This library supports the linear-time parsing known as the [*Packrat*](http://pdos.csail.mit.edu/~baford/packrat/thesis/thesis.pdf) parsing. IMPORTANT NOTE for some Linux distributions such as Ubuntu and CentOS: Need `-pthread` option when linking. See [#23](https://github.com/yhirose/cpp-peglib/issues/23#issuecomment-261126127), [#46](https://github.com/yhirose/cpp-peglib/issues/46#issuecomment-417870473) and [#62](https://github.com/yhirose/cpp-peglib/issues/62#issuecomment-492032680). diff --git a/docs/native.js b/docs/native.js index a59885f..3f900cf 100644 --- a/docs/native.js +++ b/docs/native.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){requireNodeFS();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)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[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)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.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 tempRet0=0;var setTempRet0=value=>{tempRet0=value};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 UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function 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.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 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="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["y"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["B"];addOnInit(Module["asm"]["z"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function 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 ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let 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=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function 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 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,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}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;i0){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}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(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:function(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:function(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:function(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:function(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:function(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:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(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:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(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:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(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{path=PATH_FS.resolve(FS.cwd(),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.normalizeArray(path.split("/").filter(p=>!!p),false);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},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},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:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);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;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,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 random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);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.getStream(fd);if(!stream)throw new FS.ErrnoError(8);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.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;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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||[])}else{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)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);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{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(Browser.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)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(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]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return 61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __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];function __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}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],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}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(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":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(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":function(date){return date.tm_zone},"%%":function(){return"%"}};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){return _strftime(s,maxsize,format,tm)}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");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.staticInit();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 asmLibraryArg={"b":___assert_fail,"e":___cxa_allocate_exception,"d":___cxa_throw,"n":__embind_register_bigint,"k":__embind_register_bool,"w":__embind_register_emval,"h":__embind_register_float,"x":__embind_register_function,"c":__embind_register_integer,"a":__embind_register_memory_view,"g":__embind_register_std_string,"f":__embind_register_std_wstring,"l":__embind_register_void,"j":_abort,"v":_emscripten_memcpy_big,"u":_emscripten_resize_heap,"q":_environ_get,"r":_environ_sizes_get,"s":_fd_close,"t":_fd_read,"m":_fd_seek,"i":_fd_write,"o":_setTempRet0,"p":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["z"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["A"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["C"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["D"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["E"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["G"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["H"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["I"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["J"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["K"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){requireNodeFS();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)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})});if(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",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[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)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.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;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function 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.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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;callRuntimeCallbacks(__ATINIT__)}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 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="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["t"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["w"];addOnInit(Module["asm"]["u"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function 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 ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let 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=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function 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 SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __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];function __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}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],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}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(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":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(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":function(date){return date.tm_zone},"%%":function(){return"%"}};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){return _strftime(s,maxsize,format,tm)}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");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 asmLibraryArg={"b":___assert_fail,"e":___cxa_allocate_exception,"d":___cxa_throw,"l":__embind_register_bigint,"j":__embind_register_bool,"r":__embind_register_emval,"h":__embind_register_float,"s":__embind_register_function,"c":__embind_register_integer,"a":__embind_register_memory_view,"g":__embind_register_std_string,"f":__embind_register_std_wstring,"k":__embind_register_void,"i":_abort,"q":_emscripten_memcpy_big,"p":_emscripten_resize_heap,"n":_environ_get,"o":_environ_sizes_get,"m":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["u"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["v"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["x"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["z"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["E"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); diff --git a/docs/native.wasm b/docs/native.wasm index 345f7fb3dce5b092d155e36bc47c39a97cfd0313..4c1f502dbdc623886a2309e531ad3ed5733cd87e 100755 GIT binary patch delta 102969 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

@pu{oT*+<>b$?0!5 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

iweUmf^>{FV5B= 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

  • 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 aS|11#zPob@zT5U}>1K;f<&B9Q*8c B <- 'hello' | 'world' %whitespace <- [ ]* @@ -1253,7 +1253,7 @@ TEST(ErrorTest, Default_error_handling_1) { TEST(ErrorTest, Default_error_handling_2) { parser pg(R"( - S <- '@' A B !. + S <- '@' A B A <- < [a-z]+ > B <- 'hello' / 'world' %whitespace <- ' '* @@ -1279,7 +1279,7 @@ TEST(ErrorTest, Default_error_handling_2) { TEST(ErrorTest, Default_error_handling_fiblang) { parser pg(R"( # Syntax - START ← STATEMENTS !. + START ← STATEMENTS STATEMENTS ← (DEFINITION / EXPRESSION)* DEFINITION ← 'def' ↑ Identifier '(' Identifier ')' EXPRESSION EXPRESSION ← TERNARY @@ -1326,7 +1326,7 @@ for n frm 1 to 30 TEST(ErrorTest, Error_recovery_1) { parser pg(R"( -START <- __? SECTION* !. +START <- __? SECTION* SECTION <- HEADER __ ENTRIES __? @@ -1490,29 +1490,13 @@ TEST(ErrorTest, Error_recovery_2) { )", ast)); - ast = pg.optimize_ast(ast); - - EXPECT_EQ(R"(+ START - - ENTRY/0[NUM] (000) - - ENTRY/0[NUM] (111) - + ENTRY - + ITEM/2 - + ITEM/2 - - ITEM/0[WORD] ("bbb") - + ITEM/2 - + ENTRY - + ITEM/2 - - ITEM/1[NUM] (444) - - ITEM/1[NUM] (555) - + ITEM/2 -)", - ast_to_s(ast)); + EXPECT_FALSE(ast); } TEST(ErrorTest, Error_recovery_3) { parser pg(R"~( # Grammar -START <- __? SECTION* !. +START <- __? SECTION* SECTION <- HEADER __ ENTRIES __? @@ -1723,7 +1707,7 @@ sss | ttt TEST(ErrorTest, Error_recovery_Java) { parser pg(R"( -Prog ← PUBLIC CLASS NAME LCUR PUBLIC STATIC VOID MAIN LPAR STRING LBRA RBRA NAME RPAR BlockStmt RCUR !. +Prog ← PUBLIC CLASS NAME LCUR PUBLIC STATIC VOID MAIN LPAR STRING LBRA RBRA NAME RPAR BlockStmt RCUR BlockStmt ← LCUR (Stmt)* RCUR^rcblk Stmt ← IfStmt / WhileStmt / PrintStmt / DecStmt / AssignStmt / BlockStmt IfStmt ← IF LPAR Exp RPAR Stmt (ELSE Stmt)?