{"version":3,"file":"index.mjs","sources":["../src/cpp/ifcdb.js","../src/ifcWasmConverterLoader.ts","../src/ifcConverter.ts","../src/ifcConverterSimple.ts"],"sourcesContent":["var IfcDbWasm = (() => {\n  \n  return (\nasync function(moduleArg = {}) {\n  var moduleRtn;\n\nvar Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.initialized)FS.init();TTY.init();wasmExports[\"V\"]();FS.ignorePermissions=false}function preMain(){}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module[\"monitorRunDependencies\"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module[\"monitorRunDependencies\"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"ifcdb.wasm\")}return new URL(\"ifcdb.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming==\"function\"){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports[\"U\"];updateMemoryViews();removeRunDependency(\"wasm-instantiate\");return wasmExports}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var dynCallLegacy=(sig,ptr,args)=>{sig=sig.replace(/p/g,\"i\");var f=Module[\"dynCall_\"+sig];return f(ptr,...args)};var dynCall=(sig,ptr,args=[],promising=false)=>{var rtn=dynCallLegacy(sig,ptr,args);function convert(rtn){return rtn}return convert(rtn)};var noExitRuntime=true;class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){HEAPU32[this.ptr+4>>2]=type}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)===\"/\",splitPath:filename=>{var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(p=>!!p),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join(\"/\")),join2:(l,r)=>PATH.normalize(l+\"/\"+r)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath=\"\",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!=\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(p=>!!p),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,\"/\",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}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,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.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of[\"mode\",\"atime\",\"mtime\",\"ctime\"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[\".\",\"..\",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};asyncLoad.isAsync=true;var FS_createDataFile=(...args)=>FS.createDataFile(...args);var preloadPlugins=[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!=\"undefined\")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,\"r+\":2,w:512|64|1,\"w+\":512|64|2,a:1024|64|1,\"a+\":1024|64|2};var flags=flagModes[str];if(typeof flags==\"undefined\"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+\"/\"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split(\"/\").filter(p=>!!p);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]===\".\"){continue}if(parts[i]===\"..\"){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+\"/\"+link}path=link+\"/\"+parts.slice(i+1).join(\"/\");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate==\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name===\".\"||name===\"..\"){throw new FS.ErrnoError(20)}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)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+=\"/\";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev==\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags==\"string\"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path==\"object\"){node=path}else{isDirPath=path.endsWith(\"/\");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error(`Invalid encoding type \"${opts.encoding}\"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice(\"/dev\",\"random\",randomByte);FS.createDevice(\"/dev\",\"urandom\",randomByte);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount(){var node=FS.createNode(proc_self,\"fd\",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},\"/proc/self/fd\")},createStandardStreams(input,output,error){if(input){FS.createDevice(\"/dev\",\"stdin\",input)}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(output){FS.createDevice(\"/dev\",\"stdout\",null,output)}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(error){FS.createDevice(\"/dev\",\"stderr\",null,error)}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module[\"stdin\"];output??=Module[\"stdout\"];error??=Module[\"stderr\"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent==\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent==\"string\"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent==\"string\"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=\"undefined\"){throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||\"\",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}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;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\";var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+\"/\"+path},writeStat(buf,stat){HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAP32[buf+4>>2]=stats.bsize;HEAP32[buf+40>>2]=stats.bsize;HEAP32[buf+8>>2]=stats.blocks;HEAP32[buf+12>>2]=stats.bfree;HEAP32[buf+16>>2]=stats.bavail;HEAP32[buf+20>>2]=stats.files;HEAP32[buf+24>>2]=stats.ffree;HEAP32[buf+28>>2]=stats.fsid;HEAP32[buf+44>>2]=stats.flags;HEAP32[buf+36>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return-e.errno}}var __abort_js=()=>abort(\"\");var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function readPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError=class InternalError extends Error{constructor(message){super(message);this.name=\"InternalError\"}};var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(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<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var optional=fieldTypes[i].optional;var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType[\"fromWireType\"](getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)},optional}});return[{name:reg.name,fromWireType:ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},toWireType:(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)&&!fields[fieldName].optional){throw new TypeError(`Missing field: \"${fieldName}\"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:rawDestructor}]})};var 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;var readLatin1String=ptr=>{var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name=\"BindingError\"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type \"${name}\" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value==\"number\"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this[\"fromWireType\"](HEAPU8[pointer])},destructorFunction:null})};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:\"emscripten::val\",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var createNamedFunction=(name,func)=>Object.defineProperty(func,\"name\",{value:name});function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=[\"fn\"];if(isClassMethodFunc){argsListWired.push(\"thisWired\")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(\",\");argsListWired=argsListWired.join(\",\");var invokerFnBody=`return function (${argsList}) {\\n`;if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = classParam['toWireType'](${dtorStack}, this);\\n`}for(var i=0;i<argCount;++i){invokerFnBody+=`var arg${i}Wired = argType${i}['toWireType'](${dtorStack}, arg${i});\\n`;args1.push(`argType${i}`)}invokerFnBody+=(returns||isAsync?\"var rv = \":\"\")+`invoker(${argsListWired});\\n`;var returnVal=returns?\"rv\":\"\";args1.push(\"Asyncify\");invokerFnBody+=`function onDone(${returnVal}) {\\n`;if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+=\"var ret = retType['fromWireType'](rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";invokerFnBody+=`return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(${returnVal});\\n`;invokerFnBody+=\"}\\n\";return[args1,invokerFnBody]}var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original==\"function\"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original==\"function\"){ret[x]=(...args)=>{Asyncify.exportCallStack.push(x);try{return original(...args)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!=\"undefined\"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve,reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name},getDataRewindFunc(name){var func=wasmExports[name];return func},doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof MainLoop!=\"undefined\"&&MainLoop.func){MainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!=\"undefined\"&&MainLoop.func){MainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync:startAsync=>Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){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=usesDestructorStack(argTypes);var returns=argTypes[0].name!==\"void\";var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2])}closureArgs.push(Asyncify);if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let[args,invokerFnBody]=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=new Function(...args,invokerFnBody)(...closureArgs);return createNamedFunction(humanName,invokerFn)}var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array};var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistent public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var getDynCaller=(sig,ptr,promising=false)=>(...args)=>dynCall(sig,ptr,args,promising);var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([\", \"]))};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf(\"(\");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;maxRange=fromWireType(maxRange)}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}}else{HEAPU8.set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var idx=ptr>>1;var maxIdx=idx+maxBytesToRead/2;var endIdx=idx;while(!(endIdx>=maxIdx)&&HEAPU16[endIdx])++endIdx;if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str=\"\";for(var i=idx;!(i>=maxIdx);++i){var codeUnit=HEAPU16[i];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var 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};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=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};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(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/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext,setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType[\"toWireType\"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,\"emval::as\");return emval_returnValue(returnType,destructorsRef,handle)};var emval_methodCallers=[];var __emval_call=(caller,handle,destructorsRef,args)=>{caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var emval_get_global=()=>{if(typeof globalThis==\"object\"){return globalThis}return function(){return Function}()(\"return this\")()};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],`parameter ${i}`)}return a};var __emval_get_method_caller=(argCount,argTypes,kind)=>{var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var functionBody=`return function (obj, func, destructorsRef, args) {\\n`;var offset=0;var argsList=[];if(kind===0){argsList.push(\"obj\")}var params=[\"retType\"];var args=[retType];for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);params.push(`argType${i}`);args.push(types[i]);functionBody+=`  var arg${i} = argType${i}.readValueFromPointer(args${offset?\"+\"+offset:\"\"});\\n`;offset+=types[i].argPackAdvance}var invoker=kind===1?\"new func\":\"func.call\";functionBody+=`  var rv = ${invoker}(${argsList.join(\", \")});\\n`;if(!retType.isVoid){params.push(\"emval_returnValue\");args.push(emval_returnValue);functionBody+=\"  return emval_returnValue(retType, destructorsRef, rv);\\n\"}functionBody+=\"};\\n\";var invokerFunction=new Function(...params,functionBody)(...args);var functionName=`methodCaller<(${types.map(t=>t.name).join(\", \")}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_is_string=handle=>{handle=Emval.toValue(handle);return typeof handle==\"string\"};var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var __emval_take_value=(type,arg)=>{type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?\"-\":\"+\";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,\"0\");var minutes=String(absOffset%60).padStart(2,\"0\");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var safeSetTimeout=(func,timeout)=>setTimeout(()=>{callUserCallback(func)},timeout);var _emscripten_sleep=ms=>Asyncify.handleSleep(wakeUp=>safeSetTimeout(wakeUp,ms));_emscripten_sleep.isAsync=true;var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;HEAP64[pbuf+8>>3]=BigInt(rightsBase);HEAP64[pbuf+16>>3]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!=\"undefined\"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS==\"undefined\"||!(e.name===\"ErrnoError\"))throw e;return e.errno}}var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack=\"<generic error, no stack>\";embind_init_charCodes();{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"preloadPlugins\"])preloadPlugins=Module[\"preloadPlugins\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"]}var ASM_CONSTS={1473352:()=>{console.error(\"progress callback is not set.\")}};var wasmImports={a:___cxa_throw,j:___syscall_fcntl64,G:___syscall_ioctl,H:___syscall_openat,r:___syscall_renameat,s:___syscall_rmdir,w:___syscall_stat64,t:___syscall_unlinkat,u:__abort_js,L:__embind_finalize_value_object,m:__embind_register_bigint,R:__embind_register_bool,P:__embind_register_emval,l:__embind_register_float,f:__embind_register_function,c:__embind_register_integer,b:__embind_register_memory_view,Q:__embind_register_std_string,g:__embind_register_std_wstring,O:__embind_register_value_object,M:__embind_register_value_object_field,S:__embind_register_void,N:__emval_as,d:__emval_call,q:__emval_decref,F:__emval_get_global,e:__emval_get_method_caller,o:__emval_incref,T:__emval_is_string,n:__emval_run_destructors,p:__emval_take_value,x:__gmtime_js,y:__localtime_js,z:__tzset_js,J:_clock_time_get,K:_emscripten_asm_const_int,I:_emscripten_date_now,v:_emscripten_resize_heap,k:_emscripten_sleep,C:_environ_get,D:_environ_sizes_get,h:_fd_close,B:_fd_fdstat_get,E:_fd_read,A:_fd_seek,i:_fd_write};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports[\"V\"];var ___getTypeName=wasmExports[\"W\"];var _malloc=wasmExports[\"X\"];var _free=wasmExports[\"Y\"];var _main=Module[\"_main\"]=wasmExports[\"Z\"];var __emscripten_stack_alloc=wasmExports[\"_\"];var dynCall_ii=Module[\"dynCall_ii\"]=wasmExports[\"$\"];var dynCall_vi=Module[\"dynCall_vi\"]=wasmExports[\"aa\"];var dynCall_vii=Module[\"dynCall_vii\"]=wasmExports[\"ba\"];var dynCall_iii=Module[\"dynCall_iii\"]=wasmExports[\"ca\"];var dynCall_viii=Module[\"dynCall_viii\"]=wasmExports[\"da\"];var dynCall_v=Module[\"dynCall_v\"]=wasmExports[\"ea\"];var dynCall_diiii=Module[\"dynCall_diiii\"]=wasmExports[\"fa\"];var dynCall_viif=Module[\"dynCall_viif\"]=wasmExports[\"ga\"];var dynCall_iiiii=Module[\"dynCall_iiiii\"]=wasmExports[\"ha\"];var dynCall_iiii=Module[\"dynCall_iiii\"]=wasmExports[\"ia\"];var dynCall_ddd=Module[\"dynCall_ddd\"]=wasmExports[\"ja\"];var dynCall_i=Module[\"dynCall_i\"]=wasmExports[\"ka\"];var dynCall_fii=Module[\"dynCall_fii\"]=wasmExports[\"la\"];var dynCall_viiii=Module[\"dynCall_viiii\"]=wasmExports[\"ma\"];var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=wasmExports[\"na\"];var dynCall_idd=Module[\"dynCall_idd\"]=wasmExports[\"oa\"];var dynCall_jiji=Module[\"dynCall_jiji\"]=wasmExports[\"pa\"];var dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=wasmExports[\"qa\"];var dynCall_viijii=Module[\"dynCall_viijii\"]=wasmExports[\"ra\"];var dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=wasmExports[\"sa\"];var dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=wasmExports[\"ta\"];var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=wasmExports[\"ua\"];var dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=wasmExports[\"va\"];var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=wasmExports[\"wa\"];var dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=wasmExports[\"xa\"];var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=wasmExports[\"ya\"];var dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=wasmExports[\"za\"];var dynCall_viiiii=Module[\"dynCall_viiiii\"]=wasmExports[\"Aa\"];var _asyncify_start_unwind=wasmExports[\"Ba\"];var _asyncify_stop_unwind=wasmExports[\"Ca\"];var _asyncify_start_rewind=wasmExports[\"Da\"];var _asyncify_stop_rewind=wasmExports[\"Ea\"];function callMain(args=[]){var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);Module[\"onRuntimeInitialized\"]?.();var noInitialRun=Module[\"noInitialRun\"]||true;if(!noInitialRun)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}function preInit(){if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}preInit();run();moduleRtn=readyPromise;\n\n\n  return moduleRtn;\n}\n);\n})();\nexport default IfcDbWasm;\n","//import package json\nimport packageJSON from \"./../package.json\";\nconst cdnUrl = `https://cdn.jsdelivr.net/npm/@creooxag/cxconverter@${packageJSON.version}/dist/`;\n\nimport IfcDbWasmLocal from \"./cpp/ifcdb.js\";\n\nconst defaultUrlPrefix = \"./\";\n\nexport class IfcWasmConverterLoader {\n  static instance: IfcWasmConverterLoader;\n  private module: any;\n  private constructor() { }\n\n  static async getInstance(userUrlPrefix: string = 'remote'): Promise<IfcWasmConverterLoader> {\n    let urlPrefix = defaultUrlPrefix;\n    if (userUrlPrefix) {\n      urlPrefix = userUrlPrefix == 'remote' ? cdnUrl : userUrlPrefix;\n    }\n\n    if (!IfcWasmConverterLoader.instance) {\n      IfcWasmConverterLoader.instance = new IfcWasmConverterLoader();\n      const Module = {\n        locateFile: function (path: string) {\n          const fullPath = urlPrefix + path;\n          if (path.endsWith(\".wasm\")) {\n            console.log(`Loading wasm file from ${fullPath}`);\n            return fullPath;\n          }\n          return path;\n        }\n      };\n      try {\n        IfcWasmConverterLoader.instance.module = await IfcDbWasmLocal(Module);\n\n      } catch (error) {\n        console.error('Error on wasm import:', error);\n      }\n    }\n\n    return IfcWasmConverterLoader.instance;\n  }\n  static async getModule(userUrlPrefix?: string) {\n    return (await IfcWasmConverterLoader.getInstance(userUrlPrefix)).module;\n  }\n}\n","import { IfcWasmConverterLoader } from \"./ifcWasmConverterLoader\";\nimport { WasmModule } from \"./wasmModuleInterface\";\n\nexport class IfcConverter {\n    private module?: WasmModule;\n    private metaDataGlobal?: { [key: string]: any };\n    private handleGLTFclb?: (glbContent: string) => Promise<void>;\n    private handleMetaDataClb?: (metaData: { [key: string]: any }) => Promise<void>;\n    private GLTFs: string[] = [];\n\n    private constructor() { }\n\n    private async init(inputOptions: string = IfcConverter.getDefaultInputOptions()) {\n        //TODO should expose url to set it from outside\n        this.module = await IfcWasmConverterLoader.getModule('remote');\n        this.module!.setInputOptions(inputOptions);\n        this.module!.setGltfChunkDoneCallback(this.gltfChunkDoneCallback.bind(this));\n        this.module!.setMetaDataCompleteCallback(this.metaDataCompleteCallback.bind(this));\n    }\n    static async create(inputOptions: string = IfcConverter.getDefaultInputOptions()): Promise<IfcConverter> {\n        let ifcConverter = new IfcConverter()\n        await ifcConverter.init(inputOptions);\n        return ifcConverter;\n    }\n\n    loadModel(data: string, loadOptions: any = IfcConverter.getDefaultLoadOptions()) {\n        this.module!.loadModel(data, loadOptions);\n    }\n    registerProgressCallback(progressCallback: (progress: number) => void) {\n        this.module!.setProgressCallback(progressCallback);\n    }\n    registerProgressTextCallback(progressTextCallback: (progressText: string) => void) {\n        this.module!.setProgressTextCallback(progressTextCallback);\n    }\n    registerGltfChunkDoneCallback(handleGLTFclb: (gltf: string) => Promise<void>) {\n        this.handleGLTFclb = handleGLTFclb;\n    }\n    registerMetaDataCompleteCallback(handleMetaDataClb: (metaData: { [key: string]: any }) => Promise<void>) {\n        this.handleMetaDataClb = handleMetaDataClb;\n    }\n    registerGltfCompleteCallback(gltfCompleteCallback: () => void) {\n        this.module!.setGltfCompleteCallback(gltfCompleteCallback);\n    }\n\n    static getDefaultInputOptions() {\n        const inputOptions = {\n            \"inputParameters\": {\n                \"exportPropertySets\": \"yes\",\n                \"exportIfcPropertyTypes\": \"yes\",\n                \"exportIfcValueTypes\": \"yes\",\n                \"exportPolylines\": \"yes\",\n                \"excludeGeometryForIfcTypes\": [\"IfcOpeningElement\"],\n                \"exportGeometryOnlyForIfcTypes\": [\"\"],\n                \"excludeGUIDs\": [\"\"],\n                \"exportOnlyGUIDs\": [\"\"],\n                \"centerModelAtOrigin\": \"yes\",\n                \"ignoreProfileRadius\": \"yes\",\n                \"enableGltfCompression\": \"yes\",\n                \"enableGltfQuantization\": \"no\",\n                \"exportNormals\": \"no\",\n                \"numPointsPerCircle\": 18,\n                \"licenceKey\": \"\",\n                // JSON above is copied from default input config file. Changes applied here:\n                \"loadingPriorityTypes\": [\"IFCWALL\", \"IFCSLAB\", \"IFCWINDOW\", \"IFCROOF\", \"IFCFURNISHINGELEMENT\", \"IFCAIRTERMINAL\"]//[ \"IfcOpeningElement\" ],\n            }\n        };\n\n        const inputOptionsString = JSON.stringify(inputOptions);\n        return inputOptionsString;\n    }\n\n    static getDefaultLoadOptions() {\n        const loadOptions = {\n            \"maxFileSizeInMegaBytes\": 15\n        };\n        return loadOptions;\n    }\n\n    async metaDataCompleteCallback() {\n        console.log(\"metaDataCompleteCallback\");\n        try {\n            const uint8Array = await this.module!.getMetaData();\n\n            const decoder = new TextDecoder();\n            const metaStr = decoder.decode(uint8Array);\n            //console.log(metaStr);\n\n            this.metaDataGlobal = await JSON.parse(metaStr);\n            if (this.metaDataGlobal!.metaObjects != null) {\n                console.log(\"loading \" + this.metaDataGlobal!.metaObjects.length + \" meta objects\");\n            }\n        }\n        catch (e) {\n            console.log(\"getMetaData failed: \" + e)\n        }\n        if (this.handleMetaDataClb)\n            await this.handleMetaDataClb(this.metaDataGlobal!);\n    }\n\n    async gltfChunkDoneCallback() {\n        console.log(\"GltfChunkDoneCallback\");\n        try {\n            const glbContent = await this.module!.getGeometry();\n            await this.module!.clearFileContent();\n            this.GLTFs.push(glbContent);\n            if (glbContent.length > 0) {\n                if (this.handleGLTFclb)\n                    await this.handleGLTFclb(glbContent);\n            }\n        }\n        catch (e) {\n            console.log(\"getGeometry failed: \" + e)\n        }\n    }\n}\n","import { IfcWasmConverterLoader } from \"./ifcWasmConverterLoader\";\nimport { WasmModule } from \"./wasmModuleInterface\";\n\n\n\nexport async function ifc2gltf(\n    ifcData: string,\n    params: {\n        remote?: boolean,\n        urlPath?: string,\n        progressCallback?: ((progress: number) => void),\n        progressTextCallback?: ((progressText: string) => void),\n        inputOptions?: string\n    } = { remote: true })\n    : Promise<{ gltf: string, metaData: { [key: string]: any } }> {\n\n    if(params.remote == undefined)\n        params.remote = true;\n    const inputOptionsString = (params.inputOptions) ? params.inputOptions : JSON.stringify(inputOptionsDefault);\n    const loadOptions = {\n        \"maxFileSizeInMegaBytes\": 1000,\n    };\n\n    let resolveCallbackGltf: (() => void) | undefined = undefined;\n    let resolveCallbackMetadata: (() => void) | undefined = undefined;\n    const url = params.remote ? 'remote' : params.urlPath;\n    const module = await IfcWasmConverterLoader.getModule(url) as WasmModule;\n    if (params.progressCallback)\n        module.setProgressCallback(params.progressCallback);\n    else\n        module.setProgressCallback((progress: number) => { console.log(`Progress: ${progress}`); });\n    if (params.progressTextCallback)\n        module.setProgressTextCallback(params.progressTextCallback);\n    else\n        module.setProgressTextCallback((progressText: string) => { console.log(`Progress text: ${progressText}`); });\n    module.setInputOptions(inputOptionsString);\n\n    const promiseGltf = new Promise<void>((resolve) => {\n        resolveCallbackGltf = resolve;\n    });\n    const promiseMetadata = new Promise<void>((resolve) => {\n        resolveCallbackMetadata = resolve;\n    });\n    if (resolveCallbackGltf)\n        module.setGltfCompleteCallback(resolveCallbackGltf);\n    if (resolveCallbackMetadata)\n        module.setMetaDataCompleteCallback(resolveCallbackMetadata);\n    module.loadModel(ifcData, loadOptions);\n    await Promise.all([promiseGltf, promiseMetadata]);\n    const gltf = await module.getGeometry();\n    const uint8Array = await module.getMetaData();\n    const decoder = new TextDecoder();\n    const metaStr = decoder.decode(uint8Array);\n    const metaData = await JSON.parse(metaStr);\n    return { gltf: gltf, metaData: metaData };\n}\n\n\nconst inputOptionsDefault = {\n    \"inputParameters\": {\n        \"exportPropertySets\": \"yes\",\n        \"exportIfcPropertyTypes\": \"yes\",\n        \"exportIfcValueTypes\": \"yes\",\n        \"exportPolylines\": \"yes\",\n        \"excludeGeometryForIfcTypes\": [\"IfcOpeningElement\"],\n        \"excludeGUIDs\": [\"\"],\n        \"exportOnlyGUIDs\": [\"\"],\n        \"centerModelAtOrigin\": \"yes\",\n        \"ignoreProfileRadius\": \"yes\",\n        \"enableGltfCompression\": \"yes\",\n        \"enableGltfQuantization\": \"no\",\n        \"exportNormals\": \"no\",\n        \"numPointsPerCircle\": 18,\n        \"licenceKey\": \"\",\n        // JSON above is copied from default input config file. Changes applied here:\n        \"loadingPriorityTypes\": [\"IFCWALL\", \"IFCSLAB\", \"IFCWINDOW\", \"IFCROOF\", \"IFCFURNISHINGELEMENT\", \"IFCAIRTERMINAL\"]//[ \"IfcOpeningElement\" ],\n    }\n};\n"],"names":["result","__publicField","rtn","byteArray","err","xhr","lazyArray","typeConverters","fieldTypes","argTypes","IfcDbWasmLocal"],"mappings":"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"}