@miris-inc/core 0.0.8-1d4ce14 → 0.0.8-1db29d5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AquaApi.wasm +0 -0
- package/dist/aqua-parser.wasm +0 -0
- package/dist/core.d.ts +385 -11
- package/dist/core.js +235 -70
- package/dist/core.prod.js +1 -1
- package/dist/core.standalone.js +3763 -2069
- package/dist/core.standalone.prod.js +1 -1
- package/package.json +1 -5
- package/dist/webshark.d.ts +0 -321
- package/dist/webshark.js +0 -2
- package/dist/webshark.wasm +0 -0
package/dist/core.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// packages/core/attributeCache.ts
|
|
2
2
|
var AttributeCache = class {
|
|
3
3
|
static #cache = /* @__PURE__ */ new Map();
|
|
4
4
|
static #nextId = 1;
|
|
@@ -55,12 +55,11 @@ var AttributeCache = class {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
|
-
|
|
59
|
-
//#region \0emscripten-lazy:AquaApi
|
|
58
|
+
// \0emscripten-lazy:AquaApi
|
|
60
59
|
var _factoryPromise;
|
|
61
60
|
var _wasmPromise;
|
|
62
61
|
var _wasmUrl = ((u) => u.includes("/.vite/") ? u.replace(/\.vite\/[^?#]*/, () => "@miris-inc/core/dist/AquaApi.wasm") : u)(new URL("AquaApi.wasm", import.meta.url).href);
|
|
63
|
-
var _glueSource = "async function fu($t={}){var Ye,l=$t,br=typeof window==\"object\",ge=typeof WorkerGlobalScope<\"u\",Dt=typeof process==\"object\"&&process.versions?.node&&process.type!=\"renderer\",du=!br&&!Dt&&!ge,Rt=[],kr=\"./this.program\",Er=(e,r)=>{throw r},It=import.meta.url,Je=\"\";function Mt(e){return l.locateFile?l.locateFile(e,Je):Je+e}var Qe,Fe;if(br||ge){try{Je=new URL(\".\",It).href}catch{}ge&&(Fe=e=>{var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),Qe=async e=>{var r=await fetch(e,{credentials:\"same-origin\"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+\" : \"+r.url)}}var we=console.log.bind(console),ee=console.error.bind(console),Se,Pe=!1,Ae;function vu(e,r){e||ue(r)}var _u=e=>e.startsWith(\"file://\"),Cr,Tr,$e,G,L,A,ve,C,m,De,Re,W,Fr,Pr=!1;function Ar(){var e=$e.buffer;l.HEAP8=G=new Int8Array(e),A=new Int16Array(e),l.HEAPU8=L=new Uint8Array(e),ve=new Uint16Array(e),l.HEAP32=C=new Int32Array(e),l.HEAPU32=m=new Uint32Array(e),l.HEAPF32=De=new Float32Array(e),l.HEAPF64=Re=new Float64Array(e),W=new BigInt64Array(e),Fr=new BigUint64Array(e)}function jt(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Ht(l.preRun.shift());Dr(Ir)}function Ot(){Pr=!0,!l.noFSInit&&!o.initialized&&o.init(),ae.init(),de.__wasm_call_ctors(),o.ignorePermissions=!1}function xt(){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)zt(l.postRun.shift());Dr(Rr)}function ue(e){l.onAbort?.(e),e=\"Aborted(\"+e+\")\",ee(e),Pe=!0,e+=\". Build with -sASSERTIONS for more info.\";var r=new WebAssembly.RuntimeError(e);throw Tr?.(r),r}var er;function Gt(){return l.locateFile?Mt(\"AquaApi.wasm\"):new URL(\"AquaApi.wasm\",import.meta.url).href}function Nt(e){if(e==er&&Se)return new Uint8Array(Se);if(Fe)return Fe(e);throw\"both async and sync fetching of the wasm failed\"}async function Lt(e){if(!Se)try{var r=await Qe(e);return new Uint8Array(r)}catch{}return Nt(e)}async function Bt(e,r){try{var t=await Lt(e),n=await WebAssembly.instantiate(t,r);return n}catch(i){ee(`failed to asynchronously prepare wasm: ${i}`),ue(i)}}async function Wt(e,r,t){if(!e)try{var n=fetch(r,{credentials:\"same-origin\"}),i=await WebAssembly.instantiateStreaming(n,t);return i}catch(a){ee(`wasm streaming compile failed: ${a}`),ee(\"falling back to ArrayBuffer instantiation\")}return Bt(r,t)}function Ut(){return{env:At,wasi_snapshot_preview1:At}}async function Vt(){function e(a,s){return de=a.exports,$e=de.memory,Ar(),Yr=de.__indirect_function_table,os(de),de}function r(a){return e(a.instance)}var t=Ut();if(l.instantiateWasm)return new Promise((a,s)=>{l.instantiateWasm(t,(u,c)=>{a(e(u,c))})});er??=Gt();var n=await Wt(Se,er,t),i=r(n);return i}class $r{name=\"ExitStatus\";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var Dr=e=>{for(;e.length>0;)e.shift()(l)},Rr=[],zt=e=>Rr.push(e),Ir=[],Ht=e=>Ir.push(e);function hu(e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":return G[e];case\"i8\":return G[e];case\"i16\":return A[e>>1];case\"i32\":return C[e>>2];case\"i64\":return W[e>>3];case\"float\":return De[e>>2];case\"double\":return Re[e>>3];case\"*\":return m[e>>2];default:ue(`invalid type for getValue: ${r}`)}}var rr=!0;function mu(e,r,t=\"i8\"){switch(t.endsWith(\"*\")&&(t=\"*\"),t){case\"i1\":G[e]=r;break;case\"i8\":G[e]=r;break;case\"i16\":A[e>>1]=r;break;case\"i32\":C[e>>2]=r;break;case\"i64\":W[e>>3]=BigInt(r);break;case\"float\":De[e>>2]=r;break;case\"double\":Re[e>>3]=r;break;case\"*\":m[e>>2]=r;break;default:ue(`invalid type for setValue: ${t}`)}}var w=e=>bt(e),S=()=>Et(),Ie=[],Me=0,qt=e=>{var r=new tr(e);return r.get_caught()||(r.set_caught(!0),Me--),r.set_rethrown(!1),Ie.push(r),Tt(e),Pt(e)},re=0,Xt=()=>{g(0,0);var e=Ie.pop();Ct(e.excPtr),re=0};class tr{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){m[this.ptr+4>>2]=r}get_type(){return m[this.ptr+4>>2]}set_destructor(r){m[this.ptr+8>>2]=r}get_destructor(){return m[this.ptr+8>>2]}set_caught(r){r=r?1:0,G[this.ptr+12]=r}get_caught(){return G[this.ptr+12]!=0}set_rethrown(r){r=r?1:0,G[this.ptr+13]=r}get_rethrown(){return G[this.ptr+13]!=0}init(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)}set_adjusted_ptr(r){m[this.ptr+16>>2]=r}get_adjusted_ptr(){return m[this.ptr+16>>2]}}var je=e=>St(e),nr=e=>{var r=re;if(!r)return je(0),0;var t=new tr(r);t.set_adjusted_ptr(r);var n=t.get_type();if(!n)return je(0),r;for(var i of e){if(i===0||i===n)break;var a=t.ptr+16;if(Ft(i,n,a))return je(i),r}return je(n),r},Zt=()=>nr([]),Kt=e=>nr([e]),Yt=(e,r)=>nr([e,r]),Jt=()=>{var e=Ie.pop();e||ue(\"no exception to throw\");var r=e.excPtr;throw e.get_rethrown()||(Ie.push(e),e.set_rethrown(!0),e.set_caught(!1),Me++),re=r,re},Qt=(e,r,t)=>{var n=new tr(e);throw n.init(r,t),re=e,Me++,re},en=()=>Me,rn=e=>{throw re||(re=e),re},Oe=()=>{var e=C[+R.varargs>>2];return R.varargs+=4,e},_e=Oe,D={isAbs:e=>e.charAt(0)===\"/\",splitPath:e=>{var r=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var i=e[n];i===\".\"?e.splice(n,1):i===\"..\"?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift(\"..\");return e},normalize:e=>{var r=D.isAbs(e),t=e.slice(-1)===\"/\";return e=D.normalizeArray(e.split(\"/\").filter(n=>!!n),!r).join(\"/\"),!e&&!r&&(e=\".\"),e&&t&&(e+=\"/\"),(r?\"/\":\"\")+e},dirname:e=>{var r=D.splitPath(e),t=r[0],n=r[1];return!t&&!n?\".\":(n&&(n=n.slice(0,-1)),t+n)},basename:e=>e&&e.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...e)=>D.normalize(e.join(\"/\")),join2:(e,r)=>D.normalize(e+\"/\"+r)},tn=()=>e=>crypto.getRandomValues(e),ir=e=>{(ir=tn())(e)},he={resolve:(...e)=>{for(var r=\"\",t=!1,n=e.length-1;n>=-1&&!t;n--){var i=n>=0?e[n]:o.cwd();if(typeof i!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!i)return\"\";r=i+\"/\"+r,t=D.isAbs(i)}return r=D.normalizeArray(r.split(\"/\").filter(a=>!!a),!t).join(\"/\"),(t?\"/\":\"\")+r||\".\"},relative:(e,r)=>{e=he.resolve(e).slice(1),r=he.resolve(r).slice(1);function t(f){for(var d=0;d<f.length&&f[d]===\"\";d++);for(var _=f.length-1;_>=0&&f[_]===\"\";_--);return d>_?[]:f.slice(d,_-d+1)}for(var n=t(e.split(\"/\")),i=t(r.split(\"/\")),a=Math.min(n.length,i.length),s=a,u=0;u<a;u++)if(n[u]!==i[u]){s=u;break}for(var c=[],u=s;u<n.length;u++)c.push(\"..\");return c=c.concat(i.slice(s)),c.join(\"/\")}},Mr=typeof TextDecoder<\"u\"?new TextDecoder:void 0,jr=(e,r,t,n)=>{var i=r+t;if(n)return i;for(;e[r]&&!(r>=i);)++r;return r},me=(e,r=0,t,n)=>{var i=jr(e,r,t,n);if(i-r>16&&e.buffer&&Mr)return Mr.decode(e.subarray(r,i));for(var a=\"\";r<i;){var s=e[r++];if(!(s&128)){a+=String.fromCharCode(s);continue}var u=e[r++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|u);continue}var c=e[r++]&63;if((s&240)==224?s=(s&15)<<12|u<<6|c:s=(s&7)<<18|u<<12|c<<6|e[r++]&63,s<65536)a+=String.fromCharCode(s);else{var f=s-65536;a+=String.fromCharCode(55296|f>>10,56320|f&1023)}}return a},ar=[],Y=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},Or=(e,r,t,n)=>{if(!(n>0))return 0;for(var i=t,a=t+n-1,s=0;s<e.length;++s){var u=e.codePointAt(s);if(u<=127){if(t>=a)break;r[t++]=u}else if(u<=2047){if(t+1>=a)break;r[t++]=192|u>>6,r[t++]=128|u&63}else if(u<=65535){if(t+2>=a)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|u&63}else{if(t+3>=a)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|u&63,s++}}return r[t]=0,t-i},or=(e,r,t)=>{var n=t>0?t:Y(e)+1,i=new Array(n),a=Or(e,i,0,i.length);return r&&(i.length=a),i},nn=()=>{if(!ar.length){var e=null;if(typeof window<\"u\"&&typeof window.prompt==\"function\"&&(e=window.prompt(\"Input: \"),e!==null&&(e+=`\n`)),!e)return null;ar=or(e,!0)}return ar.shift()},ae={ttys:[],init(){},shutdown(){},register(e,r){ae.ttys[e]={input:[],output:[],ops:r},o.registerDevice(e,ae.stream_ops)},stream_ops:{open(e){var r=ae.ttys[e.node.rdev];if(!r)throw new o.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,i){if(!e.tty||!e.tty.ops.get_char)throw new o.ErrnoError(60);for(var a=0,s=0;s<n;s++){var u;try{u=e.tty.ops.get_char(e.tty)}catch{throw new o.ErrnoError(29)}if(u===void 0&&a===0)throw new o.ErrnoError(6);if(u==null)break;a++,r[t+s]=u}return a&&(e.node.atime=Date.now()),a},write(e,r,t,n,i){if(!e.tty||!e.tty.ops.put_char)throw new o.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch{throw new o.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){return nn()},put_char(e,r){r===null||r===10?(we(me(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(we(me(e.output)),e.output=[])},ioctl_tcgets(e){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(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(ee(me(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(ee(me(e.output)),e.output=[])}}},xr=e=>{ue()},E={ops_table:null,mount(e){return E.createNode(null,\"/\",16895,0)},createNode(e,r,t,n){if(o.isBlkdev(t)||o.isFIFO(t))throw new o.ErrnoError(63);E.ops_table||={dir:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr,lookup:E.node_ops.lookup,mknod:E.node_ops.mknod,rename:E.node_ops.rename,unlink:E.node_ops.unlink,rmdir:E.node_ops.rmdir,readdir:E.node_ops.readdir,symlink:E.node_ops.symlink},stream:{llseek:E.stream_ops.llseek}},file:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr},stream:{llseek:E.stream_ops.llseek,read:E.stream_ops.read,write:E.stream_ops.write,mmap:E.stream_ops.mmap,msync:E.stream_ops.msync}},link:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr,readlink:E.node_ops.readlink},stream:{}},chrdev:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr},stream:o.chrdev_stream_ops}};var i=o.createNode(e,r,t,n);return o.isDir(i.mode)?(i.node_ops=E.ops_table.dir.node,i.stream_ops=E.ops_table.dir.stream,i.contents={}):o.isFile(i.mode)?(i.node_ops=E.ops_table.file.node,i.stream_ops=E.ops_table.file.stream,i.usedBytes=0,i.contents=null):o.isLink(i.mode)?(i.node_ops=E.ops_table.link.node,i.stream_ops=E.ops_table.link.stream):o.isChrdev(i.mode)&&(i.node_ops=E.ops_table.chrdev.node,i.stream_ops=E.ops_table.chrdev.stream),i.atime=i.mtime=i.ctime=Date.now(),e&&(e.contents[r]=i,e.atime=e.mtime=e.ctime=i.atime),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1024*1024;r=Math.max(r,t*(t<n?2:1.125)>>>0),t!=0&&(r=Math.max(r,256));var i=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=o.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,o.isDir(e.mode)?r.size=4096:o.isFile(e.mode)?r.size=e.usedBytes:o.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of[\"mode\",\"atime\",\"mtime\",\"ctime\"])r[t]!=null&&(e[t]=r[t]);r.size!==void 0&&E.resizeFileStorage(e,r.size)},lookup(e,r){throw E.doesNotExistError||(E.doesNotExistError=new o.ErrnoError(44),E.doesNotExistError.stack=\"<generic error, no stack>\"),E.doesNotExistError},mknod(e,r,t,n){return E.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=o.lookupNode(r,t)}catch{}if(n){if(o.isDir(e.mode))for(var i in n.contents)throw new o.ErrnoError(55);o.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=o.lookupNode(e,r);for(var n in t.contents)throw new o.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[\".\",\"..\",...Object.keys(e.contents)]},symlink(e,r,t){var n=E.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!o.isLink(e.mode))throw new o.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-i,n);if(s>8&&a.subarray)r.set(a.subarray(i,i+s),t);else for(var u=0;u<s;u++)r[t+u]=a[i+u];return s},write(e,r,t,n,i,a){if(r.buffer===G.buffer&&(a=!1),!n)return 0;var s=e.node;if(s.mtime=s.ctime=Date.now(),r.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=r.subarray(t,t+n),s.usedBytes=n,n;if(s.usedBytes===0&&i===0)return s.contents=r.slice(t,t+n),s.usedBytes=n,n;if(i+n<=s.usedBytes)return s.contents.set(r.subarray(t,t+n),i),n}if(E.expandFileStorage(s,i+n),s.contents.subarray&&r.subarray)s.contents.set(r.subarray(t,t+n),i);else for(var u=0;u<n;u++)s.contents[i+u]=r[t+u];return s.usedBytes=Math.max(s.usedBytes,i+n),n},llseek(e,r,t){var n=r;if(t===1?n+=e.position:t===2&&o.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new o.ErrnoError(28);return n},mmap(e,r,t,n,i){if(!o.isFile(e.node.mode))throw new o.ErrnoError(43);var a,s,u=e.node.contents;if(!(i&2)&&u&&u.buffer===G.buffer)s=!1,a=u.byteOffset;else{if(s=!0,a=xr(r),!a)throw new o.ErrnoError(48);u&&((t>0||t+r<u.length)&&(u.subarray?u=u.subarray(t,t+r):u=Array.prototype.slice.call(u,t,t+r)),G.set(u,a))}return{ptr:a,allocated:s}},msync(e,r,t,n,i){return E.stream_ops.write(e,r,0,n,t,!1),0}}},an=e=>{var r={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},t=r[e];if(typeof t>\"u\")throw new Error(`Unknown file open mode: ${e}`);return t},sr=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},on=async e=>{var r=await Qe(e);return new Uint8Array(r)},sn=(...e)=>o.createDataFile(...e),un=e=>e,ce=0,be=null,Gr=e=>{if(ce--,l.monitorRunDependencies?.(ce),ce==0&&be){var r=be;be=null,r()}},Nr=e=>{ce++,l.monitorRunDependencies?.(ce)},Lr=[],cn=async(e,r)=>{typeof Browser<\"u\"&&Browser.init();for(var t of Lr)if(t.canHandle(r))return t.handle(e,r);return e},Br=async(e,r,t,n,i,a,s,u)=>{var c=r?he.resolve(D.join2(e,r)):e,f=un(`cp ${c}`);Nr(f);try{var d=t;typeof t==\"string\"&&(d=await on(t)),d=await cn(d,c),u?.(),a||sn(e,r,d,n,i,s)}finally{Gr(f)}},ln=(e,r,t,n,i,a,s,u,c,f)=>{Br(e,r,t,n,i,u,c,f).then(a).catch(s)},o={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}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(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=o.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return o.isDir(this.mode)}get isDevice(){return o.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new o.ErrnoError(44);r.follow_mount??=!0,D.isAbs(e)||(e=o.cwd()+\"/\"+e);e:for(var t=0;t<40;t++){for(var n=e.split(\"/\").filter(f=>!!f),i=o.root,a=\"/\",s=0;s<n.length;s++){var u=s===n.length-1;if(u&&r.parent)break;if(n[s]!==\".\"){if(n[s]===\"..\"){if(a=D.dirname(a),o.isRoot(i)){e=a+\"/\"+n.slice(s+1).join(\"/\"),t--;continue e}else i=i.parent;continue}a=D.join2(a,n[s]);try{i=o.lookupNode(i,n[s])}catch(f){if(f?.errno===44&&u&&r.noent_okay)return{path:a};throw f}if(o.isMountpoint(i)&&(!u||r.follow_mount)&&(i=i.mounted.root),o.isLink(i.mode)&&(!u||r.follow)){if(!i.node_ops.readlink)throw new o.ErrnoError(52);var c=i.node_ops.readlink(i);D.isAbs(c)||(c=D.dirname(a)+\"/\"+c),e=c+\"/\"+n.slice(s+1).join(\"/\");continue e}}}return{path:a,node:i}}throw new o.ErrnoError(32)},getPath(e){for(var r;;){if(o.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!==\"/\"?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%o.nameTable.length},hashAddNode(e){var r=o.hashName(e.parent.id,e.name);e.name_next=o.nameTable[r],o.nameTable[r]=e},hashRemoveNode(e){var r=o.hashName(e.parent.id,e.name);if(o.nameTable[r]===e)o.nameTable[r]=e.name_next;else for(var t=o.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=o.mayLookup(e);if(t)throw new o.ErrnoError(t);for(var n=o.hashName(e.id,r),i=o.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===r)return i}return o.lookup(e,r)},createNode(e,r,t,n){var i=new o.FSNode(e,r,t,n);return o.hashAddNode(i),i},destroyNode(e){o.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=[\"r\",\"w\",\"rw\"][e&3];return e&512&&(r+=\"w\"),r},nodePermissions(e,r){return o.ignorePermissions?0:r.includes(\"r\")&&!(e.mode&292)||r.includes(\"w\")&&!(e.mode&146)||r.includes(\"x\")&&!(e.mode&73)?2:0},mayLookup(e){if(!o.isDir(e.mode))return 54;var r=o.nodePermissions(e,\"x\");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!o.isDir(e.mode))return 54;try{var t=o.lookupNode(e,r);return 20}catch{}return o.nodePermissions(e,\"wx\")},mayDelete(e,r,t){var n;try{n=o.lookupNode(e,r)}catch(a){return a.errno}var i=o.nodePermissions(e,\"wx\");if(i)return i;if(t){if(!o.isDir(n.mode))return 54;if(o.isRoot(n)||o.getPath(n)===o.cwd())return 10}else if(o.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?o.isLink(e.mode)?32:o.isDir(e.mode)&&(o.flagsToPermissionString(r)!==\"r\"||r&576)?31:o.nodePermissions(e,o.flagsToPermissionString(r)):44},checkOpExists(e,r){if(!e)throw new o.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=o.MAX_OPEN_FDS;e++)if(!o.streams[e])return e;throw new o.ErrnoError(33)},getStreamChecked(e){var r=o.getStream(e);if(!r)throw new o.ErrnoError(8);return r},getStream:e=>o.streams[e],createStream(e,r=-1){return e=Object.assign(new o.FSStream,e),r==-1&&(r=o.nextfd()),e.fd=r,o.streams[r]=e,e},closeStream(e){o.streams[e]=null},dupStream(e,r=-1){var t=o.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,i=n?e:r;n??=r.node_ops.setattr,o.checkOpExists(n,63),n(i,t)},chrdev_stream_ops:{open(e){var r=o.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new o.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){o.devices[e]={stream_ops:r}},getDevice:e=>o.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){typeof e==\"function\"&&(r=e,e=!1),o.syncFSRequests++,o.syncFSRequests>1&&ee(`warning: ${o.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=o.getMounts(o.root.mount),n=0;function i(s){return o.syncFSRequests--,r(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,i(s));++n>=t.length&&i(null)}t.forEach(s=>{if(!s.type.syncfs)return a(null);s.type.syncfs(s,e,a)})},mount(e,r,t){var n=t===\"/\",i=!t,a;if(n&&o.root)throw new o.ErrnoError(10);if(!n&&!i){var s=o.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,o.isMountpoint(a))throw new o.ErrnoError(10);if(!o.isDir(a.mode))throw new o.ErrnoError(54)}var u={type:e,opts:r,mountpoint:t,mounts:[]},c=e.mount(u);return c.mount=u,u.root=c,n?o.root=c:a&&(a.mounted=u,a.mount&&a.mount.mounts.push(u)),c},unmount(e){var r=o.lookupPath(e,{follow_mount:!1});if(!o.isMountpoint(r.node))throw new o.ErrnoError(28);var t=r.node,n=t.mounted,i=o.getMounts(n);Object.keys(o.nameTable).forEach(s=>{for(var u=o.nameTable[s];u;){var c=u.name_next;i.includes(u.mount)&&o.destroyNode(u),u=c}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=o.lookupPath(e,{parent:!0}),i=n.node,a=D.basename(e);if(!a)throw new o.ErrnoError(28);if(a===\".\"||a===\"..\")throw new o.ErrnoError(20);var s=o.mayCreate(i,a);if(s)throw new o.ErrnoError(s);if(!i.node_ops.mknod)throw new o.ErrnoError(63);return i.node_ops.mknod(i,a,r,t)},statfs(e){return o.statfsNode(o.lookupPath(e,{follow:!0}).node)},statfsStream(e){return o.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:o.nextInode,ffree:o.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return r&=4095,r|=32768,o.mknod(e,r,0)},mkdir(e,r=511){return r&=1023,r|=16384,o.mknod(e,r,0)},mkdirTree(e,r){var t=e.split(\"/\"),n=\"\";for(var i of t)if(i){(n||D.isAbs(e))&&(n+=\"/\"),n+=i;try{o.mkdir(n,r)}catch(a){if(a.errno!=20)throw a}}},mkdev(e,r,t){return typeof t>\"u\"&&(t=r,r=438),r|=8192,o.mknod(e,r,t)},symlink(e,r){if(!he.resolve(e))throw new o.ErrnoError(44);var t=o.lookupPath(r,{parent:!0}),n=t.node;if(!n)throw new o.ErrnoError(44);var i=D.basename(r),a=o.mayCreate(n,i);if(a)throw new o.ErrnoError(a);if(!n.node_ops.symlink)throw new o.ErrnoError(63);return n.node_ops.symlink(n,i,e)},rename(e,r){var t=D.dirname(e),n=D.dirname(r),i=D.basename(e),a=D.basename(r),s,u,c;if(s=o.lookupPath(e,{parent:!0}),u=s.node,s=o.lookupPath(r,{parent:!0}),c=s.node,!u||!c)throw new o.ErrnoError(44);if(u.mount!==c.mount)throw new o.ErrnoError(75);var f=o.lookupNode(u,i),d=he.relative(e,n);if(d.charAt(0)!==\".\")throw new o.ErrnoError(28);if(d=he.relative(r,t),d.charAt(0)!==\".\")throw new o.ErrnoError(55);var _;try{_=o.lookupNode(c,a)}catch{}if(f!==_){var p=o.isDir(f.mode),v=o.mayDelete(u,i,p);if(v)throw new o.ErrnoError(v);if(v=_?o.mayDelete(c,a,p):o.mayCreate(c,a),v)throw new o.ErrnoError(v);if(!u.node_ops.rename)throw new o.ErrnoError(63);if(o.isMountpoint(f)||_&&o.isMountpoint(_))throw new o.ErrnoError(10);if(c!==u&&(v=o.nodePermissions(u,\"w\"),v))throw new o.ErrnoError(v);o.hashRemoveNode(f);try{u.node_ops.rename(f,c,a),f.parent=c}catch(h){throw h}finally{o.hashAddNode(f)}}},rmdir(e){var r=o.lookupPath(e,{parent:!0}),t=r.node,n=D.basename(e),i=o.lookupNode(t,n),a=o.mayDelete(t,n,!0);if(a)throw new o.ErrnoError(a);if(!t.node_ops.rmdir)throw new o.ErrnoError(63);if(o.isMountpoint(i))throw new o.ErrnoError(10);t.node_ops.rmdir(t,n),o.destroyNode(i)},readdir(e){var r=o.lookupPath(e,{follow:!0}),t=r.node,n=o.checkOpExists(t.node_ops.readdir,54);return n(t)},unlink(e){var r=o.lookupPath(e,{parent:!0}),t=r.node;if(!t)throw new o.ErrnoError(44);var n=D.basename(e),i=o.lookupNode(t,n),a=o.mayDelete(t,n,!1);if(a)throw new o.ErrnoError(a);if(!t.node_ops.unlink)throw new o.ErrnoError(63);if(o.isMountpoint(i))throw new o.ErrnoError(10);t.node_ops.unlink(t,n),o.destroyNode(i)},readlink(e){var r=o.lookupPath(e),t=r.node;if(!t)throw new o.ErrnoError(44);if(!t.node_ops.readlink)throw new o.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,r){var t=o.lookupPath(e,{follow:!r}),n=t.node,i=o.checkOpExists(n.node_ops.getattr,63);return i(n)},fstat(e){var r=o.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,i=n?r:t;return n??=t.node_ops.getattr,o.checkOpExists(n,63),n(i)},lstat(e){return o.stat(e,!0)},doChmod(e,r,t,n){o.doSetAttr(e,r,{mode:t&4095|r.mode&-4096,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;if(typeof e==\"string\"){var i=o.lookupPath(e,{follow:!t});n=i.node}else n=e;o.doChmod(null,n,r,t)},lchmod(e,r){o.chmod(e,r,!0)},fchmod(e,r){var t=o.getStreamChecked(e);o.doChmod(t,t.node,r,!1)},doChown(e,r,t){o.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var i;if(typeof e==\"string\"){var a=o.lookupPath(e,{follow:!n});i=a.node}else i=e;o.doChown(null,i,n)},lchown(e,r,t){o.chown(e,r,t,!0)},fchown(e,r,t){var n=o.getStreamChecked(e);o.doChown(n,n.node,!1)},doTruncate(e,r,t){if(o.isDir(r.mode))throw new o.ErrnoError(31);if(!o.isFile(r.mode))throw new o.ErrnoError(28);var n=o.nodePermissions(r,\"w\");if(n)throw new o.ErrnoError(n);o.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new o.ErrnoError(28);var t;if(typeof e==\"string\"){var n=o.lookupPath(e,{follow:!0});t=n.node}else t=e;o.doTruncate(null,t,r)},ftruncate(e,r){var t=o.getStreamChecked(e);if(r<0||(t.flags&2097155)===0)throw new o.ErrnoError(28);o.doTruncate(t,t.node,r)},utime(e,r,t){var n=o.lookupPath(e,{follow:!0}),i=n.node,a=o.checkOpExists(i.node_ops.setattr,63);a(i,{atime:r,mtime:t})},open(e,r,t=438){if(e===\"\")throw new o.ErrnoError(44);r=typeof r==\"string\"?an(r):r,r&64?t=t&4095|32768:t=0;var n,i;if(typeof e==\"object\")n=e;else{i=e.endsWith(\"/\");var a=o.lookupPath(e,{follow:!(r&131072),noent_okay:!0});n=a.node,e=a.path}var s=!1;if(r&64)if(n){if(r&128)throw new o.ErrnoError(20)}else{if(i)throw new o.ErrnoError(31);n=o.mknod(e,t|511,0),s=!0}if(!n)throw new o.ErrnoError(44);if(o.isChrdev(n.mode)&&(r&=-513),r&65536&&!o.isDir(n.mode))throw new o.ErrnoError(54);if(!s){var u=o.mayOpen(n,r);if(u)throw new o.ErrnoError(u)}r&512&&!s&&o.truncate(n,0),r&=-131713;var c=o.createStream({node:n,path:o.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return c.stream_ops.open&&c.stream_ops.open(c),s&&o.chmod(n,t&511),l.logReadFiles&&!(r&1)&&(e in o.readFiles||(o.readFiles[e]=1)),c},close(e){if(o.isClosed(e))throw new o.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{o.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,r,t){if(o.isClosed(e))throw new o.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new o.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new o.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,i){if(n<0||i<0)throw new o.ErrnoError(28);if(o.isClosed(e))throw new o.ErrnoError(8);if((e.flags&2097155)===1)throw new o.ErrnoError(8);if(o.isDir(e.node.mode))throw new o.ErrnoError(31);if(!e.stream_ops.read)throw new o.ErrnoError(28);var a=typeof i<\"u\";if(!a)i=e.position;else if(!e.seekable)throw new o.ErrnoError(70);var s=e.stream_ops.read(e,r,t,n,i);return a||(e.position+=s),s},write(e,r,t,n,i,a){if(n<0||i<0)throw new o.ErrnoError(28);if(o.isClosed(e))throw new o.ErrnoError(8);if((e.flags&2097155)===0)throw new o.ErrnoError(8);if(o.isDir(e.node.mode))throw new o.ErrnoError(31);if(!e.stream_ops.write)throw new o.ErrnoError(28);e.seekable&&e.flags&1024&&o.llseek(e,0,2);var s=typeof i<\"u\";if(!s)i=e.position;else if(!e.seekable)throw new o.ErrnoError(70);var u=e.stream_ops.write(e,r,t,n,i,a);return s||(e.position+=u),u},mmap(e,r,t,n,i){if((n&2)!==0&&(i&2)===0&&(e.flags&2097155)!==2)throw new o.ErrnoError(2);if((e.flags&2097155)===1)throw new o.ErrnoError(2);if(!e.stream_ops.mmap)throw new o.ErrnoError(43);if(!r)throw new o.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,i)},msync(e,r,t,n,i){return e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,i):0},ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new o.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||\"binary\",r.encoding!==\"utf8\"&&r.encoding!==\"binary\")throw new Error(`Invalid encoding type \"${r.encoding}\"`);var t=o.open(e,r.flags),n=o.stat(e),i=n.size,a=new Uint8Array(i);return o.read(t,a,0,i,0),r.encoding===\"utf8\"&&(a=me(a)),o.close(t),a},writeFile(e,r,t={}){t.flags=t.flags||577;var n=o.open(e,t.flags,t.mode);if(typeof r==\"string\"&&(r=new Uint8Array(or(r,!0))),ArrayBuffer.isView(r))o.write(n,r,0,r.byteLength,void 0,t.canOwn);else throw new Error(\"Unsupported data type\");o.close(n)},cwd:()=>o.currentPath,chdir(e){var r=o.lookupPath(e,{follow:!0});if(r.node===null)throw new o.ErrnoError(44);if(!o.isDir(r.node.mode))throw new o.ErrnoError(54);var t=o.nodePermissions(r.node,\"x\");if(t)throw new o.ErrnoError(t);o.currentPath=r.path},createDefaultDirectories(){o.mkdir(\"/tmp\"),o.mkdir(\"/home\"),o.mkdir(\"/home/web_user\")},createDefaultDevices(){o.mkdir(\"/dev\"),o.registerDevice(o.makedev(1,3),{read:()=>0,write:(n,i,a,s,u)=>s,llseek:()=>0}),o.mkdev(\"/dev/null\",o.makedev(1,3)),ae.register(o.makedev(5,0),ae.default_tty_ops),ae.register(o.makedev(6,0),ae.default_tty1_ops),o.mkdev(\"/dev/tty\",o.makedev(5,0)),o.mkdev(\"/dev/tty1\",o.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(r===0&&(ir(e),r=e.byteLength),e[--r]);o.createDevice(\"/dev\",\"random\",t),o.createDevice(\"/dev\",\"urandom\",t),o.mkdir(\"/dev/shm\"),o.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){o.mkdir(\"/proc\");var e=o.mkdir(\"/proc/self\");o.mkdir(\"/proc/self/fd\"),o.mount({mount(){var r=o.createNode(e,\"fd\",16895,73);return r.stream_ops={llseek:E.stream_ops.llseek},r.node_ops={lookup(t,n){var i=+n,a=o.getStreamChecked(i),s={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>a.path},id:i+1};return s.parent=s,s},readdir(){return Array.from(o.streams.entries()).filter(([t,n])=>n).map(([t,n])=>t.toString())}},r}},{},\"/proc/self/fd\")},createStandardStreams(e,r,t){e?o.createDevice(\"/dev\",\"stdin\",e):o.symlink(\"/dev/tty\",\"/dev/stdin\"),r?o.createDevice(\"/dev\",\"stdout\",null,r):o.symlink(\"/dev/tty\",\"/dev/stdout\"),t?o.createDevice(\"/dev\",\"stderr\",null,t):o.symlink(\"/dev/tty1\",\"/dev/stderr\");var n=o.open(\"/dev/stdin\",0),i=o.open(\"/dev/stdout\",1),a=o.open(\"/dev/stderr\",1)},staticInit(){o.nameTable=new Array(4096),o.mount(E,{},\"/\"),o.createDefaultDirectories(),o.createDefaultDevices(),o.createSpecialDirectories(),o.filesystems={MEMFS:E}},init(e,r,t){o.initialized=!0,e??=l.stdin,r??=l.stdout,t??=l.stderr,o.createStandardStreams(e,r,t)},quit(){o.initialized=!1;for(var e of o.streams)e&&o.close(e)},findObject(e,r){var t=o.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{var t=o.lookupPath(e,{follow:!r});e=t.path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=o.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=D.basename(e),t=o.lookupPath(e,{follow:!r}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot=t.path===\"/\"}catch(i){n.error=i.errno}return n},createPath(e,r,t,n){e=typeof e==\"string\"?e:o.getPath(e);for(var i=r.split(\"/\").reverse();i.length;){var a=i.pop();if(a){var s=D.join2(e,a);try{o.mkdir(s)}catch(u){if(u.errno!=20)throw u}e=s}}return s},createFile(e,r,t,n,i){var a=D.join2(typeof e==\"string\"?e:o.getPath(e),r),s=sr(n,i);return o.create(a,s)},createDataFile(e,r,t,n,i,a){var s=r;e&&(e=typeof e==\"string\"?e:o.getPath(e),s=r?D.join2(e,r):e);var u=sr(n,i),c=o.create(s,u);if(t){if(typeof t==\"string\"){for(var f=new Array(t.length),d=0,_=t.length;d<_;++d)f[d]=t.charCodeAt(d);t=f}o.chmod(c,u|146);var p=o.open(c,577);o.write(p,t,0,t.length,0,a),o.close(p),o.chmod(c,u)}},createDevice(e,r,t,n){var i=D.join2(typeof e==\"string\"?e:o.getPath(e),r),a=sr(!!t,!!n);o.createDevice.major??=64;var s=o.makedev(o.createDevice.major++,0);return o.registerDevice(s,{open(u){u.seekable=!1},close(u){n?.buffer?.length&&n(10)},read(u,c,f,d,_){for(var p=0,v=0;v<d;v++){var h;try{h=t()}catch{throw new o.ErrnoError(29)}if(h===void 0&&p===0)throw new o.ErrnoError(6);if(h==null)break;p++,c[f+v]=h}return p&&(u.node.atime=Date.now()),p},write(u,c,f,d,_){for(var p=0;p<d;p++)try{n(c[f+p])}catch{throw new o.ErrnoError(29)}return d&&(u.node.mtime=u.node.ctime=Date.now()),p}}),o.mkdev(i,a,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<\"u\")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.\");try{e.contents=Fe(e.url)}catch{throw new o.ErrnoError(29)}},createLazyFile(e,r,t,n,i){class a{lengthKnown=!1;chunks=[];get(v){if(!(v>this.length-1||v<0)){var h=v%this.chunkSize,k=v/this.chunkSize|0;return this.getter(k)[h]}}setDataGetter(v){this.getter=v}cacheLength(){var v=new XMLHttpRequest;if(v.open(\"HEAD\",t,!1),v.send(null),!(v.status>=200&&v.status<300||v.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+v.status);var h=Number(v.getResponseHeader(\"Content-length\")),k,$=(k=v.getResponseHeader(\"Accept-Ranges\"))&&k===\"bytes\",T=(k=v.getResponseHeader(\"Content-Encoding\"))&&k===\"gzip\",x=1024*1024;$||(x=h);var P=(z,b)=>{if(z>b)throw new Error(\"invalid range (\"+z+\", \"+b+\") or no bytes requested!\");if(b>h-1)throw new Error(\"only \"+h+\" bytes available! programmer error!\");var I=new XMLHttpRequest;if(I.open(\"GET\",t,!1),h!==x&&I.setRequestHeader(\"Range\",\"bytes=\"+z+\"-\"+b),I.responseType=\"arraybuffer\",I.overrideMimeType&&I.overrideMimeType(\"text/plain; charset=x-user-defined\"),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+I.status);return I.response!==void 0?new Uint8Array(I.response||[]):or(I.responseText||\"\",!0)},K=this;K.setDataGetter(z=>{var b=z*x,I=(z+1)*x-1;if(I=Math.min(I,h-1),typeof K.chunks[z]>\"u\"&&(K.chunks[z]=P(b,I)),typeof K.chunks[z]>\"u\")throw new Error(\"doXHR failed!\");return K.chunks[z]}),(T||!h)&&(x=h=1,h=this.getter(0).length,x=h,we(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=h,this._chunkSize=x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<\"u\"){if(!ge)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var s=new a,u={isDevice:!1,contents:s}}else var u={isDevice:!1,url:t};var c=o.createFile(e,r,u,n,i);u.contents?c.contents=u.contents:u.url&&(c.contents=null,c.url=u.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var f={},d=Object.keys(c.stream_ops);d.forEach(p=>{var v=c.stream_ops[p];f[p]=(...h)=>(o.forceLoadFile(c),v(...h))});function _(p,v,h,k,$){var T=p.node.contents;if($>=T.length)return 0;var x=Math.min(T.length-$,k);if(T.slice)for(var P=0;P<x;P++)v[h+P]=T[$+P];else for(var P=0;P<x;P++)v[h+P]=T.get($+P);return x}return f.read=(p,v,h,k,$)=>(o.forceLoadFile(c),_(p,v,h,k,$)),f.mmap=(p,v,h,k,$)=>{o.forceLoadFile(c);var T=xr(v);if(!T)throw new o.ErrnoError(48);return _(p,G,T,v,h),{ptr:T,allocated:!0}},c.stream_ops=f,c}},M=(e,r,t)=>e?me(L,e,r,t):\"\",R={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(D.isAbs(r))return r;var n;if(e===-100)n=o.cwd();else{var i=R.getStreamFromFD(e);n=i.path}if(r.length==0){if(!t)throw new o.ErrnoError(44);return n}return n+\"/\"+r},writeStat(e,r){m[e>>2]=r.dev,m[e+4>>2]=r.mode,m[e+8>>2]=r.nlink,m[e+12>>2]=r.uid,m[e+16>>2]=r.gid,m[e+20>>2]=r.rdev,W[e+24>>3]=BigInt(r.size),C[e+32>>2]=4096,C[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),i=r.ctime.getTime();return W[e+40>>3]=BigInt(Math.floor(t/1e3)),m[e+48>>2]=t%1e3*1e3*1e3,W[e+56>>3]=BigInt(Math.floor(n/1e3)),m[e+64>>2]=n%1e3*1e3*1e3,W[e+72>>3]=BigInt(Math.floor(i/1e3)),m[e+80>>2]=i%1e3*1e3*1e3,W[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){m[e+4>>2]=r.bsize,m[e+60>>2]=r.bsize,W[e+8>>3]=BigInt(r.blocks),W[e+16>>3]=BigInt(r.bfree),W[e+24>>3]=BigInt(r.bavail),W[e+32>>3]=BigInt(r.files),W[e+40>>3]=BigInt(r.ffree),m[e+48>>2]=r.fsid,m[e+64>>2]=r.flags,m[e+56>>2]=r.namelen},doMsync(e,r,t,n,i){if(!o.isFile(r.node.mode))throw new o.ErrnoError(43);if(n&2)return 0;var a=L.slice(e,e+t);o.msync(r,a,i,t,n)},getStreamFromFD(e){var r=o.getStreamChecked(e);return r},varargs:void 0,getStr(e){var r=M(e);return r}};function fn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 0:{var i=Oe();if(i<0)return-28;for(;o.streams[i];)i++;var a;return a=o.dupStream(n,i),a.fd}case 1:case 2:return 0;case 3:return n.flags;case 4:{var i=Oe();return n.flags|=i,0}case 12:{var i=_e(),s=0;return A[i+s>>1]=2,0}case 13:case 14:return 0}return-28}catch(u){if(typeof o>\"u\"||u.name!==\"ErrnoError\")throw u;return-u.errno}}function dn(e,r){try{return R.writeStat(r,o.fstat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function vn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 21509:return n.tty?0:-59;case 21505:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var i=n.tty.ops.ioctl_tcgets(n),a=_e();C[a>>2]=i.c_iflag||0,C[a+4>>2]=i.c_oflag||0,C[a+8>>2]=i.c_cflag||0,C[a+12>>2]=i.c_lflag||0;for(var s=0;s<32;s++)G[a+s+17]=i.c_cc[s]||0;return 0}return 0}case 21510:case 21511:case 21512:return n.tty?0:-59;case 21506:case 21507:case 21508:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){for(var a=_e(),u=C[a>>2],c=C[a+4>>2],f=C[a+8>>2],d=C[a+12>>2],_=[],s=0;s<32;s++)_.push(G[a+s+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:u,c_oflag:c,c_cflag:f,c_lflag:d,c_cc:_})}return 0}case 21519:{if(!n.tty)return-59;var a=_e();return C[a>>2]=0,0}case 21520:return n.tty?-28:-59;case 21537:case 21531:{var a=_e();return o.ioctl(n,r,a)}case 21523:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var p=n.tty.ops.ioctl_tiocgwinsz(n.tty),a=_e();A[a>>1]=p[0],A[a+2>>1]=p[1]}return 0}case 21524:return n.tty?0:-59;case 21515:return n.tty?0:-59;default:return-28}}catch(v){if(typeof o>\"u\"||v.name!==\"ErrnoError\")throw v;return-v.errno}}function _n(e,r){try{return e=R.getStr(e),R.writeStat(r,o.lstat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function hn(e,r,t,n){try{r=R.getStr(r);var i=n&256,a=n&4096;return n=n&-6401,r=R.calculateAt(e,r,a),R.writeStat(t,i?o.lstat(r):o.stat(r))}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return-s.errno}}function mn(e,r,t,n){R.varargs=n;try{r=R.getStr(r),r=R.calculateAt(e,r);var i=n?Oe():0;return o.open(r,t,i).fd}catch(a){if(typeof o>\"u\"||a.name!==\"ErrnoError\")throw a;return-a.errno}}function pn(e){try{return e=R.getStr(e),o.rmdir(e),0}catch(r){if(typeof o>\"u\"||r.name!==\"ErrnoError\")throw r;return-r.errno}}function yn(e,r){try{return e=R.getStr(e),R.writeStat(r,o.stat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function gn(e,r,t){try{if(r=R.getStr(r),r=R.calculateAt(e,r),!t)o.unlink(r);else if(t===512)o.rmdir(r);else return-28;return 0}catch(n){if(typeof o>\"u\"||n.name!==\"ErrnoError\")throw n;return-n.errno}}var wn=()=>ue(\"\"),V=e=>{for(var r=\"\";;){var t=L[e++];if(!t)return r;r+=String.fromCharCode(t)}},pe={},le={},xe={},ke=class extends Error{constructor(r){super(r),this.name=\"BindingError\"}},F=e=>{throw new ke(e)};function Sn(e,r,t={}){var n=r.name;if(e||F(`type \"${n}\" must have a positive integer typeid pointer`),le.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;F(`Cannot register type '${n}' twice`)}if(le[e]=r,delete xe[e],pe.hasOwnProperty(e)){var i=pe[e];delete pe[e],i.forEach(a=>a())}}function q(e,r,t={}){return Sn(e,r,t)}var Wr=(e,r,t)=>{switch(r){case 1:return t?n=>G[n]:n=>L[n];case 2:return t?n=>A[n>>1]:n=>ve[n>>1];case 4:return t?n=>C[n>>2]:n=>m[n>>2];case 8:return t?n=>W[n>>3]:n=>Fr[n>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},bn=(e,r,t,n,i)=>{r=V(r);const a=n===0n;let s=u=>u;if(a){const u=t*8;s=c=>BigInt.asUintN(u,c),i=s(i)}q(e,{name:r,fromWireType:s,toWireType:(u,c)=>(typeof c==\"number\"&&(c=BigInt(c)),c),readValueFromPointer:Wr(r,t,!a),destructorFunction:null})},kn=(e,r,t,n)=>{r=V(r),q(e,{name:r,fromWireType:function(i){return!!i},toWireType:function(i,a){return a?t:n},readValueFromPointer:function(i){return this.fromWireType(L[i])},destructorFunction:null})},En=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),ur=e=>{function r(t){return t.$$.ptrType.registeredClass.name}F(r(e)+\" instance already deleted\")},cr=!1,Ur=e=>{},Cn=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Vr=e=>{e.count.value-=1;var r=e.count.value===0;r&&Cn(e)},Ee=e=>typeof FinalizationRegistry>\"u\"?(Ee=r=>r,e):(cr=new FinalizationRegistry(r=>{Vr(r.$$)}),Ee=r=>{var t=r.$$,n=!!t.smartPtr;if(n){var i={$$:t};cr.register(r,i,r)}return r},Ur=r=>cr.unregister(r),Ee(e)),Ge=[],Tn=()=>{for(;Ge.length;){var e=Ge.pop();e.$$.deleteScheduled=!1,e.delete()}},zr,Fn=()=>{let e=Ne.prototype;Object.assign(e,{isAliasOf(t){if(!(this instanceof Ne)||!(t instanceof Ne))return!1;var n=this.$$.ptrType.registeredClass,i=this.$$.ptr;t.$$=t.$$;for(var a=t.$$.ptrType.registeredClass,s=t.$$.ptr;n.baseClass;)i=n.upcast(i),n=n.baseClass;for(;a.baseClass;)s=a.upcast(s),a=a.baseClass;return n===a&&i===s},clone(){if(this.$$.ptr||ur(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var t=Ee(Object.create(Object.getPrototypeOf(this),{$$:{value:En(this.$$)}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||ur(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(\"Object already scheduled for deletion\"),Ur(this),Vr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||ur(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(\"Object already scheduled for deletion\"),Ge.push(this),Ge.length===1&&zr&&zr(Tn),this.$$.deleteScheduled=!0,this}});const r=Symbol.dispose;r&&(e[r]=e.delete)};function Ne(){}var Le=(e,r)=>Object.defineProperty(r,\"name\",{value:e}),Hr={},qr=(e,r,t)=>{if(e[r].overloadTable===void 0){var n=e[r];e[r]=function(...i){return e[r].overloadTable.hasOwnProperty(i.length)||F(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[i.length].apply(this,i)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},lr=(e,r,t)=>{l.hasOwnProperty(e)?((t===void 0||l[e].overloadTable!==void 0&&l[e].overloadTable[t]!==void 0)&&F(`Cannot register public name '${e}' twice`),qr(l,e,e),l[e].overloadTable.hasOwnProperty(t)&&F(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),l[e].overloadTable[t]=r):(l[e]=r,l[e].argCount=t)},Pn=48,An=57,$n=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,\"$\");var r=e.charCodeAt(0);return r>=Pn&&r<=An?`_${e}`:e};function Dn(e,r,t,n,i,a,s,u){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=s,this.downcast=u,this.pureVirtualFunctions=[]}var Be=(e,r,t)=>{for(;r!==t;)r.upcast||F(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e},fr=e=>{if(e===null)return\"null\";var r=typeof e;return r===\"object\"||r===\"array\"||r===\"function\"?e.toString():\"\"+e};function Rn(e,r){if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;r.$$||F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Be(r.$$.ptr,t,this.registeredClass);return n}function In(e,r){var t;if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,t),t):0;(!r||!r.$$)&&F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&F(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=Be(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(r.$$.smartPtr===void 0&&F(\"Passing raw pointer to smart pointer is illegal\"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:F(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var i=r.clone();t=this.rawShare(t,B.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,t)}break;default:F(\"Unsupporting sharing policy\")}return t}function Mn(e,r){if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;r.$$||F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&F(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Be(r.$$.ptr,t,this.registeredClass);return n}function We(e){return this.fromWireType(m[e>>2])}var Xr=(e,r,t)=>{if(r===t)return e;if(t.baseClass===void 0)return null;var n=Xr(e,r,t.baseClass);return n===null?null:t.downcast(n)},jn={},On=(e,r)=>{for(r===void 0&&F(\"ptr should not be undefined\");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r},xn=(e,r)=>(r=On(e,r),jn[r]),Gn=class extends Error{constructor(r){super(r),this.name=\"InternalError\"}},Ue=e=>{throw new Gn(e)},Ve=(e,r)=>{(!r.ptrType||!r.ptr)&&Ue(\"makeClassHandle requires ptr and ptrType\");var t=!!r.smartPtrType,n=!!r.smartPtr;return t!==n&&Ue(\"Both smartPtrType and smartPtr must be specified\"),r.count={value:1},Ee(Object.create(e,{$$:{value:r,writable:!0}}))};function Nn(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=xn(this.registeredClass,r);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?Ve(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ve(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=this.registeredClass.getActualType(r),s=Hr[a];if(!s)return i.call(this);var u;this.isConst?u=s.constPointerType:u=s.pointerType;var c=Xr(r,this.registeredClass,u.registeredClass);return c===null?i.call(this):this.isSmartPointer?Ve(u.registeredClass.instancePrototype,{ptrType:u,ptr:c,smartPtrType:this,smartPtr:e}):Ve(u.registeredClass.instancePrototype,{ptrType:u,ptr:c})}var Ln=()=>{Object.assign(ze.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:We,fromWireType:Nn})};function ze(e,r,t,n,i,a,s,u,c,f,d){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=u,this.rawConstructor=c,this.rawShare=f,this.rawDestructor=d,!i&&r.baseClass===void 0?n?(this.toWireType=Rn,this.destructorFunction=null):(this.toWireType=Mn,this.destructorFunction=null):this.toWireType=In}var Zr=(e,r,t)=>{l.hasOwnProperty(e)||Ue(\"Replacing nonexistent public symbol\"),l[e].overloadTable!==void 0&&t!==void 0?l[e].overloadTable[t]=r:(l[e]=r,l[e].argCount=t)},Kr=[],Yr,y=e=>{var r=Kr[e];return r||(Kr[e]=r=Yr.get(e)),r},te=(e,r,t=!1)=>{e=V(e);function n(){var a=y(r);return a}var i=n();return typeof i!=\"function\"&&F(`unknown function pointer with signature ${e}: ${r}`),i};class Bn extends Error{}var Jr=e=>{var r=gt(e),t=V(r);return J(r),t},ye=(e,r)=>{var t=[],n={};function i(a){if(!n[a]&&!le[a]){if(xe[a]){xe[a].forEach(i);return}t.push(a),n[a]=!0}}throw r.forEach(i),new Bn(`${e}: `+t.map(Jr).join([\", \"]))},oe=(e,r,t)=>{e.forEach(u=>xe[u]=r);function n(u){var c=t(u);c.length!==e.length&&Ue(\"Mismatched type converter count\");for(var f=0;f<e.length;++f)q(e[f],c[f])}var i=new Array(r.length),a=[],s=0;r.forEach((u,c)=>{le.hasOwnProperty(u)?i[c]=le[u]:(a.push(u),pe.hasOwnProperty(u)||(pe[u]=[]),pe[u].push(()=>{i[c]=le[u],++s,s===a.length&&n(i)}))}),a.length===0&&n(i)},Wn=(e,r,t,n,i,a,s,u,c,f,d,_,p)=>{d=V(d),a=te(i,a),u&&=te(s,u),f&&=te(c,f),p=te(_,p);var v=$n(d);lr(v,function(){ye(`Cannot construct ${d} due to unbound types`,[n])}),oe([e,r,t],n?[n]:[],h=>{h=h[0];var k,$;n?(k=h.registeredClass,$=k.instancePrototype):$=Ne.prototype;var T=Le(d,function(...I){if(Object.getPrototypeOf(this)!==x)throw new ke(`Use 'new' to construct ${d}`);if(P.constructor_body===void 0)throw new ke(`${d} has no accessible constructor`);var se=P.constructor_body[I.length];if(se===void 0)throw new ke(`Tried to invoke ctor of ${d} with invalid number of parameters (${I.length}) - expected (${Object.keys(P.constructor_body).toString()}) parameters instead!`);return se.apply(this,I)}),x=Object.create($,{constructor:{value:T}});T.prototype=x;var P=new Dn(d,T,x,p,k,a,u,f);P.baseClass&&(P.baseClass.__derivedClasses??=[],P.baseClass.__derivedClasses.push(P));var K=new ze(d,P,!0,!1,!1),z=new ze(d+\"*\",P,!1,!1,!1),b=new ze(d+\" const*\",P,!1,!0,!1);return Hr[e]={pointerType:z,constPointerType:b},Zr(v,T),[K,z,b]})},dr=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(m[r+n*4>>2]);return t},vr=e=>{for(;e.length;){var r=e.pop(),t=e.pop();t(r)}};function Qr(e){for(var r=1;r<e.length;++r)if(e[r]!==null&&e[r].destructorFunction===void 0)return!0;return!1}function Un(e,r,t,n){var i=Qr(e),a=e.length-2,s=[],u=[\"fn\"];r&&u.push(\"thisWired\");for(var c=0;c<a;++c)s.push(`arg${c}`),u.push(`arg${c}Wired`);s=s.join(\",\"),u=u.join(\",\");var f=`return function (${s}) {\n`;i&&(f+=`var destructors = [];\n`);var d=i?\"destructors\":\"null\",_=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"fromRetWire\",\"toClassParamWire\"];r&&(f+=`var thisWired = toClassParamWire(${d}, this);\n`);for(var c=0;c<a;++c){var p=`toArg${c}Wire`;f+=`var arg${c}Wired = ${p}(${d}, arg${c});\n`,_.push(p)}f+=(t||n?\"var rv = \":\"\")+`invoker(${u});\n`;var v=t?\"rv\":\"\";if(i)f+=`runDestructors(destructors);\n`;else for(var c=r?1:2;c<e.length;++c){var h=c===1?\"thisWired\":\"arg\"+(c-2)+\"Wired\";e[c].destructorFunction!==null&&(f+=`${h}_dtor(${h});\n`,_.push(`${h}_dtor`))}return t&&(f+=`var ret = fromRetWire(rv);\nreturn ret;\n`),f+=`}\n`,new Function(_,f)}function _r(e,r,t,n,i,a){var s=r.length;s<2&&F(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");for(var u=r[1]!==null&&t!==null,c=Qr(r),f=!r[0].isVoid,d=s-2,_=r[0],p=r[1],v=[e,F,n,i,vr,_.fromWireType.bind(_),p?.toWireType.bind(p)],h=2;h<s;++h){var k=r[h];v.push(k.toWireType.bind(k))}if(!c)for(var h=u?1:2;h<r.length;++h)r[h].destructorFunction!==null&&v.push(r[h].destructorFunction);var T=Un(r,u,f,a)(...v);return Le(e,T)}var Vn=(e,r,t,n,i,a)=>{var s=dr(r,t);i=te(n,i);var u=[a],c=[];oe([],[e],f=>{f=f[0];var d=`constructor ${f.name}`;if(f.registeredClass.constructor_body===void 0&&(f.registeredClass.constructor_body=[]),f.registeredClass.constructor_body[r-1]!==void 0)throw new ke(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${f.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return f.registeredClass.constructor_body[r-1]=()=>{ye(`Cannot construct ${f.name} due to unbound types`,s)},oe([],s,_=>(_.splice(1,0,null),f.registeredClass.constructor_body[r-1]=_r(d,_,null,i,a),[])),[]})},et=e=>{e=e.trim();const r=e.indexOf(\"(\");return r===-1?e:e.slice(0,r)},zn=(e,r,t,n,i,a,s,u,c,f)=>{var d=dr(t,n);r=V(r),r=et(r),a=te(i,a,c),oe([],[e],_=>{_=_[0];var p=`${_.name}.${r}`;r.startsWith(\"@@\")&&(r=Symbol[r.substring(2)]),u&&_.registeredClass.pureVirtualFunctions.push(r);function v(){ye(`Cannot call ${p} due to unbound types`,d)}var h=_.registeredClass.instancePrototype,k=h[r];return k===void 0||k.overloadTable===void 0&&k.className!==_.name&&k.argCount===t-2?(v.argCount=t-2,v.className=_.name,h[r]=v):(qr(h,r,p),h[r].overloadTable[t-2]=v),oe([],d,$=>{var T=_r(p,$,_,a,s,c);return h[r].overloadTable===void 0?(T.argCount=t-2,h[r]=T):h[r].overloadTable[t-2]=T,[]}),[]})},rt=(e,r,t)=>(e instanceof Object||F(`${t} with invalid \"this\": ${e}`),e instanceof r.registeredClass.constructor||F(`${t} incompatible with \"this\" of type ${e.constructor.name}`),e.$$.ptr||F(`cannot call emscripten binding method ${t} on deleted object`),Be(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)),Hn=(e,r,t,n,i,a,s,u,c,f)=>{r=V(r),i=te(n,i),oe([],[e],d=>{d=d[0];var _=`${d.name}.${r}`,p={get(){ye(`Cannot access ${_} due to unbound types`,[t,s])},enumerable:!0,configurable:!0};return c?p.set=()=>ye(`Cannot access ${_} due to unbound types`,[t,s]):p.set=v=>F(_+\" is a read-only property\"),Object.defineProperty(d.registeredClass.instancePrototype,r,p),oe([],c?[t,s]:[t],v=>{var h=v[0],k={get(){var T=rt(this,d,_+\" getter\");return h.fromWireType(i(a,T))},enumerable:!0};if(c){c=te(u,c);var $=v[1];k.set=function(T){var x=rt(this,d,_+\" setter\"),P=[];c(f,x,$.toWireType(P,T)),vr(P)}}return Object.defineProperty(d.registeredClass.instancePrototype,r,k),[]}),[]})},tt=[],fe=[0,1,,1,null,1,!0,1,!1,1],hr=e=>{e>9&&--fe[e+1]===0&&(fe[e]=void 0,tt.push(e))},B={toValue:e=>(e||F(`Cannot use deleted val. handle = ${e}`),fe[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=tt.pop()||fe.length;return fe[r]=e,fe[r+1]=1,r}}}},nt={name:\"emscripten::val\",fromWireType:e=>{var r=B.toValue(e);return hr(e),r},toWireType:(e,r)=>B.toHandle(r),readValueFromPointer:We,destructorFunction:null},qn=e=>q(e,nt),Xn=(e,r,t)=>{switch(r){case 1:return t?function(n){return this.fromWireType(G[n])}:function(n){return this.fromWireType(L[n])};case 2:return t?function(n){return this.fromWireType(A[n>>1])}:function(n){return this.fromWireType(ve[n>>1])};case 4:return t?function(n){return this.fromWireType(C[n>>2])}:function(n){return this.fromWireType(m[n>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Zn=(e,r,t,n)=>{r=V(r);function i(){}i.values={},q(e,{name:r,constructor:i,fromWireType:function(a){return this.constructor.values[a]},toWireType:(a,s)=>s.value,readValueFromPointer:Xn(r,t,n),destructorFunction:null}),lr(r,i)},it=(e,r)=>{var t=le[e];return t===void 0&&F(`${r} has unknown type ${Jr(e)}`),t},Kn=(e,r,t)=>{var n=it(e,\"enum\");r=V(r);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Le(`${n.name}_${r}`,function(){})}});i.values[t]=a,i[r]=a},Yn=(e,r)=>{switch(r){case 4:return function(t){return this.fromWireType(De[t>>2])};case 8:return function(t){return this.fromWireType(Re[t>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},Jn=(e,r,t)=>{r=V(r),q(e,{name:r,fromWireType:n=>n,toWireType:(n,i)=>i,readValueFromPointer:Yn(r,t),destructorFunction:null})},Qn=(e,r,t,n,i,a,s,u)=>{var c=dr(r,t);e=V(e),e=et(e),i=te(n,i,s),lr(e,function(){ye(`Cannot call ${e} due to unbound types`,c)},r-1),oe([],c,f=>{var d=[f[0],null].concat(f.slice(1));return Zr(e,_r(e,d,null,i,a,s),r-1),[]})},ei=(e,r,t,n,i)=>{r=V(r);const a=n===0;let s=c=>c;if(a){var u=32-8*t;s=c=>c<<u>>>u,i=s(i)}q(e,{name:r,fromWireType:s,toWireType:(c,f)=>f,readValueFromPointer:Wr(r,t,n!==0),destructorFunction:null})},ri=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],i=n[r];function a(s){var u=m[s>>2],c=m[s+4>>2];return new i(G.buffer,c,u)}t=V(t),q(e,{name:t,fromWireType:a,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},ti=Object.assign({optional:!0},nt),ni=(e,r)=>{q(e,ti)},O=(e,r,t)=>Or(e,L,r,t),ii=(e,r)=>{r=V(r);var t=!0;q(e,{name:r,fromWireType(n){var i=m[n>>2],a=n+4,s;if(t)s=M(a,i,!0);else{s=\"\";for(var u=0;u<i;++u)s+=String.fromCharCode(L[a+u])}return J(n),s},toWireType(n,i){i instanceof ArrayBuffer&&(i=new Uint8Array(i));var a,s=typeof i==\"string\";s||ArrayBuffer.isView(i)&&i.BYTES_PER_ELEMENT==1||F(\"Cannot pass non-string to std::string\"),t&&s?a=Y(i):a=i.length;var u=Z(4+a+1),c=u+4;if(m[u>>2]=a,s)if(t)O(i,c,a+1);else for(var f=0;f<a;++f){var d=i.charCodeAt(f);d>255&&(J(u),F(\"String has UTF-16 code units that do not fit in 8 bits\")),L[c+f]=d}else L.set(i,c);return n!==null&&n.push(J,u),u},readValueFromPointer:We,destructorFunction(n){J(n)}})},at=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0,ai=(e,r,t)=>{var n=e>>1,i=jr(ve,n,r/2,t);if(i-n>16&&at)return at.decode(ve.subarray(n,i));for(var a=\"\",s=n;s<i;++s){var u=ve[s];a+=String.fromCharCode(u)}return a},oi=(e,r,t)=>{if(t??=2147483647,t<2)return 0;t-=2;for(var n=r,i=t<e.length*2?t/2:e.length,a=0;a<i;++a){var s=e.charCodeAt(a);A[r>>1]=s,r+=2}return A[r>>1]=0,r-n},si=e=>e.length*2,ui=(e,r,t)=>{for(var n=\"\",i=e>>2,a=0;!(a>=r/4);a++){var s=m[i+a];if(!s&&!t)break;n+=String.fromCodePoint(s)}return n},ci=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,i=n+t-4,a=0;a<e.length;++a){var s=e.codePointAt(a);if(s>65535&&a++,C[r>>2]=s,r+=4,r+4>i)break}return C[r>>2]=0,r-n},li=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.codePointAt(t);n>65535&&t++,r+=4}return r},fi=(e,r,t)=>{t=V(t);var n,i,a;r===2?(n=ai,i=oi,a=si):(n=ui,i=ci,a=li),q(e,{name:t,fromWireType:s=>{var u=m[s>>2],c=n(s+4,u*r,!0);return J(s),c},toWireType:(s,u)=>{typeof u!=\"string\"&&F(`Cannot pass non-string to C++ string type ${t}`);var c=a(u),f=Z(4+c+r);return m[f>>2]=c/r,i(u,f+4,c+r),s!==null&&s.push(J,f),f},readValueFromPointer:We,destructorFunction(s){J(s)}})},di=(e,r)=>{r=V(r),q(e,{isVoid:!0,name:r,fromWireType:()=>{},toWireType:(t,n)=>{}})},ot=0,vi=()=>{rr=!1,ot=0},mr=[],_i=e=>{var r=mr.length;return mr.push(e),r},hi=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=it(m[r+n*4>>2],`parameter ${n}`);return t},mi=(e,r,t)=>{var n=[],i=e(n,t);return n.length&&(m[r>>2]=B.toHandle(n)),i},pi={},pr=e=>{var r=pi[e];return r===void 0?V(e):r},yi=(e,r,t)=>{var n=8,[i,...a]=hi(e,r),s=i.toWireType.bind(i),u=a.map(v=>v.readValueFromPointer.bind(v));e--;var c={toValue:B.toValue},f=u.map((v,h)=>{var k=`argFromPtr${h}`;return c[k]=v,`${k}(args${h?\"+\"+h*n:\"\"})`}),d;switch(t){case 0:d=\"toValue(handle)\";break;case 2:d=\"new (toValue(handle))\";break;case 3:d=\"\";break;case 1:c.getStringOrSymbol=pr,d=\"toValue(handle)[getStringOrSymbol(methodName)]\";break}d+=`(${f})`,i.isVoid||(c.toReturnWire=s,c.emval_returnValue=mi,d=`return emval_returnValue(toReturnWire, destructorsRef, ${d})`),d=`return function (handle, methodName, destructorsRef, args) {\n ${d}\n }`;var _=new Function(Object.keys(c),d)(...Object.values(c)),p=`methodCaller<(${a.map(v=>v.name)}) => ${i.name}>`;return _i(Le(p,_))},st=()=>globalThis,gi=e=>e===0?B.toHandle(st()):(e=pr(e),B.toHandle(st()[e])),wi=(e,r)=>(e=B.toValue(e),r=B.toValue(r),B.toHandle(e[r])),Si=e=>{e>9&&(fe[e+1]+=1)},bi=(e,r,t,n,i)=>mr[e](r,t,n,i),ki=()=>B.toHandle([]),Ei=e=>B.toHandle(pr(e)),Ci=e=>{var r=B.toValue(e);vr(r),hr(e)},Ti=(e,r,t)=>{e=B.toValue(e),r=B.toValue(r),t=B.toValue(t),e[r]=t},Fi=9007199254740992,Pi=-9007199254740992,He=e=>e<Pi||e>Fi?NaN:Number(e);function Ai(e,r){e=He(e);var t=new Date(e*1e3);C[r>>2]=t.getUTCSeconds(),C[r+4>>2]=t.getUTCMinutes(),C[r+8>>2]=t.getUTCHours(),C[r+12>>2]=t.getUTCDate(),C[r+16>>2]=t.getUTCMonth(),C[r+20>>2]=t.getUTCFullYear()-1900,C[r+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),i=(t.getTime()-n)/(1e3*60*60*24)|0;C[r+28>>2]=i}var $i=e=>e%4===0&&(e%100!==0||e%400===0),Di=[0,31,60,91,121,152,182,213,244,274,305,335],Ri=[0,31,59,90,120,151,181,212,243,273,304,334],Ii=e=>{var r=$i(e.getFullYear()),t=r?Di:Ri,n=t[e.getMonth()]+e.getDate()-1;return n};function Mi(e,r){e=He(e);var t=new Date(e*1e3);C[r>>2]=t.getSeconds(),C[r+4>>2]=t.getMinutes(),C[r+8>>2]=t.getHours(),C[r+12>>2]=t.getDate(),C[r+16>>2]=t.getMonth(),C[r+20>>2]=t.getFullYear()-1900,C[r+24>>2]=t.getDay();var n=Ii(t)|0;C[r+28>>2]=n,C[r+36>>2]=-(t.getTimezoneOffset()*60);var i=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=i.getTimezoneOffset(),u=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;C[r+32>>2]=u}var Ce={},ut=e=>{if(e instanceof $r||e==\"unwind\")return Ae;Er(1,e)},ct=()=>rr||ot>0,lt=e=>{Ae=e,ct()||(l.onExit?.(e),Pe=!0),Er(e,new $r(e))},ji=(e,r)=>{Ae=e,lt(e)},Oi=ji,xi=()=>{if(!ct())try{Oi(Ae)}catch(e){ut(e)}},ft=e=>{if(!Pe)try{e(),xi()}catch(r){ut(r)}},yr=()=>performance.now(),Gi=(e,r)=>{if(Ce[e]&&(clearTimeout(Ce[e].id),delete Ce[e]),!r)return 0;var t=setTimeout(()=>{delete Ce[e],ft(()=>wt(e,yr()))},r);return Ce[e]={id:t,timeout_ms:r},0},Ni=(e,r,t,n)=>{var i=new Date().getFullYear(),a=new Date(i,0,1),s=new Date(i,6,1),u=a.getTimezoneOffset(),c=s.getTimezoneOffset(),f=Math.max(u,c);m[e>>2]=f*60,C[r>>2]=+(u!=c);var d=v=>{var h=v>=0?\"-\":\"+\",k=Math.abs(v),$=String(Math.floor(k/60)).padStart(2,\"0\"),T=String(k%60).padStart(2,\"0\");return`UTC${h}${$}${T}`},_=d(u),p=d(c);c<u?(O(_,t,17),O(p,n,17)):(O(_,n,17),O(p,t,17))},dt=()=>Date.now(),Li=1,Bi=e=>e>=0&&e<=3;function Wi(e,r,t){if(r=He(r),!Bi(e))return 28;var n;if(e===0)n=dt();else if(Li)n=yr();else return 52;var i=Math.round(n*1e3*1e3);return W[t>>3]=BigInt(i),0}var Ui=e=>{console.warn(M(e))},Vi=(e,r)=>ee(M(e,r));function zi(e){if(U.xhrs.has(e)){var r=U.xhrs.get(e);U.xhrs.free(e),r.readyState>0&&r.readyState<4&&r.abort()}}var vt=()=>2147483648,Hi=()=>vt(),qi=()=>!ge,Xi=(e,r)=>we(M(e,r)),Zi=(e,r)=>Math.ceil(e/r)*r,Ki=e=>{var r=$e.buffer.byteLength,t=(e-r+65535)/65536|0;try{return $e.grow(t),Ar(),1}catch{}},Yi=e=>{var r=L.length;e>>>=0;var t=vt();if(e>t)return!1;for(var n=1;n<=4;n*=2){var i=r*(1+.2/n);i=Math.min(i,e+100663296);var a=Math.min(t,Zi(Math.max(e,i),65536)),s=Ki(a);if(s)return!0}return!1};class Ji{allocated=[void 0];freelist=[];get(r){return this.allocated[r]}has(r){return this.allocated[r]!==void 0}allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t}free(r){this.allocated[r]=void 0,this.freelist.push(r)}}var U={async openDatabase(e,r){return new Promise((t,n)=>{try{var i=indexedDB.open(e,r)}catch(a){return n(a)}i.onupgradeneeded=a=>{var s=a.target.result;s.objectStoreNames.contains(\"FILES\")&&s.deleteObjectStore(\"FILES\"),s.createObjectStore(\"FILES\")},i.onsuccess=a=>t(a.target.result),i.onerror=n})},async init(){U.xhrs=new Ji,Nr(\"library_fetch_init\");try{var e=await U.openDatabase(\"emscripten_filesystem\",1);U.dbInstance=e}catch{U.dbInstance=!1}finally{Gr(\"library_fetch_init\")}}};function gr(e,r,t,n,i){var a=m[e+8>>2];if(!a){t(e,\"no url specified!\");return}var s=M(a),u=e+108,c=M(u+0);c||=\"GET\";var f=m[u+56>>2],d=m[u+68>>2],_=m[u+72>>2],p=m[u+76>>2],v=m[u+80>>2],h=m[u+84>>2],k=m[u+88>>2],$=m[u+52>>2],T=!!($&1),x=!!($&2),P=!!($&64),K=d?M(d):void 0,z=_?M(_):void 0,b=new XMLHttpRequest;if(b.withCredentials=!!L[u+60],b.open(c,s,!P,K,z),P||(b.timeout=f),b.url_=s,b.responseType=\"arraybuffer\",v){var I=M(v);b.overrideMimeType(I)}if(p)for(;;){var se=m[p>>2];if(!se)break;var Xe=m[p+4>>2];if(!Xe)break;p+=8;var N=M(se),ne=M(Xe);b.setRequestHeader(N,ne)}var Q=U.xhrs.allocate(b);m[e>>2]=Q;var Sr=h&&k?L.slice(h,h+k):null;function Ze(){var j=0,H=0;b.response&&T&&m[e+12>>2]===0&&(H=b.response.byteLength),H>0&&(j=Z(H),L.set(new Uint8Array(b.response),j)),m[e+12>>2]=j,X(e+16,H),X(e+24,0);var ie=b.response?b.response.byteLength:0;if(ie&&X(e+32,ie),A[e+40>>1]=b.readyState,A[e+42>>1]=b.status,b.statusText&&O(b.statusText,e+44,64),P){var Ke=_t(b.responseURL);m[e+200>>2]=Ke}}b.onload=j=>{U.xhrs.has(Q)&&(Ze(),b.status>=200&&b.status<300?r(e,b,j):t(e,j))},b.onerror=j=>{U.xhrs.has(Q)&&(Ze(),t(e,j))},b.ontimeout=j=>{U.xhrs.has(Q)&&t(e,j)},b.onprogress=j=>{if(U.xhrs.has(Q)){var H=T&&x&&b.response?b.response.byteLength:0,ie=0;H>0&&T&&x&&(ie=Z(H),L.set(new Uint8Array(b.response),ie)),m[e+12>>2]=ie,X(e+16,H),X(e+24,j.loaded-H),X(e+32,j.total),A[e+40>>1]=b.readyState;var Ke=b.status;b.readyState>=3&&b.status===0&&j.loaded>0&&(Ke=200),A[e+42>>1]=Ke,b.statusText&&O(b.statusText,e+44,64),n(e,j),J(ie)}},b.onreadystatechange=j=>{if(U.xhrs.has(Q)){if(A[e+40>>1]=b.readyState,b.readyState>=2&&(A[e+42>>1]=b.status),!P&&b.readyState===2&&b.responseURL.length>0){var H=_t(b.responseURL);m[e+200>>2]=H}i(e,j)}};try{b.send(Sr)}catch(j){t(e,j)}}var X=(e,r)=>{m[e>>2]=r;var t=m[e>>2];m[e+4>>2]=(r-t)/4294967296},_t=e=>{var r=Y(e)+1,t=Z(r);return t&&O(e,t,r),t};function ht(e,r,t,n,i){if(!e){i(r,0,\"IndexedDB not available!\");return}var a=r+108,s=m[a+64>>2];s||=m[r+8>>2];var u=M(s);try{var c=e.transaction([\"FILES\"],\"readwrite\"),f=c.objectStore(\"FILES\"),d=f.put(t,u);d.onsuccess=_=>{A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),n(r,0,u)},d.onerror=_=>{A[r+40>>1]=4,A[r+42>>1]=413,O(\"Payload Too Large\",r+44,64),i(r,0,_)}}catch(_){i(r,0,_)}}function Qi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var i=r+108,a=m[i+64>>2];a||=m[r+8>>2];var s=M(a);try{var u=e.transaction([\"FILES\"],\"readonly\"),c=u.objectStore(\"FILES\"),f=c.get(s);f.onsuccess=d=>{if(d.target.result){var _=d.target.result,p=_.byteLength||_.length,v=Z(p);L.set(new Uint8Array(_),v),m[r+12>>2]=v,X(r+16,p),X(r+24,0),X(r+32,p),A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),t(r,0,_)}else A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,\"no data\")},f.onerror=d=>{A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,d)}}catch(d){n(r,0,d)}}function ea(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var i=r+108,a=m[i+64>>2];a||=m[r+8>>2];var s=M(a);try{var u=e.transaction([\"FILES\"],\"readwrite\"),c=u.objectStore(\"FILES\"),f=c.delete(s);f.onsuccess=d=>{var _=d.target.result;m[r+12>>2]=0,X(r+16,0),X(r+24,0),X(r+32,0),A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),t(r,0,_)},f.onerror=d=>{A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,d)}}catch(d){n(r,0,d)}}function ra(e,r,t,n,i){var a=e+108,s=m[a+36>>2],u=m[a+40>>2],c=m[a+44>>2],f=m[a+48>>2],d=m[a+52>>2],_=!!(d&64);function p(N){_?N():ft(N)}var v=(N,ne,Q)=>{p(()=>{s?y(s)(N):r?.(N)})},h=(N,ne)=>{p(()=>{c?y(c)(N):n?.(N)})},k=(N,ne)=>{p(()=>{u?y(u)(N):t?.(N)})},$=(N,ne)=>{p(()=>{f?y(f)(N):i?.(N)})},T=(N,ne,Q)=>{gr(N,v,k,h,$)},x=(N,ne,Q)=>{var Sr=(j,H,ie)=>{p(()=>{s?y(s)(j):r?.(j)})},Ze=(j,H,ie)=>{p(()=>{s?y(s)(j):r?.(j)})};ht(U.dbInstance,N,ne.response,Sr,Ze)},P=(N,ne,Q)=>{gr(N,x,k,h,$)},K=M(a+0),z=!!(d&16),b=!!(d&4),I=!!(d&32);if(K===\"EM_IDB_STORE\"){var se=m[a+84>>2],Xe=m[a+88>>2];ht(U.dbInstance,e,L.slice(se,se+Xe),v,k)}else if(K===\"EM_IDB_DELETE\")ea(U.dbInstance,e,v,k);else if(!z)Qi(U.dbInstance,e,v,I?k:b?P:T);else if(!I)gr(e,b?x:v,k,h,$);else return 0;return e}var qe={},ta=()=>kr||\"./this.program\",Te=()=>{if(!Te.strings){var e=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\",r={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:e,_:ta()};for(var t in qe)qe[t]===void 0?delete r[t]:r[t]=qe[t];var n=[];for(var t in r)n.push(`${t}=${r[t]}`);Te.strings=n}return Te.strings},na=(e,r)=>{var t=0,n=0;for(var i of Te()){var a=r+t;m[e+n>>2]=a,t+=O(i,a,1/0)+1,n+=4}return 0},ia=(e,r)=>{var t=Te();m[e>>2]=t.length;var n=0;for(var i of t)n+=Y(i)+1;return m[r>>2]=n,0};function aa(e){try{var r=R.getStreamFromFD(e);return o.close(r),0}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}function oa(e,r){try{var t=0,n=0,i=0,a=R.getStreamFromFD(e),s=a.tty?2:o.isDir(a.mode)?3:o.isLink(a.mode)?7:4;return G[r]=s,A[r+2>>1]=i,W[r+8>>3]=BigInt(t),W[r+16>>3]=BigInt(n),0}catch(u){if(typeof o>\"u\"||u.name!==\"ErrnoError\")throw u;return u.errno}}var sa=(e,r,t,n)=>{for(var i=0,a=0;a<t;a++){var s=m[r>>2],u=m[r+4>>2];r+=8;var c=o.read(e,G,s,u,n);if(c<0)return-1;if(i+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return i};function ua(e,r,t,n){try{var i=R.getStreamFromFD(e),a=sa(i,r,t);return m[n>>2]=a,0}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return s.errno}}function ca(e,r,t,n){r=He(r);try{if(isNaN(r))return 61;var i=R.getStreamFromFD(e);return o.llseek(i,r,t),W[n>>3]=BigInt(i.position),i.getdents&&r===0&&t===0&&(i.getdents=null),0}catch(a){if(typeof o>\"u\"||a.name!==\"ErrnoError\")throw a;return a.errno}}var la=(e,r,t,n)=>{for(var i=0,a=0;a<t;a++){var s=m[r>>2],u=m[r+4>>2];r+=8;var c=o.write(e,G,s,u,n);if(c<0)return-1;if(i+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return i};function fa(e,r,t,n){try{var i=R.getStreamFromFD(e),a=la(i,r,t);return m[n>>2]=a,0}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return s.errno}}var da=e=>e;function va(e,r){try{return ir(L.subarray(e,e+r)),0}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}var pu=e=>(e>>>=0,\"0x\"+e.toString(16).padStart(8,\"0\")),mt=e=>{var r=l[\"_\"+e];return r},_a=(e,r)=>{G.set(e,r)},pt=e=>kt(e),ha=e=>{var r=Y(e)+1,t=pt(r);return O(e,t,r),t},yt=(e,r,t,n,i)=>{var a={string:h=>{var k=0;return h!=null&&h!==0&&(k=ha(h)),k},array:h=>{var k=pt(h.length);return _a(h,k),k}};function s(h){return r===\"string\"?M(h):r===\"boolean\"?!!h:h}var u=mt(e),c=[],f=0;if(n)for(var d=0;d<n.length;d++){var _=a[t[d]];_?(f===0&&(f=S()),c[d]=_(n[d])):c[d]=n[d]}var p=u(...c);function v(h){return f!==0&&w(f),s(h)}return p=v(p),p},ma=(e,r,t,n)=>{var i=!t||t.every(s=>s===\"number\"||s===\"boolean\"),a=r!==\"string\";return a&&i&&!n?mt(e):(...s)=>yt(e,r,t,s,n)};if(o.createPreloadedFile=ln,o.preloadFile=Br,o.staticInit(),Fn(),Ln(),U.init(),l.noExitRuntime&&(rr=l.noExitRuntime),l.preloadPlugins&&(Lr=l.preloadPlugins),l.print&&(we=l.print),l.printErr&&(ee=l.printErr),l.wasmBinary&&(Se=l.wasmBinary),l.arguments&&(Rt=l.arguments),l.thisProgram&&(kr=l.thisProgram),l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.shift()();l.ENV=qe,l.ccall=yt,l.cwrap=ma,l.lengthBytesUTF8=Y,l.stringToUTF8=O;function pa(e){if(typeof l.locateFile==\"function\")try{const r=l.locateFile(M(e));if(r){const t=Y(r)+1,n=Z(t);if(n)return O(r,n,t),n}}catch(r){console.warn(\"Module.locateFile failed:\",r)}return 0}function ya(e){try{if(typeof l<\"u\"&&l.workerUrl){var r=l.workerUrl,t=Y(r)+1,n=Z(t);return O(r,n,t),n}}catch(i){console.warn(\"Failed to read Module.workerUrl:\",i)}if(e){var t=Y(M(e))+1,n=Z(t);return O(M(e),n,t),n}return 0}function ga(){return navigator.hardwareConcurrency||1}function wa(e){l._aquaLiveTransports||(l._aquaLiveTransports=new Set),l._aquaLiveTransports.add(e),queueMicrotask(function(){l._aquaLiveTransports&&l._aquaLiveTransports.has(e)&&l._aquaDrainDeferredCompletions(e)})}function Sa(e){l._aquaLiveTransports&&l._aquaLiveTransports.delete(e)}function ba(e,r){if(!l.createDeserializeWorker)return console.error(\"createDeserializeWorker not available - worker-bridge.ts not loaded\"),0;const t=M(e);return l.createDeserializeWorker(t,l,r)?1:0}function ka(e,r,t,n,i){if(!l.submitToWorker)return console.error(\"submitToWorker not available - worker-bridge.ts not loaded\"),0;try{const a=t,s=n,u=new ArrayBuffer(s);return new Uint8Array(u).set(l.HEAPU8.subarray(a,a+s)),l.submitToWorker(e,r,u,i)?1:0}catch(a){return console.error(\"submitToWorker failed:\",a),0}}function Ea(e,r){l.cancelRequest&&l.cancelRequest(e,r)}function yu(){return l.isWorkerReady&&l.isWorkerReady()?1:0}function Ca(){l.terminateWorker&&l.terminateWorker()}function Ta(e,r){typeof globalThis.Sentry<\"u\"&&typeof globalThis.Sentry.captureException==\"function\"&&globalThis.Sentry.captureException(new Error(M(e,r)))}function Fa(e){const r=M(e);try{const t=new URL(r)}catch{return 0}return 1}function Pa(e,r){const t=M(e);let n;try{n=new URL(t)}catch(u){return console.error(`Failed to parse URL ${t} due to error : ${u}`),0}function i(u){return u>>>0}function a(u){const c=Y(u)+1,f=Z(c);return O(u,f,c),i(f)}let s=i(r)>>2;return m[s]=a(n.origin),m[s+1]=a(n.pathname.substring(1)),m[s+2]=a(n.search.substring(1)),m[s+3]=a(n.hash.substring(1)),1}function Aa(e){const r=M(e),t=encodeURIComponent(r),n=Y(t)+1,i=Z(n);return O(t,i,n),i>>>0}function $a(e){l.__mirisPrivatePromiseTracker||(l.__mirisPrivatePromiseTracker=new Map);let r,t;const n=new Promise(function(i,a){r=i,t=a});return l.__mirisPrivatePromiseTracker.set(e,{resolve:r,reject:t}),B.toHandle(n)}function Da(e,r){const t=l.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}const{resolve:n}=t.get(e);if(!n){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}t.delete(e),n(B.toValue(r))}function gu(e,r){const t=l.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}const{reject:n}=t.get(e);if(!n){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}t.delete(e),n(B.toValue(r))}var gt,Ra,Ia,Ma,ja,Oa,xa,Ga,Na,La,Ba,Wa,Ua,Va,za,Ha,qa,Xa,Za,Ka,Ya,Ja,Qa,eo,ro,to,no,io,ao,oo,so,uo,co,lo,fo,vo,_o,ho,mo,po,yo,go,wo,So,bo,ko,Eo,Co,To,Fo,Po,Ao,$o,Do,Ro,Io,Mo,jo,Oo,xo,Go,No,Lo,Bo,Wo,Uo,Vo,zo,Ho,qo,Xo,Zo,Ko,Yo,Jo,Qo,es,rs,ts,ns,Z,J,is,as,wt,g,St,bt,kt,Et,Ct,Tt,Ft,Pt;function os(e){gt=e.__getTypeName,l._CreateAquaContext=Ra=e.CreateAquaContext,l._BeginFrame=Ia=e.BeginFrame,l._DestroyAquaContext=Ma=e.DestroyAquaContext,l._SetMaxRequestCacheSize=ja=e.SetMaxRequestCacheSize,l._TriggerTestError=Oa=e.TriggerTestError,l._CreateClientForContext=xa=e.CreateClientForContext,l._CreateClient=Ga=e.CreateClient,l._DestroyClient=Na=e.DestroyClient,l._ClearScene=La=e.ClearScene,l._WaitForSceneExecution=Ba=e.WaitForSceneExecution,l._SetPersistentDataDirectory=Wa=e.SetPersistentDataDirectory,l._SetClientSpatialFormat=Ua=e.SetClientSpatialFormat,l._SetAssetViewerKey=Va=e.SetAssetViewerKey,l._PrefetchContent=za=e.PrefetchContent,l._PrintSceneObjectHierarchy=Ha=e.PrintSceneObjectHierarchy,l._CancelAllSceneExecution=qa=e.CancelAllSceneExecution,l._AddStream=Xa=e.AddStream,l._AddStreamById=Za=e.AddStreamById,l._RemoveStream=Ka=e.RemoveStream,l._SetStreamFetchMode=Ya=e.SetStreamFetchMode,l._GetStreamFetchMode=Ja=e.GetStreamFetchMode,l._GetStreamStatus=Qa=e.GetStreamStatus,l._UpdateSceneExecution=eo=e.UpdateSceneExecution,l._RecordFrameTime=ro=e.RecordFrameTime,l._TakeRenderRequired=to=e.TakeRenderRequired,l._LockScene=no=e.LockScene,l._UnlockScene=io=e.UnlockScene,l._SetMainCameraTransform=ao=e.SetMainCameraTransform,l._SetMainCameraViewFrustum=oo=e.SetMainCameraViewFrustum,l._SetSceneObjectTransform=so=e.SetSceneObjectTransform,l._SetRuntimeSettings=uo=e.SetRuntimeSettings,l._SetOctreeSolverMode=co=e.SetOctreeSolverMode,l._SetBudgetControllerType=lo=e.SetBudgetControllerType,l._SetMaxCacheSize=fo=e.SetMaxCacheSize,l._SetPreferSharkEncodingProfiles=vo=e.SetPreferSharkEncodingProfiles,l._HasFeature=_o=e.HasFeature,l._GetFeatureVersion=ho=e.GetFeatureVersion,l._GetFeatureState=mo=e.GetFeatureState,l._GetAssetFormatVersion=po=e.GetAssetFormatVersion,l._GetSceneChangesCounts=yo=e.GetSceneChangesCounts,l._GetSceneChanges=go=e.GetSceneChanges,l._GetSceneRootObjectId=wo=e.GetSceneRootObjectId,l._GetSceneObjectChildrenCount=So=e.GetSceneObjectChildrenCount,l._GetSceneObjectChildren=bo=e.GetSceneObjectChildren,l._GetSceneObjectType=ko=e.GetSceneObjectType,l._GetDrawnOctantMask=Eo=e.GetDrawnOctantMask,l._GetDrMapLadderRoughnessLevels=Co=e.GetDrMapLadderRoughnessLevels,l._LogOctreeStats=To=e.LogOctreeStats,l._GetSceneObjectParent=Fo=e.GetSceneObjectParent,l._IsSceneObjectAncestorOf=Po=e.IsSceneObjectAncestorOf,l._GetSceneObjectName=Ao=e.GetSceneObjectName,l._GetAttributeCount=$o=e.GetAttributeCount,l._HasAttribute=Do=e.HasAttribute,l._GetAttribute=Ro=e.GetAttribute,l._TakeAttribute=Io=e.TakeAttribute,l._GetBufferHash=Mo=e.GetBufferHash,l._GetWorldBoundingBox=jo=e.GetWorldBoundingBox,l._GetLocalBoundingBox=Oo=e.GetLocalBoundingBox,l._MirisGetLocalTransform=xo=e.MirisGetLocalTransform,l._MirisGetWorldTransform=Go=e.MirisGetWorldTransform,l._MirisGetTransformRelativeToAncestor=No=e.MirisGetTransformRelativeToAncestor,l._GetBoundingBoxRelativeToAncestor=Lo=e.GetBoundingBoxRelativeToAncestor,l._GetMetadata=Bo=e.GetMetadata,l._GetLodIndex=Wo=e.GetLodIndex,l._GetLibAquaVersion=Uo=e.GetLibAquaVersion,l._GetLodMinMaxIndices=Vo=e.GetLodMinMaxIndices,l._GetCameraCount=zo=e.GetCameraCount,l._GetCameraIds=Ho=e.GetCameraIds,l._GetDefaultCameraId=qo=e.GetDefaultCameraId,l._GetViewingVolumeId=Xo=e.GetViewingVolumeId,l._GetSceneMetadata=Zo=e.GetSceneMetadata,l._GetSceneOperatorCount=Ko=e.GetSceneOperatorCount,l._SetVariantSelection=Yo=e.SetVariantSelection,l.__Z26GetSceneObjectNameAsStringP10AquaClienti=Jo=e._Z26GetSceneObjectNameAsStringP10AquaClienti,l.__Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE=Qo=e._Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE,l.__Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE=es=e._Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE,l.__Z33TakeEvictedClientSideAttributeIdsP10AquaClient=rs=e._Z33TakeEvictedClientSideAttributeIdsP10AquaClient,l.__Z30GetActiveClientSideIdsCheckSumv=ts=e._Z30GetActiveClientSideIdsCheckSumv,ns=e.__cxa_free_exception,l._malloc=Z=e.malloc,l._free=J=e.free,l._aquaDrainDeferredCompletions=is=e.aquaDrainDeferredCompletions,l._onWorkerResult=as=e.onWorkerResult,wt=e._emscripten_timeout,g=e.setThrew,St=e._emscripten_tempret_set,bt=e._emscripten_stack_restore,kt=e._emscripten_stack_alloc,Et=e.emscripten_stack_get_current,Ct=e.__cxa_decrement_exception_refcount,Tt=e.__cxa_increment_exception_refcount,Ft=e.__cxa_can_catch,Pt=e.__cxa_get_exception_ptr}var At={__cxa_begin_catch:qt,__cxa_end_catch:Xt,__cxa_find_matching_catch_2:Zt,__cxa_find_matching_catch_3:Kt,__cxa_find_matching_catch_4:Yt,__cxa_rethrow:Jt,__cxa_throw:Qt,__cxa_uncaught_exceptions:en,__resumeException:rn,__syscall_fcntl64:fn,__syscall_fstat64:dn,__syscall_ioctl:vn,__syscall_lstat64:_n,__syscall_newfstatat:hn,__syscall_openat:mn,__syscall_rmdir:pn,__syscall_stat64:yn,__syscall_unlinkat:gn,_abort_js:wn,_embind_register_bigint:bn,_embind_register_bool:kn,_embind_register_class:Wn,_embind_register_class_constructor:Vn,_embind_register_class_function:zn,_embind_register_class_property:Hn,_embind_register_emval:qn,_embind_register_enum:Zn,_embind_register_enum_value:Kn,_embind_register_float:Jn,_embind_register_function:Qn,_embind_register_integer:ei,_embind_register_memory_view:ri,_embind_register_optional:ni,_embind_register_std_string:ii,_embind_register_std_wstring:fi,_embind_register_void:di,_emscripten_runtime_keepalive_clear:vi,_emval_create_invoker:yi,_emval_decref:hr,_emval_get_global:gi,_emval_get_property:wi,_emval_incref:Si,_emval_invoke:bi,_emval_new_array:ki,_emval_new_cstring:Ei,_emval_run_destructors:Ci,_emval_set_property:Ti,_gmtime_js:Ai,_localtime_js:Mi,_setitimer_js:Gi,_tzset_js:Ni,clock_time_get:Wi,emjsCreateTrackedPromise:$a,emjsEncodeUriComponent:Aa,emjsGetPartsFromUrl:Pa,emjsIsValidUrl:Fa,emjsResolveTrackedPromise:Da,emjsSentryCaptureException:Ta,emscripten_console_warn:Ui,emscripten_date_now:dt,emscripten_errn:Vi,emscripten_fetch_free:zi,emscripten_get_heap_max:Hi,emscripten_get_now:yr,emscripten_is_main_browser_thread:qi,emscripten_outn:Xi,emscripten_resize_heap:Yi,emscripten_start_fetch:ra,environ_get:na,environ_sizes_get:ia,fd_close:aa,fd_fdstat_get:oa,fd_read:ua,fd_seek:ca,fd_write:fa,getHardwareConcurrency:ga,getWorkerUrlFromModule:ya,impl_cancelRequest:Ea,impl_createDeserializeWorker:ba,impl_submitToWorker:ka,impl_terminateWorker:Ca,invoke_diii:ru,invoke_diiiii:bs,invoke_djj:Us,invoke_fi:Rs,invoke_fiii:qs,invoke_i:ps,invoke_ii:us,invoke_iii:_s,invoke_iiii:Ss,invoke_iiiid:tu,invoke_iiiii:ms,invoke_iiiiid:Js,invoke_iiiiii:gs,invoke_iiiiiii:Is,invoke_iiiiiiii:Qs,invoke_iiiiiiiii:xs,invoke_iiiiiiiiii:$s,invoke_iiiiiiiiiii:Ps,invoke_iiiiiiiiiiii:As,invoke_iiiiij:cu,invoke_iiiiijj:nu,invoke_iiiij:uu,invoke_iiiiji:Ns,invoke_iiiijj:iu,invoke_iiij:su,invoke_iij:ys,invoke_iiji:Zs,invoke_iijiiii:ws,invoke_j:js,invoke_ji:Gs,invoke_jii:ks,invoke_jiiii:eu,invoke_v:hs,invoke_vi:cs,invoke_viddi:Bs,invoke_vif:Hs,invoke_vii:fs,invoke_viif:lu,invoke_viii:ls,invoke_viiifi:zs,invoke_viiii:ss,invoke_viiiiddiii:Vs,invoke_viiiii:vs,invoke_viiiiii:ds,invoke_viiiiiii:Ts,invoke_viiiiiiii:Ms,invoke_viiiiiiiiii:au,invoke_viiiiiiiiiii:Fs,invoke_viiiiiiiiiiiiiii:ou,invoke_viiij:Ls,invoke_viij:Ws,invoke_viiji:Cs,invoke_viijii:Ds,invoke_viijiiii:Xs,invoke_vij:Ys,invoke_viji:Ks,invoke_vijii:Os,invoke_vijiiii:Es,llvm_eh_typeid_for:da,proc_exit:lt,random_get:va,scheduleMicrotaskDrain:wa,tryLocateWorkerFile:pa,unregisterTransportInstance:Sa};function ss(e,r,t,n,i){var a=S();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function us(e,r){var t=S();try{return y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function cs(e,r){var t=S();try{y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function ls(e,r,t,n){var i=S();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function fs(e,r,t){var n=S();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function ds(e,r,t,n,i,a,s){var u=S();try{y(e)(r,t,n,i,a,s)}catch(c){if(w(u),c!==c+0)throw c;g(1,0)}}function vs(e,r,t,n,i,a){var s=S();try{y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function _s(e,r,t){var n=S();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function hs(e){var r=S();try{y(e)()}catch(t){if(w(r),t!==t+0)throw t;g(1,0)}}function ms(e,r,t,n,i){var a=S();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function ps(e){var r=S();try{return y(e)()}catch(t){if(w(r),t!==t+0)throw t;g(1,0)}}function ys(e,r,t){var n=S();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function gs(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function ws(e,r,t,n,i,a,s){var u=S();try{return y(e)(r,t,n,i,a,s)}catch(c){if(w(u),c!==c+0)throw c;g(1,0)}}function Ss(e,r,t,n){var i=S();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function bs(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function ks(e,r,t){var n=S();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;return g(1,0),0n}}function Es(e,r,t,n,i,a,s){var u=S();try{y(e)(r,t,n,i,a,s)}catch(c){if(w(u),c!==c+0)throw c;g(1,0)}}function Cs(e,r,t,n,i){var a=S();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Ts(e,r,t,n,i,a,s,u){var c=S();try{y(e)(r,t,n,i,a,s,u)}catch(f){if(w(c),f!==f+0)throw f;g(1,0)}}function Fs(e,r,t,n,i,a,s,u,c,f,d,_){var p=S();try{y(e)(r,t,n,i,a,s,u,c,f,d,_)}catch(v){if(w(p),v!==v+0)throw v;g(1,0)}}function Ps(e,r,t,n,i,a,s,u,c,f,d){var _=S();try{return y(e)(r,t,n,i,a,s,u,c,f,d)}catch(p){if(w(_),p!==p+0)throw p;g(1,0)}}function As(e,r,t,n,i,a,s,u,c,f,d,_){var p=S();try{return y(e)(r,t,n,i,a,s,u,c,f,d,_)}catch(v){if(w(p),v!==v+0)throw v;g(1,0)}}function $s(e,r,t,n,i,a,s,u,c,f){var d=S();try{return y(e)(r,t,n,i,a,s,u,c,f)}catch(_){if(w(d),_!==_+0)throw _;g(1,0)}}function Ds(e,r,t,n,i,a){var s=S();try{y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function Rs(e,r){var t=S();try{return y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function Is(e,r,t,n,i,a,s){var u=S();try{return y(e)(r,t,n,i,a,s)}catch(c){if(w(u),c!==c+0)throw c;g(1,0)}}function Ms(e,r,t,n,i,a,s,u,c){var f=S();try{y(e)(r,t,n,i,a,s,u,c)}catch(d){if(w(f),d!==d+0)throw d;g(1,0)}}function js(e){var r=S();try{return y(e)()}catch(t){if(w(r),t!==t+0)throw t;return g(1,0),0n}}function Os(e,r,t,n,i){var a=S();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function xs(e,r,t,n,i,a,s,u,c){var f=S();try{return y(e)(r,t,n,i,a,s,u,c)}catch(d){if(w(f),d!==d+0)throw d;g(1,0)}}function Gs(e,r){var t=S();try{return y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;return g(1,0),0n}}function Ns(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function Ls(e,r,t,n,i){var a=S();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Bs(e,r,t,n,i){var a=S();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Ws(e,r,t,n){var i=S();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Us(e,r,t){var n=S();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function Vs(e,r,t,n,i,a,s,u,c,f){var d=S();try{y(e)(r,t,n,i,a,s,u,c,f)}catch(_){if(w(d),_!==_+0)throw _;g(1,0)}}function zs(e,r,t,n,i,a){var s=S();try{y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function Hs(e,r,t){var n=S();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function qs(e,r,t,n){var i=S();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Xs(e,r,t,n,i,a,s,u){var c=S();try{y(e)(r,t,n,i,a,s,u)}catch(f){if(w(c),f!==f+0)throw f;g(1,0)}}function Zs(e,r,t,n){var i=S();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Ks(e,r,t,n){var i=S();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Ys(e,r,t){var n=S();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function Js(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function Qs(e,r,t,n,i,a,s,u){var c=S();try{return y(e)(r,t,n,i,a,s,u)}catch(f){if(w(c),f!==f+0)throw f;g(1,0)}}function eu(e,r,t,n,i){var a=S();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;return g(1,0),0n}}function ru(e,r,t,n){var i=S();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function tu(e,r,t,n,i){var a=S();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function nu(e,r,t,n,i,a,s){var u=S();try{return y(e)(r,t,n,i,a,s)}catch(c){if(w(u),c!==c+0)throw c;g(1,0)}}function iu(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function au(e,r,t,n,i,a,s,u,c,f,d){var _=S();try{y(e)(r,t,n,i,a,s,u,c,f,d)}catch(p){if(w(_),p!==p+0)throw p;g(1,0)}}function ou(e,r,t,n,i,a,s,u,c,f,d,_,p,v,h,k){var $=S();try{y(e)(r,t,n,i,a,s,u,c,f,d,_,p,v,h,k)}catch(T){if(w($),T!==T+0)throw T;g(1,0)}}function su(e,r,t,n){var i=S();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function uu(e,r,t,n,i){var a=S();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function cu(e,r,t,n,i,a){var s=S();try{return y(e)(r,t,n,i,a)}catch(u){if(w(s),u!==u+0)throw u;g(1,0)}}function lu(e,r,t,n){var i=S();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function wr(){if(ce>0){be=wr;return}if(jt(),ce>0){be=wr;return}function e(){l.calledRun=!0,!Pe&&(Ot(),Cr?.(l),l.onRuntimeInitialized?.(),xt())}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(()=>{setTimeout(()=>l.setStatus(\"\"),1),e()},1)):e()}var de;return de=await Vt(),wr(),Pr?Ye=l:Ye=new Promise((e,r)=>{Cr=e,Tr=r}),Ye}export default fu;\n\n";
|
|
62
|
+
var _glueSource = "async function jl(vn={}){var or,v=vn,Qr=typeof window==\"object\",Ee=typeof WorkerGlobalScope<\"u\",mn=typeof process==\"object\"&&process.versions?.node&&process.type!=\"renderer\",Al=!Qr&&!mn&&!Ee,pn=[],Zr=\"./this.program\",Xr=(e,r)=>{throw r},_n=import.meta.url,sr=\"\";function gn(e){return v.locateFile?v.locateFile(e,sr):sr+e}var ur,Re;if(Qr||Ee){try{sr=new URL(\".\",_n).href}catch{}Ee&&(Re=e=>{var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),ur=async e=>{var r=await fetch(e,{credentials:\"same-origin\"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+\" : \"+r.url)}}var Te=console.log.bind(console),ae=console.error.bind(console),Fe,$e=!1,Ge;function hn(e,r){e||ue(r)}var Dl=e=>e.startsWith(\"file://\"),Yr,Kr,Me,W,L,D,me,T,l,se,ie,B,et,rt=!1;function tt(){var e=Me.buffer;v.HEAP8=W=new Int8Array(e),D=new Int16Array(e),v.HEAPU8=L=new Uint8Array(e),me=new Uint16Array(e),v.HEAP32=T=new Int32Array(e),v.HEAPU32=l=new Uint32Array(e),v.HEAPF32=se=new Float32Array(e),v.HEAPF64=ie=new Float64Array(e),B=new BigInt64Array(e),et=new BigUint64Array(e)}function yn(){if(v.preRun)for(typeof v.preRun==\"function\"&&(v.preRun=[v.preRun]);v.preRun.length;)jn(v.preRun.shift());at(ot)}function wn(){rt=!0,!v.noFSInit&&!s.initialized&&s.init(),de.init(),he.__wasm_call_ctors(),s.ignorePermissions=!1}function bn(){if(v.postRun)for(typeof v.postRun==\"function\"&&(v.postRun=[v.postRun]);v.postRun.length;)On(v.postRun.shift());at(it)}function ue(e){v.onAbort?.(e),e=\"Aborted(\"+e+\")\",ae(e),$e=!0,e+=\". Build with -sASSERTIONS for more info.\";var r=new WebAssembly.RuntimeError(e);throw Kr?.(r),r}var cr;function Sn(){return v.locateFile?gn(\"AquaApi.wasm\"):new URL(\"AquaApi.wasm\",import.meta.url).href}function Cn(e){if(e==cr&&Fe)return new Uint8Array(Fe);if(Re)return Re(e);throw\"both async and sync fetching of the wasm failed\"}async function kn(e){if(!Fe)try{var r=await ur(e);return new Uint8Array(r)}catch{}return Cn(e)}async function En(e,r){try{var t=await kn(e),n=await WebAssembly.instantiate(t,r);return n}catch(a){ae(`failed to asynchronously prepare wasm: ${a}`),ue(a)}}async function Tn(e,r,t){if(!e)try{var n=fetch(r,{credentials:\"same-origin\"}),a=await WebAssembly.instantiateStreaming(n,t);return a}catch(i){ae(`wasm streaming compile failed: ${i}`),ae(\"falling back to ArrayBuffer instantiation\")}return En(r,t)}function Fn(){return{env:dn,wasi_snapshot_preview1:dn}}async function xn(){function e(i,o){return he=i.exports,Me=he.memory,tt(),Et=he.__indirect_function_table,Cc(he),he}function r(i){return e(i.instance)}var t=Fn();if(v.instantiateWasm)return new Promise((i,o)=>{v.instantiateWasm(t,(u,c)=>{i(e(u,c))})});cr??=Sn();var n=await Tn(Fe,cr,t),a=r(n);return a}class nt{name=\"ExitStatus\";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var at=e=>{for(;e.length>0;)e.shift()(v)},it=[],On=e=>it.push(e),ot=[],jn=e=>ot.push(e);function Pl(e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":return W[e];case\"i8\":return W[e];case\"i16\":return D[e>>1];case\"i32\":return T[e>>2];case\"i64\":return B[e>>3];case\"float\":return se[e>>2];case\"double\":return ie[e>>3];case\"*\":return l[e>>2];default:ue(`invalid type for getValue: ${r}`)}}var lr=!0;function st(e,r,t=\"i8\"){switch(t.endsWith(\"*\")&&(t=\"*\"),t){case\"i1\":W[e]=r;break;case\"i8\":W[e]=r;break;case\"i16\":D[e>>1]=r;break;case\"i32\":T[e>>2]=r;break;case\"i64\":B[e>>3]=BigInt(r);break;case\"float\":se[e>>2]=r;break;case\"double\":ie[e>>3]=r;break;case\"*\":l[e>>2]=r;break;default:ue(`invalid type for setValue: ${t}`)}}var S=e=>an(e),b=()=>sn(),Le=[],We=0,An=e=>{var r=new fr(e);return r.get_caught()||(r.set_caught(!0),We--),r.set_rethrown(!1),Le.push(r),cn(e),fn(e)},ce=0,Dn=()=>{E(0,0);var e=Le.pop();un(e.excPtr),ce=0};class fr{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){l[this.ptr+4>>2]=r}get_type(){return l[this.ptr+4>>2]}set_destructor(r){l[this.ptr+8>>2]=r}get_destructor(){return l[this.ptr+8>>2]}set_caught(r){r=r?1:0,W[this.ptr+12]=r}get_caught(){return W[this.ptr+12]!=0}set_rethrown(r){r=r?1:0,W[this.ptr+13]=r}get_rethrown(){return W[this.ptr+13]!=0}init(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)}set_adjusted_ptr(r){l[this.ptr+16>>2]=r}get_adjusted_ptr(){return l[this.ptr+16>>2]}}var Ue=e=>nn(e),dr=e=>{var r=ce;if(!r)return Ue(0),0;var t=new fr(r);t.set_adjusted_ptr(r);var n=t.get_type();if(!n)return Ue(0),r;for(var a of e){if(a===0||a===n)break;var i=t.ptr+16;if(ln(a,n,i))return Ue(a),r}return Ue(n),r},Pn=()=>dr([]),In=e=>dr([e]),Bn=(e,r)=>dr([e,r]),Rn=()=>{var e=Le.pop();e||ue(\"no exception to throw\");var r=e.excPtr;throw e.get_rethrown()||(Le.push(e),e.set_rethrown(!0),e.set_caught(!1),We++),ce=r,ce},$n=(e,r,t)=>{var n=new fr(e);throw n.init(r,t),ce=e,We++,ce},Gn=()=>We,Mn=e=>{throw ce||(ce=e),ce},Ve=()=>{var e=T[+R.varargs>>2];return R.varargs+=4,e},ye=Ve,I={isAbs:e=>e.charAt(0)===\"/\",splitPath:e=>{var r=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var a=e[n];a===\".\"?e.splice(n,1):a===\"..\"?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift(\"..\");return e},normalize:e=>{var r=I.isAbs(e),t=e.slice(-1)===\"/\";return e=I.normalizeArray(e.split(\"/\").filter(n=>!!n),!r).join(\"/\"),!e&&!r&&(e=\".\"),e&&t&&(e+=\"/\"),(r?\"/\":\"\")+e},dirname:e=>{var r=I.splitPath(e),t=r[0],n=r[1];return!t&&!n?\".\":(n&&(n=n.slice(0,-1)),t+n)},basename:e=>e&&e.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...e)=>I.normalize(e.join(\"/\")),join2:(e,r)=>I.normalize(e+\"/\"+r)},Ln=()=>e=>crypto.getRandomValues(e),vr=e=>{(vr=Ln())(e)},we={resolve:(...e)=>{for(var r=\"\",t=!1,n=e.length-1;n>=-1&&!t;n--){var a=n>=0?e[n]:s.cwd();if(typeof a!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!a)return\"\";r=a+\"/\"+r,t=I.isAbs(a)}return r=I.normalizeArray(r.split(\"/\").filter(i=>!!i),!t).join(\"/\"),(t?\"/\":\"\")+r||\".\"},relative:(e,r)=>{e=we.resolve(e).slice(1),r=we.resolve(r).slice(1);function t(d){for(var m=0;m<d.length&&d[m]===\"\";m++);for(var p=d.length-1;p>=0&&d[p]===\"\";p--);return m>p?[]:d.slice(m,p-m+1)}for(var n=t(e.split(\"/\")),a=t(r.split(\"/\")),i=Math.min(n.length,a.length),o=i,u=0;u<i;u++)if(n[u]!==a[u]){o=u;break}for(var c=[],u=o;u<n.length;u++)c.push(\"..\");return c=c.concat(a.slice(o)),c.join(\"/\")}},ut=typeof TextDecoder<\"u\"?new TextDecoder:void 0,ct=(e,r,t,n)=>{var a=r+t;if(n)return a;for(;e[r]&&!(r>=a);)++r;return r},be=(e,r=0,t,n)=>{var a=ct(e,r,t,n);if(a-r>16&&e.buffer&&ut)return ut.decode(e.subarray(r,a));for(var i=\"\";r<a;){var o=e[r++];if(!(o&128)){i+=String.fromCharCode(o);continue}var u=e[r++]&63;if((o&224)==192){i+=String.fromCharCode((o&31)<<6|u);continue}var c=e[r++]&63;if((o&240)==224?o=(o&15)<<12|u<<6|c:o=(o&7)<<18|u<<12|c<<6|e[r++]&63,o<65536)i+=String.fromCharCode(o);else{var d=o-65536;i+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return i},mr=[],Q=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},lt=(e,r,t,n)=>{if(!(n>0))return 0;for(var a=t,i=t+n-1,o=0;o<e.length;++o){var u=e.codePointAt(o);if(u<=127){if(t>=i)break;r[t++]=u}else if(u<=2047){if(t+1>=i)break;r[t++]=192|u>>6,r[t++]=128|u&63}else if(u<=65535){if(t+2>=i)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|u&63}else{if(t+3>=i)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|u&63,o++}}return r[t]=0,t-a},pr=(e,r,t)=>{var n=t>0?t:Q(e)+1,a=new Array(n),i=lt(e,a,0,a.length);return r&&(a.length=i),a},Wn=()=>{if(!mr.length){var e=null;if(typeof window<\"u\"&&typeof window.prompt==\"function\"&&(e=window.prompt(\"Input: \"),e!==null&&(e+=`\n`)),!e)return null;mr=pr(e,!0)}return mr.shift()},de={ttys:[],init(){},shutdown(){},register(e,r){de.ttys[e]={input:[],output:[],ops:r},s.registerDevice(e,de.stream_ops)},stream_ops:{open(e){var r=de.ttys[e.node.rdev];if(!r)throw new s.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,a){if(!e.tty||!e.tty.ops.get_char)throw new s.ErrnoError(60);for(var i=0,o=0;o<n;o++){var u;try{u=e.tty.ops.get_char(e.tty)}catch{throw new s.ErrnoError(29)}if(u===void 0&&i===0)throw new s.ErrnoError(6);if(u==null)break;i++,r[t+o]=u}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,a){if(!e.tty||!e.tty.ops.put_char)throw new s.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,r[t+i])}catch{throw new s.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),i}},default_tty_ops:{get_char(e){return Wn()},put_char(e,r){r===null||r===10?(Te(be(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(Te(be(e.output)),e.output=[])},ioctl_tcgets(e){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(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(ae(be(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(ae(be(e.output)),e.output=[])}}},ft=e=>{ue()},j={ops_table:null,mount(e){return j.createNode(null,\"/\",16895,0)},createNode(e,r,t,n){if(s.isBlkdev(t)||s.isFIFO(t))throw new s.ErrnoError(63);j.ops_table||={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:s.chrdev_stream_ops}};var a=s.createNode(e,r,t,n);return s.isDir(a.mode)?(a.node_ops=j.ops_table.dir.node,a.stream_ops=j.ops_table.dir.stream,a.contents={}):s.isFile(a.mode)?(a.node_ops=j.ops_table.file.node,a.stream_ops=j.ops_table.file.stream,a.usedBytes=0,a.contents=null):s.isLink(a.mode)?(a.node_ops=j.ops_table.link.node,a.stream_ops=j.ops_table.link.stream):s.isChrdev(a.mode)&&(a.node_ops=j.ops_table.chrdev.node,a.stream_ops=j.ops_table.chrdev.stream),a.atime=a.mtime=a.ctime=Date.now(),e&&(e.contents[r]=a,e.atime=e.mtime=e.ctime=a.atime),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1024*1024;r=Math.max(r,t*(t<n?2:1.125)>>>0),t!=0&&(r=Math.max(r,256));var a=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=s.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,s.isDir(e.mode)?r.size=4096:s.isFile(e.mode)?r.size=e.usedBytes:s.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of[\"mode\",\"atime\",\"mtime\",\"ctime\"])r[t]!=null&&(e[t]=r[t]);r.size!==void 0&&j.resizeFileStorage(e,r.size)},lookup(e,r){throw j.doesNotExistError||(j.doesNotExistError=new s.ErrnoError(44),j.doesNotExistError.stack=\"<generic error, no stack>\"),j.doesNotExistError},mknod(e,r,t,n){return j.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=s.lookupNode(r,t)}catch{}if(n){if(s.isDir(e.mode))for(var a in n.contents)throw new s.ErrnoError(55);s.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=s.lookupNode(e,r);for(var n in t.contents)throw new s.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[\".\",\"..\",...Object.keys(e.contents)]},symlink(e,r,t){var n=j.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!s.isLink(e.mode))throw new s.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,a){var i=e.node.contents;if(a>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-a,n);if(o>8&&i.subarray)r.set(i.subarray(a,a+o),t);else for(var u=0;u<o;u++)r[t+u]=i[a+u];return o},write(e,r,t,n,a,i){if(r.buffer===W.buffer&&(i=!1),!n)return 0;var o=e.node;if(o.mtime=o.ctime=Date.now(),r.subarray&&(!o.contents||o.contents.subarray)){if(i)return o.contents=r.subarray(t,t+n),o.usedBytes=n,n;if(o.usedBytes===0&&a===0)return o.contents=r.slice(t,t+n),o.usedBytes=n,n;if(a+n<=o.usedBytes)return o.contents.set(r.subarray(t,t+n),a),n}if(j.expandFileStorage(o,a+n),o.contents.subarray&&r.subarray)o.contents.set(r.subarray(t,t+n),a);else for(var u=0;u<n;u++)o.contents[a+u]=r[t+u];return o.usedBytes=Math.max(o.usedBytes,a+n),n},llseek(e,r,t){var n=r;if(t===1?n+=e.position:t===2&&s.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new s.ErrnoError(28);return n},mmap(e,r,t,n,a){if(!s.isFile(e.node.mode))throw new s.ErrnoError(43);var i,o,u=e.node.contents;if(!(a&2)&&u&&u.buffer===W.buffer)o=!1,i=u.byteOffset;else{if(o=!0,i=ft(r),!i)throw new s.ErrnoError(48);u&&((t>0||t+r<u.length)&&(u.subarray?u=u.subarray(t,t+r):u=Array.prototype.slice.call(u,t,t+r)),W.set(u,i))}return{ptr:i,allocated:o}},msync(e,r,t,n,a){return j.stream_ops.write(e,r,0,n,t,!1),0}}},Un=e=>{var r={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},t=r[e];if(typeof t>\"u\")throw new Error(`Unknown file open mode: ${e}`);return t},_r=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},Vn=async e=>{var r=await ur(e);return new Uint8Array(r)},Nn=(...e)=>s.createDataFile(...e),Jn=e=>e,pe=0,xe=null,dt=e=>{if(pe--,v.monitorRunDependencies?.(pe),pe==0&&xe){var r=xe;xe=null,r()}},vt=e=>{pe++,v.monitorRunDependencies?.(pe)},mt=[],zn=async(e,r)=>{typeof Browser<\"u\"&&Browser.init();for(var t of mt)if(t.canHandle(r))return t.handle(e,r);return e},pt=async(e,r,t,n,a,i,o,u)=>{var c=r?we.resolve(I.join2(e,r)):e,d=Jn(`cp ${c}`);vt(d);try{var m=t;typeof t==\"string\"&&(m=await Vn(t)),m=await zn(m,c),u?.(),i||Nn(e,r,m,n,a,o)}finally{dt(d)}},qn=(e,r,t,n,a,i,o,u,c,d)=>{pt(e,r,t,n,a,u,c,d).then(i).catch(o)},s={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}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(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=s.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return s.isDir(this.mode)}get isDevice(){return s.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new s.ErrnoError(44);r.follow_mount??=!0,I.isAbs(e)||(e=s.cwd()+\"/\"+e);e:for(var t=0;t<40;t++){for(var n=e.split(\"/\").filter(d=>!!d),a=s.root,i=\"/\",o=0;o<n.length;o++){var u=o===n.length-1;if(u&&r.parent)break;if(n[o]!==\".\"){if(n[o]===\"..\"){if(i=I.dirname(i),s.isRoot(a)){e=i+\"/\"+n.slice(o+1).join(\"/\"),t--;continue e}else a=a.parent;continue}i=I.join2(i,n[o]);try{a=s.lookupNode(a,n[o])}catch(d){if(d?.errno===44&&u&&r.noent_okay)return{path:i};throw d}if(s.isMountpoint(a)&&(!u||r.follow_mount)&&(a=a.mounted.root),s.isLink(a.mode)&&(!u||r.follow)){if(!a.node_ops.readlink)throw new s.ErrnoError(52);var c=a.node_ops.readlink(a);I.isAbs(c)||(c=I.dirname(i)+\"/\"+c),e=c+\"/\"+n.slice(o+1).join(\"/\");continue e}}}return{path:i,node:a}}throw new s.ErrnoError(32)},getPath(e){for(var r;;){if(s.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!==\"/\"?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%s.nameTable.length},hashAddNode(e){var r=s.hashName(e.parent.id,e.name);e.name_next=s.nameTable[r],s.nameTable[r]=e},hashRemoveNode(e){var r=s.hashName(e.parent.id,e.name);if(s.nameTable[r]===e)s.nameTable[r]=e.name_next;else for(var t=s.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=s.mayLookup(e);if(t)throw new s.ErrnoError(t);for(var n=s.hashName(e.id,r),a=s.nameTable[n];a;a=a.name_next){var i=a.name;if(a.parent.id===e.id&&i===r)return a}return s.lookup(e,r)},createNode(e,r,t,n){var a=new s.FSNode(e,r,t,n);return s.hashAddNode(a),a},destroyNode(e){s.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=[\"r\",\"w\",\"rw\"][e&3];return e&512&&(r+=\"w\"),r},nodePermissions(e,r){return s.ignorePermissions?0:r.includes(\"r\")&&!(e.mode&292)||r.includes(\"w\")&&!(e.mode&146)||r.includes(\"x\")&&!(e.mode&73)?2:0},mayLookup(e){if(!s.isDir(e.mode))return 54;var r=s.nodePermissions(e,\"x\");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!s.isDir(e.mode))return 54;try{var t=s.lookupNode(e,r);return 20}catch{}return s.nodePermissions(e,\"wx\")},mayDelete(e,r,t){var n;try{n=s.lookupNode(e,r)}catch(i){return i.errno}var a=s.nodePermissions(e,\"wx\");if(a)return a;if(t){if(!s.isDir(n.mode))return 54;if(s.isRoot(n)||s.getPath(n)===s.cwd())return 10}else if(s.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?s.isLink(e.mode)?32:s.isDir(e.mode)&&(s.flagsToPermissionString(r)!==\"r\"||r&576)?31:s.nodePermissions(e,s.flagsToPermissionString(r)):44},checkOpExists(e,r){if(!e)throw new s.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=s.MAX_OPEN_FDS;e++)if(!s.streams[e])return e;throw new s.ErrnoError(33)},getStreamChecked(e){var r=s.getStream(e);if(!r)throw new s.ErrnoError(8);return r},getStream:e=>s.streams[e],createStream(e,r=-1){return e=Object.assign(new s.FSStream,e),r==-1&&(r=s.nextfd()),e.fd=r,s.streams[r]=e,e},closeStream(e){s.streams[e]=null},dupStream(e,r=-1){var t=s.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,a=n?e:r;n??=r.node_ops.setattr,s.checkOpExists(n,63),n(a,t)},chrdev_stream_ops:{open(e){var r=s.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new s.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){s.devices[e]={stream_ops:r}},getDevice:e=>s.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){typeof e==\"function\"&&(r=e,e=!1),s.syncFSRequests++,s.syncFSRequests>1&&ae(`warning: ${s.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=s.getMounts(s.root.mount),n=0;function a(o){return s.syncFSRequests--,r(o)}function i(o){if(o)return i.errored?void 0:(i.errored=!0,a(o));++n>=t.length&&a(null)}t.forEach(o=>{if(!o.type.syncfs)return i(null);o.type.syncfs(o,e,i)})},mount(e,r,t){var n=t===\"/\",a=!t,i;if(n&&s.root)throw new s.ErrnoError(10);if(!n&&!a){var o=s.lookupPath(t,{follow_mount:!1});if(t=o.path,i=o.node,s.isMountpoint(i))throw new s.ErrnoError(10);if(!s.isDir(i.mode))throw new s.ErrnoError(54)}var u={type:e,opts:r,mountpoint:t,mounts:[]},c=e.mount(u);return c.mount=u,u.root=c,n?s.root=c:i&&(i.mounted=u,i.mount&&i.mount.mounts.push(u)),c},unmount(e){var r=s.lookupPath(e,{follow_mount:!1});if(!s.isMountpoint(r.node))throw new s.ErrnoError(28);var t=r.node,n=t.mounted,a=s.getMounts(n);Object.keys(s.nameTable).forEach(o=>{for(var u=s.nameTable[o];u;){var c=u.name_next;a.includes(u.mount)&&s.destroyNode(u),u=c}}),t.mounted=null;var i=t.mount.mounts.indexOf(n);t.mount.mounts.splice(i,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=s.lookupPath(e,{parent:!0}),a=n.node,i=I.basename(e);if(!i)throw new s.ErrnoError(28);if(i===\".\"||i===\"..\")throw new s.ErrnoError(20);var o=s.mayCreate(a,i);if(o)throw new s.ErrnoError(o);if(!a.node_ops.mknod)throw new s.ErrnoError(63);return a.node_ops.mknod(a,i,r,t)},statfs(e){return s.statfsNode(s.lookupPath(e,{follow:!0}).node)},statfsStream(e){return s.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:s.nextInode,ffree:s.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return r&=4095,r|=32768,s.mknod(e,r,0)},mkdir(e,r=511){return r&=1023,r|=16384,s.mknod(e,r,0)},mkdirTree(e,r){var t=e.split(\"/\"),n=\"\";for(var a of t)if(a){(n||I.isAbs(e))&&(n+=\"/\"),n+=a;try{s.mkdir(n,r)}catch(i){if(i.errno!=20)throw i}}},mkdev(e,r,t){return typeof t>\"u\"&&(t=r,r=438),r|=8192,s.mknod(e,r,t)},symlink(e,r){if(!we.resolve(e))throw new s.ErrnoError(44);var t=s.lookupPath(r,{parent:!0}),n=t.node;if(!n)throw new s.ErrnoError(44);var a=I.basename(r),i=s.mayCreate(n,a);if(i)throw new s.ErrnoError(i);if(!n.node_ops.symlink)throw new s.ErrnoError(63);return n.node_ops.symlink(n,a,e)},rename(e,r){var t=I.dirname(e),n=I.dirname(r),a=I.basename(e),i=I.basename(r),o,u,c;if(o=s.lookupPath(e,{parent:!0}),u=o.node,o=s.lookupPath(r,{parent:!0}),c=o.node,!u||!c)throw new s.ErrnoError(44);if(u.mount!==c.mount)throw new s.ErrnoError(75);var d=s.lookupNode(u,a),m=we.relative(e,n);if(m.charAt(0)!==\".\")throw new s.ErrnoError(28);if(m=we.relative(r,t),m.charAt(0)!==\".\")throw new s.ErrnoError(55);var p;try{p=s.lookupNode(c,i)}catch{}if(d!==p){var h=s.isDir(d.mode),y=s.mayDelete(u,a,h);if(y)throw new s.ErrnoError(y);if(y=p?s.mayDelete(c,i,h):s.mayCreate(c,i),y)throw new s.ErrnoError(y);if(!u.node_ops.rename)throw new s.ErrnoError(63);if(s.isMountpoint(d)||p&&s.isMountpoint(p))throw new s.ErrnoError(10);if(c!==u&&(y=s.nodePermissions(u,\"w\"),y))throw new s.ErrnoError(y);s.hashRemoveNode(d);try{u.node_ops.rename(d,c,i),d.parent=c}catch(_){throw _}finally{s.hashAddNode(d)}}},rmdir(e){var r=s.lookupPath(e,{parent:!0}),t=r.node,n=I.basename(e),a=s.lookupNode(t,n),i=s.mayDelete(t,n,!0);if(i)throw new s.ErrnoError(i);if(!t.node_ops.rmdir)throw new s.ErrnoError(63);if(s.isMountpoint(a))throw new s.ErrnoError(10);t.node_ops.rmdir(t,n),s.destroyNode(a)},readdir(e){var r=s.lookupPath(e,{follow:!0}),t=r.node,n=s.checkOpExists(t.node_ops.readdir,54);return n(t)},unlink(e){var r=s.lookupPath(e,{parent:!0}),t=r.node;if(!t)throw new s.ErrnoError(44);var n=I.basename(e),a=s.lookupNode(t,n),i=s.mayDelete(t,n,!1);if(i)throw new s.ErrnoError(i);if(!t.node_ops.unlink)throw new s.ErrnoError(63);if(s.isMountpoint(a))throw new s.ErrnoError(10);t.node_ops.unlink(t,n),s.destroyNode(a)},readlink(e){var r=s.lookupPath(e),t=r.node;if(!t)throw new s.ErrnoError(44);if(!t.node_ops.readlink)throw new s.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,r){var t=s.lookupPath(e,{follow:!r}),n=t.node,a=s.checkOpExists(n.node_ops.getattr,63);return a(n)},fstat(e){var r=s.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,a=n?r:t;return n??=t.node_ops.getattr,s.checkOpExists(n,63),n(a)},lstat(e){return s.stat(e,!0)},doChmod(e,r,t,n){s.doSetAttr(e,r,{mode:t&4095|r.mode&-4096,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;if(typeof e==\"string\"){var a=s.lookupPath(e,{follow:!t});n=a.node}else n=e;s.doChmod(null,n,r,t)},lchmod(e,r){s.chmod(e,r,!0)},fchmod(e,r){var t=s.getStreamChecked(e);s.doChmod(t,t.node,r,!1)},doChown(e,r,t){s.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var a;if(typeof e==\"string\"){var i=s.lookupPath(e,{follow:!n});a=i.node}else a=e;s.doChown(null,a,n)},lchown(e,r,t){s.chown(e,r,t,!0)},fchown(e,r,t){var n=s.getStreamChecked(e);s.doChown(n,n.node,!1)},doTruncate(e,r,t){if(s.isDir(r.mode))throw new s.ErrnoError(31);if(!s.isFile(r.mode))throw new s.ErrnoError(28);var n=s.nodePermissions(r,\"w\");if(n)throw new s.ErrnoError(n);s.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new s.ErrnoError(28);var t;if(typeof e==\"string\"){var n=s.lookupPath(e,{follow:!0});t=n.node}else t=e;s.doTruncate(null,t,r)},ftruncate(e,r){var t=s.getStreamChecked(e);if(r<0||(t.flags&2097155)===0)throw new s.ErrnoError(28);s.doTruncate(t,t.node,r)},utime(e,r,t){var n=s.lookupPath(e,{follow:!0}),a=n.node,i=s.checkOpExists(a.node_ops.setattr,63);i(a,{atime:r,mtime:t})},open(e,r,t=438){if(e===\"\")throw new s.ErrnoError(44);r=typeof r==\"string\"?Un(r):r,r&64?t=t&4095|32768:t=0;var n,a;if(typeof e==\"object\")n=e;else{a=e.endsWith(\"/\");var i=s.lookupPath(e,{follow:!(r&131072),noent_okay:!0});n=i.node,e=i.path}var o=!1;if(r&64)if(n){if(r&128)throw new s.ErrnoError(20)}else{if(a)throw new s.ErrnoError(31);n=s.mknod(e,t|511,0),o=!0}if(!n)throw new s.ErrnoError(44);if(s.isChrdev(n.mode)&&(r&=-513),r&65536&&!s.isDir(n.mode))throw new s.ErrnoError(54);if(!o){var u=s.mayOpen(n,r);if(u)throw new s.ErrnoError(u)}r&512&&!o&&s.truncate(n,0),r&=-131713;var c=s.createStream({node:n,path:s.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return c.stream_ops.open&&c.stream_ops.open(c),o&&s.chmod(n,t&511),v.logReadFiles&&!(r&1)&&(e in s.readFiles||(s.readFiles[e]=1)),c},close(e){if(s.isClosed(e))throw new s.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{s.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,r,t){if(s.isClosed(e))throw new s.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new s.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new s.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,a){if(n<0||a<0)throw new s.ErrnoError(28);if(s.isClosed(e))throw new s.ErrnoError(8);if((e.flags&2097155)===1)throw new s.ErrnoError(8);if(s.isDir(e.node.mode))throw new s.ErrnoError(31);if(!e.stream_ops.read)throw new s.ErrnoError(28);var i=typeof a<\"u\";if(!i)a=e.position;else if(!e.seekable)throw new s.ErrnoError(70);var o=e.stream_ops.read(e,r,t,n,a);return i||(e.position+=o),o},write(e,r,t,n,a,i){if(n<0||a<0)throw new s.ErrnoError(28);if(s.isClosed(e))throw new s.ErrnoError(8);if((e.flags&2097155)===0)throw new s.ErrnoError(8);if(s.isDir(e.node.mode))throw new s.ErrnoError(31);if(!e.stream_ops.write)throw new s.ErrnoError(28);e.seekable&&e.flags&1024&&s.llseek(e,0,2);var o=typeof a<\"u\";if(!o)a=e.position;else if(!e.seekable)throw new s.ErrnoError(70);var u=e.stream_ops.write(e,r,t,n,a,i);return o||(e.position+=u),u},mmap(e,r,t,n,a){if((n&2)!==0&&(a&2)===0&&(e.flags&2097155)!==2)throw new s.ErrnoError(2);if((e.flags&2097155)===1)throw new s.ErrnoError(2);if(!e.stream_ops.mmap)throw new s.ErrnoError(43);if(!r)throw new s.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,a)},msync(e,r,t,n,a){return e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,a):0},ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new s.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||\"binary\",r.encoding!==\"utf8\"&&r.encoding!==\"binary\")throw new Error(`Invalid encoding type \"${r.encoding}\"`);var t=s.open(e,r.flags),n=s.stat(e),a=n.size,i=new Uint8Array(a);return s.read(t,i,0,a,0),r.encoding===\"utf8\"&&(i=be(i)),s.close(t),i},writeFile(e,r,t={}){t.flags=t.flags||577;var n=s.open(e,t.flags,t.mode);if(typeof r==\"string\"&&(r=new Uint8Array(pr(r,!0))),ArrayBuffer.isView(r))s.write(n,r,0,r.byteLength,void 0,t.canOwn);else throw new Error(\"Unsupported data type\");s.close(n)},cwd:()=>s.currentPath,chdir(e){var r=s.lookupPath(e,{follow:!0});if(r.node===null)throw new s.ErrnoError(44);if(!s.isDir(r.node.mode))throw new s.ErrnoError(54);var t=s.nodePermissions(r.node,\"x\");if(t)throw new s.ErrnoError(t);s.currentPath=r.path},createDefaultDirectories(){s.mkdir(\"/tmp\"),s.mkdir(\"/home\"),s.mkdir(\"/home/web_user\")},createDefaultDevices(){s.mkdir(\"/dev\"),s.registerDevice(s.makedev(1,3),{read:()=>0,write:(n,a,i,o,u)=>o,llseek:()=>0}),s.mkdev(\"/dev/null\",s.makedev(1,3)),de.register(s.makedev(5,0),de.default_tty_ops),de.register(s.makedev(6,0),de.default_tty1_ops),s.mkdev(\"/dev/tty\",s.makedev(5,0)),s.mkdev(\"/dev/tty1\",s.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(r===0&&(vr(e),r=e.byteLength),e[--r]);s.createDevice(\"/dev\",\"random\",t),s.createDevice(\"/dev\",\"urandom\",t),s.mkdir(\"/dev/shm\"),s.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){s.mkdir(\"/proc\");var e=s.mkdir(\"/proc/self\");s.mkdir(\"/proc/self/fd\"),s.mount({mount(){var r=s.createNode(e,\"fd\",16895,73);return r.stream_ops={llseek:j.stream_ops.llseek},r.node_ops={lookup(t,n){var a=+n,i=s.getStreamChecked(a),o={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>i.path},id:a+1};return o.parent=o,o},readdir(){return Array.from(s.streams.entries()).filter(([t,n])=>n).map(([t,n])=>t.toString())}},r}},{},\"/proc/self/fd\")},createStandardStreams(e,r,t){e?s.createDevice(\"/dev\",\"stdin\",e):s.symlink(\"/dev/tty\",\"/dev/stdin\"),r?s.createDevice(\"/dev\",\"stdout\",null,r):s.symlink(\"/dev/tty\",\"/dev/stdout\"),t?s.createDevice(\"/dev\",\"stderr\",null,t):s.symlink(\"/dev/tty1\",\"/dev/stderr\");var n=s.open(\"/dev/stdin\",0),a=s.open(\"/dev/stdout\",1),i=s.open(\"/dev/stderr\",1)},staticInit(){s.nameTable=new Array(4096),s.mount(j,{},\"/\"),s.createDefaultDirectories(),s.createDefaultDevices(),s.createSpecialDirectories(),s.filesystems={MEMFS:j}},init(e,r,t){s.initialized=!0,e??=v.stdin,r??=v.stdout,t??=v.stderr,s.createStandardStreams(e,r,t)},quit(){s.initialized=!1;for(var e of s.streams)e&&s.close(e)},findObject(e,r){var t=s.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{var t=s.lookupPath(e,{follow:!r});e=t.path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=s.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=I.basename(e),t=s.lookupPath(e,{follow:!r}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot=t.path===\"/\"}catch(a){n.error=a.errno}return n},createPath(e,r,t,n){e=typeof e==\"string\"?e:s.getPath(e);for(var a=r.split(\"/\").reverse();a.length;){var i=a.pop();if(i){var o=I.join2(e,i);try{s.mkdir(o)}catch(u){if(u.errno!=20)throw u}e=o}}return o},createFile(e,r,t,n,a){var i=I.join2(typeof e==\"string\"?e:s.getPath(e),r),o=_r(n,a);return s.create(i,o)},createDataFile(e,r,t,n,a,i){var o=r;e&&(e=typeof e==\"string\"?e:s.getPath(e),o=r?I.join2(e,r):e);var u=_r(n,a),c=s.create(o,u);if(t){if(typeof t==\"string\"){for(var d=new Array(t.length),m=0,p=t.length;m<p;++m)d[m]=t.charCodeAt(m);t=d}s.chmod(c,u|146);var h=s.open(c,577);s.write(h,t,0,t.length,0,i),s.close(h),s.chmod(c,u)}},createDevice(e,r,t,n){var a=I.join2(typeof e==\"string\"?e:s.getPath(e),r),i=_r(!!t,!!n);s.createDevice.major??=64;var o=s.makedev(s.createDevice.major++,0);return s.registerDevice(o,{open(u){u.seekable=!1},close(u){n?.buffer?.length&&n(10)},read(u,c,d,m,p){for(var h=0,y=0;y<m;y++){var _;try{_=t()}catch{throw new s.ErrnoError(29)}if(_===void 0&&h===0)throw new s.ErrnoError(6);if(_==null)break;h++,c[d+y]=_}return h&&(u.node.atime=Date.now()),h},write(u,c,d,m,p){for(var h=0;h<m;h++)try{n(c[d+h])}catch{throw new s.ErrnoError(29)}return m&&(u.node.mtime=u.node.ctime=Date.now()),h}}),s.mkdev(a,i,o)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<\"u\")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.\");try{e.contents=Re(e.url)}catch{throw new s.ErrnoError(29)}},createLazyFile(e,r,t,n,a){class i{lengthKnown=!1;chunks=[];get(y){if(!(y>this.length-1||y<0)){var _=y%this.chunkSize,w=y/this.chunkSize|0;return this.getter(w)[_]}}setDataGetter(y){this.getter=y}cacheLength(){var y=new XMLHttpRequest;if(y.open(\"HEAD\",t,!1),y.send(null),!(y.status>=200&&y.status<300||y.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+y.status);var _=Number(y.getResponseHeader(\"Content-length\")),w,g=(w=y.getResponseHeader(\"Accept-Ranges\"))&&w===\"bytes\",k=(w=y.getResponseHeader(\"Content-Encoding\"))&&w===\"gzip\",x=1024*1024;g||(x=_);var O=(H,F)=>{if(H>F)throw new Error(\"invalid range (\"+H+\", \"+F+\") or no bytes requested!\");if(F>_-1)throw new Error(\"only \"+_+\" bytes available! programmer error!\");var $=new XMLHttpRequest;if($.open(\"GET\",t,!1),_!==x&&$.setRequestHeader(\"Range\",\"bytes=\"+H+\"-\"+F),$.responseType=\"arraybuffer\",$.overrideMimeType&&$.overrideMimeType(\"text/plain; charset=x-user-defined\"),$.send(null),!($.status>=200&&$.status<300||$.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+$.status);return $.response!==void 0?new Uint8Array($.response||[]):pr($.responseText||\"\",!0)},N=this;N.setDataGetter(H=>{var F=H*x,$=(H+1)*x-1;if($=Math.min($,_-1),typeof N.chunks[H]>\"u\"&&(N.chunks[H]=O(F,$)),typeof N.chunks[H]>\"u\")throw new Error(\"doXHR failed!\");return N.chunks[H]}),(k||!_)&&(x=_=1,_=this.getter(0).length,x=_,Te(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=_,this._chunkSize=x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<\"u\"){if(!Ee)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var o=new i,u={isDevice:!1,contents:o}}else var u={isDevice:!1,url:t};var c=s.createFile(e,r,u,n,a);u.contents?c.contents=u.contents:u.url&&(c.contents=null,c.url=u.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var d={},m=Object.keys(c.stream_ops);m.forEach(h=>{var y=c.stream_ops[h];d[h]=(..._)=>(s.forceLoadFile(c),y(..._))});function p(h,y,_,w,g){var k=h.node.contents;if(g>=k.length)return 0;var x=Math.min(k.length-g,w);if(k.slice)for(var O=0;O<x;O++)y[_+O]=k[g+O];else for(var O=0;O<x;O++)y[_+O]=k.get(g+O);return x}return d.read=(h,y,_,w,g)=>(s.forceLoadFile(c),p(h,y,_,w,g)),d.mmap=(h,y,_,w,g)=>{s.forceLoadFile(c);var k=ft(y);if(!k)throw new s.ErrnoError(48);return p(h,W,k,y,_),{ptr:k,allocated:!0}},c.stream_ops=d,c}},P=(e,r,t)=>e?be(L,e,r,t):\"\",R={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(I.isAbs(r))return r;var n;if(e===-100)n=s.cwd();else{var a=R.getStreamFromFD(e);n=a.path}if(r.length==0){if(!t)throw new s.ErrnoError(44);return n}return n+\"/\"+r},writeStat(e,r){l[e>>2]=r.dev,l[e+4>>2]=r.mode,l[e+8>>2]=r.nlink,l[e+12>>2]=r.uid,l[e+16>>2]=r.gid,l[e+20>>2]=r.rdev,B[e+24>>3]=BigInt(r.size),T[e+32>>2]=4096,T[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),a=r.ctime.getTime();return B[e+40>>3]=BigInt(Math.floor(t/1e3)),l[e+48>>2]=t%1e3*1e3*1e3,B[e+56>>3]=BigInt(Math.floor(n/1e3)),l[e+64>>2]=n%1e3*1e3*1e3,B[e+72>>3]=BigInt(Math.floor(a/1e3)),l[e+80>>2]=a%1e3*1e3*1e3,B[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){l[e+4>>2]=r.bsize,l[e+60>>2]=r.bsize,B[e+8>>3]=BigInt(r.blocks),B[e+16>>3]=BigInt(r.bfree),B[e+24>>3]=BigInt(r.bavail),B[e+32>>3]=BigInt(r.files),B[e+40>>3]=BigInt(r.ffree),l[e+48>>2]=r.fsid,l[e+64>>2]=r.flags,l[e+56>>2]=r.namelen},doMsync(e,r,t,n,a){if(!s.isFile(r.node.mode))throw new s.ErrnoError(43);if(n&2)return 0;var i=L.slice(e,e+t);s.msync(r,i,a,t,n)},getStreamFromFD(e){var r=s.getStreamChecked(e);return r},varargs:void 0,getStr(e){var r=P(e);return r}};function Hn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 0:{var a=Ve();if(a<0)return-28;for(;s.streams[a];)a++;var i;return i=s.dupStream(n,a),i.fd}case 1:case 2:return 0;case 3:return n.flags;case 4:{var a=Ve();return n.flags|=a,0}case 12:{var a=ye(),o=0;return D[a+o>>1]=2,0}case 13:case 14:return 0}return-28}catch(u){if(typeof s>\"u\"||u.name!==\"ErrnoError\")throw u;return-u.errno}}function Qn(e,r){try{return R.writeStat(r,s.fstat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function Zn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 21509:return n.tty?0:-59;case 21505:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var a=n.tty.ops.ioctl_tcgets(n),i=ye();T[i>>2]=a.c_iflag||0,T[i+4>>2]=a.c_oflag||0,T[i+8>>2]=a.c_cflag||0,T[i+12>>2]=a.c_lflag||0;for(var o=0;o<32;o++)W[i+o+17]=a.c_cc[o]||0;return 0}return 0}case 21510:case 21511:case 21512:return n.tty?0:-59;case 21506:case 21507:case 21508:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){for(var i=ye(),u=T[i>>2],c=T[i+4>>2],d=T[i+8>>2],m=T[i+12>>2],p=[],o=0;o<32;o++)p.push(W[i+o+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:u,c_oflag:c,c_cflag:d,c_lflag:m,c_cc:p})}return 0}case 21519:{if(!n.tty)return-59;var i=ye();return T[i>>2]=0,0}case 21520:return n.tty?-28:-59;case 21537:case 21531:{var i=ye();return s.ioctl(n,r,i)}case 21523:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var h=n.tty.ops.ioctl_tiocgwinsz(n.tty),i=ye();D[i>>1]=h[0],D[i+2>>1]=h[1]}return 0}case 21524:return n.tty?0:-59;case 21515:return n.tty?0:-59;default:return-28}}catch(y){if(typeof s>\"u\"||y.name!==\"ErrnoError\")throw y;return-y.errno}}function Xn(e,r){try{return e=R.getStr(e),R.writeStat(r,s.lstat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function Yn(e,r,t,n){try{r=R.getStr(r);var a=n&256,i=n&4096;return n=n&-6401,r=R.calculateAt(e,r,i),R.writeStat(t,a?s.lstat(r):s.stat(r))}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return-o.errno}}function Kn(e,r,t,n){R.varargs=n;try{r=R.getStr(r),r=R.calculateAt(e,r);var a=n?Ve():0;return s.open(r,t,a).fd}catch(i){if(typeof s>\"u\"||i.name!==\"ErrnoError\")throw i;return-i.errno}}function ea(e){try{return e=R.getStr(e),s.rmdir(e),0}catch(r){if(typeof s>\"u\"||r.name!==\"ErrnoError\")throw r;return-r.errno}}function ra(e,r){try{return e=R.getStr(e),R.writeStat(r,s.stat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function ta(e,r,t){try{if(r=R.getStr(r),r=R.calculateAt(e,r),!t)s.unlink(r);else if(t===512)s.rmdir(r);else return-28;return 0}catch(n){if(typeof s>\"u\"||n.name!==\"ErrnoError\")throw n;return-n.errno}}var na=()=>ue(\"\"),Ne={},Oe=e=>{for(;e.length;){var r=e.pop(),t=e.pop();t(r)}};function Se(e){return this.fromWireType(l[e>>2])}var Ce={},_e={},Je={},aa=class extends Error{constructor(r){super(r),this.name=\"InternalError\"}},ze=e=>{throw new aa(e)},re=(e,r,t)=>{e.forEach(u=>Je[u]=r);function n(u){var c=t(u);c.length!==e.length&&ze(\"Mismatched type converter count\");for(var d=0;d<e.length;++d)K(e[d],c[d])}var a=new Array(r.length),i=[],o=0;r.forEach((u,c)=>{_e.hasOwnProperty(u)?a[c]=_e[u]:(i.push(u),Ce.hasOwnProperty(u)||(Ce[u]=[]),Ce[u].push(()=>{a[c]=_e[u],++o,o===i.length&&n(a)}))}),i.length===0&&n(a)},ia=e=>{var r=Ne[e];delete Ne[e];var t=r.elements,n=t.length,a=t.map(u=>u.getterReturnType).concat(t.map(u=>u.setterArgumentType)),i=r.rawConstructor,o=r.rawDestructor;re([e],a,u=>(t.forEach((c,d)=>{var m=u[d],p=c.getter,h=c.getterContext,y=u[d+n],_=c.setter,w=c.setterContext;c.read=g=>m.fromWireType(p(h,g)),c.write=(g,k)=>{var x=[];_(w,g,y.toWireType(x,k)),Oe(x)}}),[{name:r.name,fromWireType:c=>{for(var d=new Array(n),m=0;m<n;++m)d[m]=t[m].read(c);return o(c),d},toWireType:(c,d)=>{if(n!==d.length)throw new TypeError(`Incorrect number of tuple elements for ${r.name}: expected=${n}, actual=${d.length}`);for(var m=i(),p=0;p<n;++p)t[p].write(m,d[p]);return c!==null&&c.push(o,m),m},readValueFromPointer:Se,destructorFunction:o}]))},qe={},oa=e=>{var r=qe[e];delete qe[e];var t=r.rawConstructor,n=r.rawDestructor,a=r.fields,i=a.map(o=>o.getterReturnType).concat(a.map(o=>o.setterArgumentType));re([e],i,o=>{var u={};return a.forEach((c,d)=>{var m=c.fieldName,p=o[d],h=o[d].optional,y=c.getter,_=c.getterContext,w=o[d+a.length],g=c.setter,k=c.setterContext;u[m]={read:x=>p.fromWireType(y(_,x)),write:(x,O)=>{var N=[];g(k,x,w.toWireType(N,O)),Oe(N)},optional:h}}),[{name:r.name,fromWireType:c=>{var d={};for(var m in u)d[m]=u[m].read(c);return n(c),d},toWireType:(c,d)=>{for(var m in u)if(!(m in d)&&!u[m].optional)throw new TypeError(`Missing field: \"${m}\"`);var p=t();for(m in u)u[m].write(p,d[m]);return c!==null&&c.push(n,p),p},readValueFromPointer:Se,destructorFunction:n}]})},V=e=>{for(var r=\"\";;){var t=L[e++];if(!t)return r;r+=String.fromCharCode(t)}},je=class extends Error{constructor(r){super(r),this.name=\"BindingError\"}},A=e=>{throw new je(e)};function sa(e,r,t={}){var n=r.name;if(e||A(`type \"${n}\" must have a positive integer typeid pointer`),_e.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;A(`Cannot register type '${n}' twice`)}if(_e[e]=r,delete Je[e],Ce.hasOwnProperty(e)){var a=Ce[e];delete Ce[e],a.forEach(i=>i())}}function K(e,r,t={}){return sa(e,r,t)}var _t=(e,r,t)=>{switch(r){case 1:return t?n=>W[n]:n=>L[n];case 2:return t?n=>D[n>>1]:n=>me[n>>1];case 4:return t?n=>T[n>>2]:n=>l[n>>2];case 8:return t?n=>B[n>>3]:n=>et[n>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},ua=(e,r,t,n,a)=>{r=V(r);const i=n===0n;let o=u=>u;if(i){const u=t*8;o=c=>BigInt.asUintN(u,c),a=o(a)}K(e,{name:r,fromWireType:o,toWireType:(u,c)=>(typeof c==\"number\"&&(c=BigInt(c)),c),readValueFromPointer:_t(r,t,!i),destructorFunction:null})},ca=(e,r,t,n)=>{r=V(r),K(e,{name:r,fromWireType:function(a){return!!a},toWireType:function(a,i){return i?t:n},readValueFromPointer:function(a){return this.fromWireType(L[a])},destructorFunction:null})},la=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),gr=e=>{function r(t){return t.$$.ptrType.registeredClass.name}A(r(e)+\" instance already deleted\")},hr=!1,gt=e=>{},fa=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},ht=e=>{e.count.value-=1;var r=e.count.value===0;r&&fa(e)},Ae=e=>typeof FinalizationRegistry>\"u\"?(Ae=r=>r,e):(hr=new FinalizationRegistry(r=>{ht(r.$$)}),Ae=r=>{var t=r.$$,n=!!t.smartPtr;if(n){var a={$$:t};hr.register(r,a,r)}return r},gt=r=>hr.unregister(r),Ae(e)),He=[],da=()=>{for(;He.length;){var e=He.pop();e.$$.deleteScheduled=!1,e.delete()}},yt,va=()=>{let e=Qe.prototype;Object.assign(e,{isAliasOf(t){if(!(this instanceof Qe)||!(t instanceof Qe))return!1;var n=this.$$.ptrType.registeredClass,a=this.$$.ptr;t.$$=t.$$;for(var i=t.$$.ptrType.registeredClass,o=t.$$.ptr;n.baseClass;)a=n.upcast(a),n=n.baseClass;for(;i.baseClass;)o=i.upcast(o),i=i.baseClass;return n===i&&a===o},clone(){if(this.$$.ptr||gr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var t=Ae(Object.create(Object.getPrototypeOf(this),{$$:{value:la(this.$$)}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||gr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&A(\"Object already scheduled for deletion\"),gt(this),ht(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||gr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&A(\"Object already scheduled for deletion\"),He.push(this),He.length===1&&yt&&yt(da),this.$$.deleteScheduled=!0,this}});const r=Symbol.dispose;r&&(e[r]=e.delete)};function Qe(){}var Ze=(e,r)=>Object.defineProperty(r,\"name\",{value:e}),wt={},bt=(e,r,t)=>{if(e[r].overloadTable===void 0){var n=e[r];e[r]=function(...a){return e[r].overloadTable.hasOwnProperty(a.length)||A(`Function '${t}' called with an invalid number of arguments (${a.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[a.length].apply(this,a)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},yr=(e,r,t)=>{v.hasOwnProperty(e)?((t===void 0||v[e].overloadTable!==void 0&&v[e].overloadTable[t]!==void 0)&&A(`Cannot register public name '${e}' twice`),bt(v,e,e),v[e].overloadTable.hasOwnProperty(t)&&A(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),v[e].overloadTable[t]=r):(v[e]=r,v[e].argCount=t)},ma=48,pa=57,_a=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,\"$\");var r=e.charCodeAt(0);return r>=ma&&r<=pa?`_${e}`:e};function ga(e,r,t,n,a,i,o,u){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=a,this.getActualType=i,this.upcast=o,this.downcast=u,this.pureVirtualFunctions=[]}var Xe=(e,r,t)=>{for(;r!==t;)r.upcast||A(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e},wr=e=>{if(e===null)return\"null\";var r=typeof e;return r===\"object\"||r===\"array\"||r===\"function\"?e.toString():\"\"+e};function ha(e,r){if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),0;r.$$||A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Xe(r.$$.ptr,t,this.registeredClass);return n}function ya(e,r){var t;if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,t),t):0;(!r||!r.$$)&&A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&A(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=Xe(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(r.$$.smartPtr===void 0&&A(\"Passing raw pointer to smart pointer is illegal\"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:A(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var a=r.clone();t=this.rawShare(t,J.toHandle(()=>a.delete())),e!==null&&e.push(this.rawDestructor,t)}break;default:A(\"Unsupporting sharing policy\")}return t}function wa(e,r){if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),0;r.$$||A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&A(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Xe(r.$$.ptr,t,this.registeredClass);return n}var St=(e,r,t)=>{if(r===t)return e;if(t.baseClass===void 0)return null;var n=St(e,r,t.baseClass);return n===null?null:t.downcast(n)},ba={},Sa=(e,r)=>{for(r===void 0&&A(\"ptr should not be undefined\");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r},Ca=(e,r)=>(r=Sa(e,r),ba[r]),Ye=(e,r)=>{(!r.ptrType||!r.ptr)&&ze(\"makeClassHandle requires ptr and ptrType\");var t=!!r.smartPtrType,n=!!r.smartPtr;return t!==n&&ze(\"Both smartPtrType and smartPtr must be specified\"),r.count={value:1},Ae(Object.create(e,{$$:{value:r,writable:!0}}))};function ka(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=Ca(this.registeredClass,r);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function a(){return this.isSmartPointer?Ye(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ye(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i=this.registeredClass.getActualType(r),o=wt[i];if(!o)return a.call(this);var u;this.isConst?u=o.constPointerType:u=o.pointerType;var c=St(r,this.registeredClass,u.registeredClass);return c===null?a.call(this):this.isSmartPointer?Ye(u.registeredClass.instancePrototype,{ptrType:u,ptr:c,smartPtrType:this,smartPtr:e}):Ye(u.registeredClass.instancePrototype,{ptrType:u,ptr:c})}var Ea=()=>{Object.assign(Ke.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:Se,fromWireType:ka})};function Ke(e,r,t,n,a,i,o,u,c,d,m){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=a,this.pointeeType=i,this.sharingPolicy=o,this.rawGetPointee=u,this.rawConstructor=c,this.rawShare=d,this.rawDestructor=m,!a&&r.baseClass===void 0?n?(this.toWireType=ha,this.destructorFunction=null):(this.toWireType=wa,this.destructorFunction=null):this.toWireType=ya}var Ct=(e,r,t)=>{v.hasOwnProperty(e)||ze(\"Replacing nonexistent public symbol\"),v[e].overloadTable!==void 0&&t!==void 0?v[e].overloadTable[t]=r:(v[e]=r,v[e].argCount=t)},kt=[],Et,C=e=>{var r=kt[e];return r||(kt[e]=r=Et.get(e)),r},q=(e,r,t=!1)=>{e=V(e);function n(){var i=C(r);return i}var a=n();return typeof a!=\"function\"&&A(`unknown function pointer with signature ${e}: ${r}`),a};class Ta extends Error{}var Tt=e=>{var r=zt(e),t=V(r);return ne(r),t},ke=(e,r)=>{var t=[],n={};function a(i){if(!n[i]&&!_e[i]){if(Je[i]){Je[i].forEach(a);return}t.push(i),n[i]=!0}}throw r.forEach(a),new Ta(`${e}: `+t.map(Tt).join([\", \"]))},Fa=(e,r,t,n,a,i,o,u,c,d,m,p,h)=>{m=V(m),i=q(a,i),u&&=q(o,u),d&&=q(c,d),h=q(p,h);var y=_a(m);yr(y,function(){ke(`Cannot construct ${m} due to unbound types`,[n])}),re([e,r,t],n?[n]:[],_=>{_=_[0];var w,g;n?(w=_.registeredClass,g=w.instancePrototype):g=Qe.prototype;var k=Ze(m,function(...$){if(Object.getPrototypeOf(this)!==x)throw new je(`Use 'new' to construct ${m}`);if(O.constructor_body===void 0)throw new je(`${m} has no accessible constructor`);var ve=O.constructor_body[$.length];if(ve===void 0)throw new je(`Tried to invoke ctor of ${m} with invalid number of parameters (${$.length}) - expected (${Object.keys(O.constructor_body).toString()}) parameters instead!`);return ve.apply(this,$)}),x=Object.create(g,{constructor:{value:k}});k.prototype=x;var O=new ga(m,k,x,h,w,i,u,d);O.baseClass&&(O.baseClass.__derivedClasses??=[],O.baseClass.__derivedClasses.push(O));var N=new Ke(m,O,!0,!1,!1),H=new Ke(m+\"*\",O,!1,!1,!1),F=new Ke(m+\" const*\",O,!1,!0,!1);return wt[e]={pointerType:H,constPointerType:F},Ct(y,k),[N,H,F]})},br=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(l[r+n*4>>2]);return t};function Ft(e){for(var r=1;r<e.length;++r)if(e[r]!==null&&e[r].destructorFunction===void 0)return!0;return!1}function xa(e,r,t,n){var a=Ft(e),i=e.length-2,o=[],u=[\"fn\"];r&&u.push(\"thisWired\");for(var c=0;c<i;++c)o.push(`arg${c}`),u.push(`arg${c}Wired`);o=o.join(\",\"),u=u.join(\",\");var d=`return function (${o}) {\n`;a&&(d+=`var destructors = [];\n`);var m=a?\"destructors\":\"null\",p=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"fromRetWire\",\"toClassParamWire\"];r&&(d+=`var thisWired = toClassParamWire(${m}, this);\n`);for(var c=0;c<i;++c){var h=`toArg${c}Wire`;d+=`var arg${c}Wired = ${h}(${m}, arg${c});\n`,p.push(h)}d+=(t||n?\"var rv = \":\"\")+`invoker(${u});\n`;var y=t?\"rv\":\"\";if(a)d+=`runDestructors(destructors);\n`;else for(var c=r?1:2;c<e.length;++c){var _=c===1?\"thisWired\":\"arg\"+(c-2)+\"Wired\";e[c].destructorFunction!==null&&(d+=`${_}_dtor(${_});\n`,p.push(`${_}_dtor`))}return t&&(d+=`var ret = fromRetWire(rv);\nreturn ret;\n`),d+=`}\n`,new Function(p,d)}function Sr(e,r,t,n,a,i){var o=r.length;o<2&&A(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");for(var u=r[1]!==null&&t!==null,c=Ft(r),d=!r[0].isVoid,m=o-2,p=r[0],h=r[1],y=[e,A,n,a,Oe,p.fromWireType.bind(p),h?.toWireType.bind(h)],_=2;_<o;++_){var w=r[_];y.push(w.toWireType.bind(w))}if(!c)for(var _=u?1:2;_<r.length;++_)r[_].destructorFunction!==null&&y.push(r[_].destructorFunction);var k=xa(r,u,d,i)(...y);return Ze(e,k)}var Oa=(e,r,t,n,a,i)=>{var o=br(r,t);a=q(n,a);var u=[i],c=[];re([],[e],d=>{d=d[0];var m=`constructor ${d.name}`;if(d.registeredClass.constructor_body===void 0&&(d.registeredClass.constructor_body=[]),d.registeredClass.constructor_body[r-1]!==void 0)throw new je(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${d.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return d.registeredClass.constructor_body[r-1]=()=>{ke(`Cannot construct ${d.name} due to unbound types`,o)},re([],o,p=>(p.splice(1,0,null),d.registeredClass.constructor_body[r-1]=Sr(m,p,null,a,i),[])),[]})},xt=e=>{e=e.trim();const r=e.indexOf(\"(\");return r===-1?e:e.slice(0,r)},ja=(e,r,t,n,a,i,o,u,c,d)=>{var m=br(t,n);r=V(r),r=xt(r),i=q(a,i,c),re([],[e],p=>{p=p[0];var h=`${p.name}.${r}`;r.startsWith(\"@@\")&&(r=Symbol[r.substring(2)]),u&&p.registeredClass.pureVirtualFunctions.push(r);function y(){ke(`Cannot call ${h} due to unbound types`,m)}var _=p.registeredClass.instancePrototype,w=_[r];return w===void 0||w.overloadTable===void 0&&w.className!==p.name&&w.argCount===t-2?(y.argCount=t-2,y.className=p.name,_[r]=y):(bt(_,r,h),_[r].overloadTable[t-2]=y),re([],m,g=>{var k=Sr(h,g,p,i,o,c);return _[r].overloadTable===void 0?(k.argCount=t-2,_[r]=k):_[r].overloadTable[t-2]=k,[]}),[]})},Ot=(e,r,t)=>(e instanceof Object||A(`${t} with invalid \"this\": ${e}`),e instanceof r.registeredClass.constructor||A(`${t} incompatible with \"this\" of type ${e.constructor.name}`),e.$$.ptr||A(`cannot call emscripten binding method ${t} on deleted object`),Xe(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)),Aa=(e,r,t,n,a,i,o,u,c,d)=>{r=V(r),a=q(n,a),re([],[e],m=>{m=m[0];var p=`${m.name}.${r}`,h={get(){ke(`Cannot access ${p} due to unbound types`,[t,o])},enumerable:!0,configurable:!0};return c?h.set=()=>ke(`Cannot access ${p} due to unbound types`,[t,o]):h.set=y=>A(p+\" is a read-only property\"),Object.defineProperty(m.registeredClass.instancePrototype,r,h),re([],c?[t,o]:[t],y=>{var _=y[0],w={get(){var k=Ot(this,m,p+\" getter\");return _.fromWireType(a(i,k))},enumerable:!0};if(c){c=q(u,c);var g=y[1];w.set=function(k){var x=Ot(this,m,p+\" setter\"),O=[];c(d,x,g.toWireType(O,k)),Oe(O)}}return Object.defineProperty(m.registeredClass.instancePrototype,r,w),[]}),[]})},Da=(e,r,t)=>{e=V(e),re([],[r],n=>(n=n[0],v[e]=n.fromWireType(t),[]))},jt=[],ge=[0,1,,1,null,1,!0,1,!1,1],Cr=e=>{e>9&&--ge[e+1]===0&&(ge[e]=void 0,jt.push(e))},J={toValue:e=>(e||A(`Cannot use deleted val. handle = ${e}`),ge[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=jt.pop()||ge.length;return ge[r]=e,ge[r+1]=1,r}}}},At={name:\"emscripten::val\",fromWireType:e=>{var r=J.toValue(e);return Cr(e),r},toWireType:(e,r)=>J.toHandle(r),readValueFromPointer:Se,destructorFunction:null},Pa=e=>K(e,At),Ia=(e,r,t)=>{switch(r){case 1:return t?function(n){return this.fromWireType(W[n])}:function(n){return this.fromWireType(L[n])};case 2:return t?function(n){return this.fromWireType(D[n>>1])}:function(n){return this.fromWireType(me[n>>1])};case 4:return t?function(n){return this.fromWireType(T[n>>2])}:function(n){return this.fromWireType(l[n>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Ba=(e,r,t,n)=>{r=V(r);function a(){}a.values={},K(e,{name:r,constructor:a,fromWireType:function(i){return this.constructor.values[i]},toWireType:(i,o)=>o.value,readValueFromPointer:Ia(r,t,n),destructorFunction:null}),yr(r,a)},Dt=(e,r)=>{var t=_e[e];return t===void 0&&A(`${r} has unknown type ${Tt(e)}`),t},Ra=(e,r,t)=>{var n=Dt(e,\"enum\");r=V(r);var a=n.constructor,i=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Ze(`${n.name}_${r}`,function(){})}});a.values[t]=i,a[r]=i},$a=(e,r)=>{switch(r){case 4:return function(t){return this.fromWireType(se[t>>2])};case 8:return function(t){return this.fromWireType(ie[t>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},Ga=(e,r,t)=>{r=V(r),K(e,{name:r,fromWireType:n=>n,toWireType:(n,a)=>a,readValueFromPointer:$a(r,t),destructorFunction:null})},Ma=(e,r,t,n,a,i,o,u)=>{var c=br(r,t);e=V(e),e=xt(e),a=q(n,a,o),yr(e,function(){ke(`Cannot call ${e} due to unbound types`,c)},r-1),re([],c,d=>{var m=[d[0],null].concat(d.slice(1));return Ct(e,Sr(e,m,null,a,i,o),r-1),[]})},La=(e,r,t,n,a)=>{r=V(r);const i=n===0;let o=c=>c;if(i){var u=32-8*t;o=c=>c<<u>>>u,a=o(a)}K(e,{name:r,fromWireType:o,toWireType:(c,d)=>d,readValueFromPointer:_t(r,t,n!==0),destructorFunction:null})},Wa=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],a=n[r];function i(o){var u=l[o>>2],c=l[o+4>>2];return new a(W.buffer,c,u)}t=V(t),K(e,{name:t,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Ua=Object.assign({optional:!0},At),Va=(e,r)=>{K(e,Ua)},M=(e,r,t)=>lt(e,L,r,t),Na=(e,r)=>{r=V(r);var t=!0;K(e,{name:r,fromWireType(n){var a=l[n>>2],i=n+4,o;if(t)o=P(i,a,!0);else{o=\"\";for(var u=0;u<a;++u)o+=String.fromCharCode(L[i+u])}return ne(n),o},toWireType(n,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));var i,o=typeof a==\"string\";o||ArrayBuffer.isView(a)&&a.BYTES_PER_ELEMENT==1||A(\"Cannot pass non-string to std::string\"),t&&o?i=Q(a):i=a.length;var u=X(4+i+1),c=u+4;if(l[u>>2]=i,o)if(t)M(a,c,i+1);else for(var d=0;d<i;++d){var m=a.charCodeAt(d);m>255&&(ne(u),A(\"String has UTF-16 code units that do not fit in 8 bits\")),L[c+d]=m}else L.set(a,c);return n!==null&&n.push(ne,u),u},readValueFromPointer:Se,destructorFunction(n){ne(n)}})},Pt=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0,Ja=(e,r,t)=>{var n=e>>1,a=ct(me,n,r/2,t);if(a-n>16&&Pt)return Pt.decode(me.subarray(n,a));for(var i=\"\",o=n;o<a;++o){var u=me[o];i+=String.fromCharCode(u)}return i},za=(e,r,t)=>{if(t??=2147483647,t<2)return 0;t-=2;for(var n=r,a=t<e.length*2?t/2:e.length,i=0;i<a;++i){var o=e.charCodeAt(i);D[r>>1]=o,r+=2}return D[r>>1]=0,r-n},qa=e=>e.length*2,Ha=(e,r,t)=>{for(var n=\"\",a=e>>2,i=0;!(i>=r/4);i++){var o=l[a+i];if(!o&&!t)break;n+=String.fromCodePoint(o)}return n},Qa=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,a=n+t-4,i=0;i<e.length;++i){var o=e.codePointAt(i);if(o>65535&&i++,T[r>>2]=o,r+=4,r+4>a)break}return T[r>>2]=0,r-n},Za=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.codePointAt(t);n>65535&&t++,r+=4}return r},Xa=(e,r,t)=>{t=V(t);var n,a,i;r===2?(n=Ja,a=za,i=qa):(n=Ha,a=Qa,i=Za),K(e,{name:t,fromWireType:o=>{var u=l[o>>2],c=n(o+4,u*r,!0);return ne(o),c},toWireType:(o,u)=>{typeof u!=\"string\"&&A(`Cannot pass non-string to C++ string type ${t}`);var c=i(u),d=X(4+c+r);return l[d>>2]=c/r,a(u,d+4,c+r),o!==null&&o.push(ne,d),d},readValueFromPointer:Se,destructorFunction(o){ne(o)}})},Ya=(e,r,t,n,a,i)=>{Ne[e]={name:V(r),rawConstructor:q(t,n),rawDestructor:q(a,i),elements:[]}},Ka=(e,r,t,n,a,i,o,u,c)=>{Ne[e].elements.push({getterReturnType:r,getter:q(t,n),getterContext:a,setterArgumentType:i,setter:q(o,u),setterContext:c})},ei=(e,r,t,n,a,i)=>{qe[e]={name:V(r),rawConstructor:q(t,n),rawDestructor:q(a,i),fields:[]}},ri=(e,r,t,n,a,i,o,u,c,d)=>{qe[e].fields.push({fieldName:V(r),getterReturnType:t,getter:q(n,a),getterContext:i,setterArgumentType:o,setter:q(u,c),setterContext:d})},ti=(e,r)=>{r=V(r),K(e,{isVoid:!0,name:r,fromWireType:()=>{},toWireType:(t,n)=>{}})},It=0,ni=()=>{lr=!1,It=0},kr=[],ai=e=>{var r=kr.length;return kr.push(e),r},ii=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=Dt(l[r+n*4>>2],`parameter ${n}`);return t},oi=(e,r,t)=>{var n=[],a=e(n,t);return n.length&&(l[r>>2]=J.toHandle(n)),a},si={},Er=e=>{var r=si[e];return r===void 0?V(e):r},ui=(e,r,t)=>{var n=8,[a,...i]=ii(e,r),o=a.toWireType.bind(a),u=i.map(y=>y.readValueFromPointer.bind(y));e--;var c={toValue:J.toValue},d=u.map((y,_)=>{var w=`argFromPtr${_}`;return c[w]=y,`${w}(args${_?\"+\"+_*n:\"\"})`}),m;switch(t){case 0:m=\"toValue(handle)\";break;case 2:m=\"new (toValue(handle))\";break;case 3:m=\"\";break;case 1:c.getStringOrSymbol=Er,m=\"toValue(handle)[getStringOrSymbol(methodName)]\";break}m+=`(${d})`,a.isVoid||(c.toReturnWire=o,c.emval_returnValue=oi,m=`return emval_returnValue(toReturnWire, destructorsRef, ${m})`),m=`return function (handle, methodName, destructorsRef, args) {\n ${m}\n }`;var p=new Function(Object.keys(c),m)(...Object.values(c)),h=`methodCaller<(${i.map(y=>y.name)}) => ${a.name}>`;return ai(Ze(h,p))},Bt=()=>globalThis,ci=e=>e===0?J.toHandle(Bt()):(e=Er(e),J.toHandle(Bt()[e])),li=(e,r)=>(e=J.toValue(e),r=J.toValue(r),J.toHandle(e[r])),fi=e=>{e>9&&(ge[e+1]+=1)},di=(e,r,t,n,a)=>kr[e](r,t,n,a),vi=()=>J.toHandle([]),mi=e=>J.toHandle(Er(e)),pi=()=>J.toHandle({}),_i=e=>{var r=J.toValue(e);Oe(r),Cr(e)},gi=(e,r,t)=>{e=J.toValue(e),r=J.toValue(r),t=J.toValue(t),e[r]=t},hi=9007199254740992,yi=-9007199254740992,Z=e=>e<yi||e>hi?NaN:Number(e);function wi(e,r){e=Z(e);var t=new Date(e*1e3);T[r>>2]=t.getUTCSeconds(),T[r+4>>2]=t.getUTCMinutes(),T[r+8>>2]=t.getUTCHours(),T[r+12>>2]=t.getUTCDate(),T[r+16>>2]=t.getUTCMonth(),T[r+20>>2]=t.getUTCFullYear()-1900,T[r+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),a=(t.getTime()-n)/(1e3*60*60*24)|0;T[r+28>>2]=a}var bi=e=>e%4===0&&(e%100!==0||e%400===0),Si=[0,31,60,91,121,152,182,213,244,274,305,335],Ci=[0,31,59,90,120,151,181,212,243,273,304,334],ki=e=>{var r=bi(e.getFullYear()),t=r?Si:Ci,n=t[e.getMonth()]+e.getDate()-1;return n};function Ei(e,r){e=Z(e);var t=new Date(e*1e3);T[r>>2]=t.getSeconds(),T[r+4>>2]=t.getMinutes(),T[r+8>>2]=t.getHours(),T[r+12>>2]=t.getDate(),T[r+16>>2]=t.getMonth(),T[r+20>>2]=t.getFullYear()-1900,T[r+24>>2]=t.getDay();var n=ki(t)|0;T[r+28>>2]=n,T[r+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),o=a.getTimezoneOffset(),u=(i!=o&&t.getTimezoneOffset()==Math.min(o,i))|0;T[r+32>>2]=u}var De={},Rt=e=>{if(e instanceof nt||e==\"unwind\")return Ge;Xr(1,e)},$t=()=>lr||It>0,Gt=e=>{Ge=e,$t()||(v.onExit?.(e),$e=!0),Xr(e,new nt(e))},Ti=(e,r)=>{Ge=e,Gt(e)},Fi=Ti,xi=()=>{if(!$t())try{Fi(Ge)}catch(e){Rt(e)}},Mt=e=>{if(!$e)try{e(),xi()}catch(r){Rt(r)}},Tr=()=>performance.now(),Oi=(e,r)=>{if(De[e]&&(clearTimeout(De[e].id),delete De[e]),!r)return 0;var t=setTimeout(()=>{delete De[e],Mt(()=>rn(e,Tr()))},r);return De[e]={id:t,timeout_ms:r},0},ji=(e,r,t,n)=>{var a=new Date().getFullYear(),i=new Date(a,0,1),o=new Date(a,6,1),u=i.getTimezoneOffset(),c=o.getTimezoneOffset(),d=Math.max(u,c);l[e>>2]=d*60,T[r>>2]=+(u!=c);var m=y=>{var _=y>=0?\"-\":\"+\",w=Math.abs(y),g=String(Math.floor(w/60)).padStart(2,\"0\"),k=String(w%60).padStart(2,\"0\");return`UTC${_}${g}${k}`},p=m(u),h=m(c);c<u?(M(p,t,17),M(h,n,17)):(M(p,n,17),M(h,t,17))},Lt=()=>Date.now(),Ai=1,Di=e=>e>=0&&e<=3;function Pi(e,r,t){if(r=Z(r),!Di(e))return 28;var n;if(e===0)n=Lt();else if(Ai)n=Tr();else return 52;var a=Math.round(n*1e3*1e3);return B[t>>3]=BigInt(a),0}var Fr=[],Ii=(e,r)=>{Fr.length=0;for(var t;t=L[e++];){var n=t!=105;n&=t!=112,r+=n&&r%8?4:0,Fr.push(t==112?l[r>>2]:t==106?B[r>>3]:t==105?T[r>>2]:ie[r>>3]),r+=n?8:4}return Fr},Bi=(e,r,t)=>{var n=Ii(r,t);return Os[e](...n)},Ri=(e,r,t)=>Bi(e,r,t),$i=e=>{console.warn(P(e))},Gi=(e,r)=>ae(P(e,r));function Mi(e){if(z.xhrs.has(e)){var r=z.xhrs.get(e);z.xhrs.free(e),r.readyState>0&&r.readyState<4&&r.abort()}}var Wt=()=>2147483648,Li=()=>Wt(),Wi=()=>0,Ui=()=>!Ee,Vi=(e,r)=>Te(P(e,r)),Ni=(e,r)=>Math.ceil(e/r)*r,Ji=e=>{var r=Me.buffer.byteLength,t=(e-r+65535)/65536|0;try{return Me.grow(t),tt(),1}catch{}},zi=e=>{var r=L.length;e>>>=0;var t=Wt();if(e>t)return!1;for(var n=1;n<=4;n*=2){var a=r*(1+.2/n);a=Math.min(a,e+100663296);var i=Math.min(t,Ni(Math.max(e,a),65536)),o=Ji(i);if(o)return!0}return!1},qi=()=>{throw\"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep\"};class Hi{allocated=[void 0];freelist=[];get(r){return this.allocated[r]}has(r){return this.allocated[r]!==void 0}allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t}free(r){this.allocated[r]=void 0,this.freelist.push(r)}}var z={async openDatabase(e,r){return new Promise((t,n)=>{try{var a=indexedDB.open(e,r)}catch(i){return n(i)}a.onupgradeneeded=i=>{var o=i.target.result;o.objectStoreNames.contains(\"FILES\")&&o.deleteObjectStore(\"FILES\"),o.createObjectStore(\"FILES\")},a.onsuccess=i=>t(i.target.result),a.onerror=n})},async init(){z.xhrs=new Hi,vt(\"library_fetch_init\");try{var e=await z.openDatabase(\"emscripten_filesystem\",1);z.dbInstance=e}catch{z.dbInstance=!1}finally{dt(\"library_fetch_init\")}}};function xr(e,r,t,n,a){var i=l[e+8>>2];if(!i){t(e,\"no url specified!\");return}var o=P(i),u=e+108,c=P(u+0);c||=\"GET\";var d=l[u+56>>2],m=l[u+68>>2],p=l[u+72>>2],h=l[u+76>>2],y=l[u+80>>2],_=l[u+84>>2],w=l[u+88>>2],g=l[u+52>>2],k=!!(g&1),x=!!(g&2),O=!!(g&64),N=m?P(m):void 0,H=p?P(p):void 0,F=new XMLHttpRequest;if(F.withCredentials=!!L[u+60],F.open(c,o,!O,N,H),O||(F.timeout=d),F.url_=o,F.responseType=\"arraybuffer\",y){var $=P(y);F.overrideMimeType($)}if(h)for(;;){var ve=l[h>>2];if(!ve)break;var nr=l[h+4>>2];if(!nr)break;h+=8;var U=P(ve),le=P(nr);F.setRequestHeader(U,le)}var oe=z.xhrs.allocate(F);l[e>>2]=oe;var Hr=_&&w?L.slice(_,_+w):null;function ar(){var G=0,Y=0;F.response&&k&&l[e+12>>2]===0&&(Y=F.response.byteLength),Y>0&&(G=X(Y),L.set(new Uint8Array(F.response),G)),l[e+12>>2]=G,ee(e+16,Y),ee(e+24,0);var fe=F.response?F.response.byteLength:0;if(fe&&ee(e+32,fe),D[e+40>>1]=F.readyState,D[e+42>>1]=F.status,F.statusText&&M(F.statusText,e+44,64),O){var ir=Or(F.responseURL);l[e+200>>2]=ir}}F.onload=G=>{z.xhrs.has(oe)&&(ar(),F.status>=200&&F.status<300?r(e,F,G):t(e,G))},F.onerror=G=>{z.xhrs.has(oe)&&(ar(),t(e,G))},F.ontimeout=G=>{z.xhrs.has(oe)&&t(e,G)},F.onprogress=G=>{if(z.xhrs.has(oe)){var Y=k&&x&&F.response?F.response.byteLength:0,fe=0;Y>0&&k&&x&&(fe=X(Y),L.set(new Uint8Array(F.response),fe)),l[e+12>>2]=fe,ee(e+16,Y),ee(e+24,G.loaded-Y),ee(e+32,G.total),D[e+40>>1]=F.readyState;var ir=F.status;F.readyState>=3&&F.status===0&&G.loaded>0&&(ir=200),D[e+42>>1]=ir,F.statusText&&M(F.statusText,e+44,64),n(e,G),ne(fe)}},F.onreadystatechange=G=>{if(z.xhrs.has(oe)){if(D[e+40>>1]=F.readyState,F.readyState>=2&&(D[e+42>>1]=F.status),!O&&F.readyState===2&&F.responseURL.length>0){var Y=Or(F.responseURL);l[e+200>>2]=Y}a(e,G)}};try{F.send(Hr)}catch(G){t(e,G)}}var ee=(e,r)=>{l[e>>2]=r;var t=l[e>>2];l[e+4>>2]=(r-t)/4294967296},Or=e=>{var r=Q(e)+1,t=X(r);return t&&M(e,t,r),t};function Ut(e,r,t,n,a){if(!e){a(r,0,\"IndexedDB not available!\");return}var i=r+108,o=l[i+64>>2];o||=l[r+8>>2];var u=P(o);try{var c=e.transaction([\"FILES\"],\"readwrite\"),d=c.objectStore(\"FILES\"),m=d.put(t,u);m.onsuccess=p=>{D[r+40>>1]=4,D[r+42>>1]=200,M(\"OK\",r+44,64),n(r,0,u)},m.onerror=p=>{D[r+40>>1]=4,D[r+42>>1]=413,M(\"Payload Too Large\",r+44,64),a(r,0,p)}}catch(p){a(r,0,p)}}function Qi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var a=r+108,i=l[a+64>>2];i||=l[r+8>>2];var o=P(i);try{var u=e.transaction([\"FILES\"],\"readonly\"),c=u.objectStore(\"FILES\"),d=c.get(o);d.onsuccess=m=>{if(m.target.result){var p=m.target.result,h=p.byteLength||p.length,y=X(h);L.set(new Uint8Array(p),y),l[r+12>>2]=y,ee(r+16,h),ee(r+24,0),ee(r+32,h),D[r+40>>1]=4,D[r+42>>1]=200,M(\"OK\",r+44,64),t(r,0,p)}else D[r+40>>1]=4,D[r+42>>1]=404,M(\"Not Found\",r+44,64),n(r,0,\"no data\")},d.onerror=m=>{D[r+40>>1]=4,D[r+42>>1]=404,M(\"Not Found\",r+44,64),n(r,0,m)}}catch(m){n(r,0,m)}}function Zi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var a=r+108,i=l[a+64>>2];i||=l[r+8>>2];var o=P(i);try{var u=e.transaction([\"FILES\"],\"readwrite\"),c=u.objectStore(\"FILES\"),d=c.delete(o);d.onsuccess=m=>{var p=m.target.result;l[r+12>>2]=0,ee(r+16,0),ee(r+24,0),ee(r+32,0),D[r+40>>1]=4,D[r+42>>1]=200,M(\"OK\",r+44,64),t(r,0,p)},d.onerror=m=>{D[r+40>>1]=4,D[r+42>>1]=404,M(\"Not Found\",r+44,64),n(r,0,m)}}catch(m){n(r,0,m)}}function Xi(e,r,t,n,a){var i=e+108,o=l[i+36>>2],u=l[i+40>>2],c=l[i+44>>2],d=l[i+48>>2],m=l[i+52>>2],p=!!(m&64);function h(U){p?U():Mt(U)}var y=(U,le,oe)=>{h(()=>{o?C(o)(U):r?.(U)})},_=(U,le)=>{h(()=>{c?C(c)(U):n?.(U)})},w=(U,le)=>{h(()=>{u?C(u)(U):t?.(U)})},g=(U,le)=>{h(()=>{d?C(d)(U):a?.(U)})},k=(U,le,oe)=>{xr(U,y,w,_,g)},x=(U,le,oe)=>{var Hr=(G,Y,fe)=>{h(()=>{o?C(o)(G):r?.(G)})},ar=(G,Y,fe)=>{h(()=>{o?C(o)(G):r?.(G)})};Ut(z.dbInstance,U,le.response,Hr,ar)},O=(U,le,oe)=>{xr(U,x,w,_,g)},N=P(i+0),H=!!(m&16),F=!!(m&4),$=!!(m&32);if(N===\"EM_IDB_STORE\"){var ve=l[i+84>>2],nr=l[i+88>>2];Ut(z.dbInstance,e,L.slice(ve,ve+nr),y,w)}else if(N===\"EM_IDB_DELETE\")Zi(z.dbInstance,e,y,w);else if(!H)Qi(z.dbInstance,e,y,$?w:F?O:k);else if(!$)xr(e,F?x:y,w,_,g);else return 0;return e}var Vt=e=>on(e),te=e=>{var r=Q(e)+1,t=Vt(r);return M(e,t,r),t},f={Internals:{jsObjects:[],jsObjectInsert:(e,r)=>{f.Internals.jsObjects[e>>>=0]=r},bufferOnUnmaps:[],futures:[],futureInsert:(e,r)=>{}},getJsObject:e=>{if(e){var r=e>>>=0;return f.Internals.jsObjects[r]}},importJsAdapter:(e,r=0)=>{var t=Qt(r);return f.Internals.jsObjects[t]=e,t},importJsBindGroup:(e,r=0)=>{var t=jr(r);return f.Internals.jsObjects[t]=e,t},importJsBindGroupLayout:(e,r=0)=>{var t=Ie(r);return f.Internals.jsObjects[t]=e,t},importJsBuffer:(e,r=0)=>{hn(e.mapState!=\"pending\");var t=e.mapState==\"mapped\"?3:1,n=Zt(r,t);return f.Internals.jsObjectInsert(n,e),e.mapState==\"mapped\"&&(f.Internals.bufferOnUnmaps[n]=[]),n},importJsCommandBuffer:(e,r=0)=>{var t=Ar(r);return f.Internals.jsObjects[t]=e,t},importJsCommandEncoder:(e,r=0)=>{var t=Dr(r);return f.Internals.jsObjects[t]=e,t},importJsComputePassEncoder:(e,r=0)=>{var t=Pr(r);return f.Internals.jsObjects[t]=e,t},importJsComputePipeline:(e,r=0)=>{var t=Ir(r);return f.Internals.jsObjects[t]=e,t},importJsDevice:(e,r=0)=>{var t=Ur(r),n=Xt(r,t);return f.Internals.jsObjectInsert(t,e.queue),f.Internals.jsObjectInsert(n,e),n},importJsPipelineLayout:(e,r=0)=>{var t=Br(r);return f.Internals.jsObjects[t]=e,t},importJsQuerySet:(e,r=0)=>{var t=Rr(r);return f.Internals.jsObjects[t]=e,t},importJsQueue:(e,r=0)=>{var t=Ur(r);return f.Internals.jsObjects[t]=e,t},importJsRenderBundle:(e,r=0)=>{var t=qt(r);return f.Internals.jsObjects[t]=e,t},importJsRenderBundleEncoder:(e,r=0)=>{var t=Ht(r);return f.Internals.jsObjects[t]=e,t},importJsRenderPassEncoder:(e,r=0)=>{var t=$r(r);return f.Internals.jsObjects[t]=e,t},importJsRenderPipeline:(e,r=0)=>{var t=Gr(r);return f.Internals.jsObjects[t]=e,t},importJsSampler:(e,r=0)=>{var t=Mr(r);return f.Internals.jsObjects[t]=e,t},importJsShaderModule:(e,r=0)=>{var t=Yt(r);return f.Internals.jsObjects[t]=e,t},importJsSurface:(e,r=0)=>{var t=Lr(r);return f.Internals.jsObjects[t]=e,t},importJsTexture:(e,r=0)=>{var t=tr(r);return f.Internals.jsObjects[t]=e,t},importJsTextureView:(e,r=0)=>{var t=Wr(r);return f.Internals.jsObjects[t]=e,t},errorCallback:(e,r,t,n)=>{var a=b(),i=te(t);C(e)(r,i,n),S(a)},setStringView:(e,r,t)=>{l[e>>2]=r,l[e+4>>2]=t},makeStringFromStringView:e=>{var r=l[e>>2],t=l[e+4>>2];return P(r,t)},makeStringFromOptionalStringView:e=>{var r=l[e>>2],t=l[e+4>>2];return r?P(r,t):t===0?\"\":void 0},makeColor:e=>({r:ie[e>>3],g:ie[e+8>>3],b:ie[e+16>>3],a:ie[e+24>>3]}),makeExtent3D:e=>({width:l[e>>2],height:l[e+4>>2],depthOrArrayLayers:l[e+8>>2]}),makeOrigin3D:e=>({x:l[e>>2],y:l[e+4>>2],z:l[e+8>>2]}),makeTexelCopyTextureInfo:e=>({texture:f.getJsObject(l[e>>2]),mipLevel:l[e+4>>2],origin:f.makeOrigin3D(e+8),aspect:f.TextureAspect[l[e+20>>2]]}),makeTexelCopyBufferLayout:e=>{var r=l[e+8>>2],t=l[e+12>>2];return{offset:l[e+4>>2]*4294967296+l[e>>2],bytesPerRow:r===4294967295?void 0:r,rowsPerImage:t===4294967295?void 0:t}},makeTexelCopyBufferInfo:e=>{var r=e+0,t=f.makeTexelCopyBufferLayout(r);return t.buffer=f.getJsObject(l[e+16>>2]),t},makePassTimestampWrites:e=>{if(e!==0)return{querySet:f.getJsObject(l[e+4>>2]),beginningOfPassWriteIndex:l[e+8>>2],endOfPassWriteIndex:l[e+12>>2]}},makePipelineConstants:(e,r)=>{if(e){for(var t={},n=0;n<e;++n){var a=r+24*n,i=f.makeStringFromStringView(a+4);t[i]=ie[a+16>>3]}return t}},makePipelineLayout:e=>e?f.getJsObject(e):\"auto\",makeComputeState:e=>{if(e){var r={module:f.getJsObject(l[e+4>>2]),constants:f.makePipelineConstants(l[e+16>>2],l[e+20>>2]),entryPoint:f.makeStringFromOptionalStringView(e+8)};return r}},makeComputePipelineDesc:e=>{var r={label:f.makeStringFromOptionalStringView(e+4),layout:f.makePipelineLayout(l[e+12>>2]),compute:f.makeComputeState(e+16)};return r},makeRenderPipelineDesc:e=>{function r(g){if(g)return{topology:f.PrimitiveTopology[l[g+4>>2]],stripIndexFormat:f.IndexFormat[l[g+8>>2]],frontFace:f.FrontFace[l[g+12>>2]],cullMode:f.CullMode[l[g+16>>2]],unclippedDepth:!!l[g+20>>2]}}function t(g){if(g)return{operation:f.BlendOperation[l[g>>2]],srcFactor:f.BlendFactor[l[g+4>>2]],dstFactor:f.BlendFactor[l[g+8>>2]]}}function n(g){if(g)return{alpha:t(g+12),color:t(g+0)}}function a(g){var k=l[g+4>>2];return k===0?void 0:{format:f.TextureFormat[k],blend:n(l[g+8>>2]),writeMask:l[g+16>>2]}}function i(g,k){for(var x=[],O=0;O<g;++O)x.push(a(k+24*O));return x}function o(g){return{compare:f.CompareFunction[l[g>>2]],failOp:f.StencilOperation[l[g+4>>2]],depthFailOp:f.StencilOperation[l[g+8>>2]],passOp:f.StencilOperation[l[g+12>>2]]}}function u(g){if(g)return{format:f.TextureFormat[l[g+4>>2]],depthWriteEnabled:!!l[g+8>>2],depthCompare:f.CompareFunction[l[g+12>>2]],stencilFront:o(g+16),stencilBack:o(g+32),stencilReadMask:l[g+48>>2],stencilWriteMask:l[g+52>>2],depthBias:T[g+56>>2],depthBiasSlopeScale:se[g+60>>2],depthBiasClamp:se[g+64>>2]}}function c(g){return{format:f.VertexFormat[l[g+4>>2]],offset:l[g+4+8>>2]*4294967296+l[g+8>>2],shaderLocation:l[g+16>>2]}}function d(g,k){for(var x=[],O=0;O<g;++O)x.push(c(k+O*24));return x}function m(g){if(g){var k=l[g+4>>2],x=l[g+16>>2];return k===0&&x===0?null:{arrayStride:l[g+4+8>>2]*4294967296+l[g+8>>2],stepMode:f.VertexStepMode[k],attributes:d(x,l[g+20>>2])}}}function p(g,k){if(g){for(var x=[],O=0;O<g;++O)x.push(m(k+O*24));return x}}function h(g){if(g){var k={module:f.getJsObject(l[g+4>>2]),constants:f.makePipelineConstants(l[g+16>>2],l[g+20>>2]),buffers:p(l[g+24>>2],l[g+28>>2]),entryPoint:f.makeStringFromOptionalStringView(g+8)};return k}}function y(g){if(g)return{count:l[g+4>>2],mask:l[g+8>>2],alphaToCoverageEnabled:!!l[g+12>>2]}}function _(g){if(g){var k={module:f.getJsObject(l[g+4>>2]),constants:f.makePipelineConstants(l[g+16>>2],l[g+20>>2]),targets:i(l[g+24>>2],l[g+28>>2]),entryPoint:f.makeStringFromOptionalStringView(g+8)};return k}}var w={label:f.makeStringFromOptionalStringView(e+4),layout:f.makePipelineLayout(l[e+12>>2]),vertex:h(e+16),primitive:r(e+48),depthStencil:u(l[e+72>>2]),multisample:y(e+76),fragment:_(l[e+92>>2])};return w},fillLimitStruct:(e,r)=>{function t(a,i){var o=e[a];T[r+i>>2]=o}function n(a,i){var o=e[a];B[r+i>>3]=BigInt(o)}t(\"maxTextureDimension1D\",4),t(\"maxTextureDimension2D\",8),t(\"maxTextureDimension3D\",12),t(\"maxTextureArrayLayers\",16),t(\"maxBindGroups\",20),t(\"maxBindGroupsPlusVertexBuffers\",24),t(\"maxBindingsPerBindGroup\",28),t(\"maxDynamicUniformBuffersPerPipelineLayout\",32),t(\"maxDynamicStorageBuffersPerPipelineLayout\",36),t(\"maxSampledTexturesPerShaderStage\",40),t(\"maxSamplersPerShaderStage\",44),t(\"maxStorageBuffersPerShaderStage\",48),t(\"maxStorageTexturesPerShaderStage\",52),t(\"maxUniformBuffersPerShaderStage\",56),t(\"minUniformBufferOffsetAlignment\",80),t(\"minStorageBufferOffsetAlignment\",84),n(\"maxUniformBufferBindingSize\",64),n(\"maxStorageBufferBindingSize\",72),t(\"maxVertexBuffers\",88),n(\"maxBufferSize\",96),t(\"maxVertexAttributes\",104),t(\"maxVertexBufferArrayStride\",108),t(\"maxInterStageShaderVariables\",112),t(\"maxColorAttachments\",116),t(\"maxColorAttachmentBytesPerSample\",120),t(\"maxComputeWorkgroupStorageSize\",124),t(\"maxComputeInvocationsPerWorkgroup\",128),t(\"maxComputeWorkgroupSizeX\",132),t(\"maxComputeWorkgroupSizeY\",136),t(\"maxComputeWorkgroupSizeZ\",140),t(\"maxComputeWorkgroupsPerDimension\",144),e.maxImmediateSize!==void 0&&t(\"maxImmediateSize\",148)},fillAdapterInfoStruct:(e,r)=>{T[r+52>>2]=e.subgroupMinSize,T[r+56>>2]=e.subgroupMaxSize;var t=e.vendor+e.architecture+e.device+e.description,n=Or(t),a=Q(e.vendor);f.setStringView(r+4,n,a),n+=a;var i=Q(e.architecture);f.setStringView(r+12,n,i),n+=i;var o=Q(e.device);f.setStringView(r+20,n,o),n+=o;var u=Q(e.description);f.setStringView(r+28,n,u),n+=u,T[r+36>>2]=2;var c=e.isFallbackAdapter?3:4;T[r+40>>2]=c,T[r+44>>2]=0,T[r+48>>2]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1alpha\",\"one-minus-src1alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[\"binding-not-used\",,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{1:\"core-features-and-limits\",2:\"depth-clip-control\",3:\"depth32float-stencil8\",4:\"texture-compression-bc\",5:\"texture-compression-bc-sliced-3d\",6:\"texture-compression-etc2\",7:\"texture-compression-astc\",8:\"texture-compression-astc-sliced-3d\",9:\"timestamp-query\",10:\"indirect-first-instance\",11:\"shader-f16\",12:\"rg11b10ufloat-renderable\",13:\"bgra8unorm-storage\",14:\"float32-filterable\",15:\"float32-blendable\",16:\"clip-distances\",17:\"dual-source-blending\",18:\"subgroups\",19:\"texture-formats-tier1\",20:\"texture-formats-tier2\",327692:\"chromium-experimental-unorm16-texture-formats\",327693:\"chromium-experimental-snorm16-texture-formats\",327732:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[\"binding-not-used\",,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[\"binding-not-used\",,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[\"binding-not-used\",,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\"]},Yi={undefined:1,unknown:1,destroyed:2};function Ki(e,r,t,n,a,i){r=Z(r),t=Z(t);var o=f.getJsObject(e),u={};if(i){var c=l[i+12>>2];if(c){var d=l[i+16>>2];u.requiredFeatures=Array.from(l.subarray(d>>2,d+c*4>>2),_=>f.FeatureName[_])}var m=l[i+20>>2];if(m){let _=function(g,k,x=!1){var O=m+k,N=l[O>>2];N!=4294967295&&(!x||N!=0)&&(p[g]=N)},w=function(g,k){var x=m+k,O=l[x>>2],N=l[x+4>>2];(O!=4294967295||N!=4294967295)&&(p[g]=l[x+4>>2]*4294967296+l[x>>2])};var p={};_(\"maxTextureDimension1D\",4),_(\"maxTextureDimension2D\",8),_(\"maxTextureDimension3D\",12),_(\"maxTextureArrayLayers\",16),_(\"maxBindGroups\",20),_(\"maxBindGroupsPlusVertexBuffers\",24),_(\"maxDynamicUniformBuffersPerPipelineLayout\",32),_(\"maxDynamicStorageBuffersPerPipelineLayout\",36),_(\"maxSampledTexturesPerShaderStage\",40),_(\"maxSamplersPerShaderStage\",44),_(\"maxStorageBuffersPerShaderStage\",48),_(\"maxStorageTexturesPerShaderStage\",52),_(\"maxUniformBuffersPerShaderStage\",56),_(\"minUniformBufferOffsetAlignment\",80),_(\"minStorageBufferOffsetAlignment\",84),w(\"maxUniformBufferBindingSize\",64),w(\"maxStorageBufferBindingSize\",72),_(\"maxVertexBuffers\",88),w(\"maxBufferSize\",96),_(\"maxVertexAttributes\",104),_(\"maxVertexBufferArrayStride\",108),_(\"maxInterStageShaderVariables\",112),_(\"maxColorAttachments\",116),_(\"maxColorAttachmentBytesPerSample\",120),_(\"maxComputeWorkgroupStorageSize\",124),_(\"maxComputeInvocationsPerWorkgroup\",128),_(\"maxComputeWorkgroupSizeX\",132),_(\"maxComputeWorkgroupSizeY\",136),_(\"maxComputeWorkgroupSizeZ\",140),_(\"maxComputeWorkgroupsPerDimension\",144),_(\"maxImmediateSize\",148,!0),u.requiredLimits=p}var h=l[i+24>>2];if(h){var y={label:f.makeStringFromOptionalStringView(h+4)};u.defaultQueue=y}u.label=f.makeStringFromOptionalStringView(i+4)}f.Internals.futureInsert(r,o.requestDevice(u).then(_=>{f.Internals.jsObjectInsert(a,_.queue),f.Internals.jsObjectInsert(n,_),t&&f.Internals.futureInsert(t,_.lost.then(w=>{_.onuncapturederror=x=>{};var g=b(),k=te(w.message);Vr(t,Yi[w.reason],k),S(g)})),_.onuncapturederror=w=>{var g=5;w.error instanceof GPUValidationError?g=2:w.error instanceof GPUOutOfMemoryError?g=3:w.error instanceof GPUInternalError&&(g=4);var k=b(),x=te(w.error.message);en(n,g,x),S(k)},zr(r,1,n,0)},_=>{var w=b(),g=te(_.message);zr(r,3,n,g),t&&Vr(t,4,g),S(w)}))}var eo=e=>{var r=f.getJsObject(e),t=f.Internals.bufferOnUnmaps[e];if(t){for(var n=0;n<t.length;++n)t[n]();delete f.Internals.bufferOnUnmaps[e]}r.destroy()},er=e=>{er.shown||={},er.shown[e]||(er.shown[e]=1,ae(e))},ro=(e,r,t)=>{var n=f.getJsObject(e);t===0&&er(\"getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE\"),t==-1&&(t=void 0);var a;try{a=n.getMappedRange(r,t)}catch{return 0}var i=tn(16,a.byteLength);return L.set(new Uint8Array(a),i),f.Internals.bufferOnUnmaps[e].push(()=>ne(i)),i},to=function(e,r,t,n,a){r=Z(r),t=Z(t);var i=f.getJsObject(e);f.Internals.bufferOnUnmaps[e]=[],a==-1&&(a=void 0),f.Internals.futureInsert(r,i.mapAsync(t,n,a).then(()=>{Nr(r,1,0)},o=>{var u=b(),c=te(o.message),d=o.name===\"AbortError\"?4:o.name===\"OperationError\"?3:0;Nr(r,d,c),delete f.Internals.bufferOnUnmaps[e]}))},no=e=>{var r=f.getJsObject(e),t=f.Internals.bufferOnUnmaps[e];if(t){for(var n=0;n<t.length;++n)t[n]();delete f.Internals.bufferOnUnmaps[e],r.unmap()}},ao=e=>{delete f.Internals.jsObjects[e]},io=(e,r,t)=>{var n=!!l[r+32>>2],a={label:f.makeStringFromOptionalStringView(r+4),usage:l[r+16>>2],size:l[r+4+24>>2]*4294967296+l[r+24>>2],mappedAtCreation:n},i=f.getJsObject(e),o;try{o=i.createBuffer(a)}catch{return!1}return f.Internals.jsObjectInsert(t,o),n&&(f.Internals.bufferOnUnmaps[t]=[]),!0},oo=(e,r,t)=>{var n=l[r>>2],a=l[n+4>>2],i={label:f.makeStringFromOptionalStringView(r+4),code:\"\"};switch(a){case 2:{i.code=f.makeStringFromStringView(n+8);break}}var o=f.getJsObject(e);f.Internals.jsObjectInsert(t,o.createShaderModule(i))},so=e=>{const r=f.getJsObject(e);r.onuncapturederror=null,r.destroy()},uo=function(e,r){r=Z(r);var t=f.getJsObject(e);f.Internals.futureInsert(r,t.popErrorScope().then(n=>{var a=5;n?n instanceof GPUValidationError?a=2:n instanceof GPUOutOfMemoryError?a=3:n instanceof GPUInternalError&&(a=4):a=1;var i=b(),o=n?te(n.message):0;Jr(r,1,a,o),S(i)},n=>{var a=b(),i=te(n.message);Jr(r,1,5,i),S(a)}))},co={rgba8unorm:22,bgra8unorm:27},lo=()=>{var e=navigator.gpu.getPreferredCanvasFormat();return co[e]};function fo(e,r,t,n){r=Z(r);var a;if(t){var i=l[t+4>>2];a={featureLevel:f.FeatureLevel[i],powerPreference:f.PowerPreference[l[t+8>>2]],forceFallbackAdapter:!!l[t+12>>2]};var o=l[t>>2];if(o!==0){var u=l[o+4>>2],c=o;a.xrCompatible=!!l[c+8>>2]}}if(!(\"gpu\"in navigator)){var d=b(),m=te(\"WebGPU not available on this browser (navigator.gpu is not available)\");Be(r,3,n,m),S(d);return}f.Internals.futureInsert(r,navigator.gpu.requestAdapter(a).then(p=>{if(p)f.Internals.jsObjectInsert(n,p),Be(r,1,n,0);else{var h=b(),y=te(\"WebGPU not available on this browser (requestAdapter returned null)\");Be(r,3,n,y),S(h)}},p=>{var h=b(),y=te(p.message);Be(r,4,n,y),S(h)}))}var vo={error:1,warning:2,info:3},mo=function(e,r,t){r=Z(r);var n=f.getJsObject(e);f.Internals.futureInsert(r,n.getCompilationInfo().then(a=>{const i=a.messages.length;if(l[t+4>>2]=i,i){for(var o=1,u=[],c=0;c<i;++c){var d=Q(a.messages[c].message);o+=d,u.push(d)}var m=X(o),p=X(48*i);l[t+8>>2]=p;for(var h=X(32*i),c=0;c<i;++c){var y=a.messages[c],_=p+48*c,w=h+32*c;f.setStringView(_+4,m,u[c]),l[_>>2]=w,T[_+12>>2]=vo[y.type],B[_+16>>3]=BigInt(y.lineNum),B[_+24>>3]=BigInt(y.linePos),B[_+32>>3]=BigInt(y.offset),B[_+40>>3]=BigInt(y.length),l[w>>2]=0,T[w+4>>2]=327743,B[w+8>>3]=BigInt(y.linePos),B[w+16>>3]=BigInt(y.offset),B[w+24>>3]=BigInt(y.length),M(y.message,m,u[c]+1),m+=u[c]}}Kt(r,1,t)},()=>{ue(\"Unexpected failure in GPUShaderModule.getCompilationInfo().\")}))},po=()=>{ue(\"TODO: Implement asyncify-free WaitAny for timeout=0\")},rr={},_o=()=>Zr||\"./this.program\",Pe=()=>{if(!Pe.strings){var e=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\",r={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:e,_:_o()};for(var t in rr)rr[t]===void 0?delete r[t]:r[t]=rr[t];var n=[];for(var t in r)n.push(`${t}=${r[t]}`);Pe.strings=n}return Pe.strings},go=(e,r)=>{var t=0,n=0;for(var a of Pe()){var i=r+t;l[e+n>>2]=i,t+=M(a,i,1/0)+1,n+=4}return 0},ho=(e,r)=>{var t=Pe();l[e>>2]=t.length;var n=0;for(var a of t)n+=Q(a)+1;return l[r>>2]=n,0};function yo(e){try{var r=R.getStreamFromFD(e);return s.close(r),0}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}function wo(e,r){try{var t=0,n=0,a=0,i=R.getStreamFromFD(e),o=i.tty?2:s.isDir(i.mode)?3:s.isLink(i.mode)?7:4;return W[r]=o,D[r+2>>1]=a,B[r+8>>3]=BigInt(t),B[r+16>>3]=BigInt(n),0}catch(u){if(typeof s>\"u\"||u.name!==\"ErrnoError\")throw u;return u.errno}}var bo=(e,r,t,n)=>{for(var a=0,i=0;i<t;i++){var o=l[r>>2],u=l[r+4>>2];r+=8;var c=s.read(e,W,o,u,n);if(c<0)return-1;if(a+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return a};function So(e,r,t,n){try{var a=R.getStreamFromFD(e),i=bo(a,r,t);return l[n>>2]=i,0}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return o.errno}}function Co(e,r,t,n){r=Z(r);try{if(isNaN(r))return 61;var a=R.getStreamFromFD(e);return s.llseek(a,r,t),B[n>>3]=BigInt(a.position),a.getdents&&r===0&&t===0&&(a.getdents=null),0}catch(i){if(typeof s>\"u\"||i.name!==\"ErrnoError\")throw i;return i.errno}}var ko=(e,r,t,n)=>{for(var a=0,i=0;i<t;i++){var o=l[r>>2],u=l[r+4>>2];r+=8;var c=s.write(e,W,o,u,n);if(c<0)return-1;if(a+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return a};function Eo(e,r,t,n){try{var a=R.getStreamFromFD(e),i=ko(a,r,t);return l[n>>2]=i,0}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return o.errno}}var To=e=>e;function Fo(e,r){try{return vr(L.subarray(e,e+r)),0}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}var xo=(e,r)=>{var t=f.getJsObject(e);return f.fillAdapterInfoStruct(t.info,r),1},Oo=(e,r)=>{var t=f.getJsObject(e);return f.fillLimitStruct(t.limits,r),1},jo=(e,r)=>{var t=f.getJsObject(e);return t.features.has(f.FeatureName[r])},Ao=function(e){var r=(()=>{var t=f.getJsObject(e);return t.size})();return BigInt(r)},Do=function(e){var r=(()=>{var t=f.getJsObject(e);return t.usage})();return BigInt(r)},Po=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4),timestampWrites:f.makePassTimestampWrites(l[r+12>>2])});var n=f.getJsObject(e),a=Pr(0);return f.Internals.jsObjectInsert(a,n.beginComputePass(t)),a},Io=(e,r)=>{function t(d){var m=l[d+4>>2];if(m!==0){var p=T[d+8>>2];p==-1&&(p=void 0);var h=l[d+16>>2],y=l[d+20>>2],_=f.makeColor(d+24);return{view:f.getJsObject(m),depthSlice:p,resolveTarget:f.getJsObject(l[d+12>>2]),clearValue:_,loadOp:f.LoadOp[h],storeOp:f.StoreOp[y]}}}function n(d,m){for(var p=[],h=0;h<d;++h)p.push(t(m+56*h));return p}function a(d){if(d!==0)return{view:f.getJsObject(l[d+4>>2]),depthClearValue:se[d+16>>2],depthLoadOp:f.LoadOp[l[d+8>>2]],depthStoreOp:f.StoreOp[l[d+12>>2]],depthReadOnly:!!l[d+20>>2],stencilClearValue:l[d+32>>2],stencilLoadOp:f.LoadOp[l[d+24>>2]],stencilStoreOp:f.StoreOp[l[d+28>>2]],stencilReadOnly:!!l[d+36>>2]}}function i(d){var m=l[d>>2],p=void 0;if(m!==0){var h=l[m+4>>2],y=m;p=l[y+4+8>>2]*4294967296+l[y+8>>2]}var _={label:f.makeStringFromOptionalStringView(d+4),colorAttachments:n(l[d+12>>2],l[d+16>>2]),depthStencilAttachment:a(l[d+20>>2]),occlusionQuerySet:f.getJsObject(l[d+24>>2]),timestampWrites:f.makePassTimestampWrites(l[d+28>>2]),maxDrawCount:p};return _}var o=i(r),u=f.getJsObject(e),c=$r(0);return f.Internals.jsObjectInsert(c,u.beginRenderPass(o)),c};function Bo(e,r,t,n,a,i){t=Z(t),a=Z(a),i=Z(i);var o=f.getJsObject(e),u=f.getJsObject(r),c=f.getJsObject(n);o.copyBufferToBuffer(u,t,c,a,i)}var Ro=(e,r)=>{var t=f.getJsObject(e),n=Ar(0);return f.Internals.jsObjectInsert(n,t.finish()),n};function $o(e,r,t,n,a,i){i=Z(i);var o=f.getJsObject(e),u=f.getJsObject(r),c=f.getJsObject(a);o.resolveQuerySet(u,t,n,c,i)}var Go=(e,r,t,n)=>{var a=f.getJsObject(e);a.dispatchWorkgroups(r,t,n)},Mo=e=>{var r=f.getJsObject(e);r.end()},Lo=(e,r,t,n,a)=>{var i=f.getJsObject(e),o=f.getJsObject(t);n==0?i.setBindGroup(r,o):i.setBindGroup(r,o,l,a>>2,n)},Wo=(e,r)=>{var t=f.getJsObject(e),n=f.getJsObject(r);t.setPipeline(n)},Uo=(e,r)=>{var t=f.getJsObject(e),n=Ie(0);return f.Internals.jsObjectInsert(n,t.getBindGroupLayout(r)),n},Vo=e=>l[e>>2]+T[e+4>>2]*4294967296,No=(e,r)=>{function t(u){var c=l[u+8>>2],d=l[u+32>>2],m=l[u+36>>2],p=l[u+4>>2];if(c){var h=Vo(u+24);return h==-1&&(h=void 0),{binding:p,resource:{buffer:f.getJsObject(c),offset:l[u+4+16>>2]*4294967296+l[u+16>>2],size:h}}}else return d?{binding:p,resource:f.getJsObject(d)}:{binding:p,resource:f.getJsObject(m)}}function n(u,c){for(var d=[],m=0;m<u;++m)d.push(t(c+40*m));return d}var a={label:f.makeStringFromOptionalStringView(r+4),layout:f.getJsObject(l[r+12>>2]),entries:n(l[r+16>>2],l[r+20>>2])},i=f.getJsObject(e),o=jr(0);return f.Internals.jsObjectInsert(o,i.createBindGroup(a)),o},Jo=(e,r)=>{function t(p){var h=l[p+4>>2];if(h)return{type:f.BufferBindingType[h],hasDynamicOffset:!!l[p+8>>2],minBindingSize:l[p+4+16>>2]*4294967296+l[p+16>>2]}}function n(p){var h=l[p+4>>2];if(h)return{type:f.SamplerBindingType[h]}}function a(p){var h=l[p+4>>2];if(h)return{sampleType:f.TextureSampleType[h],viewDimension:f.TextureViewDimension[l[p+8>>2]],multisampled:!!l[p+12>>2]}}function i(p){var h=l[p+4>>2];if(h)return{access:f.StorageTextureAccess[h],format:f.TextureFormat[l[p+8>>2]],viewDimension:f.TextureViewDimension[l[p+12>>2]]}}function o(p){return{binding:l[p+4>>2],visibility:l[p+8>>2],buffer:t(p+24),sampler:n(p+48),texture:a(p+56),storageTexture:i(p+72)}}function u(p,h){for(var y=[],_=0;_<p;++_)y.push(o(h+88*_));return y}var c={label:f.makeStringFromOptionalStringView(r+4),entries:u(l[r+12>>2],l[r+16>>2])},d=f.getJsObject(e),m=Ie(0);return f.Internals.jsObjectInsert(m,d.createBindGroupLayout(c)),m},zo=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4)});var n=f.getJsObject(e),a=Dr(0);return f.Internals.jsObjectInsert(a,n.createCommandEncoder(t)),a},qo=(e,r)=>{var t=f.makeComputePipelineDesc(r),n=f.getJsObject(e),a=Ir(0);return f.Internals.jsObjectInsert(a,n.createComputePipeline(t)),a},Ho=(e,r)=>{for(var t=l[r+12>>2],n=l[r+16>>2],a=[],i=0;i<t;++i)a.push(f.getJsObject(l[n+4*i>>2]));var o={label:f.makeStringFromOptionalStringView(r+4),bindGroupLayouts:a},u=f.getJsObject(e),c=Br(0);return f.Internals.jsObjectInsert(c,u.createPipelineLayout(o)),c},Qo=(e,r)=>{var t={type:f.QueryType[l[r+12>>2]],count:l[r+16>>2]},n=f.getJsObject(e),a=Rr(0);return f.Internals.jsObjectInsert(a,n.createQuerySet(t)),a},Zo=(e,r)=>{var t=f.makeRenderPipelineDesc(r),n=f.getJsObject(e),a=Gr(0);return f.Internals.jsObjectInsert(a,n.createRenderPipeline(t)),a},Xo=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4),addressModeU:f.AddressMode[l[r+12>>2]],addressModeV:f.AddressMode[l[r+16>>2]],addressModeW:f.AddressMode[l[r+20>>2]],magFilter:f.FilterMode[l[r+24>>2]],minFilter:f.FilterMode[l[r+28>>2]],mipmapFilter:f.MipmapFilterMode[l[r+32>>2]],lodMinClamp:se[r+36>>2],lodMaxClamp:se[r+40>>2],compare:f.CompareFunction[l[r+44>>2]],maxAnisotropy:me[r+48>>1]});var n=f.getJsObject(e),a=Mr(0);return f.Internals.jsObjectInsert(a,n.createSampler(t)),a},Yo=(e,r)=>{var t={label:f.makeStringFromOptionalStringView(r+4),size:f.makeExtent3D(r+28),mipLevelCount:l[r+44>>2],sampleCount:l[r+48>>2],dimension:f.TextureDimension[l[r+24>>2]],format:f.TextureFormat[l[r+40>>2]],usage:l[r+16>>2]},n=l[r+52>>2];if(n){var a=l[r+56>>2];t.viewFormats=Array.from(T.subarray(a>>2,a+n*4>>2),u=>f.TextureFormat[u])}var i=f.getJsObject(e),o=tr(0);return f.Internals.jsObjectInsert(o,i.createTexture(t)),o},Ko={\"core-features-and-limits\":1,\"depth-clip-control\":2,\"depth32float-stencil8\":3,\"texture-compression-bc\":4,\"texture-compression-bc-sliced-3d\":5,\"texture-compression-etc2\":6,\"texture-compression-astc\":7,\"texture-compression-astc-sliced-3d\":8,\"timestamp-query\":9,\"indirect-first-instance\":10,\"shader-f16\":11,\"rg11b10ufloat-renderable\":12,\"bgra8unorm-storage\":13,\"float32-filterable\":14,\"float32-blendable\":15,\"clip-distances\":16,\"dual-source-blending\":17,subgroups:18,\"texture-formats-tier1\":19,\"texture-formats-tier2\":20,\"chromium-experimental-unorm16-texture-formats\":327692,\"chromium-experimental-snorm16-texture-formats\":327693,\"chromium-experimental-multi-draw-indirect\":327732},es=(e,r)=>{var t=f.getJsObject(e),n=X(t.features.size*4),a=0,i=0;t.features.forEach(o=>{var u=Ko[o];u>=0&&(T[n+a>>2]=u,a+=4,i++)}),l[r+4>>2]=n,l[r>>2]=i},rs=(e,r)=>{var t=f.getJsObject(e);return f.fillLimitStruct(t.limits,r),1},ts=(e,r)=>{var t=f.getJsObject(e);return t.features.has(f.FeatureName[r])},ns=(e,r)=>{var t=f.getJsObject(e);t.pushErrorScope(f.ErrorFilter[r])},as=e=>e>2?P(e):e,is=[0,typeof document<\"u\"?document:0,typeof window<\"u\"?window:0],os=e=>{e=as(e);var r=is[e]||(typeof document<\"u\"?document.querySelector(e):null);return r},ss=os,us=(e,r)=>{var t=l[r>>2],n=t,a=l[n+8>>2],i=ss(a),o=i.getContext(\"webgpu\");if(!o)return 0;o.surfaceLabelWebGPU=f.makeStringFromOptionalStringView(r+4);var u=Lr(0);return f.Internals.jsObjectInsert(u,o),u},cs=e=>{f.getJsObject(e).destroy()},ls=(e,r,t)=>{var n=f.getJsObject(e),a=Array.from(T.subarray(t>>2,t+r*4>>2),i=>f.getJsObject(i));n.submit(a)};function fs(e,r,t,n,a){t=Z(t);var i=f.getJsObject(e),o=f.getJsObject(r),u=L.subarray(n,n+a);i.writeBuffer(o,t,u,0,a)}var ds=(e,r,t,n,a,i)=>{var o=f.getJsObject(e),u=f.makeTexelCopyTextureInfo(r),c=f.makeTexelCopyBufferLayout(a),d=f.makeExtent3D(i),m=L.subarray(t,t+n);o.writeTexture(u,m,c,d)},vs=(e,r,t,n,a)=>{n>>>=0,a>>>=0;var i=f.getJsObject(e);i.draw(r,t,n,a)},ms=e=>{var r=f.getJsObject(e);r.end()},ps=(e,r,t,n,a)=>{var i=f.getJsObject(e),o=f.getJsObject(t);n==0?i.setBindGroup(r,o):i.setBindGroup(r,o,l,a>>2,n)},_s=(e,r)=>{var t=f.getJsObject(e),n=f.getJsObject(r);t.setPipeline(n)},gs=(e,r)=>{var t=f.getJsObject(e),n=Ie(0);return f.Internals.jsObjectInsert(n,t.getBindGroupLayout(r)),n},hs=(e,r)=>{var t=l[r+4>>2],n=f.getJsObject(e),a=[l[r+24>>2],l[r+28>>2]];a[0]!==0&&(n.canvas.width=a[0]),a[1]!==0&&(n.canvas.height=a[1]);var i={device:f.getJsObject(t),format:f.TextureFormat[l[r+8>>2]],usage:l[r+16>>2],alphaMode:f.CompositeAlphaMode[l[r+40>>2]]},o=l[r+32>>2];if(o){var u=l[r+36>>2];i.viewFormats=Array.from(T.subarray(u>>2,u+o*4>>2),p=>f.TextureFormat[p])}{var c=l[r>>2];if(c!==0){var d=l[c+4>>2],m=c;i.colorSpace=f.PredefinedColorSpace[l[m+8>>2]],i.toneMapping={mode:f.ToneMappingMode[l[m+12>>2]]}}}n.configure(i)},ys=(e,r)=>{var t=f.getJsObject(e);try{var n=tr(0);f.Internals.jsObjectInsert(n,t.getCurrentTexture()),l[r+4>>2]=n,T[r+8>>2]=1}catch{l[r+4>>2]=0,T[r+8>>2]=6}},ws=e=>{var r=f.getJsObject(e);r.unconfigure()},bs=(e,r)=>{var t;if(r){var n=l[r+24>>2],a=l[r+32>>2];t={label:f.makeStringFromOptionalStringView(r+4),format:f.TextureFormat[l[r+12>>2]],dimension:f.TextureViewDimension[l[r+16>>2]],baseMipLevel:l[r+20>>2],mipLevelCount:n===4294967295?void 0:n,baseArrayLayer:l[r+28>>2],arrayLayerCount:a===4294967295?void 0:a,aspect:f.TextureAspect[l[r+36>>2]]}}var i=f.getJsObject(e),o=Wr(0);return f.Internals.jsObjectInsert(o,i.createView(t)),o},Ss=e=>{f.getJsObject(e).destroy()},Cs=e=>{var r=f.getJsObject(e);return r.depthOrArrayLayers},ks=e=>{var r=f.getJsObject(e);return f.TextureFormat.indexOf(r.format)},Es=e=>{var r=f.getJsObject(e);return r.height},Ts=e=>{var r=f.getJsObject(e);return r.width},Il=e=>(e>>>=0,\"0x\"+e.toString(16).padStart(8,\"0\")),Nt=e=>{var r=v[\"_\"+e];return r},Fs=(e,r)=>{W.set(e,r)},Jt=(e,r,t,n,a)=>{var i={string:_=>{var w=0;return _!=null&&_!==0&&(w=te(_)),w},array:_=>{var w=Vt(_.length);return Fs(_,w),w}};function o(_){return r===\"string\"?P(_):r===\"boolean\"?!!_:_}var u=Nt(e),c=[],d=0;if(n)for(var m=0;m<n.length;m++){var p=i[t[m]];p?(d===0&&(d=b()),c[m]=p(n[m])):c[m]=n[m]}var h=u(...c);function y(_){return d!==0&&S(d),o(_)}return h=y(h),h},xs=(e,r,t,n)=>{var a=!t||t.every(o=>o===\"number\"||o===\"boolean\"),i=r!==\"string\";return i&&a&&!n?Nt(e):(...o)=>Jt(e,r,t,o,n)};if(s.createPreloadedFile=qn,s.preloadFile=pt,s.staticInit(),va(),Ea(),z.init(),v.noExitRuntime&&(lr=v.noExitRuntime),v.preloadPlugins&&(mt=v.preloadPlugins),v.print&&(Te=v.print),v.printErr&&(ae=v.printErr),v.wasmBinary&&(Fe=v.wasmBinary),v.arguments&&(pn=v.arguments),v.thisProgram&&(Zr=v.thisProgram),v.preInit)for(typeof v.preInit==\"function\"&&(v.preInit=[v.preInit]);v.preInit.length>0;)v.preInit.shift()();v.ENV=rr,v.ccall=Jt,v.cwrap=xs,v.WebGPU=f,v.lengthBytesUTF8=Q,v.stringToUTF8=M;var Os={1505056:e=>{console.warn(\"looking for element: \"+P(e))}};function js(e,r){const t=window.injectWebGPU(e);st(r,t.adapPtr,\"i32\"),st(r+4,t.devPtr,\"i32\")}function As(e){if(typeof v.locateFile==\"function\")try{const r=v.locateFile(P(e));if(r){const t=Q(r)+1,n=X(t);if(n)return M(r,n,t),n}}catch(r){console.warn(\"Module.locateFile failed:\",r)}return 0}function Ds(e){try{if(typeof v<\"u\"&&v.workerUrl){var r=v.workerUrl,t=Q(r)+1,n=X(t);return M(r,n,t),n}}catch(a){console.warn(\"Failed to read Module.workerUrl:\",a)}if(e){var t=Q(P(e))+1,n=X(t);return M(P(e),n,t),n}return 0}function Ps(){return navigator.hardwareConcurrency||1}function Is(e){v._aquaLiveTransports||(v._aquaLiveTransports=new Set),v._aquaLiveTransports.add(e),queueMicrotask(function(){v._aquaLiveTransports&&v._aquaLiveTransports.has(e)&&v._aquaDrainDeferredCompletions(e)})}function Bs(e){v._aquaLiveTransports&&v._aquaLiveTransports.delete(e)}function Rs(e,r){if(!v.createDeserializeWorker)return console.error(\"createDeserializeWorker not available - worker-bridge.ts not loaded\"),0;const t=P(e);return v.createDeserializeWorker(t,v,r)?1:0}function $s(e,r,t,n,a){if(!v.submitToWorker)return console.error(\"submitToWorker not available - worker-bridge.ts not loaded\"),0;try{const i=t,o=n,u=new ArrayBuffer(o);return new Uint8Array(u).set(v.HEAPU8.subarray(i,i+o)),v.submitToWorker(e,r,u,a)?1:0}catch(i){return console.error(\"submitToWorker failed:\",i),0}}function Gs(e,r){v.cancelRequest&&v.cancelRequest(e,r)}function Bl(){return v.isWorkerReady&&v.isWorkerReady()?1:0}function Ms(){v.terminateWorker&&v.terminateWorker()}function Ls(e,r){typeof globalThis.Sentry<\"u\"&&typeof globalThis.Sentry.captureException==\"function\"&&globalThis.Sentry.captureException(new Error(P(e,r)))}function Ws(e){const r=P(e);try{const t=new URL(r)}catch{return 0}return 1}function Us(e,r){const t=P(e);let n;try{n=new URL(t)}catch(u){return console.error(`Failed to parse URL ${t} due to error : ${u}`),0}function a(u){return u>>>0}function i(u){const c=Q(u)+1,d=X(c);return M(u,d,c),a(d)}let o=a(r)>>2;return l[o]=i(n.origin),l[o+1]=i(n.pathname.substring(1)),l[o+2]=i(n.search.substring(1)),l[o+3]=i(n.hash.substring(1)),1}function Vs(e){const r=P(e),t=encodeURIComponent(r),n=Q(t)+1,a=X(n);return M(t,a,n),a>>>0}function Ns(e){v.__mirisPrivatePromiseTracker||(v.__mirisPrivatePromiseTracker=new Map);let r,t;const n=new Promise(function(a,i){r=a,t=i});return v.__mirisPrivatePromiseTracker.set(e,{resolve:r,reject:t}),J.toHandle(n)}function Js(e,r){const t=v.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}const{resolve:n}=t.get(e);if(!n){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}t.delete(e),n(J.toValue(r))}function Rl(e,r){const t=v.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}const{reject:n}=t.get(e);if(!n){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}t.delete(e),n(J.toValue(r))}var zt,zs,qs,Hs,Qs,Zs,Xs,Ys,Ks,eu,ru,tu,nu,au,iu,ou,su,uu,cu,lu,fu,du,vu,mu,pu,_u,gu,hu,yu,wu,bu,Su,Cu,ku,Eu,Tu,Fu,xu,Ou,ju,Au,Du,Pu,Iu,Bu,Ru,$u,Gu,Mu,Lu,Wu,Uu,Vu,Nu,Ju,zu,qu,Hu,Qu,Zu,Xu,Yu,Ku,ec,rc,tc,nc,ac,ic,oc,sc,uc,cc,lc,fc,dc,vc,mc,pc,_c,gc,X,ne,hc,yc,jr,Ie,Ar,Dr,Pr,Ir,Br,Rr,qt,Ht,$r,Gr,Mr,Lr,tr,Wr,Qt,Zt,Xt,Ur,Yt,Kt,wc,bc,Vr,Nr,Jr,Be,zr,Sc,en,rn,tn,E,nn,an,on,sn,un,cn,ln,fn;function Cc(e){zt=e.__getTypeName,v._CreateAquaContext=zs=e.CreateAquaContext,v._BeginFrame=qs=e.BeginFrame,v._DestroyAquaContext=Hs=e.DestroyAquaContext,v._SetMaxRequestCacheSize=Qs=e.SetMaxRequestCacheSize,v._TriggerTestError=Zs=e.TriggerTestError,v._CreateClientForContext=Xs=e.CreateClientForContext,v._CreateClient=Ys=e.CreateClient,v._DestroyClient=Ks=e.DestroyClient,v._ClearScene=eu=e.ClearScene,v._WaitForSceneExecution=ru=e.WaitForSceneExecution,v._SetPersistentDataDirectory=tu=e.SetPersistentDataDirectory,v._SetClientSpatialFormat=nu=e.SetClientSpatialFormat,v._SetAssetViewerKey=au=e.SetAssetViewerKey,v._PrefetchContent=iu=e.PrefetchContent,v._PrintSceneObjectHierarchy=ou=e.PrintSceneObjectHierarchy,v._CancelAllSceneExecution=su=e.CancelAllSceneExecution,v._AddStream=uu=e.AddStream,v._AddStreamById=cu=e.AddStreamById,v._RemoveStream=lu=e.RemoveStream,v._SetStreamFetchMode=fu=e.SetStreamFetchMode,v._GetStreamFetchMode=du=e.GetStreamFetchMode,v._GetStreamStatus=vu=e.GetStreamStatus,v._UpdateSceneExecution=mu=e.UpdateSceneExecution,v._RecordFrameTime=pu=e.RecordFrameTime,v._TakeRenderRequired=_u=e.TakeRenderRequired,v._LockScene=gu=e.LockScene,v._UnlockScene=hu=e.UnlockScene,v._SetMainCameraTransform=yu=e.SetMainCameraTransform,v._SetMainCameraViewFrustum=wu=e.SetMainCameraViewFrustum,v._SetSceneObjectTransform=bu=e.SetSceneObjectTransform,v._SetRuntimeSettings=Su=e.SetRuntimeSettings,v._SetOctreeSolverMode=Cu=e.SetOctreeSolverMode,v._SetBudgetControllerType=ku=e.SetBudgetControllerType,v._SetMaxCacheSize=Eu=e.SetMaxCacheSize,v._SetPreferSharkEncodingProfiles=Tu=e.SetPreferSharkEncodingProfiles,v._HasFeature=Fu=e.HasFeature,v._GetFeatureVersion=xu=e.GetFeatureVersion,v._GetFeatureState=Ou=e.GetFeatureState,v._GetAssetFormatVersion=ju=e.GetAssetFormatVersion,v._GetSceneChangesCounts=Au=e.GetSceneChangesCounts,v._GetSceneChanges=Du=e.GetSceneChanges,v._GetSceneRootObjectId=Pu=e.GetSceneRootObjectId,v._GetSceneObjectChildrenCount=Iu=e.GetSceneObjectChildrenCount,v._GetSceneObjectChildren=Bu=e.GetSceneObjectChildren,v._GetSceneObjectType=Ru=e.GetSceneObjectType,v._GetDrawnOctantMask=$u=e.GetDrawnOctantMask,v._GetOctantLocalBoundingBoxes=Gu=e.GetOctantLocalBoundingBoxes,v._GetDrMapLadderRoughnessLevels=Mu=e.GetDrMapLadderRoughnessLevels,v._LogOctreeStats=Lu=e.LogOctreeStats,v._GetSceneObjectParent=Wu=e.GetSceneObjectParent,v._IsSceneObjectAncestorOf=Uu=e.IsSceneObjectAncestorOf,v._GetSceneObjectName=Vu=e.GetSceneObjectName,v._GetAttributeCount=Nu=e.GetAttributeCount,v._HasAttribute=Ju=e.HasAttribute,v._GetAttribute=zu=e.GetAttribute,v._TakeAttribute=qu=e.TakeAttribute,v._GetBufferHash=Hu=e.GetBufferHash,v._GetWorldBoundingBox=Qu=e.GetWorldBoundingBox,v._GetLocalBoundingBox=Zu=e.GetLocalBoundingBox,v._MirisGetLocalTransform=Xu=e.MirisGetLocalTransform,v._MirisGetWorldTransform=Yu=e.MirisGetWorldTransform,v._MirisGetTransformRelativeToAncestor=Ku=e.MirisGetTransformRelativeToAncestor,v._GetBoundingBoxRelativeToAncestor=ec=e.GetBoundingBoxRelativeToAncestor,v._GetMetadata=rc=e.GetMetadata,v._GetLodIndex=tc=e.GetLodIndex,v._GetLibAquaVersion=nc=e.GetLibAquaVersion,v._GetLodMinMaxIndices=ac=e.GetLodMinMaxIndices,v._GetCameraCount=ic=e.GetCameraCount,v._GetCameraIds=oc=e.GetCameraIds,v._GetDefaultCameraId=sc=e.GetDefaultCameraId,v._GetViewingVolumeId=uc=e.GetViewingVolumeId,v._GetSceneMetadata=cc=e.GetSceneMetadata,v._GetSceneOperatorCount=lc=e.GetSceneOperatorCount,v._SetVariantSelection=fc=e.SetVariantSelection,v.__Z26GetSceneObjectNameAsStringP10AquaClienti=dc=e._Z26GetSceneObjectNameAsStringP10AquaClienti,v.__Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE=vc=e._Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE,v.__Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE=mc=e._Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE,v.__Z33TakeEvictedClientSideAttributeIdsP10AquaClient=pc=e._Z33TakeEvictedClientSideAttributeIdsP10AquaClient,v.__Z30GetActiveClientSideIdsCheckSumv=_c=e._Z30GetActiveClientSideIdsCheckSumv,gc=e.__cxa_free_exception,v._malloc=X=e.malloc,v._free=ne=e.free,v._aquaDrainDeferredCompletions=hc=e.aquaDrainDeferredCompletions,v._onWorkerResult=yc=e.onWorkerResult,jr=e.emwgpuCreateBindGroup,Ie=e.emwgpuCreateBindGroupLayout,Ar=e.emwgpuCreateCommandBuffer,Dr=e.emwgpuCreateCommandEncoder,Pr=e.emwgpuCreateComputePassEncoder,Ir=e.emwgpuCreateComputePipeline,Br=e.emwgpuCreatePipelineLayout,Rr=e.emwgpuCreateQuerySet,qt=e.emwgpuCreateRenderBundle,Ht=e.emwgpuCreateRenderBundleEncoder,$r=e.emwgpuCreateRenderPassEncoder,Gr=e.emwgpuCreateRenderPipeline,Mr=e.emwgpuCreateSampler,Lr=e.emwgpuCreateSurface,tr=e.emwgpuCreateTexture,Wr=e.emwgpuCreateTextureView,Qt=e.emwgpuCreateAdapter,Zt=e.emwgpuCreateBuffer,Xt=e.emwgpuCreateDevice,Ur=e.emwgpuCreateQueue,Yt=e.emwgpuCreateShaderModule,Kt=e.emwgpuOnCompilationInfoCompleted,wc=e.emwgpuOnCreateComputePipelineCompleted,bc=e.emwgpuOnCreateRenderPipelineCompleted,Vr=e.emwgpuOnDeviceLostCompleted,Nr=e.emwgpuOnMapAsyncCompleted,Jr=e.emwgpuOnPopErrorScopeCompleted,Be=e.emwgpuOnRequestAdapterCompleted,zr=e.emwgpuOnRequestDeviceCompleted,Sc=e.emwgpuOnWorkDoneCompleted,en=e.emwgpuOnUncapturedError,rn=e._emscripten_timeout,tn=e.memalign,E=e.setThrew,nn=e._emscripten_tempret_set,an=e._emscripten_stack_restore,on=e._emscripten_stack_alloc,sn=e.emscripten_stack_get_current,un=e.__cxa_decrement_exception_refcount,cn=e.__cxa_increment_exception_refcount,ln=e.__cxa_can_catch,fn=e.__cxa_get_exception_ptr}var dn={__cxa_begin_catch:An,__cxa_end_catch:Dn,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:In,__cxa_find_matching_catch_4:Bn,__cxa_rethrow:Rn,__cxa_throw:$n,__cxa_uncaught_exceptions:Gn,__resumeException:Mn,__syscall_fcntl64:Hn,__syscall_fstat64:Qn,__syscall_ioctl:Zn,__syscall_lstat64:Xn,__syscall_newfstatat:Yn,__syscall_openat:Kn,__syscall_rmdir:ea,__syscall_stat64:ra,__syscall_unlinkat:ta,_abort_js:na,_embind_finalize_value_array:ia,_embind_finalize_value_object:oa,_embind_register_bigint:ua,_embind_register_bool:ca,_embind_register_class:Fa,_embind_register_class_constructor:Oa,_embind_register_class_function:ja,_embind_register_class_property:Aa,_embind_register_constant:Da,_embind_register_emval:Pa,_embind_register_enum:Ba,_embind_register_enum_value:Ra,_embind_register_float:Ga,_embind_register_function:Ma,_embind_register_integer:La,_embind_register_memory_view:Wa,_embind_register_optional:Va,_embind_register_std_string:Na,_embind_register_std_wstring:Xa,_embind_register_value_array:Ya,_embind_register_value_array_element:Ka,_embind_register_value_object:ei,_embind_register_value_object_field:ri,_embind_register_void:ti,_emscripten_runtime_keepalive_clear:ni,_emval_create_invoker:ui,_emval_decref:Cr,_emval_get_global:ci,_emval_get_property:li,_emval_incref:fi,_emval_invoke:di,_emval_new_array:vi,_emval_new_cstring:mi,_emval_new_object:pi,_emval_run_destructors:_i,_emval_set_property:gi,_gmtime_js:wi,_localtime_js:Ei,_setitimer_js:Oi,_tzset_js:ji,clock_time_get:Pi,emjsCreateTrackedPromise:Ns,emjsEncodeUriComponent:Vs,emjsGetPartsFromUrl:Us,emjsIsValidUrl:Ws,emjsResolveTrackedPromise:Js,emjsSentryCaptureException:Ls,emscripten_asm_const_int:Ri,emscripten_console_warn:$i,emscripten_date_now:Lt,emscripten_errn:Gi,emscripten_fetch_free:Mi,emscripten_get_heap_max:Li,emscripten_get_now:Tr,emscripten_has_asyncify:Wi,emscripten_is_main_browser_thread:Ui,emscripten_outn:Vi,emscripten_resize_heap:zi,emscripten_sleep:qi,emscripten_start_fetch:Xi,emwgpuAdapterRequestDevice:Ki,emwgpuBufferDestroy:eo,emwgpuBufferGetConstMappedRange:ro,emwgpuBufferMapAsync:to,emwgpuBufferUnmap:no,emwgpuDelete:ao,emwgpuDeviceCreateBuffer:io,emwgpuDeviceCreateShaderModule:oo,emwgpuDeviceDestroy:so,emwgpuDevicePopErrorScope:uo,emwgpuGetPreferredFormat:lo,emwgpuInstanceRequestAdapter:fo,emwgpuShaderModuleGetCompilationInfo:mo,emwgpuWaitAny:po,environ_get:go,environ_sizes_get:ho,fd_close:yo,fd_fdstat_get:wo,fd_read:So,fd_seek:Co,fd_write:Eo,getHardwareConcurrency:Ps,getWorkerUrlFromModule:Ds,impl_cancelRequest:Gs,impl_createDeserializeWorker:Rs,impl_submitToWorker:$s,impl_terminateWorker:Ms,invoke_diii:bl,invoke_diiiii:Mc,invoke_djj:cl,invoke_fi:Kc,invoke_fiii:vl,invoke_i:Bc,invoke_ii:Ec,invoke_iii:Ac,invoke_iiifiii:Wc,invoke_iiii:Gc,invoke_iiiid:Sl,invoke_iiiii:Pc,invoke_iiiiid:hl,invoke_iiiiii:Rc,invoke_iiiiiii:Lc,invoke_iiiiiiii:yl,invoke_iiiiiiiii:nl,invoke_iiiiiiiiii:Xc,invoke_iiiiiiiiiii:Qc,invoke_iiiiiiiiiiii:Zc,invoke_iiiiij:xl,invoke_iiiiijj:Cl,invoke_iiiij:Fl,invoke_iiiiji:il,invoke_iiiijj:kl,invoke_iiij:Tl,invoke_iij:Ic,invoke_iiji:pl,invoke_iijiiii:$c,invoke_j:rl,invoke_ji:al,invoke_jii:Nc,invoke_jiiii:wl,invoke_v:Dc,invoke_vi:Tc,invoke_viddi:sl,invoke_vif:dl,invoke_vii:xc,invoke_viif:Ol,invoke_viii:Fc,invoke_viiifi:fl,invoke_viiii:kc,invoke_viiiiddiii:ll,invoke_viiiii:jc,invoke_viiiiii:Oc,invoke_viiiiiii:qc,invoke_viiiiiiii:el,invoke_viiiiiiiii:Uc,invoke_viiiiiiiiii:Vc,invoke_viiiiiiiiiii:Hc,invoke_viiiiiiiiiiiiiii:El,invoke_viiij:ol,invoke_viij:ul,invoke_viiji:zc,invoke_viijii:Yc,invoke_viijiiii:ml,invoke_vij:gl,invoke_viji:_l,invoke_vijii:tl,invoke_vijiiii:Jc,js_import_all:js,llvm_eh_typeid_for:To,proc_exit:Gt,random_get:Fo,scheduleMicrotaskDrain:Is,tryLocateWorkerFile:As,unregisterTransportInstance:Bs,wgpuAdapterGetInfo:xo,wgpuAdapterGetLimits:Oo,wgpuAdapterHasFeature:jo,wgpuBufferGetSize:Ao,wgpuBufferGetUsage:Do,wgpuCommandEncoderBeginComputePass:Po,wgpuCommandEncoderBeginRenderPass:Io,wgpuCommandEncoderCopyBufferToBuffer:Bo,wgpuCommandEncoderFinish:Ro,wgpuCommandEncoderResolveQuerySet:$o,wgpuComputePassEncoderDispatchWorkgroups:Go,wgpuComputePassEncoderEnd:Mo,wgpuComputePassEncoderSetBindGroup:Lo,wgpuComputePassEncoderSetPipeline:Wo,wgpuComputePipelineGetBindGroupLayout:Uo,wgpuDeviceCreateBindGroup:No,wgpuDeviceCreateBindGroupLayout:Jo,wgpuDeviceCreateCommandEncoder:zo,wgpuDeviceCreateComputePipeline:qo,wgpuDeviceCreatePipelineLayout:Ho,wgpuDeviceCreateQuerySet:Qo,wgpuDeviceCreateRenderPipeline:Zo,wgpuDeviceCreateSampler:Xo,wgpuDeviceCreateTexture:Yo,wgpuDeviceGetFeatures:es,wgpuDeviceGetLimits:rs,wgpuDeviceHasFeature:ts,wgpuDevicePushErrorScope:ns,wgpuInstanceCreateSurface:us,wgpuQuerySetDestroy:cs,wgpuQueueSubmit:ls,wgpuQueueWriteBuffer:fs,wgpuQueueWriteTexture:ds,wgpuRenderPassEncoderDraw:vs,wgpuRenderPassEncoderEnd:ms,wgpuRenderPassEncoderSetBindGroup:ps,wgpuRenderPassEncoderSetPipeline:_s,wgpuRenderPipelineGetBindGroupLayout:gs,wgpuSurfaceConfigure:hs,wgpuSurfaceGetCurrentTexture:ys,wgpuSurfaceUnconfigure:ws,wgpuTextureCreateView:bs,wgpuTextureDestroy:Ss,wgpuTextureGetDepthOrArrayLayers:Cs,wgpuTextureGetFormat:ks,wgpuTextureGetHeight:Es,wgpuTextureGetWidth:Ts};function kc(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Ec(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function Tc(e,r){var t=b();try{C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function Fc(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function xc(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function Oc(e,r,t,n,a,i,o){var u=b();try{C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function jc(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Ac(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function Dc(e){var r=b();try{C(e)()}catch(t){if(S(r),t!==t+0)throw t;E(1,0)}}function Pc(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Ic(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function Bc(e){var r=b();try{return C(e)()}catch(t){if(S(r),t!==t+0)throw t;E(1,0)}}function Rc(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function $c(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Gc(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function Mc(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Lc(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Wc(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Uc(e,r,t,n,a,i,o,u,c,d){var m=b();try{C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function Vc(e,r,t,n,a,i,o,u,c,d,m){var p=b();try{C(e)(r,t,n,a,i,o,u,c,d,m)}catch(h){if(S(p),h!==h+0)throw h;E(1,0)}}function Nc(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;return E(1,0),0n}}function Jc(e,r,t,n,a,i,o){var u=b();try{C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function zc(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function qc(e,r,t,n,a,i,o,u){var c=b();try{C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function Hc(e,r,t,n,a,i,o,u,c,d,m,p){var h=b();try{C(e)(r,t,n,a,i,o,u,c,d,m,p)}catch(y){if(S(h),y!==y+0)throw y;E(1,0)}}function Qc(e,r,t,n,a,i,o,u,c,d,m){var p=b();try{return C(e)(r,t,n,a,i,o,u,c,d,m)}catch(h){if(S(p),h!==h+0)throw h;E(1,0)}}function Zc(e,r,t,n,a,i,o,u,c,d,m,p){var h=b();try{return C(e)(r,t,n,a,i,o,u,c,d,m,p)}catch(y){if(S(h),y!==y+0)throw y;E(1,0)}}function Xc(e,r,t,n,a,i,o,u,c,d){var m=b();try{return C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function Yc(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Kc(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function el(e,r,t,n,a,i,o,u,c){var d=b();try{C(e)(r,t,n,a,i,o,u,c)}catch(m){if(S(d),m!==m+0)throw m;E(1,0)}}function rl(e){var r=b();try{return C(e)()}catch(t){if(S(r),t!==t+0)throw t;return E(1,0),0n}}function tl(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function nl(e,r,t,n,a,i,o,u,c){var d=b();try{return C(e)(r,t,n,a,i,o,u,c)}catch(m){if(S(d),m!==m+0)throw m;E(1,0)}}function al(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;return E(1,0),0n}}function il(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function ol(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function sl(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function ul(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function cl(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function ll(e,r,t,n,a,i,o,u,c,d){var m=b();try{C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function fl(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function dl(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function vl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function ml(e,r,t,n,a,i,o,u){var c=b();try{C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function pl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function _l(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function gl(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function hl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function yl(e,r,t,n,a,i,o,u){var c=b();try{return C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function wl(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;return E(1,0),0n}}function bl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function Sl(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Cl(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function kl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function El(e,r,t,n,a,i,o,u,c,d,m,p,h,y,_,w){var g=b();try{C(e)(r,t,n,a,i,o,u,c,d,m,p,h,y,_,w)}catch(k){if(S(g),k!==k+0)throw k;E(1,0)}}function Tl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function Fl(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function xl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Ol(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function qr(){if(pe>0){xe=qr;return}if(yn(),pe>0){xe=qr;return}function e(){v.calledRun=!0,!$e&&(wn(),Yr?.(v),v.onRuntimeInitialized?.(),bn())}v.setStatus?(v.setStatus(\"Running...\"),setTimeout(()=>{setTimeout(()=>v.setStatus(\"\"),1),e()},1)):e()}var he;return he=await xn(),qr(),rt?or=v:or=new Promise((e,r)=>{Yr=e,Kr=r}),or}export default jl;\n\n";
|
|
64
63
|
function _getExport(m) {
|
|
65
64
|
return m.default || m;
|
|
66
65
|
}
|
|
@@ -93,11 +92,9 @@ function _emscripten_lazy_AquaApi_default(...args) {
|
|
|
93
92
|
return factory(merged, ...rest);
|
|
94
93
|
});
|
|
95
94
|
}
|
|
96
|
-
|
|
97
|
-
//#region packages/core/engine/factory.ts
|
|
95
|
+
// packages/core/engine/factory.ts
|
|
98
96
|
var factory_default = _emscripten_lazy_AquaApi_default;
|
|
99
|
-
|
|
100
|
-
//#region packages/core/engine/threads/thread.ts
|
|
97
|
+
// packages/core/engine/threads/thread.ts
|
|
101
98
|
var Thread = class Thread {
|
|
102
99
|
static name = "thread";
|
|
103
100
|
static get Worker() {
|
|
@@ -177,9 +174,8 @@ var Thread = class Thread {
|
|
|
177
174
|
this.#worker = null;
|
|
178
175
|
}
|
|
179
176
|
};
|
|
180
|
-
|
|
181
|
-
//#region packages/core/engine/threads/decoder/worker.ts?worker&inline
|
|
182
|
-
var jsContent = "//#region packages/core/engine/threads/utils.ts\nconst defineActions = (actions) => {\n self.postMessage(\"ready\");\n self.addEventListener(\"message\", async ({ data }) => {\n if (\"ready\" === data) return;\n const { id, action, args } = data;\n const [result, ...postMessageArgs] = await Reflect.apply(actions[action], void 0, [...args, id]);\n self.postMessage({\n id,\n result\n }, ...postMessageArgs);\n });\n return actions;\n};\n//#endregion\n//#region packages/core/attribute.ts\nconst sparkMinSplats = 2048;\nconst sparkAttributeList = {\n sparkPackedSplat: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatLow: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatHigh: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh1: {\n elementsPerSplat: 2,\n discard: false\n },\n packedSh2: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh3: {\n elementsPerSplat: 4,\n discard: false\n },\n sh1Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh2Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_0: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_1: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkEllipsoid: {\n elementsPerSplat: 12,\n discard: false\n },\n sharkEllipsoidCompressed: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkSphericalHarmonics: {\n elementsPerSplat: 16,\n discard: false\n },\n color: {\n elementsPerSplat: 2,\n discard: false\n },\n mod_depth: {\n elementsPerSplat: .5,\n discard: false\n }\n};\nfunction roundUpToMultipleOf(a, multiple) {\n return Math.ceil(a / multiple) * multiple;\n}\nfunction sparkAttributeFromRaw(name, id, wasmView) {\n const attrib = sparkAttributeList[name];\n if (attrib === void 0) throw new Error(\"attribute name\" + name + \" is unknown\");\n const originalSize = wasmView.length;\n const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);\n const paddedData = new Uint32Array(paddedSize);\n paddedData.set(wasmView);\n return {\n paddedData,\n originalSizeInUints: originalSize,\n id\n };\n}\n//#endregion\n//#region packages/core/aqua-parser.js\nasync function qi(ze = {}) {\n var $r, l = ze, Ye = !1, Br = !0, Lr = \"./this.program\", zr = (e, r) => {\n throw r;\n }, Ge = import.meta.url, wr = \"\";\n function qe(e) {\n return l.locateFile ? l.locateFile(e, wr) : wr + e;\n }\n var Yr, Tr;\n if (Ye || Br) {\n try {\n wr = new URL(\".\", Ge).href;\n } catch {}\n Br && (Tr = (e) => {\n var r = new XMLHttpRequest();\n return r.open(\"GET\", e, !1), r.responseType = \"arraybuffer\", r.send(null), new Uint8Array(r.response);\n }), Yr = async (e) => {\n var r = await fetch(e, { credentials: \"same-origin\" });\n if (r.ok) return r.arrayBuffer();\n throw new Error(r.status + \" : \" + r.url);\n };\n }\n var Nr = console.log.bind(console), L = console.error.bind(console), G, Q = !1, rr, Gr, qr, er, S, E, U, z, T, w, tr, nr, V, Xr, Jr = !1;\n function Kr() {\n var e = er.buffer;\n l.HEAP8 = S = new Int8Array(e), U = new Int16Array(e), l.HEAPU8 = E = new Uint8Array(e), z = new Uint16Array(e), l.HEAP32 = T = new Int32Array(e), l.HEAPU32 = w = new Uint32Array(e), l.HEAPF32 = tr = new Float32Array(e), l.HEAPF64 = nr = new Float64Array(e), V = new BigInt64Array(e), Xr = new BigUint64Array(e);\n }\n function Xe() {\n if (l.preRun) for (typeof l.preRun == \"function\" && (l.preRun = [l.preRun]); l.preRun.length;) st(l.preRun.shift());\n Qr(ee);\n }\n function Je() {\n Jr = !0, B.__wasm_call_ctors();\n }\n function Ke() {\n if (l.postRun) for (typeof l.postRun == \"function\" && (l.postRun = [l.postRun]); l.postRun.length;) at(l.postRun.shift());\n Qr(re);\n }\n function Y(e) {\n l.onAbort?.(e), e = \"Aborted(\" + e + \")\", L(e), Q = !0, e += \". Build with -sASSERTIONS for more info.\";\n var r = new WebAssembly.RuntimeError(e);\n throw qr?.(r), r;\n }\n var Fr;\n function Ze() {\n return l.locateFile ? qe(\"aqua-parser.wasm\") : \"\";\n }\n function Qe(e) {\n if (e == Fr && G) return new Uint8Array(G);\n if (Tr) return Tr(e);\n throw \"both async and sync fetching of the wasm failed\";\n }\n async function rt(e) {\n if (!G) try {\n var r = await Yr(e);\n return new Uint8Array(r);\n } catch {}\n return Qe(e);\n }\n async function et(e, r) {\n try {\n var t = await rt(e);\n return await WebAssembly.instantiate(t, r);\n } catch (i) {\n L(`failed to asynchronously prepare wasm: ${i}`), Y(i);\n }\n }\n async function tt(e, r, t) {\n if (!e) try {\n var n = fetch(r, { credentials: \"same-origin\" });\n return await WebAssembly.instantiateStreaming(n, t);\n } catch (a) {\n L(`wasm streaming compile failed: ${a}`), L(\"falling back to ArrayBuffer instantiation\");\n }\n return et(r, t);\n }\n function nt() {\n return {\n env: He,\n wasi_snapshot_preview1: He\n };\n }\n async function it() {\n function e(a, s) {\n return B = a.exports, er = B.memory, Kr(), fe = B.__indirect_function_table, fi(B), B;\n }\n function r(a) {\n return e(a.instance);\n }\n var t = nt();\n if (l.instantiateWasm) return new Promise((a, s) => {\n l.instantiateWasm(t, (o, u) => {\n a(e(o, u));\n });\n });\n Fr ??= Ze();\n return r(await tt(G, Fr, t));\n }\n class Zr {\n name = \"ExitStatus\";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var Qr = (e) => {\n for (; e.length > 0;) e.shift()(l);\n }, re = [], at = (e) => re.push(e), ee = [], st = (e) => ee.push(e);\n var Cr = !0;\n var g = (e) => We(e), y = () => Oe(), ir = [], ar = 0, ot = (e) => {\n var r = new Pr(e);\n return r.get_caught() || (r.set_caught(!0), ar--), r.set_rethrown(!1), ir.push(r), Ve(e), Ie(e);\n }, x = 0, ut = () => {\n h(0, 0);\n var e = ir.pop();\n Ue(e.excPtr), x = 0;\n };\n class Pr {\n constructor(r) {\n this.excPtr = r, this.ptr = r - 24;\n }\n set_type(r) {\n w[this.ptr + 4 >> 2] = r;\n }\n get_type() {\n return w[this.ptr + 4 >> 2];\n }\n set_destructor(r) {\n w[this.ptr + 8 >> 2] = r;\n }\n get_destructor() {\n return w[this.ptr + 8 >> 2];\n }\n set_caught(r) {\n r = r ? 1 : 0, S[this.ptr + 12] = r;\n }\n get_caught() {\n return S[this.ptr + 12] != 0;\n }\n set_rethrown(r) {\n r = r ? 1 : 0, S[this.ptr + 13] = r;\n }\n get_rethrown() {\n return S[this.ptr + 13] != 0;\n }\n init(r, t) {\n this.set_adjusted_ptr(0), this.set_type(r), this.set_destructor(t);\n }\n set_adjusted_ptr(r) {\n w[this.ptr + 16 >> 2] = r;\n }\n get_adjusted_ptr() {\n return w[this.ptr + 16 >> 2];\n }\n }\n var sr = (e) => De(e), kr = (e) => {\n var r = x;\n if (!r) return sr(0), 0;\n var t = new Pr(r);\n t.set_adjusted_ptr(r);\n var n = t.get_type();\n if (!n) return sr(0), r;\n for (var i of e) {\n if (i === 0 || i === n) break;\n var a = t.ptr + 16;\n if (je(i, n, a)) return sr(i), r;\n }\n return sr(n), r;\n }, ct = () => kr([]), ft = (e) => kr([e]), lt = (e, r) => kr([e, r]), vt = () => {\n var e = ir.pop();\n e || Y(\"no exception to throw\");\n var r = e.excPtr;\n throw e.get_rethrown() || (ir.push(e), e.set_rethrown(!0), e.set_caught(!1), ar++), x = r, x;\n }, _t = (e, r, t) => {\n throw new Pr(e).init(r, t), x = e, ar++, x;\n }, dt = () => ar, pt = (e) => {\n throw x || (x = e), x;\n }, ht = () => Y(\"\"), C = (e) => {\n for (var r = \"\";;) {\n var t = E[e++];\n if (!t) return r;\n r += String.fromCharCode(t);\n }\n }, N = {}, j = {}, or = {}, q = class extends Error {\n constructor(r) {\n super(r), this.name = \"BindingError\";\n }\n }, m = (e) => {\n throw new q(e);\n };\n function gt(e, r, t = {}) {\n var n = r.name;\n if (e || m(`type \"${n}\" must have a positive integer typeid pointer`), j.hasOwnProperty(e)) {\n if (t.ignoreDuplicateRegistrations) return;\n m(`Cannot register type '${n}' twice`);\n }\n if (j[e] = r, delete or[e], N.hasOwnProperty(e)) {\n var i = N[e];\n delete N[e], i.forEach((a) => a());\n }\n }\n function R(e, r, t = {}) {\n return gt(e, r, t);\n }\n var te = (e, r, t) => {\n switch (r) {\n case 1: return t ? (n) => S[n] : (n) => E[n];\n case 2: return t ? (n) => U[n >> 1] : (n) => z[n >> 1];\n case 4: return t ? (n) => T[n >> 2] : (n) => w[n >> 2];\n case 8: return t ? (n) => V[n >> 3] : (n) => Xr[n >> 3];\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, yt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0n;\n let s = (o) => o;\n if (a) {\n const o = t * 8;\n s = (u) => BigInt.asUintN(o, u), i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (o, u) => (typeof u == \"number\" && (u = BigInt(u)), u),\n readValueFromPointer: te(r, t, !a),\n destructorFunction: null\n });\n }, mt = (e, r, t, n) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: function(i) {\n return !!i;\n },\n toWireType: function(i, a) {\n return a ? t : n;\n },\n readValueFromPointer: function(i) {\n return this.fromWireType(E[i]);\n },\n destructorFunction: null\n });\n }, bt = (e) => ({\n count: e.count,\n deleteScheduled: e.deleteScheduled,\n preservePointerOnDelete: e.preservePointerOnDelete,\n ptr: e.ptr,\n ptrType: e.ptrType,\n smartPtr: e.smartPtr,\n smartPtrType: e.smartPtrType\n }), Sr = (e) => {\n function r(t) {\n return t.$$.ptrType.registeredClass.name;\n }\n m(r(e) + \" instance already deleted\");\n }, Ar = !1, ne = (e) => {}, $t = (e) => {\n e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr);\n }, ie = (e) => {\n e.count.value -= 1;\n e.count.value === 0 && $t(e);\n }, X = (e) => typeof FinalizationRegistry > \"u\" ? (X = (r) => r, e) : (Ar = new FinalizationRegistry((r) => {\n ie(r.$$);\n }), X = (r) => {\n var t = r.$$;\n if (!!t.smartPtr) {\n var i = { $$: t };\n Ar.register(r, i, r);\n }\n return r;\n }, ne = (r) => Ar.unregister(r), X(e)), ur = [], wt = () => {\n for (; ur.length;) {\n var e = ur.pop();\n e.$$.deleteScheduled = !1, e.delete();\n }\n }, ae, Tt = () => {\n let e = cr.prototype;\n Object.assign(e, {\n isAliasOf(t) {\n if (!(this instanceof cr) || !(t instanceof cr)) return !1;\n var n = this.$$.ptrType.registeredClass, i = this.$$.ptr;\n t.$$ = t.$$;\n for (var a = t.$$.ptrType.registeredClass, s = t.$$.ptr; n.baseClass;) i = n.upcast(i), n = n.baseClass;\n for (; a.baseClass;) s = a.upcast(s), a = a.baseClass;\n return n === a && i === s;\n },\n clone() {\n if (this.$$.ptr || Sr(this), this.$$.preservePointerOnDelete) return this.$$.count.value += 1, this;\n var t = X(Object.create(Object.getPrototypeOf(this), { $$: { value: bt(this.$$) } }));\n return t.$$.count.value += 1, t.$$.deleteScheduled = !1, t;\n },\n delete() {\n this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ne(this), ie(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);\n },\n isDeleted() {\n return !this.$$.ptr;\n },\n deleteLater() {\n return this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ur.push(this), ur.length === 1 && ae && ae(wt), this.$$.deleteScheduled = !0, this;\n }\n });\n const r = Symbol.dispose;\n r && (e[r] = e.delete);\n };\n function cr() {}\n var fr = (e, r) => Object.defineProperty(r, \"name\", { value: e }), se = {}, Er = (e, r, t) => {\n if (e[r].overloadTable === void 0) {\n var n = e[r];\n e[r] = function(...i) {\n return e[r].overloadTable.hasOwnProperty(i.length) || m(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`), e[r].overloadTable[i.length].apply(this, i);\n }, e[r].overloadTable = [], e[r].overloadTable[n.argCount] = n;\n }\n }, Rr = (e, r, t) => {\n l.hasOwnProperty(e) ? ((t === void 0 || l[e].overloadTable !== void 0 && l[e].overloadTable[t] !== void 0) && m(`Cannot register public name '${e}' twice`), Er(l, e, e), l[e].overloadTable.hasOwnProperty(t) && m(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`), l[e].overloadTable[t] = r) : (l[e] = r, l[e].argCount = t);\n }, Ft = 48, Ct = 57, Pt = (e) => {\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var r = e.charCodeAt(0);\n return r >= Ft && r <= Ct ? `_${e}` : e;\n };\n function kt(e, r, t, n, i, a, s, o) {\n this.name = e, this.constructor = r, this.instancePrototype = t, this.rawDestructor = n, this.baseClass = i, this.getActualType = a, this.upcast = s, this.downcast = o, this.pureVirtualFunctions = [];\n }\n var lr = (e, r, t) => {\n for (; r !== t;) r.upcast || m(`Expected null or instance of ${t.name}, got an instance of ${r.name}`), e = r.upcast(e), r = r.baseClass;\n return e;\n }, Dr = (e) => {\n if (e === null) return \"null\";\n var r = typeof e;\n return r === \"object\" || r === \"array\" || r === \"function\" ? e.toString() : \"\" + e;\n };\n function St(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function At(e, r) {\n var t;\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), this.isSmartPointer ? (t = this.rawConstructor(), e !== null && e.push(this.rawDestructor, t), t) : 0;\n (!r || !r.$$) && m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n var n = r.$$.ptrType.registeredClass;\n if (t = lr(r.$$.ptr, n, this.registeredClass), this.isSmartPointer) switch (r.$$.smartPtr === void 0 && m(\"Passing raw pointer to smart pointer is illegal\"), this.sharingPolicy) {\n case 0:\n r.$$.smartPtrType === this ? t = r.$$.smartPtr : m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n break;\n case 1:\n t = r.$$.smartPtr;\n break;\n case 2:\n if (r.$$.smartPtrType === this) t = r.$$.smartPtr;\n else {\n var i = r.clone();\n t = this.rawShare(t, k.toHandle(() => i.delete())), e !== null && e.push(this.rawDestructor, t);\n }\n break;\n default: m(\"Unsupporting sharing policy\");\n }\n return t;\n }\n function Et(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function vr(e) {\n return this.fromWireType(w[e >> 2]);\n }\n var oe = (e, r, t) => {\n if (r === t) return e;\n if (t.baseClass === void 0) return null;\n var n = oe(e, r, t.baseClass);\n return n === null ? null : t.downcast(n);\n }, Rt = {}, Dt = (e, r) => {\n for (r === void 0 && m(\"ptr should not be undefined\"); e.baseClass;) r = e.upcast(r), e = e.baseClass;\n return r;\n }, Wt = (e, r) => (r = Dt(e, r), Rt[r]), xt = class extends Error {\n constructor(r) {\n super(r), this.name = \"InternalError\";\n }\n }, _r = (e) => {\n throw new xt(e);\n }, dr = (e, r) => {\n (!r.ptrType || !r.ptr) && _r(\"makeClassHandle requires ptr and ptrType\");\n return !!r.smartPtrType !== !!r.smartPtr && _r(\"Both smartPtrType and smartPtr must be specified\"), r.count = { value: 1 }, X(Object.create(e, { $$: {\n value: r,\n writable: !0\n } }));\n };\n function Ot(e) {\n var r = this.getPointee(e);\n if (!r) return this.destructor(e), null;\n var t = Wt(this.registeredClass, r);\n if (t !== void 0) {\n if (t.$$.count.value === 0) return t.$$.ptr = r, t.$$.smartPtr = e, t.clone();\n var n = t.clone();\n return this.destructor(e), n;\n }\n function i() {\n return this.isSmartPointer ? dr(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: r,\n smartPtrType: this,\n smartPtr: e\n }) : dr(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr: e\n });\n }\n var s = se[this.registeredClass.getActualType(r)];\n if (!s) return i.call(this);\n var o;\n this.isConst ? o = s.constPointerType : o = s.pointerType;\n var u = oe(r, this.registeredClass, o.registeredClass);\n return u === null ? i.call(this) : this.isSmartPointer ? dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u,\n smartPtrType: this,\n smartPtr: e\n }) : dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u\n });\n }\n var Ut = () => {\n Object.assign(pr.prototype, {\n getPointee(e) {\n return this.rawGetPointee && (e = this.rawGetPointee(e)), e;\n },\n destructor(e) {\n this.rawDestructor?.(e);\n },\n readValueFromPointer: vr,\n fromWireType: Ot\n });\n };\n function pr(e, r, t, n, i, a, s, o, u, c, f) {\n this.name = e, this.registeredClass = r, this.isReference = t, this.isConst = n, this.isSmartPointer = i, this.pointeeType = a, this.sharingPolicy = s, this.rawGetPointee = o, this.rawConstructor = u, this.rawShare = c, this.rawDestructor = f, !i && r.baseClass === void 0 ? n ? (this.toWireType = St, this.destructorFunction = null) : (this.toWireType = Et, this.destructorFunction = null) : this.toWireType = At;\n }\n var ue = (e, r, t) => {\n l.hasOwnProperty(e) || _r(\"Replacing nonexistent public symbol\"), l[e].overloadTable !== void 0 && t !== void 0 ? l[e].overloadTable[t] = r : (l[e] = r, l[e].argCount = t);\n }, ce = [], fe, b = (e) => {\n var r = ce[e];\n return r || (ce[e] = r = fe.get(e)), r;\n }, D = (e, r, t = !1) => {\n e = C(e);\n function n() {\n return b(r);\n }\n var i = n();\n return typeof i != \"function\" && m(`unknown function pointer with signature ${e}: ${r}`), i;\n };\n class Vt extends Error {}\n var le = (e) => {\n var r = Ee(e), t = C(r);\n return O(r), t;\n }, I = (e, r) => {\n var t = [], n = {};\n function i(a) {\n if (!n[a] && !j[a]) {\n if (or[a]) {\n or[a].forEach(i);\n return;\n }\n t.push(a), n[a] = !0;\n }\n }\n throw r.forEach(i), new Vt(`${e}: ` + t.map(le).join([\", \"]));\n }, W = (e, r, t) => {\n e.forEach((o) => or[o] = r);\n function n(o) {\n var u = t(o);\n u.length !== e.length && _r(\"Mismatched type converter count\");\n for (var c = 0; c < e.length; ++c) R(e[c], u[c]);\n }\n var i = new Array(r.length), a = [], s = 0;\n r.forEach((o, u) => {\n j.hasOwnProperty(o) ? i[u] = j[o] : (a.push(o), N.hasOwnProperty(o) || (N[o] = []), N[o].push(() => {\n i[u] = j[o], ++s, s === a.length && n(i);\n }));\n }), a.length === 0 && n(i);\n }, jt = (e, r, t, n, i, a, s, o, u, c, f, _, d) => {\n f = C(f), a = D(i, a), o &&= D(s, o), c &&= D(u, c), d = D(_, d);\n var p = Pt(f);\n Rr(p, function() {\n I(`Cannot construct ${f} due to unbound types`, [n]);\n }), W([\n e,\n r,\n t\n ], n ? [n] : [], (v) => {\n v = v[0];\n var $, P;\n n ? ($ = v.registeredClass, P = $.instancePrototype) : P = cr.prototype;\n var F = fr(f, function(...Mr) {\n if (Object.getPrototypeOf(this) !== Z) throw new q(`Use 'new' to construct ${f}`);\n if (A.constructor_body === void 0) throw new q(`${f} has no accessible constructor`);\n var Le = A.constructor_body[Mr.length];\n if (Le === void 0) throw new q(`Tried to invoke ctor of ${f} with invalid number of parameters (${Mr.length}) - expected (${Object.keys(A.constructor_body).toString()}) parameters instead!`);\n return Le.apply(this, Mr);\n }), Z = Object.create(P, { constructor: { value: F } });\n F.prototype = Z;\n var A = new kt(f, F, Z, d, $, a, o, c);\n A.baseClass && (A.baseClass.__derivedClasses ??= [], A.baseClass.__derivedClasses.push(A));\n var Gi = new pr(f, A, !0, !1, !1), Me = new pr(f + \"*\", A, !1, !1, !1), Be = new pr(f + \" const*\", A, !1, !0, !1);\n return se[e] = {\n pointerType: Me,\n constPointerType: Be\n }, ue(p, F), [\n Gi,\n Me,\n Be\n ];\n });\n }, Wr = (e) => {\n for (; e.length;) {\n var r = e.pop();\n e.pop()(r);\n }\n };\n function ve(e) {\n for (var r = 1; r < e.length; ++r) if (e[r] !== null && e[r].destructorFunction === void 0) return !0;\n return !1;\n }\n function It(e, r, t, n) {\n var i = ve(e), a = e.length - 2, s = [], o = [\"fn\"];\n r && o.push(\"thisWired\");\n for (var u = 0; u < a; ++u) s.push(`arg${u}`), o.push(`arg${u}Wired`);\n s = s.join(\",\"), o = o.join(\",\");\n var c = `return function (${s}) {\n`;\n i && (c += `var destructors = [];\n`);\n var f = i ? \"destructors\" : \"null\", _ = [\n \"humanName\",\n \"throwBindingError\",\n \"invoker\",\n \"fn\",\n \"runDestructors\",\n \"fromRetWire\",\n \"toClassParamWire\"\n ];\n r && (c += `var thisWired = toClassParamWire(${f}, this);\n`);\n for (var u = 0; u < a; ++u) {\n var d = `toArg${u}Wire`;\n c += `var arg${u}Wired = ${d}(${f}, arg${u});\n`, _.push(d);\n }\n c += (t || n ? \"var rv = \" : \"\") + `invoker(${o});\n`;\n if (i) c += `runDestructors(destructors);\n`;\n else for (var u = r ? 1 : 2; u < e.length; ++u) {\n var v = u === 1 ? \"thisWired\" : \"arg\" + (u - 2) + \"Wired\";\n e[u].destructorFunction !== null && (c += `${v}_dtor(${v});\n`, _.push(`${v}_dtor`));\n }\n return t && (c += `var ret = fromRetWire(rv);\nreturn ret;\n`), c += `}\n`, new Function(_, c);\n }\n function hr(e, r, t, n, i, a) {\n var s = r.length;\n s < 2 && m(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n for (var o = r[1] !== null && t !== null, u = ve(r), c = !r[0].isVoid, f = s - 2, _ = r[0], d = r[1], p = [\n e,\n m,\n n,\n i,\n Wr,\n _.fromWireType.bind(_),\n d?.toWireType.bind(d)\n ], v = 2; v < s; ++v) {\n var $ = r[v];\n p.push($.toWireType.bind($));\n }\n if (!u) for (var v = o ? 1 : 2; v < r.length; ++v) r[v].destructorFunction !== null && p.push(r[v].destructorFunction);\n return fr(e, It(r, o, c, a)(...p));\n }\n var gr = (e, r) => {\n for (var t = [], n = 0; n < e; n++) t.push(w[r + n * 4 >> 2]);\n return t;\n }, xr = (e) => {\n e = e.trim();\n const r = e.indexOf(\"(\");\n return r === -1 ? e : e.slice(0, r);\n }, Ht = (e, r, t, n, i, a, s, o, u) => {\n var c = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, o), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`;\n function d() {\n I(`Cannot call ${_} due to unbound types`, c);\n }\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]);\n var p = f.registeredClass.constructor;\n return p[r] === void 0 ? (d.argCount = t - 1, p[r] = d) : (Er(p, r, _), p[r].overloadTable[t - 1] = d), W([], c, (v) => {\n var P = hr(_, [v[0], null].concat(v.slice(1)), null, a, s, o);\n if (p[r].overloadTable === void 0 ? (P.argCount = t - 1, p[r] = P) : p[r].overloadTable[t - 1] = P, f.registeredClass.__derivedClasses) for (const F of f.registeredClass.__derivedClasses) F.constructor.hasOwnProperty(r) || (F.constructor[r] = P);\n return [];\n }), [];\n });\n }, Mt = (e, r, t, n, i, a) => {\n var s = gr(r, t);\n i = D(n, i);\n W([], [e], (c) => {\n c = c[0];\n var f = `constructor ${c.name}`;\n if (c.registeredClass.constructor_body === void 0 && (c.registeredClass.constructor_body = []), c.registeredClass.constructor_body[r - 1] !== void 0) throw new q(`Cannot register multiple constructors with identical number of parameters (${r - 1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return c.registeredClass.constructor_body[r - 1] = () => {\n I(`Cannot construct ${c.name} due to unbound types`, s);\n }, W([], s, (_) => (_.splice(1, 0, null), c.registeredClass.constructor_body[r - 1] = hr(f, _, null, i, a), [])), [];\n });\n }, Bt = (e, r, t, n, i, a, s, o, u, c) => {\n var f = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, u), W([], [e], (_) => {\n _ = _[0];\n var d = `${_.name}.${r}`;\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]), o && _.registeredClass.pureVirtualFunctions.push(r);\n function p() {\n I(`Cannot call ${d} due to unbound types`, f);\n }\n var v = _.registeredClass.instancePrototype, $ = v[r];\n return $ === void 0 || $.overloadTable === void 0 && $.className !== _.name && $.argCount === t - 2 ? (p.argCount = t - 2, p.className = _.name, v[r] = p) : (Er(v, r, d), v[r].overloadTable[t - 2] = p), W([], f, (P) => {\n var F = hr(d, P, _, a, s, u);\n return v[r].overloadTable === void 0 ? (F.argCount = t - 2, v[r] = F) : v[r].overloadTable[t - 2] = F, [];\n }), [];\n });\n }, _e = (e, r, t) => (e instanceof Object || m(`${t} with invalid \"this\": ${e}`), e instanceof r.registeredClass.constructor || m(`${t} incompatible with \"this\" of type ${e.constructor.name}`), e.$$.ptr || m(`cannot call emscripten binding method ${t} on deleted object`), lr(e.$$.ptr, e.$$.ptrType.registeredClass, r.registeredClass)), Lt = (e, r, t, n, i, a, s, o, u, c) => {\n r = C(r), i = D(n, i), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`, d = {\n get() {\n I(`Cannot access ${_} due to unbound types`, [t, s]);\n },\n enumerable: !0,\n configurable: !0\n };\n return u ? d.set = () => I(`Cannot access ${_} due to unbound types`, [t, s]) : d.set = (p) => m(_ + \" is a read-only property\"), Object.defineProperty(f.registeredClass.instancePrototype, r, d), W([], u ? [t, s] : [t], (p) => {\n var v = p[0], $ = {\n get() {\n var F = _e(this, f, _ + \" getter\");\n return v.fromWireType(i(a, F));\n },\n enumerable: !0\n };\n if (u) {\n u = D(o, u);\n var P = p[1];\n $.set = function(F) {\n var Z = _e(this, f, _ + \" setter\"), A = [];\n u(c, Z, P.toWireType(A, F)), Wr(A);\n };\n }\n return Object.defineProperty(f.registeredClass.instancePrototype, r, $), [];\n }), [];\n });\n }, de = [], H = [\n 0,\n 1,\n ,\n 1,\n null,\n 1,\n !0,\n 1,\n !1,\n 1\n ], Or = (e) => {\n e > 9 && --H[e + 1] === 0 && (H[e] = void 0, de.push(e));\n }, k = {\n toValue: (e) => (e || m(`Cannot use deleted val. handle = ${e}`), H[e]),\n toHandle: (e) => {\n switch (e) {\n case void 0: return 2;\n case null: return 4;\n case !0: return 6;\n case !1: return 8;\n default: {\n const r = de.pop() || H.length;\n return H[r] = e, H[r + 1] = 1, r;\n }\n }\n }\n }, zt = {\n name: \"emscripten::val\",\n fromWireType: (e) => {\n var r = k.toValue(e);\n return Or(e), r;\n },\n toWireType: (e, r) => k.toHandle(r),\n readValueFromPointer: vr,\n destructorFunction: null\n }, Yt = (e) => R(e, zt), Nt = (e, r, t) => {\n switch (r) {\n case 1: return t ? function(n) {\n return this.fromWireType(S[n]);\n } : function(n) {\n return this.fromWireType(E[n]);\n };\n case 2: return t ? function(n) {\n return this.fromWireType(U[n >> 1]);\n } : function(n) {\n return this.fromWireType(z[n >> 1]);\n };\n case 4: return t ? function(n) {\n return this.fromWireType(T[n >> 2]);\n } : function(n) {\n return this.fromWireType(w[n >> 2]);\n };\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, Gt = (e, r, t, n) => {\n r = C(r);\n function i() {}\n i.values = {}, R(e, {\n name: r,\n constructor: i,\n fromWireType: function(a) {\n return this.constructor.values[a];\n },\n toWireType: (a, s) => s.value,\n readValueFromPointer: Nt(r, t, n),\n destructorFunction: null\n }), Rr(r, i);\n }, pe = (e, r) => {\n var t = j[e];\n return t === void 0 && m(`${r} has unknown type ${le(e)}`), t;\n }, qt = (e, r, t) => {\n var n = pe(e, \"enum\");\n r = C(r);\n var i = n.constructor, a = Object.create(n.constructor.prototype, {\n value: { value: t },\n constructor: { value: fr(`${n.name}_${r}`, function() {}) }\n });\n i.values[t] = a, i[r] = a;\n }, Xt = (e, r) => {\n switch (r) {\n case 4: return function(t) {\n return this.fromWireType(tr[t >> 2]);\n };\n case 8: return function(t) {\n return this.fromWireType(nr[t >> 3]);\n };\n default: throw new TypeError(`invalid float width (${r}): ${e}`);\n }\n }, Jt = (e, r, t) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: (n) => n,\n toWireType: (n, i) => i,\n readValueFromPointer: Xt(r, t),\n destructorFunction: null\n });\n }, Kt = (e, r, t, n, i, a, s, o) => {\n var u = gr(r, t);\n e = C(e), e = xr(e), i = D(n, i, s), Rr(e, function() {\n I(`Cannot call ${e} due to unbound types`, u);\n }, r - 1), W([], u, (c) => {\n var f = [c[0], null].concat(c.slice(1));\n return ue(e, hr(e, f, null, i, a, s), r - 1), [];\n });\n }, Zt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0;\n let s = (u) => u;\n if (a) {\n var o = 32 - 8 * t;\n s = (u) => u << o >>> o, i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (u, c) => c,\n readValueFromPointer: te(r, t, n !== 0),\n destructorFunction: null\n });\n }, Qt = (e, r, t) => {\n var i = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n BigInt64Array,\n BigUint64Array\n ][r];\n function a(s) {\n var o = w[s >> 2], u = w[s + 4 >> 2];\n return new i(S.buffer, u, o);\n }\n t = C(t), R(e, {\n name: t,\n fromWireType: a,\n readValueFromPointer: a\n }, { ignoreDuplicateRegistrations: !0 });\n }, rn = (e, r, t, n) => {\n if (!(n > 0)) return 0;\n for (var i = t, a = t + n - 1, s = 0; s < e.length; ++s) {\n var o = e.codePointAt(s);\n if (o <= 127) {\n if (t >= a) break;\n r[t++] = o;\n } else if (o <= 2047) {\n if (t + 1 >= a) break;\n r[t++] = 192 | o >> 6, r[t++] = 128 | o & 63;\n } else if (o <= 65535) {\n if (t + 2 >= a) break;\n r[t++] = 224 | o >> 12, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63;\n } else {\n if (t + 3 >= a) break;\n r[t++] = 240 | o >> 18, r[t++] = 128 | o >> 12 & 63, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63, s++;\n }\n }\n return r[t] = 0, t - i;\n }, M = (e, r, t) => rn(e, E, r, t), Ur = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) {\n var n = e.charCodeAt(t);\n n <= 127 ? r++ : n <= 2047 ? r += 2 : n >= 55296 && n <= 57343 ? (r += 4, ++t) : r += 3;\n }\n return r;\n }, he = typeof TextDecoder < \"u\" ? new TextDecoder() : void 0, ge = (e, r, t, n) => {\n var i = r + t;\n if (n) return i;\n for (; e[r] && !(r >= i);) ++r;\n return r;\n }, ye = (e, r = 0, t, n) => {\n var i = ge(e, r, t, n);\n if (i - r > 16 && e.buffer && he) return he.decode(e.subarray(r, i));\n for (var a = \"\"; r < i;) {\n var s = e[r++];\n if (!(s & 128)) {\n a += String.fromCharCode(s);\n continue;\n }\n var o = e[r++] & 63;\n if ((s & 224) == 192) {\n a += String.fromCharCode((s & 31) << 6 | o);\n continue;\n }\n var u = e[r++] & 63;\n if ((s & 240) == 224 ? s = (s & 15) << 12 | o << 6 | u : s = (s & 7) << 18 | o << 12 | u << 6 | e[r++] & 63, s < 65536) a += String.fromCharCode(s);\n else {\n var c = s - 65536;\n a += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n }\n return a;\n }, yr = (e, r, t) => e ? ye(E, e, r, t) : \"\", en = (e, r) => {\n r = C(r);\n var t = !0;\n R(e, {\n name: r,\n fromWireType(n) {\n var i = w[n >> 2], a = n + 4, s;\n if (t) s = yr(a, i, !0);\n else {\n s = \"\";\n for (var o = 0; o < i; ++o) s += String.fromCharCode(E[a + o]);\n }\n return O(n), s;\n },\n toWireType(n, i) {\n i instanceof ArrayBuffer && (i = new Uint8Array(i));\n var a, s = typeof i == \"string\";\n s || ArrayBuffer.isView(i) && i.BYTES_PER_ELEMENT == 1 || m(\"Cannot pass non-string to std::string\"), t && s ? a = Ur(i) : a = i.length;\n var o = Hr(4 + a + 1), u = o + 4;\n if (w[o >> 2] = a, s) if (t) M(i, u, a + 1);\n else for (var c = 0; c < a; ++c) {\n var f = i.charCodeAt(c);\n f > 255 && (O(o), m(\"String has UTF-16 code units that do not fit in 8 bits\")), E[u + c] = f;\n }\n else E.set(i, u);\n return n !== null && n.push(O, o), o;\n },\n readValueFromPointer: vr,\n destructorFunction(n) {\n O(n);\n }\n });\n }, me = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, tn = (e, r, t) => {\n var n = e >> 1, i = ge(z, n, r / 2, t);\n if (i - n > 16 && me) return me.decode(z.subarray(n, i));\n for (var a = \"\", s = n; s < i; ++s) {\n var o = z[s];\n a += String.fromCharCode(o);\n }\n return a;\n }, nn = (e, r, t) => {\n if (t ??= 2147483647, t < 2) return 0;\n t -= 2;\n for (var n = r, i = t < e.length * 2 ? t / 2 : e.length, a = 0; a < i; ++a) {\n var s = e.charCodeAt(a);\n U[r >> 1] = s, r += 2;\n }\n return U[r >> 1] = 0, r - n;\n }, an = (e) => e.length * 2, sn = (e, r, t) => {\n for (var n = \"\", i = e >> 2, a = 0; !(a >= r / 4); a++) {\n var s = w[i + a];\n if (!s && !t) break;\n n += String.fromCodePoint(s);\n }\n return n;\n }, on = (e, r, t) => {\n if (t ??= 2147483647, t < 4) return 0;\n for (var n = r, i = n + t - 4, a = 0; a < e.length; ++a) {\n var s = e.codePointAt(a);\n if (s > 65535 && a++, T[r >> 2] = s, r += 4, r + 4 > i) break;\n }\n return T[r >> 2] = 0, r - n;\n }, un = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) e.codePointAt(t) > 65535 && t++, r += 4;\n return r;\n }, cn = (e, r, t) => {\n t = C(t);\n var n, i, a;\n r === 2 ? (n = tn, i = nn, a = an) : (n = sn, i = on, a = un), R(e, {\n name: t,\n fromWireType: (s) => {\n var o = w[s >> 2], u = n(s + 4, o * r, !0);\n return O(s), u;\n },\n toWireType: (s, o) => {\n typeof o != \"string\" && m(`Cannot pass non-string to C++ string type ${t}`);\n var u = a(o), c = Hr(4 + u + r);\n return w[c >> 2] = u / r, i(o, c + 4, u + r), s !== null && s.push(O, c), c;\n },\n readValueFromPointer: vr,\n destructorFunction(s) {\n O(s);\n }\n });\n }, fn = (e, r) => {\n r = C(r), R(e, {\n isVoid: !0,\n name: r,\n fromWireType: () => {},\n toWireType: (t, n) => {}\n });\n }, be = 0, ln = () => {\n Cr = !1, be = 0;\n }, Vr = [], vn = (e) => {\n var r = Vr.length;\n return Vr.push(e), r;\n }, _n = (e, r) => {\n for (var t = new Array(e), n = 0; n < e; ++n) t[n] = pe(w[r + n * 4 >> 2], `parameter ${n}`);\n return t;\n }, dn = (e, r, t) => {\n var n = [], i = e(n, t);\n return n.length && (w[r >> 2] = k.toHandle(n)), i;\n }, pn = {}, $e = (e) => {\n var r = pn[e];\n return r === void 0 ? C(e) : r;\n }, hn = (e, r, t) => {\n var n = 8, [i, ...a] = _n(e, r), s = i.toWireType.bind(i), o = a.map((p) => p.readValueFromPointer.bind(p));\n e--;\n var u = { toValue: k.toValue }, c = o.map((p, v) => {\n var $ = `argFromPtr${v}`;\n return u[$] = p, `${$}(args${v ? \"+\" + v * n : \"\"})`;\n }), f;\n switch (t) {\n case 0:\n f = \"toValue(handle)\";\n break;\n case 2:\n f = \"new (toValue(handle))\";\n break;\n case 3:\n f = \"\";\n break;\n case 1: u.getStringOrSymbol = $e, f = \"toValue(handle)[getStringOrSymbol(methodName)]\";\n }\n f += `(${c})`, i.isVoid || (u.toReturnWire = s, u.emval_returnValue = dn, f = `return emval_returnValue(toReturnWire, destructorsRef, ${f})`), f = `return function (handle, methodName, destructorsRef, args) {\n ${f}\n }`;\n var _ = new Function(Object.keys(u), f)(...Object.values(u));\n return vn(fr(`methodCaller<(${a.map((p) => p.name)}) => ${i.name}>`, _));\n }, gn = (e, r) => (e = k.toValue(e), r = k.toValue(r), k.toHandle(e[r])), yn = (e) => {\n e > 9 && (H[e + 1] += 1);\n }, mn = (e, r, t, n, i) => Vr[e](r, t, n, i), bn = () => k.toHandle([]), $n = (e) => k.toHandle($e(e)), wn = () => k.toHandle({}), Tn = (e) => {\n Wr(k.toValue(e)), Or(e);\n }, Fn = (e, r, t) => {\n e = k.toValue(e), r = k.toValue(r), t = k.toValue(t), e[r] = t;\n }, Cn = 9007199254740992, Pn = -9007199254740992, mr = (e) => e < Pn || e > Cn ? NaN : Number(e);\n function kn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getUTCSeconds(), T[r + 4 >> 2] = t.getUTCMinutes(), T[r + 8 >> 2] = t.getUTCHours(), T[r + 12 >> 2] = t.getUTCDate(), T[r + 16 >> 2] = t.getUTCMonth(), T[r + 20 >> 2] = t.getUTCFullYear() - 1900, T[r + 24 >> 2] = t.getUTCDay();\n var n = Date.UTC(t.getUTCFullYear(), 0, 1, 0, 0, 0, 0), i = (t.getTime() - n) / 864e5 | 0;\n T[r + 28 >> 2] = i;\n }\n var Sn = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0), An = [\n 0,\n 31,\n 60,\n 91,\n 121,\n 152,\n 182,\n 213,\n 244,\n 274,\n 305,\n 335\n ], En = [\n 0,\n 31,\n 59,\n 90,\n 120,\n 151,\n 181,\n 212,\n 243,\n 273,\n 304,\n 334\n ], Rn = (e) => {\n return (Sn(e.getFullYear()) ? An : En)[e.getMonth()] + e.getDate() - 1;\n };\n function Dn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getSeconds(), T[r + 4 >> 2] = t.getMinutes(), T[r + 8 >> 2] = t.getHours(), T[r + 12 >> 2] = t.getDate(), T[r + 16 >> 2] = t.getMonth(), T[r + 20 >> 2] = t.getFullYear() - 1900, T[r + 24 >> 2] = t.getDay();\n var n = Rn(t) | 0;\n T[r + 28 >> 2] = n, T[r + 36 >> 2] = -(t.getTimezoneOffset() * 60);\n var i = new Date(t.getFullYear(), 0, 1), a = new Date(t.getFullYear(), 6, 1).getTimezoneOffset(), s = i.getTimezoneOffset(), o = (a != s && t.getTimezoneOffset() == Math.min(s, a)) | 0;\n T[r + 32 >> 2] = o;\n }\n var J = {}, we = (e) => {\n if (e instanceof Zr || e == \"unwind\") return rr;\n zr(1, e);\n }, Te = () => Cr || be > 0, Fe = (e) => {\n rr = e, Te() || (l.onExit?.(e), Q = !0), zr(e, new Zr(e));\n }, Wn = (e, r) => {\n rr = e, Fe(e);\n }, xn = Wn, On = () => {\n if (!Te()) try {\n xn(rr);\n } catch (e) {\n we(e);\n }\n }, Un = (e) => {\n if (!Q) try {\n e(), On();\n } catch (r) {\n we(r);\n }\n }, Ce = () => performance.now(), Vn = (e, r) => {\n if (J[e] && (clearTimeout(J[e].id), delete J[e]), !r) return 0;\n return J[e] = {\n id: setTimeout(() => {\n delete J[e], Un(() => Re(e, Ce()));\n }, r),\n timeout_ms: r\n }, 0;\n }, jn = (e, r, t, n) => {\n var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), s = new Date(i, 6, 1), o = a.getTimezoneOffset(), u = s.getTimezoneOffset(), c = Math.max(o, u);\n w[e >> 2] = c * 60, T[r >> 2] = +(o != u);\n var f = (p) => {\n var v = p >= 0 ? \"-\" : \"+\", $ = Math.abs(p);\n return `UTC${v}${String(Math.floor($ / 60)).padStart(2, \"0\")}${String($ % 60).padStart(2, \"0\")}`;\n }, _ = f(o), d = f(u);\n u < o ? (M(_, t, 17), M(d, n, 17)) : (M(_, n, 17), M(d, t, 17));\n }, In = () => Date.now(), Hn = 1, Mn = (e) => e >= 0 && e <= 3;\n function Bn(e, r, t) {\n if (r = mr(r), !Mn(e)) return 28;\n var n;\n if (e === 0) n = In();\n else if (Hn) n = Ce();\n else return 52;\n var i = Math.round(n * 1e3 * 1e3);\n return V[t >> 3] = BigInt(i), 0;\n }\n var Pe = () => 2147483648, Ln = () => Pe(), zn = (e, r) => Math.ceil(e / r) * r, Yn = (e) => {\n var t = (e - er.buffer.byteLength + 65535) / 65536 | 0;\n try {\n return er.grow(t), Kr(), 1;\n } catch {}\n }, Nn = (e) => {\n var r = E.length;\n e >>>= 0;\n var t = Pe();\n if (e > t) return !1;\n for (var n = 1; n <= 4; n *= 2) {\n var i = r * (1 + .2 / n);\n i = Math.min(i, e + 100663296);\n if (Yn(Math.min(t, zn(Math.max(e, i), 65536)))) return !0;\n }\n return !1;\n }, br = {}, Gn = () => Lr || \"./this.program\", K = () => {\n if (!K.strings) {\n var r = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: (typeof navigator == \"object\" && navigator.language || \"C\").replace(\"-\", \"_\") + \".UTF-8\",\n _: Gn()\n };\n for (var t in br) br[t] === void 0 ? delete r[t] : r[t] = br[t];\n var n = [];\n for (var t in r) n.push(`${t}=${r[t]}`);\n K.strings = n;\n }\n return K.strings;\n }, qn = (e, r) => {\n var t = 0, n = 0;\n for (var i of K()) {\n var a = r + t;\n w[e + n >> 2] = a, t += M(i, a, 1 / 0) + 1, n += 4;\n }\n return 0;\n }, Xn = (e, r) => {\n var t = K();\n w[e >> 2] = t.length;\n var n = 0;\n for (var i of t) n += Ur(i) + 1;\n return w[r >> 2] = n, 0;\n }, Jn = (e) => 52, Kn = (e, r) => {\n var t = 0, n = 0, i = 0;\n var a = 2;\n e == 0 ? t = 2 : (e == 1 || e == 2) && (t = 64), i = 1;\n return S[r] = a, U[r + 2 >> 1] = i, V[r + 8 >> 3] = BigInt(t), V[r + 16 >> 3] = BigInt(n), 0;\n };\n function Zn(e, r, t, n) {\n return r = mr(r), 70;\n }\n var jr = [\n null,\n [],\n []\n ], Ir = (e, r) => {\n var t = jr[e];\n r === 0 || r === 10 ? ((e === 1 ? Nr : L)(ye(t)), t.length = 0) : t.push(r);\n }, Qn = (e, r, t, n) => {\n for (var i = 0, a = 0; a < t; a++) {\n var s = w[r >> 2], o = w[r + 4 >> 2];\n r += 8;\n for (var u = 0; u < o; u++) Ir(e, E[s + u]);\n i += o;\n }\n return w[n >> 2] = i, 0;\n }, ri = (e) => e, ke = (e) => {\n return l[\"_\" + e];\n }, ei = (e, r) => {\n S.set(e, r);\n }, Se = (e) => xe(e), ti = (e) => {\n var r = Ur(e) + 1, t = Se(r);\n return M(e, t, r), t;\n }, Ae = (e, r, t, n, i) => {\n var a = {\n string: (v) => {\n var $ = 0;\n return v != null && v !== 0 && ($ = ti(v)), $;\n },\n array: (v) => {\n var $ = Se(v.length);\n return ei(v, $), $;\n }\n };\n function s(v) {\n return r === \"string\" ? yr(v) : r === \"boolean\" ? !!v : v;\n }\n var o = ke(e), u = [], c = 0;\n if (n) for (var f = 0; f < n.length; f++) {\n var _ = a[t[f]];\n _ ? (c === 0 && (c = y()), u[f] = _(n[f])) : u[f] = n[f];\n }\n var d = o(...u);\n function p(v) {\n return c !== 0 && g(c), s(v);\n }\n return d = p(d), d;\n }, ni = (e, r, t, n) => {\n var i = !t || t.every((s) => s === \"number\" || s === \"boolean\");\n return r !== \"string\" && i && !n ? ke(e) : (...s) => Ae(e, r, t, s, n);\n };\n if (Tt(), Ut(), l.noExitRuntime && (Cr = l.noExitRuntime), l.print && (Nr = l.print), l.printErr && (L = l.printErr), l.wasmBinary && (G = l.wasmBinary), l.arguments && l.arguments, l.thisProgram && (Lr = l.thisProgram), l.preInit) for (typeof l.preInit == \"function\" && (l.preInit = [l.preInit]); l.preInit.length > 0;) l.preInit.shift()();\n l.ENV = br, l.ccall = Ae, l.cwrap = ni;\n var Ee, Hr, O, Re, h, De, We, xe, Oe, Ue, Ve, je, Ie;\n function fi(e) {\n Ee = e.__getTypeName, l._malloc = Hr = e.malloc, l._parseDropFile = e.parseDropFile, l._getAttributeFromDropFile = e.getAttributeFromDropFile, l._takeAttributeFromDropFile = e.takeAttributeFromDropFile, l._flattenDropFile = e.flattenDropFile, l._destroyDropFileHandle = e.destroyDropFileHandle, e.__cxa_free_exception, l._free = O = e.free, Re = e._emscripten_timeout, h = e.setThrew, De = e._emscripten_tempret_set, We = e._emscripten_stack_restore, xe = e._emscripten_stack_alloc, Oe = e.emscripten_stack_get_current, Ue = e.__cxa_decrement_exception_refcount, Ve = e.__cxa_increment_exception_refcount, je = e.__cxa_can_catch, Ie = e.__cxa_get_exception_ptr;\n }\n var He = {\n __cxa_begin_catch: ot,\n __cxa_end_catch: ut,\n __cxa_find_matching_catch_2: ct,\n __cxa_find_matching_catch_3: ft,\n __cxa_find_matching_catch_4: lt,\n __cxa_rethrow: vt,\n __cxa_throw: _t,\n __cxa_uncaught_exceptions: dt,\n __resumeException: pt,\n _abort_js: ht,\n _embind_register_bigint: yt,\n _embind_register_bool: mt,\n _embind_register_class: jt,\n _embind_register_class_class_function: Ht,\n _embind_register_class_constructor: Mt,\n _embind_register_class_function: Bt,\n _embind_register_class_property: Lt,\n _embind_register_emval: Yt,\n _embind_register_enum: Gt,\n _embind_register_enum_value: qt,\n _embind_register_float: Jt,\n _embind_register_function: Kt,\n _embind_register_integer: Zt,\n _embind_register_memory_view: Qt,\n _embind_register_std_string: en,\n _embind_register_std_wstring: cn,\n _embind_register_void: fn,\n _emscripten_runtime_keepalive_clear: ln,\n _emval_create_invoker: hn,\n _emval_decref: Or,\n _emval_get_property: gn,\n _emval_incref: yn,\n _emval_invoke: mn,\n _emval_new_array: bn,\n _emval_new_cstring: $n,\n _emval_new_object: wn,\n _emval_run_destructors: Tn,\n _emval_set_property: Fn,\n _gmtime_js: kn,\n _localtime_js: Dn,\n _setitimer_js: Vn,\n _tzset_js: jn,\n clock_time_get: Bn,\n emscripten_get_heap_max: Ln,\n emscripten_resize_heap: Nn,\n environ_get: qn,\n environ_sizes_get: Xn,\n fd_close: Jn,\n fd_fdstat_get: Kn,\n fd_seek: Zn,\n fd_write: Qn,\n invoke_diii: ji,\n invoke_diiiii: yi,\n invoke_fi: Si,\n invoke_fiii: Vi,\n invoke_i: Ii,\n invoke_ii: vi,\n invoke_iii: hi,\n invoke_iiii: gi,\n invoke_iiiid: Mi,\n invoke_iiiii: ki,\n invoke_iiiiid: xi,\n invoke_iiiiii: wi,\n invoke_iiiiiii: Ai,\n invoke_iiiiiiii: Oi,\n invoke_iiiiiiiiii: Fi,\n invoke_iiiiiiiiiii: mi,\n invoke_iiiiiiiiiiii: bi,\n invoke_iiiiijj: Bi,\n invoke_iiiijj: Li,\n invoke_iiij: Ri,\n invoke_j: Di,\n invoke_jiiii: Ui,\n invoke_v: $i,\n invoke_vi: _i,\n invoke_vii: pi,\n invoke_viii: di,\n invoke_viiii: li,\n invoke_viiiii: Ci,\n invoke_viiiiii: Ti,\n invoke_viiiiiii: Hi,\n invoke_viiiiiiii: Ei,\n invoke_viiiiiiiiii: zi,\n invoke_viiiiiiiiiiiiiii: Yi,\n invoke_viiji: Wi,\n invoke_viijii: Pi,\n llvm_eh_typeid_for: ri,\n proc_exit: Fe\n };\n function li(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function vi(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function _i(e, r) {\n var t = y();\n try {\n b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function di(e, r, t, n) {\n var i = y();\n try {\n b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function pi(e, r, t) {\n var n = y();\n try {\n b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function hi(e, r, t) {\n var n = y();\n try {\n return b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function gi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function yi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function mi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function bi(e, r, t, n, i, a, s, o, u, c, f, _) {\n var d = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f, _);\n } catch (p) {\n if (g(d), p !== p + 0) throw p;\n h(1, 0);\n }\n }\n function $i(e) {\n var r = y();\n try {\n b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function wi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Ti(e, r, t, n, i, a, s) {\n var o = y();\n try {\n b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Fi(e, r, t, n, i, a, s, o, u, c) {\n var f = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c);\n } catch (_) {\n if (g(f), _ !== _ + 0) throw _;\n h(1, 0);\n }\n }\n function Ci(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Pi(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function ki(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Si(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function Ai(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Ei(e, r, t, n, i, a, s, o, u) {\n var c = y();\n try {\n b(e)(r, t, n, i, a, s, o, u);\n } catch (f) {\n if (g(c), f !== f + 0) throw f;\n h(1, 0);\n }\n }\n function Ri(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Di(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n return h(1, 0), 0n;\n }\n }\n function Wi(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function xi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Oi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n return b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Ui(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n return h(1, 0), 0n;\n }\n }\n function Vi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function ji(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Ii(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function Hi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Mi(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Bi(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Li(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function zi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function Yi(e, r, t, n, i, a, s, o, u, c, f, _, d, p, v, $) {\n var P = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f, _, d, p, v, $);\n } catch (F) {\n if (g(P), F !== F + 0) throw F;\n h(1, 0);\n }\n }\n function Ni() {\n Xe();\n function e() {\n l.calledRun = !0, !Q && (Je(), Gr?.(l), l.onRuntimeInitialized?.(), Ke());\n }\n l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(() => {\n setTimeout(() => l.setStatus(\"\"), 1), e();\n }, 1)) : e();\n }\n var B;\n return B = await it(), Ni(), Jr ? $r = l : $r = new Promise((e, r) => {\n Gr = e, qr = r;\n }), $r;\n}\n//#endregion\n//#region packages/core/engine/threads/decoder/worker.ts\nconst { wasmBinary } = await new Promise((resolve) => {\n self.addEventListener(\"message\", function onInit(e) {\n if (e.data?.type === \"wasm-init\") {\n self.removeEventListener(\"message\", onInit);\n resolve(e.data);\n }\n });\n});\nif (!wasmBinary) throw new Error(\"Decoder worker did not receive WASM binary. The main thread failed to fetch aqua-parser.wasm.\");\nconst module = await qi({ wasmBinary });\nconst controllers = /* @__PURE__ */ new Map();\nconst decoder = {\n get AttributeInfo() {\n return module.AttributeInfo;\n },\n get AquaStatus() {\n return module.AquaStatus;\n },\n get heapU8() {\n return module.HEAPU8;\n },\n get heapU32() {\n return module.HEAPU32;\n },\n get SceneRequestDescriptor() {\n return module.SceneRequestDescriptor;\n },\n get WorkerDataType() {\n return module.WorkerDataType;\n },\n dataPtrView: (attributeInfo) => {\n return module.dataPtrView(attributeInfo);\n },\n free: (...args) => {\n return module.ccall(\"free\", \"number\", [\"number\"], args);\n },\n malloc: (...args) => {\n return module.ccall(\"malloc\", \"number\", [\"number\"], args);\n },\n parseDropFile: (bufferPtr, bufferSize, octreeBounds) => {\n return module.parseDropFile(bufferPtr, bufferSize, octreeBounds);\n },\n getAttributeFromDropFile: (handle, attributeName, attributeInfo) => {\n return module.getAttributeFromDropFile(handle, attributeName, attributeInfo);\n },\n takeAttributeFromDropFile: (handle, attributeName, clientSideId) => {\n return module.takeAttributeFromDropFile(handle, attributeName, clientSideId);\n },\n flattenDropFile: (handle, outPtr, outSize) => {\n return module.flattenDropFile(handle, outPtr, outSize);\n },\n destroyDropFileHandle: (handle) => {\n return module.destroyDropFileHandle(handle);\n }\n};\ndefineActions({\n async cancel(requestIdLow, requestIdHigh) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = controllers.get(key);\n if (controller) {\n controller.abort();\n controllers.delete(key);\n }\n return [{ cancelled: !!controller }];\n },\n async heapSnapshot(topN) {\n if (typeof module.TakeHeapSnapshot !== \"function\") return [{ snapshotJson: null }];\n return [{ snapshotJson: module.TakeHeapSnapshot(topN) }];\n },\n async heapTrackingControl(enabled) {\n if (typeof module.SetHeapTrackingEnabled !== \"function\") return [{ success: false }];\n module.SetHeapTrackingEnabled(enabled);\n return [{ success: true }];\n },\n async heapTrackingReset() {\n if (typeof module.ResetHeapTracking !== \"function\") return [{ success: false }];\n module.ResetHeapTracking();\n return [{ success: true }];\n },\n async decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, consecutiveIdsStart, noJwt) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = new AbortController();\n controllers.set(key, controller);\n try {\n const { free, malloc, parseDropFile, getAttributeFromDropFile, takeAttributeFromDropFile, flattenDropFile, destroyDropFileHandle } = decoder;\n const descriptorSize = descriptorBuffer.byteLength;\n const descriptorPointer = malloc(descriptorSize);\n decoder.heapU8.set(new Uint8Array(descriptorBuffer), descriptorPointer);\n const descriptor = module.SceneRequestDescriptor.deserializeFromBinary(descriptorPointer, descriptorSize);\n free(descriptorPointer);\n let url = descriptor.getUrl();\n if (noJwt) {\n const url_class = new URL(url);\n url_class.searchParams.delete(\"jwt\");\n url = url_class.toString();\n }\n const body = descriptor.getBody() || null;\n const method = body ? \"POST\" : \"GET\";\n const headers = descriptor.getHeaders();\n const octreeBounds = descriptor.getOctreeBounds();\n descriptor.delete();\n const startTime = performance.now();\n const response = await fetch(url, {\n method,\n headers,\n body,\n signal: controller.signal\n });\n const responseHeadersJson = JSON.stringify({ \"x-cache\": response.headers.get(\"x-cache\") ?? \"\" });\n if (!response.ok) {\n const duration = performance.now() - startTime;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: `HTTP error! status: ${response.status}`,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration,\n ttfb: duration,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [] }];\n }\n const rtt = performance.now() - startTime;\n const responseBuffer = await response.arrayBuffer();\n const duration = performance.now() - startTime;\n const attributes = [];\n if (!url.split(/[?#]/, 1)[0].endsWith(\".drop\")) return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: responseBuffer,\n success: true,\n parsed: false,\n error: void 0,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [responseBuffer] }];\n const responseSize = responseBuffer.byteLength;\n const responsePointer = malloc(responseSize);\n decoder.heapU8.set(new Uint8Array(responseBuffer), responsePointer);\n const outputPointerPointer = malloc(4);\n const outputSizePointer = malloc(4);\n decoder.heapU32[outputPointerPointer / 4] = 0;\n decoder.heapU32[outputSizePointer / 4] = 0;\n let handle = 0;\n let outputPointer = 0;\n const attributeInfo = new decoder.AttributeInfo();\n try {\n handle = parseDropFile(responsePointer, responseSize, octreeBounds);\n if (handle === 0) throw new Error(\"parseDropFile failed\");\n let index = consecutiveIdsStart;\n for (const [name, info] of Object.entries(sparkAttributeList)) {\n if (info.discard) takeAttributeFromDropFile(handle, name, index);\n else if (getAttributeFromDropFile(handle, name, attributeInfo) === decoder.AquaStatus.Success) {\n const wasmView = decoder.dataPtrView(attributeInfo);\n const splatData = sparkAttributeFromRaw(name, index, wasmView);\n if (takeAttributeFromDropFile(handle, name, index) === decoder.AquaStatus.Success) attributes.push(splatData);\n }\n index++;\n }\n if (flattenDropFile(handle, outputPointerPointer, outputSizePointer) !== decoder.AquaStatus.Success) throw new Error(\"flattenDropFile failed\");\n outputPointer = decoder.heapU32[outputPointerPointer / 4];\n const outputSize = decoder.heapU32[outputSizePointer / 4];\n if (outputPointer === 0) throw new Error(\"flattenDropFile gave nullptr\");\n const resultBuffer = decoder.heapU8.buffer.slice(outputPointer, outputPointer + outputSize);\n const transferList = attributes.map((attr) => attr.paddedData.buffer);\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: true,\n parsed: true,\n error: void 0,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer, ...transferList] }];\n } catch (error) {\n console.error(\"Exception when parsing dropfile\", error);\n const errorMessage = error instanceof Error ? error.stack ?? error.message : String(error);\n const resultBuffer = (/* @__PURE__ */ new Uint8Array()).buffer;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: false,\n parsed: false,\n error: errorMessage,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes: void 0,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer] }];\n } finally {\n destroyDropFileHandle(handle);\n free(responsePointer);\n free(outputPointerPointer);\n free(outputSizePointer);\n if (outputPointer !== 0) free(outputPointer);\n attributeInfo.delete();\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n const isCancelled = error instanceof Error && error.name === \"AbortError\";\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: isCancelled ? \"Cancelled\" : errorMsg,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration: 0,\n ttfb: 0,\n httpStatus: 0,\n responseHeadersJson: \"{}\"\n }, { transfer: [] }];\n } finally {\n controllers.delete(key);\n }\n }\n});\n//#endregion\n";
|
|
177
|
+
// packages/core/engine/threads/decoder/worker.ts?worker&inline
|
|
178
|
+
var jsContent = "// packages/core/engine/threads/utils.ts\nconst defineActions = (actions) => {\n self.postMessage(\"ready\");\n self.addEventListener(\"message\", async ({ data }) => {\n if (\"ready\" === data) return;\n const { id, action, args } = data;\n const [result, ...postMessageArgs] = await Reflect.apply(actions[action], void 0, [...args, id]);\n self.postMessage({\n id,\n result\n }, ...postMessageArgs);\n });\n return actions;\n};\n// packages/core/attribute.ts\nconst sparkMinSplats = 2048;\nconst NOT_PER_SPLAT = 0;\nconst clientAttributeList = {\n sparkPackedSplat: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatLow: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatHigh: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh1: {\n elementsPerSplat: 2,\n discard: false\n },\n packedSh2: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh3: {\n elementsPerSplat: 4,\n discard: false\n },\n sh1Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh2Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_0: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_1: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkEllipsoid: {\n elementsPerSplat: 12,\n discard: false\n },\n sharkEllipsoidCompressed: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkSphericalHarmonics: {\n elementsPerSplat: 16,\n discard: false\n },\n color: {\n elementsPerSplat: 2,\n discard: false\n },\n mod_depth: {\n elementsPerSplat: .5,\n discard: false\n },\n reflectanceDataV1: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n reflectanceDataV2: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n glassMeshGeometry: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n glassMeshPanels: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n }\n};\nfunction roundUpToMultipleOf(a, multiple) {\n return Math.ceil(a / multiple) * multiple;\n}\nfunction sparkAttributeFromRaw(name, id, wasmView) {\n const attrib = clientAttributeList[name];\n if (attrib === void 0) throw new Error(\"attribute name\" + name + \" is unknown\");\n const originalSize = wasmView.length;\n const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);\n const paddedData = new Uint32Array(paddedSize);\n paddedData.set(wasmView);\n return {\n paddedData,\n originalSizeInUints: originalSize,\n id\n };\n}\nfunction attributeFromRaw(id, wasmView) {\n const size = wasmView.length;\n const data = new Uint32Array(size);\n data.set(wasmView);\n return {\n paddedData: data,\n originalSizeInUints: size,\n id\n };\n}\n// packages/core/aqua-parser.js\nasync function qi(ze = {}) {\n var $r, l = ze, Ye = !1, Br = !0, Lr = \"./this.program\", zr = (e, r) => {\n throw r;\n }, Ge = import.meta.url, wr = \"\";\n function qe(e) {\n return l.locateFile ? l.locateFile(e, wr) : wr + e;\n }\n var Yr, Tr;\n if (Ye || Br) {\n try {\n wr = new URL(\".\", Ge).href;\n } catch {}\n Br && (Tr = (e) => {\n var r = new XMLHttpRequest();\n return r.open(\"GET\", e, !1), r.responseType = \"arraybuffer\", r.send(null), new Uint8Array(r.response);\n }), Yr = async (e) => {\n var r = await fetch(e, { credentials: \"same-origin\" });\n if (r.ok) return r.arrayBuffer();\n throw new Error(r.status + \" : \" + r.url);\n };\n }\n var Nr = console.log.bind(console), L = console.error.bind(console), G, Q = !1, rr, Gr, qr, er, S, E, U, z, T, w, tr, nr, V, Xr, Jr = !1;\n function Kr() {\n var e = er.buffer;\n l.HEAP8 = S = new Int8Array(e), U = new Int16Array(e), l.HEAPU8 = E = new Uint8Array(e), z = new Uint16Array(e), l.HEAP32 = T = new Int32Array(e), l.HEAPU32 = w = new Uint32Array(e), l.HEAPF32 = tr = new Float32Array(e), l.HEAPF64 = nr = new Float64Array(e), V = new BigInt64Array(e), Xr = new BigUint64Array(e);\n }\n function Xe() {\n if (l.preRun) for (typeof l.preRun == \"function\" && (l.preRun = [l.preRun]); l.preRun.length;) st(l.preRun.shift());\n Qr(ee);\n }\n function Je() {\n Jr = !0, B.__wasm_call_ctors();\n }\n function Ke() {\n if (l.postRun) for (typeof l.postRun == \"function\" && (l.postRun = [l.postRun]); l.postRun.length;) at(l.postRun.shift());\n Qr(re);\n }\n function Y(e) {\n l.onAbort?.(e), e = \"Aborted(\" + e + \")\", L(e), Q = !0, e += \". Build with -sASSERTIONS for more info.\";\n var r = new WebAssembly.RuntimeError(e);\n throw qr?.(r), r;\n }\n var Fr;\n function Ze() {\n return l.locateFile ? qe(\"aqua-parser.wasm\") : \"\";\n }\n function Qe(e) {\n if (e == Fr && G) return new Uint8Array(G);\n if (Tr) return Tr(e);\n throw \"both async and sync fetching of the wasm failed\";\n }\n async function rt(e) {\n if (!G) try {\n var r = await Yr(e);\n return new Uint8Array(r);\n } catch {}\n return Qe(e);\n }\n async function et(e, r) {\n try {\n var t = await rt(e);\n return await WebAssembly.instantiate(t, r);\n } catch (i) {\n L(`failed to asynchronously prepare wasm: ${i}`), Y(i);\n }\n }\n async function tt(e, r, t) {\n if (!e) try {\n var n = fetch(r, { credentials: \"same-origin\" });\n return await WebAssembly.instantiateStreaming(n, t);\n } catch (a) {\n L(`wasm streaming compile failed: ${a}`), L(\"falling back to ArrayBuffer instantiation\");\n }\n return et(r, t);\n }\n function nt() {\n return {\n env: He,\n wasi_snapshot_preview1: He\n };\n }\n async function it() {\n function e(a, s) {\n return B = a.exports, er = B.memory, Kr(), fe = B.__indirect_function_table, fi(B), B;\n }\n function r(a) {\n return e(a.instance);\n }\n var t = nt();\n if (l.instantiateWasm) return new Promise((a, s) => {\n l.instantiateWasm(t, (o, u) => {\n a(e(o, u));\n });\n });\n Fr ??= Ze();\n return r(await tt(G, Fr, t));\n }\n class Zr {\n name = \"ExitStatus\";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var Qr = (e) => {\n for (; e.length > 0;) e.shift()(l);\n }, re = [], at = (e) => re.push(e), ee = [], st = (e) => ee.push(e);\n var Cr = !0;\n var g = (e) => We(e), y = () => Oe(), ir = [], ar = 0, ot = (e) => {\n var r = new Pr(e);\n return r.get_caught() || (r.set_caught(!0), ar--), r.set_rethrown(!1), ir.push(r), Ve(e), Ie(e);\n }, x = 0, ut = () => {\n h(0, 0);\n var e = ir.pop();\n Ue(e.excPtr), x = 0;\n };\n class Pr {\n constructor(r) {\n this.excPtr = r, this.ptr = r - 24;\n }\n set_type(r) {\n w[this.ptr + 4 >> 2] = r;\n }\n get_type() {\n return w[this.ptr + 4 >> 2];\n }\n set_destructor(r) {\n w[this.ptr + 8 >> 2] = r;\n }\n get_destructor() {\n return w[this.ptr + 8 >> 2];\n }\n set_caught(r) {\n r = r ? 1 : 0, S[this.ptr + 12] = r;\n }\n get_caught() {\n return S[this.ptr + 12] != 0;\n }\n set_rethrown(r) {\n r = r ? 1 : 0, S[this.ptr + 13] = r;\n }\n get_rethrown() {\n return S[this.ptr + 13] != 0;\n }\n init(r, t) {\n this.set_adjusted_ptr(0), this.set_type(r), this.set_destructor(t);\n }\n set_adjusted_ptr(r) {\n w[this.ptr + 16 >> 2] = r;\n }\n get_adjusted_ptr() {\n return w[this.ptr + 16 >> 2];\n }\n }\n var sr = (e) => De(e), kr = (e) => {\n var r = x;\n if (!r) return sr(0), 0;\n var t = new Pr(r);\n t.set_adjusted_ptr(r);\n var n = t.get_type();\n if (!n) return sr(0), r;\n for (var i of e) {\n if (i === 0 || i === n) break;\n var a = t.ptr + 16;\n if (je(i, n, a)) return sr(i), r;\n }\n return sr(n), r;\n }, ct = () => kr([]), ft = (e) => kr([e]), lt = (e, r) => kr([e, r]), vt = () => {\n var e = ir.pop();\n e || Y(\"no exception to throw\");\n var r = e.excPtr;\n throw e.get_rethrown() || (ir.push(e), e.set_rethrown(!0), e.set_caught(!1), ar++), x = r, x;\n }, _t = (e, r, t) => {\n throw new Pr(e).init(r, t), x = e, ar++, x;\n }, dt = () => ar, pt = (e) => {\n throw x || (x = e), x;\n }, ht = () => Y(\"\"), C = (e) => {\n for (var r = \"\";;) {\n var t = E[e++];\n if (!t) return r;\n r += String.fromCharCode(t);\n }\n }, N = {}, j = {}, or = {}, q = class extends Error {\n constructor(r) {\n super(r), this.name = \"BindingError\";\n }\n }, m = (e) => {\n throw new q(e);\n };\n function gt(e, r, t = {}) {\n var n = r.name;\n if (e || m(`type \"${n}\" must have a positive integer typeid pointer`), j.hasOwnProperty(e)) {\n if (t.ignoreDuplicateRegistrations) return;\n m(`Cannot register type '${n}' twice`);\n }\n if (j[e] = r, delete or[e], N.hasOwnProperty(e)) {\n var i = N[e];\n delete N[e], i.forEach((a) => a());\n }\n }\n function R(e, r, t = {}) {\n return gt(e, r, t);\n }\n var te = (e, r, t) => {\n switch (r) {\n case 1: return t ? (n) => S[n] : (n) => E[n];\n case 2: return t ? (n) => U[n >> 1] : (n) => z[n >> 1];\n case 4: return t ? (n) => T[n >> 2] : (n) => w[n >> 2];\n case 8: return t ? (n) => V[n >> 3] : (n) => Xr[n >> 3];\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, yt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0n;\n let s = (o) => o;\n if (a) {\n const o = t * 8;\n s = (u) => BigInt.asUintN(o, u), i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (o, u) => (typeof u == \"number\" && (u = BigInt(u)), u),\n readValueFromPointer: te(r, t, !a),\n destructorFunction: null\n });\n }, mt = (e, r, t, n) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: function(i) {\n return !!i;\n },\n toWireType: function(i, a) {\n return a ? t : n;\n },\n readValueFromPointer: function(i) {\n return this.fromWireType(E[i]);\n },\n destructorFunction: null\n });\n }, bt = (e) => ({\n count: e.count,\n deleteScheduled: e.deleteScheduled,\n preservePointerOnDelete: e.preservePointerOnDelete,\n ptr: e.ptr,\n ptrType: e.ptrType,\n smartPtr: e.smartPtr,\n smartPtrType: e.smartPtrType\n }), Sr = (e) => {\n function r(t) {\n return t.$$.ptrType.registeredClass.name;\n }\n m(r(e) + \" instance already deleted\");\n }, Ar = !1, ne = (e) => {}, $t = (e) => {\n e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr);\n }, ie = (e) => {\n e.count.value -= 1;\n e.count.value === 0 && $t(e);\n }, X = (e) => typeof FinalizationRegistry > \"u\" ? (X = (r) => r, e) : (Ar = new FinalizationRegistry((r) => {\n ie(r.$$);\n }), X = (r) => {\n var t = r.$$;\n if (!!t.smartPtr) {\n var i = { $$: t };\n Ar.register(r, i, r);\n }\n return r;\n }, ne = (r) => Ar.unregister(r), X(e)), ur = [], wt = () => {\n for (; ur.length;) {\n var e = ur.pop();\n e.$$.deleteScheduled = !1, e.delete();\n }\n }, ae, Tt = () => {\n let e = cr.prototype;\n Object.assign(e, {\n isAliasOf(t) {\n if (!(this instanceof cr) || !(t instanceof cr)) return !1;\n var n = this.$$.ptrType.registeredClass, i = this.$$.ptr;\n t.$$ = t.$$;\n for (var a = t.$$.ptrType.registeredClass, s = t.$$.ptr; n.baseClass;) i = n.upcast(i), n = n.baseClass;\n for (; a.baseClass;) s = a.upcast(s), a = a.baseClass;\n return n === a && i === s;\n },\n clone() {\n if (this.$$.ptr || Sr(this), this.$$.preservePointerOnDelete) return this.$$.count.value += 1, this;\n var t = X(Object.create(Object.getPrototypeOf(this), { $$: { value: bt(this.$$) } }));\n return t.$$.count.value += 1, t.$$.deleteScheduled = !1, t;\n },\n delete() {\n this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ne(this), ie(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);\n },\n isDeleted() {\n return !this.$$.ptr;\n },\n deleteLater() {\n return this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ur.push(this), ur.length === 1 && ae && ae(wt), this.$$.deleteScheduled = !0, this;\n }\n });\n const r = Symbol.dispose;\n r && (e[r] = e.delete);\n };\n function cr() {}\n var fr = (e, r) => Object.defineProperty(r, \"name\", { value: e }), se = {}, Er = (e, r, t) => {\n if (e[r].overloadTable === void 0) {\n var n = e[r];\n e[r] = function(...i) {\n return e[r].overloadTable.hasOwnProperty(i.length) || m(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`), e[r].overloadTable[i.length].apply(this, i);\n }, e[r].overloadTable = [], e[r].overloadTable[n.argCount] = n;\n }\n }, Rr = (e, r, t) => {\n l.hasOwnProperty(e) ? ((t === void 0 || l[e].overloadTable !== void 0 && l[e].overloadTable[t] !== void 0) && m(`Cannot register public name '${e}' twice`), Er(l, e, e), l[e].overloadTable.hasOwnProperty(t) && m(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`), l[e].overloadTable[t] = r) : (l[e] = r, l[e].argCount = t);\n }, Ft = 48, Ct = 57, Pt = (e) => {\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var r = e.charCodeAt(0);\n return r >= Ft && r <= Ct ? `_${e}` : e;\n };\n function kt(e, r, t, n, i, a, s, o) {\n this.name = e, this.constructor = r, this.instancePrototype = t, this.rawDestructor = n, this.baseClass = i, this.getActualType = a, this.upcast = s, this.downcast = o, this.pureVirtualFunctions = [];\n }\n var lr = (e, r, t) => {\n for (; r !== t;) r.upcast || m(`Expected null or instance of ${t.name}, got an instance of ${r.name}`), e = r.upcast(e), r = r.baseClass;\n return e;\n }, Dr = (e) => {\n if (e === null) return \"null\";\n var r = typeof e;\n return r === \"object\" || r === \"array\" || r === \"function\" ? e.toString() : \"\" + e;\n };\n function St(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function At(e, r) {\n var t;\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), this.isSmartPointer ? (t = this.rawConstructor(), e !== null && e.push(this.rawDestructor, t), t) : 0;\n (!r || !r.$$) && m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n var n = r.$$.ptrType.registeredClass;\n if (t = lr(r.$$.ptr, n, this.registeredClass), this.isSmartPointer) switch (r.$$.smartPtr === void 0 && m(\"Passing raw pointer to smart pointer is illegal\"), this.sharingPolicy) {\n case 0:\n r.$$.smartPtrType === this ? t = r.$$.smartPtr : m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n break;\n case 1:\n t = r.$$.smartPtr;\n break;\n case 2:\n if (r.$$.smartPtrType === this) t = r.$$.smartPtr;\n else {\n var i = r.clone();\n t = this.rawShare(t, k.toHandle(() => i.delete())), e !== null && e.push(this.rawDestructor, t);\n }\n break;\n default: m(\"Unsupporting sharing policy\");\n }\n return t;\n }\n function Et(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function vr(e) {\n return this.fromWireType(w[e >> 2]);\n }\n var oe = (e, r, t) => {\n if (r === t) return e;\n if (t.baseClass === void 0) return null;\n var n = oe(e, r, t.baseClass);\n return n === null ? null : t.downcast(n);\n }, Rt = {}, Dt = (e, r) => {\n for (r === void 0 && m(\"ptr should not be undefined\"); e.baseClass;) r = e.upcast(r), e = e.baseClass;\n return r;\n }, Wt = (e, r) => (r = Dt(e, r), Rt[r]), xt = class extends Error {\n constructor(r) {\n super(r), this.name = \"InternalError\";\n }\n }, _r = (e) => {\n throw new xt(e);\n }, dr = (e, r) => {\n (!r.ptrType || !r.ptr) && _r(\"makeClassHandle requires ptr and ptrType\");\n return !!r.smartPtrType !== !!r.smartPtr && _r(\"Both smartPtrType and smartPtr must be specified\"), r.count = { value: 1 }, X(Object.create(e, { $$: {\n value: r,\n writable: !0\n } }));\n };\n function Ot(e) {\n var r = this.getPointee(e);\n if (!r) return this.destructor(e), null;\n var t = Wt(this.registeredClass, r);\n if (t !== void 0) {\n if (t.$$.count.value === 0) return t.$$.ptr = r, t.$$.smartPtr = e, t.clone();\n var n = t.clone();\n return this.destructor(e), n;\n }\n function i() {\n return this.isSmartPointer ? dr(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: r,\n smartPtrType: this,\n smartPtr: e\n }) : dr(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr: e\n });\n }\n var s = se[this.registeredClass.getActualType(r)];\n if (!s) return i.call(this);\n var o;\n this.isConst ? o = s.constPointerType : o = s.pointerType;\n var u = oe(r, this.registeredClass, o.registeredClass);\n return u === null ? i.call(this) : this.isSmartPointer ? dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u,\n smartPtrType: this,\n smartPtr: e\n }) : dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u\n });\n }\n var Ut = () => {\n Object.assign(pr.prototype, {\n getPointee(e) {\n return this.rawGetPointee && (e = this.rawGetPointee(e)), e;\n },\n destructor(e) {\n this.rawDestructor?.(e);\n },\n readValueFromPointer: vr,\n fromWireType: Ot\n });\n };\n function pr(e, r, t, n, i, a, s, o, u, c, f) {\n this.name = e, this.registeredClass = r, this.isReference = t, this.isConst = n, this.isSmartPointer = i, this.pointeeType = a, this.sharingPolicy = s, this.rawGetPointee = o, this.rawConstructor = u, this.rawShare = c, this.rawDestructor = f, !i && r.baseClass === void 0 ? n ? (this.toWireType = St, this.destructorFunction = null) : (this.toWireType = Et, this.destructorFunction = null) : this.toWireType = At;\n }\n var ue = (e, r, t) => {\n l.hasOwnProperty(e) || _r(\"Replacing nonexistent public symbol\"), l[e].overloadTable !== void 0 && t !== void 0 ? l[e].overloadTable[t] = r : (l[e] = r, l[e].argCount = t);\n }, ce = [], fe, b = (e) => {\n var r = ce[e];\n return r || (ce[e] = r = fe.get(e)), r;\n }, D = (e, r, t = !1) => {\n e = C(e);\n function n() {\n return b(r);\n }\n var i = n();\n return typeof i != \"function\" && m(`unknown function pointer with signature ${e}: ${r}`), i;\n };\n class Vt extends Error {}\n var le = (e) => {\n var r = Ee(e), t = C(r);\n return O(r), t;\n }, I = (e, r) => {\n var t = [], n = {};\n function i(a) {\n if (!n[a] && !j[a]) {\n if (or[a]) {\n or[a].forEach(i);\n return;\n }\n t.push(a), n[a] = !0;\n }\n }\n throw r.forEach(i), new Vt(`${e}: ` + t.map(le).join([\", \"]));\n }, W = (e, r, t) => {\n e.forEach((o) => or[o] = r);\n function n(o) {\n var u = t(o);\n u.length !== e.length && _r(\"Mismatched type converter count\");\n for (var c = 0; c < e.length; ++c) R(e[c], u[c]);\n }\n var i = new Array(r.length), a = [], s = 0;\n r.forEach((o, u) => {\n j.hasOwnProperty(o) ? i[u] = j[o] : (a.push(o), N.hasOwnProperty(o) || (N[o] = []), N[o].push(() => {\n i[u] = j[o], ++s, s === a.length && n(i);\n }));\n }), a.length === 0 && n(i);\n }, jt = (e, r, t, n, i, a, s, o, u, c, f, _, d) => {\n f = C(f), a = D(i, a), o &&= D(s, o), c &&= D(u, c), d = D(_, d);\n var p = Pt(f);\n Rr(p, function() {\n I(`Cannot construct ${f} due to unbound types`, [n]);\n }), W([\n e,\n r,\n t\n ], n ? [n] : [], (v) => {\n v = v[0];\n var $, P;\n n ? ($ = v.registeredClass, P = $.instancePrototype) : P = cr.prototype;\n var F = fr(f, function(...Mr) {\n if (Object.getPrototypeOf(this) !== Z) throw new q(`Use 'new' to construct ${f}`);\n if (A.constructor_body === void 0) throw new q(`${f} has no accessible constructor`);\n var Le = A.constructor_body[Mr.length];\n if (Le === void 0) throw new q(`Tried to invoke ctor of ${f} with invalid number of parameters (${Mr.length}) - expected (${Object.keys(A.constructor_body).toString()}) parameters instead!`);\n return Le.apply(this, Mr);\n }), Z = Object.create(P, { constructor: { value: F } });\n F.prototype = Z;\n var A = new kt(f, F, Z, d, $, a, o, c);\n A.baseClass && (A.baseClass.__derivedClasses ??= [], A.baseClass.__derivedClasses.push(A));\n var Gi = new pr(f, A, !0, !1, !1), Me = new pr(f + \"*\", A, !1, !1, !1), Be = new pr(f + \" const*\", A, !1, !0, !1);\n return se[e] = {\n pointerType: Me,\n constPointerType: Be\n }, ue(p, F), [\n Gi,\n Me,\n Be\n ];\n });\n }, Wr = (e) => {\n for (; e.length;) {\n var r = e.pop();\n e.pop()(r);\n }\n };\n function ve(e) {\n for (var r = 1; r < e.length; ++r) if (e[r] !== null && e[r].destructorFunction === void 0) return !0;\n return !1;\n }\n function It(e, r, t, n) {\n var i = ve(e), a = e.length - 2, s = [], o = [\"fn\"];\n r && o.push(\"thisWired\");\n for (var u = 0; u < a; ++u) s.push(`arg${u}`), o.push(`arg${u}Wired`);\n s = s.join(\",\"), o = o.join(\",\");\n var c = `return function (${s}) {\n`;\n i && (c += `var destructors = [];\n`);\n var f = i ? \"destructors\" : \"null\", _ = [\n \"humanName\",\n \"throwBindingError\",\n \"invoker\",\n \"fn\",\n \"runDestructors\",\n \"fromRetWire\",\n \"toClassParamWire\"\n ];\n r && (c += `var thisWired = toClassParamWire(${f}, this);\n`);\n for (var u = 0; u < a; ++u) {\n var d = `toArg${u}Wire`;\n c += `var arg${u}Wired = ${d}(${f}, arg${u});\n`, _.push(d);\n }\n c += (t || n ? \"var rv = \" : \"\") + `invoker(${o});\n`;\n if (i) c += `runDestructors(destructors);\n`;\n else for (var u = r ? 1 : 2; u < e.length; ++u) {\n var v = u === 1 ? \"thisWired\" : \"arg\" + (u - 2) + \"Wired\";\n e[u].destructorFunction !== null && (c += `${v}_dtor(${v});\n`, _.push(`${v}_dtor`));\n }\n return t && (c += `var ret = fromRetWire(rv);\nreturn ret;\n`), c += `}\n`, new Function(_, c);\n }\n function hr(e, r, t, n, i, a) {\n var s = r.length;\n s < 2 && m(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n for (var o = r[1] !== null && t !== null, u = ve(r), c = !r[0].isVoid, f = s - 2, _ = r[0], d = r[1], p = [\n e,\n m,\n n,\n i,\n Wr,\n _.fromWireType.bind(_),\n d?.toWireType.bind(d)\n ], v = 2; v < s; ++v) {\n var $ = r[v];\n p.push($.toWireType.bind($));\n }\n if (!u) for (var v = o ? 1 : 2; v < r.length; ++v) r[v].destructorFunction !== null && p.push(r[v].destructorFunction);\n return fr(e, It(r, o, c, a)(...p));\n }\n var gr = (e, r) => {\n for (var t = [], n = 0; n < e; n++) t.push(w[r + n * 4 >> 2]);\n return t;\n }, xr = (e) => {\n e = e.trim();\n const r = e.indexOf(\"(\");\n return r === -1 ? e : e.slice(0, r);\n }, Ht = (e, r, t, n, i, a, s, o, u) => {\n var c = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, o), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`;\n function d() {\n I(`Cannot call ${_} due to unbound types`, c);\n }\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]);\n var p = f.registeredClass.constructor;\n return p[r] === void 0 ? (d.argCount = t - 1, p[r] = d) : (Er(p, r, _), p[r].overloadTable[t - 1] = d), W([], c, (v) => {\n var P = hr(_, [v[0], null].concat(v.slice(1)), null, a, s, o);\n if (p[r].overloadTable === void 0 ? (P.argCount = t - 1, p[r] = P) : p[r].overloadTable[t - 1] = P, f.registeredClass.__derivedClasses) for (const F of f.registeredClass.__derivedClasses) F.constructor.hasOwnProperty(r) || (F.constructor[r] = P);\n return [];\n }), [];\n });\n }, Mt = (e, r, t, n, i, a) => {\n var s = gr(r, t);\n i = D(n, i);\n W([], [e], (c) => {\n c = c[0];\n var f = `constructor ${c.name}`;\n if (c.registeredClass.constructor_body === void 0 && (c.registeredClass.constructor_body = []), c.registeredClass.constructor_body[r - 1] !== void 0) throw new q(`Cannot register multiple constructors with identical number of parameters (${r - 1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return c.registeredClass.constructor_body[r - 1] = () => {\n I(`Cannot construct ${c.name} due to unbound types`, s);\n }, W([], s, (_) => (_.splice(1, 0, null), c.registeredClass.constructor_body[r - 1] = hr(f, _, null, i, a), [])), [];\n });\n }, Bt = (e, r, t, n, i, a, s, o, u, c) => {\n var f = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, u), W([], [e], (_) => {\n _ = _[0];\n var d = `${_.name}.${r}`;\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]), o && _.registeredClass.pureVirtualFunctions.push(r);\n function p() {\n I(`Cannot call ${d} due to unbound types`, f);\n }\n var v = _.registeredClass.instancePrototype, $ = v[r];\n return $ === void 0 || $.overloadTable === void 0 && $.className !== _.name && $.argCount === t - 2 ? (p.argCount = t - 2, p.className = _.name, v[r] = p) : (Er(v, r, d), v[r].overloadTable[t - 2] = p), W([], f, (P) => {\n var F = hr(d, P, _, a, s, u);\n return v[r].overloadTable === void 0 ? (F.argCount = t - 2, v[r] = F) : v[r].overloadTable[t - 2] = F, [];\n }), [];\n });\n }, _e = (e, r, t) => (e instanceof Object || m(`${t} with invalid \"this\": ${e}`), e instanceof r.registeredClass.constructor || m(`${t} incompatible with \"this\" of type ${e.constructor.name}`), e.$$.ptr || m(`cannot call emscripten binding method ${t} on deleted object`), lr(e.$$.ptr, e.$$.ptrType.registeredClass, r.registeredClass)), Lt = (e, r, t, n, i, a, s, o, u, c) => {\n r = C(r), i = D(n, i), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`, d = {\n get() {\n I(`Cannot access ${_} due to unbound types`, [t, s]);\n },\n enumerable: !0,\n configurable: !0\n };\n return u ? d.set = () => I(`Cannot access ${_} due to unbound types`, [t, s]) : d.set = (p) => m(_ + \" is a read-only property\"), Object.defineProperty(f.registeredClass.instancePrototype, r, d), W([], u ? [t, s] : [t], (p) => {\n var v = p[0], $ = {\n get() {\n var F = _e(this, f, _ + \" getter\");\n return v.fromWireType(i(a, F));\n },\n enumerable: !0\n };\n if (u) {\n u = D(o, u);\n var P = p[1];\n $.set = function(F) {\n var Z = _e(this, f, _ + \" setter\"), A = [];\n u(c, Z, P.toWireType(A, F)), Wr(A);\n };\n }\n return Object.defineProperty(f.registeredClass.instancePrototype, r, $), [];\n }), [];\n });\n }, de = [], H = [\n 0,\n 1,\n ,\n 1,\n null,\n 1,\n !0,\n 1,\n !1,\n 1\n ], Or = (e) => {\n e > 9 && --H[e + 1] === 0 && (H[e] = void 0, de.push(e));\n }, k = {\n toValue: (e) => (e || m(`Cannot use deleted val. handle = ${e}`), H[e]),\n toHandle: (e) => {\n switch (e) {\n case void 0: return 2;\n case null: return 4;\n case !0: return 6;\n case !1: return 8;\n default: {\n const r = de.pop() || H.length;\n return H[r] = e, H[r + 1] = 1, r;\n }\n }\n }\n }, zt = {\n name: \"emscripten::val\",\n fromWireType: (e) => {\n var r = k.toValue(e);\n return Or(e), r;\n },\n toWireType: (e, r) => k.toHandle(r),\n readValueFromPointer: vr,\n destructorFunction: null\n }, Yt = (e) => R(e, zt), Nt = (e, r, t) => {\n switch (r) {\n case 1: return t ? function(n) {\n return this.fromWireType(S[n]);\n } : function(n) {\n return this.fromWireType(E[n]);\n };\n case 2: return t ? function(n) {\n return this.fromWireType(U[n >> 1]);\n } : function(n) {\n return this.fromWireType(z[n >> 1]);\n };\n case 4: return t ? function(n) {\n return this.fromWireType(T[n >> 2]);\n } : function(n) {\n return this.fromWireType(w[n >> 2]);\n };\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, Gt = (e, r, t, n) => {\n r = C(r);\n function i() {}\n i.values = {}, R(e, {\n name: r,\n constructor: i,\n fromWireType: function(a) {\n return this.constructor.values[a];\n },\n toWireType: (a, s) => s.value,\n readValueFromPointer: Nt(r, t, n),\n destructorFunction: null\n }), Rr(r, i);\n }, pe = (e, r) => {\n var t = j[e];\n return t === void 0 && m(`${r} has unknown type ${le(e)}`), t;\n }, qt = (e, r, t) => {\n var n = pe(e, \"enum\");\n r = C(r);\n var i = n.constructor, a = Object.create(n.constructor.prototype, {\n value: { value: t },\n constructor: { value: fr(`${n.name}_${r}`, function() {}) }\n });\n i.values[t] = a, i[r] = a;\n }, Xt = (e, r) => {\n switch (r) {\n case 4: return function(t) {\n return this.fromWireType(tr[t >> 2]);\n };\n case 8: return function(t) {\n return this.fromWireType(nr[t >> 3]);\n };\n default: throw new TypeError(`invalid float width (${r}): ${e}`);\n }\n }, Jt = (e, r, t) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: (n) => n,\n toWireType: (n, i) => i,\n readValueFromPointer: Xt(r, t),\n destructorFunction: null\n });\n }, Kt = (e, r, t, n, i, a, s, o) => {\n var u = gr(r, t);\n e = C(e), e = xr(e), i = D(n, i, s), Rr(e, function() {\n I(`Cannot call ${e} due to unbound types`, u);\n }, r - 1), W([], u, (c) => {\n var f = [c[0], null].concat(c.slice(1));\n return ue(e, hr(e, f, null, i, a, s), r - 1), [];\n });\n }, Zt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0;\n let s = (u) => u;\n if (a) {\n var o = 32 - 8 * t;\n s = (u) => u << o >>> o, i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (u, c) => c,\n readValueFromPointer: te(r, t, n !== 0),\n destructorFunction: null\n });\n }, Qt = (e, r, t) => {\n var i = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n BigInt64Array,\n BigUint64Array\n ][r];\n function a(s) {\n var o = w[s >> 2], u = w[s + 4 >> 2];\n return new i(S.buffer, u, o);\n }\n t = C(t), R(e, {\n name: t,\n fromWireType: a,\n readValueFromPointer: a\n }, { ignoreDuplicateRegistrations: !0 });\n }, rn = (e, r, t, n) => {\n if (!(n > 0)) return 0;\n for (var i = t, a = t + n - 1, s = 0; s < e.length; ++s) {\n var o = e.codePointAt(s);\n if (o <= 127) {\n if (t >= a) break;\n r[t++] = o;\n } else if (o <= 2047) {\n if (t + 1 >= a) break;\n r[t++] = 192 | o >> 6, r[t++] = 128 | o & 63;\n } else if (o <= 65535) {\n if (t + 2 >= a) break;\n r[t++] = 224 | o >> 12, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63;\n } else {\n if (t + 3 >= a) break;\n r[t++] = 240 | o >> 18, r[t++] = 128 | o >> 12 & 63, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63, s++;\n }\n }\n return r[t] = 0, t - i;\n }, M = (e, r, t) => rn(e, E, r, t), Ur = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) {\n var n = e.charCodeAt(t);\n n <= 127 ? r++ : n <= 2047 ? r += 2 : n >= 55296 && n <= 57343 ? (r += 4, ++t) : r += 3;\n }\n return r;\n }, he = typeof TextDecoder < \"u\" ? new TextDecoder() : void 0, ge = (e, r, t, n) => {\n var i = r + t;\n if (n) return i;\n for (; e[r] && !(r >= i);) ++r;\n return r;\n }, ye = (e, r = 0, t, n) => {\n var i = ge(e, r, t, n);\n if (i - r > 16 && e.buffer && he) return he.decode(e.subarray(r, i));\n for (var a = \"\"; r < i;) {\n var s = e[r++];\n if (!(s & 128)) {\n a += String.fromCharCode(s);\n continue;\n }\n var o = e[r++] & 63;\n if ((s & 224) == 192) {\n a += String.fromCharCode((s & 31) << 6 | o);\n continue;\n }\n var u = e[r++] & 63;\n if ((s & 240) == 224 ? s = (s & 15) << 12 | o << 6 | u : s = (s & 7) << 18 | o << 12 | u << 6 | e[r++] & 63, s < 65536) a += String.fromCharCode(s);\n else {\n var c = s - 65536;\n a += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n }\n return a;\n }, yr = (e, r, t) => e ? ye(E, e, r, t) : \"\", en = (e, r) => {\n r = C(r);\n var t = !0;\n R(e, {\n name: r,\n fromWireType(n) {\n var i = w[n >> 2], a = n + 4, s;\n if (t) s = yr(a, i, !0);\n else {\n s = \"\";\n for (var o = 0; o < i; ++o) s += String.fromCharCode(E[a + o]);\n }\n return O(n), s;\n },\n toWireType(n, i) {\n i instanceof ArrayBuffer && (i = new Uint8Array(i));\n var a, s = typeof i == \"string\";\n s || ArrayBuffer.isView(i) && i.BYTES_PER_ELEMENT == 1 || m(\"Cannot pass non-string to std::string\"), t && s ? a = Ur(i) : a = i.length;\n var o = Hr(4 + a + 1), u = o + 4;\n if (w[o >> 2] = a, s) if (t) M(i, u, a + 1);\n else for (var c = 0; c < a; ++c) {\n var f = i.charCodeAt(c);\n f > 255 && (O(o), m(\"String has UTF-16 code units that do not fit in 8 bits\")), E[u + c] = f;\n }\n else E.set(i, u);\n return n !== null && n.push(O, o), o;\n },\n readValueFromPointer: vr,\n destructorFunction(n) {\n O(n);\n }\n });\n }, me = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, tn = (e, r, t) => {\n var n = e >> 1, i = ge(z, n, r / 2, t);\n if (i - n > 16 && me) return me.decode(z.subarray(n, i));\n for (var a = \"\", s = n; s < i; ++s) {\n var o = z[s];\n a += String.fromCharCode(o);\n }\n return a;\n }, nn = (e, r, t) => {\n if (t ??= 2147483647, t < 2) return 0;\n t -= 2;\n for (var n = r, i = t < e.length * 2 ? t / 2 : e.length, a = 0; a < i; ++a) {\n var s = e.charCodeAt(a);\n U[r >> 1] = s, r += 2;\n }\n return U[r >> 1] = 0, r - n;\n }, an = (e) => e.length * 2, sn = (e, r, t) => {\n for (var n = \"\", i = e >> 2, a = 0; !(a >= r / 4); a++) {\n var s = w[i + a];\n if (!s && !t) break;\n n += String.fromCodePoint(s);\n }\n return n;\n }, on = (e, r, t) => {\n if (t ??= 2147483647, t < 4) return 0;\n for (var n = r, i = n + t - 4, a = 0; a < e.length; ++a) {\n var s = e.codePointAt(a);\n if (s > 65535 && a++, T[r >> 2] = s, r += 4, r + 4 > i) break;\n }\n return T[r >> 2] = 0, r - n;\n }, un = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) e.codePointAt(t) > 65535 && t++, r += 4;\n return r;\n }, cn = (e, r, t) => {\n t = C(t);\n var n, i, a;\n r === 2 ? (n = tn, i = nn, a = an) : (n = sn, i = on, a = un), R(e, {\n name: t,\n fromWireType: (s) => {\n var o = w[s >> 2], u = n(s + 4, o * r, !0);\n return O(s), u;\n },\n toWireType: (s, o) => {\n typeof o != \"string\" && m(`Cannot pass non-string to C++ string type ${t}`);\n var u = a(o), c = Hr(4 + u + r);\n return w[c >> 2] = u / r, i(o, c + 4, u + r), s !== null && s.push(O, c), c;\n },\n readValueFromPointer: vr,\n destructorFunction(s) {\n O(s);\n }\n });\n }, fn = (e, r) => {\n r = C(r), R(e, {\n isVoid: !0,\n name: r,\n fromWireType: () => {},\n toWireType: (t, n) => {}\n });\n }, be = 0, ln = () => {\n Cr = !1, be = 0;\n }, Vr = [], vn = (e) => {\n var r = Vr.length;\n return Vr.push(e), r;\n }, _n = (e, r) => {\n for (var t = new Array(e), n = 0; n < e; ++n) t[n] = pe(w[r + n * 4 >> 2], `parameter ${n}`);\n return t;\n }, dn = (e, r, t) => {\n var n = [], i = e(n, t);\n return n.length && (w[r >> 2] = k.toHandle(n)), i;\n }, pn = {}, $e = (e) => {\n var r = pn[e];\n return r === void 0 ? C(e) : r;\n }, hn = (e, r, t) => {\n var n = 8, [i, ...a] = _n(e, r), s = i.toWireType.bind(i), o = a.map((p) => p.readValueFromPointer.bind(p));\n e--;\n var u = { toValue: k.toValue }, c = o.map((p, v) => {\n var $ = `argFromPtr${v}`;\n return u[$] = p, `${$}(args${v ? \"+\" + v * n : \"\"})`;\n }), f;\n switch (t) {\n case 0:\n f = \"toValue(handle)\";\n break;\n case 2:\n f = \"new (toValue(handle))\";\n break;\n case 3:\n f = \"\";\n break;\n case 1: u.getStringOrSymbol = $e, f = \"toValue(handle)[getStringOrSymbol(methodName)]\";\n }\n f += `(${c})`, i.isVoid || (u.toReturnWire = s, u.emval_returnValue = dn, f = `return emval_returnValue(toReturnWire, destructorsRef, ${f})`), f = `return function (handle, methodName, destructorsRef, args) {\n ${f}\n }`;\n var _ = new Function(Object.keys(u), f)(...Object.values(u));\n return vn(fr(`methodCaller<(${a.map((p) => p.name)}) => ${i.name}>`, _));\n }, gn = (e, r) => (e = k.toValue(e), r = k.toValue(r), k.toHandle(e[r])), yn = (e) => {\n e > 9 && (H[e + 1] += 1);\n }, mn = (e, r, t, n, i) => Vr[e](r, t, n, i), bn = () => k.toHandle([]), $n = (e) => k.toHandle($e(e)), wn = () => k.toHandle({}), Tn = (e) => {\n Wr(k.toValue(e)), Or(e);\n }, Fn = (e, r, t) => {\n e = k.toValue(e), r = k.toValue(r), t = k.toValue(t), e[r] = t;\n }, Cn = 9007199254740992, Pn = -9007199254740992, mr = (e) => e < Pn || e > Cn ? NaN : Number(e);\n function kn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getUTCSeconds(), T[r + 4 >> 2] = t.getUTCMinutes(), T[r + 8 >> 2] = t.getUTCHours(), T[r + 12 >> 2] = t.getUTCDate(), T[r + 16 >> 2] = t.getUTCMonth(), T[r + 20 >> 2] = t.getUTCFullYear() - 1900, T[r + 24 >> 2] = t.getUTCDay();\n var n = Date.UTC(t.getUTCFullYear(), 0, 1, 0, 0, 0, 0), i = (t.getTime() - n) / 864e5 | 0;\n T[r + 28 >> 2] = i;\n }\n var Sn = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0), An = [\n 0,\n 31,\n 60,\n 91,\n 121,\n 152,\n 182,\n 213,\n 244,\n 274,\n 305,\n 335\n ], En = [\n 0,\n 31,\n 59,\n 90,\n 120,\n 151,\n 181,\n 212,\n 243,\n 273,\n 304,\n 334\n ], Rn = (e) => {\n return (Sn(e.getFullYear()) ? An : En)[e.getMonth()] + e.getDate() - 1;\n };\n function Dn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getSeconds(), T[r + 4 >> 2] = t.getMinutes(), T[r + 8 >> 2] = t.getHours(), T[r + 12 >> 2] = t.getDate(), T[r + 16 >> 2] = t.getMonth(), T[r + 20 >> 2] = t.getFullYear() - 1900, T[r + 24 >> 2] = t.getDay();\n var n = Rn(t) | 0;\n T[r + 28 >> 2] = n, T[r + 36 >> 2] = -(t.getTimezoneOffset() * 60);\n var i = new Date(t.getFullYear(), 0, 1), a = new Date(t.getFullYear(), 6, 1).getTimezoneOffset(), s = i.getTimezoneOffset(), o = (a != s && t.getTimezoneOffset() == Math.min(s, a)) | 0;\n T[r + 32 >> 2] = o;\n }\n var J = {}, we = (e) => {\n if (e instanceof Zr || e == \"unwind\") return rr;\n zr(1, e);\n }, Te = () => Cr || be > 0, Fe = (e) => {\n rr = e, Te() || (l.onExit?.(e), Q = !0), zr(e, new Zr(e));\n }, Wn = (e, r) => {\n rr = e, Fe(e);\n }, xn = Wn, On = () => {\n if (!Te()) try {\n xn(rr);\n } catch (e) {\n we(e);\n }\n }, Un = (e) => {\n if (!Q) try {\n e(), On();\n } catch (r) {\n we(r);\n }\n }, Ce = () => performance.now(), Vn = (e, r) => {\n if (J[e] && (clearTimeout(J[e].id), delete J[e]), !r) return 0;\n return J[e] = {\n id: setTimeout(() => {\n delete J[e], Un(() => Re(e, Ce()));\n }, r),\n timeout_ms: r\n }, 0;\n }, jn = (e, r, t, n) => {\n var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), s = new Date(i, 6, 1), o = a.getTimezoneOffset(), u = s.getTimezoneOffset(), c = Math.max(o, u);\n w[e >> 2] = c * 60, T[r >> 2] = +(o != u);\n var f = (p) => {\n var v = p >= 0 ? \"-\" : \"+\", $ = Math.abs(p);\n return `UTC${v}${String(Math.floor($ / 60)).padStart(2, \"0\")}${String($ % 60).padStart(2, \"0\")}`;\n }, _ = f(o), d = f(u);\n u < o ? (M(_, t, 17), M(d, n, 17)) : (M(_, n, 17), M(d, t, 17));\n }, In = () => Date.now(), Hn = 1, Mn = (e) => e >= 0 && e <= 3;\n function Bn(e, r, t) {\n if (r = mr(r), !Mn(e)) return 28;\n var n;\n if (e === 0) n = In();\n else if (Hn) n = Ce();\n else return 52;\n var i = Math.round(n * 1e3 * 1e3);\n return V[t >> 3] = BigInt(i), 0;\n }\n var Pe = () => 2147483648, Ln = () => Pe(), zn = (e, r) => Math.ceil(e / r) * r, Yn = (e) => {\n var t = (e - er.buffer.byteLength + 65535) / 65536 | 0;\n try {\n return er.grow(t), Kr(), 1;\n } catch {}\n }, Nn = (e) => {\n var r = E.length;\n e >>>= 0;\n var t = Pe();\n if (e > t) return !1;\n for (var n = 1; n <= 4; n *= 2) {\n var i = r * (1 + .2 / n);\n i = Math.min(i, e + 100663296);\n if (Yn(Math.min(t, zn(Math.max(e, i), 65536)))) return !0;\n }\n return !1;\n }, br = {}, Gn = () => Lr || \"./this.program\", K = () => {\n if (!K.strings) {\n var r = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: (typeof navigator == \"object\" && navigator.language || \"C\").replace(\"-\", \"_\") + \".UTF-8\",\n _: Gn()\n };\n for (var t in br) br[t] === void 0 ? delete r[t] : r[t] = br[t];\n var n = [];\n for (var t in r) n.push(`${t}=${r[t]}`);\n K.strings = n;\n }\n return K.strings;\n }, qn = (e, r) => {\n var t = 0, n = 0;\n for (var i of K()) {\n var a = r + t;\n w[e + n >> 2] = a, t += M(i, a, 1 / 0) + 1, n += 4;\n }\n return 0;\n }, Xn = (e, r) => {\n var t = K();\n w[e >> 2] = t.length;\n var n = 0;\n for (var i of t) n += Ur(i) + 1;\n return w[r >> 2] = n, 0;\n }, Jn = (e) => 52, Kn = (e, r) => {\n var t = 0, n = 0, i = 0;\n var a = 2;\n e == 0 ? t = 2 : (e == 1 || e == 2) && (t = 64), i = 1;\n return S[r] = a, U[r + 2 >> 1] = i, V[r + 8 >> 3] = BigInt(t), V[r + 16 >> 3] = BigInt(n), 0;\n };\n function Zn(e, r, t, n) {\n return r = mr(r), 70;\n }\n var jr = [\n null,\n [],\n []\n ], Ir = (e, r) => {\n var t = jr[e];\n r === 0 || r === 10 ? ((e === 1 ? Nr : L)(ye(t)), t.length = 0) : t.push(r);\n }, Qn = (e, r, t, n) => {\n for (var i = 0, a = 0; a < t; a++) {\n var s = w[r >> 2], o = w[r + 4 >> 2];\n r += 8;\n for (var u = 0; u < o; u++) Ir(e, E[s + u]);\n i += o;\n }\n return w[n >> 2] = i, 0;\n }, ri = (e) => e, ke = (e) => {\n return l[\"_\" + e];\n }, ei = (e, r) => {\n S.set(e, r);\n }, Se = (e) => xe(e), ti = (e) => {\n var r = Ur(e) + 1, t = Se(r);\n return M(e, t, r), t;\n }, Ae = (e, r, t, n, i) => {\n var a = {\n string: (v) => {\n var $ = 0;\n return v != null && v !== 0 && ($ = ti(v)), $;\n },\n array: (v) => {\n var $ = Se(v.length);\n return ei(v, $), $;\n }\n };\n function s(v) {\n return r === \"string\" ? yr(v) : r === \"boolean\" ? !!v : v;\n }\n var o = ke(e), u = [], c = 0;\n if (n) for (var f = 0; f < n.length; f++) {\n var _ = a[t[f]];\n _ ? (c === 0 && (c = y()), u[f] = _(n[f])) : u[f] = n[f];\n }\n var d = o(...u);\n function p(v) {\n return c !== 0 && g(c), s(v);\n }\n return d = p(d), d;\n }, ni = (e, r, t, n) => {\n var i = !t || t.every((s) => s === \"number\" || s === \"boolean\");\n return r !== \"string\" && i && !n ? ke(e) : (...s) => Ae(e, r, t, s, n);\n };\n if (Tt(), Ut(), l.noExitRuntime && (Cr = l.noExitRuntime), l.print && (Nr = l.print), l.printErr && (L = l.printErr), l.wasmBinary && (G = l.wasmBinary), l.arguments && l.arguments, l.thisProgram && (Lr = l.thisProgram), l.preInit) for (typeof l.preInit == \"function\" && (l.preInit = [l.preInit]); l.preInit.length > 0;) l.preInit.shift()();\n l.ENV = br, l.ccall = Ae, l.cwrap = ni;\n var Ee, Hr, O, Re, h, De, We, xe, Oe, Ue, Ve, je, Ie;\n function fi(e) {\n Ee = e.__getTypeName, l._malloc = Hr = e.malloc, l._parseDropFile = e.parseDropFile, l._getAttributeFromDropFile = e.getAttributeFromDropFile, l._takeAttributeFromDropFile = e.takeAttributeFromDropFile, l._flattenDropFile = e.flattenDropFile, l._destroyDropFileHandle = e.destroyDropFileHandle, e.__cxa_free_exception, l._free = O = e.free, Re = e._emscripten_timeout, h = e.setThrew, De = e._emscripten_tempret_set, We = e._emscripten_stack_restore, xe = e._emscripten_stack_alloc, Oe = e.emscripten_stack_get_current, Ue = e.__cxa_decrement_exception_refcount, Ve = e.__cxa_increment_exception_refcount, je = e.__cxa_can_catch, Ie = e.__cxa_get_exception_ptr;\n }\n var He = {\n __cxa_begin_catch: ot,\n __cxa_end_catch: ut,\n __cxa_find_matching_catch_2: ct,\n __cxa_find_matching_catch_3: ft,\n __cxa_find_matching_catch_4: lt,\n __cxa_rethrow: vt,\n __cxa_throw: _t,\n __cxa_uncaught_exceptions: dt,\n __resumeException: pt,\n _abort_js: ht,\n _embind_register_bigint: yt,\n _embind_register_bool: mt,\n _embind_register_class: jt,\n _embind_register_class_class_function: Ht,\n _embind_register_class_constructor: Mt,\n _embind_register_class_function: Bt,\n _embind_register_class_property: Lt,\n _embind_register_emval: Yt,\n _embind_register_enum: Gt,\n _embind_register_enum_value: qt,\n _embind_register_float: Jt,\n _embind_register_function: Kt,\n _embind_register_integer: Zt,\n _embind_register_memory_view: Qt,\n _embind_register_std_string: en,\n _embind_register_std_wstring: cn,\n _embind_register_void: fn,\n _emscripten_runtime_keepalive_clear: ln,\n _emval_create_invoker: hn,\n _emval_decref: Or,\n _emval_get_property: gn,\n _emval_incref: yn,\n _emval_invoke: mn,\n _emval_new_array: bn,\n _emval_new_cstring: $n,\n _emval_new_object: wn,\n _emval_run_destructors: Tn,\n _emval_set_property: Fn,\n _gmtime_js: kn,\n _localtime_js: Dn,\n _setitimer_js: Vn,\n _tzset_js: jn,\n clock_time_get: Bn,\n emscripten_get_heap_max: Ln,\n emscripten_resize_heap: Nn,\n environ_get: qn,\n environ_sizes_get: Xn,\n fd_close: Jn,\n fd_fdstat_get: Kn,\n fd_seek: Zn,\n fd_write: Qn,\n invoke_diii: ji,\n invoke_diiiii: yi,\n invoke_fi: Si,\n invoke_fiii: Vi,\n invoke_i: Ii,\n invoke_ii: vi,\n invoke_iii: hi,\n invoke_iiii: gi,\n invoke_iiiid: Mi,\n invoke_iiiii: ki,\n invoke_iiiiid: xi,\n invoke_iiiiii: wi,\n invoke_iiiiiii: Ai,\n invoke_iiiiiiii: Oi,\n invoke_iiiiiiiiii: Fi,\n invoke_iiiiiiiiiii: mi,\n invoke_iiiiiiiiiiii: bi,\n invoke_iiiiijj: Bi,\n invoke_iiiijj: Li,\n invoke_iiij: Ri,\n invoke_j: Di,\n invoke_jiiii: Ui,\n invoke_v: $i,\n invoke_vi: _i,\n invoke_vii: pi,\n invoke_viii: di,\n invoke_viiii: li,\n invoke_viiiii: Ci,\n invoke_viiiiii: Ti,\n invoke_viiiiiii: Hi,\n invoke_viiiiiiii: Ei,\n invoke_viiiiiiiiii: zi,\n invoke_viiiiiiiiiiiiiii: Yi,\n invoke_viiji: Wi,\n invoke_viijii: Pi,\n llvm_eh_typeid_for: ri,\n proc_exit: Fe\n };\n function li(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function vi(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function _i(e, r) {\n var t = y();\n try {\n b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function di(e, r, t, n) {\n var i = y();\n try {\n b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function pi(e, r, t) {\n var n = y();\n try {\n b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function hi(e, r, t) {\n var n = y();\n try {\n return b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function gi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function yi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function mi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function bi(e, r, t, n, i, a, s, o, u, c, f, _) {\n var d = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f, _);\n } catch (p) {\n if (g(d), p !== p + 0) throw p;\n h(1, 0);\n }\n }\n function $i(e) {\n var r = y();\n try {\n b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function wi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Ti(e, r, t, n, i, a, s) {\n var o = y();\n try {\n b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Fi(e, r, t, n, i, a, s, o, u, c) {\n var f = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c);\n } catch (_) {\n if (g(f), _ !== _ + 0) throw _;\n h(1, 0);\n }\n }\n function Ci(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Pi(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function ki(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Si(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function Ai(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Ei(e, r, t, n, i, a, s, o, u) {\n var c = y();\n try {\n b(e)(r, t, n, i, a, s, o, u);\n } catch (f) {\n if (g(c), f !== f + 0) throw f;\n h(1, 0);\n }\n }\n function Ri(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Di(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n return h(1, 0), 0n;\n }\n }\n function Wi(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function xi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Oi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n return b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Ui(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n return h(1, 0), 0n;\n }\n }\n function Vi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function ji(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Ii(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function Hi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Mi(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Bi(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Li(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function zi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function Yi(e, r, t, n, i, a, s, o, u, c, f, _, d, p, v, $) {\n var P = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f, _, d, p, v, $);\n } catch (F) {\n if (g(P), F !== F + 0) throw F;\n h(1, 0);\n }\n }\n function Ni() {\n Xe();\n function e() {\n l.calledRun = !0, !Q && (Je(), Gr?.(l), l.onRuntimeInitialized?.(), Ke());\n }\n l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(() => {\n setTimeout(() => l.setStatus(\"\"), 1), e();\n }, 1)) : e();\n }\n var B = await it();\n return Ni(), Jr ? $r = l : $r = new Promise((e, r) => {\n Gr = e, qr = r;\n }), $r;\n}\n// packages/core/engine/threads/decoder/worker.ts\nconst { wasmBinary } = await new Promise((resolve) => {\n self.addEventListener(\"message\", function onInit(e) {\n if (e.data?.type === \"wasm-init\") {\n self.removeEventListener(\"message\", onInit);\n resolve(e.data);\n }\n });\n});\nif (!wasmBinary) throw new Error(\"Decoder worker did not receive WASM binary. The main thread failed to fetch aqua-parser.wasm.\");\nconst module = await qi({ wasmBinary });\nconst controllers = /* @__PURE__ */ new Map();\nconst decoder = {\n get AttributeInfo() {\n return module.AttributeInfo;\n },\n get AquaStatus() {\n return module.AquaStatus;\n },\n get heapU8() {\n return module.HEAPU8;\n },\n get heapU32() {\n return module.HEAPU32;\n },\n get SceneRequestDescriptor() {\n return module.SceneRequestDescriptor;\n },\n get WorkerDataType() {\n return module.WorkerDataType;\n },\n dataPtrView: (attributeInfo) => {\n return module.dataPtrView(attributeInfo);\n },\n free: (...args) => {\n return module.ccall(\"free\", \"number\", [\"number\"], args);\n },\n malloc: (...args) => {\n return module.ccall(\"malloc\", \"number\", [\"number\"], args);\n },\n parseDropFile: (bufferPtr, bufferSize, octreeBounds) => {\n return module.parseDropFile(bufferPtr, bufferSize, octreeBounds);\n },\n getAttributeFromDropFile: (handle, attributeName, attributeInfo) => {\n return module.getAttributeFromDropFile(handle, attributeName, attributeInfo);\n },\n takeAttributeFromDropFile: (handle, attributeName, clientSideId) => {\n return module.takeAttributeFromDropFile(handle, attributeName, clientSideId);\n },\n flattenDropFile: (handle, outPtr, outSize) => {\n return module.flattenDropFile(handle, outPtr, outSize);\n },\n destroyDropFileHandle: (handle) => {\n return module.destroyDropFileHandle(handle);\n }\n};\ndefineActions({\n async cancel(requestIdLow, requestIdHigh) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = controllers.get(key);\n if (controller) {\n controller.abort();\n controllers.delete(key);\n }\n return [{ cancelled: !!controller }];\n },\n async heapSnapshot(topN) {\n if (typeof module.TakeHeapSnapshot !== \"function\") return [{ snapshotJson: null }];\n return [{ snapshotJson: module.TakeHeapSnapshot(topN) }];\n },\n async heapTrackingControl(enabled) {\n if (typeof module.SetHeapTrackingEnabled !== \"function\") return [{ success: false }];\n module.SetHeapTrackingEnabled(enabled);\n return [{ success: true }];\n },\n async heapTrackingReset() {\n if (typeof module.ResetHeapTracking !== \"function\") return [{ success: false }];\n module.ResetHeapTracking();\n return [{ success: true }];\n },\n async decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, consecutiveIdsStart, noJwt, usePadding) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = new AbortController();\n controllers.set(key, controller);\n try {\n const { free, malloc, parseDropFile, getAttributeFromDropFile, takeAttributeFromDropFile, flattenDropFile, destroyDropFileHandle } = decoder;\n const descriptorSize = descriptorBuffer.byteLength;\n const descriptorPointer = malloc(descriptorSize);\n decoder.heapU8.set(new Uint8Array(descriptorBuffer), descriptorPointer);\n const descriptor = module.SceneRequestDescriptor.deserializeFromBinary(descriptorPointer, descriptorSize);\n free(descriptorPointer);\n let url = descriptor.getUrl();\n if (noJwt) {\n const url_class = new URL(url);\n url_class.searchParams.delete(\"jwt\");\n url = url_class.toString();\n }\n const body = descriptor.getBody() || null;\n const method = body ? \"POST\" : \"GET\";\n const headers = descriptor.getHeaders();\n const octreeBounds = descriptor.getOctreeBounds();\n descriptor.delete();\n const startTime = performance.now();\n const response = await fetch(url, {\n method,\n headers,\n body,\n signal: controller.signal\n });\n const responseHeadersJson = JSON.stringify({ \"x-cache\": response.headers.get(\"x-cache\") ?? \"\" });\n if (!response.ok) {\n const duration = performance.now() - startTime;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: `HTTP error! status: ${response.status}`,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration,\n ttfb: duration,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [] }];\n }\n const rtt = performance.now() - startTime;\n const responseBuffer = await response.arrayBuffer();\n const duration = performance.now() - startTime;\n const attributes = [];\n if (!url.split(/[?#]/, 1)[0].endsWith(\".drop\")) return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: responseBuffer,\n success: true,\n parsed: false,\n error: void 0,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [responseBuffer] }];\n const responseSize = responseBuffer.byteLength;\n const responsePointer = malloc(responseSize);\n decoder.heapU8.set(new Uint8Array(responseBuffer), responsePointer);\n const outputPointerPointer = malloc(4);\n const outputSizePointer = malloc(4);\n decoder.heapU32[outputPointerPointer / 4] = 0;\n decoder.heapU32[outputSizePointer / 4] = 0;\n let handle = 0;\n let outputPointer = 0;\n const attributeInfo = new decoder.AttributeInfo();\n try {\n handle = parseDropFile(responsePointer, responseSize, octreeBounds);\n if (handle === 0) throw new Error(\"parseDropFile failed\");\n let index = consecutiveIdsStart;\n for (const [name, info] of Object.entries(clientAttributeList)) {\n if (info.discard) takeAttributeFromDropFile(handle, name, index);\n else if (getAttributeFromDropFile(handle, name, attributeInfo) === decoder.AquaStatus.Success) {\n const wasmView = decoder.dataPtrView(attributeInfo);\n const splatData = info.bytes ? {\n bytes: new Uint8Array(wasmView.buffer, wasmView.byteOffset, attributeInfo.dataSizeBytes).slice(),\n id: index\n } : usePadding ? sparkAttributeFromRaw(name, index, wasmView) : attributeFromRaw(index, wasmView);\n if (takeAttributeFromDropFile(handle, name, index) === decoder.AquaStatus.Success) attributes.push(splatData);\n }\n index++;\n }\n if (flattenDropFile(handle, outputPointerPointer, outputSizePointer) !== decoder.AquaStatus.Success) throw new Error(\"flattenDropFile failed\");\n outputPointer = decoder.heapU32[outputPointerPointer / 4];\n const outputSize = decoder.heapU32[outputSizePointer / 4];\n if (outputPointer === 0) throw new Error(\"flattenDropFile gave nullptr\");\n const resultBuffer = decoder.heapU8.buffer.slice(outputPointer, outputPointer + outputSize);\n const transferList = attributes.map((attr) => \"bytes\" in attr ? attr.bytes.buffer : attr.paddedData.buffer);\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: true,\n parsed: true,\n error: void 0,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer, ...transferList] }];\n } catch (error) {\n console.error(\"Exception when parsing dropfile\", error);\n const errorMessage = error instanceof Error ? error.stack ?? error.message : String(error);\n const resultBuffer = (/* @__PURE__ */ new Uint8Array()).buffer;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: false,\n parsed: false,\n error: errorMessage,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes: void 0,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer] }];\n } finally {\n destroyDropFileHandle(handle);\n free(responsePointer);\n free(outputPointerPointer);\n free(outputSizePointer);\n if (outputPointer !== 0) free(outputPointer);\n attributeInfo.delete();\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n const isCancelled = error instanceof Error && error.name === \"AbortError\";\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: isCancelled ? \"Cancelled\" : errorMsg,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration: 0,\n ttfb: 0,\n httpStatus: 0,\n responseHeadersJson: \"{}\"\n }, { transfer: [] }];\n } finally {\n controllers.delete(key);\n }\n }\n});\n";
|
|
183
179
|
var blob = typeof self !== "undefined" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", jsContent], { type: "text/javascript;charset=utf-8" });
|
|
184
180
|
function WorkerWrapper(options) {
|
|
185
181
|
let objURL;
|
|
@@ -201,8 +197,7 @@ function WorkerWrapper(options) {
|
|
|
201
197
|
});
|
|
202
198
|
}
|
|
203
199
|
}
|
|
204
|
-
|
|
205
|
-
//#region packages/core/engine/threads/decoder/wasmFetch.ts
|
|
200
|
+
// packages/core/engine/threads/decoder/wasmFetch.ts
|
|
206
201
|
var createSharedWasmFetch = (url) => {
|
|
207
202
|
let cached;
|
|
208
203
|
return async () => {
|
|
@@ -256,10 +251,14 @@ var Decoder = class extends Thread {
|
|
|
256
251
|
}
|
|
257
252
|
async decode(...args) {
|
|
258
253
|
const { requestIdLow, requestIdHigh, resultBuffer, success, dataType, contextPtr, attributes, duration, ttfb, httpStatus, responseHeadersJson } = await this._execute("decode", ...args);
|
|
259
|
-
if (attributes !== void 0) for (const
|
|
260
|
-
|
|
261
|
-
originalSizeInUints
|
|
262
|
-
|
|
254
|
+
if (attributes !== void 0) for (const attribute of attributes) if ("bytes" in attribute) AttributeCache.addWithId(attribute.bytes, attribute.id);
|
|
255
|
+
else {
|
|
256
|
+
const { paddedData, originalSizeInUints, id } = attribute;
|
|
257
|
+
AttributeCache.addWithId({
|
|
258
|
+
paddedData,
|
|
259
|
+
originalSizeInUints
|
|
260
|
+
}, id);
|
|
261
|
+
}
|
|
263
262
|
const { engine } = this;
|
|
264
263
|
const bufferSize = resultBuffer.byteLength;
|
|
265
264
|
const bufferPointer = engine.malloc(bufferSize);
|
|
@@ -267,8 +266,7 @@ var Decoder = class extends Thread {
|
|
|
267
266
|
engine.onWorkerResult(requestIdLow, requestIdHigh, bufferPointer, bufferSize, httpStatus, duration, ttfb, success, dataType, "", responseHeadersJson, contextPtr);
|
|
268
267
|
}
|
|
269
268
|
};
|
|
270
|
-
|
|
271
|
-
//#region packages/core/engine/index.ts
|
|
269
|
+
// packages/core/engine/index.ts
|
|
272
270
|
/**
|
|
273
271
|
* The main Aqua wrapper.
|
|
274
272
|
*
|
|
@@ -297,7 +295,8 @@ var Engine = class Engine {
|
|
|
297
295
|
static Feature = {
|
|
298
296
|
DrMap: 0,
|
|
299
297
|
ReflMesh: 1,
|
|
300
|
-
GlassMesh: 2
|
|
298
|
+
GlassMesh: 2,
|
|
299
|
+
RenderAsPointCloud: 3
|
|
301
300
|
};
|
|
302
301
|
static FeatureState = {
|
|
303
302
|
NotLoaded: 0,
|
|
@@ -312,6 +311,11 @@ var Engine = class Engine {
|
|
|
312
311
|
Ready: 3,
|
|
313
312
|
Failed: 4
|
|
314
313
|
};
|
|
314
|
+
static StreamFetchMode = {
|
|
315
|
+
Regular: 0,
|
|
316
|
+
Prefetch: 1,
|
|
317
|
+
Parked: 2
|
|
318
|
+
};
|
|
315
319
|
#module;
|
|
316
320
|
get module() {
|
|
317
321
|
if (!this.#module) throw new Error("Engine has not yet been initialized. Did you forget to `await engine.ready()?`");
|
|
@@ -320,6 +324,10 @@ var Engine = class Engine {
|
|
|
320
324
|
#decoders = /* @__PURE__ */ new Set();
|
|
321
325
|
#requestMap = /* @__PURE__ */ new Map();
|
|
322
326
|
#noJwt = new URL(location.href).searchParams.has("nojwt");
|
|
327
|
+
/**
|
|
328
|
+
* whether to pad out our attributes for spork
|
|
329
|
+
*/
|
|
330
|
+
#usePadding = false;
|
|
323
331
|
constructor(moduleOptions = {}) {
|
|
324
332
|
Object.defineProperty(this, "pending", {
|
|
325
333
|
value: true,
|
|
@@ -383,6 +391,9 @@ var Engine = class Engine {
|
|
|
383
391
|
get UpAxis() {
|
|
384
392
|
return this.module.UpAxis;
|
|
385
393
|
}
|
|
394
|
+
get UsePadding() {
|
|
395
|
+
return this.#usePadding;
|
|
396
|
+
}
|
|
386
397
|
activatedObjectIdsView(...args) {
|
|
387
398
|
return this.module.activatedObjectIdsView(...args);
|
|
388
399
|
}
|
|
@@ -425,6 +436,9 @@ var Engine = class Engine {
|
|
|
425
436
|
getDrawnOctantMask(...args) {
|
|
426
437
|
return this.module.GetDrawnOctantMask(...args);
|
|
427
438
|
}
|
|
439
|
+
getOctantLocalBoundingBoxes(...args) {
|
|
440
|
+
return this.module.GetOctantLocalBoundingBoxes(...args);
|
|
441
|
+
}
|
|
428
442
|
destroyClient(...args) {
|
|
429
443
|
return this.module.ccall("DestroyClient", "number", ["number"], args);
|
|
430
444
|
}
|
|
@@ -563,12 +577,21 @@ var Engine = class Engine {
|
|
|
563
577
|
"number"
|
|
564
578
|
], args);
|
|
565
579
|
}
|
|
580
|
+
setStreamFetchMode(...args) {
|
|
581
|
+
return this.module.SetStreamFetchMode(...args);
|
|
582
|
+
}
|
|
583
|
+
getStreamFetchMode(...args) {
|
|
584
|
+
return this.module.GetStreamFetchMode(...args);
|
|
585
|
+
}
|
|
566
586
|
setMaxCacheSize(...args) {
|
|
567
587
|
return this.module.setMaxCacheSize(...args);
|
|
568
588
|
}
|
|
569
589
|
setPreferSharkEncodingProfiles(...args) {
|
|
570
590
|
return this.module.SetPreferSharkEncodingProfiles(...args);
|
|
571
591
|
}
|
|
592
|
+
setPadSplatAttributes(usePadding) {
|
|
593
|
+
this.#usePadding = usePadding;
|
|
594
|
+
}
|
|
572
595
|
setSceneObjectTransform(...args) {
|
|
573
596
|
return this.module.ccall("SetSceneObjectTransform", "number", [
|
|
574
597
|
"number",
|
|
@@ -625,7 +648,9 @@ var Engine = class Engine {
|
|
|
625
648
|
* displayed frame per context, before the per-client updateSceneExecution() calls.
|
|
626
649
|
* `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
|
|
627
650
|
* measurement (first frame, or a resume from a stall) and the frame advances without recording
|
|
628
|
-
*
|
|
651
|
+
* `primsResident` is what the renderer held at the end of the previous frame, fading
|
|
652
|
+
* prims included, and `primCapacity` what it can hold; activations that would not fit are
|
|
653
|
+
* deferred, where primCapacity 0 means deferral is disabled.
|
|
629
654
|
*/
|
|
630
655
|
beginFrame(...args) {
|
|
631
656
|
return this.module.BeginFrame(...args);
|
|
@@ -650,8 +675,8 @@ var Engine = class Engine {
|
|
|
650
675
|
});
|
|
651
676
|
const requestKey = `${requestIdHigh}-${requestIdLow}`;
|
|
652
677
|
this.#requestMap.set(requestKey, decoder);
|
|
653
|
-
const firstId = AttributeCache.getConsecutiveIds(Object.keys(
|
|
654
|
-
decoder.ready.then(() => decoder.decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, firstId, this.#noJwt));
|
|
678
|
+
const firstId = AttributeCache.getConsecutiveIds(Object.keys(clientAttributeList).length);
|
|
679
|
+
decoder.ready.then(() => decoder.decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, firstId, this.#noJwt, this.#usePadding));
|
|
655
680
|
return true;
|
|
656
681
|
}
|
|
657
682
|
terminateWorker() {
|
|
@@ -681,10 +706,10 @@ var Engine = class Engine {
|
|
|
681
706
|
};
|
|
682
707
|
}
|
|
683
708
|
};
|
|
684
|
-
|
|
685
|
-
//#region packages/core/attribute.ts
|
|
709
|
+
// packages/core/attribute.ts
|
|
686
710
|
var sparkMinSplats = 2048;
|
|
687
|
-
var
|
|
711
|
+
var NOT_PER_SPLAT = 0;
|
|
712
|
+
var clientAttributeList = {
|
|
688
713
|
sparkPackedSplat: {
|
|
689
714
|
elementsPerSplat: 4,
|
|
690
715
|
discard: false
|
|
@@ -744,13 +769,35 @@ var sparkAttributeList = {
|
|
|
744
769
|
mod_depth: {
|
|
745
770
|
elementsPerSplat: .5,
|
|
746
771
|
discard: false
|
|
772
|
+
},
|
|
773
|
+
reflectanceDataV1: {
|
|
774
|
+
elementsPerSplat: NOT_PER_SPLAT,
|
|
775
|
+
discard: false,
|
|
776
|
+
bytes: true
|
|
777
|
+
},
|
|
778
|
+
reflectanceDataV2: {
|
|
779
|
+
elementsPerSplat: NOT_PER_SPLAT,
|
|
780
|
+
discard: false,
|
|
781
|
+
bytes: true
|
|
782
|
+
},
|
|
783
|
+
glassMeshGeometry: {
|
|
784
|
+
elementsPerSplat: NOT_PER_SPLAT,
|
|
785
|
+
discard: false,
|
|
786
|
+
bytes: true
|
|
787
|
+
},
|
|
788
|
+
glassMeshPanels: {
|
|
789
|
+
elementsPerSplat: NOT_PER_SPLAT,
|
|
790
|
+
discard: false,
|
|
791
|
+
bytes: true
|
|
747
792
|
}
|
|
748
793
|
};
|
|
794
|
+
/** @deprecated Use clientAttributeList. */
|
|
795
|
+
var sparkAttributeList = clientAttributeList;
|
|
749
796
|
function roundUpToMultipleOf(a, multiple) {
|
|
750
797
|
return Math.ceil(a / multiple) * multiple;
|
|
751
798
|
}
|
|
752
799
|
function sparkAttributeFromRaw(name, id, wasmView) {
|
|
753
|
-
const attrib =
|
|
800
|
+
const attrib = clientAttributeList[name];
|
|
754
801
|
if (attrib === void 0) throw new Error("attribute name" + name + " is unknown");
|
|
755
802
|
const originalSize = wasmView.length;
|
|
756
803
|
const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);
|
|
@@ -762,6 +809,16 @@ function sparkAttributeFromRaw(name, id, wasmView) {
|
|
|
762
809
|
id
|
|
763
810
|
};
|
|
764
811
|
}
|
|
812
|
+
function attributeFromRaw(id, wasmView) {
|
|
813
|
+
const size = wasmView.length;
|
|
814
|
+
const data = new Uint32Array(size);
|
|
815
|
+
data.set(wasmView);
|
|
816
|
+
return {
|
|
817
|
+
paddedData: data,
|
|
818
|
+
originalSizeInUints: size,
|
|
819
|
+
id
|
|
820
|
+
};
|
|
821
|
+
}
|
|
765
822
|
var AttributeNames = class {
|
|
766
823
|
static SPARK_PACKED_SPLAT = "sparkPackedSplat";
|
|
767
824
|
static SPARK_EXTENDED_SPLAT_LOW = "extendedPackedSplatLow";
|
|
@@ -836,11 +893,7 @@ function getRawByteAttributeWithBounds(engine, client, sceneObjectId, attributeN
|
|
|
836
893
|
try {
|
|
837
894
|
const { ptr } = attributeInfo.$$;
|
|
838
895
|
if (client.getAttribute(sceneObjectId, attributeName, ptr) !== Engine.AquaStatus.Success) return null;
|
|
839
|
-
const
|
|
840
|
-
const byteCount = attributeInfo.dataSizeBytes;
|
|
841
|
-
if (byteCount <= 0 || words.byteLength === 0) return null;
|
|
842
|
-
return {
|
|
843
|
-
bytes: new Uint8Array(words.buffer, words.byteOffset, byteCount).slice(),
|
|
896
|
+
const bounds = {
|
|
844
897
|
minValue: {
|
|
845
898
|
x: attributeInfo.minValue.x,
|
|
846
899
|
y: attributeInfo.minValue.y,
|
|
@@ -852,11 +905,25 @@ function getRawByteAttributeWithBounds(engine, client, sceneObjectId, attributeN
|
|
|
852
905
|
z: attributeInfo.maxValue.z
|
|
853
906
|
}
|
|
854
907
|
};
|
|
908
|
+
if (attributeInfo.clientSideId != 0n) {
|
|
909
|
+
const bytes = AttributeCache.get(Number(attributeInfo.clientSideId));
|
|
910
|
+
return bytes.byteLength > 0 ? {
|
|
911
|
+
bytes,
|
|
912
|
+
...bounds
|
|
913
|
+
} : null;
|
|
914
|
+
}
|
|
915
|
+
const words = engine.dataPtrView(attributeInfo);
|
|
916
|
+
const byteCount = attributeInfo.dataSizeBytes;
|
|
917
|
+
if (byteCount <= 0 || words.byteLength === 0) return null;
|
|
918
|
+
return {
|
|
919
|
+
bytes: new Uint8Array(words.buffer, words.byteOffset, byteCount).slice(),
|
|
920
|
+
...bounds
|
|
921
|
+
};
|
|
855
922
|
} finally {
|
|
856
923
|
attributeInfo.delete();
|
|
857
924
|
}
|
|
858
925
|
}
|
|
859
|
-
function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outAttributeInfo) {
|
|
926
|
+
function getDataFromAttribute(engine, client, sceneObjectId, attributeName, usePadding, outAttributeInfo) {
|
|
860
927
|
if (!client.hasAttribute(sceneObjectId, attributeName)) return null;
|
|
861
928
|
const { ptr } = outAttributeInfo.$$;
|
|
862
929
|
const status = client.getAttribute(sceneObjectId, attributeName, ptr);
|
|
@@ -864,12 +931,13 @@ function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outA
|
|
|
864
931
|
console.warn(`GetAttribute failed for object id ${sceneObjectId} and attribute name ${attributeName}: status ${status}`);
|
|
865
932
|
return null;
|
|
866
933
|
}
|
|
867
|
-
let
|
|
934
|
+
let dataArray;
|
|
868
935
|
let originalSizeInUints;
|
|
869
|
-
if (outAttributeInfo.clientSideId != 0n) ({paddedData:
|
|
936
|
+
if (outAttributeInfo.clientSideId != 0n) ({paddedData: dataArray, originalSizeInUints: originalSizeInUints} = AttributeCache.get(Number(outAttributeInfo.clientSideId)));
|
|
870
937
|
else {
|
|
871
|
-
const
|
|
872
|
-
|
|
938
|
+
const wasmView = engine.dataPtrView(outAttributeInfo);
|
|
939
|
+
const result = usePadding ? sparkAttributeFromRaw(attributeName, 0, wasmView) : attributeFromRaw(0, wasmView);
|
|
940
|
+
dataArray = result.paddedData;
|
|
873
941
|
originalSizeInUints = result.originalSizeInUints;
|
|
874
942
|
console.log(`retrieved a attribute ${attributeName} with size ${result.originalSizeInUints} for chunk ${sceneObjectId}`);
|
|
875
943
|
const myCacheEntry = AttributeCache.add({
|
|
@@ -884,12 +952,11 @@ function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outA
|
|
|
884
952
|
}
|
|
885
953
|
}
|
|
886
954
|
return {
|
|
887
|
-
paddedData,
|
|
955
|
+
paddedData: dataArray,
|
|
888
956
|
originalSizeInUints
|
|
889
957
|
};
|
|
890
958
|
}
|
|
891
|
-
|
|
892
|
-
//#region packages/core/lod.ts
|
|
959
|
+
// packages/core/lod.ts
|
|
893
960
|
var LodStore = class {
|
|
894
961
|
#keyMap = /* @__PURE__ */ new Map();
|
|
895
962
|
#idMap = /* @__PURE__ */ new Map();
|
|
@@ -925,6 +992,7 @@ var Lod = class {
|
|
|
925
992
|
#lodIndex = null;
|
|
926
993
|
#paddingSplatsCount = 0;
|
|
927
994
|
#drawnOctantMask = 255;
|
|
995
|
+
#octantLocalBounds = null;
|
|
928
996
|
#octantOffsets = null;
|
|
929
997
|
#surfelOctantOffsets = null;
|
|
930
998
|
#surfelCount = 0;
|
|
@@ -987,6 +1055,12 @@ var Lod = class {
|
|
|
987
1055
|
set _drawnOctantMask(mask) {
|
|
988
1056
|
this.#drawnOctantMask = mask;
|
|
989
1057
|
}
|
|
1058
|
+
get _octantLocalBounds() {
|
|
1059
|
+
return this.#octantLocalBounds;
|
|
1060
|
+
}
|
|
1061
|
+
set _octantLocalBounds(bounds) {
|
|
1062
|
+
this.#octantLocalBounds = bounds;
|
|
1063
|
+
}
|
|
990
1064
|
get _octantOffsets() {
|
|
991
1065
|
return this.#octantOffsets;
|
|
992
1066
|
}
|
|
@@ -1022,7 +1096,7 @@ var Lod = class {
|
|
|
1022
1096
|
return this.#client.hasAttribute(this.id, attributeName);
|
|
1023
1097
|
}
|
|
1024
1098
|
getDataFromAttribute(engine, attributeName, attributeInfo) {
|
|
1025
|
-
return getDataFromAttribute(engine, this.#client, this.id, attributeName, attributeInfo);
|
|
1099
|
+
return getDataFromAttribute(engine, this.#client, this.id, attributeName, engine.UsePadding, attributeInfo);
|
|
1026
1100
|
}
|
|
1027
1101
|
_getRawByteAttribute(engine, attributeName) {
|
|
1028
1102
|
return getRawByteAttribute(engine, this.#client, this.id, attributeName);
|
|
@@ -1038,6 +1112,7 @@ var Lod = class {
|
|
|
1038
1112
|
key?.dispose?.();
|
|
1039
1113
|
this.#cachedWorldBounds = null;
|
|
1040
1114
|
this.#localBounds = null;
|
|
1115
|
+
this.#octantLocalBounds = null;
|
|
1041
1116
|
this.#transform = null;
|
|
1042
1117
|
this.modelRoot?.lods?.delete(this);
|
|
1043
1118
|
}
|
|
@@ -1052,8 +1127,7 @@ var Lod = class {
|
|
|
1052
1127
|
modelRoot.add(this);
|
|
1053
1128
|
}
|
|
1054
1129
|
};
|
|
1055
|
-
|
|
1056
|
-
//#region packages/core/change.ts
|
|
1130
|
+
// packages/core/change.ts
|
|
1057
1131
|
var Change = class {
|
|
1058
1132
|
constructor({ type, lod }) {
|
|
1059
1133
|
Object.defineProperties(this, {
|
|
@@ -1062,8 +1136,7 @@ var Change = class {
|
|
|
1062
1136
|
});
|
|
1063
1137
|
}
|
|
1064
1138
|
};
|
|
1065
|
-
|
|
1066
|
-
//#region packages/core/modelRoot.ts
|
|
1139
|
+
// packages/core/modelRoot.ts
|
|
1067
1140
|
var ModelRoot = class ModelRoot {
|
|
1068
1141
|
static #keyMap = /* @__PURE__ */ new Map();
|
|
1069
1142
|
static #idMap = /* @__PURE__ */ new Map();
|
|
@@ -1113,13 +1186,19 @@ var ModelRoot = class ModelRoot {
|
|
|
1113
1186
|
this.#key = null;
|
|
1114
1187
|
}
|
|
1115
1188
|
};
|
|
1116
|
-
|
|
1117
|
-
//#region packages/core/readyState.ts
|
|
1189
|
+
// packages/core/readyState.ts
|
|
1118
1190
|
var HaveNothing = 0;
|
|
1119
1191
|
var HaveMetadata = 1;
|
|
1120
1192
|
var HaveData = 2;
|
|
1121
|
-
|
|
1122
|
-
|
|
1193
|
+
// packages/core/stream.ts
|
|
1194
|
+
function fetchModeValue(mode) {
|
|
1195
|
+
const { Regular, Prefetch, Parked } = Engine.StreamFetchMode;
|
|
1196
|
+
return {
|
|
1197
|
+
regular: Regular,
|
|
1198
|
+
prefetch: Prefetch,
|
|
1199
|
+
parked: Parked
|
|
1200
|
+
}[mode];
|
|
1201
|
+
}
|
|
1123
1202
|
var Stream = class Stream extends EventTarget {
|
|
1124
1203
|
static _idMap = /* @__PURE__ */ new Map();
|
|
1125
1204
|
static _keyMap = /* @__PURE__ */ new Map();
|
|
@@ -1239,6 +1318,25 @@ var Stream = class Stream extends EventTarget {
|
|
|
1239
1318
|
set opacity(opacity) {
|
|
1240
1319
|
this.#opacity = Math.min(1, Math.max(0, opacity));
|
|
1241
1320
|
}
|
|
1321
|
+
#fetchMode = "regular";
|
|
1322
|
+
#fetchModePending = false;
|
|
1323
|
+
get fetchMode() {
|
|
1324
|
+
return this.#fetchMode;
|
|
1325
|
+
}
|
|
1326
|
+
set fetchMode(fetchMode) {
|
|
1327
|
+
if (fetchMode === this.#fetchMode) return;
|
|
1328
|
+
this.#fetchMode = fetchMode;
|
|
1329
|
+
this.#fetchModePending = true;
|
|
1330
|
+
}
|
|
1331
|
+
/**
|
|
1332
|
+
* @internal
|
|
1333
|
+
* Called once per frame outside the scene lock, which the engine takes to change the mode. The
|
|
1334
|
+
* engine refuses until the stream's octree exists, so a refused mode is retried each frame.
|
|
1335
|
+
*/
|
|
1336
|
+
_applyFetchMode() {
|
|
1337
|
+
if (!this.#fetchModePending) return;
|
|
1338
|
+
this.#fetchModePending = !this.client.setStreamFetchMode(this.id, fetchModeValue(this.#fetchMode));
|
|
1339
|
+
}
|
|
1242
1340
|
get boundingBox() {
|
|
1243
1341
|
const { engine, client } = this;
|
|
1244
1342
|
const boxBuffer = engine.malloc(24);
|
|
@@ -1400,8 +1498,7 @@ var Stream = class Stream extends EventTarget {
|
|
|
1400
1498
|
if (this.scene.streams.has(this)) this.scene.delete(this);
|
|
1401
1499
|
}
|
|
1402
1500
|
};
|
|
1403
|
-
|
|
1404
|
-
//#region packages/core/rate.ts
|
|
1501
|
+
// packages/core/rate.ts
|
|
1405
1502
|
var RATES = [
|
|
1406
1503
|
30,
|
|
1407
1504
|
60,
|
|
@@ -1437,8 +1534,7 @@ function createRefreshRateDetector() {
|
|
|
1437
1534
|
}
|
|
1438
1535
|
};
|
|
1439
1536
|
}
|
|
1440
|
-
|
|
1441
|
-
//#region packages/core/miris.ts
|
|
1537
|
+
// packages/core/miris.ts
|
|
1442
1538
|
/**
|
|
1443
1539
|
* The main Miris application.
|
|
1444
1540
|
*
|
|
@@ -1456,6 +1552,7 @@ var Miris = class Miris {
|
|
|
1456
1552
|
return miris;
|
|
1457
1553
|
}
|
|
1458
1554
|
#sharedContext;
|
|
1555
|
+
#rendererPrims = /* @__PURE__ */ new Map();
|
|
1459
1556
|
get sharedContext() {
|
|
1460
1557
|
return this.#sharedContext;
|
|
1461
1558
|
}
|
|
@@ -1575,14 +1672,14 @@ var Miris = class Miris {
|
|
|
1575
1672
|
* case we occasionally budget over a million prims (most phones can't do this).
|
|
1576
1673
|
*/
|
|
1577
1674
|
static _SHARK_SPLAT_CAPACITY_MOBILE = 1048576;
|
|
1578
|
-
static _SHARK_SPLAT_CAPACITY_DESKTOP =
|
|
1675
|
+
static _SHARK_SPLAT_CAPACITY_DESKTOP = 3145728;
|
|
1579
1676
|
/**
|
|
1580
1677
|
* @internal
|
|
1581
1678
|
* The cap on what the solver may budget, held ~20% under the GPU capacity above (the same
|
|
1582
1679
|
* margin Unity's SharkSplatRenderSystem uses). Leaves headroom for un-garbage collected splats.
|
|
1583
1680
|
*/
|
|
1584
|
-
static _SHARK_SPLAT_BUDGET_CAP_MOBILE =
|
|
1585
|
-
static _SHARK_SPLAT_BUDGET_CAP_DESKTOP =
|
|
1681
|
+
static _SHARK_SPLAT_BUDGET_CAP_MOBILE = 65e4;
|
|
1682
|
+
static _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 24e5;
|
|
1586
1683
|
/**
|
|
1587
1684
|
* @internal
|
|
1588
1685
|
* Copied from spork so the dependency is not introduced to core.
|
|
@@ -1594,7 +1691,15 @@ var Miris = class Miris {
|
|
|
1594
1691
|
if (navigator.maxTouchPoints > 0) return true;
|
|
1595
1692
|
return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(navigator.userAgent);
|
|
1596
1693
|
}
|
|
1597
|
-
static #sharkSplatCapacityLimit =
|
|
1694
|
+
static #sharkSplatCapacityLimit = Miris.#storedSplatCapacity();
|
|
1695
|
+
static #storedSplatCapacity() {
|
|
1696
|
+
try {
|
|
1697
|
+
const stored = Number(sessionStorage.getItem(Miris._splatCountStorageKey()));
|
|
1698
|
+
return stored > 0 ? stored : null;
|
|
1699
|
+
} catch {
|
|
1700
|
+
return null;
|
|
1701
|
+
}
|
|
1702
|
+
}
|
|
1598
1703
|
/**
|
|
1599
1704
|
* @internal
|
|
1600
1705
|
*/
|
|
@@ -1605,6 +1710,39 @@ var Miris = class Miris {
|
|
|
1605
1710
|
}
|
|
1606
1711
|
/**
|
|
1607
1712
|
* @internal
|
|
1713
|
+
* the minimum number of splats we want to show
|
|
1714
|
+
*/
|
|
1715
|
+
static _minimumSplatCount() {
|
|
1716
|
+
return Math.floor(Miris._SHARK_SPLAT_CAPACITY_MOBILE / 7);
|
|
1717
|
+
}
|
|
1718
|
+
/**
|
|
1719
|
+
* @internal
|
|
1720
|
+
* key for storing the splat count in the browser storage. when we receive a device lost event we
|
|
1721
|
+
* lower the splat count and reload the page
|
|
1722
|
+
*/
|
|
1723
|
+
static _splatCountStorageKey() {
|
|
1724
|
+
return "miris.sharkSplatCapacity";
|
|
1725
|
+
}
|
|
1726
|
+
/**
|
|
1727
|
+
* @internal
|
|
1728
|
+
* Halves the splat capacity for the rest of this tab's session and reloads, on the guess that a
|
|
1729
|
+
* device loss was out-of-memory. False at the minimum capacity, or when the lower capacity can't
|
|
1730
|
+
* be stored, since the reload would then come back at the same capacity and loop.
|
|
1731
|
+
*/
|
|
1732
|
+
static _reloadWithLowerSplatCapacity() {
|
|
1733
|
+
const nextSplatCount = Math.floor(Miris._sharkSplatCapacity() / 2);
|
|
1734
|
+
if (nextSplatCount < Miris._minimumSplatCount()) return false;
|
|
1735
|
+
try {
|
|
1736
|
+
sessionStorage.setItem(Miris._splatCountStorageKey(), String(nextSplatCount));
|
|
1737
|
+
} catch {
|
|
1738
|
+
return false;
|
|
1739
|
+
}
|
|
1740
|
+
console.warn(`Miris: WebGPU device lost, adjusting settings and reloading.`);
|
|
1741
|
+
location.reload();
|
|
1742
|
+
return true;
|
|
1743
|
+
}
|
|
1744
|
+
/**
|
|
1745
|
+
* @internal
|
|
1608
1746
|
* The shark backend calls this once it has the device, when the device's storage-buffer
|
|
1609
1747
|
* binding limit holds shark under _sharkSplatCapacity(). The budget cap follows with the same
|
|
1610
1748
|
* margin, and every scene is told.
|
|
@@ -1652,6 +1790,14 @@ var Miris = class Miris {
|
|
|
1652
1790
|
this.#splatCountBudgetOverride = budget;
|
|
1653
1791
|
this.#applyDisplaySettings();
|
|
1654
1792
|
}
|
|
1793
|
+
/**
|
|
1794
|
+
* @internal
|
|
1795
|
+
* A shark renderer reports the prims it holds each time it renders; null when it goes away.
|
|
1796
|
+
*/
|
|
1797
|
+
_reportRendererPrims(renderer, prims) {
|
|
1798
|
+
if (prims === null) this.#rendererPrims.delete(renderer);
|
|
1799
|
+
else this.#rendererPrims.set(renderer, prims);
|
|
1800
|
+
}
|
|
1655
1801
|
#browserUpdate(ts = 0) {
|
|
1656
1802
|
if (this.#hostDriven) return;
|
|
1657
1803
|
this._update(ts);
|
|
@@ -1679,9 +1825,15 @@ var Miris = class Miris {
|
|
|
1679
1825
|
const elapsed = this.#lastFrameTimestamp === null ? null : now - this.#lastFrameTimestamp;
|
|
1680
1826
|
this.#lastFrameTimestamp = now;
|
|
1681
1827
|
const frameTimeMs = elapsed !== null && elapsed <= 1e3 ? elapsed : null;
|
|
1682
|
-
if (this.#sharedContext)
|
|
1828
|
+
if (this.#sharedContext) {
|
|
1829
|
+
let primsResident = 0;
|
|
1830
|
+
for (const prims of this.#rendererPrims.values()) primsResident = Math.max(primsResident, prims);
|
|
1831
|
+
const primCapacity = this.#rendererPrims.size > 0 ? Miris._sharkSplatCapacity() : 0;
|
|
1832
|
+
this.engine.beginFrame(this.#sharedContext, frameTimeMs ?? 0, primsResident, primCapacity);
|
|
1833
|
+
}
|
|
1683
1834
|
for (const scene of this.#scenes) {
|
|
1684
1835
|
const { client } = scene;
|
|
1836
|
+
scene._applyStreamFetchModes();
|
|
1685
1837
|
client.updateSceneExecution();
|
|
1686
1838
|
const evicted = client.takeEvictedClientSideAttributeIds();
|
|
1687
1839
|
try {
|
|
@@ -1821,6 +1973,10 @@ var Miris = class Miris {
|
|
|
1821
1973
|
const localBounds = retrieveFloatArray(this.engine, lod.id, 6, client.getLocalBoundingBox.bind(client));
|
|
1822
1974
|
lod.bounds = worldBounds;
|
|
1823
1975
|
lod.localBounds = localBounds;
|
|
1976
|
+
if (!lod._octantLocalBounds) {
|
|
1977
|
+
const octantBounds = client.getOctantLocalBoundingBoxes(sceneObjectId);
|
|
1978
|
+
lod._octantLocalBounds = octantBounds.length === 48 ? new Float32Array(octantBounds) : null;
|
|
1979
|
+
}
|
|
1824
1980
|
lod.lodIndex = lodIndex;
|
|
1825
1981
|
const entry = new Change({
|
|
1826
1982
|
type: "modified",
|
|
@@ -1954,8 +2110,7 @@ var Miris = class Miris {
|
|
|
1954
2110
|
}
|
|
1955
2111
|
}
|
|
1956
2112
|
};
|
|
1957
|
-
|
|
1958
|
-
//#region packages/core/camera.ts
|
|
2113
|
+
// packages/core/camera.ts
|
|
1959
2114
|
var Camera = class {
|
|
1960
2115
|
update() {
|
|
1961
2116
|
const { engine } = this;
|
|
@@ -2022,8 +2177,7 @@ var Camera = class {
|
|
|
2022
2177
|
});
|
|
2023
2178
|
}
|
|
2024
2179
|
};
|
|
2025
|
-
|
|
2026
|
-
//#region packages/core/engine/client.ts
|
|
2180
|
+
// packages/core/engine/client.ts
|
|
2027
2181
|
var Client = class {
|
|
2028
2182
|
#viewerKey = null;
|
|
2029
2183
|
get viewerKey() {
|
|
@@ -2096,6 +2250,9 @@ var Client = class {
|
|
|
2096
2250
|
getDrawnOctantMask(...args) {
|
|
2097
2251
|
return this.engine.getDrawnOctantMask(this.handle, ...args);
|
|
2098
2252
|
}
|
|
2253
|
+
getOctantLocalBoundingBoxes(...args) {
|
|
2254
|
+
return this.engine.getOctantLocalBoundingBoxes(this.handle, ...args);
|
|
2255
|
+
}
|
|
2099
2256
|
getLocalTransform(...args) {
|
|
2100
2257
|
return this.engine.getLocalTransform(this.handle, ...args);
|
|
2101
2258
|
}
|
|
@@ -2123,6 +2280,12 @@ var Client = class {
|
|
|
2123
2280
|
setRuntimeSettings(...args) {
|
|
2124
2281
|
return this.engine.setRuntimeSettings(this.handle, ...args);
|
|
2125
2282
|
}
|
|
2283
|
+
setStreamFetchMode(...args) {
|
|
2284
|
+
return this.engine.setStreamFetchMode(this.handle, ...args);
|
|
2285
|
+
}
|
|
2286
|
+
getStreamFetchMode(...args) {
|
|
2287
|
+
return this.engine.getStreamFetchMode(this.handle, ...args);
|
|
2288
|
+
}
|
|
2126
2289
|
setMainCameraTransform(...args) {
|
|
2127
2290
|
return this.engine.setMainCameraTransform(this.handle, ...args);
|
|
2128
2291
|
}
|
|
@@ -2169,8 +2332,7 @@ var Client = class {
|
|
|
2169
2332
|
return this.engine.updateSceneExecution(this.handle, ...args);
|
|
2170
2333
|
}
|
|
2171
2334
|
};
|
|
2172
|
-
|
|
2173
|
-
//#region packages/core/drMapLadder.ts
|
|
2335
|
+
// packages/core/drMapLadder.ts
|
|
2174
2336
|
/**
|
|
2175
2337
|
* Which roughness-ladder levels still need uploading, per scene object.
|
|
2176
2338
|
*
|
|
@@ -2196,8 +2358,7 @@ var DrMapLadderTracker = class {
|
|
|
2196
2358
|
function drMapLadderAttributeName(level) {
|
|
2197
2359
|
return `drMap_l${level}`;
|
|
2198
2360
|
}
|
|
2199
|
-
|
|
2200
|
-
//#region packages/core/assetFormat.ts
|
|
2361
|
+
// packages/core/assetFormat.ts
|
|
2201
2362
|
var AssetFormat = {
|
|
2202
2363
|
GaussianSplats: 1,
|
|
2203
2364
|
GES: 2
|
|
@@ -2209,8 +2370,7 @@ var ASSET_FORMAT_NAMES = {
|
|
|
2209
2370
|
function assetFormatName(formatVersion) {
|
|
2210
2371
|
return ASSET_FORMAT_NAMES[formatVersion] ?? `unknown format ${formatVersion}`;
|
|
2211
2372
|
}
|
|
2212
|
-
|
|
2213
|
-
//#region packages/core/scene.ts
|
|
2373
|
+
// packages/core/scene.ts
|
|
2214
2374
|
var Scene = class Scene extends EventTarget {
|
|
2215
2375
|
static #idMap = /* @__PURE__ */ new Map();
|
|
2216
2376
|
static #keyMap = /* @__PURE__ */ new Map();
|
|
@@ -2491,6 +2651,12 @@ var Scene = class Scene extends EventTarget {
|
|
|
2491
2651
|
/**
|
|
2492
2652
|
* @internal
|
|
2493
2653
|
*/
|
|
2654
|
+
_applyStreamFetchModes() {
|
|
2655
|
+
for (const stream of this.#streams) stream._applyFetchMode();
|
|
2656
|
+
}
|
|
2657
|
+
/**
|
|
2658
|
+
* @internal
|
|
2659
|
+
*/
|
|
2494
2660
|
_updateStreamStatuses() {
|
|
2495
2661
|
for (const stream of this.#streams) stream._updateStatus();
|
|
2496
2662
|
}
|
|
@@ -2514,5 +2680,4 @@ var Scene = class Scene extends EventTarget {
|
|
|
2514
2680
|
if (this.miris.scenes.has(this)) this.miris.delete(this);
|
|
2515
2681
|
}
|
|
2516
2682
|
};
|
|
2517
|
-
|
|
2518
|
-
export { AssetFormat, AttributeNames, Camera, HaveData, HaveMetadata, HaveNothing, Lod, LodStore, Miris, ModelRoot, Scene, Stream, sparkAttributeList };
|
|
2683
|
+
export { AssetFormat, AttributeNames, Camera, HaveData, HaveMetadata, HaveNothing, Lod, LodStore, Miris, ModelRoot, Scene, Stream, clientAttributeList, sparkAttributeList };
|