@dheuv/xgboost-wasm 1.0.0 → 1.0.1
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/index.js +145 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +142 -1
- package/dist/index.mjs.map +1 -1
- package/dist/xgboost.d.ts +2 -1
- package/dist/xgboost_wasm.wasm +0 -0
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2 +1,146 @@
|
|
|
1
|
-
"use strict";var r=require("node:fs"),e=require("node:crypto"),t=require("ws");function n(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var o={exports:{}};!function(n){var o,a=(o=globalThis.document?.currentScript?.src,async function(n={}){var a=n,s=!!globalThis.window,i=!!globalThis.WorkerGlobalScope,u=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,c="./this.program",l=(r,e)=>{throw e};"undefined"!=typeof __filename?o=__filename:i&&(o=self.location.href);var d,f,h="";if(u){var p=r;h=__dirname+"/",f=r=>(r=x(r)?new URL(r):r,p.readFileSync(r)),d=async(r,e=!0)=>(r=x(r)?new URL(r):r,p.readFileSync(r,e?void 0:"utf8")),process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),l=(r,e)=>{throw process.exitCode=r,e}}else if(s||i){try{h=new URL(".",o).href}catch{}i&&(f=r=>{var e=new XMLHttpRequest;return e.open("GET",r,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),d=async r=>{if(x(r))return new Promise((e,t)=>{var n=new XMLHttpRequest;n.open("GET",r,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?e(n.response):t(n.status)},n.onerror=t,n.send(null)});var e=await fetch(r,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)}}var m,v,w,y,g,E,k,b,_,$,P,S,C,T,A=console.log.bind(console),D=console.error.bind(console),F=!1,x=r=>r.startsWith("file://"),N=!1;function O(){var r=qe.buffer;y=new Int8Array(r),E=new Int16Array(r),a.HEAPU8=g=new Uint8Array(r),k=new Uint16Array(r),a.HEAP32=b=new Int32Array(r),_=new Uint32Array(r),a.HEAPF32=$=new Float32Array(r),a.HEAPF64=P=new Float64Array(r),S=new BigInt64Array(r),C=new BigUint64Array(r)}function M(r){a.onAbort?.(r),D(r="Aborted("+r+")"),F=!0,r+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(r);throw w?.(e),e}function R(){return r="xgboost_wasm.wasm",a.locateFile?a.locateFile(r,h):h+r;var r}async function B(r){if(!m)try{var e=await d(r);return new Uint8Array(e)}catch{}return function(r){if(r==T&&m)return new Uint8Array(m);if(f)return f(r);throw"both async and sync fetching of the wasm failed"}(r)}async function j(r,e,t){if(!r&&!x(e)&&!u)try{var n=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(r){D(`wasm streaming compile failed: ${r}`),D("falling back to ArrayBuffer instantiation")}return async function(r,e){try{var t=await B(r);return await WebAssembly.instantiate(t,e)}catch(r){D(`failed to asynchronously prepare wasm: ${r}`),M(r)}}(e,t)}class I{name="ExitStatus";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var W=r=>{for(;r.length>0;)r.shift()(a)},z=[],L=r=>z.push(r),U=[],q=r=>U.push(r),H=!0,V=r=>Be(r),G=()=>Ie(),X=[],Y=0,K=0;class Z{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){_[this.ptr+4>>2]=r}get_type(){return _[this.ptr+4>>2]}set_destructor(r){_[this.ptr+8>>2]=r}get_destructor(){return _[this.ptr+8>>2]}set_caught(r){r=r?1:0,y[this.ptr+12]=r}get_caught(){return 0!=y[this.ptr+12]}set_rethrown(r){r=r?1:0,y[this.ptr+13]=r}get_rethrown(){return 0!=y[this.ptr+13]}init(r,e){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(e)}set_adjusted_ptr(r){_[this.ptr+16>>2]=r}get_adjusted_ptr(){return _[this.ptr+16>>2]}}var J=r=>Re(r),Q=r=>{var e=K;if(!e)return J(0),0;var t=new Z(e);t.set_adjusted_ptr(e);var n=t.get_type();if(!n)return J(0),e;for(var o of r){if(0===o||o===n)break;var a=t.ptr+16;if(Le(o,n,a))return J(o),e}return J(n),e},rr=()=>{var r=X.pop();r||M("no exception to throw");var e=r.excPtr;throw r.get_rethrown()||(X.push(r),r.set_rethrown(!0),r.set_caught(!1),Y++),ze(e),K=e},er=r=>{(er=(()=>{if(u){var r=e;return e=>r.randomFillSync(e)}return r=>crypto.getRandomValues(r)})())(r)},tr={isAbs:r=>"/"===r.charAt(0),splitPath:r=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(r).slice(1),normalizeArray:(r,e)=>{for(var t=0,n=r.length-1;n>=0;n--){var o=r[n];"."===o?r.splice(n,1):".."===o?(r.splice(n,1),t++):t&&(r.splice(n,1),t--)}if(e)for(;t;t--)r.unshift("..");return r},normalize:r=>{var e=tr.isAbs(r),t="/"===r.slice(-1);return(r=tr.normalizeArray(r.split("/").filter(r=>!!r),!e).join("/"))||e||(r="."),r&&t&&(r+="/"),(e?"/":"")+r},dirname:r=>{var e=tr.splitPath(r),t=e[0],n=e[1];return t||n?(n&&(n=n.slice(0,-1)),t+n):"."},basename:r=>r&&r.match(/([^\/]+|\/)\/*$/)[1],join:(...r)=>tr.normalize(r.join("/")),join2:(r,e)=>tr.normalize(r+"/"+e)},nr={resolve:(...r)=>{for(var e="",t=!1,n=r.length-1;n>=-1&&!t;n--){var o=n>=0?r[n]:kr.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";e=o+"/"+e,t=tr.isAbs(o)}return(t?"/":"")+(e=tr.normalizeArray(e.split("/").filter(r=>!!r),!t).join("/"))||"."},relative:(r,e)=>{function t(r){for(var e=0;e<r.length&&""===r[e];e++);for(var t=r.length-1;t>=0&&""===r[t];t--);return e>t?[]:r.slice(e,t-e+1)}r=nr.resolve(r).slice(1),e=nr.resolve(e).slice(1);for(var n=t(r.split("/")),o=t(e.split("/")),a=Math.min(n.length,o.length),s=a,i=0;i<a;i++)if(n[i]!==o[i]){s=i;break}var u=[];for(i=s;i<n.length;i++)u.push("..");return(u=u.concat(o.slice(s))).join("/")}},or=globalThis.TextDecoder&&new TextDecoder,ar=(r,e,t,n)=>{var o=e+t;if(n)return o;for(;r[e]&&!(e>=o);)++e;return e},sr=(r,e=0,t,n)=>{var o=ar(r,e,t,n);if(o-e>16&&r.buffer&&or)return or.decode(r.subarray(e,o));for(var a="";e<o;){var s=r[e++];if(128&s){var i=63&r[e++];if(192!=(224&s)){var u=63&r[e++];if((s=224==(240&s)?(15&s)<<12|i<<6|u:(7&s)<<18|i<<12|u<<6|63&r[e++])<65536)a+=String.fromCharCode(s);else{var c=s-65536;a+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else a+=String.fromCharCode((31&s)<<6|i)}else a+=String.fromCharCode(s)}return a},ir=[],ur=r=>{for(var e=0,t=0;t<r.length;++t){var n=r.charCodeAt(t);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++t):e+=3}return e},cr=(r,e,t,n)=>{if(!(n>0))return 0;for(var o=t,a=t+n-1,s=0;s<r.length;++s){var i=r.codePointAt(s);if(i<=127){if(t>=a)break;e[t++]=i}else if(i<=2047){if(t+1>=a)break;e[t++]=192|i>>6,e[t++]=128|63&i}else if(i<=65535){if(t+2>=a)break;e[t++]=224|i>>12,e[t++]=128|i>>6&63,e[t++]=128|63&i}else{if(t+3>=a)break;e[t++]=240|i>>18,e[t++]=128|i>>12&63,e[t++]=128|i>>6&63,e[t++]=128|63&i,s++}}return e[t]=0,t-o},lr=(r,e,t)=>{var n=ur(r)+1,o=new Array(n),a=cr(r,o,0,o.length);return o.length=a,o},dr={ttys:[],init(){},shutdown(){},register(r,e){dr.ttys[r]={input:[],output:[],ops:e},kr.registerDevice(r,dr.stream_ops)},stream_ops:{open(r){var e=dr.ttys[r.node.rdev];if(!e)throw new kr.ErrnoError(43);r.tty=e,r.seekable=!1},close(r){r.tty.ops.fsync(r.tty)},fsync(r){r.tty.ops.fsync(r.tty)},read(r,e,t,n,o){if(!r.tty||!r.tty.ops.get_char)throw new kr.ErrnoError(60);for(var a=0,s=0;s<n;s++){var i;try{i=r.tty.ops.get_char(r.tty)}catch(r){throw new kr.ErrnoError(29)}if(void 0===i&&0===a)throw new kr.ErrnoError(6);if(null==i)break;a++,e[t+s]=i}return a&&(r.node.atime=Date.now()),a},write(r,e,t,n,o){if(!r.tty||!r.tty.ops.put_char)throw new kr.ErrnoError(60);try{for(var a=0;a<n;a++)r.tty.ops.put_char(r.tty,e[t+a])}catch(r){throw new kr.ErrnoError(29)}return n&&(r.node.mtime=r.node.ctime=Date.now()),a}},default_tty_ops:{get_char:r=>(()=>{if(!ir.length){var r=null;if(u){var e=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=p.readSync(n,e,0,256)}catch(r){if(!r.toString().includes("EOF"))throw r;t=0}t>0&&(r=e.slice(0,t).toString("utf-8"))}else globalThis.window?.prompt&&null!==(r=window.prompt("Input: "))&&(r+="\n");if(!r)return null;ir=lr(r)}return ir.shift()})(),put_char(r,e){null===e||10===e?(A(sr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output?.length>0&&(A(sr(r.output)),r.output=[])},ioctl_tcgets:r=>({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:(r,e,t)=>0,ioctl_tiocgwinsz:r=>[24,80]},default_tty1_ops:{put_char(r,e){null===e||10===e?(D(sr(r.output)),r.output=[]):0!=e&&r.output.push(e)},fsync(r){r.output?.length>0&&(D(sr(r.output)),r.output=[])}}},fr=(r,e)=>g.fill(0,r,r+e),hr=(r,e)=>Math.ceil(r/e)*e,pr=r=>{r=hr(r,65536);var e=Oe(65536,r);return e&&fr(e,r),e},mr={ops_table:null,mount:r=>mr.createNode(null,"/",16895,0),createNode(r,e,t,n){if(kr.isBlkdev(t)||kr.isFIFO(t))throw new kr.ErrnoError(63);mr.ops_table||={dir:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr,lookup:mr.node_ops.lookup,mknod:mr.node_ops.mknod,rename:mr.node_ops.rename,unlink:mr.node_ops.unlink,rmdir:mr.node_ops.rmdir,readdir:mr.node_ops.readdir,symlink:mr.node_ops.symlink},stream:{llseek:mr.stream_ops.llseek}},file:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr},stream:{llseek:mr.stream_ops.llseek,read:mr.stream_ops.read,write:mr.stream_ops.write,mmap:mr.stream_ops.mmap,msync:mr.stream_ops.msync}},link:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr,readlink:mr.node_ops.readlink},stream:{}},chrdev:{node:{getattr:mr.node_ops.getattr,setattr:mr.node_ops.setattr},stream:kr.chrdev_stream_ops}};var o=kr.createNode(r,e,t,n);return kr.isDir(o.mode)?(o.node_ops=mr.ops_table.dir.node,o.stream_ops=mr.ops_table.dir.stream,o.contents={}):kr.isFile(o.mode)?(o.node_ops=mr.ops_table.file.node,o.stream_ops=mr.ops_table.file.stream,o.usedBytes=0,o.contents=null):kr.isLink(o.mode)?(o.node_ops=mr.ops_table.link.node,o.stream_ops=mr.ops_table.link.stream):kr.isChrdev(o.mode)&&(o.node_ops=mr.ops_table.chrdev.node,o.stream_ops=mr.ops_table.chrdev.stream),o.atime=o.mtime=o.ctime=Date.now(),r&&(r.contents[e]=o,r.atime=r.mtime=r.ctime=o.atime),o},getFileDataAsTypedArray:r=>r.contents?r.contents.subarray?r.contents.subarray(0,r.usedBytes):new Uint8Array(r.contents):new Uint8Array(0),expandFileStorage(r,e){var t=r.contents?r.contents.length:0;if(!(t>=e)){e=Math.max(e,t*(t<1048576?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var n=r.contents;r.contents=new Uint8Array(e),r.usedBytes>0&&r.contents.set(n.subarray(0,r.usedBytes),0)}},resizeFileStorage(r,e){if(r.usedBytes!=e)if(0==e)r.contents=null,r.usedBytes=0;else{var t=r.contents;r.contents=new Uint8Array(e),t&&r.contents.set(t.subarray(0,Math.min(e,r.usedBytes))),r.usedBytes=e}},node_ops:{getattr(r){var e={};return e.dev=kr.isChrdev(r.mode)?r.id:1,e.ino=r.id,e.mode=r.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=r.rdev,kr.isDir(r.mode)?e.size=4096:kr.isFile(r.mode)?e.size=r.usedBytes:kr.isLink(r.mode)?e.size=r.link.length:e.size=0,e.atime=new Date(r.atime),e.mtime=new Date(r.mtime),e.ctime=new Date(r.ctime),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(r,e){for(const t of["mode","atime","mtime","ctime"])null!=e[t]&&(r[t]=e[t]);void 0!==e.size&&mr.resizeFileStorage(r,e.size)},lookup(r,e){throw mr.doesNotExistError||(mr.doesNotExistError=new kr.ErrnoError(44),mr.doesNotExistError.stack="<generic error, no stack>"),mr.doesNotExistError},mknod:(r,e,t,n)=>mr.createNode(r,e,t,n),rename(r,e,t){var n;try{n=kr.lookupNode(e,t)}catch(r){}if(n){if(kr.isDir(r.mode))for(var o in n.contents)throw new kr.ErrnoError(55);kr.hashRemoveNode(n)}delete r.parent.contents[r.name],e.contents[t]=r,r.name=t,e.ctime=e.mtime=r.parent.ctime=r.parent.mtime=Date.now()},unlink(r,e){delete r.contents[e],r.ctime=r.mtime=Date.now()},rmdir(r,e){var t=kr.lookupNode(r,e);for(var n in t.contents)throw new kr.ErrnoError(55);delete r.contents[e],r.ctime=r.mtime=Date.now()},readdir:r=>[".","..",...Object.keys(r.contents)],symlink(r,e,t){var n=mr.createNode(r,e,41471,0);return n.link=t,n},readlink(r){if(!kr.isLink(r.mode))throw new kr.ErrnoError(28);return r.link}},stream_ops:{read(r,e,t,n,o){var a=r.node.contents;if(o>=r.node.usedBytes)return 0;var s=Math.min(r.node.usedBytes-o,n);if(s>8&&a.subarray)e.set(a.subarray(o,o+s),t);else for(var i=0;i<s;i++)e[t+i]=a[o+i];return s},write(r,e,t,n,o,a){if(e.buffer===y.buffer&&(a=!1),!n)return 0;var s=r.node;if(s.mtime=s.ctime=Date.now(),e.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=e.subarray(t,t+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===o)return s.contents=e.slice(t,t+n),s.usedBytes=n,n;if(o+n<=s.usedBytes)return s.contents.set(e.subarray(t,t+n),o),n}if(mr.expandFileStorage(s,o+n),s.contents.subarray&&e.subarray)s.contents.set(e.subarray(t,t+n),o);else for(var i=0;i<n;i++)s.contents[o+i]=e[t+i];return s.usedBytes=Math.max(s.usedBytes,o+n),n},llseek(r,e,t){var n=e;if(1===t?n+=r.position:2===t&&kr.isFile(r.node.mode)&&(n+=r.node.usedBytes),n<0)throw new kr.ErrnoError(28);return n},mmap(r,e,t,n,o){if(!kr.isFile(r.node.mode))throw new kr.ErrnoError(43);var a,s,i=r.node.contents;if(2&o||!i||i.buffer!==y.buffer){if(s=!0,!(a=pr(e)))throw new kr.ErrnoError(48);i&&((t>0||t+e<i.length)&&(i=i.subarray?i.subarray(t,t+e):Array.prototype.slice.call(i,t,t+e)),y.set(i,a))}else s=!1,a=i.byteOffset;return{ptr:a,allocated:s}},msync:(r,e,t,n,o)=>(mr.stream_ops.write(r,e,0,n,t,!1),0)}},vr=(r,e)=>{var t=0;return r&&(t|=365),e&&(t|=146),t},wr=0,yr=null,gr=[],Er=async(r,e,t,n,o,s,i,u)=>{var c=e?nr.resolve(tr.join2(r,e)):r;wr++,a.monitorRunDependencies?.(wr);try{var l=t;"string"==typeof t&&(l=await(async r=>{var e=await d(r);return new Uint8Array(e)})(t)),l=await(async(r,e)=>{for(var t of("undefined"!=typeof Browser&&Browser.init(),gr))if(t.canHandle(e))return t.handle(r,e);return r})(l,c),u?.(),s||((...r)=>{kr.createDataFile(...r)})(r,e,l,n,o,i)}finally{(()=>{if(wr--,a.monitorRunDependencies?.(wr),0==wr&&yr){var r=yr;yr=null,r()}})()}},kr={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(r){this.errno=r}},FSStream:class{shared={};get object(){return this.node}set object(r){this.node=r}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(r){this.shared.flags=r}get position(){return this.shared.position}set position(r){this.shared.position=r}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(r,e,t,n){r||(r=this),this.parent=r,this.mount=r.mount,this.id=kr.nextInode++,this.name=e,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(r){r?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(r){r?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return kr.isDir(this.mode)}get isDevice(){return kr.isChrdev(this.mode)}},lookupPath(r,e={}){if(!r)throw new kr.ErrnoError(44);e.follow_mount??=!0,tr.isAbs(r)||(r=kr.cwd()+"/"+r);r:for(var t=0;t<40;t++){for(var n=r.split("/").filter(r=>!!r),o=kr.root,a="/",s=0;s<n.length;s++){var i=s===n.length-1;if(i&&e.parent)break;if("."!==n[s])if(".."!==n[s]){a=tr.join2(a,n[s]);try{o=kr.lookupNode(o,n[s])}catch(r){if(44===r?.errno&&i&&e.noent_okay)return{path:a};throw r}if(!kr.isMountpoint(o)||i&&!e.follow_mount||(o=o.mounted.root),kr.isLink(o.mode)&&(!i||e.follow)){if(!o.node_ops.readlink)throw new kr.ErrnoError(52);var u=o.node_ops.readlink(o);tr.isAbs(u)||(u=tr.dirname(a)+"/"+u),r=u+"/"+n.slice(s+1).join("/");continue r}}else{if(a=tr.dirname(a),kr.isRoot(o)){r=a+"/"+n.slice(s+1).join("/"),t--;continue r}o=o.parent}}return{path:a,node:o}}throw new kr.ErrnoError(32)},getPath(r){for(var e;;){if(kr.isRoot(r)){var t=r.mount.mountpoint;return e?"/"!==t[t.length-1]?`${t}/${e}`:t+e:t}e=e?`${r.name}/${e}`:r.name,r=r.parent}},hashName(r,e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(r+t>>>0)%kr.nameTable.length},hashAddNode(r){var e=kr.hashName(r.parent.id,r.name);r.name_next=kr.nameTable[e],kr.nameTable[e]=r},hashRemoveNode(r){var e=kr.hashName(r.parent.id,r.name);if(kr.nameTable[e]===r)kr.nameTable[e]=r.name_next;else for(var t=kr.nameTable[e];t;){if(t.name_next===r){t.name_next=r.name_next;break}t=t.name_next}},lookupNode(r,e){var t=kr.mayLookup(r);if(t)throw new kr.ErrnoError(t);for(var n=kr.hashName(r.id,e),o=kr.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===r.id&&a===e)return o}return kr.lookup(r,e)},createNode(r,e,t,n){var o=new kr.FSNode(r,e,t,n);return kr.hashAddNode(o),o},destroyNode(r){kr.hashRemoveNode(r)},isRoot:r=>r===r.parent,isMountpoint:r=>!!r.mounted,isFile:r=>32768==(61440&r),isDir:r=>16384==(61440&r),isLink:r=>40960==(61440&r),isChrdev:r=>8192==(61440&r),isBlkdev:r=>24576==(61440&r),isFIFO:r=>4096==(61440&r),isSocket:r=>!(49152&~r),flagsToPermissionString(r){var e=["r","w","rw"][3&r];return 512&r&&(e+="w"),e},nodePermissions:(r,e)=>kr.ignorePermissions||(!e.includes("r")||292&r.mode)&&(!e.includes("w")||146&r.mode)&&(!e.includes("x")||73&r.mode)?0:2,mayLookup(r){if(!kr.isDir(r.mode))return 54;var e=kr.nodePermissions(r,"x");return e||(r.node_ops.lookup?0:2)},mayCreate(r,e){if(!kr.isDir(r.mode))return 54;try{return kr.lookupNode(r,e),20}catch(r){}return kr.nodePermissions(r,"wx")},mayDelete(r,e,t){var n;try{n=kr.lookupNode(r,e)}catch(r){return r.errno}var o=kr.nodePermissions(r,"wx");if(o)return o;if(t){if(!kr.isDir(n.mode))return 54;if(kr.isRoot(n)||kr.getPath(n)===kr.cwd())return 10}else if(kr.isDir(n.mode))return 31;return 0},mayOpen(r,e){if(!r)return 44;if(kr.isLink(r.mode))return 32;var t=kr.flagsToPermissionString(e);return kr.isDir(r.mode)&&("r"!==t||576&e)?31:kr.nodePermissions(r,t)},checkOpExists(r,e){if(!r)throw new kr.ErrnoError(e);return r},MAX_OPEN_FDS:4096,nextfd(){for(var r=0;r<=kr.MAX_OPEN_FDS;r++)if(!kr.streams[r])return r;throw new kr.ErrnoError(33)},getStreamChecked(r){var e=kr.getStream(r);if(!e)throw new kr.ErrnoError(8);return e},getStream:r=>kr.streams[r],createStream:(r,e=-1)=>(r=Object.assign(new kr.FSStream,r),-1==e&&(e=kr.nextfd()),r.fd=e,kr.streams[e]=r,r),closeStream(r){kr.streams[r]=null},dupStream(r,e=-1){var t=kr.createStream(r,e);return t.stream_ops?.dup?.(t),t},doSetAttr(r,e,t){var n=r?.stream_ops.setattr,o=n?r:e;n??=e.node_ops.setattr,kr.checkOpExists(n,63),n(o,t)},chrdev_stream_ops:{open(r){var e=kr.getDevice(r.node.rdev);r.stream_ops=e.stream_ops,r.stream_ops.open?.(r)},llseek(){throw new kr.ErrnoError(70)}},major:r=>r>>8,minor:r=>255&r,makedev:(r,e)=>r<<8|e,registerDevice(r,e){kr.devices[r]={stream_ops:e}},getDevice:r=>kr.devices[r],getMounts(r){for(var e=[],t=[r];t.length;){var n=t.pop();e.push(n),t.push(...n.mounts)}return e},syncfs(r,e){"function"==typeof r&&(e=r,r=!1),kr.syncFSRequests++,kr.syncFSRequests>1&&D(`warning: ${kr.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=kr.getMounts(kr.root.mount),n=0;function o(r){return kr.syncFSRequests--,e(r)}function a(r){if(r)return a.errored?void 0:(a.errored=!0,o(r));++n>=t.length&&o(null)}for(var s of t)s.type.syncfs?s.type.syncfs(s,r,a):a(null)},mount(r,e,t){var n,o="/"===t,a=!t;if(o&&kr.root)throw new kr.ErrnoError(10);if(!o&&!a){var s=kr.lookupPath(t,{follow_mount:!1});if(t=s.path,n=s.node,kr.isMountpoint(n))throw new kr.ErrnoError(10);if(!kr.isDir(n.mode))throw new kr.ErrnoError(54)}var i={type:r,opts:e,mountpoint:t,mounts:[]},u=r.mount(i);return u.mount=i,i.root=u,o?kr.root=u:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),u},unmount(r){var e=kr.lookupPath(r,{follow_mount:!1});if(!kr.isMountpoint(e.node))throw new kr.ErrnoError(28);var t=e.node,n=t.mounted,o=kr.getMounts(n);for(var[a,s]of Object.entries(kr.nameTable))for(;s;){var i=s.name_next;o.includes(s.mount)&&kr.destroyNode(s),s=i}t.mounted=null;var u=t.mount.mounts.indexOf(n);t.mount.mounts.splice(u,1)},lookup:(r,e)=>r.node_ops.lookup(r,e),mknod(r,e,t){var n=kr.lookupPath(r,{parent:!0}).node,o=tr.basename(r);if(!o)throw new kr.ErrnoError(28);if("."===o||".."===o)throw new kr.ErrnoError(20);var a=kr.mayCreate(n,o);if(a)throw new kr.ErrnoError(a);if(!n.node_ops.mknod)throw new kr.ErrnoError(63);return n.node_ops.mknod(n,o,e,t)},statfs:r=>kr.statfsNode(kr.lookupPath(r,{follow:!0}).node),statfsStream:r=>kr.statfsNode(r.node),statfsNode(r){var e={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:kr.nextInode,ffree:kr.nextInode-1,fsid:42,flags:2,namelen:255};return r.node_ops.statfs&&Object.assign(e,r.node_ops.statfs(r.mount.opts.root)),e},create:(r,e=438)=>(e&=4095,e|=32768,kr.mknod(r,e,0)),mkdir:(r,e=511)=>(e&=1023,e|=16384,kr.mknod(r,e,0)),mkdirTree(r,e){var t=r.split("/"),n="";for(var o of t)if(o){(n||tr.isAbs(r))&&(n+="/"),n+=o;try{kr.mkdir(n,e)}catch(r){if(20!=r.errno)throw r}}},mkdev:(r,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,kr.mknod(r,e,t)),symlink(r,e){if(!nr.resolve(r))throw new kr.ErrnoError(44);var t=kr.lookupPath(e,{parent:!0}).node;if(!t)throw new kr.ErrnoError(44);var n=tr.basename(e),o=kr.mayCreate(t,n);if(o)throw new kr.ErrnoError(o);if(!t.node_ops.symlink)throw new kr.ErrnoError(63);return t.node_ops.symlink(t,n,r)},rename(r,e){var t,n,o=tr.dirname(r),a=tr.dirname(e),s=tr.basename(r),i=tr.basename(e);if(t=kr.lookupPath(r,{parent:!0}).node,n=kr.lookupPath(e,{parent:!0}).node,!t||!n)throw new kr.ErrnoError(44);if(t.mount!==n.mount)throw new kr.ErrnoError(75);var u,c=kr.lookupNode(t,s),l=nr.relative(r,a);if("."!==l.charAt(0))throw new kr.ErrnoError(28);if("."!==(l=nr.relative(e,o)).charAt(0))throw new kr.ErrnoError(55);try{u=kr.lookupNode(n,i)}catch(r){}if(c!==u){var d=kr.isDir(c.mode),f=kr.mayDelete(t,s,d);if(f)throw new kr.ErrnoError(f);if(f=u?kr.mayDelete(n,i,d):kr.mayCreate(n,i))throw new kr.ErrnoError(f);if(!t.node_ops.rename)throw new kr.ErrnoError(63);if(kr.isMountpoint(c)||u&&kr.isMountpoint(u))throw new kr.ErrnoError(10);if(n!==t&&(f=kr.nodePermissions(t,"w")))throw new kr.ErrnoError(f);kr.hashRemoveNode(c);try{t.node_ops.rename(c,n,i),c.parent=n}catch(r){throw r}finally{kr.hashAddNode(c)}}},rmdir(r){var e=kr.lookupPath(r,{parent:!0}).node,t=tr.basename(r),n=kr.lookupNode(e,t),o=kr.mayDelete(e,t,!0);if(o)throw new kr.ErrnoError(o);if(!e.node_ops.rmdir)throw new kr.ErrnoError(63);if(kr.isMountpoint(n))throw new kr.ErrnoError(10);e.node_ops.rmdir(e,t),kr.destroyNode(n)},readdir(r){var e=kr.lookupPath(r,{follow:!0}).node;return kr.checkOpExists(e.node_ops.readdir,54)(e)},unlink(r){var e=kr.lookupPath(r,{parent:!0}).node;if(!e)throw new kr.ErrnoError(44);var t=tr.basename(r),n=kr.lookupNode(e,t),o=kr.mayDelete(e,t,!1);if(o)throw new kr.ErrnoError(o);if(!e.node_ops.unlink)throw new kr.ErrnoError(63);if(kr.isMountpoint(n))throw new kr.ErrnoError(10);e.node_ops.unlink(e,t),kr.destroyNode(n)},readlink(r){var e=kr.lookupPath(r).node;if(!e)throw new kr.ErrnoError(44);if(!e.node_ops.readlink)throw new kr.ErrnoError(28);return e.node_ops.readlink(e)},stat(r,e){var t=kr.lookupPath(r,{follow:!e}).node;return kr.checkOpExists(t.node_ops.getattr,63)(t)},fstat(r){var e=kr.getStreamChecked(r),t=e.node,n=e.stream_ops.getattr,o=n?e:t;return n??=t.node_ops.getattr,kr.checkOpExists(n,63),n(o)},lstat:r=>kr.stat(r,!0),doChmod(r,e,t,n){kr.doSetAttr(r,e,{mode:4095&t|-4096&e.mode,ctime:Date.now(),dontFollow:n})},chmod(r,e,t){var n;n="string"==typeof r?kr.lookupPath(r,{follow:!t}).node:r,kr.doChmod(null,n,e,t)},lchmod(r,e){kr.chmod(r,e,!0)},fchmod(r,e){var t=kr.getStreamChecked(r);kr.doChmod(t,t.node,e,!1)},doChown(r,e,t){kr.doSetAttr(r,e,{timestamp:Date.now(),dontFollow:t})},chown(r,e,t,n){var o;o="string"==typeof r?kr.lookupPath(r,{follow:!n}).node:r,kr.doChown(null,o,n)},lchown(r,e,t){kr.chown(r,e,t,!0)},fchown(r,e,t){var n=kr.getStreamChecked(r);kr.doChown(n,n.node,!1)},doTruncate(r,e,t){if(kr.isDir(e.mode))throw new kr.ErrnoError(31);if(!kr.isFile(e.mode))throw new kr.ErrnoError(28);var n=kr.nodePermissions(e,"w");if(n)throw new kr.ErrnoError(n);kr.doSetAttr(r,e,{size:t,timestamp:Date.now()})},truncate(r,e){if(e<0)throw new kr.ErrnoError(28);var t;t="string"==typeof r?kr.lookupPath(r,{follow:!0}).node:r,kr.doTruncate(null,t,e)},ftruncate(r,e){var t=kr.getStreamChecked(r);if(e<0||!(2097155&t.flags))throw new kr.ErrnoError(28);kr.doTruncate(t,t.node,e)},utime(r,e,t){var n=kr.lookupPath(r,{follow:!0}).node;kr.checkOpExists(n.node_ops.setattr,63)(n,{atime:e,mtime:t})},open(r,e,t=438){if(""===r)throw new kr.ErrnoError(44);var n,o;if(t=64&(e="string"==typeof e?(r=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[r];if(void 0===e)throw new Error(`Unknown file open mode: ${r}`);return e})(e):e)?4095&t|32768:0,"object"==typeof r)n=r;else{o=r.endsWith("/");var a=kr.lookupPath(r,{follow:!(131072&e),noent_okay:!0});n=a.node,r=a.path}var s=!1;if(64&e)if(n){if(128&e)throw new kr.ErrnoError(20)}else{if(o)throw new kr.ErrnoError(31);n=kr.mknod(r,511|t,0),s=!0}if(!n)throw new kr.ErrnoError(44);if(kr.isChrdev(n.mode)&&(e&=-513),65536&e&&!kr.isDir(n.mode))throw new kr.ErrnoError(54);if(!s){var i=kr.mayOpen(n,e);if(i)throw new kr.ErrnoError(i)}512&e&&!s&&kr.truncate(n,0),e&=-131713;var u=kr.createStream({node:n,path:kr.getPath(n),flags:e,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return u.stream_ops.open&&u.stream_ops.open(u),s&&kr.chmod(n,511&t),u},close(r){if(kr.isClosed(r))throw new kr.ErrnoError(8);r.getdents&&(r.getdents=null);try{r.stream_ops.close&&r.stream_ops.close(r)}catch(r){throw r}finally{kr.closeStream(r.fd)}r.fd=null},isClosed:r=>null===r.fd,llseek(r,e,t){if(kr.isClosed(r))throw new kr.ErrnoError(8);if(!r.seekable||!r.stream_ops.llseek)throw new kr.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new kr.ErrnoError(28);return r.position=r.stream_ops.llseek(r,e,t),r.ungotten=[],r.position},read(r,e,t,n,o){if(n<0||o<0)throw new kr.ErrnoError(28);if(kr.isClosed(r))throw new kr.ErrnoError(8);if(1==(2097155&r.flags))throw new kr.ErrnoError(8);if(kr.isDir(r.node.mode))throw new kr.ErrnoError(31);if(!r.stream_ops.read)throw new kr.ErrnoError(28);var a=void 0!==o;if(a){if(!r.seekable)throw new kr.ErrnoError(70)}else o=r.position;var s=r.stream_ops.read(r,e,t,n,o);return a||(r.position+=s),s},write(r,e,t,n,o,a){if(n<0||o<0)throw new kr.ErrnoError(28);if(kr.isClosed(r))throw new kr.ErrnoError(8);if(!(2097155&r.flags))throw new kr.ErrnoError(8);if(kr.isDir(r.node.mode))throw new kr.ErrnoError(31);if(!r.stream_ops.write)throw new kr.ErrnoError(28);r.seekable&&1024&r.flags&&kr.llseek(r,0,2);var s=void 0!==o;if(s){if(!r.seekable)throw new kr.ErrnoError(70)}else o=r.position;var i=r.stream_ops.write(r,e,t,n,o,a);return s||(r.position+=i),i},mmap(r,e,t,n,o){if(2&n&&!(2&o)&&2!=(2097155&r.flags))throw new kr.ErrnoError(2);if(1==(2097155&r.flags))throw new kr.ErrnoError(2);if(!r.stream_ops.mmap)throw new kr.ErrnoError(43);if(!e)throw new kr.ErrnoError(28);return r.stream_ops.mmap(r,e,t,n,o)},msync:(r,e,t,n,o)=>r.stream_ops.msync?r.stream_ops.msync(r,e,t,n,o):0,ioctl(r,e,t){if(!r.stream_ops.ioctl)throw new kr.ErrnoError(59);return r.stream_ops.ioctl(r,e,t)},readFile(r,e={}){e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding&&M(`Invalid encoding type "${e.encoding}"`);var t=kr.open(r,e.flags),n=kr.stat(r).size,o=new Uint8Array(n);return kr.read(t,o,0,n,0),"utf8"===e.encoding&&(o=sr(o)),kr.close(t),o},writeFile(r,e,t={}){t.flags=t.flags||577;var n=kr.open(r,t.flags,t.mode);"string"==typeof e&&(e=new Uint8Array(lr(e))),ArrayBuffer.isView(e)?kr.write(n,e,0,e.byteLength,void 0,t.canOwn):M("Unsupported data type"),kr.close(n)},cwd:()=>kr.currentPath,chdir(r){var e=kr.lookupPath(r,{follow:!0});if(null===e.node)throw new kr.ErrnoError(44);if(!kr.isDir(e.node.mode))throw new kr.ErrnoError(54);var t=kr.nodePermissions(e.node,"x");if(t)throw new kr.ErrnoError(t);kr.currentPath=e.path},createDefaultDirectories(){kr.mkdir("/tmp"),kr.mkdir("/home"),kr.mkdir("/home/web_user")},createDefaultDevices(){kr.mkdir("/dev"),kr.registerDevice(kr.makedev(1,3),{read:()=>0,write:(r,e,t,n,o)=>n,llseek:()=>0}),kr.mkdev("/dev/null",kr.makedev(1,3)),dr.register(kr.makedev(5,0),dr.default_tty_ops),dr.register(kr.makedev(6,0),dr.default_tty1_ops),kr.mkdev("/dev/tty",kr.makedev(5,0)),kr.mkdev("/dev/tty1",kr.makedev(6,0));var r=new Uint8Array(1024),e=0,t=()=>(0===e&&(er(r),e=r.byteLength),r[--e]);kr.createDevice("/dev","random",t),kr.createDevice("/dev","urandom",t),kr.mkdir("/dev/shm"),kr.mkdir("/dev/shm/tmp")},createSpecialDirectories(){kr.mkdir("/proc");var r=kr.mkdir("/proc/self");kr.mkdir("/proc/self/fd"),kr.mount({mount(){var e=kr.createNode(r,"fd",16895,73);return e.stream_ops={llseek:mr.stream_ops.llseek},e.node_ops={lookup(r,e){var t=+e,n=kr.getStreamChecked(t),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return o.parent=o,o},readdir:()=>Array.from(kr.streams.entries()).filter(([r,e])=>e).map(([r,e])=>r.toString())},e}},{},"/proc/self/fd")},createStandardStreams(r,e,t){r?kr.createDevice("/dev","stdin",r):kr.symlink("/dev/tty","/dev/stdin"),e?kr.createDevice("/dev","stdout",null,e):kr.symlink("/dev/tty","/dev/stdout"),t?kr.createDevice("/dev","stderr",null,t):kr.symlink("/dev/tty1","/dev/stderr"),kr.open("/dev/stdin",0),kr.open("/dev/stdout",1),kr.open("/dev/stderr",1)},staticInit(){kr.nameTable=new Array(4096),kr.mount(mr,{},"/"),kr.createDefaultDirectories(),kr.createDefaultDevices(),kr.createSpecialDirectories(),kr.filesystems={MEMFS:mr}},init(r,e,t){kr.initialized=!0,r??=a.stdin,e??=a.stdout,t??=a.stderr,kr.createStandardStreams(r,e,t)},quit(){for(var r of(kr.initialized=!1,kr.streams))r&&kr.close(r)},findObject(r,e){var t=kr.analyzePath(r,e);return t.exists?t.object:null},analyzePath(r,e){try{r=(n=kr.lookupPath(r,{follow:!e})).path}catch(r){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=kr.lookupPath(r,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=tr.basename(r),n=kr.lookupPath(r,{follow:!e}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(r){t.error=r.errno}return t},createPath(r,e,t,n){r="string"==typeof r?r:kr.getPath(r);for(var o=e.split("/").reverse();o.length;){var a=o.pop();if(a){var s=tr.join2(r,a);try{kr.mkdir(s)}catch(r){if(20!=r.errno)throw r}r=s}}return s},createFile(r,e,t,n,o){var a=tr.join2("string"==typeof r?r:kr.getPath(r),e),s=vr(n,o);return kr.create(a,s)},createDataFile(r,e,t,n,o,a){var s=e;r&&(r="string"==typeof r?r:kr.getPath(r),s=e?tr.join2(r,e):r);var i=vr(n,o),u=kr.create(s,i);if(t){if("string"==typeof t){for(var c=new Array(t.length),l=0,d=t.length;l<d;++l)c[l]=t.charCodeAt(l);t=c}kr.chmod(u,146|i);var f=kr.open(u,577);kr.write(f,t,0,t.length,0,a),kr.close(f),kr.chmod(u,i)}},createDevice(r,e,t,n){var o=tr.join2("string"==typeof r?r:kr.getPath(r),e),a=vr(!!t,!!n);kr.createDevice.major??=64;var s=kr.makedev(kr.createDevice.major++,0);return kr.registerDevice(s,{open(r){r.seekable=!1},close(r){n?.buffer?.length&&n(10)},read(r,e,n,o,a){for(var s=0,i=0;i<o;i++){var u;try{u=t()}catch(r){throw new kr.ErrnoError(29)}if(void 0===u&&0===s)throw new kr.ErrnoError(6);if(null==u)break;s++,e[n+i]=u}return s&&(r.node.atime=Date.now()),s},write(r,e,t,o,a){for(var s=0;s<o;s++)try{n(e[t+s])}catch(r){throw new kr.ErrnoError(29)}return o&&(r.node.mtime=r.node.ctime=Date.now()),s}}),kr.mkdev(o,a,s)},forceLoadFile(r){if(r.isDevice||r.isFolder||r.link||r.contents)return!0;if(globalThis.XMLHttpRequest)M("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");else try{r.contents=f(r.url)}catch(r){throw new kr.ErrnoError(29)}},createLazyFile(r,e,t,n,o){class a{lengthKnown=!1;chunks=[];get(r){if(!(r>this.length-1||r<0)){var e=r%this.chunkSize,t=r/this.chunkSize|0;return this.getter(t)[e]}}setDataGetter(r){this.getter=r}cacheLength(){var r=new XMLHttpRequest;r.open("HEAD",t,!1),r.send(null),r.status>=200&&r.status<300||304===r.status||M("Couldn't load "+t+". Status: "+r.status);var e,n=Number(r.getResponseHeader("Content-length")),o=(e=r.getResponseHeader("Accept-Ranges"))&&"bytes"===e,a=(e=r.getResponseHeader("Content-Encoding"))&&"gzip"===e,s=1048576;o||(s=n);var i=this;i.setDataGetter(r=>{var e=r*s,o=(r+1)*s-1;return o=Math.min(o,n-1),void 0===i.chunks[r]&&(i.chunks[r]=((r,e)=>{r>e&&M("invalid range ("+r+", "+e+") or no bytes requested!"),e>n-1&&M("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;return o.open("GET",t,!1),n!==s&&o.setRequestHeader("Range","bytes="+r+"-"+e),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),o.status>=200&&o.status<300||304===o.status||M("Couldn't load "+t+". Status: "+o.status),void 0!==o.response?new Uint8Array(o.response||[]):lr(o.responseText||"")})(e,o)),void 0===i.chunks[r]&&M("doXHR failed!"),i.chunks[r]}),!a&&n||(s=n=1,n=this.getter(0).length,s=n,A("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=s,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){i||M("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var s={isDevice:!1,contents:new a}}else s={isDevice:!1,url:t};var u=kr.createFile(r,e,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var c={};for(const[r,e]of Object.entries(u.stream_ops))c[r]=(...r)=>(kr.forceLoadFile(u),e(...r));function l(r,e,t,n,o){var a=r.node.contents;if(o>=a.length)return 0;var s=Math.min(a.length-o,n);if(a.slice)for(var i=0;i<s;i++)e[t+i]=a[o+i];else for(i=0;i<s;i++)e[t+i]=a.get(o+i);return s}return c.read=(r,e,t,n,o)=>(kr.forceLoadFile(u),l(r,e,t,n,o)),c.mmap=(r,e,t,n,o)=>{kr.forceLoadFile(u);var a=pr(e);if(!a)throw new kr.ErrnoError(48);return l(r,y,a,e,t),{ptr:a,allocated:!0}},u.stream_ops=c,u}},br={websocketArgs:{},callbacks:{},on(r,e){br.callbacks[r]=e},emit(r,e){br.callbacks[r]?.(e)},mount:r=>(br.websocketArgs=a.websocket||{},(a.websocket??={}).on=br.on,kr.createNode(null,"/",16895,0)),createSocket(r,e,t){if(2!=r)throw new kr.ErrnoError(5);if(1!=(e&=-526337)&&2!=e)throw new kr.ErrnoError(28);if(1==e&&t&&6!=t)throw new kr.ErrnoError(66);var n={family:r,type:e,protocol:t,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:br.websocket_sock_ops},o=br.nextname(),a=kr.createNode(br.root,o,49152,0);a.sock=n;var s=kr.createStream({path:o,node:a,flags:2,seekable:!1,stream_ops:br.stream_ops});return n.stream=s,n},getSocket(r){var e=kr.getStream(r);return e&&kr.isSocket(e.node.mode)?e.node.sock:null},stream_ops:{poll(r){var e=r.node.sock;return e.sock_ops.poll(e)},ioctl(r,e,t){var n=r.node.sock;return n.sock_ops.ioctl(n,e,t)},read(r,e,t,n,o){var a=r.node.sock,s=a.sock_ops.recvmsg(a,n);return s?(e.set(s.buffer,t),s.buffer.length):0},write(r,e,t,n,o){var a=r.node.sock;return a.sock_ops.sendmsg(a,e,t,n)},close(r){var e=r.node.sock;e.sock_ops.close(e)}},nextname:()=>(br.nextname.current||(br.nextname.current=0),`socket[${br.nextname.current++}]`),websocket_sock_ops:{createPeer(r,e,t){var n;if("object"==typeof e&&(n=e,e=null,t=null),n)if(n._socket)e=n._socket.remoteAddress,t=n._socket.remotePort;else{var o=/ws[s]?:\/\/([^:]+):(\d+)/.exec(n.url);if(!o)throw new Error("WebSocket URL must be in the format ws(s)://address:port");e=o[1],t=parseInt(o[2],10)}else try{var a="ws://".replace("#","//"),s="binary",i=void 0;if(br.websocketArgs.url&&(a=br.websocketArgs.url),br.websocketArgs.subprotocol?s=br.websocketArgs.subprotocol:null===br.websocketArgs.subprotocol&&(s="null"),"ws://"===a||"wss://"===a){var c=e.split("/");a=a+c[0]+":"+t+"/"+c.slice(1).join("/")}"null"!==s&&(i=s=s.replace(/^ +| +$/g,"").split(/ *, */)),(n=new(u?require("ws"):WebSocket)(a,i)).binaryType="arraybuffer"}catch(r){throw new kr.ErrnoError(23)}var l={addr:e,port:t,socket:n,msg_send_queue:[]};return br.websocket_sock_ops.addPeer(r,l),br.websocket_sock_ops.handlePeerEvents(r,l),2===r.type&&void 0!==r.sport&&l.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&r.sport)>>8,255&r.sport])),l},getPeer:(r,e,t)=>r.peers[e+":"+t],addPeer(r,e){r.peers[e.addr+":"+e.port]=e},removePeer(r,e){delete r.peers[e.addr+":"+e.port]},handlePeerEvents(r,e){var t=!0,n=function(){r.connecting=!1,br.emit("open",r.stream.fd);try{for(var t=e.msg_send_queue.shift();t;)e.socket.send(t),t=e.msg_send_queue.shift()}catch(r){e.socket.close()}};function o(n){if("string"==typeof n)n=(new TextEncoder).encode(n);else{if(0==n.byteLength)return;n=new Uint8Array(n)}var o=t;if(t=!1,o&&10===n.length&&255===n[0]&&255===n[1]&&255===n[2]&&255===n[3]&&n[4]==="p".charCodeAt(0)&&n[5]==="o".charCodeAt(0)&&n[6]==="r".charCodeAt(0)&&n[7]==="t".charCodeAt(0)){var a=n[8]<<8|n[9];return br.websocket_sock_ops.removePeer(r,e),e.port=a,void br.websocket_sock_ops.addPeer(r,e)}r.recv_queue.push({addr:e.addr,port:e.port,data:n}),br.emit("message",r.stream.fd)}u?(e.socket.on("open",n),e.socket.on("message",function(r,e){e&&o(new Uint8Array(r).buffer)}),e.socket.on("close",function(){br.emit("close",r.stream.fd)}),e.socket.on("error",function(e){r.error=14,br.emit("error",[r.stream.fd,r.error,"ECONNREFUSED: Connection refused"])})):(e.socket.onopen=n,e.socket.onclose=function(){br.emit("close",r.stream.fd)},e.socket.onmessage=function(r){o(r.data)},e.socket.onerror=function(e){r.error=14,br.emit("error",[r.stream.fd,r.error,"ECONNREFUSED: Connection refused"])})},poll(r){if(1===r.type&&r.server)return r.pending.length?65:0;var e=0,t=1===r.type?br.websocket_sock_ops.getPeer(r,r.daddr,r.dport):null;return(r.recv_queue.length||!t||t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(e|=65),(!t||t&&t.socket.readyState===t.socket.OPEN)&&(e|=4),(t&&t.socket.readyState===t.socket.CLOSING||t&&t.socket.readyState===t.socket.CLOSED)&&(r.connecting?e|=4:e|=16),e},ioctl(r,e,t){switch(e){case 21531:var n=0;return r.recv_queue.length&&(n=r.recv_queue[0].data.length),b[t>>2]=n,0;case 21537:return b[t>>2]?r.stream.flags|=2048:r.stream.flags&=-2049,0;default:return 28}},close(r){if(r.server){try{r.server.close()}catch(r){}r.server=null}for(var e of Object.values(r.peers)){try{e.socket.close()}catch(r){}br.websocket_sock_ops.removePeer(r,e)}return 0},bind(r,e,t){if(void 0!==r.saddr||void 0!==r.sport)throw new kr.ErrnoError(28);if(r.saddr=e,r.sport=t,2===r.type){r.server&&(r.server.close(),r.server=null);try{r.sock_ops.listen(r,0)}catch(r){if("ErrnoError"!==r.name)throw r;if(138!==r.errno)throw r}}},connect(r,e,t){if(r.server)throw new kr.ErrnoError(138);if(void 0!==r.daddr&&void 0!==r.dport){var n=br.websocket_sock_ops.getPeer(r,r.daddr,r.dport);if(n)throw n.socket.readyState===n.socket.CONNECTING?new kr.ErrnoError(7):new kr.ErrnoError(30)}var o=br.websocket_sock_ops.createPeer(r,e,t);r.daddr=o.addr,r.dport=o.port,r.connecting=!0},listen(r,e){if(!u)throw new kr.ErrnoError(138);if(r.server)throw new kr.ErrnoError(28);var n=t.Server,o=r.saddr;r.server=new n({host:o,port:r.sport}),br.emit("listen",r.stream.fd),r.server.on("connection",function(e){if(1===r.type){var t=br.createSocket(r.family,r.type,r.protocol),n=br.websocket_sock_ops.createPeer(t,e);t.daddr=n.addr,t.dport=n.port,r.pending.push(t),br.emit("connection",t.stream.fd)}else br.websocket_sock_ops.createPeer(r,e),br.emit("connection",r.stream.fd)}),r.server.on("close",function(){br.emit("close",r.stream.fd),r.server=null}),r.server.on("error",function(e){r.error=23,br.emit("error",[r.stream.fd,r.error,"EHOSTUNREACH: Host is unreachable"])})},accept(r){if(!r.server||!r.pending.length)throw new kr.ErrnoError(28);var e=r.pending.shift();return e.stream.flags=r.stream.flags,e},getname(r,e){var t,n;if(e){if(void 0===r.daddr||void 0===r.dport)throw new kr.ErrnoError(53);t=r.daddr,n=r.dport}else t=r.saddr||0,n=r.sport||0;return{addr:t,port:n}},sendmsg(r,e,t,n,o,a){if(2===r.type){if(void 0!==o&&void 0!==a||(o=r.daddr,a=r.dport),void 0===o||void 0===a)throw new kr.ErrnoError(17)}else o=r.daddr,a=r.dport;var s=br.websocket_sock_ops.getPeer(r,o,a);if(1===r.type&&(!s||s.socket.readyState===s.socket.CLOSING||s.socket.readyState===s.socket.CLOSED))throw new kr.ErrnoError(53);ArrayBuffer.isView(e)&&(t+=e.byteOffset,e=e.buffer);var i=e.slice(t,t+n);if(!s||s.socket.readyState!==s.socket.OPEN)return 2===r.type&&(s&&s.socket.readyState!==s.socket.CLOSING&&s.socket.readyState!==s.socket.CLOSED||(s=br.websocket_sock_ops.createPeer(r,o,a))),s.msg_send_queue.push(i),n;try{return s.socket.send(i),n}catch(r){throw new kr.ErrnoError(28)}},recvmsg(r,e){if(1===r.type&&r.server)throw new kr.ErrnoError(53);var t=r.recv_queue.shift();if(!t){if(1===r.type){var n=br.websocket_sock_ops.getPeer(r,r.daddr,r.dport);if(!n)throw new kr.ErrnoError(53);if(n.socket.readyState===n.socket.CLOSING||n.socket.readyState===n.socket.CLOSED)return null;throw new kr.ErrnoError(6)}throw new kr.ErrnoError(6)}var o=t.data.byteLength||t.data.length,a=t.data.byteOffset||0,s=t.data.buffer||t.data,i=Math.min(e,o),u={buffer:new Uint8Array(s,a,i),addr:t.addr,port:t.port};if(1===r.type&&i<o){var c=o-i;t.data=new Uint8Array(s,a+i,c),r.recv_queue.unshift(t)}return u}}},_r=r=>{var e=br.getSocket(r);if(!e)throw new kr.ErrnoError(8);return e},$r=r=>{for(var e=r.split("."),t=0;t<4;t++){var n=Number(e[t]);if(isNaN(n))return null;e[t]=n}return(e[0]|e[1]<<8|e[2]<<16|e[3]<<24)>>>0},Pr=r=>{var e,t,n,o,a=[];if(!/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i.test(r))return null;if("::"===r)return[0,0,0,0,0,0,0,0];for((r=r.startsWith("::")?r.replace("::","Z:"):r.replace("::",":Z:")).indexOf(".")>0?((e=(r=r.replace(new RegExp("[.]","g"),":")).split(":"))[e.length-4]=Number(e[e.length-4])+256*Number(e[e.length-3]),e[e.length-3]=Number(e[e.length-2])+256*Number(e[e.length-1]),e=e.slice(0,e.length-2)):e=r.split(":"),n=0,o=0,t=0;t<e.length;t++)if("string"==typeof e[t])if("Z"===e[t]){for(o=0;o<8-e.length+1;o++)a[t+o]=0;n=o-1}else a[t+n]=Ae(parseInt(e[t],16));else a[t+n]=e[t];return[a[1]<<16|a[0],a[3]<<16|a[2],a[5]<<16|a[4],a[7]<<16|a[6]]},Sr=(r,e,t,n,o)=>{switch(e){case 2:t=$r(t),fr(r,16),o&&(b[o>>2]=16),E[r>>1]=e,b[r+4>>2]=t,E[r+2>>1]=Ae(n);break;case 10:t=Pr(t),fr(r,28),o&&(b[o>>2]=28),b[r>>2]=e,b[r+8>>2]=t[0],b[r+12>>2]=t[1],b[r+16>>2]=t[2],b[r+20>>2]=t[3],E[r+2>>1]=Ae(n);break;default:return 5}return 0},Cr={address_map:{id:1,addrs:{},names:{}},lookup_name(r){var e,t=$r(r);if(null!==t)return r;if(null!==(t=Pr(r)))return r;if(Cr.address_map.addrs[r])e=Cr.address_map.addrs[r];else{var n=Cr.address_map.id++;e="172.29."+(255&n)+"."+(65280&n),Cr.address_map.names[e]=r,Cr.address_map.addrs[r]=e}return e},lookup_addr:r=>Cr.address_map.names[r]?Cr.address_map.names[r]:null},Tr=r=>(255&r)+"."+(r>>8&255)+"."+(r>>16&255)+"."+(r>>24&255),Ar=r=>{var e="",t=0,n=0,o=0,a=0,s=0,i=0,u=[65535&r[0],r[0]>>16,65535&r[1],r[1]>>16,65535&r[2],r[2]>>16,65535&r[3],r[3]>>16],c=!0,l="";for(i=0;i<5;i++)if(0!==u[i]){c=!1;break}if(c){if(l=Tr(u[6]|u[7]<<16),-1===u[5])return e="::ffff:",e+=l;if(0===u[5])return e="::","0.0.0.0"===l&&(l=""),"0.0.0.1"===l&&(l="1"),e+=l}for(t=0;t<8;t++)0===u[t]&&(t-o>1&&(s=0),o=t,s++),s>n&&(a=t-(n=s)+1);for(t=0;t<8;t++)n>1&&0===u[t]&&t>=a&&t<a+n?t===a&&(e+=":",0===a&&(e+=":")):(e+=Number(De(65535&u[t])).toString(16),e+=t<7?":":"");return e},Dr=(r,e)=>{var t=((r,e)=>{var t,n=E[r>>1],o=De(k[r+2>>1]);switch(n){case 2:if(16!==e)return{errno:28};t=b[r+4>>2],t=Tr(t);break;case 10:if(28!==e)return{errno:28};t=[b[r+8>>2],b[r+12>>2],b[r+16>>2],b[r+20>>2]],t=Ar(t);break;default:return{errno:5}}return{family:n,addr:t,port:o}})(r,e);if(t.errno)throw new kr.ErrnoError(t.errno);return t.addr=Cr.lookup_addr(t.addr)||t.addr,t},Fr=()=>{var r=b[+Or.varargs>>2];return Or.varargs+=4,r},xr=Fr,Nr=(r,e,t)=>r?sr(g,r,e,t):"",Or={calculateAt(r,e,t){if(tr.isAbs(e))return e;var n;if(n=-100===r?kr.cwd():Or.getStreamFromFD(r).path,0==e.length){if(!t)throw new kr.ErrnoError(44);return n}return n+"/"+e},writeStat(r,e){_[r>>2]=e.dev,_[r+4>>2]=e.mode,_[r+8>>2]=e.nlink,_[r+12>>2]=e.uid,_[r+16>>2]=e.gid,_[r+20>>2]=e.rdev,S[r+24>>3]=BigInt(e.size),b[r+32>>2]=4096,b[r+36>>2]=e.blocks;var t=e.atime.getTime(),n=e.mtime.getTime(),o=e.ctime.getTime();return S[r+40>>3]=BigInt(Math.floor(t/1e3)),_[r+48>>2]=t%1e3*1e3*1e3,S[r+56>>3]=BigInt(Math.floor(n/1e3)),_[r+64>>2]=n%1e3*1e3*1e3,S[r+72>>3]=BigInt(Math.floor(o/1e3)),_[r+80>>2]=o%1e3*1e3*1e3,S[r+88>>3]=BigInt(e.ino),0},writeStatFs(r,e){_[r+4>>2]=e.bsize,_[r+60>>2]=e.bsize,S[r+8>>3]=BigInt(e.blocks),S[r+16>>3]=BigInt(e.bfree),S[r+24>>3]=BigInt(e.bavail),S[r+32>>3]=BigInt(e.files),S[r+40>>3]=BigInt(e.ffree),_[r+48>>2]=e.fsid,_[r+64>>2]=e.flags,_[r+56>>2]=e.namelen},doMsync(r,e,t,n,o){if(!kr.isFile(e.node.mode))throw new kr.ErrnoError(43);if(2&n)return 0;var a=g.slice(r,r+t);kr.msync(e,a,o,t,n)},getStreamFromFD:r=>kr.getStreamChecked(r),varargs:void 0,getStr:r=>Nr(r)},Mr=(r,e,t)=>cr(r,g,e,t),Rr=r=>{for(var e="";;){var t=g[r++];if(!t)return e;e+=String.fromCharCode(t)}},Br={},jr={},Ir={},Wr=class extends Error{constructor(r){super(r),this.name="BindingError"}},zr=r=>{throw new Wr(r)};function Lr(r,e,t={}){return function(r,e,t={}){var n=e.name;if(r||zr(`type "${n}" must have a positive integer typeid pointer`),jr.hasOwnProperty(r)){if(t.ignoreDuplicateRegistrations)return;zr(`Cannot register type '${n}' twice`)}if(jr[r]=e,delete Ir[r],Br.hasOwnProperty(r)){var o=Br[r];delete Br[r],o.forEach(r=>r())}}(r,e,t)}var Ur=(r,e,t)=>{switch(e){case 1:return t?r=>y[r]:r=>g[r];case 2:return t?r=>E[r>>1]:r=>k[r>>1];case 4:return t?r=>b[r>>2]:r=>_[r>>2];case 8:return t?r=>S[r>>3]:r=>C[r>>3];default:throw new TypeError(`invalid integer width (${e}): ${r}`)}},qr=r=>{zr(r.$$.ptrType.registeredClass.name+" instance already deleted")},Hr=!1,Vr=r=>{},Gr=r=>{r.count.value-=1,0===r.count.value&&(r=>{r.smartPtr?r.smartPtrType.rawDestructor(r.smartPtr):r.ptrType.registeredClass.rawDestructor(r.ptr)})(r)},Xr=r=>globalThis.FinalizationRegistry?(Hr=new FinalizationRegistry(r=>{Gr(r.$$)}),Xr=r=>{var e=r.$$;if(e.smartPtr){var t={$$:e};Hr.register(r,t,r)}return r},Vr=r=>Hr.unregister(r),Xr(r)):(Xr=r=>r,r);function Yr(){}var Kr=(r,e)=>Object.defineProperty(e,"name",{value:r}),Zr={},Jr=(r,e,t)=>{if(void 0===r[e].overloadTable){var n=r[e];r[e]=function(...n){return r[e].overloadTable.hasOwnProperty(n.length)||zr(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${r[e].overloadTable})!`),r[e].overloadTable[n.length].apply(this,n)},r[e].overloadTable=[],r[e].overloadTable[n.argCount]=n}},Qr=(r,e,t)=>{a.hasOwnProperty(r)?((void 0===t||void 0!==a[r].overloadTable&&void 0!==a[r].overloadTable[t])&&zr(`Cannot register public name '${r}' twice`),Jr(a,r,r),a[r].overloadTable.hasOwnProperty(t)&&zr(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),a[r].overloadTable[t]=e):(a[r]=e,a[r].argCount=t)};function re(r,e,t,n,o,a,s,i){this.name=r,this.constructor=e,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=o,this.getActualType=a,this.upcast=s,this.downcast=i,this.pureVirtualFunctions=[]}var ee=(r,e,t)=>{for(;e!==t;)e.upcast||zr(`Expected null or instance of ${t.name}, got an instance of ${e.name}`),r=e.upcast(r),e=e.baseClass;return r},te=r=>{if(null===r)return"null";var e=typeof r;return"object"===e||"array"===e||"function"===e?r.toString():""+r};function ne(r,e){if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),0;e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=e.$$.ptrType.registeredClass;return ee(e.$$.ptr,t,this.registeredClass)}function oe(r,e){var t;if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==r&&r.push(this.rawDestructor,t),t):0;e&&e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&e.$$.ptrType.isConst&&zr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);var n=e.$$.ptrType.registeredClass;if(t=ee(e.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===e.$$.smartPtr&&zr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:e.$$.smartPtrType===this?t=e.$$.smartPtr:zr(`Cannot convert argument of type ${e.$$.smartPtrType?e.$$.smartPtrType.name:e.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=e.$$.smartPtr;break;case 2:if(e.$$.smartPtrType===this)t=e.$$.smartPtr;else{var o=e.clone();t=this.rawShare(t,Ye.toHandle(()=>o.delete())),null!==r&&r.push(this.rawDestructor,t)}break;default:zr("Unsupported sharing policy")}return t}function ae(r,e){if(null===e)return this.isReference&&zr(`null is not a valid ${this.name}`),0;e.$$||zr(`Cannot pass "${te(e)}" as a ${this.name}`),e.$$.ptr||zr(`Cannot pass deleted object as a pointer of type ${this.name}`),e.$$.ptrType.isConst&&zr(`Cannot convert argument of type ${e.$$.ptrType.name} to parameter type ${this.name}`);var t=e.$$.ptrType.registeredClass;return ee(e.$$.ptr,t,this.registeredClass)}function se(r){return this.fromWireType(_[r>>2])}var ie=(r,e,t)=>{if(e===t)return r;if(void 0===t.baseClass)return null;var n=ie(r,e,t.baseClass);return null===n?null:t.downcast(n)},ue={},ce=(r,e)=>(e=((r,e)=>{for(void 0===e&&zr("ptr should not be undefined");r.baseClass;)e=r.upcast(e),r=r.baseClass;return e})(r,e),ue[e]),le=class extends Error{constructor(r){super(r),this.name="InternalError"}},de=r=>{throw new le(r)},fe=(r,e)=>(e.ptrType&&e.ptr||de("makeClassHandle requires ptr and ptrType"),!!e.smartPtrType!=!!e.smartPtr&&de("Both smartPtrType and smartPtr must be specified"),e.count={value:1},Xr(Object.create(r,{$$:{value:e,writable:!0}})));function he(r){var e=this.getPointee(r);if(!e)return this.destructor(r),null;var t=ce(this.registeredClass,e);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=e,t.$$.smartPtr=r,t.clone();var n=t.clone();return this.destructor(r),n}function o(){return this.isSmartPointer?fe(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:e,smartPtrType:this,smartPtr:r}):fe(this.registeredClass.instancePrototype,{ptrType:this,ptr:r})}var a,s=this.registeredClass.getActualType(e),i=Zr[s];if(!i)return o.call(this);a=this.isConst?i.constPointerType:i.pointerType;var u=ie(e,this.registeredClass,a.registeredClass);return null===u?o.call(this):this.isSmartPointer?fe(a.registeredClass.instancePrototype,{ptrType:a,ptr:u,smartPtrType:this,smartPtr:r}):fe(a.registeredClass.instancePrototype,{ptrType:a,ptr:u})}function pe(r,e,t,n,o,a,s,i,u,c,l){this.name=r,this.registeredClass=e,this.isReference=t,this.isConst=n,this.isSmartPointer=o,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=i,this.rawConstructor=u,this.rawShare=c,this.rawDestructor=l,o||void 0!==e.baseClass?this.toWireType=oe:n?(this.toWireType=ne,this.destructorFunction=null):(this.toWireType=ae,this.destructorFunction=null)}var me=(r,e,t)=>{a.hasOwnProperty(r)||de("Replacing nonexistent public symbol"),void 0!==a[r].overloadTable&&void 0!==t?a[r].overloadTable[t]=e:(a[r]=e,a[r].argCount=t)},ve=[],we=r=>{var e=ve[r];return e||(ve[r]=e=He.get(r)),e},ye=(r,e,t=!1)=>{r=Rr(r);var n=we(e);return"function"!=typeof n&&zr(`unknown function pointer with signature ${r}: ${e}`),n};class ge extends Error{}var Ee=r=>{var e=xe(r),t=Rr(e);return Fe(e),t},ke=(r,e)=>{var t=[],n={};throw e.forEach(function r(e){n[e]||jr[e]||(Ir[e]?Ir[e].forEach(r):(t.push(e),n[e]=!0))}),new ge(`${r}: `+t.map(Ee).join([", "]))},be=(r,e,t)=>{function n(e){var n=t(e);n.length!==r.length&&de("Mismatched type converter count");for(var o=0;o<r.length;++o)Lr(r[o],n[o])}r.forEach(r=>Ir[r]=e);var o=new Array(e.length),a=[],s=0;for(let[r,t]of e.entries())jr.hasOwnProperty(t)?o[r]=jr[t]:(a.push(t),Br.hasOwnProperty(t)||(Br[t]=[]),Br[t].push(()=>{o[r]=jr[t],++s===a.length&&n(o)}));0===a.length&&n(o)},_e=(r,e)=>{for(var t=[],n=0;n<r;n++)t.push(_[e+4*n>>2]);return t},$e=r=>{for(;r.length;){var e=r.pop();r.pop()(e)}};function Pe(r){for(var e=1;e<r.length;++e)if(null!==r[e]&&void 0===r[e].destructorFunction)return!0;return!1}function Se(r,e,t,n,o,a){var s=e.length;s<2&&zr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var i=null!==e[1]&&null!==t,u=Pe(e),c=!e[0].isVoid,l=e[0],d=e[1],f=[r,zr,n,o,$e,l.fromWireType.bind(l),d?.toWireType.bind(d)],h=2;h<s;++h){var p=e[h];f.push(p.toWireType.bind(p))}if(!u)for(h=i?1:2;h<e.length;++h)null!==e[h].destructorFunction&&f.push(e[h].destructorFunction);let m=function(r,e,t,n){var o=Pe(r),a=r.length-2,s=[],i=["fn"];e&&i.push("thisWired");for(var u=0;u<a;++u)s.push(`arg${u}`),i.push(`arg${u}Wired`);s=s.join(","),i=i.join(",");var c=`return function (${s}) {\n`;o&&(c+="var destructors = [];\n");var l=o?"destructors":"null",d=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];for(e&&(c+=`var thisWired = toClassParamWire(${l}, this);\n`),u=0;u<a;++u){var f=`toArg${u}Wire`;c+=`var arg${u}Wired = ${f}(${l}, arg${u});\n`,d.push(f)}if(c+=(t||n?"var rv = ":"")+`invoker(${i});\n`,o)c+="runDestructors(destructors);\n";else for(u=e?1:2;u<r.length;++u){var h=1===u?"thisWired":"arg"+(u-2)+"Wired";null!==r[u].destructorFunction&&(c+=`${h}_dtor(${h});\n`,d.push(`${h}_dtor`))}return t&&(c+="var ret = fromRetWire(rv);\nreturn ret;\n"),c+="}\n",new Function(d,c)}(e,i,c,a);var v=m(...f);return Kr(r,v)}var Ce,Te,Ae,De,Fe,xe,Ne,Oe,Me,Re,Be,je,Ie,We,ze,Le,Ue,qe,He,Ve=r=>{const e=(r=r.trim()).indexOf("(");return-1===e?r:r.slice(0,e)},Ge=[],Xe=[0,1,,1,null,1,!0,1,!1,1],Ye={toValue:r=>(r||zr(`Cannot use deleted val. handle = ${r}`),Xe[r]),toHandle:r=>{switch(r){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const e=Ge.pop()||Xe.length;return Xe[e]=r,Xe[e+1]=1,e}}}},Ke={name:"emscripten::val",fromWireType:r=>{var e=Ye.toValue(r);return(r=>{r>9&&0===--Xe[r+1]&&(Xe[r]=void 0,Ge.push(r))})(r),e},toWireType:(r,e)=>Ye.toHandle(e),readValueFromPointer:se,destructorFunction:null},Ze=(r,e)=>{switch(e){case 4:return function(r){return this.fromWireType($[r>>2])};case 8:return function(r){return this.fromWireType(P[r>>3])};default:throw new TypeError(`invalid float width (${e}): ${r}`)}},Je=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Qe=(r,e,t)=>{var n=r>>1,o=ar(k,n,e/2,t);if(o-n>16&&Je)return Je.decode(k.subarray(n,o));for(var a="",s=n;s<o;++s){var i=k[s];a+=String.fromCharCode(i)}return a},rt=(r,e,t)=>{if(t??=2147483647,t<2)return 0;for(var n=e,o=(t-=2)<2*r.length?t/2:r.length,a=0;a<o;++a){var s=r.charCodeAt(a);E[e>>1]=s,e+=2}return E[e>>1]=0,e-n},et=r=>2*r.length,tt=(r,e,t)=>{for(var n="",o=r>>2,a=0;!(a>=e/4);a++){var s=_[o+a];if(!s&&!t)break;n+=String.fromCodePoint(s)}return n},nt=(r,e,t)=>{if(t??=2147483647,t<4)return 0;for(var n=e,o=n+t-4,a=0;a<r.length;++a){var s=r.codePointAt(a);if(s>65535&&a++,b[e>>2]=s,(e+=4)+4>o)break}return b[e>>2]=0,e-n},ot=r=>{for(var e=0,t=0;t<r.length;++t)r.codePointAt(t)>65535&&t++,e+=4;return e},at=[0,31,60,91,121,152,182,213,244,274,305,335],st=[0,31,59,90,120,151,181,212,243,273,304,334],it=r=>r<-9007199254740992||r>9007199254740992?NaN:Number(r),ut=()=>performance.now(),ct=()=>Date.now(),lt=r=>{var e=(r-qe.buffer.byteLength+65535)/65536|0;try{return qe.grow(e),O(),1}catch(r){}},dt={},ft=()=>{if(!ft.strings){var r={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(var e in dt)void 0===dt[e]?delete r[e]:r[e]=dt[e];var t=[];for(var e in r)t.push(`${e}=${r[e]}`);ft.strings=t}return ft.strings},ht=r=>{H||(a.onExit?.(r),F=!0),l(r,new I(r))},pt=(r,e)=>{ht(r)},mt=r=>a["_"+r],vt=r=>je(r),wt=(r,e,t,n,o)=>{var a={string:r=>{var e=0;return null!=r&&0!==r&&(e=(r=>{var e=ur(r)+1,t=vt(e);return Mr(r,t,e),t})(r)),e},array:r=>{var e,t,n=vt(r.length);return e=r,t=n,y.set(e,t),n}},s=mt(r),i=[],u=0;if(n)for(var c=0;c<n.length;c++){var l=a[t[c]];l?(0===u&&(u=G()),i[c]=l(n[c])):i[c]=n[c]}var d=s(...i);return d=function(r){return 0!==u&&V(u),function(r){return"string"===e?Nr(r):"boolean"===e?Boolean(r):r}(r)}(d)},yt=r=>(Ce||(Ce=new WeakMap,((r,e)=>{if(Ce)for(var t=r;t<r+e;t++){var n=we(t);n&&Ce.set(n,t)}})(0,He.length)),Ce.get(r)||0),gt=[],Et=(r,e)=>{He.set(r,e),ve[r]=He.get(r)},kt=r=>{const e=r.length;return[e%128|128,e>>7,...r]},bt={i:127,p:127,j:126,f:125,d:124,e:111},_t=r=>kt(Array.from(r,r=>bt[r]));if(kr.createPreloadedFile=(r,e,t,n,o,a,s,i,u,c)=>{Er(r,e,t,n,o,i,u,c).then(a).catch(s)},kr.preloadFile=Er,kr.staticInit(),(()=>{let r=Yr.prototype;Object.assign(r,{isAliasOf(r){if(!(this instanceof Yr))return!1;if(!(r instanceof Yr))return!1;var e=this.$$.ptrType.registeredClass,t=this.$$.ptr;r.$$=r.$$;for(var n=r.$$.ptrType.registeredClass,o=r.$$.ptr;e.baseClass;)t=e.upcast(t),e=e.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return e===n&&t===o},clone(){if(this.$$.ptr||qr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var r,e=Xr(Object.create(Object.getPrototypeOf(this),{$$:{value:(r=this.$$,{count:r.count,deleteScheduled:r.deleteScheduled,preservePointerOnDelete:r.preservePointerOnDelete,ptr:r.ptr,ptrType:r.ptrType,smartPtr:r.smartPtr,smartPtrType:r.smartPtrType})}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||qr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&zr("Object already scheduled for deletion"),Vr(this),Gr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||qr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&zr("Object already scheduled for deletion"),this.$$.deleteScheduled=!0,this}});const e=Symbol.dispose;e&&(r[e]=r.delete)})(),Object.assign(pe.prototype,{getPointee(r){return this.rawGetPointee&&(r=this.rawGetPointee(r)),r},destructor(r){this.rawDestructor?.(r)},readValueFromPointer:se,fromWireType:he}),a.noExitRuntime&&(H=a.noExitRuntime),a.preloadPlugins&&(gr=a.preloadPlugins),a.print&&(A=a.print),a.printErr&&(D=a.printErr),a.wasmBinary&&(m=a.wasmBinary),a.arguments&&a.arguments,a.thisProgram&&(c=a.thisProgram),a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.shift()();a.ccall=wt,a.cwrap=(r,e,t,n)=>{var o=!t||t.every(r=>"number"===r||"boolean"===r);return"string"!==e&&o&&!n?mt(r):(...n)=>wt(r,e,t,n)},a.addFunction=(r,e)=>{var t=yt(r);if(t)return t;var n=gt.length?gt.pop():He.grow(1);try{Et(n,r)}catch(t){if(!(t instanceof TypeError))throw t;var o=((r,e)=>{var t=Uint8Array.of(0,97,115,109,1,0,0,0,1,...kt([1,96,..._t(e.slice(1)),..._t("v"===e[0]?"":e[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),n=new WebAssembly.Module(t);return new WebAssembly.Instance(n,{e:{f:r}}).exports.f})(r,e);Et(n,o)}return Ce.set(r,n),n},a.setValue=function(r,e,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":y[r]=e;break;case"i16":E[r>>1]=e;break;case"i32":b[r>>2]=e;break;case"i64":S[r>>3]=BigInt(e);break;case"float":$[r>>2]=e;break;case"double":P[r>>3]=e;break;case"*":_[r>>2]=e;break;default:M(`invalid type for setValue: ${t}`)}},a.getValue=function(r,e="i8"){switch(e.endsWith("*")&&(e="*"),e){case"i1":case"i8":return y[r];case"i16":return E[r>>1];case"i32":return b[r>>2];case"i64":return S[r>>3];case"float":return $[r>>2];case"double":return P[r>>3];case"*":return _[r>>2];default:M(`invalid type for getValue: ${e}`)}},a.UTF8ToString=Nr;var $t,Pt={l:r=>{var e=new Z(r);return e.get_caught()||(e.set_caught(!0),Y--),e.set_rethrown(!1),X.push(e),Ue(r)},o:()=>{Me(0,0);var r=X.pop();We(r.excPtr),K=0},a:()=>Q([]),f:r=>Q([r]),K:rr,ca:r=>{if(r){var e=new Z(r);X.push(e),e.set_rethrown(!0),rr()}},g:(r,e,t)=>{throw new Z(r).init(e,t),ze(r),Y++,K=r},da:()=>Y,b:r=>{throw K||(K=r),K},W:function(r,e,t,n,o,a){try{var s=_r(r),i=s.sock_ops.accept(s);return e&&Sr(e,i.family,Cr.lookup_name(i.daddr),i.dport,t),i.stream.fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},V:function(r,e,t,n,o,a){try{var s=_r(r),i=Dr(e,t);return s.sock_ops.connect(s,i.addr,i.port),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},s:function(r,e,t){Or.varargs=t;try{var n=Or.getStreamFromFD(r);switch(e){case 0:if((o=Fr())<0)return-28;for(;kr.streams[o];)o++;return kr.dupStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=Fr();return n.flags|=o,0;case 12:return o=xr(),E[o+0>>1]=2,0}return-28}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},oa:function(r,e){try{return Or.writeStat(e,kr.fstat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},_:function(r,e){try{if(0===e)return-28;var t=kr.cwd(),n=ur(t)+1;return e<n?-68:(Mr(t,r,e),n)}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ga:function(r,e,t){try{var n=Or.getStreamFromFD(r);n.getdents||=kr.readdir(n.path);for(var o=280,a=0,s=kr.llseek(n,0,1),i=Math.floor(s/o),u=Math.min(n.getdents.length,i+Math.floor(t/o)),c=i;c<u;c++){var l,d,f=n.getdents[c];if("."===f)l=n.node.id,d=4;else if(".."===f)l=kr.lookupPath(n.path,{parent:!0}).node.id,d=4;else{var h;try{h=kr.lookupNode(n.node,f)}catch(r){if(28===r?.errno)continue;throw r}l=h.id,d=kr.isChrdev(h.mode)?2:kr.isDir(h.mode)?4:kr.isLink(h.mode)?10:8}S[e+a>>3]=BigInt(l),S[e+a+8>>3]=BigInt((c+1)*o),E[e+a+16>>1]=280,y[e+a+18]=d,Mr(f,e+a+19,256),a+=o}return kr.llseek(n,c*o,0),a}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},C:function(r,e,t,n,o,a){try{var s=_r(r);return 1===e&&4===t?(b[n>>2]=s.error,b[o>>2]=4,s.error=null,0):-50}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},qa:function(r,e,t){Or.varargs=t;try{var n=Or.getStreamFromFD(r);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=xr();b[a>>2]=o.c_iflag||0,b[a+4>>2]=o.c_oflag||0,b[a+8>>2]=o.c_cflag||0,b[a+12>>2]=o.c_lflag||0;for(var s=0;s<32;s++)y[a+s+17]=o.c_cc[s]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=xr();var i=b[a>>2],u=b[a+4>>2],c=b[a+8>>2],l=b[a+12>>2],d=[];for(s=0;s<32;s++)d.push(y[a+s+17]);return n.tty.ops.ioctl_tcsets(n.tty,e,{c_iflag:i,c_oflag:u,c_cflag:c,c_lflag:l,c_cc:d})}return 0;case 21519:return n.tty?(a=xr(),b[a>>2]=0,0):-59;case 21520:return n.tty?-28:-59;case 21537:case 21531:return a=xr(),kr.ioctl(n,e,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var f=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=xr(),E[a>>1]=f[0],E[a+2>>1]=f[1]}return 0;default:return-28}}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},la:function(r,e){try{return r=Or.getStr(r),Or.writeStat(e,kr.lstat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ma:function(r,e,t,n){try{e=Or.getStr(e);var o=256&n,a=4096&n;return n&=-6401,e=Or.calculateAt(r,e,a),Or.writeStat(t,o?kr.lstat(e):kr.stat(e))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},O:function(r,e,t,n){Or.varargs=n;try{e=Or.getStr(e),e=Or.calculateAt(r,e);var o=n?Fr():0;return kr.open(e,t,o).fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},ha:function(r,e,t){try{for(var n=0,o=0;o<e;o++){var a=r+8*o,s=b[a>>2],i=E[a+4>>1],u=32,c=kr.getStream(s);c&&(u=c.stream_ops.poll?c.stream_ops.poll(c,-1):5),(u&=24|i)&&n++,E[a+6>>1]=u}return n}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},Z:function(r,e,t,n){try{if(e=Or.getStr(e),e=Or.calculateAt(r,e),n<=0)return-28;var o=kr.readlink(e),a=Math.min(n,ur(o)),s=y[t+a];return Mr(o,t,n+1),y[t+a]=s,a}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},U:function(r,e,t,n,o,a){try{var s=_r(r),i=s.sock_ops.recvmsg(s,t);return i?(o&&Sr(o,s.family,Cr.lookup_name(i.addr),i.port,a),g.set(i.buffer,e),i.buffer.byteLength):0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},T:function(r,e,t,n,o,a){try{var s=_r(r);if(!o)return kr.write(s.stream,y,e,t);var i=Dr(o,a);return s.sock_ops.sendmsg(s,y,e,t,i.addr,i.port)}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},S:function(r,e,t){try{return br.createSocket(r,e,t).stream.fd}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},na:function(r,e){try{return r=Or.getStr(r),Or.writeStat(e,kr.stat(r))}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return-r.errno}},X:()=>M(""),Q:(r,e,t,n,o)=>{e=Rr(e);const a=0n===n;let s=r=>r;if(a){const r=8*t;s=e=>BigInt.asUintN(r,e),o=s(o)}Lr(r,{name:e,fromWireType:s,toWireType:(r,e)=>("number"==typeof e&&(e=BigInt(e)),e),readValueFromPointer:Ur(e,t,!a),destructorFunction:null})},ua:(r,e,t,n)=>{Lr(r,{name:e=Rr(e),fromWireType:function(r){return!!r},toWireType:function(r,e){return e?t:n},readValueFromPointer:function(r){return this.fromWireType(g[r])},destructorFunction:null})},L:(r,e,t,n,o,a,s,i,u,c,l,d,f)=>{l=Rr(l),a=ye(o,a),i&&=ye(s,i),c&&=ye(u,c),f=ye(d,f);var h=(r=>{var e=(r=r.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return e>=48&&e<=57?`_${r}`:r})(l);Qr(h,function(){ke(`Cannot construct ${l} due to unbound types`,[n])}),be([r,e,t],n?[n]:[],e=>{var t,o;e=e[0],o=n?(t=e.registeredClass).instancePrototype:Yr.prototype;var s=Kr(l,function(...r){if(Object.getPrototypeOf(this)!==u)throw new Wr(`Use 'new' to construct ${l}`);if(void 0===d.constructor_body)throw new Wr(`${l} has no accessible constructor`);var e=d.constructor_body[r.length];if(void 0===e)throw new Wr(`Tried to invoke ctor of ${l} with invalid number of parameters (${r.length}) - expected (${Object.keys(d.constructor_body).toString()}) parameters instead!`);return e.apply(this,r)}),u=Object.create(o,{constructor:{value:s}});s.prototype=u;var d=new re(l,s,u,f,t,a,i,c);d.baseClass&&(d.baseClass.__derivedClasses??=[],d.baseClass.__derivedClasses.push(d));var p=new pe(l,d,!0,!1,!1),m=new pe(l+"*",d,!1,!1,!1),v=new pe(l+" const*",d,!1,!0,!1);return Zr[r]={pointerType:m,constPointerType:v},me(h,s),[p,m,v]})},H:(r,e,t,n,o,a)=>{var s=_e(e,t);o=ye(n,o),be([],[r],r=>{var t=`constructor ${(r=r[0]).name}`;if(void 0===r.registeredClass.constructor_body&&(r.registeredClass.constructor_body=[]),void 0!==r.registeredClass.constructor_body[e-1])throw new Wr(`Cannot register multiple constructors with identical number of parameters (${e-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[e-1]=()=>{ke(`Cannot construct ${r.name} due to unbound types`,s)},be([],s,n=>(n.splice(1,0,null),r.registeredClass.constructor_body[e-1]=Se(t,n,null,o,a),[])),[]})},v:(r,e,t,n,o,a,s,i,u,c)=>{var l=_e(t,n);e=Rr(e),e=Ve(e),a=ye(o,a,u),be([],[r],r=>{var n=`${(r=r[0]).name}.${e}`;function o(){ke(`Cannot call ${n} due to unbound types`,l)}e.startsWith("@@")&&(e=Symbol[e.substring(2)]),i&&r.registeredClass.pureVirtualFunctions.push(e);var c=r.registeredClass.instancePrototype,d=c[e];return void 0===d||void 0===d.overloadTable&&d.className!==r.name&&d.argCount===t-2?(o.argCount=t-2,o.className=r.name,c[e]=o):(Jr(c,e,n),c[e].overloadTable[t-2]=o),be([],l,o=>{var i=Se(n,o,r,a,s,u);return void 0===c[e].overloadTable?(i.argCount=t-2,c[e]=i):c[e].overloadTable[t-2]=i,[]}),[]})},sa:r=>Lr(r,Ke),P:(r,e,t)=>{Lr(r,{name:e=Rr(e),fromWireType:r=>r,toWireType:(r,e)=>e,readValueFromPointer:Ze(e,t),destructorFunction:null})},E:(r,e,t,n,o,a,s,i)=>{var u=_e(e,t);r=Rr(r),r=Ve(r),o=ye(n,o,s),Qr(r,function(){ke(`Cannot call ${r} due to unbound types`,u)},e-1),be([],u,t=>{var n=[t[0],null].concat(t.slice(1));return me(r,Se(r,n,null,o,a,s),e-1),[]})},t:(r,e,t,n,o)=>{e=Rr(e);let a=r=>r;if(0===n){var s=32-8*t;a=r=>r<<s>>>s,o=a(o)}Lr(r,{name:e,fromWireType:a,toWireType:(r,e)=>e,readValueFromPointer:Ur(e,t,0!==n),destructorFunction:null})},p:(r,e,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][e];function o(r){var e=_[r>>2],t=_[r+4>>2];return new n(y.buffer,t,e)}Lr(r,{name:t=Rr(t),fromWireType:o,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},ta:(r,e)=>{Lr(r,{name:e=Rr(e),fromWireType(r){var e,t=_[r>>2];return e=Nr(r+4,t,!0),Fe(r),e},toWireType(r,e){var t;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n="string"==typeof e;n||ArrayBuffer.isView(e)&&1==e.BYTES_PER_ELEMENT||zr("Cannot pass non-string to std::string"),t=n?ur(e):e.length;var o=Te(4+t+1),a=o+4;return _[o>>2]=t,n?Mr(e,a,t+1):g.set(e,a),null!==r&&r.push(Fe,o),o},readValueFromPointer:se,destructorFunction(r){Fe(r)}})},D:(r,e,t)=>{var n,o,a;t=Rr(t),2===e?(n=Qe,o=rt,a=et):(n=tt,o=nt,a=ot),Lr(r,{name:t,fromWireType:r=>{var t=_[r>>2],o=n(r+4,t*e,!0);return Fe(r),o},toWireType:(r,n)=>{"string"!=typeof n&&zr(`Cannot pass non-string to C++ string type ${t}`);var s=a(n),i=Te(4+s+e);return _[i>>2]=s/e,o(n,i+4,s+e),null!==r&&r.push(Fe,i),i},readValueFromPointer:se,destructorFunction(r){Fe(r)}})},va:(r,e)=>{Lr(r,{isVoid:!0,name:e=Rr(e),fromWireType:()=>{},toWireType:(r,e)=>{}})},ia:function(r,e){r=it(r);var t=new Date(1e3*r);b[e>>2]=t.getSeconds(),b[e+4>>2]=t.getMinutes(),b[e+8>>2]=t.getHours(),b[e+12>>2]=t.getDate(),b[e+16>>2]=t.getMonth(),b[e+20>>2]=t.getFullYear()-1900,b[e+24>>2]=t.getDay();var n=0|(r=>{var e;return((e=r.getFullYear())%4!=0||e%100==0&&e%400!=0?st:at)[r.getMonth()]+r.getDate()-1})(t);b[e+28>>2]=n,b[e+36>>2]=-60*t.getTimezoneOffset();var o=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=o.getTimezoneOffset(),i=0|(a!=s&&t.getTimezoneOffset()==Math.min(s,a));b[e+32>>2]=i},ja:(r,e,t,n)=>{var o=(new Date).getFullYear(),a=new Date(o,0,1),s=new Date(o,6,1),i=a.getTimezoneOffset(),u=s.getTimezoneOffset(),c=Math.max(i,u);_[r>>2]=60*c,b[e>>2]=Number(i!=u);var l=r=>{var e=r>=0?"-":"+",t=Math.abs(r);return`UTC${e}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},d=l(i),f=l(u);u<i?(Mr(d,t,17),Mr(f,n,17)):(Mr(d,n,17),Mr(f,t,17))},ea:function(r,e,t){if(!((n=r)>=0&&n<=3))return 28;var n,o;o=0===r?ct():ut();var a=Math.round(1e3*o*1e3);return S[t>>3]=BigInt(a),0},ra:ct,M:ut,fa:r=>{var e=g.length,t=2147483648;if((r>>>=0)>t)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,r+100663296);var a=Math.min(t,hr(Math.max(r,o),65536));if(lt(a))return!0}return!1},$:(r,e)=>{var t=0,n=0;for(var o of ft()){var a=e+t;_[r+n>>2]=a,t+=Mr(o,a,1/0)+1,n+=4}return 0},aa:(r,e)=>{var t=ft();_[r>>2]=t.length;var n=0;for(var o of t)n+=ur(o)+1;return _[e>>2]=n,0},wa:pt,y:function(r){try{var e=Or.getStreamFromFD(r);return kr.close(e),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},pa:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var s=_[e>>2],i=_[e+4>>2];e+=8;var u=kr.read(r,y,s,i,n);if(u<0)return-1;if(o+=u,u<i)break}return o})(Or.getStreamFromFD(r),e,t);return _[n>>2]=o,0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},ka:function(r,e,t,n){e=it(e);try{if(isNaN(e))return 61;var o=Or.getStreamFromFD(r);return kr.llseek(o,e,t),S[n>>3]=BigInt(o.position),o.getdents&&0===e&&0===t&&(o.getdents=null),0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},N:function(r,e,t,n){try{var o=((r,e,t,n)=>{for(var o=0,a=0;a<t;a++){var s=_[e>>2],i=_[e+4>>2];e+=8;var u=kr.write(r,y,s,i,n);if(u<0)return-1;if(o+=u,u<i)break}return o})(Or.getStreamFromFD(r),e,t);return _[n>>2]=o,0}catch(r){if(void 0===kr||"ErrnoError"!==r.name)throw r;return r.errno}},xa:(r,e,t,n)=>{var o,a=0,s=0,i=0,u=0,c=0,l=0;function d(r,e,t,n,o,a){var s,i,u;return i=10===r?28:16,o=10===r?Ar(o):Tr(o),s=Te(i),Sr(s,r,o,a),u=Te(32),b[u+4>>2]=r,b[u+8>>2]=e,b[u+12>>2]=t,_[u+24>>2]=n,_[u+20>>2]=s,b[u+16>>2]=10===r?28:16,b[u+28>>2]=0,u}if(t&&(i=b[t>>2],u=b[t+4>>2],c=b[t+8>>2],l=b[t+12>>2]),c&&!l&&(l=2===c?17:6),!c&&l&&(c=17===l?2:1),0===l&&(l=6),0===c&&(c=1),!r&&!e)return-2;if(-1088&i)return-1;if(0!==t&&2&b[t>>2]&&!r)return-1;if(32&i)return-2;if(0!==c&&1!==c&&2!==c)return-7;if(0!==u&&2!==u&&10!==u)return-6;if(e&&(e=Nr(e),s=parseInt(e,10),isNaN(s)))return 1024&i?-2:-8;if(!r)return 0===u&&(u=2),1&i||(a=2===u?Ne(2130706433):[0,0,0,Ne(1)]),o=d(u,c,l,null,a,s),_[n>>2]=o,0;if(r=Nr(r),null!==(a=$r(r)))if(0===u||2===u)u=2;else{if(!(10===u&&8&i))return-2;a=[0,0,Ne(65535),a],u=10}else if(null!==(a=Pr(r))){if(0!==u&&10!==u)return-2;u=10}return null!=a?(o=d(u,c,l,r,a,s),_[n>>2]=o,0):4&i?-2:(r=Cr.lookup_name(r),a=$r(r),0===u?u=2:10===u&&(a=[0,0,Ne(65535),a]),o=d(u,c,l,null,a,s),_[n>>2]=o,0)},F:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},G:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},m:function(r){var e=G();try{return we(r)()}catch(r){if(V(e),r!==r+0)throw r;Me(1,0)}},c:function(r,e){var t=G();try{return we(r)(e)}catch(r){if(V(t),r!==r+0)throw r;Me(1,0)}},e:function(r,e,t){var n=G();try{return we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},k:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},i:function(r,e,t,n,o){var a=G();try{return we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;Me(1,0)}},ba:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},x:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},r:function(r,e,t,n,o,a,s){var i=G();try{return we(r)(e,t,n,o,a,s)}catch(r){if(V(i),r!==r+0)throw r;Me(1,0)}},I:function(r,e,t,n,o,a,s,i){var u=G();try{return we(r)(e,t,n,o,a,s,i)}catch(r){if(V(u),r!==r+0)throw r;Me(1,0)}},A:function(r,e,t,n,o,a,s,i,u,c,l,d){var f=G();try{return we(r)(e,t,n,o,a,s,i,u,c,l,d)}catch(r){if(V(f),r!==r+0)throw r;Me(1,0)}},J:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},za:function(r,e,t,n){var o=G();try{return we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},ya:function(r,e,t,n,o,a){var s=G();try{return we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},B:function(r,e,t,n,o){var a=G();try{return we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;return Me(1,0),0n}},h:function(r){var e=G();try{we(r)()}catch(r){if(V(e),r!==r+0)throw r;Me(1,0)}},n:function(r,e){var t=G();try{we(r)(e)}catch(r){if(V(t),r!==r+0)throw r;Me(1,0)}},R:function(r,e,t){var n=G();try{we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},d:function(r,e,t){var n=G();try{we(r)(e,t)}catch(r){if(V(n),r!==r+0)throw r;Me(1,0)}},j:function(r,e,t,n){var o=G();try{we(r)(e,t,n)}catch(r){if(V(o),r!==r+0)throw r;Me(1,0)}},u:function(r,e,t,n,o){var a=G();try{we(r)(e,t,n,o)}catch(r){if(V(a),r!==r+0)throw r;Me(1,0)}},Y:function(r,e,t,n,o,a){var s=G();try{we(r)(e,t,n,o,a)}catch(r){if(V(s),r!==r+0)throw r;Me(1,0)}},q:function(r,e,t,n,o,a,s,i){var u=G();try{we(r)(e,t,n,o,a,s,i)}catch(r){if(V(u),r!==r+0)throw r;Me(1,0)}},w:function(r,e,t,n,o,a,s,i,u,c,l){var d=G();try{we(r)(e,t,n,o,a,s,i,u,c,l)}catch(r){if(V(d),r!==r+0)throw r;Me(1,0)}},z:function(r,e,t,n,o,a,s,i,u,c,l,d,f,h,p,m){var v=G();try{we(r)(e,t,n,o,a,s,i,u,c,l,d,f,h,p,m)}catch(r){if(V(v),r!==r+0)throw r;Me(1,0)}}};return $t=await async function(){function r(r,e){return function(r){Te=a._malloc=r.Da,Ae=r.Ea,De=r.Fa,Fe=a._free=r.Ga,xe=r.Ha,Ne=r.Ia,Oe=r.Ja,Me=r.Ka,Re=r.La,Be=r.Ma,je=r.Na,Ie=r.Oa,We=r.Pa,ze=r.Qa,Le=r.Ra,Ue=r.Sa,qe=r.Aa,He=r.Ca}($t=r.exports),O(),$t}var e={a:Pt};if(a.instantiateWasm)return new Promise((t,n)=>{a.instantiateWasm(e,(e,n)=>{t(r(e))})});T??=R();var t=function(e){return r(e.instance)}(await j(m,T,e));return t}(),function r(){function e(){a.calledRun=!0,F||(N=!0,br.root=kr.mount(br,{},null),a.noFSInit||kr.initialized||kr.init(),$t.Ba(),kr.ignorePermissions=!1,v?.(a),a.onRuntimeInitialized?.(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)L(a.postRun.shift());W(z)}())}wr>0?yr=r:(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)q(a.preRun.shift());W(U)}(),wr>0?yr=r:a.setStatus?(a.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>a.setStatus(""),1),e()},1)):e())}(),N?a:new Promise((r,e)=>{v=r,w=e})});n.exports=a,n.exports.default=a}(o);var a=n(o.exports);let s;async function i(){return s||(s=await a()),s}class u{module;constructor(r){this.module=r}static async create(){const r=await i();return new u(r)}version(){return this.module.XGBoostVersion()}createBooster(){return new this.module.Booster}createDMatrix(r,e,t,n=NaN,o){const a=4*r.length,s=this.module._malloc(a);let i;try{this.module.HEAPF32.set(r,s>>2),i=new this.module.DMatrix(s,e,t,n)}finally{this.module._free(s)}if(o){const r=this.module._malloc(4*o.length);try{this.module.HEAPF32.set(o,r>>2),i.setFloatInfo("label",r,o.length)}finally{this.module._free(r)}}return i}async train(r,e,t){const n=this.createBooster();for(const[r,t]of Object.entries(e))n.setParam(r,t);for(let e=0;e<t;e++)n.updateOneIter(e,r);return n}}exports.XGBoost=u,exports.init=i;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('node:fs');
|
|
4
|
+
var require$$1 = require('node:crypto');
|
|
5
|
+
var require$$2 = require('ws');
|
|
6
|
+
|
|
7
|
+
function getDefaultExportFromCjs (x) {
|
|
8
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
var xgboost_wasm = {exports: {}};
|
|
12
|
+
|
|
13
|
+
(function (module, exports$1) {
|
|
14
|
+
var XGBoostWasm=(()=>{var _scriptName=globalThis.document?.currentScript?.src;return async function(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(typeof __filename!="undefined"){_scriptName=__filename;}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href;}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require$$0;scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/");}process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href;}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)};}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status);};xhr.onerror=reject;xhr.send(null);})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)};}}else;var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var isFileURI=filename=>filename.startsWith("file://");var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b);}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);}function initRuntime(){runtimeInitialized=true;SOCKFS.root=FS.mount(SOCKFS,{},null);if(!Module["noFSInit"]&&!FS.initialized)FS.init();wasmExports["Ha"]();FS.ignorePermissions=false;}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("xgboost_wasm.wasm")}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw "both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason);}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst));});})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports$1=receiveInstantiationResult(result);return exports$1}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status;}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module);}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":return HEAP8[ptr];case "i8":return HEAP8[ptr];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":return HEAP64[ptr>>3];case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];case "*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`);}}var noExitRuntime=true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":HEAP8[ptr]=value;break;case "i8":HEAP8[ptr]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":HEAP64[ptr>>3]=BigInt(value);break;case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;case "*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`);}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var exceptionCaught=[];var uncaughtExceptionCount=0;var ___cxa_begin_catch=ptr=>{var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--;}info.set_rethrown(false);exceptionCaught.push(info);return ___cxa_get_exception_ptr(ptr)};var exceptionLast=0;var ___cxa_end_catch=()=>{_setThrew(0,0);var info=exceptionCaught.pop();___cxa_decrement_exception_refcount(info.excPtr);exceptionLast=0;};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;}set_type(type){HEAPU32[this.ptr+4>>2]=type;}get_type(){return HEAPU32[this.ptr+4>>2]}set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor;}get_destructor(){return HEAPU32[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught;}get_caught(){return HEAP8[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown;}get_rethrown(){return HEAP8[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);}set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr;}get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2]}}var setTempRet0=val=>__emscripten_tempret_set(val);var findMatchingCatch=args=>{var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var caughtType of args){if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown};var ___cxa_find_matching_catch_2=()=>findMatchingCatch([]);var ___cxa_find_matching_catch_3=arg0=>findMatchingCatch([arg0]);var ___cxa_rethrow=()=>{var info=exceptionCaught.pop();if(!info){abort("no exception to throw");}var ptr=info.excPtr;if(!info.get_rethrown()){exceptionCaught.push(info);info.set_rethrown(true);info.set_caught(false);uncaughtExceptionCount++;}___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;throw exceptionLast};var ___cxa_rethrow_primary_exception=ptr=>{if(!ptr)return;var info=new ExceptionInfo(ptr);exceptionCaught.push(info);info.set_rethrown(true);___cxa_rethrow();};var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);___cxa_increment_exception_refcount(ptr);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var ___cxa_uncaught_exceptions=()=>uncaughtExceptionCount;var ___resumeException=ptr=>{if(!exceptionLast){exceptionLast=ptr;}throw exceptionLast};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require$$1;return view=>nodeCrypto.randomFillSync(view)}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view);};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1);}else if(last===".."){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}if(allowAboveRoot){for(;up;up--){parts.unshift("..");}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path=".";}if(path&&trailingSlash){path+="/";}return (isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return "."}if(dir){dir=dir.slice(0,-1);}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return ""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path);}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return (resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return [];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..");}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2;}else {u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63;}if(u0<65536){str+=String.fromCharCode(u0);}else {var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}}return str};var FS_stdin_getChar_buffer=[];var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++;}else if(c<=2047){len+=2;}else if(c>=55296&&c<=57343){len+=4;++i;}else {len+=3;}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.codePointAt(i);if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u;}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63;}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;}else {if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++;}}heap[outIdx]=0;return outIdx-startIdx};var intArrayFromString=(stringy,dontAddNull,length)=>{var len=lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE);}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8");}}else if(globalThis.window?.prompt){result=window.prompt("Input: ");if(result!==null){result+="\n";}}else;if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result);}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops);},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false;},close(stream){stream.tty.ops.fsync(stream.tty);},fsync(stream){stream.tty.ops.fsync(stream.tty);},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty);}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i]);}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[];}else {if(val!=0)tty.output.push(val);}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[];}},ioctl_tcgets(tty){return {c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return [24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[];}else {if(val!=0)tty.output.push(val);}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[];}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={};}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null;}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream;}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream;}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime;}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;}else {var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));}node.usedBytes=newSize;}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096;}else if(FS.isFile(node.mode)){attr.size=node.usedBytes;}else if(FS.isLink(node.mode)){attr.size=node.link.length;}else {attr.size=0;}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of ["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key];}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size);}},lookup(parent,name){if(!MEMFS.doesNotExistError){MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";}throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node);}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now();},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},readdir(node){return [".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset);}else {for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i];}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false;}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position);}else {for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i];}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes;}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset;}else {allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length);}else {contents=Array.prototype.slice.call(contents,position,position+length);}}HEAP8.set(contents,ptr);}}return {ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);};var preloadPlugins=[];var FS_handledByPreloadPlugin=async(byteArray,fullname)=>{if(typeof Browser!="undefined")Browser.init();for(var plugin of preloadPlugins){if(plugin["canHandle"](fullname)){return plugin["handle"](byteArray,fullname)}}return byteArray};var FS_preloadFile=async(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;addRunDependency();try{var byteArray=url;if(typeof url=="string"){byteArray=await asyncLoad(url);}byteArray=await FS_handledByPreloadPlugin(byteArray,fullname);preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn);}}finally{removeRunDependency();}};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{FS_preloadFile(parent,name,url,canRead,canWrite,dontCreateFile,canOwn,preFinish).then(onload).catch(onerror);};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno;}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val;}get isRead(){return (this.flags&2097155)!==1}get isWrite(){return (this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val;}get position(){return this.shared.position}set position(val){this.shared.position=val;}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this;}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now();}get read(){return (this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode;}get write(){return (this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode;}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path;}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");nlinks--;continue linkloop}else {current=current.parent;}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i]);}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return {path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root;}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link;}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return {path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent;}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0;}return (parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next;}else {var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next;}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node);},isRoot(node){return node===node.parent},isMountpoint(node){return !!node.mounted},isFile(mode){return (mode&61440)===32768},isDir(mode){return (mode&61440)===16384},isLink(mode){return (mode&61440)===40960},isChrdev(mode){return (mode&61440)===8192},isBlkdev(mode){return (mode&61440)===24576},isFIFO(mode){return (mode&61440)===4096},isSocket(mode){return (mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}if(perms.includes("w")&&!(node.mode&146)){return 2}if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name);}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else if(FS.isDir(node.mode)){return 31}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}var mode=FS.flagsToPermissionString(flags);if(FS.isDir(node.mode)){if(mode!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,mode)},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd();}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null;},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr);},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream);},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts);}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false;}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null);}}for(var mount of mounts){if(mount.type.syncfs){mount.type.syncfs(mount,populate,done);}else {done(null);}}},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot;}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount);}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);for(var[hash,current]of Object.entries(FS.nameTable)){while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current);}current=next;}}node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1);},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root));}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode);}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438;}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir;}catch(e){throw e}finally{FS.hashAddNode(old_node);}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&-4096,ctime:Date.now(),dontFollow});},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else {node=path;}FS.doChmod(null,node,mode,dontFollow);},lchmod(path,mode){FS.chmod(path,mode,true);},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false);},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow});},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else {node=path;}FS.doChown(null,node,dontFollow);},lchown(path,uid,gid){FS.chown(path,uid,gid,true);},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false);},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()});},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;}else {node=path;}FS.doTruncate(null,node,len);},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len);},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime});},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768;}else {mode=0;}var node;var isDirPath;if(typeof path=="object"){node=path;}else {isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path;}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else {node=FS.mknod(path,mode|511,0);created=true;}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=-513;}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0);}flags&=-131713;var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream);}if(created){FS.chmod(node,mode&511);}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream);}}catch(e){throw e}finally{FS.closeStream(stream.fd);}stream.fd=null;},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2);}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){abort(`Invalid encoding type "${opts.encoding}"`);}var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){buf=UTF8ArrayToString(buf);}FS.close(stream);return buf},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){data=new Uint8Array(intArrayFromString(data));}if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn);}else {abort("Unsupported data type");}FS.close(stream);},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path;},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user");},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength;}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp");},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd");},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input);}else {FS.symlink("/dev/tty","/dev/stdin");}if(output){FS.createDevice("/dev","stdout",null,output);}else {FS.symlink("/dev/tty","/dev/stdout");}if(error){FS.createDevice("/dev","stderr",null,error);}else {FS.symlink("/dev/tty1","/dev/stderr");}FS.open("/dev/stdin",0);FS.open("/dev/stdout",1);FS.open("/dev/stderr",1);},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS};},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error);},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream);}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path;}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/";}catch(e){ret.error=e.errno;}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current);}catch(e){if(e.errno!=20)throw e}parent=current;}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent;}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr;}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode);}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false;},close(stream){if(output?.buffer?.length){output(10);}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input();}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i]);}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(globalThis.XMLHttpRequest){abort("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");}else {try{obj.contents=readBinary(obj.url);}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter;}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)abort("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)abort("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined");}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))abort("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"")};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end);}if(typeof lazyArray.chunks[chunkNum]=="undefined")abort("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed");}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true;}get length(){if(!this.lengthKnown){this.cacheLength();}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength();}return this._chunkSize}}if(globalThis.XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)abort("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray};}else {var properties={isDevice:false,url};}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents;}else if(properties.url){node.contents=null;node.url=properties.url;}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};for(const[key,fn]of Object.entries(node.stream_ops)){stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)};}function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}else {for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i);}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return {ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SOCKFS={websocketArgs:{},callbacks:{},on(event,callback){SOCKFS.callbacks[event]=callback;},emit(event,param){SOCKFS.callbacks[event]?.(param);},mount(mount){SOCKFS.websocketArgs=Module["websocket"]||{};(Module["websocket"]??={})["on"]=SOCKFS.on;return FS.createNode(null,"/",16895,0)},createSocket(family,type,protocol){if(family!=2){throw new FS.ErrnoError(5)}type&=-526337;if(type!=1&&type!=2){throw new FS.ErrnoError(28)}var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family,type,protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close(stream){var sock=stream.node.sock;sock.sock_ops.close(sock);}},nextname(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0;}return `socket[${SOCKFS.nextname.current++}]`},websocket_sock_ops:{createPeer(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null;}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort;}else {var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10);}}else {try{var url="ws://".replace("#","//");var subProtocols="binary";var opts=undefined;if(SOCKFS.websocketArgs["url"]){url=SOCKFS.websocketArgs["url"];}if(SOCKFS.websocketArgs["subprotocol"]){subProtocols=SOCKFS.websocketArgs["subprotocol"];}else if(SOCKFS.websocketArgs["subprotocol"]===null){subProtocols="null";}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/");}if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols;}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws");}else {WebSocketConstructor=WebSocket;}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer";}catch(e){throw new FS.ErrnoError(23)}}var peer={addr,port,socket:ws,msg_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]));}return peer},getPeer(sock,addr,port){return sock.peers[addr+":"+port]},addPeer(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer;},removePeer(sock,peer){delete sock.peers[peer.addr+":"+peer.port];},handlePeerEvents(sock,peer){var first=true;var handleOpen=function(){sock.connecting=false;SOCKFS.emit("open",sock.stream.fd);try{var queued=peer.msg_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.msg_send_queue.shift();}}catch(e){peer.socket.close();}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data);}else {if(data.byteLength==0){return}data=new Uint8Array(data);}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data});SOCKFS.emit("message",sock.stream.fd);}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer);});peer.socket.on("close",function(){SOCKFS.emit("close",sock.stream.fd);});peer.socket.on("error",function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"]);});}else {peer.socket.onopen=handleOpen;peer.socket.onclose=function(){SOCKFS.emit("close",sock.stream.fd);};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data);};peer.socket.onerror=function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"]);};}},poll(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1;}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4;}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){if(sock.connecting){mask|=4;}else {mask|=16;}}return mask},ioctl(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length;}HEAP32[arg>>2]=bytes;return 0;case 21537:var on=HEAP32[arg>>2];if(on){sock.stream.flags|=2048;}else {sock.stream.flags&=-2049;}return 0;default:return 28}},close(sock){if(sock.server){try{sock.server.close();}catch(e){}sock.server=null;}for(var peer of Object.values(sock.peers)){try{peer.socket.close();}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer);}return 0},bind(sock,addr,port){if(typeof sock.saddr!="undefined"||typeof sock.sport!="undefined"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null;}try{sock.sock_ops.listen(sock,0);}catch(e){if(!(e.name==="ErrnoError"))throw e;if(e.errno!==138)throw e}}},connect(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!="undefined"&&typeof sock.dport!="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else {throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;sock.connecting=true;},listen(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}if(sock.server){throw new FS.ErrnoError(28)}var WebSocketServer=require$$2.Server;var host=sock.saddr;sock.server=new WebSocketServer({host,port:sock.sport});SOCKFS.emit("listen",sock.stream.fd);sock.server.on("connection",function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock);SOCKFS.emit("connection",newsock.stream.fd);}else {SOCKFS.websocket_sock_ops.createPeer(sock,ws);SOCKFS.emit("connection",sock.stream.fd);}});sock.server.on("close",function(){SOCKFS.emit("close",sock.stream.fd);sock.server=null;});sock.server.on("error",function(error){sock.error=23;SOCKFS.emit("error",[sock.stream.fd,sock.error,"EHOSTUNREACH: Host is unreachable"]);});},accept(listensock){if(!listensock.server||!listensock.pending.length){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport;}else {addr=sock.saddr||0;port=sock.sport||0;}return {addr,port}},sendmsg(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport;}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else {addr=sock.daddr;port=sock.dport;}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer;}var data=buffer.slice(offset,offset+length);if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(sock.type===2){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);}}dest.msg_send_queue.push(data);return length}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}throw new FS.ErrnoError(6)}throw new FS.ErrnoError(6)}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued);}return res}}};var getSocketFromFD=fd=>{var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket};var inetPton4=str=>{var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp;}return (b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0};var inetPton6=str=>{var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return [0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:");}else {str=str.replace("::",":Z:");}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=Number(words[words.length-4])+Number(words[words.length-3])*256;words[words.length-3]=Number(words[words.length-2])+Number(words[words.length-1])*256;words=words.slice(0,words.length-2);}else {words=str.split(":");}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]=="string"){if(words[w]==="Z"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0;}offset=z-1;}else {parts[w+offset]=_htons(parseInt(words[w],16));}}else {parts[w+offset]=words[w];}}return [parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]};var writeSockaddr=(sa,family,addr,port,addrlen)=>{switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16;}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28;}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0};var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name];}else {var id=DNS.address_map.id++;addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr;}return addr},lookup_addr(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___syscall_accept4(fd,addr,addrlen,flags,d1,d2){try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen);}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}var inetNtop4=addr=>(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255);var inetNtop6=ints=>{var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0;}lastzero=word;len++;}if(len>longest){longest=len;zstart=word-longest+1;}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=":";if(zstart===0)str+=":";}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?":":"";}return str};var readSockaddr=(sa,salen)=>{var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return {errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return {errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return {errno:5}}return {family,addr,port}};var getSocketAddress=(addrp,addrlen)=>{var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info};function ___syscall_connect(fd,addr,addrlen,d1,d2,d3){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var SYSCALLS={calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd();}else {var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path;}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAPU32[buf>>2]=stat.dev;HEAPU32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAPU32[buf+12>>2]=stat.uid;HEAPU32[buf+16>>2]=stat.gid;HEAPU32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAPU32[buf+4>>2]=stats.bsize;HEAPU32[buf+60>>2]=stats.bsize;HEAP64[buf+8>>3]=BigInt(stats.blocks);HEAP64[buf+16>>3]=BigInt(stats.bfree);HEAP64[buf+24>>3]=BigInt(stats.bavail);HEAP64[buf+32>>3]=BigInt(stats.files);HEAP64[buf+40>>3]=BigInt(stats.ffree);HEAPU32[buf+48>>2]=stats.fsid;HEAPU32[buf+64>>2]=stats.flags;HEAPU32[buf+56>>2]=stats.namelen;},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags);},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return -28}while(FS.streams[arg]){arg++;}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return -28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_fstat64(fd,buf){try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return -28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return -68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx<endIdx;idx++){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4;}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4;}else {var child;try{child=FS.lookupNode(stream.node,name);}catch(e){if(e?.errno===28){continue}throw e}id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8;}HEAP64[dirp+pos>>3]=BigInt(id);HEAP64[dirp+pos+8>>3]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_getsockopt(fd,level,optname,optval,optlen,d1){try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return -50}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return -59;return 0}case 21505:{if(!stream.tty)return -59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0;}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return -59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return -59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17]);}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return -59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return -59;return -28}case 21537:case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return -59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1];}return 0}case 21524:{if(!stream.tty)return -59;return 0}case 21515:{if(!stream.tty)return -59;return 0}default:return -28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_poll(fds,nfds,timeout){try{var count=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>2];var events=HEAP16[pollfd+4>>1];var flags=32;var stream=FS.getStream(fd);if(stream){if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream,-1);}else {flags=5;}}flags&=events|8|16;if(flags)count++;HEAP16[pollfd+6>>1]=flags;}return count}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return -28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen);}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);if(!addr){return FS.write(sock.stream,HEAP8,message,length)}var dest=getSocketAddress(addr,addr_len);return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return -e.errno}}var __abort_js=()=>abort("");var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch);}};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=class BindingError extends Error{constructor(message){super(message);this.name="BindingError";}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`);}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else {throwBindingError(`Cannot register type '${name}' twice`);}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb());}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0n;let fromWireType=value=>value;if(isUnsignedType){const bitSize=size*8;fromWireType=value=>BigInt.asUintN(bitSize,value);maxRange=fromWireType(maxRange);}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>{if(typeof value=="number"){value=BigInt(value);}return value},readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null});};var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:function(wt){return !!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},readValueFromPointer:function(pointer){return this.fromWireType(HEAPU8[pointer])},destructorFunction:null});};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted");};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr);}else {$$.ptrType.registeredClass.rawDestructor($$.ptr);}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$);}};var attachFinalizer=handle=>{if(!globalThis.FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$);});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle);}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass;}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass;}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else {var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined;}},isDeleted(){return !this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this);}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion");}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto["delete"];}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`);}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`);}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);}Module[name].overloadTable[numArguments]=value;}else {Module[name]=value;Module[name].argCount=numArguments;}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return `_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[];}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass;}return ptr};var embindRepr=v=>{if(v===null){return "null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else {return ""+v}};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`);}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`);}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr);}return ptr}else {return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`);}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal");}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`);}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr;}else {var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr);}}break;default:throwBindingError("Unsupported sharing policy");}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`);}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this.fromWireType(HEAPU32[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined");}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass;}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=class InternalError extends Error{constructor(message){super(message);this.name="InternalError";}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType");}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified");}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else {var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else {return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType;}else {toType=registeredPointerRecord.pointerType;}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else {return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr);}return ptr},destructor(ptr){this.rawDestructor?.(ptr);},readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType});};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this.toWireType=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}else {this.toWireType=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null;}}else {this.toWireType=genericPointerToWireType;}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol");}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value;}else {Module[name]=value;Module[name].argCount=numArguments;}};var wasmTableMirror=[];var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);}return func};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=AsciiToString(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=AsciiToString(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;for(let[i,dt]of dependentTypes.entries()){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else {unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}}if(0===unregisteredTypes.length){onComplete(typeConverters);}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=AsciiToString(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType]);});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype;}else {basePrototype=ClassHandle.prototype;}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass);}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return [referenceConverter,pointerConverter,constPointerConverter]});};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2]);}return array};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired");}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`);}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody=`return function (${argsList}) {\n`;if(needsDestructorStack){invokerFnBody+="var destructors = [];\n";}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = toClassParamWire(${dtorStack}, this);\n`;}for(var i=0;i<argCount;++i){var argName=`toArg${i}Wire`;invokerFnBody+=`var arg${i}Wired = ${argName}(${dtorStack}, arg${i});\n`;args1.push(argName);}invokerFnBody+=(returns||isAsync?"var rv = ":"")+`invoker(${argsListWired});\n`;if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else {for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\n`;args1.push(`${paramName}_dtor`);}}}if(returns){invokerFnBody+="var ret = fromRetWire(rv);\n"+"return ret;\n";}invokerFnBody+="}\n";return new Function(args1,invokerFnBody)}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=!argTypes[0].isVoid;var retType=argTypes[0];var instType=argTypes[1];var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,retType.fromWireType.bind(retType),instType?.toWireType.bind(instType)];for(var i=2;i<argCount;++i){var argType=argTypes[i];closureArgs.push(argType.toWireType.bind(argType));}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction);}}}let invokerFactory=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=invokerFactory(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[];}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes);};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return []});return []});};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=AsciiToString(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)];}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName);}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes);}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler;}else {ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler;}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction;}else {proto[methodName].overloadTable[argCount-2]=memberFunction;}return []});return []});};var emval_freelist=[];var emval_handles=[0,1,,1,null,1,true,1,false,1];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle);}};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`);}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this.fromWireType(HEAPF32[pointer>>2])};case 8:return function(pointer){return this.fromWireType(HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null});};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=AsciiToString(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return []});};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=AsciiToString(name);const isUnsignedType=minRange===0;let fromWireType=value=>value;if(isUnsignedType){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift;maxRange=fromWireType(maxRange);}registerType(primitiveType,{name,fromWireType,toWireType:(destructors,value)=>value,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null});};var installIndexedIterator=(proto,sizeMethodName,getMethodName)=>{const makeIterator=(size,getValue)=>{let index=0;return {next(){if(index>=size){return {done:true}}const current=index;index++;const value=getValue(current);return {value,done:false}},[Symbol.iterator](){return this}}};if(!proto[Symbol.iterator]){proto[Symbol.iterator]=function(){const size=this[sizeMethodName]();return makeIterator(size,i=>this[getMethodName](i))};}};var __embind_register_iterable=(rawClassType,rawElementType,sizeMethodName,getMethodName)=>{sizeMethodName=AsciiToString(sizeMethodName);getMethodName=AsciiToString(getMethodName);whenDependentTypesAreResolved([],[rawClassType,rawElementType],types=>{const classType=types[0];installIndexedIterator(classType.registeredClass.instancePrototype,sizeMethodName,getMethodName);return []});};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=AsciiToString(name);registerType(rawType,{name,fromWireType:decodeMemoryView,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true});};var EmValOptionalType=Object.assign({optional:true},EmValType);var __embind_register_optional=(rawOptionalType,rawType)=>{registerType(rawOptionalType,EmValOptionalType);};var __embind_register_std_string=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;{str=UTF8ToString(payload,length,true);}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError("Cannot pass non-string to std::string");}if(valueIsOfTypeString){length=lengthBytesUTF8(value);}else {length=value.length;}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){{stringToUTF8(value,ptr,length+1);}}else {HEAPU8.set(value,ptr);}if(destructors!==null){destructors.push(_free,base);}return base},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr);}});};var UTF16Decoder=globalThis.TextDecoder?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead,ignoreNul)=>{var idx=ptr>>1;var endIdx=findStringEnd(HEAPU16,idx,maxBytesToRead/2,ignoreNul);if(endIdx-idx>16&&UTF16Decoder)return UTF16Decoder.decode(HEAPU16.subarray(idx,endIdx));var str="";for(var i=idx;i<endIdx;++i){var codeUnit=HEAPU16[i];str+=String.fromCharCode(codeUnit);}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2;}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead,ignoreNul)=>{var str="";var startIdx=ptr>>2;for(var i=0;!(i>=maxBytesToRead/4);i++){var utf32=HEAPU32[startIdx+i];if(!utf32&&!ignoreNul)break;str+=String.fromCodePoint(utf32);}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++;}HEAP32[outPtr>>2]=codePoint;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codePoint=str.codePointAt(i);if(codePoint>65535){i++;}len+=4;}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=AsciiToString(name);var decodeString,encodeString,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;}else {decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str=decodeString(value+4,length*charSize,true);_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`);}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr);}return ptr},readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr);}});};var __embind_register_void=(rawType,name)=>{name=AsciiToString(name);registerType(rawType,{isVoid:true,name,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined});};var emval_methodCallers=[];var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`);}return impl};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],`parameter ${i}`);}return a};var emval_returnValue=(toReturnWire,destructorsRef,handle)=>{var destructors=[];var result=toReturnWire(destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);}return result};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return AsciiToString(address)}return symbol};var __emval_create_invoker=(argCount,argTypesPtr,kind)=>{var GenericWireTypeSize=8;var[retType,...argTypes]=emval_lookupTypes(argCount,argTypesPtr);var toReturnWire=retType.toWireType.bind(retType);var argFromPtr=argTypes.map(type=>type.readValueFromPointer.bind(type));argCount--;var captures={toValue:Emval.toValue};var args=argFromPtr.map((argFromPtr,i)=>{var captureName=`argFromPtr${i}`;captures[captureName]=argFromPtr;return `${captureName}(args${i?"+"+i*GenericWireTypeSize:""})`});var functionBody;switch(kind){case 0:functionBody="toValue(handle)";break;case 2:functionBody="new (toValue(handle))";break;case 3:functionBody="";break;case 1:captures["getStringOrSymbol"]=getStringOrSymbol;functionBody="toValue(handle)[getStringOrSymbol(methodName)]";break}functionBody+=`(${args})`;if(!retType.isVoid){captures["toReturnWire"]=toReturnWire;captures["emval_returnValue"]=emval_returnValue;functionBody=`return emval_returnValue(toReturnWire, destructorsRef, ${functionBody})`;}functionBody=`return function (handle, methodName, destructorsRef, args) {\n${functionBody}\n}`;var invokerFunction=new Function(Object.keys(captures),functionBody)(...Object.values(captures));var functionName=`methodCaller<(${argTypes.map(t=>t.name)}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_invoke=(caller,handle,methodName,destructorsRef,args)=>emval_methodCallers[caller](handle,methodName,destructorsRef,args);var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle);};var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return `UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17);}else {stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17);}};var _emscripten_get_now=()=>performance.now();var _emscripten_date_now=()=>Date.now();var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_time_get(clk_id,ignored_precision,ptime){if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now();}else {now=_emscripten_get_now();}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var getHeapMax=()=>2147483648;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x];}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`);}getEnvStrings.strings=strings;}return getEnvStrings.strings};var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4;}return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1;}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true;}quit_(code,new ExitStatus(code));};var exitJS=(status,implicit)=>{_proc_exit(status);};var _exit=exitJS;function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return -1;ret+=curr;if(curr<len)break;}return ret};function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return -1;ret+=curr;if(curr<len){break}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _getaddrinfo=(node,service,hint,out)=>{var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);writeSockaddr(sa,family,addr,port);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAPU32[ai+24>>2]=canon;HEAPU32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28;}else {HEAP32[ai+16>>2]=16;}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2];}if(type&&!proto){proto=type===2?17:6;}if(!type&&proto){type=proto===17?2:1;}if(proto===0){proto=6;}if(type===0){type=1;}if(!node&&!service){return -2}if(flags&-1088){return -1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return -1}if(flags&32){return -2}if(type!==0&&type!==1&&type!==2){return -7}if(family!==0&&family!==2&&family!==10){return -6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return -2}return -8}}if(!node){if(family===0){family=2;}if((flags&1)===0){if(family===2){addr=_htonl(2130706433);}else {addr=[0,0,0,_htonl(1)];}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2;}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10;}else {return -2}}else {addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10;}else {return -2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>2]=ai;return 0}if(flags&4){return -2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2;}else if(family===10){addr=[0,0,_htonl(65535),addr];}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0};var _llvm_eh_typeid_for=type=>type;var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer);};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str);}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i]);}else {cArgs[i]=args[i];}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return (...args)=>ccall(ident,returnType,argTypes,args)};var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i);}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length);}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}return wasmTable["grow"](1)};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx);};var uleb128EncodeWithLen=arr=>{const n=arr.length;return [n%128|128,n>>7,...arr]};var wasmTypeCodes={i:127,p:127,j:126,f:125,d:124,e:111};var generateTypePack=types=>uleb128EncodeWithLen(Array.from(types,type=>{var code=wasmTypeCodes[type];return code}));var convertJsFunctionToWasm=(func,sig)=>{var bytes=Uint8Array.of(0,97,115,109,1,0,0,0,1,...uleb128EncodeWithLen([1,96,...generateTypePack(sig.slice(1)),...generateTypePack(sig[0]==="v"?"":sig[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func);}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped);}functionsInTableMap.set(func,ret);return ret};FS.createPreloadedFile=FS_createPreloadedFile;FS.preloadFile=FS_preloadFile;FS.staticInit();init_ClassHandle();init_RegisteredPointer();{if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()();}}}Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;var _malloc,_htons,_ntohs,_free,___getTypeName,_htonl,_emscripten_builtin_memalign,_setThrew,__emscripten_tempret_set,__emscripten_stack_restore,__emscripten_stack_alloc,_emscripten_stack_get_current,___cxa_decrement_exception_refcount,___cxa_increment_exception_refcount,___cxa_can_catch,___cxa_get_exception_ptr,wasmMemory,wasmTable;function assignWasmExports(wasmExports){_malloc=Module["_malloc"]=wasmExports["Ja"];_htons=wasmExports["Ka"];_ntohs=wasmExports["La"];_free=Module["_free"]=wasmExports["Ma"];___getTypeName=wasmExports["Na"];_htonl=wasmExports["Oa"];_emscripten_builtin_memalign=wasmExports["Pa"];_setThrew=wasmExports["Qa"];__emscripten_tempret_set=wasmExports["Ra"];__emscripten_stack_restore=wasmExports["Sa"];__emscripten_stack_alloc=wasmExports["Ta"];_emscripten_stack_get_current=wasmExports["Ua"];___cxa_decrement_exception_refcount=wasmExports["Va"];___cxa_increment_exception_refcount=wasmExports["Wa"];___cxa_can_catch=wasmExports["Xa"];___cxa_get_exception_ptr=wasmExports["Ya"];wasmMemory=wasmExports["Ga"];wasmTable=wasmExports["Ia"];}var wasmImports={k:___cxa_begin_catch,o:___cxa_end_catch,a:___cxa_find_matching_catch_2,f:___cxa_find_matching_catch_3,R:___cxa_rethrow,da:___cxa_rethrow_primary_exception,g:___cxa_throw,ea:___cxa_uncaught_exceptions,b:___resumeException,X:___syscall_accept4,W:___syscall_connect,t:___syscall_fcntl64,pa:___syscall_fstat64,$:___syscall_getcwd,ha:___syscall_getdents64,D:___syscall_getsockopt,ra:___syscall_ioctl,ma:___syscall_lstat64,na:___syscall_newfstatat,O:___syscall_openat,ia:___syscall_poll,_:___syscall_readlinkat,V:___syscall_recvfrom,U:___syscall_sendto,T:___syscall_socket,oa:___syscall_stat64,Y:__abort_js,Q:__embind_register_bigint,va:__embind_register_bool,F:__embind_register_class,E:__embind_register_class_constructor,q:__embind_register_class_function,ta:__embind_register_emval,P:__embind_register_float,I:__embind_register_function,v:__embind_register_integer,Fa:__embind_register_iterable,p:__embind_register_memory_view,S:__embind_register_optional,ua:__embind_register_std_string,G:__embind_register_std_wstring,wa:__embind_register_void,Da:__emval_create_invoker,Ca:__emval_invoke,Ba:__emval_run_destructors,ja:__localtime_js,ka:__tzset_js,fa:_clock_time_get,sa:_emscripten_date_now,M:_emscripten_get_now,ga:_emscripten_resize_heap,aa:_environ_get,ba:_environ_sizes_get,xa:_exit,y:_fd_close,qa:_fd_read,la:_fd_seek,N:_fd_write,ya:_getaddrinfo,J:invoke_diii,K:invoke_fiii,n:invoke_i,c:invoke_ii,e:invoke_iii,l:invoke_iiii,j:invoke_iiiii,ca:invoke_iiiiid,Aa:invoke_iiiiif,x:invoke_iiiiii,s:invoke_iiiiiii,H:invoke_iiiiiiii,B:invoke_iiiiiiiiiiii,L:invoke_iiiiij,za:invoke_iijjfi,C:invoke_jiiii,h:invoke_v,m:invoke_vi,Ea:invoke_vif,d:invoke_vii,i:invoke_viii,u:invoke_viiii,Z:invoke_viiiii,r:invoke_viiiiiii,w:invoke_viiiiiiiiii,A:invoke_viiiiiiiiiiiiiii,z:_llvm_eh_typeid_for};function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_i(index){var sp=stackSave();try{return getWasmTableEntry(index)()}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_v(index){var sp=stackSave();try{getWasmTableEntry(index)();}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_vif(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiif(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iijjfi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiij(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);return 0n}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5);}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0);}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module["onRuntimeInitialized"]?.();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun();},1);}else {doRun();}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module;}else {moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject;});}
|
|
15
|
+
return moduleRtn}})();{module.exports=XGBoostWasm;module.exports.default=XGBoostWasm;}
|
|
16
|
+
} (xgboost_wasm));
|
|
17
|
+
|
|
18
|
+
var xgboost_wasmExports = xgboost_wasm.exports;
|
|
19
|
+
var XGBoostWasm = /*@__PURE__*/getDefaultExportFromCjs(xgboost_wasmExports);
|
|
20
|
+
|
|
21
|
+
let module$1;
|
|
22
|
+
/**
|
|
23
|
+
* Initializes the XGBoost WASM module.
|
|
24
|
+
*/
|
|
25
|
+
async function init() {
|
|
26
|
+
if (!module$1) {
|
|
27
|
+
module$1 = await XGBoostWasm();
|
|
28
|
+
}
|
|
29
|
+
return module$1;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Main class for interacting with XGBoost WASM.
|
|
33
|
+
*/
|
|
34
|
+
class XGBoost {
|
|
35
|
+
module;
|
|
36
|
+
constructor(module) {
|
|
37
|
+
this.module = module;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new XGBoost instance by initializing the WASM module.
|
|
41
|
+
*/
|
|
42
|
+
static async create() {
|
|
43
|
+
const mod = await init();
|
|
44
|
+
return new XGBoost(mod);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Returns the version of the underlying XGBoost library.
|
|
48
|
+
*/
|
|
49
|
+
version() {
|
|
50
|
+
return this.module.XGBoostVersion();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Creates an empty booster model.
|
|
54
|
+
*/
|
|
55
|
+
createBooster() {
|
|
56
|
+
return new this.module.Booster();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates a DMatrix from feature data and optional labels.
|
|
60
|
+
* @param data Feature data as a Float32Array.
|
|
61
|
+
* @param nrow Number of rows.
|
|
62
|
+
* @param ncol Number of columns.
|
|
63
|
+
* @param missing Value to treat as missing.
|
|
64
|
+
* @param label Optional training labels.
|
|
65
|
+
*/
|
|
66
|
+
createDMatrix(data, nrow, ncol, missing = NaN, label) {
|
|
67
|
+
const nData = data.length;
|
|
68
|
+
const bytes = nData * 4;
|
|
69
|
+
const ptr = this.module._malloc(bytes);
|
|
70
|
+
let dmat;
|
|
71
|
+
// Check if missing is NaN and warning - though C++ will also handle this now
|
|
72
|
+
if (Number.isNaN(missing)) {
|
|
73
|
+
console.warn('XGBoost: NaN missing value detected. C++ layer will default to -1.0f for stability.');
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
this.module.HEAPF32.set(data, ptr >> 2);
|
|
77
|
+
dmat = new this.module.DMatrix(ptr, nrow, ncol, missing);
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
console.error('Failed to create DMatrix:', e);
|
|
81
|
+
this.handleWasmError(e);
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
this.module._free(ptr);
|
|
86
|
+
}
|
|
87
|
+
if (label) {
|
|
88
|
+
const lPtr = this.module._malloc(label.length * 4);
|
|
89
|
+
try {
|
|
90
|
+
this.module.HEAPF32.set(label, lPtr >> 2);
|
|
91
|
+
dmat.setFloatInfo('label', lPtr, label.length);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
console.error('Failed to set DMatrix label:', e);
|
|
95
|
+
this.handleWasmError(e);
|
|
96
|
+
throw e;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
this.module._free(lPtr);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return dmat;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Trains a model for a specified number of rounds.
|
|
106
|
+
* @param dtrain Training data.
|
|
107
|
+
* @param params Training parameters (e.g., objective, max_depth).
|
|
108
|
+
* @param rounds Number of boosting rounds.
|
|
109
|
+
*/
|
|
110
|
+
async train(dtrain, params, rounds) {
|
|
111
|
+
const booster = this.createBooster();
|
|
112
|
+
try {
|
|
113
|
+
for (const [name, value] of Object.entries(params)) {
|
|
114
|
+
booster.setParam(name, value);
|
|
115
|
+
}
|
|
116
|
+
for (let i = 0; i < rounds; i++) {
|
|
117
|
+
booster.updateOneIter(i, dtrain);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
console.error('Training failed at round/param set:', e);
|
|
122
|
+
this.handleWasmError(e);
|
|
123
|
+
throw e;
|
|
124
|
+
}
|
|
125
|
+
return booster;
|
|
126
|
+
}
|
|
127
|
+
handleWasmError(e) {
|
|
128
|
+
if (typeof e === 'number') {
|
|
129
|
+
try {
|
|
130
|
+
const msg = this.module.UTF8ToString(e);
|
|
131
|
+
console.error('Decoded WASM Error Message:', msg);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
console.error('Could not decode numeric WASM error pointer');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const lastError = this.module.XGBGetLastError();
|
|
138
|
+
if (lastError) {
|
|
139
|
+
console.error('XGBoost Last Error:', lastError);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
exports.XGBoost = XGBoost;
|
|
145
|
+
exports.init = init;
|
|
2
146
|
//# sourceMappingURL=index.js.map
|