From 5f94f584dc4f513e1ad3edbaf4ae781e75381411 Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 10 Jun 2022 20:19:48 -0400 Subject: [PATCH] Added duration in profiler output --- docs/index.html | 1 + docs/index.js | 58 +++++++++++++++++++++++++++++------------------ docs/native.js | 2 +- docs/native.wasm | Bin 415011 -> 416509 bytes docs/style.css | 9 ++++++++ peglib.h | 18 ++++++++++++--- 6 files changed, 62 insertions(+), 26 deletions(-) diff --git a/docs/index.html b/docs/index.html index d39e937..3ce55ee 100644 --- a/docs/index.html +++ b/docs/index.html @@ -39,6 +39,7 @@
+
diff --git a/docs/index.js b/docs/index.js index 63f84ab..bacadac 100644 --- a/docs/index.js +++ b/docs/index.js @@ -72,7 +72,6 @@ function parse() { const optimazationMode = $('#opt-mode').val(); const packrat = $('#packrat').prop('checked'); - const autoRefresh = $('#auto-refresh').prop('checked'); $grammarInfo.html(''); $grammarValidation.hide(); @@ -87,33 +86,46 @@ function parse() { } const mode = optimazationMode == 'all'; - const data = JSON.parse(Module.lint(grammarText, codeText, mode, packrat)); - if (data.grammar_valid) { - $grammarValidation.removeClass('validation-invalid').show(); + $('#overlay').css({ + 'z-index': '1', + 'display': 'block', + 'background-color': 'rgba(0, 0, 0, 0.1)' + }); + window.setTimeout(() => { + const data = JSON.parse(Module.lint(grammarText, codeText, mode, packrat)); + $('#overlay').css({ + 'z-index': '-1', + 'display': 'none', + 'background-color': 'rgba(1, 1, 1, 1.0)' + }); - codeAst.insert(data.ast); - codeAstOptimized.insert(data.astOptimized); - codeProfile.insert(data.profile); + if (data.grammar_valid) { + $grammarValidation.removeClass('validation-invalid').show(); - if (data.source_valid) { - $codeValidation.removeClass('validation-invalid').show(); + codeAst.insert(data.ast); + codeAstOptimized.insert(data.astOptimized); + codeProfile.insert(data.profile); + + if (data.source_valid) { + $codeValidation.removeClass('validation-invalid').show(); + } else { + $codeValidation.addClass('validation-invalid').show(); + } + + if (data.code.length > 0) { + const html = generateErrorListHTML(data.code); + $codeInfo.html(html); + } } else { - $codeValidation.addClass('validation-invalid').show(); + $grammarValidation.addClass('validation-invalid').show(); } - if (data.code.length > 0) { - const html = generateErrorListHTML(data.code); - $codeInfo.html(html); + if (data.grammar.length > 0) { + const html = generateErrorListHTML(data.grammar); + $grammarInfo.html(html); } - } else { - $grammarValidation.addClass('validation-invalid').show(); - } - - if (data.grammar.length > 0) { - const html = generateErrorListHTML(data.grammar); - $grammarInfo.html(html); - } + }, 0); } // Event handing for text editiing @@ -190,6 +202,8 @@ $('#main').css({ var Module = { onRuntimeInitialized: function() { // Initial parse - parse(); + if ($('#auto-refresh').prop('checked')) { + parse(); + } } }; diff --git a/docs/native.js b/docs/native.js index 3f900cf..a8eefad 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 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(); +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"]["v"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["y"];addOnInit(Module["asm"]["w"]);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}})}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function _abort(){abort("")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=(()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6})}else _emscripten_get_now=(()=>performance.now());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,"t":__embind_register_emval,"i":__embind_register_float,"u":__embind_register_function,"c":__embind_register_integer,"a":__embind_register_memory_view,"h":__embind_register_std_string,"f":__embind_register_std_wstring,"k":__embind_register_void,"p":__emscripten_get_now_is_monotonic,"g":_abort,"r":_emscripten_get_now,"s":_emscripten_memcpy_big,"q":_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"]["w"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["x"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["z"]).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"]["A"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["B"]).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"]["C"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["E"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["G"]).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 4c1f502dbdc623886a2309e531ad3ed5733cd87e..9e06b0ebb983df50daa444fd4b663421eb7df013 100755 GIT binary patch delta 89992 zcmb@v31C#k(l$KRXPHSR2?t0*CJUJvb_hEHvgV)yvM-`2s3_Mhh>GBPl?jUwWD6Xi zK~Vytpdwq4prQmtMMXtLML~^-f{KcY8Z^THRG%{;sQ13__kSPCoa(K*ySlo%y1Ke~ z_f}sNzY~1{{7zDNZu14TC4ogw zSfm%?rI9HD0V4@N zb#x&D>6A_aNxEn(v_wM)BcKN;A;Bq9>ph(i0L)pfVDZe5Od$$<%zp z`A7s)nvfu00vd@wMpNfFnibGdw-5E|gzgY&$p!#qF>~tY)YpMHSKv2*kI;jOLH?gm zm)|s+HLsiCPpF#^2-IznKt5g9&AgVa49iNhS_{+xtY|U;v+e^5vyIRVN@+_0N-_dk zAO#3(ISaJ9u}C{qsT+xPFhVHi{)bk@|MSNIP8aGATI%y@$;teeG_;xkYG#6|o4U{Y zCV&hWa^VXG{Tcp@loWqTiZ3N4nf&}G*{43Fg)Yskt<}bWXdypCnor{tl}qJe2!Ib= z)=YymAXN=Ae5o$gPzN{L@8f~+nMSI~q%=j?xkryucIgWJE(%3bYH=|F`GSdwiKZb8 z!!(nU{7!2#6f2zjk_h_GO`_XDu{(T4g6{Nnpu14uZr`su*}hYPdim1nJl~Q4o$p%^ zpbLD(0qX6WAD}+Id4Ys4Qpjgh@OWTW;BjM0pw#@#pP#=%JMBN^f8U=!%YV{*NPFAd zWximpH)or_8z+qKjjxO^jn9qOj2DgAT;sG}rT?Oz(7XSvhrZK~=%4Ec^;h+B{dqm~ zjJ`$h9@?Nku0NtbtV?|XLig)4^lAD@?KABIt$XM#?PcvbZKJkUdlaG7+SK_E5ct|SY8){_hm9`~IAl~9pBbS~jZe4? z9W)LYp^uG^R3NtB_|OP_V7!meKI1*(T_g04u@`~2jkk<9jnE$B4Fp~{b{nr6FB`jz zmyFO(quiJ@DI3!Wf3xqS9mWer_VY&e@3h^GccZhPGXR8CPA}$Jj(Np+#@J?*8C#9} zwEMJJAw6vr6931U3JLtW#lV;0Qe(669eqcexE%fXrI$dgv$pNBy`S`autUudkwGddF||Z}hMA(W8&*U+G`Q^yA_%|D_+q z7y2Rn3;J4A=%4A&&}a0ien9_3|5)Ef@9OXA@8}=s@9X>YGWvw}>Tm0B>2K->>9E+N zzoCCjuj{Yr>CsB*?bh-`p9yc1-(L3q2qn5O2`e`0tSRHHALX_G@p@ z=+Pf)QiR^u_Nl;o2;_%$>#yjsm-YP6F8w9_MLo1r-=V*tZ`XH=-Qqd@S$&&crf=0l zPwS=nW_^>sQ|uHQ_4WEw`a1ndJ@kaWR$rq(ra!8$)>r8(^-zhvLVrkKu0NZN2t{ zR;HC|uhAk=r1S4gJ@gbkMVDTB=@v11{P?p2>u4RPl&X}o0{7|D_0Uv(iXJM|Pivu5 z+Milzm8jA>;`a}&WBy~>qk+≫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 delta 87970 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 items; std::map index; size_t total = 0; + std::chrono::steady_clock::time_point start; }; parser.enable_trace( @@ -4593,8 +4594,14 @@ inline void enable_profiling(parser &parser, std::ostream &os) { } if (index == 0) { - char buff[BUFSIZ]; + auto end = std::chrono::steady_clock::now(); + auto µs = std::chrono::duration_cast( + end - stats.start) + .count(); + auto s = µs / 1000000.0; + os << "duration: " << s << "s (" << µs << "µs)" << std::endl << std::endl; + char buff[BUFSIZ]; size_t total_success = 0; size_t total_fail = 0; for (auto &[name, success, fail] : stats.items) { @@ -4614,7 +4621,8 @@ inline void enable_profiling(parser &parser, std::ostream &os) { sprintf(buff, "%4s %10s %5s %10.2f %10.2f %s", "", "", "", total_success * 100.0 / grand_total, total_fail * 100.0 / grand_total, "% success/fail"); - os << buff << std::endl; + os << buff << std::endl << std::endl; + ; size_t id = 0; for (auto &[name, success, fail] : stats.items) { @@ -4628,7 +4636,11 @@ inline void enable_profiling(parser &parser, std::ostream &os) { } } }, - [&](auto &trace_data) { trace_data = new Stats{}; }, + [&](auto &trace_data) { + auto stats = new Stats{}; + stats->start = std::chrono::steady_clock::now(); + trace_data = stats; + }, [&](auto &trace_data) { auto stats = std::any_cast(trace_data); delete stats;