@zip.js/zip.js 2.8.34 → 2.8.36
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/README.md +13 -1
- package/deno.json +5 -2
- package/dist/README.md +3 -1
- package/dist/zip-core.js +494 -221
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +471 -221
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +498 -227
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +500 -229
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +496 -223
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +497 -224
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +499 -226
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +498 -227
- package/index-native.min.js +1 -1
- package/index.cjs +500 -229
- package/index.d.cts +61 -0
- package/index.d.ts +61 -0
- package/index.min.js +1 -1
- package/lib/core/codec-pool.js +2 -2
- package/lib/core/codec-worker.js +6 -2
- package/lib/core/configuration.js +22 -1
- package/lib/core/io.js +230 -56
- package/lib/core/streams/aes-crypto-stream.js +1 -10
- package/lib/core/streams/codec-stream.js +37 -16
- package/lib/core/streams/zip-entry-stream.js +19 -28
- package/lib/core/util/array.js +48 -0
- package/lib/core/web-worker-base.js +3 -3
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-fs.js +2 -3
- package/lib/core/zip-reader.js +37 -40
- package/lib/core/zip-writer.js +58 -51
- package/lib/core/zlib-streams-inline.js +1 -1
- package/lib/zip-core-base.js +5 -3
- package/lib/zip-fs-native.js +2 -2
- package/lib/zip-fs-wasm.js +2 -2
- package/lib/zip-legacy.js +2 -2
- package/lib/zip-module-native.js +2 -2
- package/lib/zip-module-wasm.js +3 -3
- package/lib/zip-native.js +2 -2
- package/lib/zip-wasm.js +2 -2
- package/package.json +3 -3
- package/worker-message-property-names.js +3 -0
- package/.github/workflows/publish.yml +0 -30
- package/reserved-property-names.js +0 -50
package/dist/zip-fs-core.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:i,Math:a,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:z,btoa:F,TransformStream:D,ReadableStream:E,WritableStream:k,CompressionStream:A,DecompressionStream:v,navigator:R,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,M=255,I=67324752,O=134695760,W=O,N=33639248,P=101010256,L=101075792,B=117853008,Z=22,H=20,V=21589,j=2048,q=16384,K=2048,_=1024,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),Y=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof R!=ee&&R.hardwareConcurrency&&(ne=R.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v},ie=r.assign({},se);function ae(){return ie}function oe(e){return a.max(e.chunkSize,64)}const ce="HTTP error ",de="HTTP Range not supported",le="Content-Range",ue="Range",we="GET",fe="bytes",pe="writable";class he{constructor(){this.size=0}init(){this.initialized=!0}}class me extends he{get readable(){return this.t()}t({offset:e=0,size:t,diskNumberStart:r,chunkSize:n=65536}={}){const s=this;let i=0;return new E({async pull(o){const c=t===Y?n:a.min(n,t-i),d=await qe(s,e+i,c,r);o.enqueue(d),i+n>t||t===Y&&!d.length&&c?o.close():i+=n}})}}class ye extends he{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,pe,{get:()=>t})}writeUint8Array(){}}class ge extends me{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,i:n,size:a.floor(.75*(t-n))})}readUint8Array(e,t){const{i:r,dataURI:n}=this,s=new f(t),i=4*a.floor(e/3),o=atob(n.substring(i+r,4*a.ceil((e+t)/3)+r)),c=e-3*a.floor(i/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class xe extends ye{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const i=t.pending.length;for(t.pending="",r=0;r<3*a.floor((i+e.length)/3)-i;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}class be extends me{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let i=await s.arrayBuffer();return i.byteLength>t&&(i=i.slice(e,n)),new f(i)}}class Se extends he{constructor(e){super();const t=this,n=new D,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,pe,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class ze extends be{constructor(e){super(new y([e],{type:"text/plain"}))}}class Fe extends Se{constructor(e){super(e),r.assign(this,{encoding:e,o:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,o:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,i)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>i(t.error)}),t.readAsText(n,e)})}}}class De extends me{constructor(e,t){super(),ke(this,e,t)}async init(){await Ae(this,Oe,Ce),super.init()}readUint8Array(e,t){return ve(this,e,t,Oe,Ce)}}class Ee extends me{constructor(e,t){super(),ke(this,e,t)}async init(){await Ae(this,We,Ue),super.init()}readUint8Array(e,t){return ve(this,e,t,We,Ue)}}function ke(e,t,n){const{preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,fetch:c}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o,fetch:c})}async function Ae(e,t,r){const{url:n,preventHeadRequest:i,useRangeHeader:a,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(a||o)&&(void 0===i||i)){const n=await t(we,e,Re(e,c?-22:void 0)),i=n.headers.get("Accept-Ranges");if(!(o||i&&i.toLowerCase()==fe))throw new w(de);{if(c){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.l=t)}let i;const a=n.headers.get(le);if(a){const e=a.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(i=s(t))}}i===Y?await Ie(e,t,r):e.size=i}}else await Ie(e,t,r)}async function ve(e,t,r,n,i){const{useRangeHeader:a,forceRangeRequests:o,l:c,size:d,options:l}=e;if(a||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const i=await n(we,e,Re(e,t,r));if(206!=i.status)throw new w(de);const a=i.headers.get(le);if(a){const e=s(a.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(de)}const o=new f(await i.arrayBuffer());if(o.length!=r)throw new w(de);return o}return re}{const{data:n}=e;return n||await i(e,l),new f(e.data.subarray(t,t+r))}}function Re(e,t=0,n=1){return r.assign({},Te(e),{[ue]:fe+"="+(0>t?t:t+"-"+(t+n-1))})}function Te({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ce(e){await Me(e,Oe)}async function Ue(e){await Me(e,We)}async function Me(e,t){const r=await t(we,e,Te(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Ie(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Te(e)),i=n.headers.get("Content-Length");i&&!n.headers.get("Content-Encoding")?e.size=s(i):await r(e,e.options)}}async function Oe(e,{fetch:t=fetch,options:n,url:s},i){const a=await t(s,r.assign({},n,{method:e,headers:i}));if(400>a.status)return a;throw 416==a.status?new w(de):new w(ce+(a.statusText||a.status))}function We(e,{url:t},n){return new g((s,i)=>{const a=new XMLHttpRequest;if(a.addEventListener("load",()=>{if(400>a.status){const e=[];a.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:a.status,arrayBuffer:()=>a.response,headers:new c(e)})}else i(416==a.status?new w(de):new w(ce+(a.statusText||a.status)))},!1),a.addEventListener("error",e=>i(e.detail?e.detail.error:new w("Network error")),!1),a.open(e,t),n)for(const e of r.entries(n))a.setRequestHeader(e[0],e[1]);a.responseType="arraybuffer",a.send()})}class Ne extends me{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ee(e,t):new De(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Pe extends me{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Le extends ye{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Be extends me{constructor(e){super(),this.u=e}async init(){const e=this,{u:t}=e;e.p=0,e.h=0,await g.all(t.map(async(r,n)=>{await je(r),n!=t.length-1&&(e.h+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const n=this,{u:s}=this;let i,o=r;-1==o&&(o=s.length-1);let c=e;for(;s[o]&&c>=s[o].size;)c-=s[o].size,o++;const d=s[o];if(d){const s=d.size;if(c+t>s){const a=s-c;i=new f(t);const o=await qe(d,c,a);i.set(o,0);const l=await n.readUint8Array(e+a,t-a,r);i.set(l,a),o.length+l.length<t&&(i=i.subarray(0,o.length+l.length))}else i=await qe(d,c,t)}else i=re;return n.p=a.max(o,n.p),i}}class Ze extends he{constructor(e,t=4294967295){super();const n=this;let s,i,a;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=n;if(a)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),n.diskOffset+=s.size,n.diskNumber++,a=null,n.availableSize=n.maxSize,t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await je(s),i=r.writable,a=i.getWriter(),await this.write(t)}},async close(){a&&(await a.ready,await d())},async abort(e){a&&await a.abort(e)}});async function c(e){const t=e.length;t&&(await a.ready,await a.write(e),s.size+=t,n.availableSize-=t)}async function d(){await a.close()}r.defineProperty(n,pe,{get:()=>o})}}class He{constructor(e){return t.isArray(e)&&(e=new Be(e)),e instanceof E&&(e={readable:e}),e}}class Ve{constructor(e){return e.writable===Y&&typeof e.next==te&&(e=new Ze(e)),e instanceof k&&(e={writable:e}),e.size===Y&&(e.size=0),e instanceof Ze||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:$,maxSize:$}),e}}async function je(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function qe(e,t,r,n){return e.readUint8Array(t,r,n)}const Ke=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;Ke[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=Ke[t-1][e];Ke[t][e]=r>>>8^Ke[0][255&r]}const[_e,Ge,Xe,Je,Qe,Ye,$e,et]=Ke;class tt{constructor(e){this.m=e||-1}append(e){let t=0|this.m;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),i=r-8;for(;i>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=et[255&e]^$e[e>>>8&255]^Ye[e>>>16&255]^Qe[e>>>24&255]^Je[255&r]^Xe[r>>>8&255]^Ge[r>>>16&255]^_e[r>>>24&255]}}for(;r>n;n++)t=t>>>8^_e[255&(t^e[n])];this.m=t}get(){return~this.m}}class rt extends D{constructor(){let e;const t=new tt;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function nt(e){if(typeof x==ee){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new x).encode(e)}const st={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=st.S(r);return 32===n?e.concat(t):st.F(t,n,0|r,e.slice(0,e.length-1))},D(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+st.S(r)},k(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,a.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=st.A(t,e[r-1]&2147483648>>t-1,1)),e},A:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,S:e=>a.round(e/1099511627776)||32,F(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=st.S(s);return n.push(st.A(t+i&31,t+i>32?r:n.pop(),1)),n}},it={bytes:{v(e){const t=st.D(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},R(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(st.A(8*(3&r),n)),t}}},at=class{constructor(e){const t=this;t.blockSize=512,t.T=[1732584193,4023233417,2562383102,271733878,3285377520],t.C=[1518500249,1859775393,2400959708,3395469782],e?(t.U=e.U.slice(0),t.M=e.M.slice(0),t.I=e.I):t.reset()}reset(){const e=this;return e.U=e.T.slice(0),e.M=[],e.I=0,e}update(e){const t=this;"string"==typeof e&&(e=it.O.R(e));const r=t.M=st.concat(t.M,e),n=t.I,s=t.I=n+st.D(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const i=new h(r);let a=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.W(i.subarray(16*a,16*(a+1))),a+=1;return r.splice(0,16*a),t}N(){const e=this;let t=e.M;const r=e.U;t=st.concat(t,[st.A(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(a.floor(e.I/4294967296)),t.push(0|e.I);t.length;)e.W(t.splice(0,16));return e.reset(),r}P(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}L(e,t){return t<<e|t>>>32-e}W(e){const r=this,n=r.U,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let i=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.L(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.L(5,i)+r.P(e,o,c,d)+l+s[e]+r.C[a.floor(e/20)]|0;l=d,d=c,c=r.L(30,o),o=i,i=t}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},ot={importKey:e=>new ot.B(it.bytes.R(e)),Z(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let i,a,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=st;for(t=it.bytes.R(t),d=1;(s||1)>f;d++){for(i=a=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(a=e.encrypt(a),c=0;c<a.length;c++)i[c]^=a[c];for(o=0;(s||1)>f&&o<i.length;o++)u.setInt32(f,i[o]),f+=4}return l.slice(0,n/8)},B:class{constructor(e){const t=this,r=t.H=at,n=[[],[]];t.V=[new r,new r];const s=t.V[0].blockSize/32;e.length>s&&(e=(new r).update(e).N());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.V[0].update(n[0]),t.V[1].update(n[1]),t.j=new r(t.V[0])}reset(){const e=this;e.j=new e.H(e.V[0]),e.q=!1}update(e){this.q=!0,this.j.update(e)}digest(){const e=this,t=e.j.N(),r=new e.H(e.V[1]).update(t).N();return e.reset(),r}encrypt(e){if(this.q)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ct=typeof z!=ee&&typeof z.getRandomValues==te,dt="Invalid password",lt="Invalid signature",ut="zipjs-abort-check-password";function wt(e){if(ct)return z.getRandomValues(e);throw new w("Crypto API not supported")}const ft=16,pt={name:"PBKDF2"},ht=r.assign({hash:{name:"HMAC"}},pt),mt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},pt),yt=["deriveBits"],gt=[8,12,16],xt=[16,24,32],bt=10,St=[0,0,0,0],zt=typeof z!=ee,Ft=zt&&z.subtle,Dt=zt&&typeof Ft!=ee,Et=it.bytes,kt=class{constructor(e){const t=this;t.K=[[[],[],[],[],[]],[[],[],[],[],[]]],t.K[0][0][0]||t._();const r=t.K[0][4],n=t.K[1],s=e.length;let i,a,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.C=[a=e.slice(0),o=[]],i=s;4*s+28>i;i++){let e=a[i-1];(i%s===0||8===s&&i%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],i%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),a[i]=a[i-s]^e}for(let e=0;i;e++,i--){const t=a[3&e?i:i-4];o[e]=4>=i||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.G(e,0)}decrypt(e){return this.G(e,1)}_(){const e=this.K[0],t=this.K[1],r=e[4],n=t[4],s=[],i=[];let a,o,c,d;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=a=0;!r[l];l^=o||1,a=i[a]||1){let i=a^a<<1^a<<2^a<<3^a<<4;i=i>>8^255&i^99,r[l]=i,n[i]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[i]^16843008*i;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][i]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}G(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.C[t],n=r.length/4-2,s=[0,0,0,0],i=this.K[t],a=i[0],o=i[1],c=i[2],d=i[3],l=i[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=a[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=a[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=a[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=a[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},At=class{constructor(e,t){this.X=e,this.J=t,this.Y=t}reset(){this.Y=this.J}update(e){return this.$(this.X,e,this.Y)}ee(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}te(e){0===(e[0]=this.ee(e[0]))&&(e[1]=this.ee(e[1]))}$(e,t,r){let n;if(!(n=t.length))return[];const s=st.D(t);for(let s=0;n>s;s+=4){this.te(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return st.k(t,s)}},vt=ot.B;let Rt=zt&&Dt&&typeof Ft.importKey==te,Tt=zt&&Dt&&typeof Ft.deriveBits==te;class Ct extends D{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Mt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:i,re:a,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await Ot(e,t,r,Pt(n,0,gt[t])),i=Pt(n,gt[t]);if(s[0]!=i[0]||s[1]!=i[1])throw new w(dt)})(r,i,s,Pt(e,0,gt[i]+2)),e=Pt(e,gt[i]+2),n?t.error(new w(ut)):a()):await o;const c=new f(e.length-bt-(e.length-bt)%ft);t.enqueue(It(r,e,c,0,bt,!0))},async flush(e){const{ne:t,se:r,pending:n,ready:s}=this;if(r&&t){await s;const i=Pt(n,0,n.length-bt),a=Pt(n,n.length-bt);let o=re;if(i.length){const e=Bt(Et,i);r.update(e);const n=t.update(e);o=Lt(Et,n)}const c=Pt(Lt(Et,r.digest()),0,bt);let d=n.length<bt?1:0;for(let e=0;bt>e;e++)d|=c[e]^a[e];if(d)throw new w(lt);e.enqueue(o)}}})}}class Ut extends D{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Mt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,re:i,ready:a}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=wt(new f(gt[t]));return Nt(n,await Ot(e,t,r,n))})(r,s,n),i()):await a;const c=new f(o.length+e.length-e.length%ft);c.set(o,0),t.enqueue(It(r,e,c,o.length,0))},async flush(e){const{ne:t,se:r,pending:s,ready:i}=this;if(r&&t){await i;let a=re;if(s.length){const e=t.update(Bt(Et,s));r.update(e),a=Lt(Et,e)}n.signature=Lt(Et,r.digest()).slice(0,bt),e.enqueue(Nt(a,n.signature))}}}),n=this}}function Mt(e,t,n,s){r.assign(e,{ready:new g(t=>e.re=t),password:Wt(t,n),strength:s-1,pending:re})}function It(e,t,r,n,s,i){const{ne:a,se:o,pending:c}=e;c.length&&(t=Nt(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%ft)),l=0;d-ft>=l;l+=ft){const e=Bt(Et,Pt(t,l,l+ft));i&&o.update(e);const s=a.update(e);i||o.update(s),r.set(Lt(Et,s),l+n)}return e.pending=Pt(t,l),r}async function Ot(e,n,s,i){e.password=null;const a=await(async(e,t,r,n,s)=>{if(!Rt)return ot.importKey(t);try{return await Ft.importKey("raw",t,r,!1,s)}catch{return Rt=!1,ot.importKey(t)}})(0,s,ht,0,yt),o=await(async(e,t,r)=>{if(!Tt)return ot.Z(t,e.salt,mt.iterations,r);try{return await Ft.deriveBits(e,t,r)}catch{return Tt=!1,ot.Z(t,e.salt,mt.iterations,r)}})(r.assign({salt:i},mt),a,8*(2*xt[n]+2)),c=new f(o),d=Bt(Et,Pt(c,0,xt[n])),l=Bt(Et,Pt(c,xt[n],2*xt[n])),u=Pt(c,2*xt[n]);return r.assign(e,{keys:{key:d,ie:l,passwordVerification:u},ne:new At(new kt(d),t.from(St)),se:new vt(l)}),u}function Wt(e,t){return t===Y?nt(e):t}function Nt(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Pt(e,t,r){return e.subarray(t,r)}function Lt(e,t){return e.v(t)}function Bt(e,t){return e.R(t)}class Zt extends D{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){Vt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=jt(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(dt);e=e.subarray(12)}n?t.error(new w(ut)):t.enqueue(jt(r,e))}})}}class Ht extends D{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){Vt(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=wt(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(qt(r,t),0),s=12}else n=new f(e.length),s=0;n.set(qt(r,e),s),t.enqueue(n)}})}}function Vt(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,ae:new tt(s[0]),oe:new tt(s[2])}),n)for(let t=0;t<n.length;t++)Kt(e,n[t]);else for(let r=0;r<t.length;r++)Kt(e,t.charCodeAt(r))})(e,t,n)}function jt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=_t(e)^t[n],Kt(e,r[n]);return r}function qt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=_t(e)^t[n],Kt(e,t[n]);return r}function Kt(e,t){let[,r]=e.keys;e.ae.append([t]);const n=~e.ae.get();r=Xt(a.imul(Xt(r+Gt(n)),134775813)+1),e.oe.append([r>>>24]);const s=~e.oe.get();e.keys=[n,r,s]}function _t(e){const t=2|e.keys[2];return Gt(a.imul(t,1^t)>>>8)}function Gt(e){return 255&e}function Xt(e){return 4294967295&e}const Jt="Invalid uncompressed size";class Qt extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:i,useCompressionStream:a,zipCrypto:o,signed:c,level:d,deflate64:l}=e,u=this;let w,f,p,h=super.readable;const y=c&&s&&!l&&(!i||o)&&!(!a||!n);i&&!o||!c||y||(w=new rt,h=rr(h,w)),s&&(y?(p=new Yt,h=nr(h,new n("gzip")),h=rr(h,p)):h=tr(h,a,{level:d,chunkSize:t},n,r,n)),i&&(o?h=rr(h,new Ht(e)):(f=new Ut(e),h=rr(h,f))),er(u,h,()=>{let e;i&&!o&&(e=f.signature),i&&!o||!c||(e=y?p.signature:new m(w.value.buffer).getUint32(0)),u.signature=e})}}class Yt extends D{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=a.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s){const t=new f(s);return t.set(r),t.set(e,r.length),void(r=t)}const i=s-8,o=new f(i),c=a.min(i,r.length);o.set(r.subarray(0,c),0),i>c&&o.set(e.subarray(0,i-c),c),n.enqueue(o);const d=new f(8),l=r.length-c;l&&d.set(r.subarray(c),0),d.set(e.subarray(i-c),l),r=d},flush(){const t=new m(r.buffer,r.byteOffset,r.byteLength);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class $t extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:i,signed:a,signature:o,compressed:c,useCompressionStream:d,deflate64:l}=e;let u,f,p=super.readable;i&&(s?p=rr(p,new Zt(e)):(f=new Ct(e),p=rr(p,f))),c&&(p=tr(p,d,{chunkSize:t,deflate64:l},n,r,n),p=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w("Invalid compressed data");throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),i&&!s||!a||(u=new rt,p=rr(p,u)),er(this,p,()=>{if((!i||s)&&a){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new w(lt)}})}}function er(e,t,n){t=rr(t,new D({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function tr(e,t,r,n,s,i){const a=t&&n?n:s||i,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new a(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!i)throw e;c=new i(o,r)}}return nr(e,c)}function rr(e,t){return e.pipeThrough(t)}function nr(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const sr="data",ir="deflate",ar="inflate";class or extends D{constructor(e,t){super({});const n=this,{codecType:s}=e;let i;s.startsWith(ir)?i=Qt:s.startsWith(ar)&&(i=$t),n.outputSize=0;let a=0;const o=new i(e,t),c=super.readable,d=new D({transform(e,t){e&&e.length&&(a+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:a})}}),l=new D({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Y&&n.outputSize>e.outputSize))throw new w(Jt)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:a})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class cr extends D{constructor(e){let t;1>e&&(e=65536),super({transform:(r,n)=>{if(t){const e=new f(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}let s=0;for(;r.length-s>e;)n.enqueue(r.slice(s,s+e)),s+=e;t=s?r.slice(s):r},flush(e){t&&t.length&&e.enqueue(t)}})}}const dr={type:"module"},lr="error";let ur,wr,fr,pr,hr=!0;try{hr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Y}catch{}class mr{constructor(e,{readable:t,writable:n},{options:s,config:i,ce:a,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=a;return r.assign(e,{de:!0,le:(e.le||0)+1,readable:t.pipeThrough(new cr(oe(i))).pipeThrough(new yr(a),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{ue:r,de:n}=e;r?(n?e.we=t:(r.terminate(),t()),e.fe=null):t()}),pe(){if(e.de){const{we:t}=e;t&&(e.we=null,e.he=!0,e.ue.terminate(),t()),e.de=!1,l(e)}}}),ur===Y&&(ur=typeof T!=ee),(o&&ur?br:xr)(e,i)}}class yr extends D{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await gr(e,r)},async transform(e,n){s+=e.length,t&&await gr(t,s,r),n.enqueue(e)},async flush(){n&&await gr(n,s)}})}}async function gr(e,...t){try{await e(...t)}catch{}}function xr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,pe:n},s)=>{let i;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(ir)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.me||(e.useCompressionStream=!0)}i=new or(e,s),await t.pipeThrough(i).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:a,outputSize:o}=i;return{signature:n,inputSize:a,outputSize:o}}catch(e){throw i&&(e.outputSize=i.outputSize),e}finally{n()}})(e,t)}}function br(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:i}=t;if(!e.fe){let a;typeof i==te&&(i=i());try{a=zr(e.workerURI,n,e)}catch{return ur=!1,xr(e,t)}r.assign(e,{ue:a,he:!1,fe:{run:()=>(async(e,t)=>{let n,s;const i=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,ye:n,ge:s,result:i});const{readable:a,options:o}=e,{writable:c,closed:d,xe:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new D,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,xe:()=>t.abort()}})(e.writable);let u;try{u=Dr({type:"start",options:o,config:t,readable:a,writable:c},e)}catch(t){l();try{await d}catch{}throw e.pe(),t}u||r.assign(e,{reader:a.getReader(),writer:c.getWriter()});try{const e=await i;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:i,baseURI:n})}})}return e.fe}function Sr(e){const{ue:t}=e;if(t)try{t.terminate()}catch{}e.fe=null}function zr(e,t,n,s,i=!0){let a,o,c;if(fr===Y||wr!==e){const r=typeof e==te;o=r?e(i):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Y&&(s=!1),s&&(c=dr);try{a=new T(o,c)}catch(i){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return zr(e,t,n,s,!1);if(s)throw i;return zr(e,t,n,!0,!1)}}else{s===Y&&(s=!0),s&&(c=dr);try{o=new u(o,t)}catch{}try{a=new T(o,c)}catch(r){if(s)throw r;return zr(e,t,n,!1,i)}}wr=e,fr=o,pr=c}else a=new T(fr,pr);return a.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:i,result:a,error:o}=e,{reader:c,writer:d,ye:l,ge:u,pe:p,le:h}=t,m=()=>t.le!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:i}=o,a=new w(e);r.assign(a,{stack:t,code:n,name:s,outputSize:i}),y(a)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Dr({type:sr,value:e,done:r,messageId:i},t)}n==sr&&(await d.ready,await d.write(new f(s)),m()||Dr({type:"ack",messageId:i},t)),"close"==n&&y(null,a)}}catch(o){m()||(Sr(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),a.addEventListener(lr,e=>Fr(e,n)),a.addEventListener("messageerror",e=>Fr(e,n)),a}function Fr(e,t){e.preventDefault&&e.preventDefault();const{ge:r,writer:n,pe:s}=t;Sr(t),r&&(r(e.error||new w(e.message||lr)),n&&n.releaseLock(),s())}function Dr(e,{ue:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:i}=e,a=[];if(r&&(e.value=r.byteOffset||r.byteLength!=r.buffer.byteLength?new f(r):r,a.push(e.value.buffer)),n&&hr?(s&&a.push(s),i&&a.push(i)):e.readable=e.writable=null,a.length)try{return t.postMessage(e,a),!0}catch{hr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Er=[];const kr=[];let Ar,vr,Rr=0;async function Tr(e,t){const{options:r,config:n}=t,{transferStreams:i,useWebWorkers:a,useCompressionStream:o,compressed:c,signed:d,encrypted:l}=r,{workerURI:u,maxWorkers:w}=n;t.transferStreams=i||i===Y;const f=!(c||d||l||t.transferStreams);return t.useWebWorkers=!f&&(a||a===Y&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Y,r.useCompressionStream=o||o===Y&&n.useCompressionStream,(await(async()=>{const r=Er.find(e=>!e.de);if(r)return Or(r),new mr(r,e,t,p);if(Er.length<w){const r={be:Rr};return Rr++,Er.push(r),new mr(r,e,t,p)}return new g(r=>{kr.push({resolve:r,stream:e,Se:t}),vr=n.workerStarvationTimeout,Cr()})})()).run();function p(e){if(Ur(),kr.length){const[{resolve:t,stream:r,Se:n}]=kr.splice(0,1);t(new mr(e,r,n,p)),Cr()}else e.ue?(Or(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.he?e.he=!1:e.ze=setTimeout(async()=>{Er=Er.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Er=Er.filter(t=>t!=e)}}function Cr(){!Ar&&kr.length&&s.isFinite(vr)&&vr>=0&&(Ar=setTimeout(Mr,vr))}function Ur(){Ar&&(clearTimeout(Ar),Ar=null)}function Mr(){if(Ar=null,kr.length){const[{resolve:e,stream:t,Se:n}]=kr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Y});e(new mr({},t,s,Ir)),Cr()}}function Ir(){Ur(),Cr()}function Or(e){const{ze:t}=e;t&&(clearTimeout(t),e.ze=null)}const Wr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Nr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=Wr[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Pr="filename",Lr="rawFilename",Br="comment",Zr="rawComment",Hr="uncompressedSize",Vr="compressedSize",jr="offset",qr="diskNumberStart",Kr="lastModDate",_r="rawLastModDate",Gr="lastAccessDate",Xr="creationDate",Jr="rawCreationDate",Qr="internalFileAttributes",Yr="externalFileAttributes",$r="msdosAttributesRaw",en="msdosAttributes",tn="msDosCompatible",rn="zip64",nn="encrypted",sn="version",an="versionMadeBy",on="zipCrypto",cn="directory",dn="executable",ln="compressionMethod",un="signature",wn="extraField",fn="unixMode",pn="setuid",hn="setgid",mn="sticky",yn=[Pr,Lr,Hr,Vr,Kr,_r,Br,Zr,Gr,Xr,Jr,jr,qr,Qr,Yr,$r,en,tn,rn,nn,sn,an,on,cn,dn,ln,un,wn,"extraFieldUnix","extraFieldInfoZip","uid","gid",fn,pn,hn,mn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class gn{constructor(e){yn.forEach(t=>this[t]=e[t])}}const xn="password",bn="rawPassword",Sn="passThrough",zn="signal",Fn="checkAmbiguity",Dn="useWebWorkers",En="useCompressionStream",kn="transferStreams",An="preventClose",vn="offset",Rn="strictness",Tn="strict",Cn="tolerant",Un="File format is not recognized",Mn="Compression method not supported",In="Split zip file",On="utf-8",Wn="cp437",Nn=[[Hr,C],[Vr,C],[jr,C],[qr,U]],Pn={[U]:{Fe:os,bytes:4},[C]:{Fe:cs,bytes:8}};class Ln{constructor(e,t={}){r.assign(this,{reader:new He(e),options:t,config:ae(),De:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await je(n),n.size!==Y&&n.readUint8Array||(n=new be(await new l(n.readable).blob()),await je(n)),n.size<Z)throw new w(Un);const i=Kn(rs(t,e,Rn),rs(t,e,Fn)),o=i==Tn,c=i!=Cn,u=((e,t)=>e!==Y?e:t==Tn?0:t==Cn?1/0:U)(rs(t,e,"maxAppendedDataSize"),i),{Ee:f,ke:p}=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,65557),i={count:_n};let o,c,d=0;for await(const[r,a,l,u,w]of Qn(e,s)){const s=as(r,u+20);if(w+Z+s==n){const s=await $n(e,r,a,u,w,n,i);if(s==Jn){if(o||(o=Yn(l,u,w)),d++,!t||d>1)break}else s!=Xn||c||(c=Yn(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=a.min(n,t==1/0?n:65557+t);let i,o;for await(const[t,a,c,d,l]of Qn(e,s)){const s=Yn(c,d,l);i||(i=s);const u=await $n(e,t,a,d,l,n,r);if(u==Jn)return s;u!=Xn||o||(o=s)}return o||i})(e,r,i)),{Ee:o,ke:d}})(n,c,u);if(!f)throw os(ds(await qe(n,0,4)))==O?new w(In):new w("End of central directory not found");c&&p>1&&ts("multiple end of central directory records");const h=ds(f);let m=os(h,12),y=os(h,16);const x=f.offset,b=as(h,20),S=x+Z+b;n.size-S>u&&ts("appended data");let z=as(h,4);const F=n.p||0;let E,k,A=as(h,6),v=as(h,10),R=0;if(y==C||m==C||v==U||A==U){const e=f.offset<H?re:await qe(n,f.offset-H,H),t=ds(e);if(e.length==H&&os(t,0)==B){y=cs(t,8);let e=await qe(n,y,56,-1),r=ds(e);const s=f.offset-H-56-(n.h||0);if((56>e.length||os(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(R=y-t),e=await qe(n,y,56,-1),r=ds(e)}if(56>e.length||os(r,0)!=L)throw new w("End of Zip64 central directory locator not found");k=!0,z==U?z=os(r,16):o&&z!=os(r,16)&&ts("mismatched zip64 end of central directory record"),A==U?A=os(r,20):o&&A!=os(r,20)&&ts("mismatched zip64 end of central directory record"),v==U?v=cs(r,32):o&&v!=cs(r,32)&&ts("mismatched zip64 end of central directory record"),m==C?m=cs(r,40):o&&m!=cs(r,40)&&ts("mismatched zip64 end of central directory record"),y=cs(r,48)+R}}const T=m,I=f.offset-(k?76:0);if(y<n.size||(R=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(In);if(0>y)throw new w(Un);let W=0,P=await qe(n,y,m,A),V=ds(P);if(m){if(4>P.length)throw new w(Un);const e=I-m-(n.h||0);if(y!=e&&A==z){let t=!(os(V,W)==N);if(t||0>e||e+4>n.size||(t=os(ds(await qe(n,e,4,A)),0)==N),t){const t=y;y=e,y>t&&(R+=y-t),P=await qe(n,y,m,A),V=ds(P)}}}const j=I-y-(n.h||0);if(m==j||0>j||A!=z||(m=j,P=await qe(n,y,m,A),V=ds(P)),0>y||y>=n.size)throw new w(Un);E=y;const X=rs(t,e,"filenameEncoding"),J=rs(t,e,"commentEncoding"),Q=o?new d:Y;let $;for(let i=0;v>i;i++){const c=new Bn(n,s,t.options);if(W+46>P.length||os(V,W)!=N)throw new w("Central directory header not found");Zn(c,V,W+6);const d=!!c.bitFlag.languageEncodingFlag,u=W+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=as(V,W+4),m=!(h>>8),y=h>>8==3,x=P.subarray(u,f),b=as(V,W+32),S=p+b,z=P.subarray(p,S),F=d,k=d,A=os(V,W+38),T=A&M,C={readOnly:!!(1&T),hidden:!!(2&T),system:!!(4&T),directory:!!(16&T),archive:!!(32&T)},I=os(V,W+42),O=rs(t,e,"decodeText")||Nr,L=F?On:X||Wn,B=k?On:J||Wn;let Z=O(x,L);Z===Y&&(Z=Nr(x,L));let H=O(z,B);H===Y&&(H=Nr(z,B)),r.assign(c,{index:i,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ae:b,offset:I,diskNumberStart:as(V,W+34),internalFileAttributes:as(V,W+36),externalFileAttributes:A,msdosAttributesRaw:T,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:k,rawExtraField:P.subarray(f,p),rawComment:z,filename:Z,comment:H}),Hn(c,c,V,W+6),c.offset+=R,E=a.min(c.offset,E),o&&(Q.has(c.filename)&&($=!0),Q.add(c.filename));const j=c.externalFileAttributes>>16&U;c.unixMode===Y&&16877&j&&(c.unixMode=j);const ee=!!(c.unixMode&K),te=!!(c.unixMode&_),re=!!(512&c.unixMode),ne=c.unixMode!==Y?!!(73&c.unixMode):y&&!!(73&j),se=c.unixMode!==Y&&(61440&c.unixMode)==q,ie=(61440&j)==q;r.assign(c,{setuid:ee,setgid:te,sticky:re,unixExternalUpper:j,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ie||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ae=new gn(c);ae.getData=(e,r)=>c.getData(e,ae,t.De,r),ae.arrayBuffer=async e=>{const r=new D,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ae,t.De,e)]);return n},W=S;const{onprogress:oe}=e;if(oe)try{await oe(i+1,v,new gn(c))}catch{}yield ae}o&&W!=T&&ts("trailing central directory data"),$&&ts("duplicate filename"),o&&(R||v&&E>0)&&ts("prepended data");const ee=rs(t,e,"extractPrependedData"),te=rs(t,e,"extractAppendedData");return ee&&(t.prependedData=E>0?await qe(n,0,E):re),t.comment=b?await qe(n,x+Z,b):re,te&&(t.appendedData=S<n.size?await qe(n,S,n.size-S):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let Bn=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:i,index:o,offset:c,diskNumberStart:d,extraFieldAES:l,extraFieldZip64:u,compressionMethod:f,config:p,bitFlag:h,signature:m,rawLastModDate:y,uncompressedSize:g,compressedSize:x}=s,{dataDescriptor:b}=h,S=t.localDirectory={},z=await qe(i,c,X,d),F=ds(z);let D=rs(s,n,xn),E=rs(s,n,bn);const A=rs(s,n,Sn);if(D=D&&D.length&&D,E=E&&E.length&&E,l&&99!=l.originalCompressionMethod)throw new w(Mn);if(0!=f&&8!=f&&9!=f&&!A)throw new w(Mn);if(z.length<X||os(F,0)!=I)throw new w("Local file header not found");Zn(S,F,4);const{extraFieldLength:v,filenameLength:R}=S,T=Kn(rs(s,n,Rn),rs(s,n,Fn))==Tn;let C=re;if(T&&(R||v)){const e=await qe(i,c+X,R+v,d);C=e.subarray(0,R),S.rawExtraField=e.subarray(R)}else S.rawExtraField=v?await qe(i,c+X+R,v,d):re;Hn(s,S,F,4,!0),T&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&ts("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&ts("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&ts("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||ts("mismatched local file header (signature or sizes)")})(s,S,C);const{lastAccessDate:U,creationDate:O}=S;U&&(t.lastAccessDate=U),O&&(t.creationDate=O);const N=s.encrypted&&S.encrypted&&!A,P=N&&!l;if(A||(t.zipCrypto=P),N){if(!P&&l.strength===Y)throw new w("Encryption method not supported");if(!D&&!E)throw new w("File contains encrypted entry")}const L=c+X+R+v,B=x,Z=i.t({offset:L,size:B,diskNumberStart:d,chunkSize:oe(p)}),H=rs(s,n,zn),V=rs(s,n,"checkPasswordOnly");let j=rs(s,n,"checkOverlappingEntry");const q=rs(s,n,"checkOverlappingEntryOnly");q&&(j=!0);const{onstart:K,onprogress:_,onend:G}=n,J=9==f;let Q=rs(s,n,En);J&&(Q=!1);const $={options:{codecType:ar,password:D,rawPassword:E,zipCrypto:P,encryptionStrength:l&&l.strength,signed:rs(s,n,"checkSignature")&&!A,passwordVerification:P&&(b?y>>>8&M:m>>>24&M),outputSize:A?x:g,signature:m,compressed:0!=f&&!A,encrypted:N,useWebWorkers:rs(s,n,Dn),useCompressionStream:Q,transferStreams:rs(s,n,kn),deflate64:J,checkPasswordOnly:V},config:p,ce:{signal:H,size:B,onstart:K,onprogress:_,onend:G}};let ee;j&&await(async({reader:e,ve:t,index:r,offset:n,diskNumberStart:s,signature:i,compressedSize:o,uncompressedSize:c,Re:d,dataDescriptor:l,extraFieldZip64:u,De:f})=>{let p=0;if(s&&e.u)for(let t=0;t<a.min(s,e.u.length);t++)p+=e.u[t].size;let h=0;if(l&&(h=u?20:12),h){const r=await qe(e,d+o,h+4,s);if(r.length==h+4&&os(ds(r),0)==W){const e=os(ds(r),4);let n,s;u?(n=cs(ds(r),8),s=cs(ds(r),16)):(n=os(ds(r),8),s=os(ds(r),12)),(t.encrypted&&!t.zipCrypto||e==i)&&n==o&&s==c&&(h+=4)}}const m={start:p+n,end:p+d+o+h,ve:t};for(const[e,t]of f)if(e!=r&&m.start<t.end&&t.start<m.end){const e=new w("Overlapping entry found");throw e.Te=t.ve,e}f.set(r,m)})({reader:i,ve:t,index:o,offset:c,diskNumberStart:d,signature:m,compressedSize:x,uncompressedSize:g,Re:L,dataDescriptor:b||S.bitFlag.dataDescriptor,extraFieldZip64:u||S.extraFieldZip64,De:r});try{if(!q){V&&(e=new k),e=new Ve(e),await je(e,A?x:g),({writable:ee}=e);const{outputSize:t}=await Tr({readable:Z,writable:ee},$);if(e.size+=t,t!=(A?x:g))throw new w(Jt)}}catch(t){if(t.outputSize!==Y&&(e.size+=t.outputSize),!V||t.message!=ut)throw t}finally{rs(s,n,An)||!ee||ee.locked||await ee.getWriter().close()}return V||q?Y:e.getData?e.getData():ee}};function Zn(e,t,n){const s=e.rawBitFlag=as(t,n+2),i=!(1&~s),a=os(t,n+6);r.assign(e,{encrypted:i,version:as(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&j)==j},rawLastModDate:a,lastModDate:ns(a),filenameLength:as(t,n+22),extraFieldLength:as(t,n+24)})}function Hn(e,t,n,s,i){const{rawExtraField:a}=t,d=t.extraField=new c,l=ds(new f(a));let u=0;try{for(;u<a.length;){const e=as(l,u),t=as(l,u+2);d.set(e,{type:e,data:a.slice(u+4,u+4+t)}),u+=4+t}}catch{}const p=as(n,s+4);r.assign(t,{signature:os(n,s+10),compressedSize:os(n,s+14),uncompressedSize:os(n,s+18)});const h=d.get(1);h&&(((e,t)=>{t.zip64=!0;const r=ds(e.data),n=Nn.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+Pn[t].bytes,0);if(e.data.length<s)throw new w("Zip64 extra field not found");for(let s=0,i=0;s<n.length;s++){const[a,o]=n[s],c=Pn[o];t[a]=e[a]=c.Fe(r,i),i+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=d.get(28789);m&&(Vn(m,Pr,Lr,t,e),t.extraFieldUnicodePath=m);const y=d.get(25461);y&&(Vn(y,Br,Zr,t,e),t.extraFieldUnicodeComment=y);const g=d.get(39169);g&&g.data.length>=7?(((e,t,n)=>{const s=ds(e.data),i=is(s,4);r.assign(e,{Ce:is(s,0),vendorId:is(s,2),strength:i,originalCompressionMethod:n,compressionMethod:as(s,5)}),t.compressionMethod=e.compressionMethod})(g,t,p),t.extraFieldAES=g):t.compressionMethod=p;const x=d.get(10);x&&(((e,t)=>{const n=ds(e.data);let s,i=4;try{for(;i<e.data.length&&!s;){const t=as(n,i),r=as(n,i+2);1==t&&(s=e.data.slice(i+4,i+4+r)),i+=4+r}}catch{}try{if(s&&24==s.length){const n=ds(s),i=n.getBigUint64(0,!0),a=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:i,rawLastAccessDate:a,rawCreationDate:o});const c={lastModDate:ss(i),lastAccessDate:ss(a),creationDate:ss(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(x,t),t.extraFieldNTFS=x);const b=d.get(30805);if(b)jn(b,t,!1),t.extraFieldUnix=b;else{const e=d.get(30837);e&&(jn(e,t,!0),t.extraFieldInfoZip=e)}const S=d.get(V);S&&(((e,t,r)=>{if(!e.data.length)return;const n=ds(e.data),s=is(n,0),i=[],a=[];r?(1&~s||(i.push(Kr),a.push(_r)),2&~s||(i.push(Gr),a.push("rawLastAccessDate")),4&~s||(i.push(Xr),a.push(Jr))):5>e.data.length||(i.push(Kr),a.push(_r));let c=1;i.forEach((r,s)=>{if(e.data.length>=c+4){const i=os(n,c);t[r]=e[r]=new o(1e3*(0|i));const d=a[s];e[d]=i}c+=4})})(S,t,i),t.extraFieldExtendedTimestamp=S);const z=d.get(6534);z&&(t.extraFieldUSDZ=z)}function Vn(e,t,n,s,i){if(5>e.data.length)return void(e.valid=!1);const a=ds(e.data),o=new tt;o.append(i[n]);const c=ds(new f(4));c.setUint32(0,o.get(),!0);const d=os(a,1);r.assign(e,{version:is(a,0),[t]:Nr(e.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&d==os(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function jn(e,t,n){try{const s=ds(new f(e.data));let i,a;if(n){let t=0;const n=is(s,t++),o=is(s,t++);i=qn(e.data.subarray(t,t+o)),t+=o;const c=is(s,t++);a=qn(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:i,gid:a})}else 4>e.data.length||(i=as(s,0),a=as(s,2),r.assign(e,{uid:i,gid:a}));i!==Y&&(t.uid=i),a!==Y&&(t.gid=a)}catch{}}function qn(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Kn(e,t){return e===Y?t?Tn:"balanced":e}const _n=64,Gn=0,Xn=1,Jn=2;async function*Qn(e,t){const r=e.size-t,n=await qe(e,r,t),s=ds(n);for(let e=n.length-Z;e>=0;e--)os(s,e)==P&&(yield[s,r,n,e,r+e])}function Yn(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function $n(e,t,r,n,s,i,a){const o=as(t,n+10),c=os(t,n+12),d=os(t,n+16);if(o==U||c==C||d==C)return await es(e,t,r,s-H,i,a)==B?Jn:Gn;if(!o&&!c)return Xn;for(const n of[s-c,d])if(await es(e,t,r,n,i,a)==N)return Jn;return Gn}async function es(e,t,r,n,s,i){return 0>n||n+4>s?Y:r>n?i.count>0?(i.count--,os(ds(await qe(e,n,4)),0)):Y:os(t,n-r)}function ts(e){const t=new w("Ambiguous archive");throw t.reason=e,t}function rs(e,t,r){return t[r]===Y?e.options[r]:t[r]}function ns(e){const t=(4294901760&e)>>16,r=e&U;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function ss(e){return new o(s(e/i(1e4)-i(116444736e5)))}function is(e,t){return e.getUint8(t)}function as(e,t){return e.getUint16(t,!0)}function os(e,t){return e.getUint32(t,!0)}function cs(e,t){return s(e.getBigUint64(t,!0))}function ds(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const ls="Zip file comment exceeds 64KB",us="Version exceeds 65535",ws="Extra field data exceeds 64KB",fs=-2147483648,ps=2147483647,hs="Zip64 is not supported (set the 'zip64' option to 'true')",ms=new f([7,0,2,0,65,69,3,0,0]),ys="infozip",gs="unix";let xs=0;const bs=[];class Ss{constructor(e,t={}){const n=(e=new Ve(e)).availableSize!==Y&&e.availableSize>0&&e.availableSize!==$&&e.maxSize!==Y&&e.maxSize>0&&e.maxSize!==$;r.assign(this,{writer:e,Ue:n,options:t,config:ae(),files:new c,Me:new d,offset:t[vn]===Y?e.size||e.writable.size||0:t[vn],Ie:t[vn]===Y?0:t[vn]-(e.size||e.writable.size||0),Oe:new d,We:0,Ne:Y})}async prependZip(e){if(this.Me.size)throw new w("Zip file not empty");e=new He(e),await je(e);const t=new Ln(e.readable),n=await t.getEntries();await t.close(),await je(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Me=new d(n.map(e=>e.filename)),this.files=new c(n.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:i,rawFilename:a,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,diskOffset:u,diskNumber:w,zip64:f}=e;let{compressionMethod:p,Pe:h,Le:m,Be:y,Ze:g,He:x,rawExtraField:b}=e;const{level:S,languageEncodingFlag:z,dataDescriptor:F}=o;h=h||re,m=m||re,y=y||re,g=g||re,x=x||re,b=b||re,e.extraFieldAES&&(p=99);const D=Ps(h,m,y,g,x,b),E=f&&d>=C,k=f&&l>=C,A=-7&Bs(S,z,F,c,p)|S<<1,{Ve:v,je:R}=Ls({version:t,bitFlag:A,compressionMethod:p,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:a,qe:k,Ke:E,extraFieldLength:D}),{signature:T}=e;return T!==Y&&Is(R,10,T),r.assign(e,{Ke:E,qe:k,_e:f&&this.offset-u>=C,Ge:f&&w>=U,Pe:h,Le:m,Be:y,Ze:g,He:x,rawExtraField:b,extendedTimestamp:y.length>0||g.length>0,Xe:1+(s?2:0)+(i?4:0),Ve:v,je:R}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Oe:a,config:c}=s;let d,l;xs<c.maxWorkers?xs++:await new g(e=>bs.push(e));try{if(e=e.trim(),Cs(s,n,cn)&&!e.endsWith(G)&&(e+=G),s.Me.has(e))throw new w("File already exists");return s.Me.add(e),l=!0,d=(async(e,t,n,s)=>{const a=((e,t,r)=>{t=t.trim();let n=Cs(e,r,tn),s=Cs(e,r,an,n?20:768);const i=Cs(e,r,dn),a=Cs(e,r,"uid"),o=Cs(e,r,"gid");let c=Cs(e,r,fn),d=Cs(e,r,"unixExtraFieldType"),l=Cs(e,r,pn),u=Cs(e,r,hn),f=Cs(e,r,mn);if(a!==Y&&(0>a||a>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Y&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Y&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Y&&d!==ys&&d!==gs)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===gs&&(a!==Y&&a>U||o!==Y&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Y||a===Y&&o===Y||(d=ys);let p=Cs(e,r,$r),h=Cs(e,r,en);const m=p!==Y||h!==Y;if(a!==Y||o!==Y||c!==Y||d?(n=!1,s=s&U|768):m&&(n=!0,s&=M),p!==Y&&(0>p||p>M))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(us);let y=Cs(e,r,Yr,0);!r[cn]&&t.endsWith(G)&&(r[cn]=!0);const g=Cs(e,r,cn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=i?493<<16:27525120),n||(x=y>>16&U,c=c===Y?x:c&U,l?c|=K:l=!!(c&K),u?c|=_:u=!!(c&_),f?c|=512:f=!!(512&c),g&&(c|=q),y=(c&U)<<16|y&M),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Y)e&=M;else if(t!==Y){const{readOnly:r,hidden:n,system:s,directory:i,archive:a}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),i&&(o|=16),a&&(o|=32),e=o&M}return t===Y&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&C|p&M),{name:t,Je:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:a,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=a);const c=((e,t,r)=>{const n=Cs(e,r,"encodeText",nt);let s=n(t);if(s===Y&&(s=nt(t)),Ps(s)>U)throw new w("File entry name exceeds 64KB");const i=r[Br]||"";let a=n(i);if(a===Y&&(a=nt(i)),Ps(a)>U)throw new w("File entry comment exceeds 64KB");const c=Cs(e,r,sn,20);if(c>U)throw new w(us);const d=Cs(e,r,Kr,new o),l=Cs(e,r,Gr),u=Cs(e,r,Xr),p=Cs(e,r,Qr,0),h=Cs(e,r,Sn);let m,y;h||(m=Cs(e,r,xn),y=Cs(e,r,bn));const g=Cs(e,r,"encryptionStrength",3),x=Cs(e,r,on),b=Cs(e,r,"extendedTimestamp",!0),S=Cs(e,r,"keepOrder",!0),z=Cs(e,r,Dn),F=Cs(e,r,kn,!0),D=Cs(e,r,"bufferedWrite"),E=Cs(e,r,"createTempStream"),k=Cs(e,r,"dataDescriptorSignature",!0),A=Cs(e,r,zn),v=Cs(e,r,"useUnicodeFileNames",!0),R=Cs(e,r,ln);if(!h&&R!==Y&&0!==R&&8!==R)throw new w("Compression method not supported");let T=Cs(e,r,"level"),C=Cs(e,r,En),M=Cs(e,r,"dataDescriptor");D&&M===Y&&(M=!1),(M===Y||x)&&(M=!0),T!==Y&&6!=T&&(C=!1),C||e.config.CompressionStream!==Y||e.config.CompressionStreamZlib!==Y||(T=0);const I=Cs(e,r,rn);if(!x&&(m!==Y||y!==Y)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let O=re;const W=r[wn];if(W){let e=0,t=0;W.forEach(t=>e+=4+Ps(t)),O=new f(e);const r=Ns(O);W.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(Ps(e)>U)throw new w(ws);Ms(r,t,n),Ms(r,t+2,Ps(e)),Ws(O,e,t+4),t+=4+Ps(e)})}return{comment:i,Je:{rawFilename:s,rawComment:a,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:D,createTempStream:E,dataDescriptorSignature:k,signal:A,useUnicodeFileNames:v,compressionMethod:R,level:T,useCompressionStream:C,dataDescriptor:M,zip64:I,rawExtraField:O}}})(e,t,s),{comment:d}=c,l=s[wn];let u;e.files.set(t,Y);try{const o=await(async(e,t,{Je:r},n)=>{const{passThrough:s,zipCrypto:i,password:a,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[Hr],h===Y)throw new w("Undefined uncompressed size")}const m=!0===l,y=Cs(e,n,nn),g=!!t&&(!!(a&&Ps(a)||o&&Ps(o))||s&&y);t||(u=0,f=0);const x=g?i?12:16+4*c:0;t&&(t=new He(t),await je(t),s?(n.uncompressedSize=h,p=Us(h)+x):t.size===Y?(d=!0,(l||l===Y)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Us(h)+x));const b=m||h>=C,S=m||p>=C;if(b||S){if(!1===l)throw new w(hs);l=!0}return l=l||!1,{reader:t,Je:{dataDescriptor:d,zip64:l,Ke:b,qe:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const{diskOffset:d,diskNumber:l}=e.writer,p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:i,zip64:a,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,Ke:y,qe:g,uncompressedSize:x}=e;let{version:b,compressionMethod:S}=e;const z=!l&&(S===Y?i===Y||i>0:0!==S);let F;const D=h||!z,E=a&&(e.bufferedWrite||!d||!y&&!g||D),k=E||a&&d&&(y||g);if(a&&(y||g)){const e=20,t=Ds(e);if(t.uint16(1),t.uint16(e-4),F=t.array,E&&(t.Qe(x),D)){const e=m?o?12:16+4*f:0;t.Qe(h?0:x+e)}}else F=re;let A,v,R,T,C;if(m&&!o){const e=Ds(Ps(ms)+2);e.uint16(39169),e.bytes(ms),A=e.array,A[8]=f}else A=re;if(p){const e=vs(r);if(Rs(e)){const t=9+(n?4:0)+(s?4:0),r=Ds(t);T=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(T),r.uint32(e),n&&r.uint32(Ts(vs(n))),s&&r.uint32(Ts(vs(s))),R=r.array}else R=re;try{const e=As(r),t=Ds(36);t.uint16(10),t.uint16(32),t.Ye(4),t.uint16(1),t.uint16(24),t.Qe(e),t.Qe(As(n)||e),t.Qe(As(s)||e),v=t.array}catch{v=re}}else v=R=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=ys||t===Y&&r===Y)if(n!=gs||t===Y&&r===Y)C=re;else{const e=Ds(8);e.uint16(30805),e.uint16(4),e.uint16((t===Y?0:t)&U),e.uint16((r===Y?0:r)&U),C=e.array}else{const e=Fs(t),n=Fs(r),s=3+e.length+n.length,i=Ds(4+s);i.uint16(30837),i.uint16(s),i.uint8(1),i.uint8(e.length),i.bytes(e),i.uint8(n.length),i.bytes(n),C=i.array}}catch{C=re}S===Y&&(S=z?8:0),a&&(b=b>45?b:45),m&&!o&&(b=b>51?b:51,A[9]=S,S=99);const M=k?Ps(F):0,O=M+Ps(A,R,v,C,u);if(O>U)throw new w(ws);const{Ve:W,je:N,rawLastModDate:P}=Ls({version:b,bitFlag:Bs(i,c,d,m,S),compressionMethod:S,uncompressedSize:x,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,qe:g,Ke:y,extraFieldLength:O}),L=Ds(X+Ps(t)+O),B=L.array,Z=Ns(B);return L.uint32(I),L.bytes(W),L.bytes(t),k&&L.bytes(F),L.bytes(A),L.bytes(R),L.bytes(v),L.bytes(C),L.bytes(u),d&&(g||Is(Z,18,0),y||Is(Z,22,0)),{$e:B,et:Z,Ve:W,je:N,lastModDate:r,rawLastModDate:P,encrypted:m,compressed:z,version:b,compressionMethod:S,Xe:T,Pe:re,tt:M,Be:R,Ze:v,He:C,Le:A,extraFieldLength:O}})(s=r.assign({},s,a.Je,c.Je,o.Je,{internalFileAttribute:c.Je.internalFileAttributes,externalFileAttribute:a.Je.externalFileAttributes,signature:s[un],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,i=0,a=e?20:12;return r&&(a+=4),t&&(s=new f(a),n=Ns(s),r&&(i=4,Is(n,0,W))),{rt:s,nt:n,st:i}})(s),m=Ps(p.$e,h.rt);u=await(async(e,t,n,s,a)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=a,{it:p}=s,h=e.options.usdz,m=e.Ne;let y,x,b,S,z,F,E,A={},v=0;o.set(t,A),e.Ne=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>b=e)),a.bufferedWrite||!d||e.ot||e.We||!l?(y=!0,e.We++,E=a.createTempStream?await a.createTempStream():new D(Y,Y,{highWaterMark:$}),E.size=0,await je(c)):(E=c,await R()),await je(E);const{diskOffset:U}=c;if(e.Ue){delete e.Ue;const t=new f(4);Is(Ns(t),0,O),await ks(c,t),e.offset+=4}h&&!y&&zs(s,e.offset-U);const{$e:I}=p;y||(await x,await T());const W=c.diskNumber,N=Es(e,c);if(A.diskNumberStart=W,y||(z=!0,F=c.size,await ks(E,I)),A=await(async(e,t,{diskNumberStart:n,lock:s},a,o,c)=>{const{it:d,ct:l,dt:u}=a,{Ve:f,je:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:b,Pe:S,tt:z,Be:F,Xe:D,Ze:E,He:k,Le:A}=d,{rt:v}=l,{rawFilename:R,lastAccessDate:T,creationDate:U,password:I,rawPassword:O,level:W,zip64:N,Ke:P,qe:L,zipCrypto:B,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:j,rawComment:q,rawExtraField:K,useWebWorkers:_,transferStreams:G,onstart:X,onprogress:J,onend:Q,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ie,gid:ae,unixMode:ce,setuid:de,setgid:le,sticky:ue,unixExternalUpper:we,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:he,passThrough:me}=c,ye={lock:s,versionMadeBy:j,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:R,commentUTF8:!0,rawComment:q,Pe:S,tt:z,Be:F,Ze:E,He:k,Le:A,rawExtraField:K,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ie,gid:ae,unixMode:ce,setuid:de,setgid:le,sticky:ue,unixExternalUpper:we,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:xe}=c,be=0;me||(xe=0);const{writable:Se}=t;if(e){const r=e.t?e.t({chunkSize:oe(o)}):e.readable,n=e.size,s={options:{codecType:ir,level:W,rawPassword:O,password:I,encryptionStrength:ee,zipCrypto:y&&B,passwordVerification:y&&B&&m>>8&M,signed:!me,compressed:g&&!me,encrypted:y&&!me,useWebWorkers:_,useCompressionStream:he,transferStreams:G},config:o,ce:{signal:$,size:n,onstart:X,onprogress:J,onend:Q}};try{const e=await Tr({readable:r,writable:Se},s);if(be=e.outputSize,t.size+=be,me||(xe=e.inputSize,ge=e.signature),!L&&be>=C||!P&&xe>=C)throw new w(hs)}catch(e){throw e.outputSize!==Y&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,it:n,ct:s},{zip64:a,zipCrypto:o,dataDescriptor:c})=>{const{je:d,encrypted:l}=n,{nt:u,st:w}=s;l&&!o||e===Y||(Is(d,10,e),c&&Is(u,w,e)),a?c&&(Os(u,w+4,i(t)),Os(u,w+12,i(r))):(Is(d,14,t),Is(d,18,r),c&&(Is(u,w+4,t),Is(u,w+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:xe,it:d,ct:l},c),Z&&await ks(t,v),r.assign(ye,{uncompressedSize:xe,compressedSize:be,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:T,encrypted:y,zipCrypto:B,size:u+be,compressionMethod:b,version:x,Ve:f,je:p,signature:ge,Xe:D,Ke:P,qe:L}),ye})(n,E,A,s,e.config,a),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await R(),S=!0,F=c.size,await T(),A.diskNumberStart=c.diskNumber,A.offset=Es(e,c),h){const t=s.dt;zs(s,e.offset-c.diskOffset),A.size+=s.dt-t}(({rawFilename:e,encrypted:t,zip64:r,tt:n,signature:s,compressedSize:a,uncompressedSize:o,Ke:c,qe:d},l,{dataDescriptor:u})=>{if(u||(t||Is(l,14,s),d||Is(l,18,a),c||Is(l,22,o)),r&&n){const t=X+Ps(e)+4;Os(l,t,i(o)),Os(l,t+8,i(a))}})(A,p.et,a),await ks(c,p.$e),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new k({async write(e){var t;await n.ready,await n.write(e),t=Ps(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,S=!1}else A.diskNumberStart=W,A.offset=N;return e.offset+=A.size,A}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.We--,b&&b(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function R(){e.ot=!0;const{lt:t}=e;e.lt=new g(t=>x=()=>{e.ot=!1,t()}),await t}async function T(){Ps(p.$e)>c.availableSize&&(c.availableSize=0,await ks(c,re))}})(e,t,n,{it:p,ct:h,dt:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new gn(u)})(s,e,t,n),a.add(d),await d}catch(t){throw l&&s.Me.delete(e),t}finally{a.delete(d);const e=bs.shift();e?e():xs--}}remove(e){const{Me:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Y){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Oe:n,writer:s}=this,{writable:a}=s;if(Ps(e)>U)throw new w(ls);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Le:n,rawComment:s,Ze:i,He:a,rawExtraField:o,extendedTimestamp:c,Xe:d,lastModDate:l,Ke:u,qe:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=Ds(e);t.uint16(1),t.uint16(e-4),u&&t.Qe(p),f&&t.Qe(h),m&&t.Qe(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.Pe=g,r._e=m,r.Ge=y;const b=vs(l);if(c&&Rs(b)){const e=Ds(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(b),x=e.array}else x=re;r.Be=x;const S=Ps(g,n,i,a,x,o);if(S>U)throw new w(ws);t+=46+Ps(e,s)+S}return t})(e.files),{ut:a,wt:o}=await(async(e,r,n)=>{const{files:s,writer:i}=e,a=new f(r);await je(i);let o=0,c=0,d=i.diskNumber,l=i.diskOffset;for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,Pe:w,Le:f,Be:p,Ze:h,He:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Ve:b,je:S,Ke:z,qe:F,Ge:D,_e:E,internalFileAttributes:k,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:R,compressedSize:T}=r,M=Ps(w,f,p,h,m,y),I=46+Ps(u,g)+M;o+I-c>i.availableSize&&(await ks(i,a.slice(c,o)),c=o,i.availableSize=0,await ks(i,re)),0==e&&(d=i.diskNumber,l=i.diskOffset),z||Is(S,18,R),F||Is(S,14,T),(E||D)&&45>r.version&&Ms(S,0,45);const O=Ds(I);if(O.uint32(N),O.uint16(x),O.bytes(b.subarray(0,24)),O.uint16(M),O.uint16(Ps(g)),O.uint16(D?U:v),O.uint16(k),O.uint32(A),O.uint32(E?C:t),O.bytes(u),O.bytes(w),O.bytes(f),O.bytes(p),O.bytes(h),O.bytes(m),O.bytes(y),O.bytes(g),Ws(a,O.array,o),o+=I,n.onprogress)try{await n.onprogress(e+1,s.size,new gn(r))}catch{}}return await ks(i,c?a.slice(c):a),{ut:d,wt:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{ut:a,wt:o}=n;let{ft:c}=n,d=e.files.size,l=a,u=e.offset-o-(a?e.Ie:0),f=s.diskNumber;s.availableSize<Z&&f++;let p=Cs(e,r,rn);if(!(C>u&&C>c&&U>d&&U>f)){if(!1===p)throw new w(hs);p=!0}const h=Ps(t);if(h>U)throw new w(ls);const m=Ds(p?98:Z);Ps(m.array)+h>s.availableSize&&(s.availableSize=0,await ks(s,re)),f=s.diskNumber,p&&(m.uint32(L),m.Qe(44),m.uint16(45),m.uint16(45),m.uint32(f),m.uint32(l),m.Qe(d),m.Qe(d),m.Qe(c),m.Qe(u),m.uint32(B),m.uint32(f),m.Qe(i(e.offset)+i(c)-i(s.diskOffset)-i(s.diskNumber?e.Ie:0)),m.uint32(f+1),Cs(e,r,"supportZip64SplitFile",!0)&&(f=U,l=U),d=U,u=C,c=C),m.uint32(P),m.uint16(f),m.uint16(l),m.uint16(d),m.uint16(d),m.uint32(c),m.uint32(u),m.uint16(h),await ks(s,m.array),h&&await ks(s,t)})(e,r,n,{ut:a,wt:o,ft:s})})(this,e,r),Cs(this,r,An)||await a.getWriter().close(),s.getData?s.getData():a}}function zs(e,t){const{it:r}=e;let{$e:n,extraFieldLength:s}=r,i=64-(t+Ps(n))%64;4>i&&(i+=64);const a=new f(i),o=Ns(a);Ms(o,0,6534),Ms(o,2,i-4);const c=n;r.$e=n=new f(Ps(c)+i),Ws(n,c),Ws(n,a,Ps(c));const d=Ns(n);Ms(d,28,s+i),r.et=d,e.dt+=i}function Fs(e){if(e===Y)return re;{const t=new f(4);Ns(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Ds(e){const t=new f(e),r=Ns(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ms(r,n,e),n+=2},uint32:e=>{Is(r,n,e),n+=4},Qe:e=>{Os(r,n,i(e)),n+=8},bytes:e=>{Ws(t,e,n),n+=Ps(e)},Ye:e=>n+=e}}function Es(e,t){return e.offset-t.diskOffset-(t.diskNumber?e.Ie:0)}async function ks(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Ps(t),await n.write(t)}finally{n.releaseLock()}}function As(e){if(e)return(i(e.getTime())+i(116444736e5))*i(1e4)}function vs(e){return a.floor(e.getTime()/1e3)}function Rs(e){return e>=fs&&ps>=e}function Ts(e){return a.min(ps,a.max(fs,e))}function Cs(e,t,r,n){const s=t[r]===Y?e.options[r]:t[r];return s===Y?n:s}function Us(e){return e+5*(a.floor(e/16383)+1)}function Ms(e,t,r){e.setUint16(t,r,!0)}function Is(e,t,r){e.setUint32(t,r,!0)}function Os(e,t,r){e.setBigUint64(t,r,!0)}function Ws(e,t,r){e.set(t,r)}function Ns(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function Ps(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ls({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:i,rawLastModDate:a,rawFilename:o,qe:c,Ke:d,extraFieldLength:l}){const u=Ds(26),w=u.array,f=Ns(w);if(u.uint16(e),u.uint16(t),u.uint16(r),a===Y){const e=new h(1),t=Ns(e);Ms(t,0,(i.getHours()<<6|i.getMinutes())<<5|i.getSeconds()/2),Ms(t,2,(i.getFullYear()-1980<<4|i.getMonth()+1)<<5|i.getDate()),a=e[0]}return u.uint32(a),u.Ye(4),c||s!==Y?u.uint32(c?C:s):u.Ye(4),d||n!==Y?u.uint32(d?C:n):u.Ye(4),u.uint16(Ps(o)),u.uint16(l),{Ve:w,je:f,rawLastModDate:a}}function Bs(e,t,r,n,s){let i=0;return t&&(i|=j),r&&(i|=8),8!=s&&9!=s||(0>e||e>3||(i|=6),e>3&&5>=e&&(i|=4),9==e&&(i|=2)),n&&(i|=1),i}const Zs="Entry filename already exists";class Hs{constructor(e,t,n,s){const i=this;if(e.root&&s&&s.getChildByName(t))throw new w(Zs);n||(n={}),r.assign(i,{fs:e,name:t,data:n.data,options:n.options,id:e.ht++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[i.id]=i),s&&i.parent.children.push(i)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(Zs);this.name=e}}class Vs extends Hs{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new Vs(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=Xs(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([je(n),je(e,s)]);const{readable:i}=n;return r.uncompressedSize=n.size,await i.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==dt)return!1;throw e}}getText(e,t){return this.getData(new Fe(e),t)}getBlob(e,t){return this.getData(new Se(e),t)}getData64URI(e,t){return this.getData(new xe(e),t)}getUint8Array(e){return this.getData(new Le,e)}getWritable(e=new k,t){return this.getData({writable:e},t)}async getArrayBuffer(e){const t=await this.getUint8Array(e);return t.byteOffset||t.byteLength!=t.buffer.byteLength?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):t.buffer}replaceBlob(e){r.assign(this,{data:e,Reader:be,Writer:Se,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:ze,Writer:Fe,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ge,Writer:xe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Pe,Writer:Le,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:_s(e),Writer:null,reader:null})}}class js extends Hs{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new js(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return ti(this,e,{options:t},!0)}addText(e,t,r={}){return ti(this,e,{data:t,Reader:ze,Writer:Fe,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return ti(this,e,{data:t,Reader:be,Writer:Se,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return ti(this,e,{data:t,Reader:ge,Writer:xe,options:r,uncompressedSize:a.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return ti(this,e,{data:t,Reader:Pe,Writer:Le,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return ti(this,e,{data:t,Reader:class extends Ne{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return ti(this,e,{Reader:_s(t),options:r})}addFileSystemEntry(e,t={}){return Ys(this,e,t)}addFileSystemHandle(e,t={}){return Ys(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),ti(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}yt(e,t){return ti(this,e,t)}importBlob(e,t){return this.importZip(new be(e),t)}importData64URI(e,t){return this.importZip(new ge(e),t)}importUint8Array(e,t){return this.importZip(new Pe(e),t)}importHttpContent(e,t){return this.importZip(new Ne(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new Se(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new xe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Le,e)}async exportWritable(e=new k,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const i=Ks([e],"uncompressedSize"),a=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){a.set(e.id,r);try{await s.onprogress(t.from(a.values()).reduce((e,t)=>e+t,0),i)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await je(e);const n=new Ln(e,t),s=[],i=await n.getEntries();for(const e of i){let n=this;try{const i=e.filename.split("/"),a=i.pop();if(i.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(Zs)}else n=new js(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(a)if(t=n.getChildByName(a),t){if(!t.directory)throw new w(Zs)}else t=new js(this.fs,a,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(ti(n,a,{data:e,Reader:Gs(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Y&&(n.bufferedWrite=!0);const[i]=await g.all([Js(s,n.readerOptions),je(e)]),a=new Ss(e,n);return await(async(e,n,s,i,a)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=i.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof gn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:i,lastAccessDate:a},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,a.get(c),r.assign({},i,w,u,{directory:c.directory,onprogress:async e=>{if(i.onprogress){d.set(l,e);try{await i.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(i.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(a,s,Ks([s],"uncompressedSize"),n,i),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const qs={FS:class{constructor(){ei(this)}get children(){return this.root.children}remove(e){Qs(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Y}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(Zs)}else Qs(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}yt(e,t){return this.root.yt(e,t)}importBlob(e,t){return ei(this),this.root.importBlob(e,t)}importData64URI(e,t){return ei(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return ei(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return ei(this),this.root.importHttpContent(e,t)}importReadable(e,t){return ei(this),this.root.importReadable(e,t)}importZip(e,t){return ei(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:js,ZipFileEntry:Vs};function Ks(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function _s(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function Gs(e){return class extends me{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new Se,r.assign({},e,t.options));t.data=n,t.gt=new be(n),super.init()}readUint8Array(e,t){return this.gt.readUint8Array(e,t)}}}function Xs(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function Js(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=Xs(e.Reader,e.data,t);s.set(e,r);try{await je(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Y&&(e.uncompressedSize=r.size)})),s}function Qs(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Ys(e,t,n){return async function e(t,s,i){if(s)try{if((s.isFile||s.isDirectory)&&(s=await $s(s)),"file"==s.kind){const e=await s.getFile();i.push(t.yt(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);i.push(r);for await(const t of s.values())await e(r,t,i)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return i}(e,t,[])}async function $s(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async i=>{if(i.length){for(const e of i)t.push(await $s(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function ei(e){e.entries=[],e.ht=0,e.root=new js(e)}function ti(e,t,r,n){if(e.directory)return n?new js(e.fs,t,r,e):new Vs(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=qs});
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:n,Number:s,BigInt:a,Math:i,Date:o,Map:c,Set:d,Response:l,URL:u,Error:w,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:x,TextDecoder:b,document:S,crypto:z,btoa:F,TransformStream:R,ReadableStream:E,WritableStream:D,CompressionStream:A,DecompressionStream:v,navigator:T,Worker:k}="undefined"!=typeof globalThis?globalThis:this||self,C=4294967295,U=65535,I=255,O=67324752,M=134695760,N=M,_=33639248,P=101010256,L=101075792,W=117853008,Z=22,B=20,V=21589,H=2048,j=16384,q=2048,K=1024,G="/",Y=30,X=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function",re=new f;let ne=2;try{typeof T!=ee&&T.hardwareConcurrency&&(ne=T.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:ne,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof A!=ee&&A,DecompressionStream:typeof v!=ee&&v};function ae(){return se}function ie(e){return i.max(e.chunkSize,64)}function oe(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function ce(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function de(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const le="HTTP error ",ue="HTTP Range not supported",we="HTTP resource changed",fe="Content-Range",pe="Range",he="GET",me="bytes",ye=16777216,ge="writable",xe=Symbol();class be{constructor(){this.size=0}init(){this.initialized=!0}}class Se extends be{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=ie(ae())}={}){const n=this;let s=0;return new E({async pull(a){const o=t===Q?r:i.min(r,t-s),c=await rt(n,e+s,o);a.enqueue(c),s+r>t||t===Q&&!c.length&&o?a.close():s+=r}})}}class ze extends be{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new w("Writer not initialized");return e.writeUint8Array(ce(t))}});r.defineProperty(e,ge,{get:()=>t})}writeUint8Array(){}}class Fe extends Se{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,o:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{o:r,dataURI:n}=this,s=new f(t),a=4*i.floor(e/3),o=atob(n.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let d=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),d++;return d<s.length?s.subarray(0,d):s}}class Re extends ze{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,s=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)s+=n.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=n.fromCharCode(e[r]);s.length>2?t.data+=F(s):t.pending=s+t.pending}getData(){return this.data+F(this.pending)}}let Ee,De;class Ae extends Se{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),De||(De=(async()=>{try{const e=new y([new f(3)]).slice(1,2).stream().getReader();let t=0,r=await e.read();for(;!r.done;)t+=r.value.length,r=await e.read();Ee=1==t}catch{Ee=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Ee?t.slice(n,n+s).stream():super.createReadable(e):t.stream()}async readUint8Array(e,t){const r=this,n=e+t,s=e||n<r.size?r.blob.slice(e,n):r.blob;let a=await s.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,n)),new f(a)}}class ve extends be{constructor(e){super();const t=this,n=new R,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,ge,{get:()=>n.writable}),t.blob=new l(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Te extends Ae{constructor(e){super(new y([e],{type:"text/plain"}))}}class ke extends ve{constructor(e){super(e),r.assign(this,{encoding:e,l:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,l:t}=this,n=await super.getData();if(n.text&&t)return n.text();{const t=new FileReader;return new g((s,a)=>{r.assign(t,{onload:({target:e})=>s(e.result),onerror:()=>a(t.error)}),t.readAsText(n,e)})}}}class Ce extends Se{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,qe,Be),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==Q){const{offset:r=0,size:n=a-r}=e||{};if(n>0&&a>r)return((e,t,r)=>{let n,a=t,o=0,c=r;return new E({start:()=>d(),async pull(e){n||await d();const{value:t,done:r}=await n.read();if(r)throw new w(ue);const s=t.length>o?t.subarray(0,o):t;o-=s.length,c-=s.length,s.length&&e.enqueue(s),o||(await(async()=>{const e=n;n=Q,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function d(){const t=i.min(e.maximumRangeSize,c),r=await qe(he,e,We(e,a,t));if(206!=r.status)throw new w(ue);const d=r.headers.get(fe);if(d){const e=s(d.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new w(ue)}Le(e,r),Pe(e,r),a+=t,o=t,n=r.body.getReader()}})(t,r,i.min(n,a-r))}return super.createReadable(e)}readUint8Array(e,t){return Me(this,e,t,qe,Be)}}class Ue extends Se{constructor(e,t){super(),Ie(this,e,t)}async init(){await Oe(this,Ke,Ve),super.init()}readUint8Array(e,t){return Me(this,e,t,Ke,Ve)}}function Ie(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:d=ye,fetch:l}=n;delete(n=r.assign({},n)).preventHeadRequest,delete n.useRangeHeader,delete n.forceRangeRequests,delete n.combineSizeEocd,delete n.checkResourceChanges,delete n.maximumRangeSize,delete n.useXHR,delete n.fetch,r.assign(e,{url:t,options:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c,maximumRangeSize:d,fetch:l})}async function Oe(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(n)&&(a||i)&&(void 0===s||s)){const n=await t(he,e,We(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==me))throw new w(ue);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==Z&&(e.h=t)}Pe(e,n);const s=Ne(n);s===Q?await je(e,t,r):e.size=s}}else await je(e,t,r)}async function Me(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,h:c,size:d,options:l}=e;if(i||o){if(c&&t==d-Z&&r==Z)return c;if(d>t&&0!==r){t+r>d&&(r=d-t);const a=await n(he,e,We(e,t,r));if(206!=a.status)throw new w(ue);const i=a.headers.get(fe);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new w(ue)}Le(e,a),Pe(e,a);const o=new f(await a.arrayBuffer());if(o.length!=r)throw new w(ue);return o}return re}{const{data:n}=e;return n||await a(e,l),e.data.subarray(t,t+r)}}function Ne(e){const t=e.headers.get(fe);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function _e({headers:e}){return{m:e.get("Etag")||Q,lastModified:e.get("Last-Modified")||Q}}function Pe(e,t){const{checkResourceChanges:r,S:n}=e;r&&!n&&206==t.status&&(e.S=_e(t))}function Le(e,t){const{checkResourceChanges:n,S:s,size:a}=e;if(n){const e=Ne(t);if(e!==Q&&a!==Q&&e!=a)throw new w(we);if(s){const e=_e(t);if(r.entries(s).some(([t,r])=>r!==Q&&e[t]!==Q&&r!=e[t]))throw new w(we)}}}function We(e,t=0,n=1){return r.assign({},Ze(e),{[pe]:me+"="+(0>t?t:t+"-"+(t+n-1))})}function Ze({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Be(e){await He(e,qe)}async function Ve(e){await He(e,Ke)}async function He(e,t){const r=await t(he,e,Ze(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function je(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Ze(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function qe(e,{fetch:t=fetch,options:n,url:s},a){const i=await t(s,r.assign({},n,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new w(ue):new w(le+(i.statusText||i.status))}function Ke(e,{url:t},n){return new g((s,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new w(ue):new w(le+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new w("Network error")),!1),i.open(e,t),n)for(const e of r.entries(n))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Ge extends Se{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Ue(e,t):new Ce(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}createReadable(e){return this.reader.createReadable(e)}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Ye extends Se{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Xe extends ze{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const n=t.array;t.array=new f(e),t.array.set(n)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Je extends Se{constructor(e){super(),this.F=e}async init(){const e=this,{F:t}=e;e.R=0,await g.all(t.map(e=>tt(e))),e.D=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}A(e){const{D:t,size:r}=this,n=t.at(e);return n===Q?r:n}async readUint8Array(e,t){const r=this,{F:n}=this;let s,a=0,o=e;for(;n[a]&&o>=n[a].size;)o-=n[a].size,a++;const c=n[a];if(c){const n=c.size;if(o+t>n){const a=n-o;s=oe(await rt(c,o,a),await r.readUint8Array(e+a,t-a))}else s=await rt(c,o,t)}else s=re;return r.R=i.max(a,r.R),s}}class Qe extends be{constructor(e,t=4294967295){super();const n=this;let s,a,i;r.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new D({async write(t){if(t===xe)return void(i&&await d());const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await d(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new w("Writer iterator completed too soon");s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await tt(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await l())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),s.size+=t,n.availableSize-=t)}async function d(){await l(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize}async function l(){await i.close()}r.defineProperty(n,ge,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(xe)}finally{e.releaseLock()}}}class $e{constructor(e){return t.isArray(e)&&(e=new Je(e)),e instanceof E&&(e={readable:e}),e}}class et{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Qe(e)),e instanceof D&&(e={writable:e}),e.size===Q&&(e.size=0),e}}async function tt(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function rt(e,t,r){return e.readUint8Array(t,r)}const nt=[[],[],[],[],[],[],[],[]];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)t=1&t?t>>>1^3988292384:t>>>1;nt[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=nt[t-1][e];nt[t][e]=r>>>8^nt[0][255&r]}const[st,at,it,ot,ct,dt,lt,ut]=nt;class wt{constructor(e){this.v=e||-1}append(e){let t=0|this.v;const r=0|e.length;let n=0;if(r>=8&&e.buffer){const s=new m(e.buffer,e.byteOffset,r),a=r-8;for(;a>=n;n+=8){const e=t^s.getInt32(n,!0),r=s.getInt32(n+4,!0);t=ut[255&e]^lt[e>>>8&255]^dt[e>>>16&255]^ct[e>>>24&255]^ot[255&r]^it[r>>>8&255]^at[r>>>16&255]^st[r>>>24&255]}}for(;r>n;n++)t=t>>>8^st[255&(t^e[n])];this.v=t}get(){return~this.v}}class ft extends R{constructor(){let e;const t=new wt;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function pt(e){if(typeof x==ee){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new x).encode(e)}const ht={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=ht.T(r);return 32===n?e.concat(t):ht.C(t,n,0|r,e.slice(0,e.length-1))},U(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+ht.T(r)},I(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=ht.O(t,e[r-1]&2147483648>>t-1,1)),e},O:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,T:e=>i.round(e/1099511627776)||32,C(e,t,r,n){for(void 0===n&&(n=[]);t>=32;t-=32)n.push(r),r=0;if(0===t)return n.concat(e);for(let s=0;s<e.length;s++)n.push(r|e[s]>>>t),r=e[s]<<32-t;const s=e.length?e[e.length-1]:0,a=ht.T(s);return n.push(ht.O(t+a&31,t+a>32?r:n.pop(),1)),n}},mt={bytes:{M(e){const t=ht.U(e)/8,r=new f(t);let n;for(let s=0;t>s;s++)3&s||(n=e[s/4]),r[s]=n>>>24,n<<=8;return r},N(e){const t=[];let r,n=0;for(r=0;r<e.length;r++)n=n<<8|e[r],3&~r||(t.push(n),n=0);return 3&r&&t.push(ht.O(8*(3&r),n)),t}}},yt=class{constructor(e){const t=this;t.blockSize=512,t._=[1732584193,4023233417,2562383102,271733878,3285377520],t.P=[1518500249,1859775393,2400959708,3395469782],e?(t.L=e.L.slice(0),t.W=e.W.slice(0),t.Z=e.Z):t.reset()}reset(){const e=this;return e.L=e._.slice(0),e.W=[],e.Z=0,e}update(e){const t=this;"string"==typeof e&&(e=mt.B.N(e));const r=t.W=ht.concat(t.W,e),n=t.Z,s=t.Z=n+ht.U(e);if(s>9007199254740991)throw new w("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+n-(t.blockSize+n&t.blockSize-1);s>=e;e+=t.blockSize)t.V(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}H(){const e=this;let t=e.W;const r=e.L;t=ht.concat(t,[ht.O(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.Z/4294967296)),t.push(0|e.Z);t.length;)e.V(t.splice(0,16));return e.reset(),r}j(e,t,r,n){return e>19?e>39?e>59?e>79?void 0:t^r^n:t&r|t&n|r&n:t^r^n:t&r|~t&n}K(e,t){return t<<e|t>>>32-e}V(e){const r=this,n=r.L,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],d=n[3],l=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r.K(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r.K(5,a)+r.j(e,o,c,d)+l+s[e]+r.P[i.floor(e/20)]|0;l=d,d=c,c=r.K(30,o),o=a,a=t}n[0]=n[0]+a|0,n[1]=n[1]+o|0,n[2]=n[2]+c|0,n[3]=n[3]+d|0,n[4]=n[4]+l|0}},gt={importKey:e=>new gt.G(mt.bytes.N(e)),Y(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new w("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,d;const l=new ArrayBuffer(s),u=new m(l);let f=0;const p=ht;for(t=mt.bytes.N(t),d=1;(s||1)>f;d++){for(a=i=e.encrypt(p.concat(t,[d])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(s||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return l.slice(0,n/8)},G:class{constructor(e){const t=this,r=t.X=yt,n=[[],[]];t.J=[new r,new r];const s=t.J[0].blockSize/32;e.length>s&&(e=(new r).update(e).H());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.J[0].update(n[0]),t.J[1].update(n[1]),t.$=new r(t.J[0])}reset(){const e=this;e.$=new e.X(e.J[0]),e.ee=!1}update(e){this.ee=!0,this.$.update(e)}digest(){const e=this,t=e.$.H(),r=new e.X(e.J[1]).update(t).H();return e.reset(),r}encrypt(e){if(this.ee)throw new w("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},xt=typeof z!=ee&&typeof z.getRandomValues==te,bt="Invalid password",St="Invalid signature",zt="zipjs-abort-check-password";function Ft(e){if(xt)return z.getRandomValues(e);throw new w("Crypto API not supported")}const Rt=16,Et={name:"PBKDF2"},Dt=r.assign({hash:{name:"HMAC"}},Et),At=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Et),vt=["deriveBits"],Tt=[8,12,16],kt=[16,24,32],Ct=10,Ut=[0,0,0,0],It=typeof z!=ee,Ot=It&&z.subtle,Mt=It&&typeof Ot!=ee,Nt=mt.bytes,_t=class{constructor(e){const t=this;t.te=[[[],[],[],[],[]],[[],[],[],[],[]]],t.te[0][0][0]||t.re();const r=t.te[0][4],n=t.te[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new w("invalid aes key size");for(t.P=[i=e.slice(0),o=[]],a=s;4*s+28>a;a++){let e=i[a-1];(a%s===0||8===s&&a%s===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%s===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-s]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:n[0][r[t>>>24]]^n[1][r[t>>16&255]]^n[2][r[t>>8&255]]^n[3][r[255&t]]}}encrypt(e){return this.ne(e,0)}decrypt(e){return this.ne(e,1)}re(){const e=this.te[0],t=this.te[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,d;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=i=0;!r[l];l^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[l]=a,n[a]=l,d=s[c=s[o=s[l]]];let u=16843009*d^65537*c^257*o^16843008*l,w=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][l]=w=w<<24^w>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}ne(e,t){if(4!==e.length)throw new w("invalid aes block size");const r=this.P[t],n=r.length/4-2,s=[0,0,0,0],a=this.te[t],i=a[0],o=a[1],c=a[2],d=a[3],l=a[4];let u,f,p,h=e[0]^r[0],m=e[t?3:1]^r[1],y=e[2]^r[2],g=e[t?1:3]^r[3],x=4;for(let e=0;n>e;e++)u=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^d[255&g]^r[x],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^d[255&h]^r[x+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^d[255&m]^r[x+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^d[255&y]^r[x+3],x+=4,h=u,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=l[h>>>24]<<24^l[m>>16&255]<<16^l[y>>8&255]<<8^l[255&g]^r[x++],u=h,h=m,m=y,y=g,g=u;return s}},Pt=class{constructor(e,t){this.se=e,this.ae=t,this.ie=t}reset(){this.ie=this.ae}update(e){return this.oe(this.se,e,this.ie)}ce(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,n=255&e;255===t?(t=0,255===r?(r=0,255===n?n=0:++n):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=n}return e}de(e){0===(e[0]=this.ce(e[0]))&&(e[1]=this.ce(e[1]))}oe(e,t,r){let n;if(!(n=t.length))return[];const s=ht.U(t);for(let s=0;n>s;s+=4){this.de(r);const n=e.encrypt(r);t[s]^=n[0],t[s+1]^=n[1],t[s+2]^=n[2],t[s+3]^=n[3]}return ht.I(t,s)}},Lt=gt.G;let Wt=It&&Mt&&typeof Ot.importKey==te,Zt=It&&Mt&&typeof Ot.deriveBits==te;class Bt extends R{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){Ht(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,le:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await qt(e,t,r,Gt(n,0,Tt[t])),a=Gt(n,Tt[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new w(bt)})(r,a,s,Gt(e,0,Tt[a]+2)),e=Gt(e,Tt[a]+2),n?t.error(new w(zt)):i()):await o;const c=new f(e.length-Ct-(e.length-Ct)%Rt);t.enqueue(jt(r,e,c,0,Ct,!0))},async flush(e){const{ue:t,we:r,pending:n,ready:s}=this;if(r&&t){await s;const a=Gt(n,0,n.length-Ct),i=Gt(n,n.length-Ct);let o=re;if(a.length){const e=Xt(Nt,a);r.update(e);const n=t.update(e);o=Yt(Nt,n)}const c=Gt(Yt(Nt,r.digest()),0,Ct);let d=n.length<Ct?1:0;for(let e=0;Ct>e;e++)d|=c[e]^i[e];if(d)throw new w(St);e.enqueue(o)}}})}}class Vt extends R{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){Ht(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,le:a,ready:i}=r;let o=re;n?(o=await(async(e,t,r)=>{const n=Ft(new f(Tt[t]));return oe(n,await qt(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%Rt);c.set(o,0),t.enqueue(jt(r,e,c,o.length,0))},async flush(e){const{ue:t,we:r,pending:s,ready:a}=this;if(r&&t){await a;let i=re;if(s.length){const e=t.update(Xt(Nt,s));r.update(e),i=Yt(Nt,e)}n.signature=Yt(Nt,r.digest()).slice(0,Ct),e.enqueue(oe(i,n.signature))}}}),n=this}}function Ht(e,t,n,s){r.assign(e,{ready:new g(t=>e.le=t),password:Kt(t,n),strength:s-1,pending:re})}function jt(e,t,r,n,s,a){const{ue:i,we:o,pending:c}=e;c.length&&(t=oe(c,t));const d=t.length-s;let l;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(d-d%Rt)),l=0;d-Rt>=l;l+=Rt){const e=Xt(Nt,Gt(t,l,l+Rt));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(Yt(Nt,s),l+n)}return e.pending=Gt(t,l),r}async function qt(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!Wt)return gt.importKey(t);try{return await Ot.importKey("raw",t,r,!1,s)}catch{return Wt=!1,gt.importKey(t)}})(0,s,Dt,0,vt),o=await(async(e,t,r)=>{if(!Zt)return gt.Y(t,e.salt,At.iterations,r);try{return await Ot.deriveBits(e,t,r)}catch{return Zt=!1,gt.Y(t,e.salt,At.iterations,r)}})(r.assign({salt:a},At),i,8*(2*kt[n]+2)),c=new f(o),d=Xt(Nt,Gt(c,0,kt[n])),l=Xt(Nt,Gt(c,kt[n],2*kt[n])),u=Gt(c,2*kt[n]);return r.assign(e,{keys:{key:d,fe:l,passwordVerification:u},ue:new Pt(new _t(d),t.from(Ut)),we:new Lt(l)}),u}function Kt(e,t){return t===Q?pt(e):t}function Gt(e,t,r){return e.subarray(t,r)}function Yt(e,t){return e.M(t)}function Xt(e,t){return e.N(t)}class Jt extends R{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){$t(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=er(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new w(bt);e=e.subarray(12)}n?t.error(new w(zt)):t.enqueue(er(r,e))}})}}class Qt extends R{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){$t(this,e,t,r)},transform(e,t){const r=this;let n,s;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=Ft(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(tr(r,t),0),s=12}else n=new f(e.length),s=0;n.set(tr(r,e),s),t.enqueue(n)}})}}function $t(e,t,n,s){r.assign(e,{password:t,rawPassword:n,passwordVerification:s}),((e,t,n)=>{const s=[305419896,591751049,878082192];if(r.assign(e,{keys:s,pe:new wt(s[0]),he:new wt(s[2])}),n)for(let t=0;t<n.length;t++)rr(e,n[t]);else for(let r=0;r<t.length;r++)rr(e,t.charCodeAt(r))})(e,t,n)}function er(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=nr(e)^t[n],rr(e,r[n]);return r}function tr(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=nr(e)^t[n],rr(e,t[n]);return r}function rr(e,t){let[,r]=e.keys;e.pe.append([t]);const n=~e.pe.get();r=ar(i.imul(ar(r+sr(n)),134775813)+1),e.he.append([r>>>24]);const s=~e.he.get();e.keys=[n,r,s]}function nr(e){const t=2|e.keys[2];return sr(i.imul(t,1^t)>>>8)}function sr(e){return 255&e}function ar(e){return 4294967295&e}const ir="Invalid uncompressed size",or="Invalid compressed data";class cr extends R{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:d,deflate64:l}=e,u=this;let w,f,p,h=super.readable;const y=c&&s&&!l&&(!a||o)&&!(!i||!n);a&&!o||!c||y||(w=new ft,h=fr(h,w)),s&&(y?(p=new dr,h=pr(h,new n("gzip")),h=fr(h,p)):h=wr(h,i,{level:d,chunkSize:t},n,r,n)),a&&(o?h=fr(h,new Qt(e)):(f=new Vt(e),h=fr(h,f))),ur(u,h,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=y?p.signature:new m(w.value.buffer).getUint32(0)),u.signature=e})}}class dr extends R{constructor(){let e,t=10,r=new f(0);super({transform(e,n){if(t){const r=i.min(t,e.length);if(t-=r,!(e=e.subarray(r)).length)return}const s=r.length+e.length;if(8>=s)return void(r=oe(r,e));const a=s-8,o=i.min(a,r.length);n.enqueue(oe(r.subarray(0,o),e.subarray(0,a-o))),r=oe(r.subarray(o),e.subarray(a-o))},flush(){const t=de(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class lr extends R{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:d,deflate64:l}=e;let u,f,p=super.readable;a&&(s?p=fr(p,new Jt(e)):(f=new Bt(e),p=fr(p,f))),c&&(p=wr(p,d,{chunkSize:t,deflate64:l},n,r,n),p=(e=>{const t=e.getReader();return new E({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new w(or);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(p)),a&&!s||!i||(u=new ft,p=fr(p,u)),ur(this,p,()=>{if((!a||s)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new w(St)}})}}function ur(e,t,n){t=fr(t,new R({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function wr(e,t,r,n,s,a){const i=t&&n?n:s||a,o=r.deflate64?"deflate64-raw":"deflate-raw";let c;try{c=new i(o,r)}catch(e){if(!t)throw e;if(s)c=new s(o,r);else{if(!a)throw e;c=new a(o,r)}}return pr(e,c)}function fr(e,t){return e.pipeThrough(t)}function pr(e,t){const r=t.writable.getWriter(),n=e.getReader();return(async()=>{try{for(;;){await r.ready;const e=await n.read();if(e.done){await r.close();break}await r.write(e.value)}}catch(e){await(async(e,t)=>{try{await e.abort(t)}catch{}})(r,e),await(async(e,t)=>{try{await e.cancel(t)}catch{}})(n,e)}})(),t.readable}const hr="data",mr="deflate",yr="inflate";class gr extends R{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(mr)?a=cr:s.startsWith(yr)&&(a=lr),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,d=new R({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),l=new R({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==Q&&n.outputSize>e.outputSize))throw new w(ir)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(d).pipeThrough(o).pipeThrough(l)})}}class xr extends R{constructor(e){const t=[];let r=0;function n(){const n=new f(e);let s=0;for(;e>s;){const r=t[0],a=e-s;r.length>a?(n.set(r.subarray(0,a),s),t[0]=r.subarray(a),s+=a):(n.set(r,s),s+=r.length,t.shift())}return r-=e,n}s.isFinite(e)&&e>=1||(e=65536),super({transform(s,a){for(t.push(s),r+=s.length;r>e;)a.enqueue(n())},flush(e){r&&e.enqueue(((e,t)=>{const r=new f(t);let n=0;for(const t of e)r.set(t,n),n+=t.length;return r})(t,r))}})}}const br={type:"module"},Sr="error";let zr,Fr,Rr,Er,Dr=!0;try{Dr=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Ar{constructor(e,{readable:t,writable:n},{options:s,config:a,me:i,useWebWorkers:o,transferStreams:c,workerURI:d},l){const{signal:u}=i;return r.assign(e,{ye:!0,ge:(e.ge||0)+1,readable:t.pipeThrough(new xr(ie(a))).pipeThrough(new vr(i),{signal:u}),writable:n,options:r.assign({},s),workerURI:d,transferStreams:c,terminate:()=>new g(t=>{const{xe:r,ye:n}=e;r?(n?e.be=t:(r.terminate(),t()),e.Se=null):t()}),ze(){if(e.ye){const{be:t}=e;t&&(e.be=null,e.Fe=!0,e.xe.terminate(),t()),e.ye=!1,l(e)}}}),zr===Q&&(zr=typeof k!=ee),(o&&zr?Cr:kr)(e,a)}}class vr extends R{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await Tr(e,r)},async transform(e,n){s+=e.length,t&&await Tr(t,s,r),n.enqueue(e)},async flush(){n&&await Tr(n,s)}})}}async function Tr(e,...t){try{await e(...t)}catch{}}function kr(e,t){return{run:()=>(async({options:e,readable:t,writable:r,ze:n},s)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{const t=e.codecType.startsWith(mr)?s.CompressionStreamZlib:s.DecompressionStreamZlib;t&&!t.Re||(e.useCompressionStream=!0)}a=new gr(e,s),await t.pipeThrough(a).pipeThrough(new xr(ie(s))).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:i,outputSize:o}=a;return{signature:n,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{n()}})(e,t)}}function Cr(e,t){const{baseURI:n,chunkSize:s}=t;let{wasmURI:a}=t;if(!e.Se){let i;typeof a==te&&(a=a());try{i=Ir(e.workerURI,n,e)}catch{return zr=!1,kr(e,t)}r.assign(e,{xe:i,Fe:!1,Se:{run:()=>(async(e,t)=>{let n,s;const a=new g((e,t)=>{n=e,s=t});r.assign(e,{reader:null,writer:null,Ee:n,De:s,result:a});const{readable:i,options:o}=e,{writable:c,closed:d,Ae:l}=(e=>{const t=new AbortController,{writable:r,readable:n}=new R,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,Ae:()=>t.abort()}})(e.writable);let u;try{u=Mr({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){l();try{await d}catch{}throw e.ze(),t}u||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await w(),await d,e}catch(e){await w(),l();try{await d}catch{}throw e}async function w(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:s,wasmURI:a,baseURI:n})}})}return e.Se}function Ur(e){const{xe:t}=e;if(t)try{t.terminate()}catch{}e.Se=null}function Ir(e,t,n,s,a=!0){let i,o,c;if(Rr===Q||Fr!==e){const r=typeof e==te;o=r?e(a):e;const d=o.startsWith("data:"),l=o.startsWith("blob:");if(d||l){s===Q&&(s=!1),s&&(c=br);try{i=new k(o,c)}catch(a){if(l)try{u.revokeObjectURL(o)}catch{}if(r&&l)return Ir(e,t,n,s,!1);if(s)throw a;return Ir(e,t,n,!0,!1)}}else{s===Q&&(s=!0),s&&(c=br);try{o=new u(o,t)}catch{}try{i=new k(o,c)}catch(r){if(s)throw r;return Ir(e,t,n,!1,a)}}Fr=e,Rr=o,Er=c}else i=new k(Rr,Er);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:d,Ee:l,De:u,ze:p,ge:h}=t,m=()=>t.ge!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new w(e);r.assign(i,{stack:t,code:n,name:s,outputSize:a}),y(i)}else{if("pull"==n){const{value:e,done:r}=await c.read();m()||Mr({type:hr,value:e,done:r,messageId:a},t)}n==hr&&(await d.ready,await d.write(new f(s)),m()||Mr({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(Ur(t),y(o))}function y(e,t){m()||(e?u(e):l(t),d&&d.releaseLock(),p())}})(e,n)),i.addEventListener(Sr,e=>Or(e,n)),i.addEventListener("messageerror",e=>Or(e,n)),i}function Or(e,t){e.preventDefault&&e.preventDefault();const{De:r,writer:n,ze:s}=t;Ur(t),r&&(r(e.error||new w(e.message||Sr)),n&&n.releaseLock(),s())}function Mr(e,{xe:t,writer:r,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=ce(r),i.push(e.value.buffer)),n&&Dr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Dr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Nr=[];const _r=[];let Pr,Lr,Wr=0;async function Zr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:d,encrypted:l}=r,{workerURI:u,maxWorkers:w}=n;t.transferStreams=a||a===Q&&n.transferStreams;const f=!c&&!d&&!l;return t.useWebWorkers=!f&&(i||i===Q&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&n.useCompressionStream,(await(async()=>{const r=Nr.find(e=>!e.ye);if(r)return qr(r),new Ar(r,e,t,p);if(Nr.length<w){const r={ve:Wr};return Wr++,Nr.push(r),new Ar(r,e,t,p)}return new g(r=>{_r.push({resolve:r,stream:e,Te:t}),Lr=n.workerStarvationTimeout,Br()})})()).run();function p(e){if(Vr(),_r.length){const[{resolve:t,stream:r,Te:n}]=_r.splice(0,1);t(new Ar(e,r,n,p)),Br()}else e.xe?(qr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.Fe?e.Fe=!1:e.ke=setTimeout(async()=>{Nr=Nr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):Nr=Nr.filter(t=>t!=e)}}function Br(){!Pr&&_r.length&&s.isFinite(Lr)&&Lr>=0&&(Pr=setTimeout(Hr,Lr))}function Vr(){Pr&&(clearTimeout(Pr),Pr=null)}function Hr(){if(Pr=null,_r.length){const[{resolve:e,stream:t,Te:n}]=_r.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:Q});e(new Ar({},t,s,jr)),Br()}}function jr(){Vr(),Br()}function qr(e){const{ke:t}=e;t&&(clearTimeout(t),e.ke=null)}const Kr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Gr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=Kr[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const Yr="filename",Xr="rawFilename",Jr="comment",Qr="rawComment",$r="uncompressedSize",en="compressedSize",tn="offset",rn="diskNumberStart",nn="lastModDate",sn="rawLastModDate",an="lastAccessDate",on="creationDate",cn="rawCreationDate",dn="internalFileAttributes",ln="externalFileAttributes",un="msdosAttributesRaw",wn="msdosAttributes",fn="msDosCompatible",pn="zip64",hn="encrypted",mn="version",yn="versionMadeBy",gn="zipCrypto",xn="directory",bn="executable",Sn="compressionMethod",zn="signature",Fn="extraField",Rn="unixMode",En="setuid",Dn="setgid",An="sticky",vn=[Yr,Xr,$r,en,nn,sn,Jr,Qr,an,on,cn,tn,rn,dn,ln,un,wn,fn,pn,hn,mn,yn,gn,xn,bn,Sn,zn,Fn,"extraFieldUnix","extraFieldInfoZip","uid","gid",Rn,En,Dn,An,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Tn{constructor(e){vn.forEach(t=>this[t]=e[t])}}const kn="password",Cn="rawPassword",Un="passThrough",In="signal",On="checkAmbiguity",Mn="useWebWorkers",Nn="useCompressionStream",_n="transferStreams",Pn="preventClose",Ln="offset",Wn="strictness",Zn="strict",Bn="tolerant",Vn="File format is not recognized",Hn="End of central directory not found",jn="End of Zip64 central directory locator not found",qn="Central directory header not found",Kn="Local file header not found",Gn="Zip64 extra field not found",Yn="File contains encrypted entry",Xn="Encryption method not supported",Jn="Compression method not supported",Qn="Split zip file",$n="Overlapping entry found",es="Ambiguous archive",ts="utf-8",rs="cp437",ns=[[$r,C],[en,C],[tn,C],[rn,U]],ss={[U]:{Ce:vs,bytes:4},[C]:{Ce:Ts,bytes:8}};class as{constructor(e,t={}){r.assign(this,{reader:new $e(e),options:t,config:ae(),Ue:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await tt(n),n.size!==Q&&n.readUint8Array||(n=new Ae(await new l(n.readable).blob()),await tt(n)),n.size<Z)throw new w(Vn);const a=fs(Fs(t,e,Wn),Fs(t,e,On)),o=a==Zn,c=a!=Bn,u=((e,t)=>e!==Q?e:t==Zn?0:t==Bn?1/0:U)(Fs(t,e,"maxAppendedDataSize"),a),{Ie:f,Oe:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:ps};let o,c,d=0;for await(const[r,i,l,u,w]of gs(e,s)){const s=As(r,u+20);if(w+Z+s==n){const s=await bs(e,r,i,u,w,n,a);if(s==ys){if(o||(o=xs(l,u,w)),d++,!t||d>1)break}else s!=ms||c||(c=xs(l,u,w))}}return o||(o=c),o||(o=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,t==1/0?n:65557+t);let a,o;for await(const[t,i,c,d,l]of gs(e,s)){const s=xs(c,d,l);a||(a=s);const u=await bs(e,t,i,d,l,n,r);if(u==ys)return s;u!=ms||o||(o=s)}return o||a})(e,r,a)),{Ie:o,Oe:d}})(n,c,u);if(!f)throw vs(de(await rt(n,0,4)))==M?new w(Qn):new w(Hn);c&&p>1&&zs("multiple end of central directory records");const h=de(f);let m=vs(h,12),y=vs(h,16);const x=f.offset,b=As(h,20),S=x+Z+b;n.size-S>u&&zs("appended data");let z=As(h,4);const F=n.R||0;let E,D,A=As(h,6),v=As(h,10),T=0;const k=y==C||m==C||v==U||A==U;if(y!=C&&A!=U&&(y+=ws(n,A)),k){const e=f.offset<B?re:await rt(n,f.offset-B,B),t=de(e);if(e.length==B&&vs(t,0)==W){y=ws(n,vs(t,4))+Ts(t,8);let e=await rt(n,y,56),r=de(e);const s=f.offset-B-56;if((56>e.length||vs(r,0)!=L)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await rt(n,y,56),r=de(e)}if(56>e.length||vs(r,0)!=L)throw new w(jn);D=!0,z==U?z=vs(r,16):o&&z!=vs(r,16)&&zs("mismatched zip64 end of central directory record"),A==U?A=vs(r,20):o&&A!=vs(r,20)&&zs("mismatched zip64 end of central directory record"),v==U?v=Ts(r,32):o&&v!=Ts(r,32)&&zs("mismatched zip64 end of central directory record"),m==C?m=Ts(r,40):o&&m!=Ts(r,40)&&zs("mismatched zip64 end of central directory record"),y=ws(n,A)+Ts(r,48)+T}}const O=m,N=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-Z,y=n.size-m-Z),F!=z)throw new w(Qn);if(0>y)throw new w(Vn);let P=0,V=await rt(n,y,m),H=de(V);if(m){if(4>V.length)throw new w(Vn);const e=N-m;if(y!=e&&A==z){let t=!(vs(H,P)==_);if(t||0>e||e+4>n.size||(t=vs(de(await rt(n,e,4)),0)==_),t){const t=y;y=e,y>t&&(T+=y-t),V=await rt(n,y,m),H=de(V)}}}const Y=N-y;if(m==Y||0>Y||A!=z||(m=Y,V=await rt(n,y,m),H=de(V)),0>y||y>=n.size)throw new w(Vn);E=y;const X=Fs(t,e,"filenameEncoding"),J=Fs(t,e,"commentEncoding"),$=o?new d:Q;let ee;for(let a=0;v>a;a++){const c=new is(n,s,t.options);if(P+46>V.length||vs(H,P)!=_)throw new w(qn);os(c,H,P+6);const d=!!c.bitFlag.languageEncodingFlag,u=P+46,f=u+c.filenameLength,p=f+c.extraFieldLength,h=As(H,P+4),m=!(h>>8),y=h>>8==3,x=V.subarray(u,f),b=As(H,P+32),S=p+b,z=V.subarray(p,S),F=d,D=d,A=vs(H,P+38),k=A&I,C={readOnly:!!(1&k),hidden:!!(2&k),system:!!(4&k),directory:!!(16&k),archive:!!(32&k)},O=vs(H,P+42),M=Fs(t,e,"decodeText")||Gr,N=F?ts:X||rs,L=D?ts:J||rs;let W=M(x,N);W===Q&&(W=Gr(x,N));let Z=M(z,L);Z===Q&&(Z=Gr(z,L)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Me:b,offset:O,diskNumberStart:As(H,P+34),internalFileAttributes:As(H,P+36),externalFileAttributes:A,msdosAttributesRaw:k,msdosAttributes:C,rawFilename:x,filenameUTF8:F,commentUTF8:D,rawExtraField:V.subarray(f,p),rawComment:z,filename:W,comment:Z}),cs(c,c,H,P+6),c.offset+=T,E=i.min(ws(n,c.diskNumberStart)+c.offset,E),o&&($.has(c.filename)&&(ee=!0),$.add(c.filename));const B=c.externalFileAttributes>>16&U;c.unixMode===Q&&16877&B&&(c.unixMode=B);const Y=!!(c.unixMode&q),te=!!(c.unixMode&K),re=!!(512&c.unixMode),ne=c.unixMode!==Q?!!(73&c.unixMode):y&&!!(73&B),se=c.unixMode!==Q&&(61440&c.unixMode)==j,ae=(61440&B)==j;r.assign(c,{setuid:Y,setgid:te,sticky:re,unixExternalUpper:B,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:ne,directory:se||ae||m&&C.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const ie=new Tn(c);ie.getData=(e,r)=>c.getData(e,ie,t.Ue,r),ie.arrayBuffer=async e=>{const r=new R,[n]=await g.all([new l(r.readable).arrayBuffer(),c.getData(r,ie,t.Ue,e)]);return n},P=S;const{onprogress:oe}=e;if(oe)try{await oe(a+1,v,new Tn(c))}catch{}yield ie}o&&P!=O&&zs("trailing central directory data"),ee&&zs("duplicate filename"),o&&(T||v&&E>0)&&zs("prepended data");const te=Fs(t,e,"extractPrependedData"),ne=Fs(t,e,"extractAppendedData");return te&&(t.prependedData=E>0?await rt(n,0,E):re),t.comment=b?await rt(n,x+Z,b):re,ne&&(t.appendedData=S<n.size?await rt(n,S,n.size-S):re),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let is=class{constructor(e,t,n){r.assign(this,{reader:e,config:t,options:n})}async getData(e,t,r,n={}){const s=this,{reader:a,index:i,offset:o,diskNumberStart:c,extraFieldAES:d,extraFieldZip64:l,compressionMethod:u,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:x}=p,b=t.localDirectory={},S=ws(a,c)+o,z=await rt(a,S,Y),F=de(z);let R=Fs(s,n,kn),E=Fs(s,n,Cn);const A=Fs(s,n,Un);if(R=R&&R.length&&R,E=E&&E.length&&E,d&&99!=d.originalCompressionMethod)throw new w(Jn);if(0!=u&&8!=u&&9!=u&&!A)throw new w(Jn);if(z.length<Y||vs(F,0)!=O)throw new w(Kn);os(b,F,4);const{extraFieldLength:v,filenameLength:T}=b,k=fs(Fs(s,n,Wn),Fs(s,n,On))==Zn;let C=re;if(k&&(T||v)){const e=await rt(a,S+Y,T+v);C=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=v?await rt(a,S+Y+T,v):re;cs(s,b,F,4,!0),k&&((e,t,r)=>{const{rawFilename:n}=e;(r.length!=n.length||r.some((e,t)=>e!=n[t]))&&zs("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&zs("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&zs("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||zs("mismatched local file header (signature or sizes)")})(s,b,C);const{lastAccessDate:U,creationDate:M}=b;U&&(t.lastAccessDate=U),M&&(t.creationDate=M);const _=s.encrypted&&b.encrypted&&!A,P=_&&!d;if(A||(t.zipCrypto=P),_){if(!P&&d.strength===Q)throw new w(Xn);if(!R&&!E)throw new w(Yn)}const L=S+Y+T+v,W=g,Z=a.createReadable({offset:L,size:W}),B=Fs(s,n,In),V=Fs(s,n,"checkPasswordOnly");let H=Fs(s,n,"checkOverlappingEntry");const j=Fs(s,n,"checkOverlappingEntryOnly");j&&(H=!0);const{onstart:q,onprogress:K,onend:G}=n,X=9==u;let J=Fs(s,n,Nn);X&&(J=!1);const $={options:{codecType:yr,password:R,rawPassword:E,zipCrypto:P,encryptionStrength:d&&d.strength,signed:Fs(s,n,"checkSignature")&&!A,passwordVerification:P&&(x?m>>>8&I:h>>>24&I),outputSize:A?g:y,signature:h,compressed:0!=u&&!A,encrypted:_,useWebWorkers:Fs(s,n,Mn),useCompressionStream:J,transferStreams:Fs(s,n,_n),deflate64:X,checkPasswordOnly:V},config:f,me:{signal:B,size:W,onstart:q,onprogress:K,onend:G}};let ee;H&&await(async({reader:e,Ne:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:i,_e:o,dataDescriptor:c,extraFieldZip64:d,Ue:l})=>{let u=0;if(c&&(u=d?20:12),u){const r=await rt(e,o+a,u+4);if(r.length==u+4&&vs(de(r),0)==N){const e=vs(de(r),4);let n,o;d?(n=Ts(de(r),8),o=Ts(de(r),16)):(n=vs(de(r),8),o=vs(de(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&o==i&&(u+=4)}}const f={start:n,end:o+a+u,Ne:t};for(const[e,t]of l)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new w($n);throw e.Pe=t.Ne,e}l.set(r,f)})({reader:a,Ne:t,index:i,offset:S,signature:h,compressedSize:g,uncompressedSize:y,_e:L,dataDescriptor:x||b.bitFlag.dataDescriptor,extraFieldZip64:l||b.extraFieldZip64,Ue:r});try{if(!j){V&&(e=new D),e=new et(e),await tt(e,A?g:y),({writable:ee}=e);const{outputSize:t}=await Zr({readable:Z,writable:ee},$);if(e.size+=t,t!=(A?g:y))throw new w(ir)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!V||t.message!=zt)throw t}finally{Fs(s,n,Pn)||!ee||ee.locked||await ee.getWriter().close()}return V||j?Q:e.getData?e.getData():ee}};function os(e,t,n){const s=e.rawBitFlag=As(t,n+2),a=!(1&~s),i=vs(t,n+6);r.assign(e,{encrypted:a,version:As(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&H)==H},rawLastModDate:i,lastModDate:Rs(i),filenameLength:As(t,n+22),extraFieldLength:As(t,n+24)})}function cs(e,t,n,s,a){const{rawExtraField:i}=t,d=t.extraField=new c,l=de(i);let u=0;try{for(;u<i.length;){const e=As(l,u),t=As(l,u+2);d.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const f=As(n,s+4);r.assign(t,{signature:vs(n,s+10),compressedSize:vs(n,s+14),uncompressedSize:vs(n,s+18)});const p=d.get(1);p&&(((e,t)=>{t.zip64=!0;const r=de(e.data),n=ns.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+ss[t].bytes,0);if(e.data.length<s)throw new w(Gn);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=ss[o];t[i]=e[i]=c.Ce(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=d.get(28789);h&&(ds(h,Yr,Xr,t,e),t.extraFieldUnicodePath=h);const m=d.get(25461);m&&(ds(m,Jr,Qr,t,e),t.extraFieldUnicodeComment=m);const y=d.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=de(e.data),a=Ds(s,4);r.assign(e,{Le:Ds(s,0),vendorId:Ds(s,2),strength:a,originalCompressionMethod:n,compressionMethod:As(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=d.get(10);g&&(((e,t)=>{const n=de(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=As(n,a),r=As(n,a+2);1==t&&(s=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(s&&24==s.length){const n=de(s),a=n.getBigUint64(0,!0),i=n.getBigUint64(8,!0),o=n.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Es(a),lastAccessDate:Es(i),creationDate:Es(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const x=d.get(30805);if(x)ls(x,t,!1),t.extraFieldUnix=x;else{const e=d.get(30837);e&&(ls(e,t,!0),t.extraFieldInfoZip=e)}const b=d.get(V);b&&(((e,t,r)=>{if(!e.data.length)return;const n=de(e.data),s=Ds(n,0),a=[],i=[];r?(1&~s||(a.push(nn),i.push(sn)),2&~s||(a.push(an),i.push("rawLastAccessDate")),4&~s||(a.push(on),i.push(cn))):5>e.data.length||(a.push(nn),i.push(sn));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=vs(n,c);t[r]=e[r]=new o(1e3*(0|a));const d=i[s];e[d]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const S=d.get(6534);S&&(t.extraFieldUSDZ=S)}function ds(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=de(e.data),o=new wt;o.append(a[n]);const c=de(new f(4));c.setUint32(0,o.get(),!0);const d=vs(i,1);r.assign(e,{version:Ds(i,0),[t]:Gr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&d==vs(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function ls(e,t,n){try{const s=de(e.data);let a,i;if(n){let t=0;const n=Ds(s,t++),o=Ds(s,t++);a=us(e.data.subarray(t,t+o)),t+=o;const c=Ds(s,t++);i=us(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=As(s,0),i=As(s,2),r.assign(e,{uid:a,gid:i}));a!==Q&&(t.uid=a),i!==Q&&(t.gid=i)}catch{}}function us(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function ws(e,t){return e.A?e.A(t):0}function fs(e,t){return e===Q?t?Zn:"balanced":e}const ps=64,hs=0,ms=1,ys=2;async function*gs(e,t){const r=e.size-t,n=await rt(e,r,t),s=de(n);for(let e=n.length-Z;e>=0;e--)vs(s,e)==P&&(yield[s,r,n,e,r+e])}function xs(e,t,r){return{offset:r,buffer:e.slice(t,t+Z).buffer}}async function bs(e,t,r,n,s,a,i){const o=As(t,n+10),c=vs(t,n+12),d=vs(t,n+16);if(o==U||c==C||d==C)return await Ss(e,t,r,s-B,a,i)==W?ys:hs;if(!o&&!c)return ms;const l=As(t,n+6);for(const n of[s-c,ws(e,l)+d])if(await Ss(e,t,r,n,a,i)==_)return ys;return hs}async function Ss(e,t,r,n,s,a){return 0>n||n+4>s?Q:r>n?a.count>0?(a.count--,vs(de(await rt(e,n,4)),0)):Q:vs(t,n-r)}function zs(e){const t=new w(es);throw t.reason=e,t}function Fs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Rs(e){const t=(4294901760&e)>>16,r=e&U;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Es(e){return new o(s(e/a(1e4)-a(116444736e5)))}function Ds(e,t){return e.getUint8(t)}function As(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Ts(e,t){return s(e.getBigUint64(t,!0))}var ks=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:es,ERR_BAD_FORMAT:Vn,ERR_CENTRAL_DIRECTORY_NOT_FOUND:qn,ERR_ENCRYPTED:Yn,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:jn,ERR_EOCDR_NOT_FOUND:Hn,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Gn,ERR_INVALID_COMPRESSED_DATA:or,ERR_INVALID_PASSWORD:bt,ERR_INVALID_SIGNATURE:St,ERR_INVALID_UNCOMPRESSED_SIZE:ir,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Kn,ERR_OVERLAPPING_ENTRY:$n,ERR_SPLIT_ZIP_FILE:Qn,ERR_UNSUPPORTED_COMPRESSION:Jn,ERR_UNSUPPORTED_ENCRYPTION:Xn,ZipReader:as});const Cs="Zip file comment exceeds 64KB",Us="Version exceeds 65535",Is="Extra field data exceeds 64KB",Os=-2147483648,Ms=2147483647,Ns="Zip64 is not supported (set the 'zip64' option to 'true')",_s=new f([7,0,2,0,65,69,3,0,0]),Ps="infozip",Ls="unix";let Ws=0;const Zs=[];class Bs{constructor(e,t={}){e=new et(e);const{availableSize:n=$,maxSize:s=$}=e,a=n>0&&n!==$&&s>0&&s!==$;r.assign(this,{writer:e,We:a,options:t,config:ae(),files:new c,Ze:new d,offset:t[Ln]===Q?e.size||e.writable.size||0:t[Ln],Be:t[Ln]===Q?0:t[Ln]-(e.size||e.writable.size||0),Ve:new d,He:0,je:Q})}async prependZip(e){if(this.Ze.size)throw new w("Zip file not empty");e=new $e(e),await tt(e);const{ZipReader:t}=await g.resolve().then(()=>ks),n=new t(e.readable),s=await n.getEntries();await n.close(),await tt(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ze=new d(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:n,lastAccessDate:s,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:d,compressedSize:l,zip64:u}=e;let{compressionMethod:w,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g}=e;const{level:x,languageEncodingFlag:b,dataDescriptor:S}=o;f=f||re,p=p||re,h=h||re,m=m||re,y=y||re,g=g||re,e.extraFieldAES&&(w=99);const z=oa(f,p,h,m,y,g),F=u&&d>=C,R=u&&l>=C,E=-7&da(x,b,S,c,w)|x<<1,{Je:D,Qe:A}=ca({version:t,bitFlag:E,compressionMethod:w,uncompressedSize:d,compressedSize:l,rawLastModDate:n,rawFilename:i,$e:R,et:F,extraFieldLength:z}),{signature:v}=e;return v!==Q&&sa(A,10,v),r.assign(e,{et:F,$e:R,nt:u&&e.offset>=C,diskNumberStart:0,st:!1,qe:f,Ke:p,Ge:h,Ye:m,Xe:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,it:1+(s?2:0)+(a?4:0),Je:D,Qe:A}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Ve:i,config:c}=s;let d,l;Ws<c.maxWorkers?Ws++:await new g(e=>Zs.push(e));try{if(e=e.trim(),ta(s,n,xn)&&!e.endsWith(G)&&(e+=G),s.Ze.has(e))throw new w("File already exists");return s.Ze.add(e),l=!0,d=(async(e,t,n,s)=>{const i=((e,t,r)=>{t=t.trim();let n=ta(e,r,fn),s=ta(e,r,yn,n?20:768);const a=ta(e,r,bn),i=ta(e,r,"uid"),o=ta(e,r,"gid");let c=ta(e,r,Rn),d=ta(e,r,"unixExtraFieldType"),l=ta(e,r,En),u=ta(e,r,Dn),f=ta(e,r,An);if(i!==Q&&(0>i||i>C))throw new w("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new w("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new w("Invalid UNIX mode (must be integer 0..65535)");if(d!==Q&&d!==Ps&&d!==Ls)throw new w("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(d===Ls&&(i!==Q&&i>U||o!==Q&&o>U))throw new w("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");d!==Q||i===Q&&o===Q||(d=Ps);let p=ta(e,r,un),h=ta(e,r,wn);const m=p!==Q||h!==Q;if(i!==Q||o!==Q||c!==Q||d?(n=!1,s=s&U|768):m&&(n=!0,s&=I),p!==Q&&(0>p||p>I))throw new w("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new w("Invalid msdosAttributes (must be an object with boolean flags)");if(s>U)throw new w(Us);let y=ta(e,r,ln,0);!r[xn]&&t.endsWith(G)&&(r[xn]=!0);const g=ta(e,r,xn);let x;return g?(t.endsWith(G)||(t+=G),0===y&&(y=16,n||(y|=16877<<16))):n||0!==y||(y=a?493<<16:27525120),n||(x=y>>16&U,c=c===Q?x:c&U,l?c|=q:l=!!(c&q),u?c|=K:u=!!(c&K),f?c|=512:f=!!(512&c),g&&(c|=j),y=(c&U)<<16|y&I),({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=I;else if(t!==Q){const{readOnly:r,hidden:n,system:s,directory:a,archive:i}=t;let o=0;r&&(o|=1),n&&(o|=2),s&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(p,h)),m&&(y=y&C|p&I),{name:t,ot:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:x,uid:i,gid:o,unixMode:c,unixExtraFieldType:d,setuid:l,setgid:u,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=i);const c=((e,t,r)=>{const n=ta(e,r,"encodeText",pt);let s=n(t);if(s===Q&&(s=pt(t)),oa(s)>U)throw new w("File entry name exceeds 64KB");const a=r[Jr]||"";let i=n(a);if(i===Q&&(i=pt(a)),oa(i)>U)throw new w("File entry comment exceeds 64KB");const c=ta(e,r,mn,20);if(c>U)throw new w(Us);const d=ta(e,r,nn,new o),l=ta(e,r,an),u=ta(e,r,on),p=ta(e,r,dn,0),h=ta(e,r,Un);let m,y;h||(m=ta(e,r,kn),y=ta(e,r,Cn));const g=ta(e,r,"encryptionStrength",3),x=ta(e,r,gn),b=ta(e,r,"extendedTimestamp",!0),S=ta(e,r,"keepOrder",!0),z=ta(e,r,Mn),F=ta(e,r,_n),R=ta(e,r,"bufferedWrite"),E=ta(e,r,"createTempStream"),D=ta(e,r,"dataDescriptorSignature",!0),A=ta(e,r,In),v=ta(e,r,"useUnicodeFileNames",!0),T=ta(e,r,Sn);if(!h&&T!==Q&&0!==T&&8!==T)throw new w("Compression method not supported");let k=ta(e,r,"level"),C=ta(e,r,Nn),I=ta(e,r,"dataDescriptor");R&&I===Q&&(I=!1),(I===Q||x)&&(I=!0),k!==Q&&6!=k&&(C=!1),C||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(k=0);const O=ta(e,r,pn);if(!x&&(m!==Q||y!==Q)&&(1>g||g>3))throw new w("The strength must equal 1, 2, or 3");let M=re;const N=r[Fn];if(N){let e=0,t=0;N.forEach(t=>e+=4+oa(t)),M=new f(e);const r=de(M);N.forEach((e,n)=>{if(n>U)throw new w("Extra field type exceeds 65535");if(oa(e)>U)throw new w(Is);na(r,t,n),na(r,t+2,oa(e)),ia(M,e,t+4),t+=4+oa(e)})}return{comment:a,ot:{rawFilename:s,rawComment:i,version:c,lastModDate:d,lastAccessDate:l,creationDate:u,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:x,extendedTimestamp:b,keepOrder:S,useWebWorkers:z,transferStreams:F,bufferedWrite:R,createTempStream:E,dataDescriptorSignature:D,signal:A,useUnicodeFileNames:v,compressionMethod:T,level:k,useCompressionStream:C,dataDescriptor:I,zip64:O,rawExtraField:M}}})(e,t,s),{comment:d}=c,l=s[Fn];let u;e.files.set(t,Q);try{const o=await(async(e,t,{ot:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:d,zip64:l,level:u,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new w("Undefined reader");if(h=n[$r],h===Q)throw new w("Undefined uncompressed size")}const m=!0===l,y=ta(e,n,hn),g=!!t&&(!!(i&&oa(i)||o&&oa(o))||s&&y);t||(u=0,f=0);const x=g?a?12:16+4*c:0;t&&(t=new $e(t),await tt(t),s?(n.uncompressedSize=h,p=ra(h)+x):t.size===Q?(d=!0,(l||l===Q)&&(l=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=ra(h)+x));const b=m||h>=C,S=m||p>=C;if(b||S){if(!1===l)throw new w(Ns);l=!0}return l=l||!1,{reader:t,ot:{dataDescriptor:d,zip64:l,et:b,$e:S,uncompressedSize:h,level:u,compressionMethod:f,encrypted:g}}})(e,n,c,s);({reader:n}=o);const d=Ks(e.writer),l=qs(e.writer),p=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:d,directory:l,rawExtraField:u,encryptionStrength:f,extendedTimestamp:p,passThrough:h,encrypted:m,et:y,$e:g,uncompressedSize:x}=e;let{version:b,compressionMethod:S}=e;const z=!l&&(S===Q?a===Q||a>0:0!==S);let F;const R=h||!z,E=i&&(e.bufferedWrite||!d||!y&&!g||R),D=E||i&&d&&(y||g);if(i&&(y||g)){const e=20,t=js(e);if(t.uint16(1),t.uint16(e-4),F=t.array,E&&(t.ct(x),R)){const e=m?o?12:16+4*f:0;t.ct(h?0:x+e)}}else F=re;let A,v,T,k,C;if(m&&!o){const e=js(oa(_s)+2);e.uint16(39169),e.bytes(_s),A=e.array,A[8]=f}else A=re;if(p){const e=Qs(r);if($s(e)){const t=9+(n?4:0)+(s?4:0),r=js(t);k=1+(n?2:0)+(s?4:0),r.uint16(V),r.uint16(t-4),r.uint8(k),r.uint32(e),n&&r.uint32(ea(Qs(n))),s&&r.uint32(ea(Qs(s))),T=r.array}else T=re;try{const e=Js(r),t=js(36);t.uint16(10),t.uint16(32),t.lt(4),t.uint16(1),t.uint16(24),t.ct(e),t.ct(Js(n)||e),t.ct(Js(s)||e),v=t.array}catch{v=re}}else v=T=re;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=Ps||t===Q&&r===Q)if(n!=Ls||t===Q&&r===Q)C=re;else{const e=js(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),C=e.array}else{const e=Hs(t),n=Hs(r),s=3+e.length+n.length,a=js(4+s);a.uint16(30837),a.uint16(s),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(n.length),a.bytes(n),C=a.array}}catch{C=re}S===Q&&(S=z?8:0),i&&(b=b>45?b:45),m&&!o&&(b=b>51?b:51,A[9]=S,S=99);const I=D?oa(F):0,M=I+oa(A,T,v,C,u);if(M>U)throw new w(Is);const{Je:N,Qe:_,rawLastModDate:P}=ca({version:b,bitFlag:da(a,c,d,m,S),compressionMethod:S,uncompressedSize:x,lastModDate:J>r?J:r>X?X:r,rawFilename:t,$e:g,et:y,extraFieldLength:M}),L=js(Y+oa(t)+M),W=L.array,Z=de(W);return L.uint32(O),L.bytes(N),L.bytes(t),D&&L.bytes(F),L.bytes(A),L.bytes(T),L.bytes(v),L.bytes(C),L.bytes(u),d&&(g||sa(Z,18,0),y||sa(Z,22,0)),{ut:W,wt:Z,Je:N,Qe:_,lastModDate:r,rawLastModDate:P,encrypted:m,compressed:z,version:b,compressionMethod:S,it:k,qe:re,ft:I,Ge:T,Ye:v,Xe:C,Ke:A,extraFieldLength:M}})(s=r.assign({},s,i.ot,c.ot,o.ot,{internalFileAttribute:c.ot.internalFileAttributes,externalFileAttribute:i.ot.externalFileAttributes,signature:s[zn],offset:e.offset-d,diskNumberStart:l})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=re,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=de(s),r&&(a=4,sa(n,0,N))),{ht:s,yt:n,gt:a}})(s),m=oa(p.ut,h.ht);u=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:d,dataDescriptor:l,signal:u}=i,{xt:p}=s,h=e.options.usdz,m=e.je;let y,x,b,S,z,F,E,A={},v=0;o.set(t,A),e.je=A;try{let x;d&&(x=m&&m.lock,A.lock=new g(e=>b=e)),i.bufferedWrite||!d||e.bt||e.He||!l?(y=!0,e.He++,E=i.createTempStream?await i.createTempStream():new R(Q,Q,{highWaterMark:$}),E.size=0,await tt(c)):(E=c,await T()),await tt(E);const U=Ks(c);if(e.We){delete e.We;const t=new f(4);sa(de(t),0,M),await Xs(c,t),e.offset+=4}h&&!y&&Vs(s,e.offset-U);const{ut:O}=p;y||(await x,await k());const N=qs(c),_=Ys(e,c);if(A.diskNumberStart=N,y||(z=!0,F=c.size,await Xs(E,O)),A=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{xt:d,St:l,zt:u}=i,{Je:f,Qe:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:x,compressionMethod:b,qe:S,ft:z,Ge:F,it:R,Ye:E,Xe:D,Ke:A}=d,{ht:v}=l,{rawFilename:T,lastAccessDate:k,creationDate:U,password:O,rawPassword:M,level:N,zip64:_,et:P,$e:L,zipCrypto:W,dataDescriptor:Z,directory:B,executable:V,versionMadeBy:H,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:G,onstart:Y,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe,useCompressionStream:pe,passThrough:he}=c,me={lock:s,versionMadeBy:H,zip64:_,directory:!!B,executable:!!V,filenameUTF8:!0,rawFilename:T,commentUTF8:!0,rawComment:j,qe:S,ft:z,Ge:F,Ye:E,Xe:D,Ke:A,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:de,sticky:le,unixExternalUpper:ue,msdosAttributesRaw:we,msdosAttributes:fe};let{signature:ye,uncompressedSize:ge}=c,xe=0;he||(ge=0);const{writable:be}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:mr,level:N,rawPassword:M,password:O,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&I,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:G},config:o,me:{signal:$,size:n,onstart:Y,onprogress:X,onend:J}};try{const e=await Zr({readable:r,writable:be},s);if(xe=e.outputSize,t.size+=xe,he||(ge=e.inputSize,ye=e.signature),!L&&xe>=C||!P&&ge>=C)throw new w(Ns)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,St:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{Qe:d,encrypted:l}=n,{yt:u,gt:w}=s;l&&!o||e===Q||(sa(d,10,e),c&&sa(u,w,e)),i?c&&(aa(u,w+4,a(t)),aa(u,w+12,a(r))):(sa(d,14,t),sa(d,18,r),c&&(sa(u,w+4,t),sa(u,w+8,r)))})({signature:ye,compressedSize:xe,uncompressedSize:ge,xt:d,St:l},c),Z&&await Xs(t,v),r.assign(me,{uncompressedSize:ge,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:U,lastAccessDate:k,encrypted:y,zipCrypto:W,size:u+xe,compressionMethod:b,version:x,Je:f,Qe:p,signature:ye,it:R,et:P,$e:L}),me})(n,E,A,s,e.config,i),y||(z=!1),o.set(t,A),A.filename=t,y){if(await g.all([E.writable.getWriter().close(),x]),await T(),S=!0,F=c.size,await k(),A.diskNumberStart=qs(c),A.offset=Ys(e,c),h){const t=s.zt;Vs(s,e.offset-Ks(c)),A.size+=s.zt-t}(({rawFilename:e,encrypted:t,zip64:r,ft:n,signature:s,compressedSize:i,uncompressedSize:o,et:c,$e:d},l,{dataDescriptor:u})=>{if(u||(t||sa(l,14,s),d||sa(l,18,i),c||sa(l,22,o)),r&&n){const t=Y+oa(e)+4;aa(l,t,a(o)),aa(l,t+8,a(i))}})(A,p.wt,i),await Xs(c,p.ut),await(async(e,t,r)=>{const n=t.writable.getWriter();try{await e.pipeTo(new D({async write(e){var t;await n.ready,await n.write(e),t=oa(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(E.readable,c,u),c.size+=E.size,S=!1}else A.diskNumberStart=N,A.offset=_;return e.offset+=A.size,A}catch(r){if(S||z){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-F,y&&(e.offset+=v)}throw o.delete(t),r}finally{if(y&&e.He--,b&&b(),x&&x(),y&&E&&E.dispose)try{await E.dispose()}catch{}}async function T(){e.bt=!0;const{Ft:t}=e;e.Ft=new g(t=>x=()=>{e.bt=!1,t()}),await t}async function k(){Gs(c,oa(p.ut))&&await c.closeDisk()}})(e,t,n,{xt:p,St:h,zt:m},s)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:d,extraField:l}),new Tn(u)})(s,e,t,n),i.add(d),await d}catch(t){throw l&&s.Ze.delete(e),t}finally{i.delete(d);const e=Zs.shift();e?e():Ws--}}remove(e){const{Ze:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=re,r={}){const{Ve:n,writer:s}=this,{writable:i}=s;if(oa(e)>U)throw new w(Cs);for(;n.size;)await g.allSettled(t.from(n));return await(async(e,r,n)=>{const s=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,Ke:n,rawComment:s,Ye:a,Xe:i,rawExtraField:o,extendedTimestamp:c,it:d,lastModDate:l,et:u,$e:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=C,y=r.diskNumberStart>=U;let g,x;if(m||y||u||f){const e=4+(u?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=js(e);t.uint16(1),t.uint16(e-4),u&&t.ct(p),f&&t.ct(h),m&&t.ct(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=re;r.qe=g,r.nt=m,r.st=y;const b=Qs(l);if(c&&$s(b)){const e=js(9);e.uint16(V),e.uint16(5),e.uint8(d),e.uint32(b),x=e.array}else x=re;r.Ge=x;const S=oa(g,n,a,i,x,o);if(S>U)throw new w(Is);t+=46+oa(e,s)+S}return t})(e.files),i=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await tt(a);let o=0,c=0,d=qs(a),l=Ks(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:u,qe:w,Ke:f,Ge:p,Ye:h,Xe:m,rawExtraField:y,rawComment:g,versionMadeBy:x,Je:b,Qe:S,et:z,$e:F,st:R,nt:E,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:k}=r,I=oa(w,f,p,h,m,y),O=46+oa(u,g)+I;Gs(a,o+O-c)&&(await Xs(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(d=qs(a),l=Ks(a)),z||sa(S,18,T),F||sa(S,14,k),(E||R)&&45>r.version&&na(S,0,45);const M=js(O);if(M.uint32(_),M.uint16(x),M.bytes(b.subarray(0,24)),M.uint16(I),M.uint16(oa(g)),M.uint16(R?U:v),M.uint16(D),M.uint32(A),M.uint32(E?C:t),M.bytes(u),M.bytes(w),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),ia(i,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Tn(r))}catch{}}return await Xs(a,c?i.slice(c):i),{diskNumber:d,diskOffset:l}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Rt:i}=n;let{Et:o}=n,c=e.files.size,d=i.diskNumber,l=Ys(e,i),u=qs(s);Gs(s,Z)&&u++;let f=ta(e,r,pn);if(!(C>l&&C>o&&U>c&&U>u)){if(!1===f)throw new w(Ns);f=!0}const p=oa(t);if(p>U)throw new w(Cs);const h=js(f?98:Z);Gs(s,oa(h.array)+p)&&await s.closeDisk(),u=qs(s),f&&(h.uint32(L),h.ct(44),h.uint16(45),h.uint16(45),h.uint32(u),h.uint32(d),h.ct(c),h.ct(c),h.ct(o),h.ct(l),h.uint32(W),h.uint32(u),h.ct(a(Ys(e,s))+a(o)),h.uint32(u+1),ta(e,r,"supportZip64SplitFile",!0)&&(u=U,d=U),c=U,l=C,o=C),h.uint32(P),h.uint16(u),h.uint16(d),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(l),h.uint16(p),await Xs(s,h.array),p&&await Xs(s,t)})(e,r,n,{Rt:i,Et:s})})(this,e,r),ta(this,r,Pn)||await i.getWriter().close(),s.getData?s.getData():i}}function Vs(e,t){const{xt:r}=e;let{ut:n,extraFieldLength:s}=r,a=64-(t+oa(n))%64;4>a&&(a+=64);const i=new f(a),o=de(i);na(o,0,6534),na(o,2,a-4);const c=n;r.ut=n=new f(oa(c)+a),ia(n,c),ia(n,i,oa(c));const d=de(n);na(d,28,s+a),r.wt=d,e.zt+=a}function Hs(e){if(e===Q)return re;{const t=new f(4);de(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function js(e){const t=new f(e),r=de(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{na(r,n,e),n+=2},uint32:e=>{sa(r,n,e),n+=4},ct:e=>{aa(r,n,a(e)),n+=8},bytes:e=>{ia(t,e,n),n+=oa(e)},lt:e=>n+=e}}function qs(e){const{diskNumber:t=0}=e;return t}function Ks(e){const{diskOffset:t=0}=e;return t}function Gs(e,t){const{availableSize:r=$}=e;return t>r}function Ys(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.Be:0)}async function Xs(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=oa(t),await n.write(t)}finally{n.releaseLock()}}function Js(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Qs(e){return i.floor(e.getTime()/1e3)}function $s(e){return e>=Os&&Ms>=e}function ea(e){return i.min(Ms,i.max(Os,e))}function ta(e,t,r,n){const s=t[r]===Q?e.options[r]:t[r];return s===Q?n:s}function ra(e){return e+5*(i.floor(e/16383)+1)}function na(e,t,r){e.setUint16(t,r,!0)}function sa(e,t,r){e.setUint32(t,r,!0)}function aa(e,t,r){e.setBigUint64(t,r,!0)}function ia(e,t,r){e.set(t,r)}function oa(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function ca({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,$e:c,et:d,extraFieldLength:l}){const u=js(26),w=u.array,f=de(w);if(u.uint16(e),u.uint16(t),u.uint16(r),i===Q){const e=new h(1),t=de(e);na(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),na(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.lt(4),c||s!==Q?u.uint32(c?C:s):u.lt(4),d||n!==Q?u.uint32(d?C:n):u.lt(4),u.uint16(oa(o)),u.uint16(l),{Je:w,Qe:f,rawLastModDate:i}}function da(e,t,r,n,s){let a=0;return t&&(a|=H),r&&(a|=8),8!=s&&9!=s||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),n&&(a|=1),a}const la="Entry filename already exists";class ua{constructor(e,t,n,s){const a=this;if(e.root&&s&&s.getChildByName(t))throw new w(la);n||(n={}),r.assign(a,{fs:e,name:t,data:n.data,options:n.options,id:e.Dt++,parent:s,children:[],uncompressedSize:n.uncompressedSize||0,passThrough:n.passThrough}),!s&&e.root||(e.entries[a.id]=a),s&&a.parent.children.push(a)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new w(la);this.name=e}}class wa extends ua{constructor(e,t,r,n){super(e,t,r,n);const s=this;s.Reader=r.Reader,s.Writer=r.Writer,r.getData&&(s.getData=r.getData)}clone(){return new wa(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const n=r.reader=ga(r.Reader,r.data,t),s=r.data?r.data.uncompressedSize:n.size;await g.all([tt(n),tt(e,s)]);const{readable:a}=n;return r.uncompressedSize=n.size,await a.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return!(!this.data||!this.data.encrypted)}async checkPassword(e,t={}){const n=this;if(!n.isPasswordProtected())return!0;try{return await n.data.getData(null,r.assign({},t,{password:e,checkPasswordOnly:!0})),!0}catch(e){if(e.message==bt)return!1;throw e}}getText(e,t){return this.getData(new ke(e),t)}getBlob(e,t){return this.getData(new ve(e),t)}getData64URI(e,t){return this.getData(new Re(e),t)}getUint8Array(e){return this.getData(new Xe,e)}getWritable(e=new D,t){return this.getData({writable:e},t)}async getArrayBuffer(e){return ce(await this.getUint8Array(e)).buffer}replaceBlob(e){r.assign(this,{data:e,Reader:Ae,Writer:ve,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Te,Writer:ke,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:Fe,Writer:Re,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ye,Writer:Xe,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:ma(e),Writer:null,reader:null})}}class fa extends ua{constructor(e,t,r,n){super(e,t,r,n),this.directory=!0}clone(e){const t=this,r=new fa(t.fs,t.name,t);return e&&(r.children=t.children.map(t=>{const n=t.clone(e);return n.parent=r,n})),r}addDirectory(e,t){return Ra(this,e,{options:t},!0)}addText(e,t,r={}){return Ra(this,e,{data:t,Reader:Te,Writer:ke,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Ra(this,e,{data:t,Reader:Ae,Writer:ve,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let n=t.length;for(;"="==t.charAt(n-1);)n--;const s=t.indexOf(",")+1;return Ra(this,e,{data:t,Reader:Fe,Writer:Re,options:r,uncompressedSize:i.floor(.75*(n-s))})}addUint8Array(e,t,r={}){return Ra(this,e,{data:t,Reader:Ye,Writer:Xe,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Ra(this,e,{data:t,Reader:class extends Ge{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Ra(this,e,{Reader:ma(t),options:r})}addFileSystemEntry(e,t={}){return Sa(this,e,t)}addFileSystemHandle(e,t={}){return Sa(this,e,t)}addFile(e,t={}){return(t=r.assign({},t)).lastModDate||(t.lastModDate=new o(e.lastModified)),Ra(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}At(e,t){return Ra(this,e,t)}importBlob(e,t){return this.importZip(new Ae(e),t)}importData64URI(e,t){return this.importZip(new Fe(e),t)}importUint8Array(e,t){return this.importZip(new Ye(e),t)}importHttpContent(e,t){return this.importZip(new Ge(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new ve(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new Re(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Xe,e)}async exportWritable(e=new D,t={}){return await this.exportZip({writable:e},t),e}exportFileSystemHandle(e,n={}){return(async(e,n,s)=>{const a=ha([e],"uncompressedSize"),i=new c;return await o(e,n),n;async function o(e,t){if(s.concurrent){const r=(await g.allSettled(e.children.map(e=>d(e,t)))).find(e=>"rejected"==e.status);if(r)throw r.reason}else for(const r of e.children)await d(r,t)}async function d(e,n){try{if(e.directory){const t=await n.getDirectoryHandle(e.name,{create:!0});await o(e,t)}else{const o=await n.getFileHandle(e.name,{create:!0}),c=await o.createWritable();await e.getData({writable:c},r.assign({},s,{onprogress:async r=>{if(s.onprogress){i.set(e.id,r);try{await s.onprogress(t.from(i.values()).reduce((e,t)=>e+t,0),a)}catch{}}}}))}}catch(t){throw new w(t.message+(e?" ("+e.name+")":""),{cause:t})}}})(this,e,n)}async importZip(e,t={}){await tt(e);const n=new as(e,t),s=[],a=await n.getEntries();for(const e of a){let n=this;try{const a=e.filename.split("/"),i=a.pop();if(a.forEach(e=>{const t=n;if(n=n.getChildByName(e),n){if(!n.directory)throw new w(la)}else n=new fa(this.fs,e,{data:null},t),s.push(n)}),e.directory){let t=n;if(i)if(t=n.getChildByName(i),t){if(!t.directory)throw new w(la)}else t=new fa(this.fs,i,{data:null},n),s.push(t);t==this||t.data||(t.data=e)}else s.push(Ra(n,i,{data:e,Reader:ya(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return s}async exportZip(e,n={}){const s=this;(n=r.assign({},n)).bufferedWrite===Q&&(n.bufferedWrite=!0);const[a]=await g.all([xa(s,n.readerOptions),tt(e)]),i=new Bs(e,n);return await(async(e,n,s,a,i)=>{const o=n,d=new c;await async function e(n,c){async function l(c){const l=a.relativePath?c.getRelativeName(o):c.getFullname(),u=c.options||{};let w={};if(c.data instanceof Tn){const{externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:i,uncompressedSize:o,encrypted:d,zipCrypto:l,signature:u,compressionMethod:f,extraFieldAES:p}=c.data;if(w={externalFileAttributes:e,versionMadeBy:t,comment:n,lastModDate:s,creationDate:a,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),p&&(t=p.strength),w=r.assign(w,{passThrough:!0,encrypted:d,zipCrypto:l,signature:u,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await n.add(l,i.get(c),r.assign({},a,w,u,{directory:c.directory,onprogress:async e=>{if(a.onprogress){d.set(l,e);try{await a.onprogress(t.from(d.values()).reduce((e,t)=>e+t),s)}catch{}}}})),await e(n,c)}await(async()=>{if(a.bufferedWrite){const e=(await g.allSettled(c.children.map(l))).find(e=>"rejected"==e.status);if(e)throw e.reason}else for(const e of c.children)await l(e)})()}(e,n)})(i,s,ha([s],"uncompressedSize"),n,a),await i.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const n=t[r];if(n.name==e)return n}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await g.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const pa={FS:class{constructor(){Fa(this)}get children(){return this.root.children}remove(e){ba(e);const t=[e];for(;t.length;){const e=t.pop();this.entries[e.id]=null;for(const r of e.children)t.push(r)}e.parent=Q}move(e,t){if(e==this.root)throw new w("Root directory cannot be moved");if(!t.directory)throw new w("Target entry is not a directory");if(t.isDescendantOf(e))throw new w("Entry is a ancestor of target entry");if(e!=t){const r=t.getChildByName(e.name);if(r){if(r!=e)throw new w(la)}else ba(e),e.parent=t,t.children.push(e),((e,t)=>{const r=[t];for(;r.length;){const t=r.pop();e.entries[t.id]=t;for(const e of t.children)r.push(e)}})(this,e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r||(r=this.entries.find(t=>t&&(t==this.root||t.isDescendantOf(this.root))&&t.getRelativeName()==e)),r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}At(e,t){return this.root.At(e,t)}importBlob(e,t){return Fa(this),this.root.importBlob(e,t)}importData64URI(e,t){return Fa(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return Fa(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return Fa(this),this.root.importHttpContent(e,t)}importReadable(e,t){return Fa(this),this.root.importReadable(e,t)}importZip(e,t){return Fa(this),this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}exportFileSystemHandle(e,t){return this.root.exportFileSystemHandle(e,t)}exportZip(e,t){return this.root.exportZip(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:fa,ZipFileEntry:wa};function ha(e,r){let n=0;const s=t.from(e);for(;s.length;){const e=s.pop();n+=e[r]||0;for(const t of e.children)s.push(t)}return n}function ma(e){let t;return()=>{if(t)throw new w("Readable stream already consumed");return t=!0,{readable:e}}}function ya(e){return class extends Se{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const n=await t.entry.getData(new ve,r.assign({},e,t.options));t.data=n,t.vt=new Ae(n),super.init()}readUint8Array(e,t){return this.vt.readUint8Array(e,t)}}}function ga(e,t,r){return e.prototype?new e(t,r):e(t,r)}async function xa(e,t){const r=[],n=[e],s=new c;for(;n.length;){const e=n.pop();for(const t of e.children)t.directory?n.push(t):r.push(t)}return await g.all(r.map(async e=>{const r=e.reader=ga(e.Reader,e.data,t);s.set(e,r);try{await tt(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}r.size!==Q&&(e.uncompressedSize=r.size)})),s}function ba(e){if(e.parent){const t=e.parent.children;t.forEach((r,n)=>{r.id==e.id&&t.splice(n,1)})}}function Sa(e,t,n){return async function e(t,s,a){if(s)try{if((s.isFile||s.isDirectory)&&(s=await za(s)),"file"==s.kind){const e=await s.getFile();a.push(t.At(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},n),uncompressedSize:e.size}))}else if("directory"==s.kind){const r=t.addDirectory(s.name);a.push(r);for await(const t of s.values())await e(r,t,a)}}catch(e){const t=e.message+(s?" ("+s.name+")":"");throw new w(t,{cause:e})}return a}(e,t,[])}async function za(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new g((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,n,s){e.readEntries(async a=>{if(a.length){for(const e of a)t.push(await za(e));r(e,n,s)}else n(t)},s)}return await new g((t,n)=>r(e.createReader(),t,n)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function Fa(e){e.entries=[],e.Dt=0,e.root=new fa(e)}function Ra(e,t,r,n){if(e.directory)return n?new fa(e.fs,t,r,e):new wa(e.fs,t,r,e);throw new w("Parent entry is not a directory")}e.fs=pa});
|