From 9660853a6891eebbee8678516dacc4739881e6cc Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 5 Mar 2021 16:52:15 -0500 Subject: [PATCH] Changed 'unreferenced rule' not to be reported as error, but warning --- docs/native.js | 2 +- docs/native.wasm | Bin 366808 -> 369722 bytes peglib.h | 1 - test/test2.cc | 2 +- 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/native.js b/docs/native.js index 6ccc2d4..578f359 100644 --- a/docs/native.js +++ b/docs/native.js @@ -1 +1 @@ -var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};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",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}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;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":773,"maximum":773+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.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 i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}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 WASM_PAGE_SIZE=65536;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 DYNAMIC_BASE=5280016,DYNAMICTOP_PTR=36976;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;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){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}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)&&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()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).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"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}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;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}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)}var ___exception_infos={};var ___exception_last=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(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=[]}}}};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}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!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:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=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:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};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}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(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:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(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);if(typeof Uint8Array!="undefined")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(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>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)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},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},get64:function(low,high){return low}};function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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}else{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>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>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}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){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}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 embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>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=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"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(HEAPU8[currentBytePtr]==0||i==length){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;i>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;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){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 abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}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 janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=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"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}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)}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();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,"q":___map_file,"p":___sys_munmap,"k":__embind_register_bool,"j":__embind_register_emval,"i":__embind_register_float,"t":__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,"h":_abort,"m":_emscripten_memcpy_big,"n":_emscripten_resize_heap,"r":_environ_get,"s":_environ_sizes_get,"memory":wasmMemory,"o":_strftime_l,"table":wasmTable};var asm=createWasm();Module["asm"]=asm;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"]["w"]).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"]["x"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["z"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["E"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["G"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["H"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["I"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["J"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["K"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["L"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["M"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["N"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["O"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["P"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["R"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["S"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["T"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["U"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["V"]).apply(null,arguments)};Module["asm"]=asm;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();preMain();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()()}}noExitRuntime=true;run(); +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};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",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}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;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":773,"maximum":773+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.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 i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}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 WASM_PAGE_SIZE=65536;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 DYNAMIC_BASE=5280032,DYNAMICTOP_PTR=36992;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;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){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;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()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}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)&&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()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).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"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}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;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}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)}var ___exception_infos={};var ___exception_last=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(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:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(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=[]}}}};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}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!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:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=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:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};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}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(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:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(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:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(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:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(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);if(typeof Uint8Array!="undefined")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(function(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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>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)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},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},get64:function(low,high){return low}};function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}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}else{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>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>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}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){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}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 embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>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=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"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(HEAPU8[currentBytePtr]==0||i==length){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;i>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;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){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 abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}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 janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=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"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}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)}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();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,"q":___map_file,"p":___sys_munmap,"k":__embind_register_bool,"j":__embind_register_emval,"i":__embind_register_float,"t":__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,"h":_abort,"m":_emscripten_memcpy_big,"n":_emscripten_resize_heap,"r":_environ_get,"s":_environ_sizes_get,"memory":wasmMemory,"o":_strftime_l,"table":wasmTable};var asm=createWasm();Module["asm"]=asm;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"]["w"]).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"]["x"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["y"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["z"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["A"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["B"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["C"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["D"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["E"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["F"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["G"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["H"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["I"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["J"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["K"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["L"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["M"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["N"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["O"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["P"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["R"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["S"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["T"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["U"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["V"]).apply(null,arguments)};Module["asm"]=asm;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();preMain();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()()}}noExitRuntime=true;run(); diff --git a/docs/native.wasm b/docs/native.wasm index aa4d5aa34355664e4475901ef40d18043e6dec97..7893029af42c85c9cbfb878fef83c33ee1772cac 100644 GIT binary patch delta 36513 zcmbS!2Vhji*8iTFdv`b4lp8`wAPH=ifI&i6ddWo;3r#`A4vH-(icb`kXF@edfZzot z^dK!#G#K!r6cJE*Q_!fCfS^%8q5>jC{=b>Ko1(t&d;bq~=giERGiT16Idi66N>>k1a52&dKVHqHkrtt~im)Ew>B*>y z{2J+udC3ow5n&PXKNjVVB9FC@w;|p7mN&}MHQnvjH5YTcy)IPYA|I1c{MF=-^A})v z@IS2*k~|YJhEgs!_e6RkH78&`t}%ub9;vxFcl%I-TX%&3pU>xZxyTh3t7o}fuGnxb zJUkq%M?|sh7?D(y z*W_-_6B!_HO~$$I;i10{;Bl#V-FsA2{%G72=5cEr|AlGZ8=7;U+wG?0CINS>PVR6B z$sH9@KcZ1oEF|kft6fZopxlhPwKz9}1kg-|KWIz1b-$jLgzQwD!!^rGJzNXC)YJ90mwLJ8d#Sgpz)O8xGre@DYo3?xatSZ> zbs>)#>f_uK5$1X);CHV(Yl=QW8>L<1 zzw$DEgdgNP`9{8)zsC!C0iVV5`8VE!-o4&!-U15!UF%)tJwxw#7kcx()4Wr?7Gh`U zE$ObpJ~I_IvvMJ}-&jHUDp3gmdJi9&Z6L)%cc(!}CdA52!L+n$}X3r+iC!UR-j}bdT z-_Zuode1t~N5R;K*3aI=tVN!Mp81{vq|Nip^~~|i^33$i@Z@`hXS!#aXR0TcLVy2c zZ+WJ8@;tB9ne3V5`IAkQd7d{>a=a(U^M+@fXRK!oVxv8yJR?2V+<&^Sy4xpSabI>{ za{uAJ=>8qC3+~_Czq)^MA9I%?cGP_&%6-^<$o+-;b40=Tb@~`<5G2km?9r1qV5Tsx*6;CuL1zJ?d`Pxv}CqL_W5eXi}- z_Gx>yJ=%W0gKyy<@RfW6|A=p}2Z=73izEd^ z`~13$fE`&HkW*SBf_6-FytOMT!WtKy-cE8B@N@^3!+sr~pZT>)1|<#ibw9m46ct1; znd@L%r=puuo>j+~T%G@|#;Xw_)=1XYGp2n#SxbtGWyw}c88H(c$BO|Pdb5&*HK2W* zwKisP{i1omBbFimLKu!bfy-VDcoZ%KG^WO?gaR}K|4ZJoG6S;hepjT++-CKOO`rnn z>Dc;orFdfOHKHVIV%!=^D!!%GF`}8)p`w#kWbOOu6YHtk*IUyQyA{7xTVtKVT;|1V zWTd%#VW8wE;{y2-iL&auOk;3>QjutU$oym)nG*IzDJZxS_i875@n$L7H5N9uDq7p4b3VoK< zzCl-p;PnQ@3`*CkVOwC&&&;#lZrD-kVrj#%&5O{3vgas` zc>_|hRY@LHlu*flTWX0aJMFsuDXQBksEH|zWdRQ^=ZgU?)bUYiH^fWz^hojK1obo` z!Y4<g)z?EMg+&j|c*V0%*iWj2{ z07jWoYU}gHuQqeA0_4|wJHr8GppFn5N_YjExoA^TseaZ0$7#aGzBA1 zwcoGb0c6CS!X!&zc$)cEWV^;z(4IR@>#Xrj{9V^5G64>XMGokNbqR#|y*(qt{b7E7M`XCq zTvwn}Pa7JkF*$l1dBnzoGy5|iu|S%aHCNu|~oO*3_rHrH8Qo88<2 zRRpW?yF)|ET&3!j4F}|xe^QM$fa#LMt9s`&{q*eEGB}BhFlBA`S17>@x#s7t+t!*v2VL?4* zX&E{&Xk|GDCM>cuFhT3-8%HuF!c<5rrgcbqZCbazaa#dv#9VEd0qLU)73?*UinupZ zcHG~4c$c-Xb>@G;Tq|opoAC~FRLPv2E?h4L+@UGJ+xA3gJYwwkgpHNsQJR53wei@L zW?LQG1z;;4X;)j?k5}7m{V$kUhXTnR;$?x>9kwF!X9rcfcE?W~lcr``X+vPrz?%MI zK=(V$!MI-Tc!M+^eoaauXHIeZPIHLX6qj^<4c5x`q-%A)O7_ii0% zXYuH69jW0lRtJ*{ESU?$jT0&soRE&Q(A0FY_~gywSzJ7@$(u|YVk~@0c&>8xW{dy*b?KQds zL((UE$j^+<(mTm!m`Q!%lBso=6(4rMEyay`?9i-3cO}w?*2TM8u`j)1z=NzdjGU1H z|H(A0vwfbXkBjfSb2M3f`@S6SaF+r@BKf5X9*^~nr)}0BeaFNk*YWu@n4^&VmKRUz zx0uyirH2arVnG2EA%M z`-~^yN6j|@3-t_0I12{inyY6dG05G@edY+wE*|_W_69z&h7W0}Eu<7C=KscOTAPNn zWZCnr3q#t}&z|pCWIsjw%-OljY%Ucq%NK_qze}300;|t+^)$FDUs(To?iu>XDt)ds zyzR>aC_9RIp*STP0@g8748LAH)gNt9P6Hn8H>}bl zjg()wwM`^Okuk98?4$~UQk z)}-Rt>=IrFbJ!Yqqc*vGNiOpm{_s#o-Zg#}T`T^1d=0W5w^QR*kuQMWmy+U`oh7fv zcx$emnIv4#&ciswKvCbwllmqZ^em94|&44tw9gDc=V(R8kJko zRx*B@Sf5f^@o&~xq9w(zOuG`6@*x=eh@k#(j|*sUK!Z=Lp&QJ?<(N0gNVcZWdjlh- zZozepPUOn|f>@NbQlZ(&_?!i>W8)`jz&hQM2m^k?8d8u*CyL)JXv3gbo8EqwR$0v# z+{m&QT2C&RjB)V$f(|UI90sgt4tz*BO~wya#^T1Qh??bdWs(<3(nlca7pLef1A3&x z5r(HTdGYmBUi{JGkG!E3fz`BVh3fcoj<>xf`8zno=?^2V7kuC?HnIYZZ*;eN@DO79?Sd#%l^Vis972o$^2dN*^KI%kY7k}~5 z7NYr9{<`H&DrT5np{Yj8glb(PpPZGjLNHR{d^^xiYv}rRF@KvxL`+kPFaCV}I%!rW zZ(J%iq|h5;Ux3xI!aj{g+R!hT7PtGPGu7Nde&67LZeDTSj)gV)bC_9LJYmzloL0Biol#=i&)Fo+H|8UEa9`zZ-XTr=ym4_p`LedTDokHonlBwR=77x9;0B zxb}VqS3De^r=MiKnBz=HBh2V*9p3Xc3S{pc8f6v2v?K;~(XZ<@uXr$|LZTDqc4Mx3wM`lc4I7*3BJS?sK@i_aeYfP5z_>O5Io zbgZ7#;(faX(Cte&SLjAIiC9nm91=Y(aP?xV8nh=^Taq4ZQlD*O#He?Scl z>c|y=BKA}Da%U>a4MpiMPS0dNl9=Mvt%job$~wq3$_9o5os$FZ8IrSC{o+%ci|+vNGZ3WXd$j7;EjjP>ar6KU~NT7hGBx zjJfI7(BEU}qBZvSX7S}$DYF^5I=G}Vu*@LF+t$wCQ(?!;f3KNPF>p((4_qth;*A*f zcU^p-pR<8bC%BOSk5St1U`*Ooxv}uy<<@l(1BR@_>5r6Ij#eRm}fZt{y)`y}>m&9H3u*Oc=l8MBx_(s)YwGRCyx zqgNv-qPIVyGUei*-5D(r8APpVu6V>tkBSwH278od7;{vLjg&?dA{^@wULXl$jSNnV zeES!U^C3mKBFUrEXhw@9h224N3vEPV$ljO529ekwN7vvM?yp7PrYQfsWMYMXUaCNh zX4n^5!!dhG7!9Y0c?^D)FO3<-Iuem}=z7t`M?GSyCP%njK9`7zphVmD(Qrn+Me`^c zis0=i>Q)N^G0^-dqqp&%CI_!i!uFLYD%0fLP(-KXlps#T(r_^>jAF#{czP`4%Zly^ zbQhfvGZSbteIy>PO$&WX6i?}{1f!>9>Cu=f35pq?m|p`v>dZQ1NN$!T(O3j6lF6(E zDH@QX3d)eL6aR?V>LOzz=&*m(CUn#57X{b~mFs;;v@Y z{C_M}^!HMO8w9IyS5$*Kq^}1LKh@YzLB@(&Q60CAl?3YS-GUNDesg-^|5o-r{d@DI2 zcmP3I>0;_W6o&btSlyl)dd|X;BI8|gygj9QN>$_wJF)|9lzO_SBhA$#XD=qX9h~C9 zsw+>t(v{w!U84R?w1u{bvYV&@9kipmQA=^+E7*UmA?yyS~%}K};rzhaPmszROu{A* zynSJq)F>*HCXvk9qV?SvPO}A;VRgXHjJvT~uXRv2v#?EwHp_9~Q!|zEl~{QXb#NcT z{9qgszurR+CmxpYVfHV%xq(fDET1nZbK|5Kd@ps^i)N6ii_&{3mF3J3hwr89^wNAX zxk{onqG^9h)ANu*PD+``?oaW?iE+#vH;D|Nc?HmfNn%NVYMON(DQ@%7R5C|Sme8tc zWNPNyfORu(I`;I<_Y`~@ux4&haK0dOH=r=%XWhIE;Ab3-U=enPnOhN@X6E+@PBC-R z6f%Bd<}w67GUJSHoYu|hZz=o_5CFgaR|rwyA_5ecX{iEh5um^+-S|oO?X;i1#%_{J z`eeO(q!vNb_VDz9EW^*_f&!*8!UI?7=18|6+n#=whz%djNJ27PT|FRosQn&n2MvYn z(Oq1g-e6zbj|_}$=n@tr_BQ~>^@lAWO3#`T83c8 z{q!*XWM90W9%WQ!KkyLL2g%DHrgtexJn#rTg<#7gG>oQ*_5&!Deie@lpcc@yDFdhj z{U&w~poWRRGJlNUYnHn*!GZ+S*z@w|MdKF{HIRCv@WTVC7v+f+1L;QkNqjdDlfe}G z*+*%Fn-++lo}x#fZMQ#7uM&;6Kh2~bl8YM8P_yt+oMreuY3u;A?wr)ve(4#)ypk-Y zK1)5Ri#Yx)WrM@VhR{e#vQG}d{SKs_evTGIAEp3gi>*b!*Y7rx#N6kpzxEYQJVa-W zCx{wD>1K}{9=cH`9v%vb$_O*c>~TXeqN%4?@&cU+Uv)L;ewEmB|3zmQD$9L|Za`(9 zyhO8!PKt+z(}Oh0UOOB&edr5&>#KAgdzWJU>vWou?WI}tAVZrxqvWlX1$NER7+5q) zG#f*OG*Og{flR**+=YdWQpZ4|^$bc0?XF`_=P$eK;`tdA++LUdq}*QD)V7bG zRcx<|J~L^USDq3{@rf>TC{7%oNp-TElNPyEFOLDFJ(1hd@_&%>LzNwIV>O|U0ifPN z#{SErTSXD|$`h)8peSCOMbXg13A3n4Weep>DiAuJ!?CN_KkI*Q;mX-m{qR<_nM1+T zTX@Ey(_48~fD>63Jj4@ub7*Z!=sLW^;8r{{mp*Zi8H1yWaiY~cnpWpm zf(sE^6jWJ}7*p)y^T?~~AHxsiVtyt|@ZyjMJ4VKN5xs~y)-$X4Ti_*)r3RE}@S_=P zNc^&b0^B#3#L72Vtk|%Kva&t_Gojt?X6P1k@*bBwIR$9^j;&J(n0b3#Ljo?uF|A^2 zcaQ6t!N%L^z30ps%TmWtfF|>LgPg zq62mg(Scwd*iXg?nJo{|kst;wqejiPA@wCQ-$~8QljkJnmC1@+`|4@}C-O(P=(U%w z6TOyGUH#lX&=W(K(+&C|fG>%q5?rHFzmwo{m6`+|Q*&ghxeatt_qxfdmgP<@>g$akYlk(*qF92k+;5RA>-TsRrtTE1M;nuQL3 zNP(6~7IQ+ig;*>X)mTJ6W)tUX17N3DfK#2toct_@M~MO+fna8Xvw(R8&}a#PN3^)0 z3X6ap7C+iKg3bZTz9dUzLv&8Xxq$LiT0Wox1uX9l(7G+6JgpK?eYpUlKpQOLY^s<7N^hjiyUU=R1-{3Y0;NUQI2tpbWP*wov z>&%>@5_bWbrl1l)GZl0K&^!f|16r)0D}ag=lrxo?YZNpU&?gEi0JK9v%K`0C&>BFW zD`*R#FBP;8(3I{9JOuC?1(g9hqM&ntjw>h|TJXJsasmCMpnO0-D`+90UoVIW?@`^X z-Q3KTL(fvu&U2)Vl+e%%i7X`O(kYIhaUi42LylD`Xuyu3fmB`4$Welp7!Wk_&4S;g z{$!m7xK4o=0hK6d%v;cU1?2%MI42Qj1KOgXLO`VoS_NnfdMU-+2xzK;b^%(bpb|i< z6m$a676p|9I-sB{fKHsJEM=H5=yR$Jdce-0-^a}{5DwUtswk7eJW_(fDG4<*B%GqW z>cRm+g%$#Kgaf2X;m9juCbE=tBnm13g1PNisdDQ8?N!h=Kwm280H7lZDg{)gpwobU zQP4#|7Zo%H;v5Mf2FyG_V-++T(0BzE0-6ZuZs;|@DJpRzplJ%)1!#tZ9E+G;ML2*R z;e5f(E0dtrc}h4k8N4G!j?=+w>EY|U1P{?qVAdJo9HJkR6OaSq%p;V#Q9Qny>P34n zgQvT~d`{>UwLYWvV)bh3#qx56{sG;Mb^HS#P_MuY>{gm%z1aQ6frh;H=B$xNGdOH= z#xus)-+n+EqvLkz8p>qYecQi@QtVx8@uGmfR}nF22X(N2TThXUezdWFu$PIWpHjg7 zb(36ooN-C34stfUmRv-KagcID}OXDSz^pV5ut{oT}#9=GQG zks{h`r8@s`*7WFBYE=6-u4S27x;m8#xZu{4PkMdEII(amHX*i%eOqZ}y_GsDmY&x? z?>md}+h`tL5RJA|E1Xw7w4FvHIEFyX+d+-%y)TRZk6Y5U1=~sE=%N_EliHxxPj=EE z1Pyo5I?-`2wR0=sP7!6hXoonpo9eKAAB*SrP%|0M--G4TUHjquAtzBhw}+b3Mp3Yb z0yJK1-b1e>nbOUGODxad;Kizj$SVbC`#v#cFSV$#?_-$?7Zn@%0CYcz>@TRk7`7L* ze+338rtYJr*u3bwk8VOB_Q3;PBM$GQwg_tNr_}hx+*cDyp!{dKOAn_o2HvZ9b3gVO z7s%raM`!8*2@8ic&|&-!M76ZXK*xqTu0;9P{yTanppr5mCsZnS_lwPDJ_WsX(0vN`+D@il`XiCYN5Fiz?Lg=$!bb4_j3jAlG*KD zxMEusZ>l;DQE6*dNI{^K?LSF2VYeQ4MY6E2&oV|bGYQvFjJj}LvA|FZkR&6Use8M! zz0R81S!Q6vMON)Hu92@bN@Hn*(->E(I)duzYQv#9lFUoOY>@=B75_$oX3WDbIF!RI0Il=8r33%>eo!nJn5yI|$pz7yt3tvk z0uU6M1cOx+WdUCEjS`?tzL?95M#lB#I>3svH2{LeBp56v!4jvG1hb(wC}qsiREKOq z*GVD=kfn(10}v!4!5|Tpn&ot!gykhGS?o}#SV?6u2?mQvu;dHHu>^MoOPv6$Dk}vL ztW1KzQWA8I#>_JK{i(7CWm?vOVEJ>1IDG*iSiT%!u)G9MA5gVQ@KCVS6~L<0MF7E4 z5)77-VCg|sN`fbXrN+z%mdc)yRZ%P(iNRty0N*Wfbs+R7z>AI!=gz?R#knR@P6r7s z1gxqr01&KRfL>uf0x`6NY9<8nN-Oasm|Z63lu+GX!Q8USTnSG7QBjfLzF^(w0IRyo0R&4) zFj%()bAA$GUsK&sjTb9(C3xj0(FM7o8nY{hvjodesTw6%7OXKBu&OZ!K(Iy$25Xey z)H7lkXl4a-^D1*CxaMa?Q-T+RG-m@=H1h!jOGz+DQ-X)is!|fn4rvo$RjL3$u#^OY zr3$kEpT4Y$$>j253M>RzaJ(Y5Fv!9xBr9S?0D{CM7$mj^V4h>cW$MN66akr9ctU|P zwJ1ny3t-U7g1rY6BqqTiv28P%aRs-BkaFUrDlNe^!O{l+D^B(S2o{!LuyBb}Sf*tE zpbATHW3ccEz^ZWRO!i2qG~iHa31NK; zKSC?uV>LWV4Yj!*xE*=zSW5x7L$_D`Lj4(?wj|J8b5A+0`wd{0TACw+Vv!z35u(8r%CA)*FG4~F@KV!UuGTIa&W(9Od~t=2({53! zvvhI%D%GGJ_W7%HmgrM)@)|17m{y;qvX4pDy?P+Ko2XFOgnh)G;u~VeiXZqmoJ6NE z)(Gx}yfZfG5+&j)11fJSbj~KCGeYoKhnu@JmS3yzFWkJLxS6iAqYg7|5!80G-SxJ! zl>gOxuj^syIK{ui!xUh}Zt#(JC;!1a*(&=K&-7Km>=tV7arc^|$qbs|5#)S*?W$^C2c(fK9*`Trxca=KaRqAk?8-+KXH4-TS z_6^oKR|4!?yG1-Rh?d)36IgQ+Pe!mv`H;GB95PQc|7FA>AU&ZdSqna_CjLx+_t^bOs7mH2; zc2^t$?oVZh5xm!cHNmBu!wpzU)bw4{%mt4Rw`E-BTOy(%>qx!CZ4KFu@Hdf$ajO~c z*vZ#1TzBmyzP%B8J|c~cqE%vKYn(=QX~cTkx$Q6v>9o8T6(^c?V84spMl2tw{KxF(t>A1SV)27|5{b=F07SU)`BH~*p?O{VyG`!bZLp7NzGX+dRJ^} zj#2VpOZExwP1S7$gLp*rYQ?%lhUERA68FqjtS#t3+$rK*D>lEX%;()uA@fD_ffV-# zRYhvHsSxSg$c8j0vh%oM)|4g5=HAkg^#JAE&gjpjVqZu0@P94E8C_JF=$7b@pPMj4 z7@aWqX5Gf{4TiZE4SGccI}&SVei@^14b@v_O@azHz(D=R15ZM$|88|{YD>E<@k^I_K2-qDS9 zC)z1$+`^utwPMsQY#5Cc7jI!59kewL+KBEB+KC=)sHYv4(UQO~Ps76Xz7711{?8@0 z+{&H{ThH2J(z2#yjP&$WLYRCD+q6b*dpd@~O zfQ^>-4PJYQ-3ozhc?i+H_N@=Ir-}B6_a9MW2n>K2ERjC|-MrVn^D!qgW(W+**+CdU zMUS$_XqsI*ge~%lnFCn+f57U%(P}aD71lwVew1BD`F7sp?B68WFh&W`dO9S54r2K$ zK$!VA1V<+K+8LSbwJHS%2Zb|`=KQTlNKy_>Hcyv3Dw9awjmI97dV^z+eYqOBryX$) zVsGpAUR>go`)Kn1rf7UWnn#TW7Iav`_TR zVmC(ZLk9c_`QtT;L|ztaP^VhjL6*Xmb0o=#sL||2+AcJxA(5lb69h{)x$1OwugG=Pj2*NPh`ug#n&uT1XN|;)!S#J(_58qqC$I206i*z$
z#?EjVaKFjzH*PjvexFIV;^9jru5^3c{wTkDaKMe*uedRDdm<<_o5pUW&i3Qeq$MmD z+0&T~f^7w>kKjSU>LPeeuujPPP_TUZLfnSsebR z&0@H(E`z2~g~}d)yUVgFF-T^8F2>KongCb2W# zSS{gSfNBodT^BICzE~;REmC%E)FQTsKC;sm%XQFK;`Jr$cH^M5!qRW@_-puMj3T>a z2{aQfRsW^9x;pOu6UwU#}%v|m52vdz-sjo`72nPux*Rf{ZC|;tYE`&dF#%1*=-DN z>#QPnfcn_auY~tSKa08Vql>-~AHL7(w)>fkM=)0M^h|%8zoy^Qh?i^f_aYwAab%R@ z*-S7aPY=Y(tb9FC%Q#>g#SjHe5Fe~!kJAB>w3_wAsLx!@`l8JnR>SgqZ693C<`HTh zX0!eTiR@X!=2dB`8!y!|p%Q)U>X(L`rDbX@4BfRcbmzEuogJiI}Ki0CrWMA08YH@ZN zmq53{-)pcP?&F~KY?qz*DI>kE8y8@5F$AiSSN z+#3%)!}$QY8^qEbtTEi(FL$6zaFwLRjk*R{LEFYwpgfSb>Oh7^JYcXtn*_m#iU$omOw4W5QiR+t04^&Yp$ukKssJw8G;rJ=u31kv0F1*rr(jr?`x> zq3IQ8T-R4U!T@(yELnlMZzh=@@ymWzFXFJ1Qiv3{N(nnVMd4)66hDJ}#C|7Qf{Vsl zu*hVEun{+ZT~3joCpkrOME??eF|N#so)e==Sbgs|POMCUjRCmMdk4DV_uX^nX0Yu3p7o)cRxmVV6|d*?f`sp9b0EG=xB6DxQ_boquQ zsM2A1PFjviyA!u@r+_A2LECR1!o1kzi1T33EO`^`%g)0kvm>%Qf)9nNrQ69zuxx_8 zZ+8?HCs{oE9UBKq?MmT2c*f+CnVU zV*3epJ#7=`PO#@VNQj3MdAul3=3eo`yIOy7_$2F8W7h=26<`=$%uu+^jA}&s_v|e0 z_$K|p-hf?P_yd-DC3b@{>|BAblRshyA=#et6Q)5#cb)=&$s*%4dx*Vptb68U)?*ne~1<7ieIQ%=7i)EtGMb;Vf z&r=t%z@a4Z`X8W?WEcOz#>;4@%j^XNMVH}fB-wi}vv5MS-&~Py=0>~AH5Q8txOm;| z7ylx@0GRQNUqVoW^L=4suesDa<~iaNhr`%SL}>g3GJnw!%Mdkm-k|m|_#-et@>(r? zI&*s@rm7wQwunAD?}=sKT%Gr+3(qUSkyEa2n#+eUI%021_aqH#>|b>L038!O-8?1Y z1BW2C7R)cjt8U(?q6&Nsq*@i{#X7gDBHY6d#e|quC-6t{Tuq$u@Lc)Oy4F8Ew7$Ts zdG^zF{^LvQ3wA~rzpSy`E22{rzd0Cous@FCQ%J_{GWb(6Txamdv3*(^!&`^pd{}k# zY%wr~Cp)Qaedx)D|DJAQjzXu6_W06e_ihyEjE45-H8>7VyVzkhIg{6`BjWf9sfZud z;AVD)Z-ga#SB0119^o}eh zi(bdsZUKY0o9Z(Cc*!4)<6UW^Wf0+yHfLW_-b=KJL$)jExg;m6Cg$Nhdl_N398l?9Q?vt(+`)(lP_u-m(^x!rZqiD|Pg>^}Vd zub|cz$=>#^n}FrU)?{l8Zvcgu&<&MycmOPqVTa1>?Ww#w`KnM8i4A$gI69-!)QxC8NRc)qL$S7yAeSwRqt2!yp}3$b3pxDJF#x%lIk_`_o4 zZf(AFN0c-@a`O*k710t1*KOuQss-RV4P`N12h_Pk8cN*YXYzW<-&+a~$=$?-8`AjD zRfc3DqKV6k6hp4#7wT*QWyxHO=90?`beAlX#)@cq6Mnncmd2OFKn7iNL{`s@rHLp#=(-oif?x)s~&dA-jpQO1H6Do%fQ7O)h`|_K#ba0;o=bt7OSmU zHwQ`xz)`tX#2jO>SxTDnvlUB7LGTsXckusKq)6pHV(KPNaD^{v6Fi0dLElHfpkBBi&TnuQ;8;KDu z_^K>uvz%%oFx9xtjKPk4&GCP@j0UoZQfKH9HZhno2~71j1}aq8i@68=jxv8!k!nUj zcBd3L=*WJOh9LqQ3g9xP7naJTic2?z>z~Kli9`s!ftqE0!maMEjhB7l3Ty;qcJ7We@KK)%fh`Xg9=RlW;r@4EFbCc6*v3bP!7a=hV78krD7ZHx*vG30<-w3TNg z49zEb5{9xnBP(c9+h)S2sGbfh3(tf9Eq&i#)A7Ut#s)hF5|yR9e9l0Y&W)NA(p?Xj zu3Md1qE9fTcg0}u7EGyP`;nr09c!1Gfk-)uuvreKo@nrCV+q||@{_>|$n2OIDS zwYL5mvP->AAn_r4IeGT*M>!cPsFE>235Gr61cRWFk#dS@%|-yk95uX>#*6+)X$J7c z86_;)E{v)e0<|>uOu*APXag%`DlH+fl{~5s)o$WyQ=U|PeAcWoK9j_dW;|7_YrzMJ z3(a^!a?mhEso4UC2|iwM48lB#^ya+w4RSa^EXGl6Y=Kc%AX4tfIkJB>4tGb$f$0xR3HL{&z$W2|EB?o~_WbZvqErLJQn>1sD8FZL zAWUxbNXv*1z^SLH5vXD)K0jeHB!-!+x9Rdni2W^iJPyY{Zl(fi$?IiB-6kvI>iaU1 z^E73TYE%wgnebnlBUr{(6^fK56-kF_{zn59n#1}^tO_wLFuDC&awwJU&a6i*U4cS5RA}*49ArjKL|fQd~-9K}nL_ zm<`Xrtv?pF5&cq2e#%LWRXL_H)G_S+HKYQ=goi4^D63FD*{x};W56eS0#l=C)q=-~ zK8<;}c%(5ul7;g#*!fygt{{lmk!nK4hX8{%KF$AE8}En^>RiPQ_=}t&`T7--Pk>A% z3$ibwAJM-R544dtaOHSPV|@ZJ5pqi(7F&}7Y0V&g znbTj*?ft6?U#x7!YqsrJ-Qz;1M&f^LEMw$QAWTiVD4zk->A}5LuyNc7oE5-!Om1Rw|1#cQX0a zMfkV>pe#HzcZT~TLE*npmfPDq4uRB`;Bb>BM%M52prg_K)d)&s{iHL3XS}MP#IrZ@ z1ie4_$6f0i`E^;opdXR$`pZlL!^A2TOcMXU&d3JJ!mN%*@BYmJ50@UAx?U44+PCJd z>PtPmI9lnUbRpqN$Tfg7O~`gNadi}Vt@+iv+G3FZ|2YPVToo5pQCD87T8X8J(l&f? zd<^s~0@K%n{+Kj20K)?bt=Ryv;d-8Ko%*3kmg7Z+%%JQ8<#ODF0OP0=g2JF50TwG9 zj*h{#-#?3?LJI#osRnASg0fs#CLn~yI1&boi7nWcS?zfJXvO*<*^s9o`xvpi9lx<2 z{DZ2@V>z6Lm2AK(Z~TL*NNLaG;?qoqcSKZwn-#-n&jPcJOh_Q z41cREVUU|c!PT5>V+w?l?uvEnHWIv2VLV2hzv{Y!fTheV+)Ib1Qmb^=UV6I1;%`y@ zKj^PQ?MiUqVGRl>+%zoL)v>pvgw?Q#xy%G>G2Df%cej~~6AF~YD_6O!S8E*{(P68I z@E7qhOf>DpTQ<#RKFN&SOdBI_sY~@vcU{IZB)BpuuUuB0Ci(q=7&mrddfvM03GYYeeTM+R*dM{eO0c+MNa zCcV)eP0D@4-rt>nq+z2fw+El*OZHQy4|FkgiIgVvlqdMf9g#MW2hc%c-vyo~UL44A z#@7=nSuV`}yp|~M2?+$@A-yW$)4lk!q4ei_^N}Ig+ov);w-0|Tl61#W(KCC=)*E9>fYPi6WS_f+!J^WMtz&nw{9 zLsfp+zY?|2eUFq(#|BU*rob+M$Tddr37w5jp#k;-YHm_8m zi#J~3TToNay}Y6Q!mE5v^`ebOR8|t=G$^)2@x=($j1ZHW{qn#0>R|c$qEA++!tPG1 z;%#)%Qx%dJFiHtsF|=Y-sOj@Wx_qbImK> z9iz(qZ=I`)1!M7#HC5|j8$H~Ra3A`fHL<1F zA!i~OfkwcUPlV)!HY}|0`4^EiO9@!AZ$CSWTb$+KY5zRlLfeknTrA(oXW0AZ@%{hA zxgGvC4tCfj&5l~Y@xbmcL(eOoTc}1?X#537o$Pn$GX9aJavLM*APU-^WgM3_FqT(1 z@$25>?U66VT1#|Z#U}~(DxOj$;k{sOw!WIj%aX}950l|_A3BtvQ63q8Wj!woQi``< z*`&s-?cTy~mHhVp6rw+E=X}aH16S6TC<@MVul?LMoF5@YjdXJd^ai9}-pS`lv`}>23U@B?F1IJV)r6GLm2z`cSu!Y_U-4RG@NoyI><*c z+HS{`@a`Ppecy7ghj!bK9_Md*fvl=2H#Mnks3uViIfZjGWw;W>fm2F>+^41X+AU6_ z7lZW0s53mnDH1QfabRV*TmFnmqg*`svr_oCoS3q|M;tizEWZy3(*BAuXB9HWXM)&& zmbXH>UXF3I$-cdur&I_lJ5ux7lYhnR3xsKdw5H;gCfd7V?>QJKN1it1`Mm6in2QjB zlUPecH`1a+?MwXM$e;#VJrcb=urnJj^VDi6o+~&N456f>GJMVvKdZ0uG~hu(^~BYy zRj5>=EWK8V^6RxKD3eK(a~aCcuAr6g~QJRfIN zP__FR+J`bbs)n|=Lel4AwXP_y#$d0Sn)Dh&(^o%|*4+@SR)|J|@VC%B;`UmS0jEqs zW9=h*M!c3HDXvY>(%Ci=U7BdC?YXsqg+#@3heYi&!1r9IrPGIYvm{MvMCE|`AX!^V zG~XUrPn#CxE#8hw(e9~WRH?-HK$WIXz7b+;nu@koiY-cvP7R?vUA^q&h7~M;N4t5F zc0FDjo#7GUqclyv(f_;Xp$lHI>3U820LWF%9|KrQ%SOuw%Niigy5iYSd4%1%iS||X zIxCrh3PYH|uBt{zfY1+OK})Rzh#hTNDM0}Vri%e}w9z8eRIeC$gX#=N3vbZ=bT~^C z-`%K)t9}H*d7}4Iyr$^gUBhm}S6mkdZqxRP<872~qbc!1IWNuHqCbK?sr-tU+iKDU zQwE`+qf!TW0Ns#uOFL}~0$+Q`d$!%Ny;dA->VG2Dx8r|J>NOIT17Sgzkh%r!KzWx? zkK+5d=&J;A_cQ2=2hZ>*Fa${?h^l7rzOLHcNS9h1wT)*=-!@;9OR=qDUsp}KuJvxx z{IpeM+@u(M39+QDa=BI_u}xLRT%+JZo@vY%?<+*R>?ZA|pk=EiX5LykZYtz$L*BU6 z5>%ysM3G&RD*fXy8(mVn0$HhdjXN}H&ZgX<^{JlW?x`{yQ@F5~YM>lEc3f|?2oyJ3Kli%B`&o^y}(TCkYvcqva+Z2Enb#eTX^dz9wdJ@3~BaO6u)oq2Qr zLz*3IS$%u?Bie02-ZAG(w(E$825Qow69b`T)9q~owI_n;iT3S}fk(%>wZO$5vGsB7 zA<_Q{Z3HFT2cOXDaJpodKaJsog?aKb(4leSmS?n~V(7C#xnlqPto9S5_4e1#<6q~* zlKT4>wJE$TwBVjL48%{1(qUREKFh}N&pFCVA9&F3PIZY@Gr7OMT(c|R%FKon6+EnR z8OL#9(QS@_1J=?fCS74&b!>hlGYucb`(8^qd8^b-@~=02$m1mS|T_) z96eMfYQCb?$0eAyuSgSm!M^`h?J&jSV<|DpB~xE&NMjG;qsMKsGy$Ue}uOFq&r0Jt!yK9coGDNn} zqO==u9wzP?qfN2Rv5=aGE=2ahH(+g^eM1{a-9>bcc8fhPM;k9cyx3@hmK!Gj;Ru|c z8rSR%6STuRKQ8};h|xUV-Z4eHl~qIqqRIBdQ#I^KD5|##?GC%vbgePjme8V!Cff`0 zF$P&Sw?Cbsjb;Eu$C=t?`{p^?NgjOHvT(k(n2ym34?kB>EX^9pP7mBt1(3;+>vk_pKl7pXBq})Yq4qe5oVD6BScsor3!~g_ zEox2@*Vbx@V#PXmJKfi54UqZlI<2pu_1Yz9@s;)3da-exX4)Ta(2^KUw7=Y_O(apY zNqb2=wn^)0H{7gEXKV}?eYR=?#mAp&FQ8b<&!7~^V(w=!4fxpTXAoGjsJT_^WUt(+ zjUte_VY{Yz@nO(*`?a4idQv~f{0E%JzQBOQ?aME;rDE=PP@6>uHI3|h4`{cL{mz$= z9M);4zJil6XGy0LOb+uTM*n3(lr#I}4 zXVB?!KgkP|*bSEds+YVUAU^~9hTZ(ECghhsx0P##Wb^A^&^a_^$+cfmdGhpg+T-p` za>lq~4?d@zk=E$G3tBffZf0WfWG}dYAsvS??8ZOF2gR%s*x&xH?TL=*>T;|LrOHvx zjLqV`FukRC->ct_WAW;FmzgLE)9Z?r;d-oi$D_A~u9bT9kuU|1di6fyidTPI91GL^ z;*?KsBq&_Z7F)vgK#IH_2->^dzIWue7a7h!aO*mt;R=nWBV(nw8m^Bd1)yG8Ta#4y; ztMbo=<;)SUM(U&0zcHl{k>HKeyNAC0iBEXTyDnZy6#v|!{PyQlQTnEa@&ldfE1B}^ zrnoEw(teKPG3Or-lRK#R*Z*{Df2*2eP_+I|c&^-Fmp6x)NUp8-6ahm|z#P)S&=V2d zYoI~p!ZP%>bXM##^w;rL{f-!Y2}AU^SbYPYqP<^J?~dS7O}!0*mT`K=*tPQ24UXRM z?`6rOH=pk|mxxZ$u7f|Or--aLJx(7p2H#{5Gvf4{gWz}nudwR@s;Wxk=RWvMd8ltq z0YUy4Dk@JwP$5zA30f*D3MK`H{4<58kUkTO4OGNGsZ03eqtqOtSuCB-%z5Ac@0|19d(OG<-h0j+LlZ)UTi;-F z%)G<8X^$7gf*prBDukj?k9i>!YMkdaAvDRdstcilv?~o5upD?)DFc46mWmoRJRfM>Yms!nJRgjbox{tlagKZBTh%I6a1~ zq;8L(sd)Q;egwriy0K-jyat978L#0wj`Q{injLy+sGQiYG5X>9P{#$_t&q)&_^nt< z<~Jf}HAL5Pr92QzIg$N`vGLIn!*vlK2UL#R zT`jm~cs~FSpRmX2*X*7^N5=GKE44}~wHmn#pH7n8%OfXJ&al*arA`Ja)yowVX`d!j zNvT%fHxucI%_!xAlc~gH4^_&`|C&rG!yGVr31lkIoI1X!`u9V?Dg=I91i%%L`@hNaO1x~>D^ zBHW*5wR3xfkk`}b8HBfGt`+;bal&=X(;hPCSs`*p3is?heWb6;mkIsycxFn|G z6J7sS_JboiA)k)JtUI69jM!4?iP>7Vp=@i}mXfkk4lkg&xOB-Ypuhe^&ill9sOh6- z*^PYnI@&i;*j4kDYQ)enamU6@p0aIKMI~jxE4P-KniygF*3q6JqB<^}H{DNL3@7*A zPqo_V=mn;=D0lM4LfWI*CkL@}dBD$3b^Txa3OBB|oOBOjd)Qe-wRS14V4>FLb44VN zb*~rE1KN2v`2L0zu)CNNMvMA_4Bf9?*BcD`9}Ql+qkx*u6-W%NcfG zc+X-fE0)X4=;#y?#VkgSQ3+~VjEb48rUa?@7!{<{S&S+ET;rR%feHgiy39B}vWapu z>JfAbk1VI@n(j8~3O_xWpDL#~-J*JayPRS*+A3%iJ1U4Y-NoS*mZ;wpt@n$e&oaw~O#2zSob%muhaNQ&mn&6VR2oyX zWoJxD(Ke46MZ}YzguNc)YM|1?7u*z$C9MB&Q@rMOfqTvuzL~ImvXx)mLK)Kr&!GdD zKP3w<2TpU5dsZrS6Hz9x6^v{bB0eh%Lt$jrf>6{oP~E-RzZCA$^2@)KLB z3s*?R+bC|;3ug?w5v*K3z%iIgmC`@M^snHMeIz;~l-V)V});OSN7EvvVyL==j<_G{gw%{1q6N^OdXTROfcG*|8(1-PTux1;fAdy}q3S zaZj_FzQNyxi#w@zNarQP{#qc9uR*7J>tPx6wutD!jElfyPC<+g^Tc8>cgJupqq%O z<)aiiQS63-FX>iAv~o%)c(3ekhnt)8s-$gHH$Z-tXVis^6%97+HnE;+7iDbLQ zAKY%|7Az3_z_7nzZ7sv`Pe& zB#!zlTncbo_+Up@;pk+aVLy+RnN&}Y>6)}uY5N~I$hG)`9kf^B8|r^E>`&Ue_+mXS zz`FSS;}p%|dnr#3N4t2(UW%I~p*sGcS;4u0k^+$Zr@R+D@!KgfT)0Z=;P>{zV+RK` z&_3-}n*LT>iUXHFdjbeJihBy!L?Qwe3e# z-F)!??TDAdvGgIc&VhiEZt(sPW`WOeSaIFuK4=+yZW)}uiNVkv*cbS7G3ekCk68vy zJIoTY0KZ>C8w`4{i9sH>`weDSn+E+iG03jQ&8mLG{(SIdUVVs`>7)9hWzYin{Svys z^T&NMzkP_3^+4peF+A#&$nSV5R>N)ju3`%H6^x9rU82e-j!~Q*4f{ZL@;e}dMC#a$iF`NP znrV`z7npPsXsuoax|EBWDPD_PO>uKGCFy$fh!|N?F2CPQ>3ZCE?h&s_$te{Ed_8g| zMm)jY$i)`F8hD9?*8|^Z;f=tHEc`fd>9S&b8d*A+;2p>^%L?9!EOR38IjS3k%nKsu zMV6sj@GHn0EW96hsf7;!mo$^#VTv>A_$#Jmx^;O7&`hg!AMlzMi`_AZ?d4y#P^beR Q-L%{8ZosH1$VayS0fBw+*Z=?k delta 35452 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 z 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 Br<4Ey diff --git a/peglib.h b/peglib.h index 712b812..8cba4df 100644 --- a/peglib.h +++ b/peglib.h @@ -3677,7 +3677,6 @@ private: auto msg = "'" + name + "' is not referenced."; log(line.first, line.second, msg); } - ret = false; } } diff --git a/test/test2.cc b/test/test2.cc index 8d07ee9..768dac1 100644 --- a/test/test2.cc +++ b/test/test2.cc @@ -1112,7 +1112,7 @@ TEST_CASE("Unreferenced rule", "[macro]") { )"); bool ret = parser; - REQUIRE(ret == false); + REQUIRE(ret == true); // This is OK, because it's a warning, not an erro... } TEST_CASE("Nested macro call", "[macro]") {