x_ite
Version:
X_ITE X3D Browser, view and manipulate X3D, VRML, glTF and other 3D sources in HTML.
1 lines • 103 kB
JavaScript
return async function(e={},r){var t,n,a=e,o=new Promise((e,r)=>{t=e,n=r}),s="object"==typeof window,i="undefined"!=typeof WorkerGlobalScope,u="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type;a.onRuntimeInitialized=function(){a.ktxTexture=a.texture,a.ErrorCode=a.error_code,a.TranscodeTarget=a.transcode_fmt,a.TranscodeFlags=a.transcode_flag_bits};var f,c,l={...a},d="./this.program",m=(e,r)=>{throw r},p="";if(u){var v=require("fs");require("path");p=__dirname+"/",c=e=>(e=S(e)?new URL(e):e,v.readFileSync(e)),f=async(e,r=!0)=>(e=S(e)?new URL(e):e,v.readFileSync(e,r?void 0:"utf8")),!a.thisProgram&&process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),m=(e,r)=>{throw process.exitCode=e,r}}else(s||i)&&(i?p=self.location.href:"undefined"!=typeof document&&document.currentScript&&(p=document.currentScript.src),r&&(p=r),p=p.startsWith("blob:")?"":p.slice(0,p.replace(/[?#].*/,"").lastIndexOf("/")+1),i&&(c=e=>{var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),f=async e=>{if(S(e))return new Promise((r,t)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?r(n.response):t(n.status)},n.onerror=t,n.send(null)});var r=await fetch(e,{credentials:"same-origin"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+" : "+r.url)});var h=a.print||console.log.bind(console),g=a.printErr||console.error.bind(console);Object.assign(a,l),l=null,a.arguments&&a.arguments,a.thisProgram&&(d=a.thisProgram);var y,b,w,E,x,_,k,P,B,C,T,A=a.wasmBinary,$=!1,S=e=>e.startsWith("file://");function D(){var e=y.buffer;a.HEAP8=b=new Int8Array(e),a.HEAP16=E=new Int16Array(e),a.HEAPU8=w=new Uint8Array(e),a.HEAPU16=x=new Uint16Array(e),a.HEAP32=_=new Int32Array(e),a.HEAPU32=k=new Uint32Array(e),a.HEAPF32=P=new Float32Array(e),a.HEAPF64=T=new Float64Array(e),a.HEAP64=B=new BigInt64Array(e),a.HEAPU64=C=new BigUint64Array(e)}var F,L=0,I=null;function M(e){L++,a.monitorRunDependencies?.(L)}function N(e){if(L--,a.monitorRunDependencies?.(L),0==L&&I){var r=I;I=null,r()}}function O(e){a.onAbort?.(e),g(e="Aborted("+e+")"),$=!0,e+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(e);throw n(r),r}function j(){return e="libktx.wasm",a.locateFile?a.locateFile(e,p):p+e;var e}async function R(e){if(!A)try{var r=await f(e);return new Uint8Array(r)}catch{}return function(e){if(e==F&&A)return new Uint8Array(A);if(c)return c(e);throw"both async and sync fetching of the wasm failed"}(e)}async function V(e,r,t){if(!e&&"function"==typeof WebAssembly.instantiateStreaming&&!S(r)&&!u)try{var n=fetch(r,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(n,t)}catch(e){g(`wasm streaming compile failed: ${e}`),g("falling back to ArrayBuffer instantiation")}return async function(e,r){try{var t=await R(e);return await WebAssembly.instantiate(t,r)}catch(e){g(`failed to asynchronously prepare wasm: ${e}`),O(e)}}(r,t)}class W{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var U=e=>{for(;e.length>0;)e.shift()(a)},G=[],z=e=>G.unshift(e),X=[],H=e=>X.unshift(e),q=a.noExitRuntime||!0;class Q{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){k[this.ptr+4>>2]=e}get_type(){return k[this.ptr+4>>2]}set_destructor(e){k[this.ptr+8>>2]=e}get_destructor(){return k[this.ptr+8>>2]}set_caught(e){e=e?1:0,b[this.ptr+12]=e}get_caught(){return 0!=b[this.ptr+12]}set_rethrown(e){e=e?1:0,b[this.ptr+13]=e}get_rethrown(){return 0!=b[this.ptr+13]}init(e,r){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(r)}set_adjusted_ptr(e){k[this.ptr+16>>2]=e}get_adjusted_ptr(){return k[this.ptr+16>>2]}}var K=()=>{var e=_[+pe.varargs>>2];return pe.varargs+=4,e},Z=K,Y={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var a=e[n];"."===a?e.splice(n,1):".."===a?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift("..");return e},normalize:e=>{var r=Y.isAbs(e),t="/"===e.slice(-1);return(e=Y.normalizeArray(e.split("/").filter(e=>!!e),!r).join("/"))||r||(e="."),e&&t&&(e+="/"),(r?"/":"")+e},dirname:e=>{var r=Y.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.slice(0,-1)),t+n):"."},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>Y.normalize(e.join("/")),join2:(e,r)=>Y.normalize(e+"/"+r)},J=e=>{(J=(()=>{if(u){var e=require("crypto");return r=>e.randomFillSync(r)}return e=>crypto.getRandomValues(e)})())(e)},ee={resolve:(...e)=>{for(var r="",t=!1,n=e.length-1;n>=-1&&!t;n--){var a=n>=0?e[n]:de.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");if(!a)return"";r=a+"/"+r,t=Y.isAbs(a)}return(t?"/":"")+(r=Y.normalizeArray(r.split("/").filter(e=>!!e),!t).join("/"))||"."},relative:(e,r)=>{function t(e){for(var r=0;r<e.length&&""===e[r];r++);for(var t=e.length-1;t>=0&&""===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=ee.resolve(e).slice(1),r=ee.resolve(r).slice(1);for(var n=t(e.split("/")),a=t(r.split("/")),o=Math.min(n.length,a.length),s=o,i=0;i<o;i++)if(n[i]!==a[i]){s=i;break}var u=[];for(i=s;i<n.length;i++)u.push("..");return(u=u.concat(a.slice(s))).join("/")}},re="undefined"!=typeof TextDecoder?new TextDecoder:void 0,te=(e,r=0,t=NaN)=>{for(var n=r+t,a=r;e[a]&&!(a>=n);)++a;if(a-r>16&&e.buffer&&re)return re.decode(e.subarray(r,a));for(var o="";r<a;){var s=e[r++];if(128&s){var i=63&e[r++];if(192!=(224&s)){var u=63&e[r++];if((s=224==(240&s)?(15&s)<<12|i<<6|u:(7&s)<<18|i<<12|u<<6|63&e[r++])<65536)o+=String.fromCharCode(s);else{var f=s-65536;o+=String.fromCharCode(55296|f>>10,56320|1023&f)}}else o+=String.fromCharCode((31&s)<<6|i)}else o+=String.fromCharCode(s)}return o},ne=[],ae=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},oe=(e,r,t,n)=>{if(!(n>0))return 0;for(var a=t,o=t+n-1,s=0;s<e.length;++s){var i=e.charCodeAt(s);if(i>=55296&&i<=57343)i=65536+((1023&i)<<10)|1023&e.charCodeAt(++s);if(i<=127){if(t>=o)break;r[t++]=i}else if(i<=2047){if(t+1>=o)break;r[t++]=192|i>>6,r[t++]=128|63&i}else if(i<=65535){if(t+2>=o)break;r[t++]=224|i>>12,r[t++]=128|i>>6&63,r[t++]=128|63&i}else{if(t+3>=o)break;r[t++]=240|i>>18,r[t++]=128|i>>12&63,r[t++]=128|i>>6&63,r[t++]=128|63&i}}return r[t]=0,t-a},se=(e,r,t)=>{var n=t>0?t:ae(e)+1,a=new Array(n),o=oe(e,a,0,a.length);return r&&(a.length=o),a},ie={ttys:[],init(){},shutdown(){},register(e,r){ie.ttys[e]={input:[],output:[],ops:r},de.registerDevice(e,ie.stream_ops)},stream_ops:{open(e){var r=ie.ttys[e.node.rdev];if(!r)throw new de.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,a){if(!e.tty||!e.tty.ops.get_char)throw new de.ErrnoError(60);for(var o=0,s=0;s<n;s++){var i;try{i=e.tty.ops.get_char(e.tty)}catch(e){throw new de.ErrnoError(29)}if(void 0===i&&0===o)throw new de.ErrnoError(6);if(null==i)break;o++,r[t+s]=i}return o&&(e.node.atime=Date.now()),o},write(e,r,t,n,a){if(!e.tty||!e.tty.ops.put_char)throw new de.ErrnoError(60);try{for(var o=0;o<n;o++)e.tty.ops.put_char(e.tty,r[t+o])}catch(e){throw new de.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),o}},default_tty_ops:{get_char:e=>(()=>{if(!ne.length){var e=null;if(u){var r=Buffer.alloc(256),t=0,n=process.stdin.fd;try{t=v.readSync(n,r,0,256)}catch(e){if(!e.toString().includes("EOF"))throw e;t=0}t>0&&(e=r.slice(0,t).toString("utf-8"))}else"undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(e=window.prompt("Input: "))&&(e+="\n");if(!e)return null;ne=se(e,!0)}return ne.shift()})(),put_char(e,r){null===r||10===r?(h(te(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(h(te(e.output)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,r,t)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,r){null===r||10===r?(g(te(e.output)),e.output=[]):0!=r&&e.output.push(r)},fsync(e){e.output?.length>0&&(g(te(e.output)),e.output=[])}}},ue=e=>{O()},fe={ops_table:null,mount:e=>fe.createNode(null,"/",16895,0),createNode(e,r,t,n){if(de.isBlkdev(t)||de.isFIFO(t))throw new de.ErrnoError(63);fe.ops_table||={dir:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr,lookup:fe.node_ops.lookup,mknod:fe.node_ops.mknod,rename:fe.node_ops.rename,unlink:fe.node_ops.unlink,rmdir:fe.node_ops.rmdir,readdir:fe.node_ops.readdir,symlink:fe.node_ops.symlink},stream:{llseek:fe.stream_ops.llseek}},file:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr},stream:{llseek:fe.stream_ops.llseek,read:fe.stream_ops.read,write:fe.stream_ops.write,mmap:fe.stream_ops.mmap,msync:fe.stream_ops.msync}},link:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr,readlink:fe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr},stream:de.chrdev_stream_ops}};var a=de.createNode(e,r,t,n);return de.isDir(a.mode)?(a.node_ops=fe.ops_table.dir.node,a.stream_ops=fe.ops_table.dir.stream,a.contents={}):de.isFile(a.mode)?(a.node_ops=fe.ops_table.file.node,a.stream_ops=fe.ops_table.file.stream,a.usedBytes=0,a.contents=null):de.isLink(a.mode)?(a.node_ops=fe.ops_table.link.node,a.stream_ops=fe.ops_table.link.stream):de.isChrdev(a.mode)&&(a.node_ops=fe.ops_table.chrdev.node,a.stream_ops=fe.ops_table.chrdev.stream),a.atime=a.mtime=a.ctime=Date.now(),e&&(e.contents[r]=a,e.atime=e.mtime=e.ctime=a.atime),a},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){r=Math.max(r,t*(t<1048576?2:1.125)>>>0),0!=t&&(r=Math.max(r,256));var n=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(0==r)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=de.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,de.isDir(e.mode)?r.size=4096:de.isFile(e.mode)?r.size=e.usedBytes:de.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of["mode","atime","mtime","ctime"])null!=r[t]&&(e[t]=r[t]);void 0!==r.size&&fe.resizeFileStorage(e,r.size)},lookup(e,r){throw fe.doesNotExistError},mknod:(e,r,t,n)=>fe.createNode(e,r,t,n),rename(e,r,t){var n;try{n=de.lookupNode(r,t)}catch(e){}if(n){if(de.isDir(e.mode))for(var a in n.contents)throw new de.ErrnoError(55);de.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=de.lookupNode(e,r);for(var n in t.contents)throw new de.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir:e=>[".","..",...Object.keys(e.contents)],symlink(e,r,t){var n=fe.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!de.isLink(e.mode))throw new de.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,a){var o=e.node.contents;if(a>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-a,n);if(s>8&&o.subarray)r.set(o.subarray(a,a+s),t);else for(var i=0;i<s;i++)r[t+i]=o[a+i];return s},write(e,r,t,n,a,o){if(r.buffer===b.buffer&&(o=!1),!n)return 0;var s=e.node;if(s.mtime=s.ctime=Date.now(),r.subarray&&(!s.contents||s.contents.subarray)){if(o)return s.contents=r.subarray(t,t+n),s.usedBytes=n,n;if(0===s.usedBytes&&0===a)return s.contents=r.slice(t,t+n),s.usedBytes=n,n;if(a+n<=s.usedBytes)return s.contents.set(r.subarray(t,t+n),a),n}if(fe.expandFileStorage(s,a+n),s.contents.subarray&&r.subarray)s.contents.set(r.subarray(t,t+n),a);else for(var i=0;i<n;i++)s.contents[a+i]=r[t+i];return s.usedBytes=Math.max(s.usedBytes,a+n),n},llseek(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&de.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new de.ErrnoError(28);return n},mmap(e,r,t,n,a){if(!de.isFile(e.node.mode))throw new de.ErrnoError(43);var o,s,i=e.node.contents;if(2&a||!i||i.buffer!==b.buffer){if(s=!0,!(o=ue()))throw new de.ErrnoError(48);i&&((t>0||t+r<i.length)&&(i=i.subarray?i.subarray(t,t+r):Array.prototype.slice.call(i,t,t+r)),b.set(i,o))}else s=!1,o=i.byteOffset;return{ptr:o,allocated:s}},msync:(e,r,t,n,a)=>(fe.stream_ops.write(e,r,0,n,t,!1),0)}},ce=a.preloadPlugins||[],le=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},de={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=de.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return de.isDir(this.mode)}get isDevice(){return de.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new de.ErrnoError(44);r.follow_mount??=!0,Y.isAbs(e)||(e=de.cwd()+"/"+e);e:for(var t=0;t<40;t++){for(var n=e.split("/").filter(e=>!!e),a=de.root,o="/",s=0;s<n.length;s++){var i=s===n.length-1;if(i&&r.parent)break;if("."!==n[s])if(".."!==n[s]){o=Y.join2(o,n[s]);try{a=de.lookupNode(a,n[s])}catch(e){if(44===e?.errno&&i&&r.noent_okay)return{path:o};throw e}if(!de.isMountpoint(a)||i&&!r.follow_mount||(a=a.mounted.root),de.isLink(a.mode)&&(!i||r.follow)){if(!a.node_ops.readlink)throw new de.ErrnoError(52);var u=a.node_ops.readlink(a);Y.isAbs(u)||(u=Y.dirname(o)+"/"+u),e=u+"/"+n.slice(s+1).join("/");continue e}}else o=Y.dirname(o),a=a.parent}return{path:o,node:a}}throw new de.ErrnoError(32)},getPath(e){for(var r;;){if(de.isRoot(e)){var t=e.mount.mountpoint;return r?"/"!==t[t.length-1]?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%de.nameTable.length},hashAddNode(e){var r=de.hashName(e.parent.id,e.name);e.name_next=de.nameTable[r],de.nameTable[r]=e},hashRemoveNode(e){var r=de.hashName(e.parent.id,e.name);if(de.nameTable[r]===e)de.nameTable[r]=e.name_next;else for(var t=de.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=de.mayLookup(e);if(t)throw new de.ErrnoError(t);for(var n=de.hashName(e.id,r),a=de.nameTable[n];a;a=a.name_next){var o=a.name;if(a.parent.id===e.id&&o===r)return a}return de.lookup(e,r)},createNode(e,r,t,n){var a=new de.FSNode(e,r,t,n);return de.hashAddNode(a),a},destroyNode(e){de.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>!(49152&~e),flagsToPermissionString(e){var r=["r","w","rw"][3&e];return 512&e&&(r+="w"),r},nodePermissions:(e,r)=>de.ignorePermissions||(!r.includes("r")||292&e.mode)&&(!r.includes("w")||146&e.mode)&&(!r.includes("x")||73&e.mode)?0:2,mayLookup(e){if(!de.isDir(e.mode))return 54;var r=de.nodePermissions(e,"x");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!de.isDir(e.mode))return 54;try{de.lookupNode(e,r);return 20}catch(e){}return de.nodePermissions(e,"wx")},mayDelete(e,r,t){var n;try{n=de.lookupNode(e,r)}catch(e){return e.errno}var a=de.nodePermissions(e,"wx");if(a)return a;if(t){if(!de.isDir(n.mode))return 54;if(de.isRoot(n)||de.getPath(n)===de.cwd())return 10}else if(de.isDir(n.mode))return 31;return 0},mayOpen:(e,r)=>e?de.isLink(e.mode)?32:de.isDir(e.mode)&&("r"!==de.flagsToPermissionString(r)||576&r)?31:de.nodePermissions(e,de.flagsToPermissionString(r)):44,checkOpExists(e,r){if(!e)throw new de.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=de.MAX_OPEN_FDS;e++)if(!de.streams[e])return e;throw new de.ErrnoError(33)},getStreamChecked(e){var r=de.getStream(e);if(!r)throw new de.ErrnoError(8);return r},getStream:e=>de.streams[e],createStream:(e,r=-1)=>(e=Object.assign(new de.FSStream,e),-1==r&&(r=de.nextfd()),e.fd=r,de.streams[r]=e,e),closeStream(e){de.streams[e]=null},dupStream(e,r=-1){var t=de.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,a=n?e:r;n??=r.node_ops.setattr,de.checkOpExists(n,63),n(a,t)},chrdev_stream_ops:{open(e){var r=de.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new de.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,r)=>e<<8|r,registerDevice(e,r){de.devices[e]={stream_ops:r}},getDevice:e=>de.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){"function"==typeof e&&(r=e,e=!1),de.syncFSRequests++,de.syncFSRequests>1&&g(`warning: ${de.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=de.getMounts(de.root.mount),n=0;function a(e){return de.syncFSRequests--,r(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,a(e));++n>=t.length&&a(null)}t.forEach(r=>{if(!r.type.syncfs)return o(null);r.type.syncfs(r,e,o)})},mount(e,r,t){var n,a="/"===t,o=!t;if(a&&de.root)throw new de.ErrnoError(10);if(!a&&!o){var s=de.lookupPath(t,{follow_mount:!1});if(t=s.path,n=s.node,de.isMountpoint(n))throw new de.ErrnoError(10);if(!de.isDir(n.mode))throw new de.ErrnoError(54)}var i={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(i);return u.mount=i,i.root=u,a?de.root=u:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),u},unmount(e){var r=de.lookupPath(e,{follow_mount:!1});if(!de.isMountpoint(r.node))throw new de.ErrnoError(28);var t=r.node,n=t.mounted,a=de.getMounts(n);Object.keys(de.nameTable).forEach(e=>{for(var r=de.nameTable[e];r;){var t=r.name_next;a.includes(r.mount)&&de.destroyNode(r),r=t}}),t.mounted=null;var o=t.mount.mounts.indexOf(n);t.mount.mounts.splice(o,1)},lookup:(e,r)=>e.node_ops.lookup(e,r),mknod(e,r,t){var n=de.lookupPath(e,{parent:!0}).node,a=Y.basename(e);if(!a)throw new de.ErrnoError(28);if("."===a||".."===a)throw new de.ErrnoError(20);var o=de.mayCreate(n,a);if(o)throw new de.ErrnoError(o);if(!n.node_ops.mknod)throw new de.ErrnoError(63);return n.node_ops.mknod(n,a,r,t)},statfs:e=>de.statfsNode(de.lookupPath(e,{follow:!0}).node),statfsStream:e=>de.statfsNode(e.node),statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:de.nextInode,ffree:de.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create:(e,r=438)=>(r&=4095,r|=32768,de.mknod(e,r,0)),mkdir:(e,r=511)=>(r&=1023,r|=16384,de.mknod(e,r,0)),mkdirTree(e,r){var t=e.split("/"),n="";for(var a of t)if(a){(n||Y.isAbs(e))&&(n+="/"),n+=a;try{de.mkdir(n,r)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,r,t)=>(void 0===t&&(t=r,r=438),r|=8192,de.mknod(e,r,t)),symlink(e,r){if(!ee.resolve(e))throw new de.ErrnoError(44);var t=de.lookupPath(r,{parent:!0}).node;if(!t)throw new de.ErrnoError(44);var n=Y.basename(r),a=de.mayCreate(t,n);if(a)throw new de.ErrnoError(a);if(!t.node_ops.symlink)throw new de.ErrnoError(63);return t.node_ops.symlink(t,n,e)},rename(e,r){var t,n,a=Y.dirname(e),o=Y.dirname(r),s=Y.basename(e),i=Y.basename(r);if(t=de.lookupPath(e,{parent:!0}).node,n=de.lookupPath(r,{parent:!0}).node,!t||!n)throw new de.ErrnoError(44);if(t.mount!==n.mount)throw new de.ErrnoError(75);var u,f=de.lookupNode(t,s),c=ee.relative(e,o);if("."!==c.charAt(0))throw new de.ErrnoError(28);if("."!==(c=ee.relative(r,a)).charAt(0))throw new de.ErrnoError(55);try{u=de.lookupNode(n,i)}catch(e){}if(f!==u){var l=de.isDir(f.mode),d=de.mayDelete(t,s,l);if(d)throw new de.ErrnoError(d);if(d=u?de.mayDelete(n,i,l):de.mayCreate(n,i))throw new de.ErrnoError(d);if(!t.node_ops.rename)throw new de.ErrnoError(63);if(de.isMountpoint(f)||u&&de.isMountpoint(u))throw new de.ErrnoError(10);if(n!==t&&(d=de.nodePermissions(t,"w")))throw new de.ErrnoError(d);de.hashRemoveNode(f);try{t.node_ops.rename(f,n,i),f.parent=n}catch(e){throw e}finally{de.hashAddNode(f)}}},rmdir(e){var r=de.lookupPath(e,{parent:!0}).node,t=Y.basename(e),n=de.lookupNode(r,t),a=de.mayDelete(r,t,!0);if(a)throw new de.ErrnoError(a);if(!r.node_ops.rmdir)throw new de.ErrnoError(63);if(de.isMountpoint(n))throw new de.ErrnoError(10);r.node_ops.rmdir(r,t),de.destroyNode(n)},readdir(e){var r=de.lookupPath(e,{follow:!0}).node;return de.checkOpExists(r.node_ops.readdir,54)(r)},unlink(e){var r=de.lookupPath(e,{parent:!0}).node;if(!r)throw new de.ErrnoError(44);var t=Y.basename(e),n=de.lookupNode(r,t),a=de.mayDelete(r,t,!1);if(a)throw new de.ErrnoError(a);if(!r.node_ops.unlink)throw new de.ErrnoError(63);if(de.isMountpoint(n))throw new de.ErrnoError(10);r.node_ops.unlink(r,t),de.destroyNode(n)},readlink(e){var r=de.lookupPath(e).node;if(!r)throw new de.ErrnoError(44);if(!r.node_ops.readlink)throw new de.ErrnoError(28);return r.node_ops.readlink(r)},stat(e,r){var t=de.lookupPath(e,{follow:!r}).node;return de.checkOpExists(t.node_ops.getattr,63)(t)},fstat(e){var r=de.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,a=n?r:t;return n??=t.node_ops.getattr,de.checkOpExists(n,63),n(a)},lstat:e=>de.stat(e,!0),doChmod(e,r,t,n){de.doSetAttr(e,r,{mode:4095&t|-4096&r.mode,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;"string"==typeof e?n=de.lookupPath(e,{follow:!t}).node:n=e;de.doChmod(null,n,r,t)},lchmod(e,r){de.chmod(e,r,!0)},fchmod(e,r){var t=de.getStreamChecked(e);de.doChmod(t,t.node,r,!1)},doChown(e,r,t){de.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var a;"string"==typeof e?a=de.lookupPath(e,{follow:!n}).node:a=e;de.doChown(null,a,n)},lchown(e,r,t){de.chown(e,r,t,!0)},fchown(e,r,t){var n=de.getStreamChecked(e);de.doChown(n,n.node,!1)},doTruncate(e,r,t){if(de.isDir(r.mode))throw new de.ErrnoError(31);if(!de.isFile(r.mode))throw new de.ErrnoError(28);var n=de.nodePermissions(r,"w");if(n)throw new de.ErrnoError(n);de.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new de.ErrnoError(28);var t;"string"==typeof e?t=de.lookupPath(e,{follow:!0}).node:t=e;de.doTruncate(null,t,r)},ftruncate(e,r){var t=de.getStreamChecked(e);if(r<0||!(2097155&t.flags))throw new de.ErrnoError(28);de.doTruncate(t,t.node,r)},utime(e,r,t){var n=de.lookupPath(e,{follow:!0}).node;de.checkOpExists(n.node_ops.setattr,63)(n,{atime:r,mtime:t})},open(e,r,t=438){if(""===e)throw new de.ErrnoError(44);var n,o;if(t=64&(r="string"==typeof r?(e=>{var r={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===r)throw new Error(`Unknown file open mode: ${e}`);return r})(r):r)?4095&t|32768:0,"object"==typeof e)n=e;else{o=e.endsWith("/");var s=de.lookupPath(e,{follow:!(131072&r),noent_okay:!0});n=s.node,e=s.path}var i=!1;if(64&r)if(n){if(128&r)throw new de.ErrnoError(20)}else{if(o)throw new de.ErrnoError(31);n=de.mknod(e,511|t,0),i=!0}if(!n)throw new de.ErrnoError(44);if(de.isChrdev(n.mode)&&(r&=-513),65536&r&&!de.isDir(n.mode))throw new de.ErrnoError(54);if(!i){var u=de.mayOpen(n,r);if(u)throw new de.ErrnoError(u)}512&r&&!i&&de.truncate(n,0),r&=-131713;var f=de.createStream({node:n,path:de.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return f.stream_ops.open&&f.stream_ops.open(f),i&&de.chmod(n,511&t),!a.logReadFiles||1&r||e in de.readFiles||(de.readFiles[e]=1),f},close(e){if(de.isClosed(e))throw new de.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{de.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,r,t){if(de.isClosed(e))throw new de.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new de.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new de.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,a){if(n<0||a<0)throw new de.ErrnoError(28);if(de.isClosed(e))throw new de.ErrnoError(8);if(1==(2097155&e.flags))throw new de.ErrnoError(8);if(de.isDir(e.node.mode))throw new de.ErrnoError(31);if(!e.stream_ops.read)throw new de.ErrnoError(28);var o=void 0!==a;if(o){if(!e.seekable)throw new de.ErrnoError(70)}else a=e.position;var s=e.stream_ops.read(e,r,t,n,a);return o||(e.position+=s),s},write(e,r,t,n,a,o){if(n<0||a<0)throw new de.ErrnoError(28);if(de.isClosed(e))throw new de.ErrnoError(8);if(!(2097155&e.flags))throw new de.ErrnoError(8);if(de.isDir(e.node.mode))throw new de.ErrnoError(31);if(!e.stream_ops.write)throw new de.ErrnoError(28);e.seekable&&1024&e.flags&&de.llseek(e,0,2);var s=void 0!==a;if(s){if(!e.seekable)throw new de.ErrnoError(70)}else a=e.position;var i=e.stream_ops.write(e,r,t,n,a,o);return s||(e.position+=i),i},mmap(e,r,t,n,a){if(2&n&&!(2&a)&&2!=(2097155&e.flags))throw new de.ErrnoError(2);if(1==(2097155&e.flags))throw new de.ErrnoError(2);if(!e.stream_ops.mmap)throw new de.ErrnoError(43);if(!r)throw new de.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,a)},msync:(e,r,t,n,a)=>e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,a):0,ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new de.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||"binary","utf8"!==r.encoding&&"binary"!==r.encoding)throw new Error(`Invalid encoding type "${r.encoding}"`);var t,n=de.open(e,r.flags),a=de.stat(e).size,o=new Uint8Array(a);return de.read(n,o,0,a,0),"utf8"===r.encoding?t=te(o):"binary"===r.encoding&&(t=o),de.close(n),t},writeFile(e,r,t={}){t.flags=t.flags||577;var n=de.open(e,t.flags,t.mode);if("string"==typeof r){var a=new Uint8Array(ae(r)+1),o=oe(r,a,0,a.length);de.write(n,a,0,o,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(r))throw new Error("Unsupported data type");de.write(n,r,0,r.byteLength,void 0,t.canOwn)}de.close(n)},cwd:()=>de.currentPath,chdir(e){var r=de.lookupPath(e,{follow:!0});if(null===r.node)throw new de.ErrnoError(44);if(!de.isDir(r.node.mode))throw new de.ErrnoError(54);var t=de.nodePermissions(r.node,"x");if(t)throw new de.ErrnoError(t);de.currentPath=r.path},createDefaultDirectories(){de.mkdir("/tmp"),de.mkdir("/home"),de.mkdir("/home/web_user")},createDefaultDevices(){de.mkdir("/dev"),de.registerDevice(de.makedev(1,3),{read:()=>0,write:(e,r,t,n,a)=>n,llseek:()=>0}),de.mkdev("/dev/null",de.makedev(1,3)),ie.register(de.makedev(5,0),ie.default_tty_ops),ie.register(de.makedev(6,0),ie.default_tty1_ops),de.mkdev("/dev/tty",de.makedev(5,0)),de.mkdev("/dev/tty1",de.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(0===r&&(J(e),r=e.byteLength),e[--r]);de.createDevice("/dev","random",t),de.createDevice("/dev","urandom",t),de.mkdir("/dev/shm"),de.mkdir("/dev/shm/tmp")},createSpecialDirectories(){de.mkdir("/proc");var e=de.mkdir("/proc/self");de.mkdir("/proc/self/fd"),de.mount({mount(){var r=de.createNode(e,"fd",16895,73);return r.stream_ops={llseek:fe.stream_ops.llseek},r.node_ops={lookup(e,r){var t=+r,n=de.getStreamChecked(t),a={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path},id:t+1};return a.parent=a,a},readdir:()=>Array.from(de.streams.entries()).filter(([e,r])=>r).map(([e,r])=>e.toString())},r}},{},"/proc/self/fd")},createStandardStreams(e,r,t){e?de.createDevice("/dev","stdin",e):de.symlink("/dev/tty","/dev/stdin"),r?de.createDevice("/dev","stdout",null,r):de.symlink("/dev/tty","/dev/stdout"),t?de.createDevice("/dev","stderr",null,t):de.symlink("/dev/tty1","/dev/stderr");de.open("/dev/stdin",0),de.open("/dev/stdout",1),de.open("/dev/stderr",1)},staticInit(){de.nameTable=new Array(4096),de.mount(fe,{},"/"),de.createDefaultDirectories(),de.createDefaultDevices(),de.createSpecialDirectories(),de.filesystems={MEMFS:fe}},init(e,r,t){de.initialized=!0,e??=a.stdin,r??=a.stdout,t??=a.stderr,de.createStandardStreams(e,r,t)},quit(){for(var e of(de.initialized=!1,de.streams))e&&de.close(e)},findObject(e,r){var t=de.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{e=(n=de.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=de.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=Y.basename(e),n=de.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot="/"===n.path}catch(e){t.error=e.errno}return t},createPath(e,r,t,n){e="string"==typeof e?e:de.getPath(e);for(var a=r.split("/").reverse();a.length;){var o=a.pop();if(o){var s=Y.join2(e,o);try{de.mkdir(s)}catch(e){if(20!=e.errno)throw e}e=s}}return s},createFile(e,r,t,n,a){var o=Y.join2("string"==typeof e?e:de.getPath(e),r),s=le(n,a);return de.create(o,s)},createDataFile(e,r,t,n,a,o){var s=r;e&&(e="string"==typeof e?e:de.getPath(e),s=r?Y.join2(e,r):e);var i=le(n,a),u=de.create(s,i);if(t){if("string"==typeof t){for(var f=new Array(t.length),c=0,l=t.length;c<l;++c)f[c]=t.charCodeAt(c);t=f}de.chmod(u,146|i);var d=de.open(u,577);de.write(d,t,0,t.length,0,o),de.close(d),de.chmod(u,i)}},createDevice(e,r,t,n){var a=Y.join2("string"==typeof e?e:de.getPath(e),r),o=le(!!t,!!n);de.createDevice.major??=64;var s=de.makedev(de.createDevice.major++,0);return de.registerDevice(s,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,r,n,a,o){for(var s=0,i=0;i<a;i++){var u;try{u=t()}catch(e){throw new de.ErrnoError(29)}if(void 0===u&&0===s)throw new de.ErrnoError(6);if(null==u)break;s++,r[n+i]=u}return s&&(e.node.atime=Date.now()),s},write(e,r,t,a,o){for(var s=0;s<a;s++)try{n(r[t+s])}catch(e){throw new de.ErrnoError(29)}return a&&(e.node.mtime=e.node.ctime=Date.now()),s}}),de.mkdev(a,o,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{e.contents=c(e.url),e.usedBytes=e.contents.length}catch(e){throw new de.ErrnoError(29)}},createLazyFile(e,r,t,n,a){class o{lengthKnown=!1;chunks=[];get(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;if(e.open("HEAD",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+t+". Status: "+e.status);var r,n=Number(e.getResponseHeader("Content-length")),a=(r=e.getResponseHeader("Accept-Ranges"))&&"bytes"===r,o=(r=e.getResponseHeader("Content-Encoding"))&&"gzip"===r,s=1048576;a||(s=n);var i=this;i.setDataGetter(e=>{var r=e*s,a=(e+1)*s-1;if(a=Math.min(a,n-1),void 0===i.chunks[e]&&(i.chunks[e]=((e,r)=>{if(e>r)throw new Error("invalid range ("+e+", "+r+") or no bytes requested!");if(r>n-1)throw new Error("only "+n+" bytes available! programmer error!");var a=new XMLHttpRequest;if(a.open("GET",t,!1),n!==s&&a.setRequestHeader("Range","bytes="+e+"-"+r),a.responseType="arraybuffer",a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined"),a.send(null),!(a.status>=200&&a.status<300||304===a.status))throw new Error("Couldn't load "+t+". Status: "+a.status);return void 0!==a.response?new Uint8Array(a.response||[]):se(a.responseText||"",!0)})(r,a)),void 0===i.chunks[e])throw new Error("doXHR failed!");return i.chunks[e]}),!o&&n||(s=n=1,n=this.getter(0).length,s=n,h("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("undefined"!=typeof XMLHttpRequest){if(!i)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s={isDevice:!1,contents:new o}}else s={isDevice:!1,url:t};var u=de.createFile(e,r,s,n,a);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 f={};function c(e,r,t,n,a){var o=e.node.contents;if(a>=o.length)return 0;var s=Math.min(o.length-a,n);if(o.slice)for(var i=0;i<s;i++)r[t+i]=o[a+i];else for(i=0;i<s;i++)r[t+i]=o.get(a+i);return s}return Object.keys(u.stream_ops).forEach(e=>{var r=u.stream_ops[e];f[e]=(...e)=>(de.forceLoadFile(u),r(...e))}),f.read=(e,r,t,n,a)=>(de.forceLoadFile(u),c(e,r,t,n,a)),f.mmap=(e,r,t,n,a)=>{de.forceLoadFile(u);var o=ue();if(!o)throw new de.ErrnoError(48);return c(e,b,o,r,t),{ptr:o,allocated:!0}},u.stream_ops=f,u}},me=(e,r)=>e?te(w,e,r):"",pe={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(Y.isAbs(r))return r;var n;-100===e?n=de.cwd():n=pe.getStreamFromFD(e).path;if(0==r.length){if(!t)throw new de.ErrnoError(44);return n}return n+"/"+r},writeStat(e,r){_[e>>2]=r.dev,_[e+4>>2]=r.mode,k[e+8>>2]=r.nlink,_[e+12>>2]=r.uid,_[e+16>>2]=r.gid,_[e+20>>2]=r.rdev,B[e+24>>3]=BigInt(r.size),_[e+32>>2]=4096,_[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),a=r.ctime.getTime();return B[e+40>>3]=BigInt(Math.floor(t/1e3)),k[e+48>>2]=t%1e3*1e3*1e3,B[e+56>>3]=BigInt(Math.floor(n/1e3)),k[e+64>>2]=n%1e3*1e3*1e3,B[e+72>>3]=BigInt(Math.floor(a/1e3)),k[e+80>>2]=a%1e3*1e3*1e3,B[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){_[e+4>>2]=r.bsize,_[e+40>>2]=r.bsize,_[e+8>>2]=r.blocks,_[e+12>>2]=r.bfree,_[e+16>>2]=r.bavail,_[e+20>>2]=r.files,_[e+24>>2]=r.ffree,_[e+28>>2]=r.fsid,_[e+44>>2]=r.flags,_[e+36>>2]=r.namelen},doMsync(e,r,t,n,a){if(!de.isFile(r.node.mode))throw new de.ErrnoError(43);if(2&n)return 0;var o=w.slice(e,e+t);de.msync(r,o,a,t,n)},getStreamFromFD:e=>de.getStreamChecked(e),varargs:void 0,getStr:e=>me(e)};var ve={},he=e=>{for(;e.length;){var r=e.pop();e.pop()(r)}};function ge(e){return this.fromWireType(k[e>>2])}var ye,be={},we={},Ee={},xe=a.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},_e=e=>{throw new xe(e)},ke=(e,r,t)=>{function n(r){var n=t(r);n.length!==e.length&&_e("Mismatched type converter count");for(var a=0;a<e.length;++a)Ae(e[a],n[a])}e.forEach(e=>Ee[e]=r);var a=new Array(r.length),o=[],s=0;r.forEach((e,r)=>{we.hasOwnProperty(e)?a[r]=we[e]:(o.push(e),be.hasOwnProperty(e)||(be[e]=[]),be[e].push(()=>{a[r]=we[e],++s===o.length&&n(a)}))}),0===o.length&&n(a)},Pe=e=>{if(null===e)return"null";var r=typeof e;return"object"===r||"array"===r||"function"===r?e.toString():""+e},Be=e=>{for(var r="",t=e;w[t];)r+=ye[w[t++]];return r},Ce=a.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},Te=e=>{throw new Ce(e)};function Ae(e,r,t={}){return function(e,r,t={}){var n=r.name;if(e||Te(`type "${n}" must have a positive integer typeid pointer`),we.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;Te(`Cannot register type '${n}' twice`)}if(we[e]=r,delete Ee[e],be.hasOwnProperty(e)){var a=be[e];delete be[e],a.forEach(e=>e())}}(e,r,t)}var $e=(e,r,t)=>{switch(r){case 1:return t?e=>b[e]:e=>w[e];case 2:return t?e=>E[e>>1]:e=>x[e>>1];case 4:return t?e=>_[e>>2]:e=>k[e>>2];case 8:return t?e=>B[e>>3]:e=>C[e>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Se=8,De=e=>{Te(e.$$.ptrType.registeredClass.name+" instance already deleted")},Fe=!1,Le=e=>{},Ie=e=>{e.count.value-=1,0===e.count.value&&(e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)})(e)},Me=e=>"undefined"==typeof FinalizationRegistry?(Me=e=>e,e):(Fe=new FinalizationRegistry(e=>{Ie(e.$$)}),Me=e=>{var r=e.$$;if(!!r.smartPtr){var t={$$:r};Fe.register(e,t,e)}return e},Le=e=>Fe.unregister(e),Me(e)),Ne=[];function Oe(){}var je=(e,r)=>Object.defineProperty(r,"name",{value:e}),Re={},Ve=(e,r,t)=>{if(void 0===e[r].overloadTable){var n=e[r];e[r]=function(...n){return e[r].overloadTable.hasOwnProperty(n.length)||Te(`Function '${t}' called with an invalid number of arguments (${n.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[n.length].apply(this,n)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},We=(e,r,t)=>{a.hasOwnProperty(e)?((void 0===t||void 0!==a[e].overloadTable&&void 0!==a[e].overloadTable[t])&&Te(`Cannot register public name '${e}' twice`),Ve(a,e,e),a[e].overloadTable.hasOwnProperty(t)&&Te(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),a[e].overloadTable[t]=r):(a[e]=r,a[e].argCount=t)};function Ue(e,r,t,n,a,o,s,i){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=a,this.getActualType=o,this.upcast=s,this.downcast=i,this.pureVirtualFunctions=[]}var Ge=(e,r,t)=>{for(;r!==t;)r.upcast||Te(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e};function ze(e,r){if(null===r)return this.isReference&&Te(`null is not a valid ${this.name}`),0;r.$$||Te(`Cannot pass "${Pe(r)}" as a ${this.name}`),r.$$.ptr||Te(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass;return Ge(r.$$.ptr,t,this.registeredClass)}function Xe(e,r){var t;if(null===r)return this.isReference&&Te(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;r&&r.$$||Te(`Cannot pass "${Pe(r)}" as a ${this.name}`),r.$$.ptr||Te(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&Te(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=Ge(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===r.$$.smartPtr&&Te("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:Te(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var a=r.clone();t=this.rawShare(t,vr.toHandle(()=>a.delete())),null!==e&&e.push(this.rawDestructor,t)}break;default:Te("Unsupporting sharing policy")}return t}function He(e,r){if(null===r)return this.isReference&&Te(`null is not a valid ${this.name}`),0;r.$$||Te(`Cannot pass "${Pe(r)}" as a ${this.name}`),r.$$.ptr||Te(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&Te(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass;return Ge(r.$$.ptr,t,this.registeredClass)}var qe=(e,r,t)=>{if(r===t)return e;if(void 0===t.baseClass)return null;var n=qe(e,r,t.baseClass);return null===n?null:t.downcast(n)},Qe={},Ke=(e,r)=>(r=((e,r)=>{for(void 0===r&&Te("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r})(e,r),Qe[r]),Ze=(e,r)=>(r.ptrType&&r.ptr||_e("makeClassHandle requires ptr and ptrType"),!!r.smartPtrType!==!!r.smartPtr&&_e("Both smartPtrType and smartPtr must be specified"),r.count={value:1},Me(Object.create(e,{$$:{value:r,writable:!0}})));function Ye(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=Ke(this.registeredClass,r);if(void 0!==t){if(0===t.$$.count.value)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function a(){return this.isSmartPointer?Ze(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ze(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var o,s=this.registeredClass.getActualType(r),i=Re[s];if(!i)return a.call(this);o=this.isConst?i.constPointerType:i.pointerType;var u=qe(r,this.registeredClass,o.registeredClass);return null===u?a.call(this):this.isSmartPointer?Ze(o.registeredClass.instancePrototype,{ptrType:o,ptr:u,smartPtrType:this,smartPtr:e}):Ze(o.registeredClass.instancePrototype,{ptrType:o,ptr:u})}function Je(e,r,t,n,a,o,s,i,u,f,c){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=a,this.pointeeType=o,this.sharingPolicy=s,this.rawGetPointee=i,this.rawConstructor=u,this.rawShare=f,this.rawDestructor=c,a||void 0!==r.baseClass?this.toWireType=Xe:n?(this.toWireType=ze,this.destructorFunction=null):(this.toWireType=He,this.destructorFunction=null)}var er,rr=[],tr=(e,r,t=!1)=>{e=Be(e);var n,a,o=((a=rr[n=r])||(rr[n]=a=er.get(n)),a);return"function"!=typeof o&&Te(`unknown function pointer with signature ${e}: ${r}`),o};class nr extends Error{}var ar=e=>{var r=Ki(e),t=Be(r);return Yi(r),t},or=(e,r)=>{var t=[],n={};throw r.forEach(function e(r){n[r]||we[r]||(Ee[r]?Ee[r].forEach(e):(t.push(r),n[r]=!0))}),new nr(`${e}: `+t.map(ar).join([", "]))},sr=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(k[r+4*n>>2]);return t};function ir(e){for(var r=1;r<e.length;++r)if(null!==e[r]&&void 0===e[r].destructorFunction)return!0;return!1}function ur(e,r,t,n,a,o){var s=r.length;s<2&&Te("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var i=null!==r[1]&&null!==t,u=ir(r),f="void"!==r[0].name,c=[e,Te,n,a,he,r[0],r[1]],l=0;l<s-2;++l)c.push(r[l+2]);if(!u)for(l=i?1:2;l<r.length;++l)null!==r[l].destructorFunction&&c.push(r[l].destructorFunction);let[d,m]=function(e,r,t,n){var a=ir(e),o=e.length-2,s=[],i=["fn"];r&&i.push("thisWired");for(var u=0;u<o;++u)s.push(`arg${u}`),i.push(`arg${u}Wired`);s=s.join(","),i=i.join(",");var f=`return function (${s}) {\n`;a&&(f+="var destructors = [];\n");var c=a?"destructors":"null",l=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];for(r&&(f+=`var thisWired = classParam['toWireType'](${c}, this);\n`),u=0;u<o;++u)f+=`var arg${u}Wired = argType${u}['toWireType'](${c}, arg${u});\n`,l.push(`argType${u}`);if(f+=(t||n?"var rv = ":"")+`invoker(${i});\n`,a)f+="runDestructors(destructors);\n";else for(u=r?1:2;u<e.length;++u){var d=1===u?"thisWired":"arg"+(u-2)+"Wired";null!==e[u].destructorFunction&&(f+=`${d}_dtor(${d});\n`,l.push(`${d}_dtor`))}return t&&(f+="var ret = retType['fromWireType'](rv);\nreturn ret;\n"),[l,f+="}\n"]}(r,i,f,o);var p=new Function(...d,m)(...c);return je(e,p)}var fr,cr=(e,r,t)=>(e instanceof Object||Te(`${t} with invalid "this": ${e}`),e instanceof r.registeredClass.constructor||Te(`${t} incompatible with "this" of type ${e.constructor.name}`),e.$$.ptr||Te(`cannot call emscripten binding method ${t} on deleted object`),Ge(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)),lr=[],dr=[],mr=e=>{e>9&&0===--dr[e+1]&&(dr[e]=void 0,lr.push(e))},pr=()=>dr.length/2-5-lr.length,vr={toValue:e=>(e||Te(`Cannot use deleted val. handle = ${e}`),dr[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=lr.pop()||dr.length;return dr[r]=e,dr[r+1]=1,r}}}},hr={name:"emscripten::val",fromWireType:e=>{var r=vr.toValue(e);return mr(e),r},toWireType:(e,r)=>vr.toHandle(r),argPackAdvance:Se,readValueFromPointer:ge,destructorFunction:null},gr=(e,r,t)=>{switch(r){case 1:return t?function(e){return this.fromWireType(b[e])}:function(e){return this.fromWireType(w[e])};case 2:return t?function(e){return this.fromWireType(E[e>>1])}:function(e){return this.fromWireType(x[e>>1])};case 4:return t?function(e){return this.fromWireType(_[e>>2])}:function(e){return this.fromWireType(k[e>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},yr=(e,r)=>{var t=we[e];return void 0===t&&Te(`${r} has unknown type ${ar(e)}`),t},br=(e,r)=>{switch(r){case 4:return function(e){return this.fromWireType(P[e>>2])};case 8:return function(e){return this.fromWireType(T[e>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},wr=(e,r,t)=>oe(e,w,r,t),Er="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,xr=(e,r)=>{for(var t=e,n=t>>1,a=n+r/2;!(n>=a)&&x[n];)++n;if((t=n<<1)-e>32&&Er)return Er.decode(w.subarray(e,t));for(var o="",s=0;!(s>=r/2);++s){var i=E[e+2*s>>1];if(0==i)break;o+=String.fromCharCode(i)}return o},_r=(e,r,t)=>{if(t??=2147483647,t<2)return 0;for(var n=r,a=(t-=2)<2*e.length?t/2:e.length,o=0;o<a;++o){var s=e.charCodeAt(o);E[r>>1]=s,r+=2}return E[r>>1]=0,r-n},kr=e=>2*e.length,Pr=(e,r)=>{for(var t=0,n="";!(t>=r/4);){var a=_[e+4*t>>2];if(0==a)break;if(++t,a>=65536){var o=a-65536;n+=String.fromCharCode(55296|o>>10,56320|1023&o)}else n+=String.fromCharCode(a)}return n},Br=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,a=n+t-4,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++o);if(_[r>>2]=s,(r+=4)+4>a)break}return _[r>>2]=0,r-n},Cr=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&++t,r+=4}return r},Tr=(e,r,t)=>{var n=[],a=e.toWireType(n,t);return n.length&&(k[r>>2]=vr.toHandle(n)),a},Ar=[],$r={},Sr=e=>{var r=$r[e];return void 0===r?Be(e):r},Dr=e=>{var r=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_float","EXT_conservative_depth","EXT_disjoint_timer_query_webgl2","EXT_texture_norm16","NV_shader_noperspective_interpolation","WEBGL_clip_cull_distance","EXT_clip_control","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_polygon_offset_clamp","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw","WEBGL_polygon_mode"];return(e.getSupportedExtensions()||[]).filter(e=>r.includes(e))},Fr={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:e=>{Fr.lastError||(Fr.lastError=e)},getNewId:e=>{for(var r=Fr.counter++,t=e.length;t<r;t++)e[t]=null;for(;e[r];)r=Fr.counter++;return r},genObject:(e,r,t,n)=>{for(var a=0;a<e;a++){var o=fr[t](),s=o&&Fr.getNewId(n);o?(o.name=s,n[s]=o):Fr.recordError(1282),_[r+4*a>>2]=s}},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:e=>32-Math.clz32(0===e?0:e-1),generateTempBuffers:(e,r)=>{var t=Fr.log2ceilLookup(Fr.MAX_TEMP_BUFFER_SIZE);r.tempVertexBufferCounters1=[],r.tempVertexBufferCounters2=[],r.tempVertexBufferCounters1.length=r.tempVertexBufferCounters2.length=t+1,r.tempVertexBuffers1=[],r.tempVertexBuffers2=[],r.tempVertexBuffers1.length=r.tempVertexBuffers2.length=t+1,r.tempIndexBuffers=[],r.tempIndexBuffers.length=t+1;for(var n=0;n<=t;++n){r.tempIndexBuffers[n]=null,r.tempVertexBufferCounters1[n]=r.tempVertexBufferCounters2[n]=0;var a=Fr.numTempVertexBuffersPerSize;r.tempVertexBuffers1[n]=[],r.tempVertexBuffers2[n]=[];var o=r.tempVertexBuffers1[n],s=r.tempVertexBuffers2[n];o.length=s.length=a;for(var i=0;i<a;++i)o[i]=s[i]=null}if(e){r.tempQuadIndexBuffer=fr.createBuffer(),r.GLctx.bindBuffer(34963,r.tempQuadIndexBuffer);for(var u=Fr.MAX_TEMP_BUFFER_SIZE>>1,f=new Uint16Array(u),c=(n=0,0);!(f[n++]=c,n>=u||(f[n++]=c+1,n>=u)||(f[n++]=c+2,n>=u)||(f[n++]=c,n>=u)||(f[n++]=c+2,n>=u)||(f[n++]=c+3,n>=u));)c+=4;r.GLctx.bufferData(34963,f,35044),r.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:e=>{var r=Fr.log2ceilLookup(e),t=Fr.currentContext.tempVertexBuffers1[r],n=Fr.currentContext.tempVertexBufferCounters1[r];Fr.currentContext.tempVertexBufferCounters1[r]=Fr.currentContext.tempVertexBufferCounters1[r]+1&Fr.numTempVertexBuffersPerSize-1;var a=t[n];if(a)return a;var o=fr.getParameter(34964);return t[n]=fr.createBuffer(),fr.bindBuffer(34962,t[n]),fr.bufferData(34962,1<<r,35048),fr.bindBuffer(34962,o),t[n]},getTempIndexBuffer:e=>{var r=Fr.log2ceilLookup(e),t=Fr.currentContext.tempIndexBuffers[r];if(t)return t;var n=fr.getParameter(34965);return Fr.currentContext.tempIndexBuffers[r]=fr.createBuffer(),fr.bindBuffer(34963,Fr.currentContext.tempIndexBuffers[r]),fr.bufferData(34963,1<<r,35048),fr.bindBuffer(34963,n),Fr.currentContext.tempIndexBuffers[r]},newRenderingFrameStarted:()=>{if(Fr.currentContext){var e=Fr.currentContext.tempVertexBuffers1;Fr.currentContext.tempVertexBuffers1=Fr.currentContext.tempVertexBuffers2,Fr.currentContext.tempVertexBuffers2=e,e=Fr.currentContext.tempVertexBufferCounters1,Fr.currentContext.tempVertexBufferCounters1=Fr.currentContext.tempVertexBufferCounters2,Fr.currentContext.tempVertexBuffer