libredwg-web-ts
Version:
A DWG/DXF JavaScript parser based on libredwg
2 lines • 164 kB
JavaScript
(function(l,e){typeof exports=="object"&&typeof module<"u"?e(exports):typeof define=="function"&&define.amd?define(["exports"],e):(l=typeof globalThis<"u"?globalThis:l||self,e(l["libredwg-web"]={}))})(this,function(l){"use strict";var BB=Object.defineProperty;var EB=(l,e,cA)=>e in l?BB(l,e,{enumerable:!0,configurable:!0,writable:!0,value:cA}):l[e]=cA;var n=(l,e,cA)=>EB(l,typeof e!="symbol"?e+"":e,cA);var e=typeof document<"u"?document.currentScript:null;const cA="*Model_Space",CQ="*Paper_Space";var YC=(g=>(g[g.Rotated=0]="Rotated",g[g.Aligned=1]="Aligned",g[g.Angular=2]="Angular",g[g.Diameter=3]="Diameter",g[g.Radius=4]="Radius",g[g.Angular3Point=5]="Angular3Point",g[g.Ordinate=6]="Ordinate",g[g.ReferenceIsExclusive=32]="ReferenceIsExclusive",g[g.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",g[g.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",g))(YC||{}),SA=(g=>(g[g.TopLeft=1]="TopLeft",g[g.TopCenter=2]="TopCenter",g[g.TopRight=3]="TopRight",g[g.MiddleLeft=4]="MiddleLeft",g[g.MiddleCenter=5]="MiddleCenter",g[g.MiddleRight=6]="MiddleRight",g[g.BottomLeft=7]="BottomLeft",g[g.BottomCenter=8]="BottomCenter",g[g.BottomRight=9]="BottomRight",g))(SA||{}),NC=(g=>(g[g.AtLeast=1]="AtLeast",g[g.Exact=2]="Exact",g))(NC||{}),kC=(g=>(g[g.Center=0]="Center",g[g.Above=1]="Above",g[g.Outside=2]="Outside",g[g.JIS=3]="JIS",g[g.Below=4]="Below",g))(kC||{}),RC=(g=>(g[g.Feet=0]="Feet",g[g.None=1]="None",g[g.Inch=2]="Inch",g[g.FeetAndInch=3]="FeetAndInch",g[g.Leading=4]="Leading",g[g.Trailing=8]="Trailing",g[g.LeadingAndTrailing=12]="LeadingAndTrailing",g))(RC||{}),FC=(g=>(g[g.None=0]="None",g[g.Leading=1]="Leading",g[g.Trailing=2]="Trailing",g[g.LeadingAndTrailing=3]="LeadingAndTrailing",g))(FC||{}),hC=(g=>(g[g.Center=0]="Center",g[g.Left=1]="Left",g[g.Right=2]="Right",g[g.OverFirst=3]="OverFirst",g[g.OverSecond=4]="OverSecond",g))(hC||{}),iC=(g=>(g[g.Bottom=0]="Bottom",g[g.Center=1]="Center",g[g.Top=2]="Top",g))(iC||{}),$A=(g=>(g[g.PatternFill=0]="PatternFill",g[g.SolidFill=1]="SolidFill",g))($A||{}),Ag=(g=>(g[g.NonAssociative=0]="NonAssociative",g[g.Associative=1]="Associative",g))(Ag||{}),HC=(g=>(g[g.Normal=0]="Normal",g[g.Outer=1]="Outer",g[g.Ignore=2]="Ignore",g))(HC||{}),cC=(g=>(g[g.UserDefined=0]="UserDefined",g[g.Predefined=1]="Predefined",g[g.Custom=2]="Custom",g))(cC||{}),SC=(g=>(g[g.NotAnnotated=0]="NotAnnotated",g[g.Annotated=1]="Annotated",g))(SC||{}),LC=(g=>(g[g.Solid=0]="Solid",g[g.Gradient=1]="Gradient",g))(LC||{}),yC=(g=>(g[g.TwoColor=0]="TwoColor",g[g.OneColor=1]="OneColor",g))(yC||{}),JC=(g=>(g[g.Default=0]="Default",g[g.External=1]="External",g[g.Polyline=2]="Polyline",g[g.Derived=4]="Derived",g[g.Textbox=8]="Textbox",g[g.Outermost=16]="Outermost",g))(JC||{}),VA=(g=>(g[g.Line=1]="Line",g[g.Circular=2]="Circular",g[g.Elliptic=3]="Elliptic",g[g.Spline=4]="Spline",g))(VA||{}),sC=(g=>(g[g.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",g[g.CURVE_FIT=2]="CURVE_FIT",g[g.SPLINE_FIT=4]="SPLINE_FIT",g[g.POLYLINE_3D=8]="POLYLINE_3D",g[g.POLYGON_3D=16]="POLYGON_3D",g[g.CLOSED_POLYGON=32]="CLOSED_POLYGON",g[g.POLYFACE=64]="POLYFACE",g[g.CONTINUOUS=128]="CONTINUOUS",g))(sC||{}),sg=(g=>(g[g.NONE=0]="NONE",g[g.QUADRATIC=5]="QUADRATIC",g[g.CUBIC=6]="CUBIC",g[g.BEZIER=8]="BEZIER",g))(sg||{}),MC=(g=>(g[g.NONE=0]="NONE",g[g.MIRRORED_X=2]="MIRRORED_X",g[g.MIRRORED_Y=4]="MIRRORED_Y",g))(MC||{}),gg=(g=>(g[g.LEFT=0]="LEFT",g[g.CENTER=1]="CENTER",g[g.RIGHT=2]="RIGHT",g[g.ALIGNED=3]="ALIGNED",g[g.MIDDLE=4]="MIDDLE",g[g.FIT=5]="FIT",g))(gg||{}),qC=(g=>(g[g.BASELINE=0]="BASELINE",g[g.BOTTOM=1]="BOTTOM",g[g.MIDDLE=2]="MIDDLE",g[g.TOP=3]="TOP",g))(qC||{});const OC=Object.freeze(["ACADMAINTVER","ACADVER","ANGBASE","ANGDIR","ATTMODE","AUNITS","AUPREC","CECOLOR","CELTSCALE","CELTYPE","CELWEIGHT","CEPSNID","CEPSNTYPE","CHAMFERA","CHAMFERB","CHAMFERC","CHAMFERD","CLAYER","CMLJUST","CMLSCALE","CMLSTYLE","CSHADOW","DIMADEC","DIMALT","DIMALTD","DIMALTF","DIMALTRND","DIMALTTD","DIMALTTZ","DIMALTU","DIMALTZ","DIMAPOST","DIMASO","DIMASSOC","DIMASZ","DIMATFIT","DIMAUNIT","DIMAZIN","DIMBLK","DIMBLK1","DIMBLK2","DIMCEN","DIMCLRD","DIMCLRE","DIMCLRT","DIMDEC","DIMDLE","DIMDLI","DIMDSEP","DIMEXE","DIMEXO","DIMFAC","DIMGAP","DIMJUST","DIMLDRBLK","DIMLFAC","DIMLIM","DIMLUNIT","DIMLWD","DIMLWE","DIMPOST","DIMRND","DIMSAH","DIMSCALE","DIMSD1","DIMSD2","DIMSE1","DIMSE2","DIMSHO","DIMSOXD","DIMSTYLE","DIMTAD","DIMTDEC","DIMTFAC","DIMTIH","DIMTIX","DIMTM","DIMTMOVE","DIMTOFL","DIMTOH","DIMTOL","DIMTOLJ","DIMTP","DIMTSZ","DIMTVP","DIMTXSTY","DIMTXT","DIMTZIN","DIMUPT","DIMZIN","DISPSILH","DRAGVS","DWGCODEPAGE","ELEVATION","ENDCAPS","EXTMAX","EXTMIN","EXTNAMES","FILLETRAD","FILLMODE","FINGERPRINTGUID","HALOGAP","HANDSEED","HIDETEXT","HYPERLINKBASE","INDEXCTL","INSBASE","INSUNITS","INTERFERECOLOR","INTERFEREOBJVS","INTERFEREVPVS","INTERSECTIONCOLOR","INTERSECTIONDISPLAY","JOINSTYLE","LIMCHECK","LIMMAX","LIMMIN","LTSCALE","LUNITS","LUPREC","LWDISPLAY","MAXACTVP","MEASUREMENT","MENU","MIRRTEXT","OBSCOLOR","OBSLTYPE","ORTHOMODE","PDMODE","PDSIZE","PELEVATION","PEXTMAX","PEXTMIN","PINSBASE","PLIMCHECK","PLIMMAX","PLIMMIN","PLINEGEN","PLINEWID","PROJECTNAME","PROXYGRAPHICS","PSLTSCALE","PSTYLEMODE","PSVPSCALE","PUCSBASE","PUCSNAME","PUCSORG","PUCSORGBACK","PUCSORGBOTTOM","PUCSORGFRONT","PUCSORGLEFT","PUCSORGRIGHT","PUCSORGTOP","PUCSORTHOREF","PUCSORTHOVIEW","PUCSXDIR","PUCSYDIR","QTEXTMODE","REGENMODE","SHADEDGE","SHADEDIF","SHADOWPLANELOCATION","SKETCHINC","SKPOLY","SORTENTS","SPLINESEGS","SPLINETYPE","SURFTAB1","SURFTAB2","SURFTYPE","SURFU","SURFV","TDCREATE","TDINDWG","TDUCREATE","TDUPDATE","TDUSRTIMER","TDUUPDATE","TEXTSIZE","TEXTSTYLE","THICKNESS","TILEMODE","TRACEWID","TREEDEPTH","UCSBASE","UCSNAME","UCSORG","UCSORGBACK","UCSORGBOTTOM","UCSORGFRONT","UCSORGLEFT","UCSORGRIGHT","UCSORGTOP","UCSORTHOREF","UCSORTHOVIEW","UCSXDIR","UCSYDIR","UNITMODE","USERI1","USERI2","USERI3","USERI4","USERI5","USERR1","USERR2","USERR3","USERR4","USERR5","USRTIMER","VERSIONGUID","VISRETAIN","WORLDVIEW","XCLIPFRAME","XEDIT"]);var aC=(()=>{var g=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("libredwg-web.umd.cjs",document.baseURI).href;return async function(Q={}){var o,I=Q,G,N,U=new Promise((A,C)=>{G=A,N=C}),F=typeof window=="object",h=typeof WorkerGlobalScope<"u",i=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(i){const{createRequire:A}=await Promise.resolve().then(()=>KQ);var c=A(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("libredwg-web.umd.cjs",document.baseURI).href)}var M=Object.assign({},I),y="./this.program",S="";function j(A){return I.locateFile?I.locateFile(A,S):S+A}var s,J;if(i){var P=c("fs"),T=c("path");(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("libredwg-web.umd.cjs",document.baseURI).href).startsWith("data:")||(S=T.dirname(c("url").fileURLToPath(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:e&&e.tagName.toUpperCase()==="SCRIPT"&&e.src||new URL("libredwg-web.umd.cjs",document.baseURI).href))+"/"),J=A=>{A=kA(A)?new URL(A):A;var C=P.readFileSync(A);return C},s=async(A,C=!0)=>{A=kA(A)?new URL(A):A;var B=P.readFileSync(A,C?void 0:"utf8");return B},!I.thisProgram&&process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else(F||h)&&(h?S=self.location.href:typeof document<"u"&&document.currentScript&&(S=document.currentScript.src),g&&(S=g),S.startsWith("blob:")?S="":S=S.slice(0,S.replace(/[?#].*/,"").lastIndexOf("/")+1),h&&(J=A=>{var C=new XMLHttpRequest;return C.open("GET",A,!1),C.responseType="arraybuffer",C.send(null),new Uint8Array(C.response)}),s=async A=>{if(kA(A))return new Promise((B,E)=>{var w=new XMLHttpRequest;w.open("GET",A,!0),w.responseType="arraybuffer",w.onload=()=>{if(w.status==200||w.status==0&&w.response){B(w.response);return}E(w.status)},w.onerror=E,w.send(null)});var C=await fetch(A,{credentials:"same-origin"});if(C.ok)return C.arrayBuffer();throw new Error(C.status+" : "+C.url)});var d=I.print||console.log.bind(console),Z=I.printErr||console.error.bind(console);Object.assign(I,M),M=null,I.arguments&&I.arguments,I.thisProgram&&(y=I.thisProgram);var z=I.wasmBinary,m,BA=!1,x,$,QA,KA,a,W,MA,EA,ZA,qA,kA=A=>A.startsWith("file://");function TA(){var A=m.buffer;I.HEAP8=x=new Int8Array(A),I.HEAP16=QA=new Int16Array(A),I.HEAPU8=$=new Uint8Array(A),I.HEAPU16=KA=new Uint16Array(A),I.HEAP32=a=new Int32Array(A),I.HEAPU32=W=new Uint32Array(A),I.HEAPF32=MA=new Float32Array(A),I.HEAPF64=qA=new Float64Array(A),I.HEAP64=EA=new BigInt64Array(A),I.HEAPU64=ZA=new BigUint64Array(A)}function lA(){if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)lg(I.preRun.shift());Eg(wg)}function xA(){!I.noFSInit&&!D.initialized&&D.init(),GA.__wasm_call_ctors(),D.ignorePermissions=!1}function vg(){if(I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;)Tg(I.postRun.shift());Eg(Dg)}var RA=0,OA=null;function Bg(A){var C;RA++,(C=I.monitorRunDependencies)==null||C.call(I,RA)}function rA(A){var B;if(RA--,(B=I.monitorRunDependencies)==null||B.call(I,RA),RA==0&&OA){var C=OA;OA=null,C()}}function aA(A){var B;(B=I.onAbort)==null||B.call(I,A),A="Aborted("+A+")",Z(A),BA=!0,A+=". Build with -sASSERTIONS for more info.";var C=new WebAssembly.RuntimeError(A);throw N(C),C}var eA;function tg(){return I.locateFile?j("libredwg-web.wasm"):"/wasm/libredwg-web.wasm"}function jg(A){if(A==eA&&z)return new Uint8Array(z);if(J)return J(A);throw"both async and sync fetching of the wasm failed"}async function Pg(A){if(!z)try{var C=await s(A);return new Uint8Array(C)}catch{}return jg(A)}async function pg(A,C){try{var B=await Pg(A),E=await WebAssembly.instantiate(B,C);return E}catch(w){Z(`failed to asynchronously prepare wasm: ${w}`),aA(w)}}async function Vg(A,C,B){if(!A&&typeof WebAssembly.instantiateStreaming=="function"&&!kA(C)&&!i)try{var E=fetch(C,{credentials:"same-origin"}),w=await WebAssembly.instantiateStreaming(E,B);return w}catch(K){Z(`wasm streaming compile failed: ${K}`),Z("falling back to ArrayBuffer instantiation")}return pg(C,B)}function dg(){return{env:AQ,wasi_snapshot_preview1:AQ}}async function Zg(){function A(K,Y){return GA=K.exports,m=GA.memory,TA(),fC=GA.__indirect_function_table,rA(),GA}Bg();function C(K){return A(K.instance)}var B=dg();if(I.instantiateWasm)return new Promise((K,Y)=>{I.instantiateWasm(B,(k,R)=>{A(k),K(k.exports)})});eA??(eA=tg());try{var E=await Vg(z,eA,B),w=C(E);return w}catch(K){return N(K),Promise.reject(K)}}var Eg=A=>{for(;A.length>0;)A.shift()(I)},Dg=[],Tg=A=>Dg.unshift(A),wg=[],lg=A=>wg.unshift(A);I.noExitRuntime;function Wg(A,C,B="i8"){switch(B.endsWith("*")&&(B="*"),B){case"i1":x[A]=C;break;case"i8":x[A]=C;break;case"i16":QA[A>>1]=C;break;case"i32":a[A>>2]=C;break;case"i64":EA[A>>3]=BigInt(C);break;case"float":MA[A>>2]=C;break;case"double":qA[A>>3]=C;break;case"*":W[A>>2]=C;break;default:aA(`invalid type for setValue: ${B}`)}}var fg=A=>CB(A),zg=()=>IB(),og=typeof TextDecoder<"u"?new TextDecoder:void 0,LA=(A,C=0,B=NaN)=>{for(var E=C+B,w=C;A[w]&&!(w>=E);)++w;if(w-C>16&&A.buffer&&og)return og.decode(A.subarray(C,w));for(var K="";C<w;){var Y=A[C++];if(!(Y&128)){K+=String.fromCharCode(Y);continue}var k=A[C++]&63;if((Y&224)==192){K+=String.fromCharCode((Y&31)<<6|k);continue}var R=A[C++]&63;if((Y&240)==224?Y=(Y&15)<<12|k<<6|R:Y=(Y&7)<<18|k<<12|R<<6|A[C++]&63,Y<65536)K+=String.fromCharCode(Y);else{var H=Y-65536;K+=String.fromCharCode(55296|H>>10,56320|H&1023)}}return K},FA=(A,C)=>A?LA($,A,C):"",bg=(A,C,B,E)=>aA(`Assertion failed: ${FA(A)}, at: `+[C?FA(C):"unknown filename",B,E?FA(E):"unknown function"]);class xg{constructor(C){this.excPtr=C,this.ptr=C-24}set_type(C){W[this.ptr+4>>2]=C}get_type(){return W[this.ptr+4>>2]}set_destructor(C){W[this.ptr+8>>2]=C}get_destructor(){return W[this.ptr+8>>2]}set_caught(C){C=C?1:0,x[this.ptr+12]=C}get_caught(){return x[this.ptr+12]!=0}set_rethrown(C){C=C?1:0,x[this.ptr+13]=C}get_rethrown(){return x[this.ptr+13]!=0}init(C,B){this.set_adjusted_ptr(0),this.set_type(C),this.set_destructor(B)}set_adjusted_ptr(C){W[this.ptr+16>>2]=C}get_adjusted_ptr(){return W[this.ptr+16>>2]}}var Kg=0,rg=(A,C,B)=>{var E=new xg(A);throw E.init(C,B),Kg=A,Kg},WA=()=>{var A=a[+X.varargs>>2];return X.varargs+=4,A},yA=WA,r={isAbs:A=>A.charAt(0)==="/",splitPath:A=>{var C=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return C.exec(A).slice(1)},normalizeArray:(A,C)=>{for(var B=0,E=A.length-1;E>=0;E--){var w=A[E];w==="."?A.splice(E,1):w===".."?(A.splice(E,1),B++):B&&(A.splice(E,1),B--)}if(C)for(;B;B--)A.unshift("..");return A},normalize:A=>{var C=r.isAbs(A),B=A.slice(-1)==="/";return A=r.normalizeArray(A.split("/").filter(E=>!!E),!C).join("/"),!A&&!C&&(A="."),A&&B&&(A+="/"),(C?"/":"")+A},dirname:A=>{var C=r.splitPath(A),B=C[0],E=C[1];return!B&&!E?".":(E&&(E=E.slice(0,-1)),B+E)},basename:A=>A&&A.match(/([^\/]+|\/)\/*$/)[1],join:(...A)=>r.normalize(A.join("/")),join2:(A,C)=>r.normalize(A+"/"+C)},eg=()=>{if(i){var A=c("crypto");return C=>A.randomFillSync(C)}return C=>crypto.getRandomValues(C)},Gg=A=>{(Gg=eg())(A)},JA={resolve:(...A)=>{for(var C="",B=!1,E=A.length-1;E>=-1&&!B;E--){var w=E>=0?A[E]:D.cwd();if(typeof w!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!w)return"";C=w+"/"+C,B=r.isAbs(w)}return C=r.normalizeArray(C.split("/").filter(K=>!!K),!B).join("/"),(B?"/":"")+C||"."},relative:(A,C)=>{A=JA.resolve(A).slice(1),C=JA.resolve(C).slice(1);function B(H){for(var L=0;L<H.length&&H[L]==="";L++);for(var q=H.length-1;q>=0&&H[q]==="";q--);return L>q?[]:H.slice(L,q-L+1)}for(var E=B(A.split("/")),w=B(C.split("/")),K=Math.min(E.length,w.length),Y=K,k=0;k<K;k++)if(E[k]!==w[k]){Y=k;break}for(var R=[],k=Y;k<E.length;k++)R.push("..");return R=R.concat(w.slice(Y)),R.join("/")}},mA=[],vA=A=>{for(var C=0,B=0;B<A.length;++B){var E=A.charCodeAt(B);E<=127?C++:E<=2047?C+=2:E>=55296&&E<=57343?(C+=4,++B):C+=3}return C},uA=(A,C,B,E)=>{if(!(E>0))return 0;for(var w=B,K=B+E-1,Y=0;Y<A.length;++Y){var k=A.charCodeAt(Y);if(k>=55296&&k<=57343){var R=A.charCodeAt(++Y);k=65536+((k&1023)<<10)|R&1023}if(k<=127){if(B>=K)break;C[B++]=k}else if(k<=2047){if(B+1>=K)break;C[B++]=192|k>>6,C[B++]=128|k&63}else if(k<=65535){if(B+2>=K)break;C[B++]=224|k>>12,C[B++]=128|k>>6&63,C[B++]=128|k&63}else{if(B+3>=K)break;C[B++]=240|k>>18,C[B++]=128|k>>12&63,C[B++]=128|k>>6&63,C[B++]=128|k&63}}return C[B]=0,B-w},Ug=(A,C,B)=>{var E=vA(A)+1,w=new Array(E),K=uA(A,w,0,w.length);return w.length=K,w},mg=()=>{if(!mA.length){var A=null;if(i){var C=256,B=Buffer.alloc(C),E=0,w=process.stdin.fd;try{E=P.readSync(w,B,0,C)}catch(K){if(K.toString().includes("EOF"))E=0;else throw K}E>0&&(A=B.slice(0,E).toString("utf-8"))}else typeof window<"u"&&typeof window.prompt=="function"&&(A=window.prompt("Input: "),A!==null&&(A+=`
`));if(!A)return null;mA=Ug(A)}return mA.shift()},hA={ttys:[],init(){},shutdown(){},register(A,C){hA.ttys[A]={input:[],output:[],ops:C},D.registerDevice(A,hA.stream_ops)},stream_ops:{open(A){var C=hA.ttys[A.node.rdev];if(!C)throw new D.ErrnoError(43);A.tty=C,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,C,B,E,w){if(!A.tty||!A.tty.ops.get_char)throw new D.ErrnoError(60);for(var K=0,Y=0;Y<E;Y++){var k;try{k=A.tty.ops.get_char(A.tty)}catch{throw new D.ErrnoError(29)}if(k===void 0&&K===0)throw new D.ErrnoError(6);if(k==null)break;K++,C[B+Y]=k}return K&&(A.node.atime=Date.now()),K},write(A,C,B,E,w){if(!A.tty||!A.tty.ops.put_char)throw new D.ErrnoError(60);try{for(var K=0;K<E;K++)A.tty.ops.put_char(A.tty,C[B+K])}catch{throw new D.ErrnoError(29)}return E&&(A.node.mtime=A.node.ctime=Date.now()),K}},default_tty_ops:{get_char(A){return mg()},put_char(A,C){C===null||C===10?(d(LA(A.output)),A.output=[]):C!=0&&A.output.push(C)},fsync(A){var C;((C=A.output)==null?void 0:C.length)>0&&(d(LA(A.output)),A.output=[])},ioctl_tcgets(A){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(A,C,B){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,C){C===null||C===10?(Z(LA(A.output)),A.output=[]):C!=0&&A.output.push(C)},fsync(A){var C;((C=A.output)==null?void 0:C.length)>0&&(Z(LA(A.output)),A.output=[])}}},ug=(A,C)=>Math.ceil(A/C)*C,Yg=A=>{aA()},V={ops_table:null,mount(A){return V.createNode(null,"/",16895,0)},createNode(A,C,B,E){if(D.isBlkdev(B)||D.isFIFO(B))throw new D.ErrnoError(63);V.ops_table||(V.ops_table={dir:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,lookup:V.node_ops.lookup,mknod:V.node_ops.mknod,rename:V.node_ops.rename,unlink:V.node_ops.unlink,rmdir:V.node_ops.rmdir,readdir:V.node_ops.readdir,symlink:V.node_ops.symlink},stream:{llseek:V.stream_ops.llseek}},file:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:{llseek:V.stream_ops.llseek,read:V.stream_ops.read,write:V.stream_ops.write,allocate:V.stream_ops.allocate,mmap:V.stream_ops.mmap,msync:V.stream_ops.msync}},link:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr,readlink:V.node_ops.readlink},stream:{}},chrdev:{node:{getattr:V.node_ops.getattr,setattr:V.node_ops.setattr},stream:D.chrdev_stream_ops}});var w=D.createNode(A,C,B,E);return D.isDir(w.mode)?(w.node_ops=V.ops_table.dir.node,w.stream_ops=V.ops_table.dir.stream,w.contents={}):D.isFile(w.mode)?(w.node_ops=V.ops_table.file.node,w.stream_ops=V.ops_table.file.stream,w.usedBytes=0,w.contents=null):D.isLink(w.mode)?(w.node_ops=V.ops_table.link.node,w.stream_ops=V.ops_table.link.stream):D.isChrdev(w.mode)&&(w.node_ops=V.ops_table.chrdev.node,w.stream_ops=V.ops_table.chrdev.stream),w.atime=w.mtime=w.ctime=Date.now(),A&&(A.contents[C]=w,A.atime=A.mtime=A.ctime=w.atime),w},getFileDataAsTypedArray(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage(A,C){var B=A.contents?A.contents.length:0;if(!(B>=C)){var E=1024*1024;C=Math.max(C,B*(B<E?2:1.125)>>>0),B!=0&&(C=Math.max(C,256));var w=A.contents;A.contents=new Uint8Array(C),A.usedBytes>0&&A.contents.set(w.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,C){if(A.usedBytes!=C)if(C==0)A.contents=null,A.usedBytes=0;else{var B=A.contents;A.contents=new Uint8Array(C),B&&A.contents.set(B.subarray(0,Math.min(C,A.usedBytes))),A.usedBytes=C}},node_ops:{getattr(A){var C={};return C.dev=D.isChrdev(A.mode)?A.id:1,C.ino=A.id,C.mode=A.mode,C.nlink=1,C.uid=0,C.gid=0,C.rdev=A.rdev,D.isDir(A.mode)?C.size=4096:D.isFile(A.mode)?C.size=A.usedBytes:D.isLink(A.mode)?C.size=A.link.length:C.size=0,C.atime=new Date(A.atime),C.mtime=new Date(A.mtime),C.ctime=new Date(A.ctime),C.blksize=4096,C.blocks=Math.ceil(C.size/C.blksize),C},setattr(A,C){for(const B of["mode","atime","mtime","ctime"])C[B]!=null&&(A[B]=C[B]);C.size!==void 0&&V.resizeFileStorage(A,C.size)},lookup(A,C){throw V.doesNotExistError},mknod(A,C,B,E){return V.createNode(A,C,B,E)},rename(A,C,B){var E;try{E=D.lookupNode(C,B)}catch{}if(E){if(D.isDir(A.mode))for(var w in E.contents)throw new D.ErrnoError(55);D.hashRemoveNode(E)}delete A.parent.contents[A.name],C.contents[B]=A,A.name=B,C.ctime=C.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,C){delete A.contents[C],A.ctime=A.mtime=Date.now()},rmdir(A,C){var B=D.lookupNode(A,C);for(var E in B.contents)throw new D.ErrnoError(55);delete A.contents[C],A.ctime=A.mtime=Date.now()},readdir(A){return[".","..",...Object.keys(A.contents)]},symlink(A,C,B){var E=V.createNode(A,C,41471,0);return E.link=B,E},readlink(A){if(!D.isLink(A.mode))throw new D.ErrnoError(28);return A.link}},stream_ops:{read(A,C,B,E,w){var K=A.node.contents;if(w>=A.node.usedBytes)return 0;var Y=Math.min(A.node.usedBytes-w,E);if(Y>8&&K.subarray)C.set(K.subarray(w,w+Y),B);else for(var k=0;k<Y;k++)C[B+k]=K[w+k];return Y},write(A,C,B,E,w,K){if(C.buffer===x.buffer&&(K=!1),!E)return 0;var Y=A.node;if(Y.mtime=Y.ctime=Date.now(),C.subarray&&(!Y.contents||Y.contents.subarray)){if(K)return Y.contents=C.subarray(B,B+E),Y.usedBytes=E,E;if(Y.usedBytes===0&&w===0)return Y.contents=C.slice(B,B+E),Y.usedBytes=E,E;if(w+E<=Y.usedBytes)return Y.contents.set(C.subarray(B,B+E),w),E}if(V.expandFileStorage(Y,w+E),Y.contents.subarray&&C.subarray)Y.contents.set(C.subarray(B,B+E),w);else for(var k=0;k<E;k++)Y.contents[w+k]=C[B+k];return Y.usedBytes=Math.max(Y.usedBytes,w+E),E},llseek(A,C,B){var E=C;if(B===1?E+=A.position:B===2&&D.isFile(A.node.mode)&&(E+=A.node.usedBytes),E<0)throw new D.ErrnoError(28);return E},allocate(A,C,B){V.expandFileStorage(A.node,C+B),A.node.usedBytes=Math.max(A.node.usedBytes,C+B)},mmap(A,C,B,E,w){if(!D.isFile(A.node.mode))throw new D.ErrnoError(43);var K,Y,k=A.node.contents;if(!(w&2)&&k&&k.buffer===x.buffer)Y=!1,K=k.byteOffset;else{if(Y=!0,K=Yg(),!K)throw new D.ErrnoError(48);k&&((B>0||B+C<k.length)&&(k.subarray?k=k.subarray(B,B+C):k=Array.prototype.slice.call(k,B,B+C)),x.set(k,K))}return{ptr:K,allocated:Y}},msync(A,C,B,E,w){return V.stream_ops.write(A,C,0,E,B,!1),0}}},ng=async A=>{var C=await s(A);return new Uint8Array(C)},Xg=(A,C,B,E,w,K)=>{D.createDataFile(A,C,B,E,w,K)},_g=I.preloadPlugins||[],$g=(A,C,B,E)=>{typeof Browser<"u"&&Browser.init();var w=!1;return _g.forEach(K=>{w||K.canHandle(C)&&(K.handle(A,C,B,E),w=!0)}),w},AC=(A,C,B,E,w,K,Y,k,R,H)=>{var L=C?JA.resolve(r.join2(A,C)):A;function q(p){function O(v){H==null||H(),k||Xg(A,C,v,E,w,R),K==null||K(),rA()}$g(p,L,O,()=>{Y==null||Y(),rA()})||O(p)}Bg(),typeof B=="string"?ng(B).then(q,Y):q(B)},GQ=A=>{var C={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},B=C[A];if(typeof B>"u")throw new Error(`Unknown file open mode: ${A}`);return B},gC=(A,C)=>{var B=0;return A&&(B|=365),C&&(B|=146),B},D={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(A){n(this,"name","ErrnoError");this.errno=A}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{constructor(){n(this,"shared",{})}get object(){return this.node}set object(A){this.node=A}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(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{constructor(A,C,B,E){n(this,"node_ops",{});n(this,"stream_ops",{});n(this,"readMode",365);n(this,"writeMode",146);n(this,"mounted",null);A||(A=this),this.parent=A,this.mount=A.mount,this.id=D.nextInode++,this.name=C,this.mode=B,this.rdev=E,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return D.isDir(this.mode)}get isDevice(){return D.isChrdev(this.mode)}},lookupPath(A,C={}){if(!A)throw new D.ErrnoError(44);C.follow_mount??(C.follow_mount=!0),r.isAbs(A)||(A=D.cwd()+"/"+A);A:for(var B=0;B<40;B++){for(var E=A.split("/").filter(H=>!!H),w=D.root,K="/",Y=0;Y<E.length;Y++){var k=Y===E.length-1;if(k&&C.parent)break;if(E[Y]!=="."){if(E[Y]===".."){K=r.dirname(K),w=w.parent;continue}K=r.join2(K,E[Y]);try{w=D.lookupNode(w,E[Y])}catch(H){if((H==null?void 0:H.errno)===44&&k&&C.noent_okay)return{path:K};throw H}if(D.isMountpoint(w)&&(!k||C.follow_mount)&&(w=w.mounted.root),D.isLink(w.mode)&&(!k||C.follow)){if(!w.node_ops.readlink)throw new D.ErrnoError(52);var R=w.node_ops.readlink(w);r.isAbs(R)||(R=r.dirname(K)+"/"+R),A=R+"/"+E.slice(Y+1).join("/");continue A}}}return{path:K,node:w}}throw new D.ErrnoError(32)},getPath(A){for(var C;;){if(D.isRoot(A)){var B=A.mount.mountpoint;return C?B[B.length-1]!=="/"?`${B}/${C}`:B+C:B}C=C?`${A.name}/${C}`:A.name,A=A.parent}},hashName(A,C){for(var B=0,E=0;E<C.length;E++)B=(B<<5)-B+C.charCodeAt(E)|0;return(A+B>>>0)%D.nameTable.length},hashAddNode(A){var C=D.hashName(A.parent.id,A.name);A.name_next=D.nameTable[C],D.nameTable[C]=A},hashRemoveNode(A){var C=D.hashName(A.parent.id,A.name);if(D.nameTable[C]===A)D.nameTable[C]=A.name_next;else for(var B=D.nameTable[C];B;){if(B.name_next===A){B.name_next=A.name_next;break}B=B.name_next}},lookupNode(A,C){var B=D.mayLookup(A);if(B)throw new D.ErrnoError(B);for(var E=D.hashName(A.id,C),w=D.nameTable[E];w;w=w.name_next){var K=w.name;if(w.parent.id===A.id&&K===C)return w}return D.lookup(A,C)},createNode(A,C,B,E){var w=new D.FSNode(A,C,B,E);return D.hashAddNode(w),w},destroyNode(A){D.hashRemoveNode(A)},isRoot(A){return A===A.parent},isMountpoint(A){return!!A.mounted},isFile(A){return(A&61440)===32768},isDir(A){return(A&61440)===16384},isLink(A){return(A&61440)===40960},isChrdev(A){return(A&61440)===8192},isBlkdev(A){return(A&61440)===24576},isFIFO(A){return(A&61440)===4096},isSocket(A){return(A&49152)===49152},flagsToPermissionString(A){var C=["r","w","rw"][A&3];return A&512&&(C+="w"),C},nodePermissions(A,C){return D.ignorePermissions?0:C.includes("r")&&!(A.mode&292)||C.includes("w")&&!(A.mode&146)||C.includes("x")&&!(A.mode&73)?2:0},mayLookup(A){if(!D.isDir(A.mode))return 54;var C=D.nodePermissions(A,"x");return C||(A.node_ops.lookup?0:2)},mayCreate(A,C){if(!D.isDir(A.mode))return 54;try{var B=D.lookupNode(A,C);return 20}catch{}return D.nodePermissions(A,"wx")},mayDelete(A,C,B){var E;try{E=D.lookupNode(A,C)}catch(K){return K.errno}var w=D.nodePermissions(A,"wx");if(w)return w;if(B){if(!D.isDir(E.mode))return 54;if(D.isRoot(E)||D.getPath(E)===D.cwd())return 10}else if(D.isDir(E.mode))return 31;return 0},mayOpen(A,C){return A?D.isLink(A.mode)?32:D.isDir(A.mode)&&(D.flagsToPermissionString(C)!=="r"||C&576)?31:D.nodePermissions(A,D.flagsToPermissionString(C)):44},checkOpExists(A,C){if(!A)throw new D.ErrnoError(C);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=D.MAX_OPEN_FDS;A++)if(!D.streams[A])return A;throw new D.ErrnoError(33)},getStreamChecked(A){var C=D.getStream(A);if(!C)throw new D.ErrnoError(8);return C},getStream:A=>D.streams[A],createStream(A,C=-1){return A=Object.assign(new D.FSStream,A),C==-1&&(C=D.nextfd()),A.fd=C,D.streams[C]=A,A},closeStream(A){D.streams[A]=null},dupStream(A,C=-1){var E,w;var B=D.createStream(A,C);return(w=(E=B.stream_ops)==null?void 0:E.dup)==null||w.call(E,B),B},doSetAttr(A,C,B){var E=A==null?void 0:A.stream_ops.setattr,w=E?A:C;E??(E=C.node_ops.setattr),D.checkOpExists(E,63),E(w,B)},chrdev_stream_ops:{open(A){var B,E;var C=D.getDevice(A.node.rdev);A.stream_ops=C.stream_ops,(E=(B=A.stream_ops).open)==null||E.call(B,A)},llseek(){throw new D.ErrnoError(70)}},major:A=>A>>8,minor:A=>A&255,makedev:(A,C)=>A<<8|C,registerDevice(A,C){D.devices[A]={stream_ops:C}},getDevice:A=>D.devices[A],getMounts(A){for(var C=[],B=[A];B.length;){var E=B.pop();C.push(E),B.push(...E.mounts)}return C},syncfs(A,C){typeof A=="function"&&(C=A,A=!1),D.syncFSRequests++,D.syncFSRequests>1&&Z(`warning: ${D.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var B=D.getMounts(D.root.mount),E=0;function w(Y){return D.syncFSRequests--,C(Y)}function K(Y){if(Y)return K.errored?void 0:(K.errored=!0,w(Y));++E>=B.length&&w(null)}B.forEach(Y=>{if(!Y.type.syncfs)return K(null);Y.type.syncfs(Y,A,K)})},mount(A,C,B){var E=B==="/",w=!B,K;if(E&&D.root)throw new D.ErrnoError(10);if(!E&&!w){var Y=D.lookupPath(B,{follow_mount:!1});if(B=Y.path,K=Y.node,D.isMountpoint(K))throw new D.ErrnoError(10);if(!D.isDir(K.mode))throw new D.ErrnoError(54)}var k={type:A,opts:C,mountpoint:B,mounts:[]},R=A.mount(k);return R.mount=k,k.root=R,E?D.root=R:K&&(K.mounted=k,K.mount&&K.mount.mounts.push(k)),R},unmount(A){var C=D.lookupPath(A,{follow_mount:!1});if(!D.isMountpoint(C.node))throw new D.ErrnoError(28);var B=C.node,E=B.mounted,w=D.getMounts(E);Object.keys(D.nameTable).forEach(Y=>{for(var k=D.nameTable[Y];k;){var R=k.name_next;w.includes(k.mount)&&D.destroyNode(k),k=R}}),B.mounted=null;var K=B.mount.mounts.indexOf(E);B.mount.mounts.splice(K,1)},lookup(A,C){return A.node_ops.lookup(A,C)},mknod(A,C,B){var E=D.lookupPath(A,{parent:!0}),w=E.node,K=r.basename(A);if(!K)throw new D.ErrnoError(28);if(K==="."||K==="..")throw new D.ErrnoError(20);var Y=D.mayCreate(w,K);if(Y)throw new D.ErrnoError(Y);if(!w.node_ops.mknod)throw new D.ErrnoError(63);return w.node_ops.mknod(w,K,C,B)},statfs(A){return D.statfsNode(D.lookupPath(A,{follow:!0}).node)},statfsStream(A){return D.statfsNode(A.node)},statfsNode(A){var C={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:D.nextInode,ffree:D.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(C,A.node_ops.statfs(A.mount.opts.root)),C},create(A,C=438){return C&=4095,C|=32768,D.mknod(A,C,0)},mkdir(A,C=511){return C&=1023,C|=16384,D.mknod(A,C,0)},mkdirTree(A,C){for(var B=A.split("/"),E="",w=0;w<B.length;++w)if(B[w]){E+="/"+B[w];try{D.mkdir(E,C)}catch(K){if(K.errno!=20)throw K}}},mkdev(A,C,B){return typeof B>"u"&&(B=C,C=438),C|=8192,D.mknod(A,C,B)},symlink(A,C){if(!JA.resolve(A))throw new D.ErrnoError(44);var B=D.lookupPath(C,{parent:!0}),E=B.node;if(!E)throw new D.ErrnoError(44);var w=r.basename(C),K=D.mayCreate(E,w);if(K)throw new D.ErrnoError(K);if(!E.node_ops.symlink)throw new D.ErrnoError(63);return E.node_ops.symlink(E,w,A)},rename(A,C){var B=r.dirname(A),E=r.dirname(C),w=r.basename(A),K=r.basename(C),Y,k,R;if(Y=D.lookupPath(A,{parent:!0}),k=Y.node,Y=D.lookupPath(C,{parent:!0}),R=Y.node,!k||!R)throw new D.ErrnoError(44);if(k.mount!==R.mount)throw new D.ErrnoError(75);var H=D.lookupNode(k,w),L=JA.relative(A,E);if(L.charAt(0)!==".")throw new D.ErrnoError(28);if(L=JA.relative(C,B),L.charAt(0)!==".")throw new D.ErrnoError(55);var q;try{q=D.lookupNode(R,K)}catch{}if(H!==q){var p=D.isDir(H.mode),O=D.mayDelete(k,w,p);if(O)throw new D.ErrnoError(O);if(O=q?D.mayDelete(R,K,p):D.mayCreate(R,K),O)throw new D.ErrnoError(O);if(!k.node_ops.rename)throw new D.ErrnoError(63);if(D.isMountpoint(H)||q&&D.isMountpoint(q))throw new D.ErrnoError(10);if(R!==k&&(O=D.nodePermissions(k,"w"),O))throw new D.ErrnoError(O);D.hashRemoveNode(H);try{k.node_ops.rename(H,R,K),H.parent=R}catch(v){throw v}finally{D.hashAddNode(H)}}},rmdir(A){var C=D.lookupPath(A,{parent:!0}),B=C.node,E=r.basename(A),w=D.lookupNode(B,E),K=D.mayDelete(B,E,!0);if(K)throw new D.ErrnoError(K);if(!B.node_ops.rmdir)throw new D.ErrnoError(63);if(D.isMountpoint(w))throw new D.ErrnoError(10);B.node_ops.rmdir(B,E),D.destroyNode(w)},readdir(A){var C=D.lookupPath(A,{follow:!0}),B=C.node,E=D.checkOpExists(B.node_ops.readdir,54);return E(B)},unlink(A){var C=D.lookupPath(A,{parent:!0}),B=C.node;if(!B)throw new D.ErrnoError(44);var E=r.basename(A),w=D.lookupNode(B,E),K=D.mayDelete(B,E,!1);if(K)throw new D.ErrnoError(K);if(!B.node_ops.unlink)throw new D.ErrnoError(63);if(D.isMountpoint(w))throw new D.ErrnoError(10);B.node_ops.unlink(B,E),D.destroyNode(w)},readlink(A){var C=D.lookupPath(A),B=C.node;if(!B)throw new D.ErrnoError(44);if(!B.node_ops.readlink)throw new D.ErrnoError(28);return B.node_ops.readlink(B)},stat(A,C){var B=D.lookupPath(A,{follow:!C}),E=B.node,w=D.checkOpExists(E.node_ops.getattr,63);return w(E)},fstat(A){var C=D.getStreamChecked(A),B=C.node,E=C.stream_ops.getattr,w=E?C:B;return E??(E=B.node_ops.getattr),D.checkOpExists(E,63),E(w)},lstat(A){return D.stat(A,!0)},doChmod(A,C,B,E){D.doSetAttr(A,C,{mode:B&4095|C.mode&-4096,ctime:Date.now(),dontFollow:E})},chmod(A,C,B){var E;if(typeof A=="string"){var w=D.lookupPath(A,{follow:!B});E=w.node}else E=A;D.doChmod(null,E,C,B)},lchmod(A,C){D.chmod(A,C,!0)},fchmod(A,C){var B=D.getStreamChecked(A);D.doChmod(B,B.node,C,!1)},doChown(A,C,B){D.doSetAttr(A,C,{timestamp:Date.now(),dontFollow:B})},chown(A,C,B,E){var w;if(typeof A=="string"){var K=D.lookupPath(A,{follow:!E});w=K.node}else w=A;D.doChown(null,w,E)},lchown(A,C,B){D.chown(A,C,B,!0)},fchown(A,C,B){var E=D.getStreamChecked(A);D.doChown(E,E.node,!1)},doTruncate(A,C,B){if(D.isDir(C.mode))throw new D.ErrnoError(31);if(!D.isFile(C.mode))throw new D.ErrnoError(28);var E=D.nodePermissions(C,"w");if(E)throw new D.ErrnoError(E);D.doSetAttr(A,C,{size:B,timestamp:Date.now()})},truncate(A,C){if(C<0)throw new D.ErrnoError(28);var B;if(typeof A=="string"){var E=D.lookupPath(A,{follow:!0});B=E.node}else B=A;D.doTruncate(null,B,C)},ftruncate(A,C){var B=D.getStreamChecked(A);if(C<0||!(B.flags&2097155))throw new D.ErrnoError(28);D.doTruncate(B,B.node,C)},utime(A,C,B){var E=D.lookupPath(A,{follow:!0}),w=E.node,K=D.checkOpExists(w.node_ops.setattr,63);K(w,{atime:C,mtime:B})},open(A,C,B=438){if(A==="")throw new D.ErrnoError(44);C=typeof C=="string"?GQ(C):C,C&64?B=B&4095|32768:B=0;var E,w;if(typeof A=="object")E=A;else{w=A.endsWith("/");var K=D.lookupPath(A,{follow:!(C&131072),noent_okay:!0});E=K.node,A=K.path}var Y=!1;if(C&64)if(E){if(C&128)throw new D.ErrnoError(20)}else{if(w)throw new D.ErrnoError(31);E=D.mknod(A,B|511,0),Y=!0}if(!E)throw new D.ErrnoError(44);if(D.isChrdev(E.mode)&&(C&=-513),C&65536&&!D.isDir(E.mode))throw new D.ErrnoError(54);if(!Y){var k=D.mayOpen(E,C);if(k)throw new D.ErrnoError(k)}C&512&&!Y&&D.truncate(E,0),C&=-131713;var R=D.createStream({node:E,path:D.getPath(E),flags:C,seekable:!0,position:0,stream_ops:E.stream_ops,ungotten:[],error:!1});return R.stream_ops.open&&R.stream_ops.open(R),Y&&D.chmod(E,B&511),I.logReadFiles&&!(C&1)&&(A in D.readFiles||(D.readFiles[A]=1)),R},close(A){if(D.isClosed(A))throw new D.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(C){throw C}finally{D.closeStream(A.fd)}A.fd=null},isClosed(A){return A.fd===null},llseek(A,C,B){if(D.isClosed(A))throw new D.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new D.ErrnoError(70);if(B!=0&&B!=1&&B!=2)throw new D.ErrnoError(28);return A.position=A.stream_ops.llseek(A,C,B),A.ungotten=[],A.position},read(A,C,B,E,w){if(E<0||w<0)throw new D.ErrnoError(28);if(D.isClosed(A))throw new D.ErrnoError(8);if((A.flags&2097155)===1)throw new D.ErrnoError(8);if(D.isDir(A.node.mode))throw new D.ErrnoError(31);if(!A.stream_ops.read)throw new D.ErrnoError(28);var K=typeof w<"u";if(!K)w=A.position;else if(!A.seekable)throw new D.ErrnoError(70);var Y=A.stream_ops.read(A,C,B,E,w);return K||(A.position+=Y),Y},write(A,C,B,E,w,K){if(E<0||w<0)throw new D.ErrnoError(28);if(D.isClosed(A))throw new D.ErrnoError(8);if(!(A.flags&2097155))throw new D.ErrnoError(8);if(D.isDir(A.node.mode))throw new D.ErrnoError(31);if(!A.stream_ops.write)throw new D.ErrnoError(28);A.seekable&&A.flags&1024&&D.llseek(A,0,2);var Y=typeof w<"u";if(!Y)w=A.position;else if(!A.seekable)throw new D.ErrnoError(70);var k=A.stream_ops.write(A,C,B,E,w,K);return Y||(A.position+=k),k},allocate(A,C,B){if(D.isClosed(A))throw new D.ErrnoError(8);if(C<0||B<=0)throw new D.ErrnoError(28);if(!(A.flags&2097155))throw new D.ErrnoError(8);if(!D.isFile(A.node.mode)&&!D.isDir(A.node.mode))throw new D.ErrnoError(43);if(!A.stream_ops.allocate)throw new D.ErrnoError(138);A.stream_ops.allocate(A,C,B)},mmap(A,C,B,E,w){if(E&2&&!(w&2)&&(A.flags&2097155)!==2)throw new D.ErrnoError(2);if((A.flags&2097155)===1)throw new D.ErrnoError(2);if(!A.stream_ops.mmap)throw new D.ErrnoError(43);if(!C)throw new D.ErrnoError(28);return A.stream_ops.mmap(A,C,B,E,w)},msync(A,C,B,E,w){return A.stream_ops.msync?A.stream_ops.msync(A,C,B,E,w):0},ioctl(A,C,B){if(!A.stream_ops.ioctl)throw new D.ErrnoError(59);return A.stream_ops.ioctl(A,C,B)},readFile(A,C={}){if(C.flags=C.flags||0,C.encoding=C.encoding||"binary",C.encoding!=="utf8"&&C.encoding!=="binary")throw new Error(`Invalid encoding type "${C.encoding}"`);var B,E=D.open(A,C.flags),w=D.stat(A),K=w.size,Y=new Uint8Array(K);return D.read(E,Y,0,K,0),C.encoding==="utf8"?B=LA(Y):C.encoding==="binary"&&(B=Y),D.close(E),B},writeFile(A,C,B={}){B.flags=B.flags||577;var E=D.open(A,B.flags,B.mode);if(typeof C=="string"){var w=new Uint8Array(vA(C)+1),K=uA(C,w,0,w.length);D.write(E,w,0,K,void 0,B.canOwn)}else if(ArrayBuffer.isView(C))D.write(E,C,0,C.byteLength,void 0,B.canOwn);else throw new Error("Unsupported data type");D.close(E)},cwd:()=>D.currentPath,chdir(A){var C=D.lookupPath(A,{follow:!0});if(C.node===null)throw new D.ErrnoError(44);if(!D.isDir(C.node.mode))throw new D.ErrnoError(54);var B=D.nodePermissions(C.node,"x");if(B)throw new D.ErrnoError(B);D.currentPath=C.path},createDefaultDirectories(){D.mkdir("/tmp"),D.mkdir("/home"),D.mkdir("/home/web_user")},createDefaultDevices(){D.mkdir("/dev"),D.registerDevice(D.makedev(1,3),{read:()=>0,write:(E,w,K,Y,k)=>Y,llseek:()=>0}),D.mkdev("/dev/null",D.makedev(1,3)),hA.register(D.makedev(5,0),hA.default_tty_ops),hA.register(D.makedev(6,0),hA.default_tty1_ops),D.mkdev("/dev/tty",D.makedev(5,0)),D.mkdev("/dev/tty1",D.makedev(6,0));var A=new Uint8Array(1024),C=0,B=()=>(C===0&&(Gg(A),C=A.byteLength),A[--C]);D.createDevice("/dev","random",B),D.createDevice("/dev","urandom",B),D.mkdir("/dev/shm"),D.mkdir("/dev/shm/tmp")},createSpecialDirectories(){D.mkdir("/proc");var A=D.mkdir("/proc/self");D.mkdir("/proc/self/fd"),D.mount({mount(){var C=D.createNode(A,"fd",16895,73);return C.stream_ops={llseek:V.stream_ops.llseek},C.node_ops={lookup(B,E){var w=+E,K=D.getStreamChecked(w),Y={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>K.path},id:w+1};return Y.parent=Y,Y},readdir(){return Array.from(D.streams.entries()).filter(([B,E])=>E).map(([B,E])=>B.toString())}},C}},{},"/proc/self/fd")},createStandardStreams(A,C,B){A?D.createDevice("/dev","stdin",A):D.symlink("/dev/tty","/dev/stdin"),C?D.createDevice("/dev","stdout",null,C):D.symlink("/dev/tty","/dev/stdout"),B?D.createDevice("/dev","stderr",null,B):D.symlink("/dev/tty1","/dev/stderr"),D.open("/dev/stdin",0),D.open("/dev/stdout",1),D.open("/dev/stderr",1)},staticInit(){D.nameTable=new Array(4096),D.mount(V,{},"/"),D.createDefaultDirectories(),D.createDefaultDevices(),D.createSpecialDirectories(),D.filesystems={MEMFS:V}},init(A,C,B){D.initialized=!0,A??(A=I.stdin),C??(C=I.stdout),B??(B=I.stderr),D.createStandardStreams(A,C,B)},quit(){D.initialized=!1;for(var A=0;A<D.streams.length;A++){var C=D.streams[A];C&&D.close(C)}},findObject(A,C){var B=D.analyzePath(A,C);return B.exists?B.object:null},analyzePath(A,C){try{var B=D.lookupPath(A,{follow:!C});A=B.path}catch{}var E={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var B=D.lookupPath(A,{parent:!0});E.parentExists=!0,E.parentPath=B.path,E.parentObject=B.node,E.name=r.basename(A),B=D.lookupPath(A,{follow:!C}),E.exists=!0,E.path=B.path,E.object=B.node,E.name=B.node.name,E.isRoot=B.path==="/"}catch(w){E.error=w.errno}return E},createPath(A,C,B,E){A=typeof A=="string"?A:D.getPath(A);for(var w=C.split("/").reverse();w.length;){var K=w.pop();if(K){var Y=r.join2(A,K);try{D.mkdir(Y)}catch{}A=Y}}return Y},createFile(A,C,B,E,w){var K=r.join2(typeof A=="string"?A:D.getPath(A),C),Y=gC(E,w);return D.create(K,Y)},createDataFile(A,C,B,E,w,K){var Y=C;A&&(A=typeof A=="string"?A:D.getPath(A),Y=C?r.join2(A,C):A);var k=gC(E,w),R=D.create(Y,k);if(B){if(typeof B=="string"){for(var H=new Array(B.length),L=0,q=B.length;L<q;++L)H[L]=B.charCodeAt(L);B=H}D.chmod(R,k|146);var p=D.open(R,577);D.write(p,B,0,B.length,0,K),D.close(p),D.chmod(R,k)}},createDevice(A,C,B,E){var k;var w=r.join2(typeof A=="string"?A:D.getPath(A),C),K=gC(!!B,!!E);(k=D.createDevice).major??(k.major=64);var Y=D.makedev(D.createDevice.major++,0);return D.registerDevice(Y,{open(R){R.seekable=!1},close(R){var H;(H=E==null?void 0:E.buffer)!=null&&H.length&&E(10)},read(R,H,L,q,p){for(var O=0,v=0;v<q;v++){var b;try{b=B()}catch{throw new D.ErrnoError(29)}if(b===void 0&&O===0)throw new D.ErrnoError(6);if(b==null)break;O++,H[L+v]=b}return O&&(R.node.atime=Date.now()),O},write(R,H,L,q,p){for(var O=0;O<q;O++)try{E(H[L+O])}catch{throw new D.ErrnoError(29)}return q&&(R.node.mtime=R.node.ctime=Date.now()),O}}),D.mkdev(w,K,Y)},forceLoadFile(A){if(A.isDevice||A.isFolder||A.link||A.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");try{A.contents=J(A.url),A.usedBytes=A.contents.length}catch{throw new D.ErrnoError(29)}},createLazyFile(A,C,B,E,w){class K{constructor(){n(this,"lengthKnown",!1);n(this,"chunks",[])}get(O){if(!(O>this.length-1||O<0)){var v=O%this.chunkSize,b=O/this.chunkSize|0;return this.getter(b)[v]}}setDataGetter(O){this.getter=O}cacheLength(){var O=new XMLHttpRequest;if(O.open("HEAD",B,!1),O.send(null),!(O.status>=200&&O.status<300||O.status===304))throw new Error("Couldn't load "+B+". Status: "+O.status);var v=Number(O.getResponseHeader("Content-length")),b,gA=(b=O.getResponseHeader("Accept-Ranges"))&&b==="bytes",_=(b=O.getResponseHeader("Content-Encoding"))&&b==="gzip",CA=1024*1024;gA||(CA=v);var u=(wA,HA)=>{if(wA>HA)throw new Error("invalid range ("+wA+", "+HA+") or no bytes requested!");if(HA>v-1)throw new Error("only "+v+" bytes available! programmer error!");var AA=new XMLHttpRequest;if(AA.open("GET",B,!1),v!==CA&&AA.setRequestHeader("Range","bytes="+wA+"-"+HA),AA.responseType="arraybuffer",AA.overrideMimeType&&AA.overrideMimeType("text/plain; charset=x-user-defined"),AA.send(null),!(AA.status>=200&&AA.status<300||AA.status===304))throw new Error("Couldn't load "+B+". Status: "+AA.status);return AA.response!==void 0?new Uint8Array(AA.response||[]):Ug(AA.responseText||"")},pA=this;pA.setDataGetter(wA=>{var HA=wA*CA,AA=(wA+1)*CA-1;if(AA=Math.min(AA,v-1),typeof pA.chunks[wA]>"u"&&(pA.chunks[wA]=u(HA,AA)),typeof pA.chunks[wA]>"u")throw new Error("doXHR failed!");return pA.chunks[wA]}),(_||!v)&&(CA=v=1,v=this.getter(0).length,CA=v,d("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=v,this._chunkSize=CA,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<"u"){if(!h)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var Y=new K,k={isDevice:!1,contents:Y}}else var k={isDevice:!1,url:B};var R=D.createFile(A,C,k,E,w);k.contents?R.contents=k.contents:k.url&&(R.contents=null,R.url=k.url),Object.defineProperties(R,{usedBytes:{get:function(){return this.contents.length}}});var H={},L=Object.keys(R.stream_ops);L.forEach(p=>{var O=R.stream_ops[p];H[p]=(...v)=>(D.forceLoadFile(R),O(...v))});function q(p,O,v,b,gA){var _=p.node.contents;if(gA>=_.length)return 0;var CA=Math.min(_.length-gA,b);if(_.slice)for(var u=0;u<CA;u++)O[v+u]=_[gA+u];else for(var u=0;u<CA;u++)O[v+u]=_.get(gA+u);return CA}return H.read=(p,O,v,b,gA)=>(D.forceLoadFile(R),q(p,O,v,b,gA)),H.mmap=(p,O,v,b,gA)=>{D.forceLoadFile(R);var _=Yg();if(!_)throw new D.ErrnoError(48);return q(p,x,_,O,v),{ptr:_,allocated:!0}},R.stream_ops=H,R}},X={DEFAULT_POLLMASK:5,calculateAt(A,C,B){if(r.isAbs(C))return C;var E;if(A===-100)E=D.cwd();else{var w=X.getStreamFromFD(A);E=w.path}if(C.length==0){if(!B)throw new D.ErrnoError(44);return E}return E+"/"+C},writeStat(A,C){a[A>>2]=C.dev,a[A+4>>2]=C.mode,W[A+8>>2]=C.nlink,a[A+12>>2]=C.uid,a[A+16>>2]=C.gid,a[A+20>>2]=C.rdev,EA[A+24>>3]=BigInt(C.size),a[A+32>>2]=4096,a[A+36>>2]=C.blocks;var B=C.atime.getTime(),E=C.mtime.getTime(),w=C.ctime.getTime();return EA[A+40>>3]=BigInt(Math.floor(B/1e3)),W[A+48>>2]=B%1e3*1e3*1e3,EA[A+56>>3]=BigInt(Math.floor(E/1e3)),W[A+64>>2]=E%1e3*1e3*1e3,EA[A+72>>3]=BigInt(Math.floor(w/1e3)),W[A+80>>2]=w%1e3*1e3*1e3,EA[A+88>>3]=BigInt(C.ino),0},writeStatFs(A,C){a[A+4>>2]=C.bsize,a[A+40>>2]=C.bsize,a[A+8>>2]=C.blocks,a[A+12>>2]=C.bfree,a[A+16>>2]=C.bavail,a[A+20>>2]=C.files,a[A+24>>2]=C.ffree,a[A+28>>2]=C.fsid,a[A+44>>2]=C.flags,a[A+36>>2]=C.namelen},doMsync(A,C,B,E,w){if(!D.isFile(C.node.mode))throw new D.ErrnoError(43);if(E&2)return 0;var K=$.slice(A,A+B);D.msync(C,K,w,B,E)},getStreamFromFD(A){var C=D.getStreamChecked(A);return C},varargs:void 0,getStr(A){var C=FA(A);return C}};function UQ(A,C,B){X.varargs=B;try{var E=X.getStreamFromFD(A);switch(C){case 0:{var w=WA();if(w<0)return-28;for(;D.streams[w];)w++;var K;return K=D.dupStream(E,w),K.fd}case 1:case 2:return 0;case 3:return E.flags;case 4:{var w=WA();return E.flags|=w,0}case 12:{var w=yA(),Y=0;return QA[w+Y>>1]=2,0}case 13:case 14:return 0}return-28}catch(k){if(typeof D>"u"||k.name!=="ErrnoError")throw k;return-k.errno}}function YQ(A,C){try{return X.writeStat(C,D.fstat(A))}catch(B){if(typeof D>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function NQ(A,C,B){X.varargs=B;try{var E=X.getStreamFromFD(A);switch(C){case 21509:return E.tty?0:-59;case 21505:{if(!E.tty)return-59;if(E.tty.ops.ioctl_tcgets){var w=E.tty.ops.ioctl_tcgets(E),K=yA();a[K>>2]=w.c_iflag||0,a[K+4>>2]=w.c_oflag||0,a[K+8>>2]=w.c_cflag||0,a[K+12>>2]=w.c_lflag||0;for(var Y=0;Y<32;Y++)x[K+Y+17]=w.c_cc[Y]||0;return 0}return 0}case 21510:case 21511:case 21512:return E.tty?0:-59;case 21506:case 21507:case 21508:{if(!E.tty)return-59;if(E.tty.ops.ioctl_tcsets){for(var K=yA(),k=a[K>>2],R=a[K+4>>2],H=a[K+8>>2],L=a[K+12>>2],q=[],Y=0;Y<32;Y++)q.push(x[K+Y+17]);return E.tty.ops.ioctl_tcsets(E.tty,C,{c_iflag:k,c_oflag:R,c_cflag:H,c_lflag:L,c_cc:q})}return 0}case 21519:{if(!E.tty)return-59;var K=yA();return a[K>>2]=0,0}case 21520:return E.tty?-28:-59;case 21531:{var K=yA();return D.ioctl(E,C,K)}case 21523:{if(!E.tty)return-59;if(E.tty.ops.ioctl_tiocgwinsz){var p=E.tty.ops.ioctl_tiocgwinsz(E.tty),K=yA();QA[K>>1]=p[0],QA[K+2>>1]=p[1]}return 0}case 21524:return E.tty?0:-59;case 21515:return E.tty?0:-59;default:return-28}}catch(O){if(typeof D>"u"||O.name!=="ErrnoError")throw O;return-O.errno}}function kQ(A,C){try{return A=X.getStr(A),X.writeStat(C,D.lstat(A))}catch(B){if(typeof D>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}function RQ(A,C,B,E){try{C=X.getStr(C);var w=E&256,K=E&4096;return E=E&-6401,C=X.calculateAt(A,C,K),X.writeStat(B,w?D.lstat(C):D.stat(C))}catch(Y){if(typeof D>"u"||Y.name!=="ErrnoError")throw Y;return-Y.errno}}function FQ(A,C,B,E){X.varargs=E;try{C=X.getStr(C),C=X.calculateAt(A,C);var w=E?WA():0;return D.open(C,B,w).fd}catch(K){if(typeof D>"u"||K.name!=="ErrnoError")throw K;return-K.errno}}function hQ(A,C){try{return A=X.getStr(A),X.writeStat(C,D.stat(A))}catch(B){if(typeof D>"u"||B.name!=="ErrnoError")throw B;return-B.errno}}var iQ=()=>aA(""),Ng=A=>{if(A===null)return"null";var C=typeof A;return C==="object"||C==="array"||C==="function"?A.toString():""+A},HQ=()=>{for(var A=new Array(256),C=0;C<256;++C)A[C]=String.fromCharCode(C);PC=A},PC,IA=A=>{for(var C="",B=A;$[B];)C+=PC[$[B++]];return C},fA={},tA={},kg={},nA,f=A=>{throw new nA(A)},pC,Rg=A=>{throw new pC(A)},Fg=(A,C,B)=>{A.forEach(k=>kg[k]=C);function E(k){var R=B(k);R.length!==A.length&&Rg("Mismatched type converter count");for(var H=0;H<A.length;++H)UA(A[H],R[H])}var w=new Array(C.length),K=[],Y=0;C.forEach((k,R)=>{tA.hasOwnProperty(k)?w[R]=tA[k]:(K.push(k),fA.hasOwnProperty(k)||(fA[k]=[]),fA[k].push(()=>{w[R]=tA[k],++Y,Y===K.length&&E(w)}))}),K.length===0&&E(w)};function cQ(A,C,B={}){var E=C.name;if(A||f(`type "${E}" must have a positive integer typeid pointer`),tA.hasOwnProperty(A)){if(B.ignoreDuplicateRegistrations)return;f(`Cannot register type '${E}' twice`)}if(tA[A]=C,delete kg[A],fA.hasOwnProperty(A)){var w=fA[A];delete fA[A],w.forEach(K=>K())}}function UA(A,C,B={}){return cQ(A,C,B)}var VC=(A,C,B)=>{switch(C){case 1:return B?E=>x[E]:E=>$[E];case 2:return B?E=>QA[E>>1]:E=>KA[E>>1];case 4:return B?E=>a[E>>2]:E=>W[E>>2];case 8:return B?E=>EA[E>>3]:E=>ZA[E>>3];default:throw new TypeError(`invalid integer width (${C}): ${A}`)}},SQ=(A,C,B,E,w)=>{C=IA(C);var K=C.indexOf("u")!=-1;UA(A,{name:C,fromWireType:Y=>Y,toWireType:function(Y,k){if(typeof k!="bigint"&&typeof k!="number")throw new TypeError(`Cannot convert "${Ng(k)}" to ${this.name}`);return typeof k=="number"&&(k=BigInt(k)),k},argPackAdvance:NA,readValueFromPointer:VC(C,B,!K),destructorFunction:null})},NA=8,LQ=(A,C,B,E)=>{C=IA(C),UA(A,{name:C,fromWireType:function(w){return!!w},toWireType:function(w,K){return K?B:E},argPackAdvance:NA,readValueFromPointer:function(w){return this.fromWireType($[w])},destructorFunction:null})},yQ=A=>({count:A.count,deleteScheduled:A.deleteScheduled,preservePointerOnDelete:A.preservePointerOnDelete,ptr:A.ptr,ptrType:A.ptrType,smartPtr:A.smartPtr,smartPtrType:A.smartPtrType}),CC=A=>{function C(B){return B.$$.ptrType.registeredClass.name}f(C(A)+" instance already deleted")},QC=!1,dC=A=>{},JQ=A=>{A.smartPtr?A.smartPtrType.rawDestructor(A.smartPtr):A.ptrType.registeredClass.rawDestructor(A.ptr)},ZC=A=>{A.count.value-=1;var C=A.count.value===0;C&&JQ(A)},TC=(A,C,B)=>{if(C===B)return A;if(B.baseClass===void 0)return null;var E=TC(A,C,B.baseClass);return E===null?null:B.downcast(E)},lC={},sQ={},MQ=(A,C)=>{for(C===void 0&&f("ptr should not be undefined");A.baseClass;)C=A.upcast(C),A=A.baseClass;return C},qQ=(A,C)=>(C=MQ(A,C),sQ[C]),hg=(A,C)=>{(!C.ptrType||!C.ptr)&&Rg("makeClassHandle requires ptr and ptrType");var B=!!C.smartPtrType,E=!!C.smartPtr;return B!==E&&Rg("Both smartPtrType and smartPtr must be specified"),C.count={value:1},XA(Object.create(A,{$$:{value:C,writable:!0}}))};function OQ(A){var C=this.getPointee(A);if(!C)return this.destructor(A),null;var B=qQ(this.registeredClass,C);if(B!==void 0){if(B.$$.count.value===0)return B.$$.ptr=C,B.$$.smartPtr=A,B.clone();var E=B.clone();return this.destructor(A),E}function w(){return this.isSmartPointer?hg(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:C,smartPtrType:this,smartPtr:A}):hg(this.registeredClass.instancePrototype,{ptrType:this,ptr:A})}var K=this.registeredClass.getActualType(C),Y=lC[K]