@irewind/web-ffmpeg 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ffmpeg.worker.js +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/ffmpeg.worker.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @irewind/web-ffmpeg 1.1.
|
|
1
|
+
/*! @irewind/web-ffmpeg 1.1.2 | Copyright iRewind */
|
|
2
2
|
const e={LOAD:`LOAD`,RUN:`RUN`,ABORT_RUN:`ABORT_RUN`,CWD:`CWD`,CH_DIR:`CH_DIR`,EXISTS:`EXISTS`,IS_FILE:`IS_FILE`,IS_DIR:`IS_DIR`,WRITE_FILE:`WRITE_FILE`,READ_FILE:`READ_FILE`,DELETE_FILE:`DELETE_FILE`,RENAME:`RENAME`,CREATE_DIR:`CREATE_DIR`,LIST_DIR:`LIST_DIR`,DELETE_DIR:`DELETE_DIR`,ERROR:`ERROR`,LOG:`LOG`,PROGRESS:`PROGRESS`};async function t(e={}){var t,n=e,r=!1,i=!0;let a=Uint32Array.BYTES_PER_ELEMENT;n.NULL=0,n.SIZE_I32=a,n.DEFAULT_ARGS=[`./ffmpeg`,`-nostdin`,`-y`],n.ret=-1,n.abortRun=0,n.logger=()=>{},n.progress=()=>{};function o(e){let t=n.lengthBytesUTF8(e)+1,r=n._malloc(t);return n.stringToUTF8(e,r,t),r}function s(e){let t=e.length,r=n._malloc(t*a);for(let i=0;i<t;i++)n.setValue(r+a*i,o(e[i]),`i32`);return r}function c(e){n.abortRun=e}function l(e){n.logger({type:`stdout`,message:e})}function u(e){e.startsWith(`Aborted(native code called abort())`)===!1&&n.logger({type:`stderr`,message:e})}function d(...e){let t=[...n.DEFAULT_ARGS,...e];try{n._ffmpeg(t.length,s(t))}catch(e){if(!e.message.startsWith(`Aborted`))throw e}return n.ret}function f(e){n.logger=e}function p(e){n.progress=e}function ee(e,t){n.progress({progress:e,time:t})}function te(){n.ret=-1,n.abortRun=0}n.stringToPtr=o,n.stringsToPtr=s,n.print=l,n.printErr=u,n.runFFmpegCmd=d,n.setAbortRun=c,n.setLogger=f,n.setProgress=p,n.reset=te,n.receiveProgress=ee;var ne=`./this.program`,re=(e,t)=>{throw t},ie=import.meta.url,m=``;function h(e){return n.locateFile?n.locateFile(e,m):m+e}var ae,g;if(r||i){try{m=new URL(`.`,ie).href}catch{}i&&(g=e=>{var t=new XMLHttpRequest;return t.open(`GET`,e,!1),t.responseType=`arraybuffer`,t.send(null),new Uint8Array(t.response)}),ae=async e=>{var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var _=console.log.bind(console),v=console.error.bind(console),y,b=!1,x;function oe(e,t){e||k(t)}var se,ce,S,C,w,T,E,le,D,O,ue=!1;function de(){var e=Q.buffer;S=new Int8Array(e),w=new Int16Array(e),C=new Uint8Array(e),new Uint16Array(e),T=new Int32Array(e),E=new Uint32Array(e),le=new Float32Array(e),D=new Float64Array(e),O=new BigInt64Array(e),new BigUint64Array(e)}function fe(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)Oe(n.preRun.shift());we(De)}function pe(){ue=!0,!n.noFSInit&&!H.initialized&&H.init(),I.init(),$.$(),H.ignorePermissions=!1}function me(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)Ee(n.postRun.shift());we(Te)}function k(e){n.onAbort?.(e),e=`Aborted(`+e+`)`,v(e),b=!0,e+=`. Build with -sASSERTIONS for more info.`;var t=new WebAssembly.RuntimeError(e);throw ce?.(t),t}var he;function ge(){return n.locateFile?h(`ffmpeg.wasm`):new URL(`ffmpeg.wasm`,import.meta.url).href}function _e(e){if(e==he&&y)return new Uint8Array(y);if(g)return g(e);throw`both async and sync fetching of the wasm failed`}async function ve(e){if(!y)try{var t=await ae(e);return new Uint8Array(t)}catch{}return _e(e)}async function ye(e,t){try{var n=await ve(e);return await WebAssembly.instantiate(n,t)}catch(e){v(`failed to asynchronously prepare wasm: ${e}`),k(e)}}async function be(e,t,n){if(!e)try{var r=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(r,n)}catch(e){v(`wasm streaming compile failed: ${e}`),v(`falling back to ArrayBuffer instantiation`)}return ye(t,n)}function xe(){return{a:Cn}}async function Se(){function e(e,t){return $=e.exports,Sn($),de(),$}function t(t){return e(t.instance)}var r=xe();return n.instantiateWasm?new Promise((t,i)=>{n.instantiateWasm(r,(n,r)=>{t(e(n,r))})}):(he??=ge(),t(await be(y,he,r)))}class Ce{name=`ExitStatus`;constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var we=e=>{for(;e.length>0;)e.shift()(n)},Te=[],Ee=e=>Te.push(e),De=[],Oe=e=>De.push(e);function ke(e,t=`i8`){switch(t.endsWith(`*`)&&(t=`*`),t){case`i1`:return S[e];case`i8`:return S[e];case`i16`:return w[e>>1];case`i32`:return T[e>>2];case`i64`:return O[e>>3];case`float`:return le[e>>2];case`double`:return D[e>>3];case`*`:return E[e>>2];default:k(`invalid type for getValue: ${t}`)}}var Ae=!0;function je(e,t,n=`i8`){switch(n.endsWith(`*`)&&(n=`*`),n){case`i1`:S[e]=t;break;case`i8`:S[e]=t;break;case`i16`:w[e>>1]=t;break;case`i32`:T[e>>2]=t;break;case`i64`:O[e>>3]=BigInt(t);break;case`float`:le[e>>2]=t;break;case`double`:D[e>>3]=t;break;case`*`:E[e>>2]=t;break;default:k(`invalid type for setValue: ${n}`)}}var A=e=>yn(e),j=()=>bn(),Me=globalThis.TextDecoder&&new TextDecoder,Ne=(e,t,n,r)=>{var i=t+n;if(r)return i;for(;e[t]&&!(t>=i);)++t;return t},M=(e,t=0,n,r)=>{var i=Ne(e,t,n,r);if(i-t>16&&e.buffer&&Me)return Me.decode(e.subarray(t,i));for(var a=``;t<i;){var o=e[t++];if(!(o&128)){a+=String.fromCharCode(o);continue}var s=e[t++]&63;if((o&224)==192){a+=String.fromCharCode((o&31)<<6|s);continue}var c=e[t++]&63;if(o=(o&240)==224?(o&15)<<12|s<<6|c:(o&7)<<18|s<<12|c<<6|e[t++]&63,o<65536)a+=String.fromCharCode(o);else{var l=o-65536;a+=String.fromCharCode(55296|l>>10,56320|l&1023)}}return a},N=(e,t,n)=>e?M(C,e,t,n):``,Pe=(e,t,n,r)=>k(`Assertion failed: ${N(e)}, at: `+[t?N(t):`unknown filename`,n,r?N(r):`unknown function`]);class Fe{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){E[this.ptr+4>>2]=e}get_type(){return E[this.ptr+4>>2]}set_destructor(e){E[this.ptr+8>>2]=e}get_destructor(){return E[this.ptr+8>>2]}set_caught(e){e=e?1:0,S[this.ptr+12]=e}get_caught(){return S[this.ptr+12]!=0}set_rethrown(e){e=e?1:0,S[this.ptr+13]=e}get_rethrown(){return S[this.ptr+13]!=0}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){E[this.ptr+16>>2]=e}get_adjusted_ptr(){return E[this.ptr+16>>2]}}var Ie=0,Le=0,Re=(e,t,n)=>{throw new Fe(e).init(t,n),Ie=e,Le++,Ie},P={isAbs:e=>e.charAt(0)===`/`,splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},normalize:e=>{var t=P.isAbs(e),n=e.slice(-1)===`/`;return e=P.normalizeArray(e.split(`/`).filter(e=>!!e),!t).join(`/`),!e&&!t&&(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},dirname:e=>{var t=P.splitPath(e),n=t[0],r=t[1];return!n&&!r?`.`:(r&&=r.slice(0,-1),n+r)},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>P.normalize(e.join(`/`)),join2:(e,t)=>P.normalize(e+`/`+t)},ze=()=>e=>crypto.getRandomValues(e),Be=e=>{(Be=ze())(e)},F={resolve:(...e)=>{for(var t=``,n=!1,r=e.length-1;r>=-1&&!n;r--){var i=r>=0?e[r]:H.cwd();if(typeof i!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!i)return``;t=i+`/`+t,n=P.isAbs(i)}return t=P.normalizeArray(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},relative:(e,t)=>{e=F.resolve(e).slice(1),t=F.resolve(t).slice(1);function n(e){for(var t=0;t<e.length&&e[t]===``;t++);for(var n=e.length-1;n>=0&&e[n]===``;n--);return t>n?[]:e.slice(t,n-t+1)}for(var r=n(e.split(`/`)),i=n(t.split(`/`)),a=Math.min(r.length,i.length),o=a,s=0;s<a;s++)if(r[s]!==i[s]){o=s;break}for(var c=[],s=o;s<r.length;s++)c.push(`..`);return c=c.concat(i.slice(o)),c.join(`/`)}},Ve=[],He=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},Ue=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.codePointAt(o);if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63,o++}}return t[n]=0,n-i},We=(e,t,n)=>{var r=n>0?n:He(e)+1,i=Array(r),a=Ue(e,i,0,i.length);return t&&(i.length=a),i},Ge=()=>{if(!Ve.length){var e=null;if(!e)return null;Ve=We(e,!0)}return Ve.shift()},I={ttys:[],init(){},shutdown(){},register(e,t){I.ttys[e]={input:[],output:[],ops:t},H.registerDevice(e,I.stream_ops)},stream_ops:{open(e){var t=I.ttys[e.node.rdev];if(!t)throw new H.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,n,r,i){if(!e.tty||!e.tty.ops.get_char)throw new H.ErrnoError(60);for(var a=0,o=0;o<r;o++){var s;try{s=e.tty.ops.get_char(e.tty)}catch{throw new H.ErrnoError(29)}if(s===void 0&&a===0)throw new H.ErrnoError(6);if(s==null)break;a++,t[n+o]=s}return a&&(e.node.atime=Date.now()),a},write(e,t,n,r,i){if(!e.tty||!e.tty.ops.put_char)throw new H.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,t[n+a])}catch{throw new H.ErrnoError(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){return Ge()},put_char(e,t){t===null||t===10?(_(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output?.length>0&&(_(M(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,t,n){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(v(M(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output?.length>0&&(v(M(e.output)),e.output=[])}}},Ke=(e,t)=>C.fill(0,e,e+t),qe=(e,t)=>Math.ceil(e/t)*t,Je=e=>{e=qe(e,65536);var t=vn(65536,e);return t&&Ke(t,e),t},L={ops_table:null,mount(e){return L.createNode(null,`/`,16895,0)},createNode(e,t,n,r){if(H.isBlkdev(n)||H.isFIFO(n))throw new H.ErrnoError(63);L.ops_table||={dir:{node:{getattr:L.node_ops.getattr,setattr:L.node_ops.setattr,lookup:L.node_ops.lookup,mknod:L.node_ops.mknod,rename:L.node_ops.rename,unlink:L.node_ops.unlink,rmdir:L.node_ops.rmdir,readdir:L.node_ops.readdir,symlink:L.node_ops.symlink},stream:{llseek:L.stream_ops.llseek}},file:{node:{getattr:L.node_ops.getattr,setattr:L.node_ops.setattr},stream:{llseek:L.stream_ops.llseek,read:L.stream_ops.read,write:L.stream_ops.write,mmap:L.stream_ops.mmap,msync:L.stream_ops.msync}},link:{node:{getattr:L.node_ops.getattr,setattr:L.node_ops.setattr,readlink:L.node_ops.readlink},stream:{}},chrdev:{node:{getattr:L.node_ops.getattr,setattr:L.node_ops.setattr},stream:H.chrdev_stream_ops}};var i=H.createNode(e,t,n,r);return H.isDir(i.mode)?(i.node_ops=L.ops_table.dir.node,i.stream_ops=L.ops_table.dir.stream,i.contents={}):H.isFile(i.mode)?(i.node_ops=L.ops_table.file.node,i.stream_ops=L.ops_table.file.stream,i.usedBytes=0,i.contents=null):H.isLink(i.mode)?(i.node_ops=L.ops_table.link.node,i.stream_ops=L.ops_table.link.stream):H.isChrdev(i.mode)&&(i.node_ops=L.ops_table.chrdev.node,i.stream_ops=L.ops_table.chrdev.stream),i.atime=i.mtime=i.ctime=Date.now(),e&&(e.contents[t]=i,e.atime=e.mtime=e.ctime=i.atime),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){t=Math.max(t,n*(n<1024*1024?2:1.125)>>>0),n!=0&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=H.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,H.isDir(e.mode)?t.size=4096:H.isFile(e.mode)?t.size=e.usedBytes:H.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.atime),t.mtime=new Date(e.mtime),t.ctime=new Date(e.ctime),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){for(let n of[`mode`,`atime`,`mtime`,`ctime`])t[n]!=null&&(e[n]=t[n]);t.size!==void 0&&L.resizeFileStorage(e,t.size)},lookup(e,t){throw L.doesNotExistError||(L.doesNotExistError=new H.ErrnoError(44),L.doesNotExistError.stack=`<generic error, no stack>`),L.doesNotExistError},mknod(e,t,n,r){return L.createNode(e,t,n,r)},rename(e,t,n){var r;try{r=H.lookupNode(t,n)}catch{}if(r){if(H.isDir(e.mode))for(var i in r.contents)throw new H.ErrnoError(55);H.hashRemoveNode(r)}delete e.parent.contents[e.name],t.contents[n]=e,e.name=n,t.ctime=t.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,t){delete e.contents[t],e.ctime=e.mtime=Date.now()},rmdir(e,t){for(var n in H.lookupNode(e,t).contents)throw new H.ErrnoError(55);delete e.contents[t],e.ctime=e.mtime=Date.now()},readdir(e){return[`.`,`..`,...Object.keys(e.contents)]},symlink(e,t,n){var r=L.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!H.isLink(e.mode))throw new H.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-i,r);if(o>8&&a.subarray)t.set(a.subarray(i,i+o),n);else for(var s=0;s<o;s++)t[n+s]=a[i+s];return o},write(e,t,n,r,i,a){if(t.buffer===S.buffer&&(a=!1),!r)return 0;var o=e.node;if(o.mtime=o.ctime=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return o.contents=t.subarray(n,n+r),o.usedBytes=r,r;if(o.usedBytes===0&&i===0)return o.contents=t.slice(n,n+r),o.usedBytes=r,r;if(i+r<=o.usedBytes)return o.contents.set(t.subarray(n,n+r),i),r}if(L.expandFileStorage(o,i+r),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(n,n+r),i);else for(var s=0;s<r;s++)o.contents[i+s]=t[n+s];return o.usedBytes=Math.max(o.usedBytes,i+r),r},llseek(e,t,n){var r=t;if(n===1?r+=e.position:n===2&&H.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new H.ErrnoError(28);return r},mmap(e,t,n,r,i){if(!H.isFile(e.node.mode))throw new H.ErrnoError(43);var a,o,s=e.node.contents;if(!(i&2)&&s&&s.buffer===S.buffer)o=!1,a=s.byteOffset;else{if(o=!0,a=Je(t),!a)throw new H.ErrnoError(48);s&&((n>0||n+t<s.length)&&(s=s.subarray?s.subarray(n,n+t):Array.prototype.slice.call(s,n,n+t)),S.set(s,a))}return{ptr:a,allocated:o}},msync(e,t,n,r,i){return L.stream_ops.write(e,t,0,r,n,!1),0}}},Ye=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(t===void 0)throw Error(`Unknown file open mode: ${e}`);return t},Xe=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},R={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(e){oe(i),R.reader??=new FileReaderSync;var t=R.createNode(null,`/`,R.DIR_MODE,0),n={};function r(e){for(var r=e.split(`/`),i=t,a=0;a<r.length-1;a++){var o=r.slice(0,a+1).join(`/`);n[o]||=R.createNode(i,r[a],R.DIR_MODE,0),i=n[o]}return i}function a(e){var t=e.split(`/`);return t[t.length-1]}for(var o of e.opts.files||[])R.createNode(r(o.name),a(o.name),R.FILE_MODE,0,o,o.lastModifiedDate);for(var s of e.opts.blobs||[])R.createNode(r(s.name),a(s.name),R.FILE_MODE,0,s.data);for(var c of e.opts.packages||[])for(var o of c.metadata.files){var l=o.filename.slice(1);R.createNode(r(l),a(l),R.FILE_MODE,0,c.blob.slice(o.start,o.end))}return t},createNode(e,t,n,r,i,a){var o=H.createNode(e,t,n);return o.mode=n,o.node_ops=R.node_ops,o.stream_ops=R.stream_ops,o.atime=o.mtime=o.ctime=(a||new Date).getTime(),oe(R.FILE_MODE!==R.DIR_MODE),n===R.FILE_MODE?(o.size=i.size,o.contents=i):(o.size=4096,o.contents={}),e&&(e.contents[t]=o),o},node_ops:{getattr(e){return{dev:1,ino:e.id,mode:e.mode,nlink:1,uid:0,gid:0,rdev:0,size:e.size,atime:new Date(e.atime),mtime:new Date(e.mtime),ctime:new Date(e.ctime),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr(e,t){for(let n of[`mode`,`atime`,`mtime`,`ctime`])t[n]!=null&&(e[n]=t[n])},lookup(e,t){throw new H.ErrnoError(44)},mknod(e,t,n,r){throw new H.ErrnoError(63)},rename(e,t,n){throw new H.ErrnoError(63)},unlink(e,t){throw new H.ErrnoError(63)},rmdir(e,t){throw new H.ErrnoError(63)},readdir(e){var t=[`.`,`..`];for(var n of Object.keys(e.contents))t.push(n);return t},symlink(e,t,n){throw new H.ErrnoError(63)}},stream_ops:{read(e,t,n,r,i){if(i>=e.node.size)return 0;var a=e.node.contents.slice(i,i+r),o=R.reader.readAsArrayBuffer(a);return t.set(new Uint8Array(o),n),a.size},write(e,t,n,r,i){throw new H.ErrnoError(29)},llseek(e,t,n){var r=t;if(n===1?r+=e.position:n===2&&H.isFile(e.node.mode)&&(r+=e.node.size),r<0)throw new H.ErrnoError(28);return r}}},Ze=async e=>{var t=await ae(e);return new Uint8Array(t)},Qe=(...e)=>H.createDataFile(...e),$e=e=>e,z=0,B=null,et=e=>{if(z--,n.monitorRunDependencies?.(z),z==0&&B){var t=B;B=null,t()}},tt=e=>{z++,n.monitorRunDependencies?.(z)},V=[],nt=async(e,t)=>{X!==void 0&&X.init();for(var n of V)if(n.canHandle(t))return n.handle(e,t);return e},rt=async(e,t,n,r,i,a,o,s)=>{var c=t?F.resolve(P.join2(e,t)):e,l=$e(`cp ${c}`);tt(l);try{var u=n;typeof n==`string`&&(u=await Ze(n)),u=await nt(u,c),s?.(),a||Qe(e,t,u,r,i,o)}finally{et(l)}},it=(e,t,n,r,i,a,o,s,c,l)=>{rt(e,t,n,r,i,s,c,l).then(a).catch(o)},H={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:`/`,initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=`ErrnoError`;constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!=1}get isWrite(){return(this.flags&2097155)!=0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,t,n,r){e||=this,this.parent=e,this.mount=e.mount,this.id=H.nextInode++,this.name=t,this.mode=n,this.rdev=r,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 H.isDir(this.mode)}get isDevice(){return H.isChrdev(this.mode)}},lookupPath(e,t={}){if(!e)throw new H.ErrnoError(44);t.follow_mount??=!0,P.isAbs(e)||(e=H.cwd()+`/`+e);linkloop:for(var n=0;n<40;n++){for(var r=e.split(`/`).filter(e=>!!e),i=H.root,a=`/`,o=0;o<r.length;o++){var s=o===r.length-1;if(s&&t.parent)break;if(r[o]!==`.`){if(r[o]===`..`){if(a=P.dirname(a),H.isRoot(i)){e=a+`/`+r.slice(o+1).join(`/`),n--;continue linkloop}else i=i.parent;continue}a=P.join2(a,r[o]);try{i=H.lookupNode(i,r[o])}catch(e){if(e?.errno===44&&s&&t.noent_okay)return{path:a};throw e}if(H.isMountpoint(i)&&(!s||t.follow_mount)&&(i=i.mounted.root),H.isLink(i.mode)&&(!s||t.follow)){if(!i.node_ops.readlink)throw new H.ErrnoError(52);var c=i.node_ops.readlink(i);P.isAbs(c)||(c=P.dirname(a)+`/`+c),e=c+`/`+r.slice(o+1).join(`/`);continue linkloop}}}return{path:a,node:i}}throw new H.ErrnoError(32)},getPath(e){for(var t;;){if(H.isRoot(e)){var n=e.mount.mountpoint;return t?n[n.length-1]===`/`?n+t:`${n}/${t}`:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%H.nameTable.length},hashAddNode(e){var t=H.hashName(e.parent.id,e.name);e.name_next=H.nameTable[t],H.nameTable[t]=e},hashRemoveNode(e){var t=H.hashName(e.parent.id,e.name);if(H.nameTable[t]===e)H.nameTable[t]=e.name_next;else for(var n=H.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode(e,t){var n=H.mayLookup(e);if(n)throw new H.ErrnoError(n);for(var r=H.hashName(e.id,t),i=H.nameTable[r];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return H.lookup(e,t)},createNode(e,t,n,r){var i=new H.FSNode(e,t,n,r);return H.hashAddNode(i),i},destroyNode(e){H.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)==32768},isDir(e){return(e&61440)==16384},isLink(e){return(e&61440)==40960},isChrdev(e){return(e&61440)==8192},isBlkdev(e){return(e&61440)==24576},isFIFO(e){return(e&61440)==4096},isSocket(e){return(e&49152)==49152},flagsToPermissionString(e){var t=[`r`,`w`,`rw`][e&3];return e&512&&(t+=`w`),t},nodePermissions(e,t){return H.ignorePermissions?0:t.includes(`r`)&&!(e.mode&292)||t.includes(`w`)&&!(e.mode&146)||t.includes(`x`)&&!(e.mode&73)?2:0},mayLookup(e){return H.isDir(e.mode)?H.nodePermissions(e,`x`)||(e.node_ops.lookup?0:2):54},mayCreate(e,t){if(!H.isDir(e.mode))return 54;try{return H.lookupNode(e,t),20}catch{}return H.nodePermissions(e,`wx`)},mayDelete(e,t,n){var r;try{r=H.lookupNode(e,t)}catch(e){return e.errno}var i=H.nodePermissions(e,`wx`);if(i)return i;if(n){if(!H.isDir(r.mode))return 54;if(H.isRoot(r)||H.getPath(r)===H.cwd())return 10}else if(H.isDir(r.mode))return 31;return 0},mayOpen(e,t){return e?H.isLink(e.mode)?32:H.isDir(e.mode)&&(H.flagsToPermissionString(t)!==`r`||t&576)?31:H.nodePermissions(e,H.flagsToPermissionString(t)):44},checkOpExists(e,t){if(!e)throw new H.ErrnoError(t);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=H.MAX_OPEN_FDS;e++)if(!H.streams[e])return e;throw new H.ErrnoError(33)},getStreamChecked(e){var t=H.getStream(e);if(!t)throw new H.ErrnoError(8);return t},getStream:e=>H.streams[e],createStream(e,t=-1){return e=Object.assign(new H.FSStream,e),t==-1&&(t=H.nextfd()),e.fd=t,H.streams[t]=e,e},closeStream(e){H.streams[e]=null},dupStream(e,t=-1){var n=H.createStream(e,t);return n.stream_ops?.dup?.(n),n},doSetAttr(e,t,n){var r=e?.stream_ops.setattr,i=r?e:t;r??=t.node_ops.setattr,H.checkOpExists(r,63),r(i,n)},chrdev_stream_ops:{open(e){e.stream_ops=H.getDevice(e.node.rdev).stream_ops,e.stream_ops.open?.(e)},llseek(){throw new H.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){H.devices[e]={stream_ops:t}},getDevice:e=>H.devices[e],getMounts(e){for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push(...r.mounts)}return t},syncfs(e,t){typeof e==`function`&&(t=e,e=!1),H.syncFSRequests++,H.syncFSRequests>1&&v(`warning: ${H.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=H.getMounts(H.root.mount),r=0;function i(e){return H.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++r>=n.length&&i(null)}for(var o of n)o.type.syncfs?o.type.syncfs(o,e,a):a(null)},mount(e,t,n){var r=n===`/`,i=!n,a;if(r&&H.root)throw new H.ErrnoError(10);if(!r&&!i){var o=H.lookupPath(n,{follow_mount:!1});if(n=o.path,a=o.node,H.isMountpoint(a))throw new H.ErrnoError(10);if(!H.isDir(a.mode))throw new H.ErrnoError(54)}var s={type:e,opts:t,mountpoint:n,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,r?H.root=c:a&&(a.mounted=s,a.mount&&a.mount.mounts.push(s)),c},unmount(e){var t=H.lookupPath(e,{follow_mount:!1});if(!H.isMountpoint(t.node))throw new H.ErrnoError(28);var n=t.node,r=n.mounted,i=H.getMounts(r);for(var[a,o]of Object.entries(H.nameTable))for(;o;){var s=o.name_next;i.includes(o.mount)&&H.destroyNode(o),o=s}n.mounted=null;var c=n.mount.mounts.indexOf(r);n.mount.mounts.splice(c,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,n){var r=H.lookupPath(e,{parent:!0}).node,i=P.basename(e);if(!i)throw new H.ErrnoError(28);if(i===`.`||i===`..`)throw new H.ErrnoError(20);var a=H.mayCreate(r,i);if(a)throw new H.ErrnoError(a);if(!r.node_ops.mknod)throw new H.ErrnoError(63);return r.node_ops.mknod(r,i,t,n)},statfs(e){return H.statfsNode(H.lookupPath(e,{follow:!0}).node)},statfsStream(e){return H.statfsNode(e.node)},statfsNode(e){var t={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:H.nextInode,ffree:H.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(t,e.node_ops.statfs(e.mount.opts.root)),t},create(e,t=438){return t&=4095,t|=32768,H.mknod(e,t,0)},mkdir(e,t=511){return t&=1023,t|=16384,H.mknod(e,t,0)},mkdirTree(e,t){var n=e.split(`/`),r=``;for(var i of n)if(i){(r||P.isAbs(e))&&(r+=`/`),r+=i;try{H.mkdir(r,t)}catch(e){if(e.errno!=20)throw e}}},mkdev(e,t,n){return n===void 0&&(n=t,t=438),t|=8192,H.mknod(e,t,n)},symlink(e,t){if(!F.resolve(e))throw new H.ErrnoError(44);var n=H.lookupPath(t,{parent:!0}).node;if(!n)throw new H.ErrnoError(44);var r=P.basename(t),i=H.mayCreate(n,r);if(i)throw new H.ErrnoError(i);if(!n.node_ops.symlink)throw new H.ErrnoError(63);return n.node_ops.symlink(n,r,e)},rename(e,t){var n=P.dirname(e),r=P.dirname(t),i=P.basename(e),a=P.basename(t),o=H.lookupPath(e,{parent:!0}),s=o.node,c;if(o=H.lookupPath(t,{parent:!0}),c=o.node,!s||!c)throw new H.ErrnoError(44);if(s.mount!==c.mount)throw new H.ErrnoError(75);var l=H.lookupNode(s,i),u=F.relative(e,r);if(u.charAt(0)!==`.`)throw new H.ErrnoError(28);if(u=F.relative(t,n),u.charAt(0)!==`.`)throw new H.ErrnoError(55);var d;try{d=H.lookupNode(c,a)}catch{}if(l!==d){var f=H.isDir(l.mode),p=H.mayDelete(s,i,f);if(p||(p=d?H.mayDelete(c,a,f):H.mayCreate(c,a),p))throw new H.ErrnoError(p);if(!s.node_ops.rename)throw new H.ErrnoError(63);if(H.isMountpoint(l)||d&&H.isMountpoint(d))throw new H.ErrnoError(10);if(c!==s&&(p=H.nodePermissions(s,`w`),p))throw new H.ErrnoError(p);H.hashRemoveNode(l);try{s.node_ops.rename(l,c,a),l.parent=c}catch(e){throw e}finally{H.hashAddNode(l)}}},rmdir(e){var t=H.lookupPath(e,{parent:!0}).node,n=P.basename(e),r=H.lookupNode(t,n),i=H.mayDelete(t,n,!0);if(i)throw new H.ErrnoError(i);if(!t.node_ops.rmdir)throw new H.ErrnoError(63);if(H.isMountpoint(r))throw new H.ErrnoError(10);t.node_ops.rmdir(t,n),H.destroyNode(r)},readdir(e){var t=H.lookupPath(e,{follow:!0}).node;return H.checkOpExists(t.node_ops.readdir,54)(t)},unlink(e){var t=H.lookupPath(e,{parent:!0}).node;if(!t)throw new H.ErrnoError(44);var n=P.basename(e),r=H.lookupNode(t,n),i=H.mayDelete(t,n,!1);if(i)throw new H.ErrnoError(i);if(!t.node_ops.unlink)throw new H.ErrnoError(63);if(H.isMountpoint(r))throw new H.ErrnoError(10);t.node_ops.unlink(t,n),H.destroyNode(r)},readlink(e){var t=H.lookupPath(e).node;if(!t)throw new H.ErrnoError(44);if(!t.node_ops.readlink)throw new H.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,t){var n=H.lookupPath(e,{follow:!t}).node;return H.checkOpExists(n.node_ops.getattr,63)(n)},fstat(e){var t=H.getStreamChecked(e),n=t.node,r=t.stream_ops.getattr,i=r?t:n;return r??=n.node_ops.getattr,H.checkOpExists(r,63),r(i)},lstat(e){return H.stat(e,!0)},doChmod(e,t,n,r){H.doSetAttr(e,t,{mode:n&4095|t.mode&-4096,ctime:Date.now(),dontFollow:r})},chmod(e,t,n){var r=typeof e==`string`?H.lookupPath(e,{follow:!n}).node:e;H.doChmod(null,r,t,n)},lchmod(e,t){H.chmod(e,t,!0)},fchmod(e,t){var n=H.getStreamChecked(e);H.doChmod(n,n.node,t,!1)},doChown(e,t,n){H.doSetAttr(e,t,{timestamp:Date.now(),dontFollow:n})},chown(e,t,n,r){var i=typeof e==`string`?H.lookupPath(e,{follow:!r}).node:e;H.doChown(null,i,r)},lchown(e,t,n){H.chown(e,t,n,!0)},fchown(e,t,n){var r=H.getStreamChecked(e);H.doChown(r,r.node,!1)},doTruncate(e,t,n){if(H.isDir(t.mode))throw new H.ErrnoError(31);if(!H.isFile(t.mode))throw new H.ErrnoError(28);var r=H.nodePermissions(t,`w`);if(r)throw new H.ErrnoError(r);H.doSetAttr(e,t,{size:n,timestamp:Date.now()})},truncate(e,t){if(t<0)throw new H.ErrnoError(28);var n=typeof e==`string`?H.lookupPath(e,{follow:!0}).node:e;H.doTruncate(null,n,t)},ftruncate(e,t){var n=H.getStreamChecked(e);if(t<0||!(n.flags&2097155))throw new H.ErrnoError(28);H.doTruncate(n,n.node,t)},utime(e,t,n){var r=H.lookupPath(e,{follow:!0}).node;H.checkOpExists(r.node_ops.setattr,63)(r,{atime:t,mtime:n})},open(e,t,r=438){if(e===``)throw new H.ErrnoError(44);t=typeof t==`string`?Ye(t):t,r=t&64?r&4095|32768:0;var i,a;if(typeof e==`object`)i=e;else{a=e.endsWith(`/`);var o=H.lookupPath(e,{follow:!(t&131072),noent_okay:!0});i=o.node,e=o.path}var s=!1;if(t&64)if(i){if(t&128)throw new H.ErrnoError(20)}else if(a)throw new H.ErrnoError(31);else i=H.mknod(e,r|511,0),s=!0;if(!i)throw new H.ErrnoError(44);if(H.isChrdev(i.mode)&&(t&=-513),t&65536&&!H.isDir(i.mode))throw new H.ErrnoError(54);if(!s){var c=H.mayOpen(i,t);if(c)throw new H.ErrnoError(c)}t&512&&!s&&H.truncate(i,0),t&=-131713;var l=H.createStream({node:i,path:H.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),s&&H.chmod(i,r&511),n.logReadFiles&&!(t&1)&&(e in H.readFiles||(H.readFiles[e]=1)),l},close(e){if(H.isClosed(e))throw new H.ErrnoError(8);e.getdents&&=null;try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{H.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,n){if(H.isClosed(e))throw new H.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new H.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new H.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read(e,t,n,r,i){if(r<0||i<0)throw new H.ErrnoError(28);if(H.isClosed(e)||(e.flags&2097155)==1)throw new H.ErrnoError(8);if(H.isDir(e.node.mode))throw new H.ErrnoError(31);if(!e.stream_ops.read)throw new H.ErrnoError(28);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new H.ErrnoError(70);var o=e.stream_ops.read(e,t,n,r,i);return a||(e.position+=o),o},write(e,t,n,r,i,a){if(r<0||i<0)throw new H.ErrnoError(28);if(H.isClosed(e)||!(e.flags&2097155))throw new H.ErrnoError(8);if(H.isDir(e.node.mode))throw new H.ErrnoError(31);if(!e.stream_ops.write)throw new H.ErrnoError(28);e.seekable&&e.flags&1024&&H.llseek(e,0,2);var o=i!==void 0;if(!o)i=e.position;else if(!e.seekable)throw new H.ErrnoError(70);var s=e.stream_ops.write(e,t,n,r,i,a);return o||(e.position+=s),s},mmap(e,t,n,r,i){if(r&2&&!(i&2)&&(e.flags&2097155)!=2||(e.flags&2097155)==1)throw new H.ErrnoError(2);if(!e.stream_ops.mmap)throw new H.ErrnoError(43);if(!t)throw new H.ErrnoError(28);return e.stream_ops.mmap(e,t,n,r,i)},msync(e,t,n,r,i){return e.stream_ops.msync?e.stream_ops.msync(e,t,n,r,i):0},ioctl(e,t,n){if(!e.stream_ops.ioctl)throw new H.ErrnoError(59);return e.stream_ops.ioctl(e,t,n)},readFile(e,t={}){t.flags=t.flags||0,t.encoding=t.encoding||`binary`,t.encoding!==`utf8`&&t.encoding!==`binary`&&k(`Invalid encoding type "${t.encoding}"`);var n=H.open(e,t.flags),r=H.stat(e).size,i=new Uint8Array(r);return H.read(n,i,0,r,0),t.encoding===`utf8`&&(i=M(i)),H.close(n),i},writeFile(e,t,n={}){n.flags=n.flags||577;var r=H.open(e,n.flags,n.mode);typeof t==`string`&&(t=new Uint8Array(We(t,!0))),ArrayBuffer.isView(t)?H.write(r,t,0,t.byteLength,void 0,n.canOwn):k(`Unsupported data type`),H.close(r)},cwd:()=>H.currentPath,chdir(e){var t=H.lookupPath(e,{follow:!0});if(t.node===null)throw new H.ErrnoError(44);if(!H.isDir(t.node.mode))throw new H.ErrnoError(54);var n=H.nodePermissions(t.node,`x`);if(n)throw new H.ErrnoError(n);H.currentPath=t.path},createDefaultDirectories(){H.mkdir(`/tmp`),H.mkdir(`/home`),H.mkdir(`/home/web_user`)},createDefaultDevices(){H.mkdir(`/dev`),H.registerDevice(H.makedev(1,3),{read:()=>0,write:(e,t,n,r,i)=>r,llseek:()=>0}),H.mkdev(`/dev/null`,H.makedev(1,3)),I.register(H.makedev(5,0),I.default_tty_ops),I.register(H.makedev(6,0),I.default_tty1_ops),H.mkdev(`/dev/tty`,H.makedev(5,0)),H.mkdev(`/dev/tty1`,H.makedev(6,0));var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(Be(e),t=e.byteLength),e[--t]);H.createDevice(`/dev`,`random`,n),H.createDevice(`/dev`,`urandom`,n),H.mkdir(`/dev/shm`),H.mkdir(`/dev/shm/tmp`)},createSpecialDirectories(){H.mkdir(`/proc`);var e=H.mkdir(`/proc/self`);H.mkdir(`/proc/self/fd`),H.mount({mount(){var t=H.createNode(e,`fd`,16895,73);return t.stream_ops={llseek:L.stream_ops.llseek},t.node_ops={lookup(e,t){var n=+t,r=H.getStreamChecked(n),i={parent:null,mount:{mountpoint:`fake`},node_ops:{readlink:()=>r.path},id:n+1};return i.parent=i,i},readdir(){return Array.from(H.streams.entries()).filter(([e,t])=>t).map(([e,t])=>e.toString())}},t}},{},`/proc/self/fd`)},createStandardStreams(e,t,n){e?H.createDevice(`/dev`,`stdin`,e):H.symlink(`/dev/tty`,`/dev/stdin`),t?H.createDevice(`/dev`,`stdout`,null,t):H.symlink(`/dev/tty`,`/dev/stdout`),n?H.createDevice(`/dev`,`stderr`,null,n):H.symlink(`/dev/tty1`,`/dev/stderr`),H.open(`/dev/stdin`,0),H.open(`/dev/stdout`,1),H.open(`/dev/stderr`,1)},staticInit(){H.nameTable=Array(4096),H.mount(L,{},`/`),H.createDefaultDirectories(),H.createDefaultDevices(),H.createSpecialDirectories(),H.filesystems={MEMFS:L,WORKERFS:R}},init(e,t,r){H.initialized=!0,e??=n.stdin,t??=n.stdout,r??=n.stderr,H.createStandardStreams(e,t,r)},quit(){H.initialized=!1;for(var e of H.streams)e&&H.close(e)},findObject(e,t){var n=H.analyzePath(e,t);return n.exists?n.object:null},analyzePath(e,t){try{var n=H.lookupPath(e,{follow:!t});e=n.path}catch{}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=H.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=P.basename(e),n=H.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot=n.path===`/`}catch(e){r.error=e.errno}return r},createPath(e,t,n,r){e=typeof e==`string`?e:H.getPath(e);for(var i=t.split(`/`).reverse();i.length;){var a=i.pop();if(a){var o=P.join2(e,a);try{H.mkdir(o)}catch(e){if(e.errno!=20)throw e}e=o}}return o},createFile(e,t,n,r,i){var a=P.join2(typeof e==`string`?e:H.getPath(e),t),o=Xe(r,i);return H.create(a,o)},createDataFile(e,t,n,r,i,a){var o=t;e&&(e=typeof e==`string`?e:H.getPath(e),o=t?P.join2(e,t):e);var s=Xe(r,i),c=H.create(o,s);if(n){if(typeof n==`string`){for(var l=Array(n.length),u=0,d=n.length;u<d;++u)l[u]=n.charCodeAt(u);n=l}H.chmod(c,s|146);var f=H.open(c,577);H.write(f,n,0,n.length,0,a),H.close(f),H.chmod(c,s)}},createDevice(e,t,n,r){var i=P.join2(typeof e==`string`?e:H.getPath(e),t),a=Xe(!!n,!!r);H.createDevice.major??=64;var o=H.makedev(H.createDevice.major++,0);return H.registerDevice(o,{open(e){e.seekable=!1},close(e){r?.buffer?.length&&r(10)},read(e,t,r,i,a){for(var o=0,s=0;s<i;s++){var c;try{c=n()}catch{throw new H.ErrnoError(29)}if(c===void 0&&o===0)throw new H.ErrnoError(6);if(c==null)break;o++,t[r+s]=c}return o&&(e.node.atime=Date.now()),o},write(e,t,n,i,a){for(var o=0;o<i;o++)try{r(t[n+o])}catch{throw new H.ErrnoError(29)}return i&&(e.node.mtime=e.node.ctime=Date.now()),o}}),H.mkdev(i,a,o)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(globalThis.XMLHttpRequest)k(`Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.`);else try{e.contents=g(e.url)}catch{throw new H.ErrnoError(29)}},createLazyFile(e,t,n,r,a){class o{lengthKnown=!1;chunks=[];get(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,n=e/this.chunkSize|0;return this.getter(n)[t]}}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;e.open(`HEAD`,n,!1),e.send(null),e.status>=200&&e.status<300||e.status===304||k(`Couldn't load `+n+`. Status: `+e.status);var t=Number(e.getResponseHeader(`Content-length`)),r,i=(r=e.getResponseHeader(`Accept-Ranges`))&&r===`bytes`,a=(r=e.getResponseHeader(`Content-Encoding`))&&r===`gzip`,o=1024*1024;i||(o=t);var s=(e,r)=>{e>r&&k(`invalid range (`+e+`, `+r+`) or no bytes requested!`),r>t-1&&k(`only `+t+` bytes available! programmer error!`);var i=new XMLHttpRequest;return i.open(`GET`,n,!1),t!==o&&i.setRequestHeader(`Range`,`bytes=`+e+`-`+r),i.responseType=`arraybuffer`,i.overrideMimeType&&i.overrideMimeType(`text/plain; charset=x-user-defined`),i.send(null),i.status>=200&&i.status<300||i.status===304||k(`Couldn't load `+n+`. Status: `+i.status),i.response===void 0?We(i.responseText||``,!0):new Uint8Array(i.response||[])},c=this;c.setDataGetter(e=>{var n=e*o,r=(e+1)*o-1;return r=Math.min(r,t-1),c.chunks[e]===void 0&&(c.chunks[e]=s(n,r)),c.chunks[e]===void 0&&k(`doXHR failed!`),c.chunks[e]}),(a||!t)&&(o=t=1,t=this.getter(0).length,o=t,_(`LazyFiles on gzip forces download of the whole file when length is accessed`)),this._length=t,this._chunkSize=o,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(globalThis.XMLHttpRequest){i||k(`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 var s={isDevice:!1,url:n};var c=H.createFile(e,t,s,r,a);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var l={};for(let[e,t]of Object.entries(c.stream_ops))l[e]=(...e)=>(H.forceLoadFile(c),t(...e));function u(e,t,n,r,i){var a=e.node.contents;if(i>=a.length)return 0;var o=Math.min(a.length-i,r);if(a.slice)for(var s=0;s<o;s++)t[n+s]=a[i+s];else for(var s=0;s<o;s++)t[n+s]=a.get(i+s);return o}return l.read=(e,t,n,r,i)=>(H.forceLoadFile(c),u(e,t,n,r,i)),l.mmap=(e,t,n,r,i)=>{H.forceLoadFile(c);var a=Je(t);if(!a)throw new H.ErrnoError(48);return u(e,S,a,t,n),{ptr:a,allocated:!0}},c.stream_ops=l,c}},U={DEFAULT_POLLMASK:5,calculateAt(e,t,n){if(P.isAbs(t))return t;var r=e===-100?H.cwd():U.getStreamFromFD(e).path;if(t.length==0){if(!n)throw new H.ErrnoError(44);return r}return r+`/`+t},writeStat(e,t){E[e>>2]=t.dev,E[e+4>>2]=t.mode,E[e+8>>2]=t.nlink,E[e+12>>2]=t.uid,E[e+16>>2]=t.gid,E[e+20>>2]=t.rdev,O[e+24>>3]=BigInt(t.size),T[e+32>>2]=4096,T[e+36>>2]=t.blocks;var n=t.atime.getTime(),r=t.mtime.getTime(),i=t.ctime.getTime();return O[e+40>>3]=BigInt(Math.floor(n/1e3)),E[e+48>>2]=n%1e3*1e3*1e3,O[e+56>>3]=BigInt(Math.floor(r/1e3)),E[e+64>>2]=r%1e3*1e3*1e3,O[e+72>>3]=BigInt(Math.floor(i/1e3)),E[e+80>>2]=i%1e3*1e3*1e3,O[e+88>>3]=BigInt(t.ino),0},writeStatFs(e,t){E[e+4>>2]=t.bsize,E[e+60>>2]=t.bsize,O[e+8>>3]=BigInt(t.blocks),O[e+16>>3]=BigInt(t.bfree),O[e+24>>3]=BigInt(t.bavail),O[e+32>>3]=BigInt(t.files),O[e+40>>3]=BigInt(t.ffree),E[e+48>>2]=t.fsid,E[e+64>>2]=t.flags,E[e+56>>2]=t.namelen},doMsync(e,t,n,r,i){if(!H.isFile(t.node.mode))throw new H.ErrnoError(43);if(r&2)return 0;var a=C.slice(e,e+n);H.msync(t,a,i,n,r)},getStreamFromFD(e){return H.getStreamChecked(e)},varargs:void 0,getStr(e){return N(e)}};function at(e,t,n,r){try{if(t=U.getStr(t),t=U.calculateAt(e,t),n&-8)return-28;var i=H.lookupPath(t,{follow:!0}).node;if(!i)return-44;var a=``;return n&4&&(a+=`r`),n&2&&(a+=`w`),n&1&&(a+=`x`),a&&H.nodePermissions(i,a)?-2:0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var W=()=>{var e=T[U.varargs>>2];return U.varargs+=4,e},G=W;function ot(e,t,n){U.varargs=n;try{var r=U.getStreamFromFD(e);switch(t){case 0:var i=W();if(i<0)return-28;for(;H.streams[i];)i++;return H.dupStream(r,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:var i=W();return r.flags|=i,0;case 12:var i=G(),a=0;return w[i+a>>1]=2,0;case 13:case 14:return 0}return-28}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function st(e,t){try{return U.writeStat(t,H.fstat(e))}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var K=(e,t,n)=>Ue(e,C,t,n);function ct(e,t,n){try{var r=U.getStreamFromFD(e);r.getdents||=H.readdir(r.path);for(var i=280,a=0,o=H.llseek(r,0,1),s=Math.floor(o/i),c=Math.min(r.getdents.length,s+Math.floor(n/i)),l=s;l<c;l++){var u,d,f=r.getdents[l];if(f===`.`)u=r.node.id,d=4;else if(f===`..`)u=H.lookupPath(r.path,{parent:!0}).node.id,d=4;else{var p;try{p=H.lookupNode(r.node,f)}catch(e){if(e?.errno===28)continue;throw e}u=p.id,d=H.isChrdev(p.mode)?2:H.isDir(p.mode)?4:H.isLink(p.mode)?10:8}O[t+a>>3]=BigInt(u),O[t+a+8>>3]=BigInt((l+1)*i),w[t+a+16>>1]=280,S[t+a+18]=d,K(f,t+a+19,256),a+=i}return H.llseek(r,l*i,0),a}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function lt(e,t,n){U.varargs=n;try{var r=U.getStreamFromFD(e);switch(t){case 21509:return r.tty?0:-59;case 21505:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcgets){var i=r.tty.ops.ioctl_tcgets(r),a=G();T[a>>2]=i.c_iflag||0,T[a+4>>2]=i.c_oflag||0,T[a+8>>2]=i.c_cflag||0,T[a+12>>2]=i.c_lflag||0;for(var o=0;o<32;o++)S[a+o+17]=i.c_cc[o]||0;return 0}return 0;case 21510:case 21511:case 21512:return r.tty?0:-59;case 21506:case 21507:case 21508:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcsets){for(var a=G(),s=T[a>>2],c=T[a+4>>2],l=T[a+8>>2],u=T[a+12>>2],d=[],o=0;o<32;o++)d.push(S[a+o+17]);return r.tty.ops.ioctl_tcsets(r.tty,t,{c_iflag:s,c_oflag:c,c_cflag:l,c_lflag:u,c_cc:d})}return 0;case 21519:if(!r.tty)return-59;var a=G();return T[a>>2]=0,0;case 21520:return r.tty?-28:-59;case 21537:case 21531:var a=G();return H.ioctl(r,t,a);case 21523:if(!r.tty)return-59;if(r.tty.ops.ioctl_tiocgwinsz){var f=r.tty.ops.ioctl_tiocgwinsz(r.tty),a=G();w[a>>1]=f[0],w[a+2>>1]=f[1]}return 0;case 21524:return r.tty?0:-59;case 21515:return r.tty?0:-59;default:return-28}}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function ut(e,t){try{return e=U.getStr(e),U.writeStat(t,H.lstat(e))}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function dt(e,t,n){try{return t=U.getStr(t),t=U.calculateAt(e,t),H.mkdir(t,n,0),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function ft(e,t,n,r){try{t=U.getStr(t);var i=r&256,a=r&4096;return r&=-6401,t=U.calculateAt(e,t,a),U.writeStat(n,i?H.lstat(t):H.stat(t))}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function pt(e,t,n,r){U.varargs=r;try{t=U.getStr(t),t=U.calculateAt(e,t);var i=r?W():0;return H.open(t,n,i).fd}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function mt(e,t,n,r){try{return t=U.getStr(t),r=U.getStr(r),t=U.calculateAt(e,t),r=U.calculateAt(n,r),H.rename(t,r),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function ht(e){try{return e=U.getStr(e),H.rmdir(e),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function gt(e,t){try{return e=U.getStr(e),U.writeStat(t,H.stat(e))}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function _t(e,t,n){try{if(t=U.getStr(t),t=U.calculateAt(e,t),!n)H.unlink(t);else if(n===512)H.rmdir(t);else return-28;return 0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var vt=()=>k(``),yt=()=>{throw 1/0},bt=9007199254740992,xt=-9007199254740992,q=e=>e<xt||e>bt?NaN:Number(e);function St(e,t){e=q(e);var n=new Date(e*1e3);T[t>>2]=n.getUTCSeconds(),T[t+4>>2]=n.getUTCMinutes(),T[t+8>>2]=n.getUTCHours(),T[t+12>>2]=n.getUTCDate(),T[t+16>>2]=n.getUTCMonth(),T[t+20>>2]=n.getUTCFullYear()-1900,T[t+24>>2]=n.getUTCDay();var r=Date.UTC(n.getUTCFullYear(),0,1,0,0,0,0),i=(n.getTime()-r)/(1e3*60*60*24)|0;T[t+28>>2]=i}var Ct=e=>e%4==0&&(e%100!=0||e%400==0),wt=[0,31,60,91,121,152,182,213,244,274,305,335],Tt=[0,31,59,90,120,151,181,212,243,273,304,334],Et=e=>(Ct(e.getFullYear())?wt:Tt)[e.getMonth()]+e.getDate()-1;function Dt(e,t){e=q(e);var n=new Date(e*1e3);T[t>>2]=n.getSeconds(),T[t+4>>2]=n.getMinutes(),T[t+8>>2]=n.getHours(),T[t+12>>2]=n.getDate(),T[t+16>>2]=n.getMonth(),T[t+20>>2]=n.getFullYear()-1900,T[t+24>>2]=n.getDay();var r=Et(n)|0;T[t+28>>2]=r,T[t+36>>2]=-(n.getTimezoneOffset()*60);var i=new Date(n.getFullYear(),0,1),a=new Date(n.getFullYear(),6,1).getTimezoneOffset(),o=i.getTimezoneOffset(),s=(a!=o&&n.getTimezoneOffset()==Math.min(o,a))|0;T[t+32>>2]=s}var Ot=function(e){var t=(()=>{var t=new Date(T[e+20>>2]+1900,T[e+16>>2],T[e+12>>2],T[e+8>>2],T[e+4>>2],T[e>>2],0),n=T[e+32>>2],r=t.getTimezoneOffset(),i=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),o=i.getTimezoneOffset(),s=Math.min(o,a);if(n<0)T[e+32>>2]=Number(a!=o&&s==r);else if(n>0!=(s==r)){var c=n>0?s:Math.max(o,a);t.setTime(t.getTime()+(c-r)*6e4)}T[e+24>>2]=t.getDay();var l=Et(t)|0;T[e+28>>2]=l,T[e>>2]=t.getSeconds(),T[e+4>>2]=t.getMinutes(),T[e+8>>2]=t.getHours(),T[e+12>>2]=t.getDate(),T[e+16>>2]=t.getMonth(),T[e+20>>2]=t.getYear();var u=t.getTime();return isNaN(u)?-1:u/1e3})();return BigInt(t)};function kt(e,t,n,r,i,a,o){i=q(i);try{var s=U.getStreamFromFD(r),c=H.mmap(s,e,i,t,n),l=c.ptr;return T[a>>2]=c.allocated,E[o>>2]=l,0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function At(e,t,n,r,i,a){a=q(a);try{var o=U.getStreamFromFD(i);n&2&&U.doMsync(e,o,t,r,a)}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var jt=(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1),o=new Date(i,6,1),s=a.getTimezoneOffset(),c=o.getTimezoneOffset(),l=Math.max(s,c);E[e>>2]=l*60,T[t>>2]=Number(s!=c);var u=e=>{var t=e>=0?`-`:`+`,n=Math.abs(e);return`UTC${t}${String(Math.floor(n/60)).padStart(2,`0`)}${String(n%60).padStart(2,`0`)}`},d=u(s),f=u(c);c<s?(K(d,n,17),K(f,r,17)):(K(d,r,17),K(f,n,17))},Mt=()=>performance.now(),Nt=()=>Date.now(),Pt=1,Ft=e=>e>=0&&e<=3;function It(e,t,n){if(t=q(t),!Ft(e))return 28;var r;if(e===0)r=Nt();else if(Pt)r=Mt();else return 52;var i=Math.round(r*1e3*1e3);return O[n>>3]=BigInt(i),0}var Lt=[],Rt=(e,t)=>{Lt.length=0;for(var n;n=C[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,Lt.push(n==112?E[t>>2]:n==106?O[t>>3]:n==105?T[t>>2]:D[t>>3]),t+=r?8:4}return Lt},zt=(e,t,n)=>{var r=Rt(t,n);return hn[e](...r)},Bt=(e,t,n)=>zt(e,t,n),Vt=()=>2147483648,Ht=()=>Vt(),Ut=e=>{var t=(e-Q.buffer.byteLength+65535)/65536|0;try{return Q.grow(t),de(),1}catch{}},Wt=e=>{var t=C.length;e>>>=0;var n=Vt();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Ut(Math.min(n,qe(Math.max(e,i),65536))))return!0}return!1},Gt={},Kt=()=>ne||`./this.program`,J=()=>{if(!J.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(globalThis.navigator?.language??`C`).replace(`-`,`_`)+`.UTF-8`,_:Kt()};for(var t in Gt)Gt[t]===void 0?delete e[t]:e[t]=Gt[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);J.strings=n}return J.strings},qt=(e,t)=>{var n=0,r=0;for(var i of J()){var a=t+n;E[e+r>>2]=a,n+=K(i,a,1/0)+1,r+=4}return 0},Jt=(e,t)=>{var n=J();E[e>>2]=n.length;var r=0;for(var i of n)r+=He(i)+1;return E[t>>2]=r,0},Yt=0,Xt=()=>Ae||Yt>0,Zt=e=>{x=e,Xt()||(n.onExit?.(e),b=!0),re(e,new Ce(e))},Qt=(e,t)=>{x=e,Zt(e)};function $t(e){try{var t=U.getStreamFromFD(e);return H.close(t),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}function en(e,t){try{var n=0,r=0,i=0,a=U.getStreamFromFD(e),o=a.tty?2:H.isDir(a.mode)?3:H.isLink(a.mode)?7:4;return S[t]=o,w[t+2>>1]=i,O[t+8>>3]=BigInt(n),O[t+16>>3]=BigInt(r),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var tn=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=E[t>>2],s=E[t+4>>2];t+=8;var c=H.read(e,S,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function nn(e,t,n,r){try{var i=tn(U.getStreamFromFD(e),t,n);return E[r>>2]=i,0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}function rn(e,t,n,r){t=q(t);try{if(isNaN(t))return 61;var i=U.getStreamFromFD(e);return H.llseek(i,t,n),O[r>>3]=BigInt(i.position),i.getdents&&t===0&&n===0&&(i.getdents=null),0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var an=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=E[t>>2],s=E[t+4>>2];t+=8;var c=H.write(e,S,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function on(e,t,n,r){try{var i=an(U.getStreamFromFD(e),t,n);return E[r>>2]=i,0}catch(e){if(H===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var sn=[],Y=e=>{var t=sn[e];return t||(sn[e]=t=xn.get(e)),t},cn=e=>{if(e instanceof Ce||e==`unwind`)return x;re(1,e)},ln=()=>{if(!Xt())try{Qt(x)}catch(e){cn(e)}},un=e=>{if(!b)try{e(),ln()}catch(e){cn(e)}};function dn(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement||document.msFullscreenElement}var fn=(e,t)=>setTimeout(()=>{un(e)},t),pn=e=>{pn.shown||={},pn.shown[e]||(pn.shown[e]=1,v(e))},X={useWebGL:!1,isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],preloadedImages:{},preloadedAudios:{},getCanvas:()=>n.canvas,init(){if(X.initted)return;X.initted=!0;var e={};e.canHandle=function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp|webp)$/i.test(e)},e.handle=async function(e,t){var n=new Blob([e],{type:X.getMimetype(t)});n.size!==e.length&&(n=new Blob([new Uint8Array(e).buffer],{type:X.getMimetype(t)}));var r=URL.createObjectURL(n);return new Promise((n,i)=>{var a=new Image;a.onload=()=>{var i=document.createElement(`canvas`);i.width=a.width,i.height=a.height,i.getContext(`2d`).drawImage(a,0,0),X.preloadedImages[t]=i,URL.revokeObjectURL(r),n(e)},a.onerror=e=>{v(`Image ${r} could not be decoded`),i()},a.src=r})},V.push(e);var t={};t.canHandle=function(e){return!n.noAudioDecoding&&e.slice(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=async function(e,t){return new Promise((n,r)=>{var i=!1;function a(r){i||(i=!0,X.preloadedAudios[t]=r,n(e))}var o=new Blob([e],{type:X.getMimetype(t)}),s=URL.createObjectURL(o),c=new Audio;c.addEventListener(`canplaythrough`,()=>a(c),!1),c.onerror=function(n){if(i)return;v(`warning: browser could not fully decode audio ${t}, trying slower base64 approach`);function r(e){for(var t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,n=`=`,r=``,i=0,a=0,o=0;o<e.length;o++)for(i=i<<8|e[o],a+=8;a>=6;){var s=i>>a-6&63;a-=6,r+=t[s]}return a==2?(r+=t[(i&3)<<4],r+=n+n):a==4&&(r+=t[(i&15)<<2],r+=n),r}c.src=`data:audio/x-`+t.slice(-3)+`;base64,`+r(e),a(c)},c.src=s,fn(()=>{a(c)},1e4)})},V.push(t);function r(){var e=X.getCanvas();X.pointerLock=document.pointerLockElement===e}var i=X.getCanvas();i&&(document.addEventListener(`pointerlockchange`,r,!1),n.elementPointerLock&&i.addEventListener(`click`,e=>{!X.pointerLock&&X.getCanvas().requestPointerLock&&(X.getCanvas().requestPointerLock(),e.preventDefault())},!1))},createContext(e,t,r,i){if(t&&n.ctx&&e==X.getCanvas())return n.ctx;var a,o;if(t){var s={antialias:!1,alpha:!1,majorVersion:1};if(i)for(var c in i)s[c]=i[c];typeof GL<`u`&&(o=GL.createContext(e,s),o&&(a=GL.getContext(o).GLctx))}else a=e.getContext(`2d`);return a?(r&&(n.ctx=a,t&&GL.makeContextCurrent(o),X.useWebGL=t,X.moduleContextCreatedCallbacks.forEach(e=>e()),X.init()),a):null},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(e,t){X.lockPointer=e,X.resizeCanvas=t,X.lockPointer===void 0&&(X.lockPointer=!0),X.resizeCanvas===void 0&&(X.resizeCanvas=!1);var r=X.getCanvas();function i(){X.isFullscreen=!1;var e=r.parentNode;dn()===e?(r.exitFullscreen=X.exitFullscreen,X.lockPointer&&r.requestPointerLock(),X.isFullscreen=!0,X.resizeCanvas?X.setFullscreenCanvasSize():X.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),X.resizeCanvas?X.setWindowedCanvasSize():X.updateCanvasDimensions(r)),n.onFullScreen?.(X.isFullscreen),n.onFullscreen?.(X.isFullscreen)}X.fullscreenHandlersInstalled||(X.fullscreenHandlersInstalled=!0,document.addEventListener(`fullscreenchange`,i,!1),document.addEventListener(`mozfullscreenchange`,i,!1),document.addEventListener(`webkitfullscreenchange`,i,!1),document.addEventListener(`MSFullscreenChange`,i,!1));var a=document.createElement(`div`);r.parentNode.insertBefore(a,r),a.appendChild(r),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?()=>a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):null)||(a.webkitRequestFullScreen?()=>a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):null),a.requestFullscreen()},exitFullscreen(){return X.isFullscreen?((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||(()=>{})).apply(document,[]),!0):!1},safeSetTimeout(e,t){return fn(e,t)},getMimetype(e){return{jpg:`image/jpeg`,jpeg:`image/jpeg`,png:`image/png`,bmp:`image/bmp`,ogg:`audio/ogg`,wav:`audio/wav`,mp3:`audio/mpeg`}[e.slice(e.lastIndexOf(`.`)+1)]},getUserMedia(e){window.getUserMedia||=navigator.getUserMedia||navigator.mozGetUserMedia,window.getUserMedia(e)},getMovementX(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta(e){var t=0;switch(e.type){case`DOMMouseScroll`:t=e.detail/3;break;case`mousewheel`:t=e.wheelDelta/120;break;case`wheel`:switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:k(`unrecognized mouse wheel delta mode: `+e.deltaMode)}break;default:k(`unrecognized mouse wheel event: `+e.type)}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(e,t){var n=X.getCanvas(),r=n.getBoundingClientRect(),i=window.scrollX===void 0?window.pageXOffset:window.scrollX,a=window.scrollY===void 0?window.pageYOffset:window.scrollY,o=e-(i+r.left),s=t-(a+r.top);return o*=n.width/r.width,s*=n.height/r.height,{x:o,y:s}},setMouseCoords(e,t){let{x:n,y:r}=X.calculateMouseCoords(e,t);X.mouseMovementX=n-X.mouseX,X.mouseMovementY=r-X.mouseY,X.mouseX=n,X.mouseY=r},calculateMouseEvent(e){if(X.pointerLock)e.type!=`mousemove`&&`mozMovementX`in e?X.mouseMovementX=X.mouseMovementY=0:(X.mouseMovementX=X.getMovementX(e),X.mouseMovementY=X.getMovementY(e)),X.mouseX+=X.mouseMovementX,X.mouseY+=X.mouseMovementY;else{if(e.type===`touchstart`||e.type===`touchend`||e.type===`touchmove`){var t=e.touch;if(t===void 0)return;var n=X.calculateMouseCoords(t.pageX,t.pageY);if(e.type===`touchstart`)X.lastTouches[t.identifier]=n,X.touches[t.identifier]=n;else if(e.type===`touchend`||e.type===`touchmove`){var r=X.touches[t.identifier];r||=n,X.lastTouches[t.identifier]=r,X.touches[t.identifier]=n}return}X.setMouseCoords(e.pageX,e.pageY)}},resizeListeners:[],updateResizeListeners(){var e=X.getCanvas();X.resizeListeners.forEach(t=>t(e.width,e.height))},setCanvasSize(e,t,n){var r=X.getCanvas();X.updateCanvasDimensions(r,e,t),n||X.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if(typeof SDL<`u`){var e=E[SDL.screen>>2];e|=8388608,T[SDL.screen>>2]=e}X.updateCanvasDimensions(X.getCanvas()),X.updateResizeListeners()},setWindowedCanvasSize(){if(typeof SDL<`u`){var e=E[SDL.screen>>2];e&=-8388609,T[SDL.screen>>2]=e}X.updateCanvasDimensions(X.getCanvas()),X.updateResizeListeners()},updateCanvasDimensions(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var i=t,a=r;if(n.forcedAspectRatio>0&&(i/a<n.forcedAspectRatio?i=Math.round(a*n.forcedAspectRatio):a=Math.round(i/n.forcedAspectRatio)),dn()===e.parentNode&&typeof screen<`u`){var o=Math.min(screen.width/i,screen.height/a);i=Math.round(i*o),a=Math.round(a*o)}X.resizeCanvas?(e.width!=i&&(e.width=i),e.height!=a&&(e.height=a),e.style!==void 0&&(e.style.removeProperty(`width`),e.style.removeProperty(`height`))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),e.style!==void 0&&(i!=t||a!=r?(e.style.setProperty(`width`,i+`px`,`important`),e.style.setProperty(`height`,a+`px`,`important`)):(e.style.removeProperty(`width`),e.style.removeProperty(`height`))))}},mn=X.createContext;if(H.createPreloadedFile=it,H.preloadFile=rt,H.staticInit(),n.noExitRuntime&&(Ae=n.noExitRuntime),n.preloadPlugins&&(V=n.preloadPlugins),n.print&&(_=n.print),n.printErr&&(v=n.printErr),n.wasmBinary&&(y=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&(ne=n.thisProgram),n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();n.setValue=je,n.getValue=ke,n.UTF8ToString=N,n.stringToUTF8=K,n.lengthBytesUTF8=He,n.createContext=mn,n.FS=H;var hn={4022240:e=>{n.ret=e}};function gn(e,t){n.receiveProgress(e,t)}function _n(){return n.abortRun===1}var vn,Z,yn,bn,Q,xn;function Sn(e){n._malloc=e.ba,n._abort=e.da,n._ffmpeg=e.ea,vn=e.fa,Z=e.ga,yn=e.ha,bn=e.ia,Q=e._,n._ff_h264_cabac_tables=e.aa.value,xn=e.ca}var Cn={a:Pe,d:Re,S:at,l:ot,Q:st,z:ct,k:lt,M:ut,H:dt,N:ft,o:pt,y:mt,x:ht,O:gt,v:_t,T:vt,t:yt,C:St,D:Dt,E:Ot,A:kt,B:At,G:jt,R:It,Z:Bt,p:Nt,w:Ht,n:Mt,u:Wt,K:qt,L:Jt,g:Qt,h:$t,J:en,q:nn,I:rn,j:on,W:Mn,V:Nn,c:Tn,Y:An,r:Fn,i:Dn,m:En,X:jn,f:On,e:wn,b:kn,U:In,s:Pn,P:_n,F:gn};function wn(e,t,n){var r=j();try{Y(e)(t,n)}catch(e){if(A(r),e!==e+0)throw e;Z(1,0)}}function Tn(e,t,n){var r=j();try{return Y(e)(t,n)}catch(e){if(A(r),e!==e+0)throw e;Z(1,0)}}function En(e,t,n,r,i,a){var o=j();try{return Y(e)(t,n,r,i,a)}catch(e){if(A(o),e!==e+0)throw e;Z(1,0)}}function Dn(e,t,n,r,i,a,o,s,c){var l=j();try{return Y(e)(t,n,r,i,a,o,s,c)}catch(e){if(A(l),e!==e+0)throw e;Z(1,0)}}function On(e,t){var n=j();try{Y(e)(t)}catch(e){if(A(n),e!==e+0)throw e;Z(1,0)}}function kn(e,t,n,r,i){var a=j();try{Y(e)(t,n,r,i)}catch(e){if(A(a),e!==e+0)throw e;Z(1,0)}}function An(e,t,n,r){var i=j();try{return Y(e)(t,n,r)}catch(e){if(A(i),e!==e+0)throw e;Z(1,0)}}function jn(e,t,n){var r=j();try{return Y(e)(t,n)}catch(e){if(A(r),e!==e+0)throw e;Z(1,0)}}function Mn(e){var t=j();try{return Y(e)()}catch(e){if(A(t),e!==e+0)throw e;Z(1,0)}}function Nn(e,t){var n=j();try{return Y(e)(t)}catch(e){if(A(n),e!==e+0)throw e;Z(1,0)}}function Pn(e,t,n,r,i,a,o,s,c){var l=j();try{Y(e)(t,n,r,i,a,o,s,c)}catch(e){if(A(l),e!==e+0)throw e;Z(1,0)}}function Fn(e,t,n,r,i,a){var o=j();try{return Y(e)(t,n,r,i,a)}catch(e){if(A(o),e!==e+0)throw e;Z(1,0)}}function In(e,t,n,r,i,a,o){var s=j();try{Y(e)(t,n,r,i,a,o)}catch(e){if(A(s),e!==e+0)throw e;Z(1,0)}}function Ln(){if(z>0){B=Ln;return}if(fe(),z>0){B=Ln;return}function e(){n.calledRun=!0,!b&&(pe(),se?.(n),n.onRuntimeInitialized?.(),me())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var $=await Se();return Ln(),t=ue?n:new Promise((e,t)=>{se=e,ce=t}),t}var n=t;let r;async function i(){r=await n(),r.setLogger(t=>self.postMessage({type:e.LOG,payload:t})),r.setProgress(t=>self.postMessage({type:e.PROGRESS,payload:t}))}function a({args:e}){r.setAbortRun(0),r.runFFmpegCmd(...e);let t=r.ret;return r.reset(),t}function o(){r.setAbortRun(1)}function s(){return r.FS.cwd()}function c({path:e}){return r.FS.chdir(e)}function l(e){try{return r.FS.stat(e.path)}catch{return!1}}function u({path:e}){try{let t=r.FS.stat(e);return r.FS.isFile(t.mode)}catch{return!1}}function d({path:e,data:t}){return r.FS.writeFile(e,t)}function f({path:e,encoding:t}){return r.FS.readFile(e,{encoding:t})}function p({path:e}){return r.FS.unlink(e)}function ee({oldPath:e,newPath:t}){return r.FS.rename(e,t)}function te({path:e}){try{let t=r.FS.stat(e);return r.FS.isDir(t.mode)}catch{return!1}}function ne({path:e}){return r.FS.mkdir(e)}function re({path:e}){let t=r.FS.readdir(e),n=[];for(let i of t){let t=r.FS.stat(`${e}/${i}`),a=r.FS.isDir(t.mode);n.push({name:i,isDir:a})}return n}function ie({path:e}){return r.FS.rmdir(e)}self.addEventListener(`message`,async({data:{id:t,type:n,payload:m}})=>{let h;try{if(n!==e.LOAD&&!r)throw Error(`webFFmpeg not loaded`);switch(n){case e.LOAD:h=await i(m);break;case e.RUN:h=a(m);break;case e.ABORT_RUN:h=o(m);break;case e.CWD:h=s(m);break;case e.CH_DIR:h=c(m);break;case e.EXISTS:h=l(m);break;case e.IS_FILE:h=u(m);break;case e.IS_DIR:h=te(m);break;case e.WRITE_FILE:h=d(m);break;case e.READ_FILE:h=f(m);break;case e.DELETE_FILE:h=p(m);break;case e.RENAME:h=ee(m);break;case e.CREATE_DIR:h=ne(m);break;case e.LIST_DIR:h=re(m);break;case e.DELETE_DIR:h=ie(m);break;default:throw Error(`unknown message type`)}}catch(n){self.postMessage({id:t,type:e.ERROR,payload:n.toString()});return}self.postMessage({id:t,type:n,payload:h},h instanceof Uint8Array?[h.buffer]:[])});
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! @irewind/web-ffmpeg 1.1.
|
|
2
|
-
const e={LOAD:`LOAD`,RUN:`RUN`,ABORT_RUN:`ABORT_RUN`,CWD:`CWD`,CH_DIR:`CH_DIR`,EXISTS:`EXISTS`,IS_FILE:`IS_FILE`,IS_DIR:`IS_DIR`,WRITE_FILE:`WRITE_FILE`,READ_FILE:`READ_FILE`,DELETE_FILE:`DELETE_FILE`,RENAME:`RENAME`,CREATE_DIR:`CREATE_DIR`,LIST_DIR:`LIST_DIR`,DELETE_DIR:`DELETE_DIR`,ERROR:`ERROR`,LOG:`LOG`,PROGRESS:`PROGRESS`},t=`webFFmpeg is destroyed`;let n=0;var r=class{#e=null;#t=!1;#n=null;#r=[];#i={};#a={};async load(){if(this.#e!==null)return;let{default:t}=await import(`./ffmpeg.worker.js?worker`);return this.#e=new t,this.#e.addEventListener(`message`,({data:{id:t,type:n,payload:r}})=>{switch(n){case e.LOAD:case e.RUN:case e.ABORT_RUN:case e.CWD:case e.CH_DIR:case e.EXISTS:case e.IS_FILE:case e.IS_DIR:case e.WRITE_FILE:case e.READ_FILE:case e.DELETE_FILE:case e.RENAME:case e.CREATE_DIR:case e.LIST_DIR:case e.DELETE_DIR:this.#i[t]?.(r);break;case e.LOG:this.#t===!0&&console.log(r.message);break;case e.PROGRESS:this.#n?.(r);break;case e.ERROR:this.#a[t]?.(r);break}delete this.#i[t],delete this.#a[t]}),this.#o({type:e.LOAD})}async startSession({log:e=!1}){this.#t=e,this.#r=(await this.listDir(`/`)).map(e=>e.name)}async cleanupSession(e=`webFFmpeg has ended the session`){let n=Error(e);for(let e in this.#a)this.#a[e](n);if(this.#t=!1,this.#n=null,this.#i={},this.#a={},e!==t){await this.chdir(`/`);let e=this.#r,t=await this.listDir(`/`);for(let n of t)if(e.includes(n.name)){let e=n.isDir?`deleteDir`:`deleteFile`;await this[e](n.name)}}this.#r=[]}destroy(){this.#e!==null&&(this.cleanupSession(t),this.#e.terminate(),this.#e=null)}#o({type:t,payload:r,signal:i,trans:a=[]}){if(this.#e===null)throw Error(`webFFmpeg not loaded`);return new Promise((o,s)=>{let c=++n,l=()=>{this.#n=null,this.#o({id:++n,type:e.ABORT_RUN}),s(Error(`Message # ${c} was aborted`))};this.#e?.postMessage({id:c,type:t,payload:r},a),this.#i[c]=e=>{this.#n=null,i?.removeEventListener(`abort`,l),o(e)},this.#a[c]=e=>{this.#n=null,i?.removeEventListener(`abort`,l),s(e)},i?.addEventListener(`abort`,l,{once:!0})})}run(t,{signal:n,onProgress:r=null}){return this.#n=r,this.#o({type:e.RUN,payload:{args:t},signal:n})}cwd(){return this.#o({type:e.CWD})}chdir(t){return this.#o({type:e.CH_DIR,payload:{path:t}})}exists(t){return this.#o({type:e.EXISTS,payload:{path:t}})}isFile(t){return this.#o({type:e.IS_FILE,payload:{path:t}})}writeFile(t,n){return this.#o({type:e.WRITE_FILE,payload:{path:t,data:n},trans:n instanceof Uint8Array?[n.buffer]:[]})}readFile(t,n=`binary`){return this.#o({type:e.READ_FILE,payload:{path:t,encoding:n}})}deleteFile(t){return this.#o({type:e.DELETE_FILE,payload:{path:t}})}rename(t,n){return this.#o({type:e.RENAME,payload:{oldPath:t,newPath:n}})}isDir(t){return this.#o({type:e.IS_DIR,payload:{path:t}})}createDir(t){return this.#o({type:e.CREATE_DIR,payload:{path:t}})}listDir(t){return this.#o({type:e.LIST_DIR,payload:{path:t}})}deleteDir(t){return this.#o({type:e.DELETE_DIR,payload:{path:t}})}};async function i(){let e=new r;return await e.load(),e}let a=null,o=Promise.resolve();const s={id:null,timeout:15*6e4,start(){this.clear(),this.id=setTimeout(()=>{this.id=null,a.destroy()},this.timeout)},clear(){this.id!==null&&(clearTimeout(this.id),this.id=null)}};function c({signal:e,log:t=!1,showMessage:n=()=>{}},r){return s.clear(),o=o.catch(()=>{}).then(async()=>{s.clear(),e?.throwIfAborted(),n(`Loading audio-video module...`);try{a||=await i()}catch(t){throw e?.throwIfAborted(),console.error(t),Error(`Failed to load audio-video module`,{cause:t})}return e?.throwIfAborted(),await a.startSession({log:t}),e?.throwIfAborted(),r(a)}).catch(t=>{throw e?.aborted!==!0&&(s.clear(),a.destroy(),a=null),t}).finally(()=>{n(),a!==null&&(a.cleanupSession(),s.start())}),o}export{c as default};
|
|
1
|
+
/*! @irewind/web-ffmpeg 1.1.2 | Copyright iRewind */
|
|
2
|
+
const e={LOAD:`LOAD`,RUN:`RUN`,ABORT_RUN:`ABORT_RUN`,CWD:`CWD`,CH_DIR:`CH_DIR`,EXISTS:`EXISTS`,IS_FILE:`IS_FILE`,IS_DIR:`IS_DIR`,WRITE_FILE:`WRITE_FILE`,READ_FILE:`READ_FILE`,DELETE_FILE:`DELETE_FILE`,RENAME:`RENAME`,CREATE_DIR:`CREATE_DIR`,LIST_DIR:`LIST_DIR`,DELETE_DIR:`DELETE_DIR`,ERROR:`ERROR`,LOG:`LOG`,PROGRESS:`PROGRESS`},t=`webFFmpeg is destroyed`;let n=0;var r=class{#e=null;#t=!1;#n=null;#r=[];#i={};#a={};async load(){if(this.#e!==null)return;let{default:t}=await import(`./ffmpeg.worker.js?worker`);return this.#e=new t,this.#e.addEventListener(`message`,({data:{id:t,type:n,payload:r}})=>{switch(n){case e.LOAD:case e.RUN:case e.ABORT_RUN:case e.CWD:case e.CH_DIR:case e.EXISTS:case e.IS_FILE:case e.IS_DIR:case e.WRITE_FILE:case e.READ_FILE:case e.DELETE_FILE:case e.RENAME:case e.CREATE_DIR:case e.LIST_DIR:case e.DELETE_DIR:this.#i[t]?.(r);break;case e.LOG:this.#t===!0&&console.log(r.message);break;case e.PROGRESS:this.#n?.(r);break;case e.ERROR:this.#a[t]?.(r);break}delete this.#i[t],delete this.#a[t]}),this.#o({type:e.LOAD})}async startSession({log:e=!1}){this.#t=e,this.#r=(await this.listDir(`/`)).map(e=>e.name)}async cleanupSession(e=`webFFmpeg has ended the session`){let n=Error(e);for(let e in this.#a)this.#a[e](n);if(this.#t=!1,this.#n=null,this.#i={},this.#a={},e!==t){await this.chdir(`/`);let e=this.#r,t=await this.listDir(`/`);for(let n of t)if(e.includes(n.name)){let e=n.isDir?`deleteDir`:`deleteFile`;await this[e](n.name)}}this.#r=[]}destroy(){this.#e!==null&&(this.cleanupSession(t),this.#e.terminate(),this.#e=null)}#o({type:t,payload:r,signal:i,trans:a=[]}){if(this.#e===null)throw Error(`webFFmpeg not loaded`);return new Promise((o,s)=>{let c=++n,l=()=>{this.#n=null,this.#o({id:++n,type:e.ABORT_RUN}),s(Error(`Message # ${c} was aborted`))};this.#e?.postMessage({id:c,type:t,payload:r},a),this.#i[c]=e=>{this.#n=null,i?.removeEventListener(`abort`,l),o(e)},this.#a[c]=e=>{this.#n=null,i?.removeEventListener(`abort`,l),s(e)},i?.addEventListener(`abort`,l,{once:!0})})}run(t,{signal:n,onProgress:r=null}={}){return this.#n=r,this.#o({type:e.RUN,payload:{args:t},signal:n})}cwd(){return this.#o({type:e.CWD})}chdir(t){return this.#o({type:e.CH_DIR,payload:{path:t}})}exists(t){return this.#o({type:e.EXISTS,payload:{path:t}})}isFile(t){return this.#o({type:e.IS_FILE,payload:{path:t}})}writeFile(t,n){return this.#o({type:e.WRITE_FILE,payload:{path:t,data:n},trans:n instanceof Uint8Array?[n.buffer]:[]})}readFile(t,n=`binary`){return this.#o({type:e.READ_FILE,payload:{path:t,encoding:n}})}deleteFile(t){return this.#o({type:e.DELETE_FILE,payload:{path:t}})}rename(t,n){return this.#o({type:e.RENAME,payload:{oldPath:t,newPath:n}})}isDir(t){return this.#o({type:e.IS_DIR,payload:{path:t}})}createDir(t){return this.#o({type:e.CREATE_DIR,payload:{path:t}})}listDir(t){return this.#o({type:e.LIST_DIR,payload:{path:t}})}deleteDir(t){return this.#o({type:e.DELETE_DIR,payload:{path:t}})}};async function i(){let e=new r;return await e.load(),e}let a=null,o=Promise.resolve();const s={id:null,timeout:15*6e4,start(){this.clear(),this.id=setTimeout(()=>{this.id=null,a.destroy()},this.timeout)},clear(){this.id!==null&&(clearTimeout(this.id),this.id=null)}};function c({signal:e,log:t=!1,showMessage:n=()=>{}},r){return s.clear(),o=o.catch(()=>{}).then(async()=>{s.clear(),e?.throwIfAborted(),n(`Loading audio-video module...`);try{a||=await i()}catch(t){throw e?.throwIfAborted(),console.error(t),Error(`Failed to load audio-video module`,{cause:t})}return e?.throwIfAborted(),await a.startSession({log:t}),e?.throwIfAborted(),r(a)}).catch(t=>{throw e?.aborted!==!0&&(s.clear(),a.destroy(),a=null),t}).finally(()=>{n(),a!==null&&(a.cleanupSession(),s.start())}),o}export{c as default};
|