@zip.js/zip.js 2.8.38 → 2.8.39
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 +0 -12
- package/deno.json +1 -1
- package/dist/zip-core.js +2 -2
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +2 -2
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +4 -4
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +3 -3
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +4 -4
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +4 -4
- 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 +3 -3
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +4 -4
- package/index-native.min.js +1 -1
- package/index.cjs +3 -3
- package/index.min.js +1 -1
- package/lib/core/io.js +1 -1
- package/lib/core/streams/zip-crypto-stream.js +1 -1
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,18 +14,6 @@ See https://gildas-lormeau.github.io/zip-manager
|
|
|
14
14
|
|
|
15
15
|
See here for more info: https://gildas-lormeau.github.io/zip.js/
|
|
16
16
|
|
|
17
|
-
# Bundle size
|
|
18
|
-
|
|
19
|
-
zip.js is tree-shakeable: import named identifiers and your bundler removes what you do
|
|
20
|
-
not use, e.g. the whole write path if you only read zip files. `import * as zip from
|
|
21
|
-
"@zip.js/zip.js"` keeps everything.
|
|
22
|
-
|
|
23
|
-
Smaller entry points are also available, e.g. `@zip.js/zip.js/lib/zip-core.js` embeds
|
|
24
|
-
neither the Web Worker code nor the WASM module, pass `workerURI` and `wasmURI` to
|
|
25
|
-
`configure()` instead. The prebuilt bundles in
|
|
26
|
-
[`/dist`](https://github.com/gildas-lormeau/zip.js/tree/master/dist) are standalone files
|
|
27
|
-
for script tags and AMD loaders, they are not tree-shaken.
|
|
28
|
-
|
|
29
17
|
# Examples
|
|
30
18
|
|
|
31
19
|
## Hello world
|
package/deno.json
CHANGED
package/dist/zip-core.js
CHANGED
|
@@ -1714,7 +1714,7 @@
|
|
|
1714
1714
|
if (zipCrypto.password || zipCrypto.rawPassword) {
|
|
1715
1715
|
const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
|
|
1716
1716
|
zipCrypto.password = zipCrypto.rawPassword = null;
|
|
1717
|
-
if ((decryptedHeader
|
|
1717
|
+
if ((decryptedHeader[HEADER_LENGTH - 1] ^ zipCrypto.passwordVerification) != 0) {
|
|
1718
1718
|
throw new Error(ERR_INVALID_PASSWORD);
|
|
1719
1719
|
}
|
|
1720
1720
|
chunk = chunk.subarray(HEADER_LENGTH);
|
|
@@ -3736,7 +3736,7 @@
|
|
|
3736
3736
|
|
|
3737
3737
|
getDiskOffset(diskNumber) {
|
|
3738
3738
|
const { diskOffsets, size } = this;
|
|
3739
|
-
const diskOffset = diskOffsets
|
|
3739
|
+
const diskOffset = diskOffsets[diskNumber];
|
|
3740
3740
|
return diskOffset === UNDEFINED_VALUE ? size : diskOffset;
|
|
3741
3741
|
}
|
|
3742
3742
|
|
package/dist/zip-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:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:S,TextDecoder:b,document:x,crypto:z,btoa:F,TransformStream:E,ReadableStream:R,WritableStream:D,CompressionStream:k,DecompressionStream:v,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var C=void 0!==x?x.currentScript:null;const U=4294967295,I=65535,O=255,M=67324752,N=134695760,_=N,L=33639248,P=101010256,W=101075792,Z=117853008,V=22,H=20,B=21589,j=2048,q=16384,K=2048,Y=1024,G="/",X=30,J=new o(2107,11,31,23,59,58),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function",ne=new f;let se=2;try{typeof A!=te&&A.hardwareConcurrency&&(se=A.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=te&&k,DecompressionStream:typeof v!=te&&v},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const r=e[t];r!==$&&(oe[t]=r)}}const we="Invalid codec definition",ue="Reserved compression method",fe="Invalid codec module",pe="string",he=[0,8,9,99],me=new c,ye=new c;function ge(e){return me.get(e)}function Se(e){return ye.get(e)}function be(e,t){const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=re&&typeof n!=re)throw new u(fe);ye.set(e,{CompressionStream:r,DecompressionStream:n})}const xe=[[],[],[],[],[],[],[],[]];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;xe[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=xe[t-1][e];xe[t][e]=r>>>8^xe[0][255&r]}const[ze,Fe,Ee,Re,De,ke,ve,Ae]=xe;class Te{constructor(e){this.o=e||-1}append(e){let t=0|this.o;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=Ae[255&e]^ve[e>>>8&255]^ke[e>>>16&255]^De[e>>>24&255]^Re[255&r]^Ee[r>>>8&255]^Fe[r>>>16&255]^ze[r>>>24&255]}}for(;r>n;n++)t=t>>>8^ze[255&(t^e[n])];this.o=t}get(){return~this.o}}class Ce extends E{constructor(){let e;const t=new Te;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 Ue(e){if(typeof S==te){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 S).encode(e)}function Ie(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Oe(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Me(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Ne={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Ne.l(r);return 32===n?e.concat(t):Ne.h(t,n,0|r,e.slice(0,e.length-1))},m(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Ne.l(r)},S(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]=Ne.F(t,e[r-1]&2147483648>>t-1,1)),e},F:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,l:e=>i.round(e/1099511627776)||32,h(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=Ne.l(s);return n.push(Ne.F(t+a&31,t+a>32?r:n.pop(),1)),n}},_e={bytes:{R(e){const t=Ne.m(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},D(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(Ne.F(8*(3&r),n)),t}}},Le=class{constructor(e){const t=this;t.blockSize=512,t.v=[1732584193,4023233417,2562383102,271733878,3285377520],t.A=[1518500249,1859775393,2400959708,3395469782],e?(t.T=e.T.slice(0),t.C=e.C.slice(0),t.U=e.U):t.reset()}reset(){const e=this;return e.T=e.v.slice(0),e.C=[],e.U=0,e}update(e){const t=this;"string"==typeof e&&(e=_e.I.D(e));const r=t.C=Ne.concat(t.C,e),n=t.U,s=t.U=n+Ne.m(e);if(s>9007199254740991)throw new u("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.O(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}M(){const e=this;let t=e.C;const r=e.T;t=Ne.concat(t,[Ne.F(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.U/4294967296)),t.push(0|e.U);t.length;)e.O(t.splice(0,16));return e.reset(),r}N(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}_(e,t){return t<<e|t>>>32-e}O(e){const r=this,n=r.T,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r._(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r._(5,a)+r.N(e,o,c,l)+d+s[e]+r.A[i.floor(e/20)]|0;d=l,l=c,c=r._(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]+l|0,n[4]=n[4]+d|0}},Pe={importKey:e=>new Pe.L(_e.bytes.D(e)),P(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new u("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new m(d);let f=0;const p=Ne;for(t=_e.bytes.D(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),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++)w.setInt32(f,a[o]),f+=4}return d.slice(0,n/8)},L:class{constructor(e){const t=this,r=t.W=Le,n=[[],[]];t.Z=[new r,new r];const s=t.Z[0].blockSize/32;e.length>s&&(e=(new r).update(e).M());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.Z[0].update(n[0]),t.Z[1].update(n[1]),t.V=new r(t.Z[0])}reset(){const e=this;e.V=new e.W(e.Z[0]),e.H=!1}update(e){this.H=!0,this.V.update(e)}digest(){const e=this,t=e.V.M(),r=new e.W(e.Z[1]).update(t).M();return e.reset(),r}encrypt(e){if(this.H)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},We=typeof z!=te&&typeof z.getRandomValues==re,Ze="Invalid password",Ve="Invalid signature",He="zipjs-abort-check-password";function Be(e){if(We)return z.getRandomValues(e);throw new u("Crypto API not supported")}const je=16,qe={name:"PBKDF2"},Ke=r.assign({hash:{name:"HMAC"}},qe),Ye=r.assign({iterations:1e3,hash:{name:"SHA-1"}},qe),Ge=["deriveBits"],Xe=[8,12,16],Je=[16,24,32],Qe=10,$e=[0,0,0,0],et=typeof z!=te,tt=et&&z.subtle,rt=et&&typeof tt!=te,nt=_e.bytes,st=class{constructor(e){const t=this;t.B=[[[],[],[],[],[]],[[],[],[],[],[]]],t.B[0][0][0]||t.j();const r=t.B[0][4],n=t.B[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.A=[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.K(e,0)}decrypt(e){return this.K(e,1)}j(){const e=this.B[0],t=this.B[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,n[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=u=u<<24^u>>>8,t[r][a]=w=w<<24^w>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}K(e,t){if(4!==e.length)throw new u("invalid aes block size");const r=this.A[t],n=r.length/4-2,s=[0,0,0,0],a=this.B[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,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],S=4;for(let e=0;n>e;e++)w=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^r[S],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&h]^r[S+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^l[255&m]^r[S+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^r[S+3],S+=4,h=w,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&g]^r[S++],w=h,h=m,m=y,y=g,g=w;return s}},at=class{constructor(e,t){this.Y=e,this.G=t,this.X=t}reset(){this.X=this.G}update(e){return this.J(this.Y,e,this.X)}$(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}ee(e){0===(e[0]=this.$(e[0]))&&(e[1]=this.$(e[1]))}J(e,t,r){let n;if(!(n=t.length))return[];const s=Ne.m(t);for(let s=0;n>s;s+=4){this.ee(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 Ne.S(t,s)}},it=Pe.L;let ot=et&&rt&&typeof tt.importKey==re,ct=et&&rt&&typeof tt.deriveBits==re;class lt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){wt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,te:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await ft(e,t,r,ht(n,0,Xe[t])),a=ht(n,Xe[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Ze)})(r,a,s,ht(e,0,Xe[a]+2)),e=ht(e,Xe[a]+2),n?t.error(new u(He)):i()):await o;const c=new f(e.length-Qe-(e.length-Qe)%je);t.enqueue(ut(r,e,c,0,Qe,!0))},async flush(e){const{re:t,ne:r,pending:n,ready:s}=this;if(r&&t){await s;const a=ht(n,0,n.length-Qe),i=ht(n,n.length-Qe);let o=ne;if(a.length){const e=yt(nt,a);r.update(e);const n=t.update(e);o=mt(nt,n)}const c=ht(mt(nt,r.digest()),0,Qe);let l=n.length<Qe?1:0;for(let e=0;Qe>e;e++)l|=c[e]^i[e];if(l)throw new u(Ve);e.enqueue(o)}}})}}class dt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){wt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,te:a,ready:i}=r;let o=ne;n?(o=await(async(e,t,r)=>{const n=Be(new f(Xe[t]));return Ie(n,await ft(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%je);c.set(o,0),t.enqueue(ut(r,e,c,o.length,0))},async flush(e){const{re:t,ne:r,pending:s,ready:a}=this;if(r&&t){await a;let i=ne;if(s.length){const e=t.update(yt(nt,s));r.update(e),i=mt(nt,e)}n.signature=mt(nt,r.digest()).slice(0,Qe),e.enqueue(Ie(i,n.signature))}}}),n=this}}function wt(e,t,n,s){r.assign(e,{ready:new g(t=>e.te=t),password:pt(t,n),strength:s-1,pending:ne})}function ut(e,t,r,n,s,a){const{re:i,ne:o,pending:c}=e;c.length&&(t=Ie(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(l-l%je)),d=0;l-je>=d;d+=je){const e=yt(nt,ht(t,d,d+je));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(mt(nt,s),d+n)}return e.pending=ht(t,d),r}async function ft(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!ot)return Pe.importKey(t);try{return await tt.importKey("raw",t,r,!1,s)}catch{return ot=!1,Pe.importKey(t)}})(0,s,Ke,0,Ge),o=await(async(e,t,r)=>{if(!ct)return Pe.P(t,e.salt,Ye.iterations,r);try{return await tt.deriveBits(e,t,r)}catch{return ct=!1,Pe.P(t,e.salt,Ye.iterations,r)}})(r.assign({salt:a},Ye),i,8*(2*Je[n]+2)),c=new f(o),l=yt(nt,ht(c,0,Je[n])),d=yt(nt,ht(c,Je[n],2*Je[n])),w=ht(c,2*Je[n]);return r.assign(e,{keys:{key:l,se:d,passwordVerification:w},re:new at(new st(l),t.from($e)),ne:new it(d)}),w}function pt(e,t){return t===$?Ue(e):t}function ht(e,t,r){return e.subarray(t,r)}function mt(e,t){return e.R(t)}function yt(e,t){return e.D(t)}class gt extends E{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){bt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=xt(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new u(Ze);e=e.subarray(12)}n?t.error(new u(He)):t.enqueue(xt(r,e))}})}}class St extends E{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){bt(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=Be(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(zt(r,t),0),s=12}else n=new f(e.length),s=0;n.set(zt(r,e),s),t.enqueue(n)}})}}function bt(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 Te(s[0]),ie:new Te(s[2])}),n)for(let t=0;t<n.length;t++)Ft(e,n[t]);else for(let r=0;r<t.length;r++)Ft(e,t.charCodeAt(r))})(e,t,n)}function xt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=Et(e)^t[n],Ft(e,r[n]);return r}function zt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=Et(e)^t[n],Ft(e,t[n]);return r}function Ft(e,t){let[,r]=e.keys;e.ae.append([t]);const n=~e.ae.get();r=Dt(i.imul(Dt(r+Rt(n)),134775813)+1),e.ie.append([r>>>24]);const s=~e.ie.get();e.keys=[n,r,s]}function Et(e){const t=2|e.keys[2];return Rt(i.imul(t,1^t)>>>8)}function Rt(e){return 255&e}function Dt(e){return 4294967295&e}const kt="Invalid uncompressed size",vt="Invalid compressed data",At="deflate-raw";class Tt extends E{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d,format:w}=e,u=this;let f,p,h,y=super.readable;const g=w&&Se(w),S=c&&s&&!d&&!g&&(!a||o)&&!(!i||!n);a&&!o||!c||S||(f=new Ce,y=_t(y,f)),s&&(g?y=Lt(y,Mt(g.CompressionStream,w,{level:l,chunkSize:t})):S?(h=new Ct,y=Lt(y,new n("gzip")),y=_t(y,h)):y=Nt(y,i,{level:l,chunkSize:t},n,r)),a&&(o?y=_t(y,new St(e)):(p=new dt(e),y=_t(y,p))),Ot(u,y,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=S?h.signature:new m(f.value.buffer).getUint32(0)),u.signature=e})}}class Ct extends E{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=Ie(r,e));const a=s-8,o=i.min(a,r.length);n.enqueue(Ie(r.subarray(0,o),e.subarray(0,a-o))),r=Ie(r.subarray(o),e.subarray(a-o))},flush(){const t=Me(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Ut extends E{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d,format:w}=e;let f,p,h=super.readable;if(a&&(s?h=_t(h,new gt(e)):(p=new lt(e),h=_t(h,p))),c){const e=w&&Se(w);h=e?Lt(h,Mt(e.DecompressionStream,w,{chunkSize:t})):Nt(h,l,{chunkSize:t,deflate64:d},n,r),h=(e=>{const t=e.getReader();return new R({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(vt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(h)}a&&!s||!i||(f=new Ce,h=_t(h,f)),Ot(this,h,()=>{if((!a||s)&&i){const e=new m(f.value.buffer);if(o!=e.getUint32(0,!1))throw new u(Ve)}})}}const It=new c;function Ot(e,t,n){t=_t(t,new E({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Mt(e,t,r){if(!e)throw new u("Compression method not supported");return new e(t,r)}function Nt(e,t,r,n,s){const a=t&&n?n:s||n,i=r.deflate64?"deflate64-raw":At;let o;try{o=new a(i,r)}catch(e){if(!t||!s||a==s)throw e;o=new s(i,r)}return Lt(e,o)}function _t(e,t){return e.pipeThrough(t)}function Lt(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 Pt="data",Wt="deflate",Zt="inflate";class Vt extends E{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(Wt)?a=Tt:s.startsWith(Zt)&&(a=Ut),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new E({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),d=new E({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new u(kt)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class Ht extends E{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 Bt={type:"module"},jt="error";let qt,Kt,Yt,Gt,Xt=!0;try{Xt=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Jt{constructor(e,{readable:t,writable:n},{options:s,config:a,oe:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return r.assign(e,{ce:!0,le:(e.le||0)+1,readable:t.pipeThrough(new Ht(le(a))).pipeThrough(new Qt(i),{signal:w}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new g(t=>{const{de:r,ce:n}=e;r?(n?e.we=t:(r.terminate(),t()),e.ue=null):t()}),fe(){if(e.ce){const{we:t}=e;t&&(e.we=null,e.pe=!0,e.de.terminate(),t()),e.ce=!1,d(e)}}}),qt===$&&(qt=typeof T!=te),(o&&qt?tr:er)(e,a)}}class Qt extends E{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await $t(e,r)},async transform(e,n){s+=e.length,t&&await $t(t,s,r),n.enqueue(e)},async flush(){n&&await $t(n,s)}})}}async function $t(e,...t){try{await e(...t)}catch{}}function er(e,t){return{run:()=>rr(e,t)}}function tr(e,t){const{baseURI:n,chunkSize:a,workerStartupTimeout:i}=t;let{wasmURI:o}=t;if(!e.ue){let c;typeof o==re&&(o=o());try{c=sr(e.workerURI,n,e)}catch{return qt=!1,er(e,t)}r.assign(e,{de:c,he:!1,pe:!1,ue:{run:async()=>{try{return await(async(e,t)=>{let n,a;const i=new g((e,t)=>{n=e,a=t});r.assign(e,{reader:null,writer:null,me:n,ye:a,result:i});const{readable:o,options:c}=e,{writable:l,closed:d,ge:w}=(e=>{const t=new AbortController,{writable:r,readable:n}=new E,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,ge:()=>t.abort()}})(e.writable);let f;try{f=or({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){w();try{await d}catch{}throw e.fe(),t}f||r.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.he||!s.isFinite(p)||0>p||(e.Se=setTimeout(()=>(e=>{if(e.Se=null,e.he)return;const{ye:t,writer:r}=e;if(nr(e),e.de=null,t){const e=new u("Worker startup timeout");e.be=!0,t(e),r&&r.releaseLock()}})(e),p));try{const e=await i;return await h(),await d,e}catch(e){await h(),w();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:o,baseURI:n,workerStartupTimeout:i})}catch(r){if(r&&r.be){qt=!1;const{reader:r}=e;return r&&r.releaseLock(),e.reader=null,e.writer=null,rr(e,t)}throw r}}}})}return e.ue}async function rr({options:e,readable:t,writable:r,fe:n},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Wt),r=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,n=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(r&&r.xe&&!(e=>{if(!e)return!1;let t=It.get(e);if(t===$){try{new e(At),t=!0}catch{t=!1}It.set(e,t)}return t})(n))try{await void 0}catch{}}else try{await void 0}catch{r&&!r.xe||(e.useCompressionStream=!0)}}a=new Vt(e,s),await t.pipeThrough(a).pipeThrough(new Ht(le(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()}}function nr(e){const{de:t}=e;if(t)try{t.terminate()}catch{}e.ue=null}function sr(e,t,n,s,a=!0){let i,o,c;if(Yt===$||Kt!==e){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Bt);try{i=new T(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(r&&d)return sr(e,t,n,s,!1);if(s)throw a;return sr(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=Bt);try{o=new w(o,t)}catch{}try{i=new T(o,c)}catch(r){if(s)throw r;return sr(e,t,n,!1,a)}}Kt=e,Yt=o,Gt=c}else i=new T(Yt,Gt);return i.addEventListener("message",e=>{n.he=!0,ar(n),(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,me:d,ye:w,fe:p,le:h}=t,m=()=>t.le!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new u(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()||or({type:Pt,value:e,done:r,messageId:a},t)}n==Pt&&(await l.ready,await l.write(new f(s)),m()||or({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(nr(t),y(o))}function y(e,t){m()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,n)}),i.addEventListener(jt,e=>ir(e,n)),i.addEventListener("messageerror",e=>ir(e,n)),i}function ar(e){const{Se:t}=e;t&&(clearTimeout(t),e.Se=null)}function ir(e,t){e.preventDefault&&e.preventDefault(),ar(t);const{he:n,ye:s,writer:a,fe:i}=t;if(nr(t),n||(t.de=null),s){let t=e.error||new u(e.message||jt);n||(t=r.assign(new u(t.message||jt),{be:!0})),s(t),a&&a.releaseLock(),n&&i()}}function or(e,{de:t,writer:r,transferStreams:n,he:s}){try{const{value:r,readable:a,writable:i}=e,o=[];if(r&&(e.value=Oe(r),o.push(e.value.buffer)),n&&Xt&&s?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{Xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let cr=[];const lr=[];let dr,wr,ur=0;async function fr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d,format:u,codecURI:f}=r,{workerURI:p,maxWorkers:h}=n;u&&(f&&(r.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(f,n.baseURI)),await(async(e,t)=>{!ye.has(e)&&t&&be(e,await(import(t)))})(u,r.codecURI)),t.transferStreams=a||a===$&&n.transferStreams;const m=!c&&!l&&!d,y=u===$||!!r.codecURI;return t.useWebWorkers=!m&&y&&(i||i===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,r.useCompressionStream=o||o===$&&n.useCompressionStream,(await(async()=>{const r=cr.find(e=>!e.ce);if(r)return gr(r),new Jt(r,e,t,S);if(cr.length<h){const r={ze:ur};return ur++,cr.push(r),new Jt(r,e,t,S)}return new g(r=>{lr.push({resolve:r,stream:e,Fe:t}),wr=n.workerStarvationTimeout,pr()})})()).run();function S(e){if(hr(),lr.length){const[{resolve:t,stream:r,Fe:n}]=lr.splice(0,1);t(new Jt(e,r,n,S)),pr()}else e.de?(gr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.pe?e.pe=!1:e.Ee=setTimeout(async()=>{cr=cr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):cr=cr.filter(t=>t!=e)}}function pr(){!dr&&lr.length&&s.isFinite(wr)&&wr>=0&&(dr=setTimeout(mr,wr))}function hr(){dr&&(clearTimeout(dr),dr=null)}function mr(){if(dr=null,lr.length){const[{resolve:e,stream:t,Fe:n}]=lr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new Jt({},t,s,yr)),pr()}}function yr(){hr(),pr()}function gr(e){const{Ee:t}=e;t&&(clearTimeout(t),e.Ee=null)}const Sr="HTTP error ",br="HTTP Range not supported",xr="HTTP resource changed",zr="Writer iterator completed too soon",Fr="Writer not initialized",Er="Content-Range",Rr="Range",Dr="GET",kr="bytes",vr=16777216,Ar="writable",Tr=Symbol();class Cr{constructor(){this.size=0}init(){this.initialized=!0}}class Ur extends Cr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(ce())}={}){const n=this;let s=0;return new R({async pull(a){const o=t===$?r:i.min(r,t-s),c=await cn(n,e+s,o);a.enqueue(c),s+r>t||t===$&&!c.length&&o?a.close():s+=r}})}}class Ir extends Cr{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new u(Fr);return e.writeUint8Array(Oe(t))}});r.defineProperty(e,Ar,{get:()=>t})}writeUint8Array(){}}let Or,Mr;class Nr extends Ur{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Mr||(Mr=(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();Or=1==t}catch{Or=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Or?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 _r extends Cr{constructor(e){super();const t=this,n=new E,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,Ar,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Lr extends Ur{constructor(e,t){super(),Wr(this,e,t)}async init(){await Zr(this,$r,Gr),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==$){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 R({start:()=>l(),async pull(e){n||await l();const{value:t,done:r}=await n.read();if(r)throw new u(br);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=$,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),r=await $r(Dr,e,Kr(e,a,t));if(206!=r.status)throw new u(br);const l=r.headers.get(Er);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new u(br)}qr(e,r),jr(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 Vr(this,e,t,$r,Gr)}}class Pr extends Ur{constructor(e,t){super(),Wr(this,e,t)}async init(){await Zr(this,en,Xr),super.init()}readUint8Array(e,t){return Vr(this,e,t,en,Xr)}}function Wr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=vr,fetch:d}=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:l,fetch:d})}async function Zr(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:r}=new w(e,t);return"http:"==r||"https:"==r})(n)&&(a||i)&&(void 0===s||s)){const n=await t(Dr,e,Kr(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==kr))throw new u(br);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==V&&(e.Re=t)}jr(e,n);const s=Hr(n);s===$?await Qr(e,t,r):e.size=s}}else await Qr(e,t,r)}async function Vr(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,Re:c,size:l,options:d}=e;if(i||o){if(c&&t==l-V&&r==V)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(Dr,e,Kr(e,t,r));if(206!=a.status)throw new u(br);const i=a.headers.get(Er);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(br)}qr(e,a),jr(e,a);const o=new f(await a.arrayBuffer());if(o.length!=r)throw new u(br);return o}return ne}{const{data:n}=e;return n||await a(e,d),e.data.subarray(t,t+r)}}function Hr(e){const t=e.headers.get(Er);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Br({headers:e}){return{De:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function jr(e,t){const{checkResourceChanges:r,ke:n}=e;r&&!n&&206==t.status&&(e.ke=Br(t))}function qr(e,t){const{checkResourceChanges:n,ke:s,size:a}=e;if(n){const e=Hr(t);if(e!==$&&a!==$&&e!=a)throw new u(xr);if(s){const e=Br(t);if(r.entries(s).some(([t,r])=>r!==$&&e[t]!==$&&r!=e[t]))throw new u(xr)}}}function Kr(e,t=0,n=1){return r.assign({},Yr(e),{[Rr]:kr+"="+(0>t?t:t+"-"+(t+n-1))})}function Yr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Gr(e){await Jr(e,$r)}async function Xr(e){await Jr(e,en)}async function Jr(e,t){const r=await t(Dr,e,Yr(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Qr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Yr(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function $r(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 u(br):new u(Sr+(i.statusText||i.status))}function en(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 u(br):new u(Sr+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("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 tn extends Ur{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Pr(e,t):new Lr(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 rn extends Ur{constructor(e){super(),this.ve=e}async init(){const e=this,{ve:t}=e;e.Ae=0,await g.all(t.map(e=>on(e))),e.Te=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}Ce(e){const{Te:t,size:r}=this,n=t.at(e);return n===$?r:n}async readUint8Array(e,t){const r=this,{ve: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=Ie(await cn(c,o,a),await r.readUint8Array(e+a,t-a))}else s=await cn(c,o,t)}else s=ne;return r.Ae=i.max(a,r.Ae),s}}class nn extends Cr{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===Tr)return void(i&&await l());const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new u(zr);s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await on(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},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 l(){await d(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize}async function d(){await i.close()}r.defineProperty(n,Ar,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Tr)}finally{e.releaseLock()}}}class sn{constructor(e){return t.isArray(e)&&(e=new rn(e)),e instanceof R&&(e={readable:e}),e}}class an{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new nn(e)),e instanceof D&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function on(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function cn(e,t,r){return e.readUint8Array(t,r)}const ln="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function dn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ln[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const wn="filename",un="rawFilename",fn="comment",pn="rawComment",hn="uncompressedSize",mn="compressedSize",yn="offset",gn="diskNumberStart",Sn="lastModDate",bn="rawLastModDate",xn="lastAccessDate",zn="creationDate",Fn="rawCreationDate",En="internalFileAttributes",Rn="externalFileAttributes",Dn="msdosAttributesRaw",kn="msdosAttributes",vn="msDosCompatible",An="zip64",Tn="encrypted",Cn="version",Un="versionMadeBy",In="zipCrypto",On="directory",Mn="executable",Nn="compressionMethod",_n="signature",Ln="extraField",Pn="unixMode",Wn="setuid",Zn="setgid",Vn="sticky",Hn=[wn,un,hn,mn,Sn,bn,fn,pn,xn,zn,Fn,yn,gn,En,Rn,Dn,kn,vn,An,Tn,Cn,Un,In,On,Mn,Nn,_n,Ln,"extraFieldUnix","extraFieldInfoZip","uid","gid",Pn,Wn,Zn,Vn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Bn{constructor(e){Hn.forEach(t=>this[t]=e[t])}}const jn="password",qn="rawPassword",Kn="passThrough",Yn="signal",Gn="checkAmbiguity",Xn="useWebWorkers",Jn="useCompressionStream",Qn="transferStreams",$n="preventClose",es="offset",ts="usdz",rs="strictness",ns="strict",ss="tolerant",as="File format is not recognized",is="End of central directory not found",os="End of Zip64 central directory locator not found",cs="Central directory header not found",ls="Local file header not found",ds="Zip64 extra field not found",ws="File contains encrypted entry",us="Encryption method not supported",fs="Compression method not supported",ps="Split zip file",hs="Overlapping entry found",ms="Ambiguous archive",ys="Encrypted central directory is not supported",gs="utf-8",Ss="cp437",bs=[[hn,U],[mn,U],[yn,U],[gn,I]],xs={[I]:{Ue:Ks,bytes:4},[U]:{Ue:Ys,bytes:8}};class zs{constructor(e,t={}){r.assign(this,{reader:new sn(e),options:t,config:ce(),Ie:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await on(n),n.size!==$&&n.readUint8Array||(n=new Nr(await new d(n.readable).blob()),await on(n)),n.size<V)throw new u(as);const a=Us(Vs(t,e,rs),Vs(t,e,Gn)),o=a==ns,c=a!=ss,w=((e,t)=>e!==$?e:t==ns?0:t==ss?1/0:I)(Vs(t,e,"maxAppendedDataSize"),a),{Oe:f,Me:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:Is};let o,c,l=0;for await(const[r,i,d,w,u]of _s(e,s)){const s=qs(r,w+20);if(u+V+s==n){const s=await Ps(e,r,i,w,u,n,a);if(s==Ns){if(o||(o=Ls(d,w,u)),l++,!t||l>1)break}else s!=Ms||c||(c=Ls(d,w,u))}}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,l,d]of _s(e,s)){const s=Ls(c,l,d);a||(a=s);const w=await Ps(e,t,i,l,d,n,r);if(w==Ns)return s;w!=Ms||o||(o=s)}return o||a})(e,r,a)),{Oe:o,Me:l}})(n,c,w);if(!f)throw Ks(Me(await cn(n,0,4)))==N?new u(ps):new u(is);c&&p>1&&Zs("multiple end of central directory records");const h=Me(f);let m=Ks(h,12),y=Ks(h,16);const S=f.offset,b=qs(h,20),x=S+V+b;n.size-x>w&&Zs("appended data");let z=qs(h,4);const F=n.Ae||0;let R,D,k,v=qs(h,6),A=qs(h,10),T=0;const C=y==U||m==U||A==I||v==I;if(y!=U&&v!=I&&(y+=Cs(n,v)),C){const e=f.offset<H?ne:await cn(n,f.offset-H,H),t=Me(e);if(e.length==H&&Ks(t,0)==Z){y=Cs(n,Ks(t,4))+Ys(t,8);let e=await cn(n,y,56),r=Me(e);const s=f.offset-H-56;if((56>e.length||Ks(r,0)!=W)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await cn(n,y,56),r=Me(e)}if(56>e.length||Ks(r,0)!=W)throw new u(os);D=!0,k=Ys(r,4)>44,z==I?z=Ks(r,16):o&&z!=Ks(r,16)&&Zs("mismatched zip64 end of central directory record"),v==I?v=Ks(r,20):o&&v!=Ks(r,20)&&Zs("mismatched zip64 end of central directory record"),A==I?A=Ys(r,32):o&&A!=Ys(r,32)&&Zs("mismatched zip64 end of central directory record"),m==U?m=Ys(r,40):o&&m!=Ys(r,40)&&Zs("mismatched zip64 end of central directory record"),y=Cs(n,v)+Ys(r,48)+T}}const M=m,_=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-V,y=n.size-m-V),F!=z)throw new u(ps);if(0>y)throw new u(as);let P=0,B=await cn(n,y,m),j=Me(B);if(m){if(4>B.length)throw new u(as);const e=_-m;if(y!=e&&v==z){let t=!(Ks(j,P)==L);if(t||0>e||e+4>n.size||(t=Ks(Me(await cn(n,e,4)),0)==L),t){const t=y;y=e,y>t&&(T+=y-t),B=await cn(n,y,m),j=Me(B)}}}const X=_-y;if(m==X||0>X||v!=z||(m=X,B=await cn(n,y,m),j=Me(B)),0>y||y>=n.size)throw new u(as);R=y;const J=Vs(t,e,"filenameEncoding"),Q=Vs(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;A>a;a++){const c=new Es(n,s,t.options);if(P+46>B.length||Ks(j,P)!=L){if(0==a&&(k||Rs(j)))throw new u(ys);throw new u(cs)}Ds(c,j,P+6);const l=!!c.bitFlag.languageEncodingFlag,w=P+46,f=w+c.filenameLength,p=f+c.extraFieldLength,h=qs(j,P+4),m=!(h>>8),y=h>>8==3,S=B.subarray(w,f),b=qs(j,P+32),x=p+b,z=B.subarray(p,x),F=l,D=l,v=Ks(j,P+38),C=v&O,U={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},M=Ks(j,P+42),N=Vs(t,e,"decodeText")||dn,_=F?gs:J||Ss,W=D?gs:Q||Ss;let Z=N(S,_);Z===$&&(Z=dn(S,_));let V=N(z,W);V===$&&(V=dn(z,W)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ne:b,offset:M,diskNumberStart:qs(j,P+34),internalFileAttributes:qs(j,P+36),externalFileAttributes:v,msdosAttributesRaw:C,msdosAttributes:U,rawFilename:S,filenameUTF8:F,commentUTF8:D,rawExtraField:B.subarray(f,p),rawComment:z,filename:Z,comment:V}),ks(c,c,j,P+6),c.offset+=T,R=i.min(Cs(n,c.diskNumberStart)+c.offset,R),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const H=c.externalFileAttributes>>16&I;c.unixMode===$&&16877&H&&(c.unixMode=H);const X=!!(c.unixMode&K),re=!!(c.unixMode&Y),ne=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&H),ae=c.unixMode!==$&&(61440&c.unixMode)==q,ie=(61440&H)==q;r.assign(c,{setuid:X,setgid:re,sticky:ne,unixExternalUpper:H,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||ie||m&&U.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new Bn(c);oe.getData=(e,r)=>c.getData(e,oe,t.Ie,r),oe.arrayBuffer=async e=>{const r=new E,[n]=await g.all([new d(r.readable).arrayBuffer(),c.getData(r,oe,t.Ie,e)]);return n},P=x;const{onprogress:ce}=e;if(ce)try{await ce(a+1,A,new Bn(c))}catch{}yield oe}o&&P!=M&&Zs("trailing central directory data"),te&&Zs("duplicate filename"),o&&(T||A&&R>0)&&Zs("prepended data");const re=Vs(t,e,"extractPrependedData"),se=Vs(t,e,"extractAppendedData");return re&&(t.prependedData=R>0?await cn(n,0,R):ne),t.comment=b?await cn(n,S+V,b):ne,se&&(t.appendedData=x<n.size?await cn(n,x,n.size-x):ne),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Fs{constructor(e={}){const{readable:t,writable:r}=new E,n=new zs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new E;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}}class Es{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:l,extraFieldZip64:d,compressionMethod:w,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:S}=p,b=t.localDirectory={},x=Cs(a,c)+o,z=await cn(a,x,X),F=Me(z);let E=Vs(s,n,jn),R=Vs(s,n,qn);const k=Vs(s,n,Kn);if(E=E&&E.length&&E,R=R&&R.length&&R,l&&99!=l.originalCompressionMethod)throw new u(fs);const v=k?$:ge(w);if(0!=w&&8!=w&&9!=w&&!v&&!k)throw new u(fs);if(z.length<X||Ks(F,0)!=M)throw new u(ls);Ds(b,F,4);const{extraFieldLength:A,filenameLength:T}=b,C=Us(Vs(s,n,rs),Vs(s,n,Gn))==ns;let U=ne;if(C&&(T||A)){const e=await cn(a,x+X,T+A);U=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=A?await cn(a,x+X+T,A):ne;ks(s,b,F,4,!0),C&&((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,U);const{lastAccessDate:I,creationDate:N}=b;I&&(t.lastAccessDate=I),N&&(t.creationDate=N);const L=s.encrypted&&b.encrypted&&!k,P=L&&!l;if(k||(t.zipCrypto=P),L){if(!(64&~b.rawBitFlag))throw new u(us);if(!P&&(1>l.strength||l.strength>3))throw new u(us);if(!E&&!R)throw new u(ws)}const W=x+X+T+A,Z=g,V=a.createReadable({offset:W,size:Z}),H=Vs(s,n,Yn),B=Vs(s,n,"checkPasswordOnly");let j=Vs(s,n,"checkOverlappingEntry");const q=Vs(s,n,"checkOverlappingEntryOnly");q&&(j=!0);const{onstart:K,onprogress:Y,onend:G}=n,J=9==w;let Q=Vs(s,n,Jn);J&&(Q=!1);const ee={options:{codecType:Zt,password:E,rawPassword:R,zipCrypto:P,encryptionStrength:l&&l.strength,signed:Vs(s,n,"checkSignature")&&!k,passwordVerification:P&&(S?m>>>8&O:h>>>24&O),outputSize:k?g:y,signature:h,compressed:0!=w&&!k,encrypted:L,useWebWorkers:Vs(s,n,Xn),useCompressionStream:Q,transferStreams:Vs(s,n,Qn),deflate64:J,format:v?v.format:$,codecURI:v?v.codecURI:$,checkPasswordOnly:B},config:f,oe:{signal:H,size:Z,onstart:K,onprogress:Y,onend:G}};let te;j&&await(async({reader:e,_e:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:i,Le:o,dataDescriptor:c,extraFieldZip64:l,Ie:d})=>{let w=0;if(c&&(w=l?20:12),w){const r=await cn(e,o+a,w+4);if(r.length==w+4&&Ks(Me(r),0)==_){const e=Ks(Me(r),4);let n,o;l?(n=Ys(Me(r),8),o=Ys(Me(r),16)):(n=Ks(Me(r),8),o=Ks(Me(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&o==i&&(w+=4)}}const f={start:n,end:o+a+w,_e:t};for(const[e,t]of d)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new u(hs);throw e.Pe=t._e,e}d.set(r,f)})({reader:a,_e:t,index:i,offset:x,signature:h,compressedSize:g,uncompressedSize:y,Le:W,dataDescriptor:S||b.bitFlag.dataDescriptor,extraFieldZip64:d||b.extraFieldZip64,Ie:r});try{if(!q){B&&(e=new D),e=new an(e),await on(e,k?g:y),({writable:te}=e);const{outputSize:t}=await fr({readable:V,writable:te},ee);if(e.size+=t,t!=(k?g:y))throw new u(kt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!B||t.message!=He)throw t}finally{Vs(s,n,$n)||!te||te.locked||await te.getWriter().close()}return B||q?$:e.getData?e.getData():te}}function Rs(e){const t=i.min(e.byteLength,1024)-3;for(let r=0;t>r;r++)if(134630224==Ks(e,r))return!0;return!1}function Ds(e,t,n){const s=e.rawBitFlag=qs(t,n+2),a=!(1&~s),i=Ks(t,n+6);r.assign(e,{encrypted:a,version:qs(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&j)==j},rawLastModDate:i,lastModDate:Hs(i),filenameLength:qs(t,n+22),extraFieldLength:qs(t,n+24)})}function ks(e,t,n,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Me(i);let w=0;try{for(;w<i.length;){const e=qs(d,w),t=qs(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const f=qs(n,s+4);r.assign(t,{signature:Ks(n,s+10),compressedSize:Ks(n,s+14),uncompressedSize:Ks(n,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const r=Me(e.data),n=bs.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+xs[t].bytes,0);if(e.data.length<s)throw new u(ds);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=xs[o];t[i]=e[i]=c.Ue(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(vs(h,wn,un,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(vs(m,fn,pn,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=Me(e.data),a=js(s,4);r.assign(e,{We:js(s,0),vendorId:js(s,2),strength:a,originalCompressionMethod:n,compressionMethod:qs(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=l.get(10);g&&(((e,t)=>{const n=Me(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=qs(n,a),r=qs(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=Me(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:Bs(a),lastAccessDate:Bs(i),creationDate:Bs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const S=l.get(30805);if(S)As(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(As(e,t,!0),t.extraFieldInfoZip=e)}const b=l.get(B);b&&(((e,t,r)=>{if(!e.data.length)return;const n=Me(e.data),s=js(n,0),a=[],i=[];r?(1&~s||(a.push(Sn),i.push(bn)),2&~s||(a.push(xn),i.push("rawLastAccessDate")),4&~s||(a.push(zn),i.push(Fn))):5>e.data.length||(a.push(Sn),i.push(bn));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=Ks(n,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function vs(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=Me(e.data),o=new Te;o.append(a[n]);const c=Me(new f(4));c.setUint32(0,o.get(),!0);const l=Ks(i,1);r.assign(e,{version:js(i,0),[t]:dn(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ks(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function As(e,t,n){try{const s=Me(e.data);let a,i;if(n){let t=0;const n=js(s,t++),o=js(s,t++);a=Ts(e.data.subarray(t,t+o)),t+=o;const c=js(s,t++);i=Ts(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=qs(s,0),i=qs(s,2),r.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Ts(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Cs(e,t){return e.Ce?e.Ce(t):0}function Us(e,t){return e===$?t?ns:"balanced":e}const Is=64,Os=0,Ms=1,Ns=2;async function*_s(e,t){const r=e.size-t,n=await cn(e,r,t),s=Me(n);for(let e=n.length-V;e>=0;e--)Ks(s,e)==P&&(yield[s,r,n,e,r+e])}function Ls(e,t,r){return{offset:r,buffer:e.slice(t,t+V).buffer}}async function Ps(e,t,r,n,s,a,i){const o=qs(t,n+10),c=Ks(t,n+12),l=Ks(t,n+16);if(o==I||c==U||l==U)return await Ws(e,t,r,s-H,a,i)==Z?Ns:Os;if(!o&&!c)return Ms;const d=qs(t,n+6);for(const n of[s-c,Cs(e,d)+l])if(await Ws(e,t,r,n,a,i)==L)return Ns;return Os}async function Ws(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,Ks(Me(await cn(e,n,4)),0)):$:Ks(t,n-r)}function Zs(e){const t=new u(ms);throw t.reason=e,t}function Vs(e,t,r){return t[r]===$?e.options[r]:t[r]}function Hs(e){const t=(4294901760&e)>>16,r=e&I;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 Bs(e){return new o(s(e/a(1e4)-a(116444736e5)))}function js(e,t){return e.getUint8(t)}function qs(e,t){return e.getUint16(t,!0)}function Ks(e,t){return e.getUint32(t,!0)}function Ys(e,t){return s(e.getBigUint64(t,!0))}var Gs=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ms,ERR_BAD_FORMAT:as,ERR_CENTRAL_DIRECTORY_NOT_FOUND:cs,ERR_ENCRYPTED:ws,ERR_ENCRYPTED_CENTRAL_DIRECTORY:ys,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:os,ERR_EOCDR_NOT_FOUND:is,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ds,ERR_INVALID_COMPRESSED_DATA:vt,ERR_INVALID_PASSWORD:Ze,ERR_INVALID_SIGNATURE:Ve,ERR_INVALID_UNCOMPRESSED_SIZE:kt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ls,ERR_OVERLAPPING_ENTRY:hs,ERR_SPLIT_ZIP_FILE:ps,ERR_UNSUPPORTED_COMPRESSION:fs,ERR_UNSUPPORTED_ENCRYPTION:us,ZipReader:zs,ZipReaderStream:Fs});const Xs="File already exists",Js="Zip file comment exceeds 64KB",Qs="File entry comment exceeds 64KB",$s="File entry name exceeds 64KB",ea="Version exceeds 65535",ta="The strength must equal 1, 2, or 3",ra="Encryption is not supported in USDZ files",na="Extra field type exceeds 65535",sa="Extra field data exceeds 64KB",aa=-2147483648,ia=2147483647,oa="Zip64 is not supported (set the 'zip64' option to 'true')",ca="Undefined uncompressed size",la="Undefined reader",da="Zip file not empty",wa=new f([7,0,2,0,65,69,3,0,0]),ua="infozip",fa="unix";let pa=0;const ha=[];class ma{constructor(e,t={}){e=new an(e);const{availableSize:n=ee,maxSize:s=ee}=e,a=n>0&&n!==ee&&s>0&&s!==ee;r.assign(this,{writer:e,Ze:a,options:t,config:ce(),files:new c,Ve:new l,offset:t[es]===$?e.size||e.writable.size||0:t[es],He:t[es]===$?0:t[es]-(e.size||e.writable.size||0),Be:new l,je:0,qe:$})}async prependZip(e){if(this.Ve.size)throw new u(da);e=new sn(e),await on(e);const{ZipReader:t}=await g.resolve().then(()=>Gs),n=new t(e.readable),s=await n.getEntries();await n.close(),await on(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ve=new l(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:l,compressedSize:d,zip64:w}=e;let{compressionMethod:u,Ke:f,Ye:p,Ge:h,Xe:m,Je:y,rawExtraField:g}=e;const{level:S,languageEncodingFlag:b,dataDescriptor:x}=o;f=f||ne,p=p||ne,h=h||ne,m=m||ne,y=y||ne,g=g||ne,e.extraFieldAES&&(u=99);const z=Na(f,p,h,m,y,g),F=w&&l>=U,E=w&&d>=U,R=-7&La(S,b,x,c,u)|S<<1,{Qe:D,$e:k}=_a({version:t,bitFlag:R,compressionMethod:u,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:i,et:E,nt:F,extraFieldLength:z}),{signature:v}=e;return v!==$&&Ia(k,10,v),r.assign(e,{nt:F,et:E,st:w&&e.offset>=U,diskNumberStart:0,it:!1,Ke:f,Ye:p,Ge:h,Xe:m,Je:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,ot:1+(s?2:0)+(a?4:0),Qe:D,$e:k}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Be:c,config:l}=s;let d,w;pa<l.maxWorkers?pa++:await new g(e=>ha.push(e));try{if(e=e.trim(),Ta(s,n,On)&&!e.endsWith(G)&&(e+=G),s.Ve.has(e))throw new u(Xs);return s.Ve.add(e),w=!0,d=(async(e,t,n,s)=>{const c=((e,t,r)=>{t=t.trim();let n=Ta(e,r,vn),s=Ta(e,r,Un,n?20:768);const a=Ta(e,r,Mn),i=Ta(e,r,"uid"),o=Ta(e,r,"gid");let c=Ta(e,r,Pn),l=Ta(e,r,"unixExtraFieldType"),d=Ta(e,r,Wn),w=Ta(e,r,Zn),f=Ta(e,r,Vn);if(i!==$&&(0>i||i>U))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>U))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>I))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==ua&&l!==fa)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===fa&&(i!==$&&i>I||o!==$&&o>I))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=ua);let p=Ta(e,r,Dn),h=Ta(e,r,kn);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(n=!1,s=s&I|768):m&&(n=!0,s&=O),p!==$&&(0>p||p>O))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>I)throw new u(ea);let y=Ta(e,r,Rn);const g=y!==$;g||(y=0),!r[On]&&t.endsWith(G)&&(r[On]=!0);const S=Ta(e,r,On);let b;if(S?(t.endsWith(G)||(t+=G),g||(y=16,n||(y|=16877<<16))):n||g||(y=a?493<<16:27525120),!n){const e=c!==$||!!(d||w||f);b=y>>16&I,c=c===$?b:c&I,d?c|=K:d=!!(c&K),w?c|=Y:w=!!(c&Y),f?c|=512:f=!!(512&c),g&&!e||(S&&(c|=q),y=(c&I)<<16|y&I)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=O;else if(t!==$){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&O}return t===$&&(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&U|p&O),{name:t,ct:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,r)=>{const n=Ta(e,r,"encodeText",Ue);let s=n(t);if(s===$&&(s=Ue(t)),Na(s)>I)throw new u($s);const a=r[fn]||"";let i=n(a);if(i===$&&(i=Ue(a)),Na(i)>I)throw new u(Qs);const c=Ta(e,r,Cn,20);if(c>I)throw new u(ea);const l=Ta(e,r,Sn,new o),d=Ta(e,r,xn),w=Ta(e,r,zn),p=Ta(e,r,En,0),h=Ta(e,r,Kn);let m,y;h||(m=Ta(e,r,jn),y=Ta(e,r,qn));const g=Ta(e,r,"encryptionStrength",3),S=Ta(e,r,In),b=Ta(e,r,"extendedTimestamp",!0),x=Ta(e,r,"ntfsTimestamp"),z=Ta(e,r,"keepOrder",!0),F=Ta(e,r,Xn),E=Ta(e,r,Qn),R=Ta(e,r,"bufferedWrite"),D=Ta(e,r,"createTempStream"),k=Ta(e,r,"dataDescriptorSignature",!0),v=Ta(e,r,Yn),A=Ta(e,r,"useUnicodeFileNames",!0),T=Ta(e,r,Nn),C=h||T===$?$:ge(T);if(!h&&T!==$&&0!==T&&8!==T&&!C)throw new u("Compression method not supported");let U=Ta(e,r,"level");if(e.options[ts]){if(m!==$||y!==$)throw new u(ra);U===$&&T===$&&(U=0)}let O=Ta(e,r,Jn),M=Ta(e,r,"dataDescriptor");R&&M===$&&(M=!1),(M===$||S)&&(M=!0),U!==$&&6!=U&&(O=!1),O||C||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(U=0);const N=Ta(e,r,An);if(!S&&(m!==$||y!==$)&&(1>g||g>3))throw new u(ta);let _=ne;const L=r[Ln];if(L){let e=0,t=0;L.forEach(t=>e+=4+Na(t)),_=new f(e);const r=Me(_);L.forEach((e,n)=>{if(n>I)throw new u(na);if(Na(e)>I)throw new u(sa);Ua(r,t,n),Ua(r,t+2,Na(e)),Ma(_,e,t+4),t+=4+Na(e)})}return{comment:a,ct:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:S,extendedTimestamp:b,ntfsTimestamp:x,keepOrder:z,useWebWorkers:F,transferStreams:E,bufferedWrite:R,createTempStream:D,dataDescriptorSignature:k,signal:v,useUnicodeFileNames:A,compressionMethod:T,format:C?C.format:$,codecURI:C?C.codecURI:$,lt:C?C.versionNeeded:$,level:U,useCompressionStream:O,dataDescriptor:M,zip64:N,rawExtraField:_}}})(e,t,s),{comment:d}=l,w=s[Ln];let p;e.files.set(t,$);try{const d=await(async(e,t,{ct:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new u(la);if(h=n[hn],h===$)throw new u(ca)}const m=!0===d,y=Ta(e,n,Tn),g=!!t&&(!!(i&&Na(i)||o&&Na(o))||s&&y);t||(w=0,f=0);const S=g?a?12:16+4*c:0;t&&(t=new sn(t),await on(t),s?(n.uncompressedSize=h,p=Ca(h)+S):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Ca(h)+S));const b=m||h>=U,x=m||p>=U;if(b||x){if(!1===d)throw new u(oa);d=!0}return d=d||!1,{reader:t,ct:{dataDescriptor:l,zip64:d,nt:b,et:x,uncompressedSize:h,level:w,compressionMethod:f,encrypted:g}}})(e,n,l,s);({reader:n}=d);const w=za(e.writer),h=xa(e.writer),m=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:w,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:g,encrypted:S,nt:b,et:x,uncompressedSize:z}=e;let{version:F,compressionMethod:E}=e;const R=!f&&(E===$?a===$||a>0:0!==E);let D;const k=g||!R,v=c&&(e.bufferedWrite||!w||!b&&!x||k),A=v||c&&w&&(b||x);if(c&&(b||x)){const e=20,t=ba(e);if(t.uint16(1),t.uint16(e-4),D=t.array,v&&(t.wt(z),k)){const e=S?l?12:16+4*h:0;t.wt(g?0:z+e)}}else D=ne;let T,C,U,O,N;if(S&&!l){const e=ba(Na(wa)+2);e.uint16(39169),e.bytes(wa),T=e.array,T[8]=h}else T=ne;if(m){const e=ka(r),t=va(e);if(t){const t=9+(n?4:0)+(s?4:0),r=ba(t);O=1+(n?2:0)+(s?4:0),r.uint16(B),r.uint16(t-4),r.uint8(O),r.uint32(e),n&&r.uint32(Aa(ka(n))),s&&r.uint32(Aa(ka(s))),U=r.array}else U=ne;if(y===$?!t||n||s:y)try{const e=Da(r),t=ba(36);t.uint16(10),t.uint16(32),t.ut(4),t.uint16(1),t.uint16(24),t.wt(e),t.wt(Da(n)||e),t.wt(Da(s)||e),C=t.array}catch{C=ne}else C=ne}else C=U=ne;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=ua||t===$&&r===$)if(n!=fa||t===$&&r===$)N=ne;else{const e=ba(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&I),e.uint16((r===$?0:r)&I),N=e.array}else{const e=Sa(t),n=Sa(r),s=3+e.length+n.length,a=ba(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),N=a.array}}catch{N=ne}E===$&&(E=R?8:0);const{lt:_}=e;R&&_!==$&&(F=F>_?F:_),c&&(F=F>45?F:45),S&&!l&&(F=F>51?F:51,T[9]=E,E=99);const L=A?Na(D):0,P=L+Na(T,U,C,N,p);if(P>I)throw new u(sa);const W=new o(2e3*i.ceil(r.getTime()/2e3)),{Qe:Z,$e:V,rawLastModDate:H}=_a({version:F,bitFlag:La(a,d,w,S,E),compressionMethod:E,uncompressedSize:z,lastModDate:Q>W?Q:W>J?J:W,rawFilename:t,et:x,nt:b,extraFieldLength:P}),j=ba(X+Na(t)+P),q=j.array,K=Me(q);return j.uint32(M),j.bytes(Z),j.bytes(t),A&&j.bytes(D),j.bytes(T),j.bytes(U),j.bytes(C),j.bytes(N),j.bytes(p),w&&(x||Ia(K,18,0),b||Ia(K,22,0)),{ft:q,ht:K,Qe:Z,$e:V,lastModDate:r,rawLastModDate:H,encrypted:S,compressed:R,version:F,compressionMethod:E,ot:O,Ke:ne,yt:L,Ge:U,Xe:C,Je:N,Ye:T,extraFieldLength:P}})(s=r.assign({},s,c.ct,l.ct,d.ct,{internalFileAttribute:l.ct.internalFileAttributes,externalFileAttribute:c.ct.externalFileAttributes,signature:s[_n],offset:e.offset-w,diskNumberStart:h})),y=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ne,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=Me(s),r&&(a=4,Ia(n,0,_))),{gt:s,St:n,bt:a}})(s),S=Na(m.ft,y.gt);p=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{xt:p}=s,h=e.options[ts],m=e.qe;let y,S,b,x,z,F,R,k={},v=0;o.set(t,k),e.qe=k;try{let S;l&&(S=m&&m.lock,k.lock=new g(e=>b=e)),i.bufferedWrite||!l||e.zt||e.je||!d?(y=!0,e.je++,R=i.createTempStream?await i.createTempStream():new E($,$,{highWaterMark:ee}),R.size=0,await on(c)):(R=c,await A()),await on(R);const C=za(c);if(e.Ze){delete e.Ze;const t=new f(4);Ia(Me(t),0,N),await Ra(c,t),e.offset+=4}h&&!y&&ga(s,e.offset-C);const{ft:I}=p;y||(await S,await T());const M=xa(c),_=Ea(e,c);if(k.diskNumberStart=M,y||(z=!0,F=c.size,await Ra(R,I)),k=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{xt:l,Ft:d,Et:w}=i,{Qe:f,$e:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:S,compressionMethod:b,Ke:x,yt:z,Ge:F,ot:E,Xe:R,Je:D,Ye:k}=l,{gt:v}=d,{rawFilename:A,lastAccessDate:T,creationDate:C,password:I,rawPassword:M,level:N,zip64:_,nt:L,et:P,zipCrypto:W,dataDescriptor:Z,directory:V,executable:H,versionMadeBy:B,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,ge={lock:s,versionMadeBy:B,zip64:_,directory:!!V,executable:!!H,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:j,Ke:x,yt:z,Ge:F,Xe:R,Je:D,Ye:k,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:Se,uncompressedSize:be}=c,xe=0;he||(be=0);const{writable:ze}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:Wt,level:N,rawPassword:M,password:I,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&O,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:Y,format:me,codecURI:ye},config:o,oe:{signal:Q,size:n,onstart:G,onprogress:X,onend:J}};try{const e=await fr({readable:r,writable:ze},s);if(xe=e.outputSize,t.size+=xe,he||(be=e.inputSize,Se=e.signature),!P&&xe>=U||!L&&be>=U)throw new u(oa)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,Ft:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{$e:l,encrypted:d}=n,{St:w,bt:u}=s;d&&!o||e===$||(Ia(l,10,e),c&&Ia(w,u,e)),i?c&&(Oa(w,u+4,a(t)),Oa(w,u+12,a(r))):(Ia(l,14,t),Ia(l,18,r),c&&(Ia(w,u+4,t),Ia(w,u+8,r)))})({signature:Se,compressedSize:xe,uncompressedSize:be,xt:l,Ft:d},c),Z&&await Ra(t,v),r.assign(ge,{uncompressedSize:be,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:C,lastAccessDate:T,encrypted:y,zipCrypto:W,size:w+xe,compressionMethod:b,version:S,Qe:f,$e:p,signature:Se,ot:E,nt:L,et:P}),ge})(n,R,k,s,e.config,i),y||(z=!1),o.set(t,k),k.filename=t,y){if(await g.all([R.writable.getWriter().close(),S]),await A(),x=!0,F=c.size,await T(),k.diskNumberStart=xa(c),k.offset=Ea(e,c),h){const t=s.Et;ga(s,e.offset-za(c)),k.size+=s.Et-t}(({rawFilename:e,encrypted:t,zip64:r,yt:n,signature:s,compressedSize:i,uncompressedSize:o,nt:c,et:l},d,{dataDescriptor:w})=>{if(w||(t||Ia(d,14,s),l||Ia(d,18,i),c||Ia(d,22,o)),r&&n){const t=X+Na(e)+4;Oa(d,t,a(o)),Oa(d,t+8,a(i))}})(k,p.ht,i),await Ra(c,p.ft),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=Na(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(R.readable,c,w),c.size+=R.size,x=!1}else k.diskNumberStart=M,k.offset=_;return e.offset+=k.size,k}catch(r){if(x||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.je--,b&&b(),S&&S(),y&&R&&R.dispose)try{await R.dispose()}catch{}}async function A(){e.zt=!0;const{Rt:t}=e;e.Rt=new g(t=>S=()=>{e.zt=!1,t()}),await t}async function T(){Fa(c,Na(p.ft))&&await c.closeDisk()}})(e,t,n,{xt:m,Ft:y,Et:S},s)}catch(r){throw e.files.delete(t),r}return r.assign(p,{name:t,comment:d,extraField:w}),new Bn(p)})(s,e,t,n),c.add(d),await d}catch(t){throw w&&s.Ve.delete(e),t}finally{c.delete(d);const e=ha.shift();e?e():pa--}}remove(e){const{Ve:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ne,r={}){const{Be:n,writer:s}=this,{writable:i}=s;if(Na(e)>I)throw new u(Js);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,Ye:n,rawComment:s,Xe:a,Je:i,rawExtraField:o,extendedTimestamp:c,ot:l,lastModDate:d,nt:w,et:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=U,y=r.diskNumberStart>=I;let g,S;if(m||y||w||f){const e=4+(w?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=ba(e);t.uint16(1),t.uint16(e-4),w&&t.wt(p),f&&t.wt(h),m&&t.wt(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ne;r.Ke=g,r.st=m,r.it=y;const b=ka(d);if(c&&va(b)){const e=ba(9);e.uint16(B),e.uint16(5),e.uint8(l),e.uint32(b),S=e.array}else S=ne;r.Ge=S;const x=Na(g,n,a,i,S,o);if(x>I)throw new u(sa);t+=46+Na(e,s)+x}return t})(e.files),i=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await on(a);let o=0,c=0,l=xa(a),d=za(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,Ke:u,Ye:f,Ge:p,Xe:h,Je:m,rawExtraField:y,rawComment:g,versionMadeBy:S,Qe:b,$e:x,nt:z,et:F,it:E,st:R,internalFileAttributes:D,externalFileAttributes:k,diskNumberStart:v,uncompressedSize:A,compressedSize:T}=r,C=Na(u,f,p,h,m,y),O=46+Na(w,g)+C;Fa(a,o+O-c)&&(await Ra(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=xa(a),d=za(a)),z||Ia(x,18,A),F||Ia(x,14,T),(R||E)&&45>r.version&&Ua(x,0,45);const M=ba(O);if(M.uint32(L),M.uint16(S),M.bytes(b.subarray(0,24)),M.uint16(C),M.uint16(Na(g)),M.uint16(E?I:v),M.uint16(D),M.uint32(k),M.uint32(R?U:t),M.bytes(w),M.bytes(u),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),Ma(i,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Bn(r))}catch{}}return await Ra(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Dt:i}=n;let{kt:o}=n,c=e.files.size,l=i.diskNumber,d=Ea(e,i),w=xa(s);Fa(s,V)&&w++;let f=Ta(e,r,An);if(!(U>d&&U>o&&I>c&&I>w)){if(!1===f)throw new u(oa);f=!0}const p=Na(t);if(p>I)throw new u(Js);const h=ba(f?98:V);Fa(s,Na(h.array)+p)&&await s.closeDisk(),w=xa(s),f&&(h.uint32(W),h.wt(44),h.uint16(45),h.uint16(45),h.uint32(w),h.uint32(l),h.wt(c),h.wt(c),h.wt(o),h.wt(d),h.uint32(Z),h.uint32(w),h.wt(a(Ea(e,s))+a(o)),h.uint32(w+1),Ta(e,r,"supportZip64SplitFile",!0)&&(w=I,l=I),c=I,d=U,o=U),h.uint32(P),h.uint16(w),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await Ra(s,h.array),p&&await Ra(s,t)})(e,r,n,{Dt:i,kt:s})})(this,e,r),Ta(this,r,$n)||await i.getWriter().close(),s.getData?s.getData():i}}function ya(e,t,r){e.Be.add(t),t.catch(e=>{try{r(e)}catch{}})}function ga(e,t){const{xt:r}=e;let{ft:n,extraFieldLength:s}=r,a=64-(t+Na(n))%64;4>a&&(a+=64);const i=new f(a),o=Me(i);Ua(o,0,6534),Ua(o,2,a-4);const c=n;r.ft=n=new f(Na(c)+a),Ma(n,c),Ma(n,i,Na(c));const l=Me(n);Ua(l,28,s+a),r.ht=l,e.Et+=a}function Sa(e){if(e===$)return ne;{const t=new f(4);Me(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function ba(e){const t=new f(e),r=Me(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ua(r,n,e),n+=2},uint32:e=>{Ia(r,n,e),n+=4},wt:e=>{Oa(r,n,a(e)),n+=8},bytes:e=>{Ma(t,e,n),n+=Na(e)},ut:e=>n+=e}}function xa(e){const{diskNumber:t=0}=e;return t}function za(e){const{diskOffset:t=0}=e;return t}function Fa(e,t){const{availableSize:r=ee}=e;return t>r}function Ea(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.He:0)}async function Ra(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Na(t),await n.write(t)}finally{n.releaseLock()}}function Da(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function ka(e){return i.floor(e.getTime()/1e3)}function va(e){return e>=aa&&ia>=e}function Aa(e){return i.min(ia,i.max(aa,e))}function Ta(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function Ca(e){return e+5*(i.floor(e/16383)+1)}function Ua(e,t,r){e.setUint16(t,r,!0)}function Ia(e,t,r){e.setUint32(t,r,!0)}function Oa(e,t,r){e.setBigUint64(t,r,!0)}function Ma(e,t,r){e.set(t,r)}function Na(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function _a({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,et:c,nt:l,extraFieldLength:d}){const w=ba(26),u=w.array,f=Me(u);if(w.uint16(e),w.uint16(t),w.uint16(r),i===$){const e=new h(1),t=Me(e);Ua(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ua(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.ut(4),c||s!==$?w.uint32(c?U:s):w.ut(4),l||n!==$?w.uint32(l?U:n):w.ut(4),w.uint16(Na(o)),w.uint16(d),{Qe:u,$e:f,rawLastModDate:i}}function La(e,t,r,n,s){let a=0;return t&&(a|=j),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 Pa=1048576,Wa=".zip.js-temp",Za=1048576,Va=1048576,Ha=".zip.js-temp";try{(e=>{for(const t of ie){const r=e[t];r!==$&&(ae[t]=r)}de(e)})({baseURI:void 0===x&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===x?location.href:C&&"SCRIPT"===C.tagName.toUpperCase()&&C.src||new w("zip-core.min.js",x.baseURI).href})}catch{}e.BlobReader=Nr,e.BlobWriter=_r,e.Data64URIReader=class extends Ur{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,vt:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{vt: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 l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Ir{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)}},e.ERR_AMBIGUOUS_ARCHIVE=ms,e.ERR_BAD_FORMAT=as,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=cs,e.ERR_DUPLICATED_NAME=Xs,e.ERR_ENCRYPTED=ws,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=ys,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=os,e.ERR_EOCDR_NOT_FOUND=is,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ds,e.ERR_HTTP_RANGE=br,e.ERR_HTTP_RESOURCE_CHANGED=xr,e.ERR_INVALID_CODEC_DEFINITION=we,e.ERR_INVALID_CODEC_MODULE=fe,e.ERR_INVALID_COMMENT=Js,e.ERR_INVALID_COMPRESSED_DATA=vt,e.ERR_INVALID_ENCRYPTION_STRENGTH=ta,e.ERR_INVALID_ENTRY_COMMENT=Qs,e.ERR_INVALID_ENTRY_NAME=$s,e.ERR_INVALID_EXTRAFIELD_DATA=sa,e.ERR_INVALID_EXTRAFIELD_TYPE=na,e.ERR_INVALID_PASSWORD=Ze,e.ERR_INVALID_SIGNATURE=Ve,e.ERR_INVALID_UNCOMPRESSED_SIZE=kt,e.ERR_INVALID_VERSION=ea,e.ERR_ITERATOR_COMPLETED_TOO_SOON=zr,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ls,e.ERR_OVERLAPPING_ENTRY=hs,e.ERR_RESERVED_COMPRESSION_METHOD=ue,e.ERR_SPLIT_ZIP_FILE=ps,e.ERR_UNDEFINED_READER=la,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=ca,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=us,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=ra,e.ERR_UNSUPPORTED_FORMAT=oa,e.ERR_WRITER_NOT_INITIALIZED=Fr,e.ERR_ZIP_NOT_EMPTY=da,e.HttpRangeReader=class extends tn{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=tn,e.Reader=Ur,e.SplitDataReader=rn,e.SplitDataWriter=nn,e.TextReader=class extends Nr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends _r{constructor(e){super(e),r.assign(this,{encoding:e,At:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,At: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)})}}},e.Uint8ArrayReader=class extends Ur{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)}},e.Uint8ArrayWriter=class extends Ir{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)}},e.Writer=Ir,e.ZipReader=zs,e.ZipReaderStream=Fs,e.ZipWriter=ma,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new E;this.readable=t,this.zipWriter=new ma(r,e),this.Be=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new E({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return ya(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new E({start(e){t=e}});return ya(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await g.all(t.from(this.Be)),this.zipWriter.close(e,r)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=Za}=e;return()=>{const e=[];let r,n,s,a=0,i=!1;const o=new D({async write(s){i?await r.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new E;n=new d(t.readable).blob(),r=t.writable.getWriter(),i=!0;for(const t of e)await r.write(t);e.length=0})())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:o,readable:new R({async pull(t){if(i){if(!s){const e=await n;s=e.stream().getReader()}const{value:e,done:r}=await s.read();r?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Pa,directoryName:r=Wa,getDirectory:n=()=>A.storage.getDirectory()}=e;let s;function a(){return s||(s=g.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return()=>{const e=[];let r,n,s,i,o=0,c=!1;const l=new D({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();r=z.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new R({async pull(t){if(c){if(!i){const e=await n.getFile();i=e.stream().getReader()}const{value:e,done:r}=await i.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=Va,directoryName:r=Ha,getDirectory:n}=e;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=n||(()=>A.storage.getDirectory());let a;function o(){return a||(a=g.resolve(s()).then(e=>e.getDirectoryHandle(r,{create:!0}))),a}return()=>{const e=[];let r,n,s=0,a=!1,c=0,l=0;const d=new D({async write(i){a?(n.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();r=z.randomUUID();const s=await t.getFileHandle(r,{create:!0});n=await s.createSyncAccessHandle(),a=!0;for(const t of e)n.write(t,{at:c}),c+=t.length;e.length=0})())},close(){n&&n.flush()}});let w=0;return{writable:d,readable:new R({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const r=new f(i.min(524288,e)),s=n.read(r,{at:l});s?(l+=s,t.enqueue(r.subarray(0,s))):t.close()}else w<e.length?t.enqueue(e[w++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(n){try{n.close()}catch{}n=null}if(r){try{const e=await o();await e.removeEntry(r)}catch{}r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:r,codecURI:n,CompressionStream:a,DecompressionStream:i,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>I||typeof r!=pe||!r.length)throw new u(we);if(he.includes(t))throw new u(ue);const c=typeof a==re||typeof i==re;if(!(c||typeof n==pe&&n.length))throw new u(we);me.set(t,{compressionMethod:t,format:r,codecURI:n,versionNeeded:o}),c&&be(r,{CompressionStream:a,DecompressionStream:i})},e.resetConfiguration=()=>{for(const e of ie)delete oe[e];r.assign(oe,ae)},e.terminateWorkers=async()=>{await g.allSettled(cr.map(e=>(gr(e),e.terminate()))),qt=$},e.unregisterCodec=e=>{const t=me.get(e);if(t){let r;me.delete(e),me.forEach(e=>r=r||e.format==t.format),r||ye.delete(t.format)}}});
|
|
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:l,Response:d,URL:w,Error:u,Uint8Array:f,Uint16Array:p,Uint32Array:h,DataView:m,Blob:y,Promise:g,TextEncoder:S,TextDecoder:b,document:x,crypto:z,btoa:F,TransformStream:E,ReadableStream:R,WritableStream:D,CompressionStream:k,DecompressionStream:v,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var C=void 0!==x?x.currentScript:null;const U=4294967295,I=65535,O=255,M=67324752,N=134695760,_=N,L=33639248,P=101010256,W=101075792,Z=117853008,V=22,H=20,B=21589,j=2048,q=16384,K=2048,Y=1024,G="/",X=30,J=new o(2107,11,31,23,59,58),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function",ne=new f;let se=2;try{typeof A!=te&&A.hardwareConcurrency&&(se=A.hardwareConcurrency)}catch{}const ae={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,workerStartupTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,transferStreams:!0,CompressionStream:typeof k!=te&&k,DecompressionStream:typeof v!=te&&v},ie=["baseURI","wasmURI","workerURI","chunkSize","maxWorkers","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useCompressionStream","useWebWorkers","transferStreams","CompressionStream","DecompressionStream","CompressionStreamZlib","DecompressionStreamZlib"],oe={...ae};function ce(){return oe}function le(e){return i.max(e.chunkSize,64)}function de(e){for(const t of ie){const r=e[t];r!==$&&(oe[t]=r)}}const we="Invalid codec definition",ue="Reserved compression method",fe="Invalid codec module",pe="string",he=[0,8,9,99],me=new c,ye=new c;function ge(e){return me.get(e)}function Se(e){return ye.get(e)}function be(e,t){const{CompressionStream:r,DecompressionStream:n}=t;if(typeof r!=re&&typeof n!=re)throw new u(fe);ye.set(e,{CompressionStream:r,DecompressionStream:n})}const xe=[[],[],[],[],[],[],[],[]];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;xe[0][e]=t}for(let e=0;256>e;e++)for(let t=1;8>t;t++){const r=xe[t-1][e];xe[t][e]=r>>>8^xe[0][255&r]}const[ze,Fe,Ee,Re,De,ke,ve,Ae]=xe;class Te{constructor(e){this.o=e||-1}append(e){let t=0|this.o;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=Ae[255&e]^ve[e>>>8&255]^ke[e>>>16&255]^De[e>>>24&255]^Re[255&r]^Ee[r>>>8&255]^Fe[r>>>16&255]^ze[r>>>24&255]}}for(;r>n;n++)t=t>>>8^ze[255&(t^e[n])];this.o=t}get(){return~this.o}}class Ce extends E{constructor(){let e;const t=new Te;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 Ue(e){if(typeof S==te){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 S).encode(e)}function Ie(e,t){const r=new f(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Oe(e){return e.byteOffset||e.byteLength!=e.buffer.byteLength?new f(e):e}function Me(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Ne={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],n=Ne.l(r);return 32===n?e.concat(t):Ne.h(t,n,0|r,e.slice(0,e.length-1))},m(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Ne.l(r)},S(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]=Ne.F(t,e[r-1]&2147483648>>t-1,1)),e},F:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,l:e=>i.round(e/1099511627776)||32,h(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=Ne.l(s);return n.push(Ne.F(t+a&31,t+a>32?r:n.pop(),1)),n}},_e={bytes:{R(e){const t=Ne.m(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},D(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(Ne.F(8*(3&r),n)),t}}},Le=class{constructor(e){const t=this;t.blockSize=512,t.v=[1732584193,4023233417,2562383102,271733878,3285377520],t.A=[1518500249,1859775393,2400959708,3395469782],e?(t.T=e.T.slice(0),t.C=e.C.slice(0),t.U=e.U):t.reset()}reset(){const e=this;return e.T=e.v.slice(0),e.C=[],e.U=0,e}update(e){const t=this;"string"==typeof e&&(e=_e.I.D(e));const r=t.C=Ne.concat(t.C,e),n=t.U,s=t.U=n+Ne.m(e);if(s>9007199254740991)throw new u("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.O(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}M(){const e=this;let t=e.C;const r=e.T;t=Ne.concat(t,[Ne.F(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e.U/4294967296)),t.push(0|e.U);t.length;)e.O(t.splice(0,16));return e.reset(),r}N(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}_(e,t){return t<<e|t>>>32-e}O(e){const r=this,n=r.T,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let a=n[0],o=n[1],c=n[2],l=n[3],d=n[4];for(let e=0;79>=e;e++){16>e||(s[e]=r._(1,s[e-3]^s[e-8]^s[e-14]^s[e-16]));const t=r._(5,a)+r.N(e,o,c,l)+d+s[e]+r.A[i.floor(e/20)]|0;d=l,l=c,c=r._(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]+l|0,n[4]=n[4]+d|0}},Pe={importKey:e=>new Pe.L(_e.bytes.D(e)),P(e,t,r,n){if(r=r||1e4,0>n||0>r)throw new u("invalid params to pbkdf2");const s=1+(n>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(s),w=new m(d);let f=0;const p=Ne;for(t=_e.bytes.D(t),l=1;(s||1)>f;l++){for(a=i=e.encrypt(p.concat(t,[l])),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++)w.setInt32(f,a[o]),f+=4}return d.slice(0,n/8)},L:class{constructor(e){const t=this,r=t.W=Le,n=[[],[]];t.Z=[new r,new r];const s=t.Z[0].blockSize/32;e.length>s&&(e=(new r).update(e).M());for(let t=0;s>t;t++)n[0][t]=909522486^e[t],n[1][t]=1549556828^e[t];t.Z[0].update(n[0]),t.Z[1].update(n[1]),t.V=new r(t.Z[0])}reset(){const e=this;e.V=new e.W(e.Z[0]),e.H=!1}update(e){this.H=!0,this.V.update(e)}digest(){const e=this,t=e.V.M(),r=new e.W(e.Z[1]).update(t).M();return e.reset(),r}encrypt(e){if(this.H)throw new u("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},We=typeof z!=te&&typeof z.getRandomValues==re,Ze="Invalid password",Ve="Invalid signature",He="zipjs-abort-check-password";function Be(e){if(We)return z.getRandomValues(e);throw new u("Crypto API not supported")}const je=16,qe={name:"PBKDF2"},Ke=r.assign({hash:{name:"HMAC"}},qe),Ye=r.assign({iterations:1e3,hash:{name:"SHA-1"}},qe),Ge=["deriveBits"],Xe=[8,12,16],Je=[16,24,32],Qe=10,$e=[0,0,0,0],et=typeof z!=te,tt=et&&z.subtle,rt=et&&typeof tt!=te,nt=_e.bytes,st=class{constructor(e){const t=this;t.B=[[[],[],[],[],[]],[[],[],[],[],[]]],t.B[0][0][0]||t.j();const r=t.B[0][4],n=t.B[1],s=e.length;let a,i,o,c=1;if(4!==s&&6!==s&&8!==s)throw new u("invalid aes key size");for(t.A=[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.K(e,0)}decrypt(e){return this.K(e,1)}j(){const e=this.B[0],t=this.B[1],r=e[4],n=t[4],s=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(s[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,n[a]=d,l=s[c=s[o=s[d]]];let w=16843009*l^65537*c^257*o^16843008*d,u=257*s[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=u=u<<24^u>>>8,t[r][a]=w=w<<24^w>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}K(e,t){if(4!==e.length)throw new u("invalid aes block size");const r=this.A[t],n=r.length/4-2,s=[0,0,0,0],a=this.B[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let w,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],S=4;for(let e=0;n>e;e++)w=i[h>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&g]^r[S],f=i[m>>>24]^o[y>>16&255]^c[g>>8&255]^l[255&h]^r[S+1],p=i[y>>>24]^o[g>>16&255]^c[h>>8&255]^l[255&m]^r[S+2],g=i[g>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&y]^r[S+3],S+=4,h=w,m=f,y=p;for(let e=0;4>e;e++)s[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[y>>8&255]<<8^d[255&g]^r[S++],w=h,h=m,m=y,y=g,g=w;return s}},at=class{constructor(e,t){this.Y=e,this.G=t,this.X=t}reset(){this.X=this.G}update(e){return this.J(this.Y,e,this.X)}$(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}ee(e){0===(e[0]=this.$(e[0]))&&(e[1]=this.$(e[1]))}J(e,t,r){let n;if(!(n=t.length))return[];const s=Ne.m(t);for(let s=0;n>s;s+=4){this.ee(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 Ne.S(t,s)}},it=Pe.L;let ot=et&&rt&&typeof tt.importKey==re,ct=et&&rt&&typeof tt.deriveBits==re;class lt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r,checkPasswordOnly:n}){super({start(){wt(this,e,t,r)},async transform(e,t){const r=this,{password:s,strength:a,te:i,ready:o}=r;s?(await(async(e,t,r,n)=>{const s=await ft(e,t,r,ht(n,0,Xe[t])),a=ht(n,Xe[t]);if(s[0]!=a[0]||s[1]!=a[1])throw new u(Ze)})(r,a,s,ht(e,0,Xe[a]+2)),e=ht(e,Xe[a]+2),n?t.error(new u(He)):i()):await o;const c=new f(e.length-Qe-(e.length-Qe)%je);t.enqueue(ut(r,e,c,0,Qe,!0))},async flush(e){const{re:t,ne:r,pending:n,ready:s}=this;if(r&&t){await s;const a=ht(n,0,n.length-Qe),i=ht(n,n.length-Qe);let o=ne;if(a.length){const e=yt(nt,a);r.update(e);const n=t.update(e);o=mt(nt,n)}const c=ht(mt(nt,r.digest()),0,Qe);let l=n.length<Qe?1:0;for(let e=0;Qe>e;e++)l|=c[e]^i[e];if(l)throw new u(Ve);e.enqueue(o)}}})}}class dt extends E{constructor({password:e,rawPassword:t,encryptionStrength:r}){let n;super({start(){wt(this,e,t,r)},async transform(e,t){const r=this,{password:n,strength:s,te:a,ready:i}=r;let o=ne;n?(o=await(async(e,t,r)=>{const n=Be(new f(Xe[t]));return Ie(n,await ft(e,t,r,n))})(r,s,n),a()):await i;const c=new f(o.length+e.length-e.length%je);c.set(o,0),t.enqueue(ut(r,e,c,o.length,0))},async flush(e){const{re:t,ne:r,pending:s,ready:a}=this;if(r&&t){await a;let i=ne;if(s.length){const e=t.update(yt(nt,s));r.update(e),i=mt(nt,e)}n.signature=mt(nt,r.digest()).slice(0,Qe),e.enqueue(Ie(i,n.signature))}}}),n=this}}function wt(e,t,n,s){r.assign(e,{ready:new g(t=>e.te=t),password:pt(t,n),strength:s-1,pending:ne})}function ut(e,t,r,n,s,a){const{re:i,ne:o,pending:c}=e;c.length&&(t=Ie(c,t));const l=t.length-s;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,n+(l-l%je)),d=0;l-je>=d;d+=je){const e=yt(nt,ht(t,d,d+je));a&&o.update(e);const s=i.update(e);a||o.update(s),r.set(mt(nt,s),d+n)}return e.pending=ht(t,d),r}async function ft(e,n,s,a){e.password=null;const i=await(async(e,t,r,n,s)=>{if(!ot)return Pe.importKey(t);try{return await tt.importKey("raw",t,r,!1,s)}catch{return ot=!1,Pe.importKey(t)}})(0,s,Ke,0,Ge),o=await(async(e,t,r)=>{if(!ct)return Pe.P(t,e.salt,Ye.iterations,r);try{return await tt.deriveBits(e,t,r)}catch{return ct=!1,Pe.P(t,e.salt,Ye.iterations,r)}})(r.assign({salt:a},Ye),i,8*(2*Je[n]+2)),c=new f(o),l=yt(nt,ht(c,0,Je[n])),d=yt(nt,ht(c,Je[n],2*Je[n])),w=ht(c,2*Je[n]);return r.assign(e,{keys:{key:l,se:d,passwordVerification:w},re:new at(new st(l),t.from($e)),ne:new it(d)}),w}function pt(e,t){return t===$?Ue(e):t}function ht(e,t,r){return e.subarray(t,r)}function mt(e,t){return e.R(t)}function yt(e,t){return e.D(t)}class gt extends E{constructor({password:e,rawPassword:t,passwordVerification:r,checkPasswordOnly:n}){super({start(){bt(this,e,t,r)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=xt(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t[11]^r.passwordVerification))throw new u(Ze);e=e.subarray(12)}n?t.error(new u(He)):t.enqueue(xt(r,e))}})}}class St extends E{constructor({password:e,rawPassword:t,passwordVerification:r}){super({start(){bt(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=Be(new f(12));t[11]=r.passwordVerification,n=new f(e.length+t.length),n.set(zt(r,t),0),s=12}else n=new f(e.length),s=0;n.set(zt(r,e),s),t.enqueue(n)}})}}function bt(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 Te(s[0]),ie:new Te(s[2])}),n)for(let t=0;t<n.length;t++)Ft(e,n[t]);else for(let r=0;r<t.length;r++)Ft(e,t.charCodeAt(r))})(e,t,n)}function xt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=Et(e)^t[n],Ft(e,r[n]);return r}function zt(e,t){const r=new f(t.length);for(let n=0;n<t.length;n++)r[n]=Et(e)^t[n],Ft(e,t[n]);return r}function Ft(e,t){let[,r]=e.keys;e.ae.append([t]);const n=~e.ae.get();r=Dt(i.imul(Dt(r+Rt(n)),134775813)+1),e.ie.append([r>>>24]);const s=~e.ie.get();e.keys=[n,r,s]}function Et(e){const t=2|e.keys[2];return Rt(i.imul(t,1^t)>>>8)}function Rt(e){return 255&e}function Dt(e){return 4294967295&e}const kt="Invalid uncompressed size",vt="Invalid compressed data",At="deflate-raw";class Tt extends E{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:n}){super({});const{compressed:s,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l,deflate64:d,format:w}=e,u=this;let f,p,h,y=super.readable;const g=w&&Se(w),S=c&&s&&!d&&!g&&(!a||o)&&!(!i||!n);a&&!o||!c||S||(f=new Ce,y=_t(y,f)),s&&(g?y=Lt(y,Mt(g.CompressionStream,w,{level:l,chunkSize:t})):S?(h=new Ct,y=Lt(y,new n("gzip")),y=_t(y,h)):y=Nt(y,i,{level:l,chunkSize:t},n,r)),a&&(o?y=_t(y,new St(e)):(p=new dt(e),y=_t(y,p))),Ot(u,y,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=S?h.signature:new m(f.value.buffer).getUint32(0)),u.signature=e})}}class Ct extends E{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=Ie(r,e));const a=s-8,o=i.min(a,r.length);n.enqueue(Ie(r.subarray(0,o),e.subarray(0,a-o))),r=Ie(r.subarray(o),e.subarray(a-o))},flush(){const t=Me(r);e.signature=t.getUint32(0,!0),e.uncompressedSize=t.getUint32(4,!0)}}),e=this}}class Ut extends E{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:n}){super({});const{zipCrypto:s,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d,format:w}=e;let f,p,h=super.readable;if(a&&(s?h=_t(h,new gt(e)):(p=new lt(e),h=_t(h,p))),c){const e=w&&Se(w);h=e?Lt(h,Mt(e.DecompressionStream,w,{chunkSize:t})):Nt(h,l,{chunkSize:t,deflate64:d},n,r),h=(e=>{const t=e.getReader();return new R({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new u(vt);throw t.cause=e,t}const{value:n,done:s}=r;s?e.close():e.enqueue(n)},cancel:e=>t.cancel(e)})})(h)}a&&!s||!i||(f=new Ce,h=_t(h,f)),Ot(this,h,()=>{if((!a||s)&&i){const e=new m(f.value.buffer);if(o!=e.getUint32(0,!1))throw new u(Ve)}})}}const It=new c;function Ot(e,t,n){t=_t(t,new E({flush:n})),r.defineProperty(e,"readable",{get:()=>t})}function Mt(e,t,r){if(!e)throw new u("Compression method not supported");return new e(t,r)}function Nt(e,t,r,n,s){const a=t&&n?n:s||n,i=r.deflate64?"deflate64-raw":At;let o;try{o=new a(i,r)}catch(e){if(!t||!s||a==s)throw e;o=new s(i,r)}return Lt(e,o)}function _t(e,t){return e.pipeThrough(t)}function Lt(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 Pt="data",Wt="deflate",Zt="inflate";class Vt extends E{constructor(e,t){super({});const n=this,{codecType:s}=e;let a;s.startsWith(Wt)?a=Tt:s.startsWith(Zt)&&(a=Ut),n.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new E({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(n,{inputSize:i})}}),d=new E({transform(t,r){if(t&&t.length&&(r.enqueue(t),n.outputSize+=t.length,e.outputSize!==$&&n.outputSize>e.outputSize))throw new u(kt)},flush(){const{signature:e}=o;r.assign(n,{signature:e,inputSize:i})}});r.defineProperty(n,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class Ht extends E{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 Bt={type:"module"},jt="error";let qt,Kt,Yt,Gt,Xt=!0;try{Xt=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Jt{constructor(e,{readable:t,writable:n},{options:s,config:a,oe:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:w}=i;return r.assign(e,{ce:!0,le:(e.le||0)+1,readable:t.pipeThrough(new Ht(le(a))).pipeThrough(new Qt(i),{signal:w}),writable:n,options:r.assign({},s),workerURI:l,transferStreams:c,terminate:()=>new g(t=>{const{de:r,ce:n}=e;r?(n?e.we=t:(r.terminate(),t()),e.ue=null):t()}),fe(){if(e.ce){const{we:t}=e;t&&(e.we=null,e.pe=!0,e.de.terminate(),t()),e.ce=!1,d(e)}}}),qt===$&&(qt=typeof T!=te),(o&&qt?tr:er)(e,a)}}class Qt extends E{constructor({onstart:e,onprogress:t,size:r,onend:n}){let s=0;super({async start(){e&&await $t(e,r)},async transform(e,n){s+=e.length,t&&await $t(t,s,r),n.enqueue(e)},async flush(){n&&await $t(n,s)}})}}async function $t(e,...t){try{await e(...t)}catch{}}function er(e,t){return{run:()=>rr(e,t)}}function tr(e,t){const{baseURI:n,chunkSize:a,workerStartupTimeout:i}=t;let{wasmURI:o}=t;if(!e.ue){let c;typeof o==re&&(o=o());try{c=sr(e.workerURI,n,e)}catch{return qt=!1,er(e,t)}r.assign(e,{de:c,he:!1,pe:!1,ue:{run:async()=>{try{return await(async(e,t)=>{let n,a;const i=new g((e,t)=>{n=e,a=t});r.assign(e,{reader:null,writer:null,me:n,ye:a,result:i});const{readable:o,options:c}=e,{writable:l,closed:d,ge:w}=(e=>{const t=new AbortController,{writable:r,readable:n}=new E,s=n.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return s.catch(()=>{}),{writable:r,closed:s,ge:()=>t.abort()}})(e.writable);let f;try{f=or({type:"start",options:c,config:t,readable:o,writable:l},e)}catch(t){w();try{await d}catch{}throw e.fe(),t}f||r.assign(e,{reader:o.getReader(),writer:l.getWriter()});const{workerStartupTimeout:p}=t;e.he||!s.isFinite(p)||0>p||(e.Se=setTimeout(()=>(e=>{if(e.Se=null,e.he)return;const{ye:t,writer:r}=e;if(nr(e),e.de=null,t){const e=new u("Worker startup timeout");e.be=!0,t(e),r&&r.releaseLock()}})(e),p));try{const e=await i;return await h(),await d,e}catch(e){await h(),w();try{await d}catch{}throw e}async function h(){if(!f&&!l.locked)try{await l.getWriter().close()}catch{}}})(e,{chunkSize:a,wasmURI:o,baseURI:n,workerStartupTimeout:i})}catch(r){if(r&&r.be){qt=!1;const{reader:r}=e;return r&&r.releaseLock(),e.reader=null,e.writer=null,rr(e,t)}throw r}}}})}return e.ue}async function rr({options:e,readable:t,writable:r,fe:n},s){let a;try{if(e.compressed&&!e.format){const t=e.codecType.startsWith(Wt),r=t?s.CompressionStreamZlib:s.DecompressionStreamZlib,n=t?s.CompressionStream:s.DecompressionStream;if(e.useCompressionStream){if(r&&r.xe&&!(e=>{if(!e)return!1;let t=It.get(e);if(t===$){try{new e(At),t=!0}catch{t=!1}It.set(e,t)}return t})(n))try{await void 0}catch{}}else try{await void 0}catch{r&&!r.xe||(e.useCompressionStream=!0)}}a=new Vt(e,s),await t.pipeThrough(a).pipeThrough(new Ht(le(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()}}function nr(e){const{de:t}=e;if(t)try{t.terminate()}catch{}e.ue=null}function sr(e,t,n,s,a=!0){let i,o,c;if(Yt===$||Kt!==e){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){s===$&&(s=!1),s&&(c=Bt);try{i=new T(o,c)}catch(a){if(d)try{w.revokeObjectURL(o)}catch{}if(r&&d)return sr(e,t,n,s,!1);if(s)throw a;return sr(e,t,n,!0,!1)}}else{s===$&&(s=!0),s&&(c=Bt);try{o=new w(o,t)}catch{}try{i=new T(o,c)}catch(r){if(s)throw r;return sr(e,t,n,!1,a)}}Kt=e,Yt=o,Gt=c}else i=new T(Yt,Gt);return i.addEventListener("message",e=>{n.he=!0,ar(n),(async({data:e},t)=>{const{type:n,value:s,messageId:a,result:i,error:o}=e,{reader:c,writer:l,me:d,ye:w,fe:p,le:h}=t,m=()=>t.le!=h;try{if(o){const{message:e,stack:t,code:n,name:s,outputSize:a}=o,i=new u(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()||or({type:Pt,value:e,done:r,messageId:a},t)}n==Pt&&(await l.ready,await l.write(new f(s)),m()||or({type:"ack",messageId:a},t)),"close"==n&&y(null,i)}}catch(o){m()||(nr(t),y(o))}function y(e,t){m()||(e?w(e):d(t),l&&l.releaseLock(),p())}})(e,n)}),i.addEventListener(jt,e=>ir(e,n)),i.addEventListener("messageerror",e=>ir(e,n)),i}function ar(e){const{Se:t}=e;t&&(clearTimeout(t),e.Se=null)}function ir(e,t){e.preventDefault&&e.preventDefault(),ar(t);const{he:n,ye:s,writer:a,fe:i}=t;if(nr(t),n||(t.de=null),s){let t=e.error||new u(e.message||jt);n||(t=r.assign(new u(t.message||jt),{be:!0})),s(t),a&&a.releaseLock(),n&&i()}}function or(e,{de:t,writer:r,transferStreams:n,he:s}){try{const{value:r,readable:a,writable:i}=e,o=[];if(r&&(e.value=Oe(r),o.push(e.value.buffer)),n&&Xt&&s?(a&&o.push(a),i&&o.push(i)):e.readable=e.writable=null,o.length)try{return t.postMessage(e,o),!0}catch{Xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let cr=[];const lr=[];let dr,wr,ur=0;async function fr(e,t){const{options:r,config:n}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d,format:u,codecURI:f}=r,{workerURI:p,maxWorkers:h}=n;u&&(f&&(r.codecURI=((e,t)=>{try{return new w(e,t).toString()}catch{return e}})(f,n.baseURI)),await(async(e,t)=>{!ye.has(e)&&t&&be(e,await(import(t)))})(u,r.codecURI)),t.transferStreams=a||a===$&&n.transferStreams;const m=!c&&!l&&!d,y=u===$||!!r.codecURI;return t.useWebWorkers=!m&&y&&(i||i===$&&n.useWebWorkers),t.workerURI=t.useWebWorkers&&p?p:$,r.useCompressionStream=o||o===$&&n.useCompressionStream,(await(async()=>{const r=cr.find(e=>!e.ce);if(r)return gr(r),new Jt(r,e,t,S);if(cr.length<h){const r={ze:ur};return ur++,cr.push(r),new Jt(r,e,t,S)}return new g(r=>{lr.push({resolve:r,stream:e,Fe:t}),wr=n.workerStarvationTimeout,pr()})})()).run();function S(e){if(hr(),lr.length){const[{resolve:t,stream:r,Fe:n}]=lr.splice(0,1);t(new Jt(e,r,n,S)),pr()}else e.de?(gr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:n}=r;s.isFinite(n)&&n>=0&&(e.pe?e.pe=!1:e.Ee=setTimeout(async()=>{cr=cr.filter(t=>t!=e);try{await e.terminate()}catch{}},n))})(e,t)):cr=cr.filter(t=>t!=e)}}function pr(){!dr&&lr.length&&s.isFinite(wr)&&wr>=0&&(dr=setTimeout(mr,wr))}function hr(){dr&&(clearTimeout(dr),dr=null)}function mr(){if(dr=null,lr.length){const[{resolve:e,stream:t,Fe:n}]=lr.splice(0,1),s=r.assign({},n,{useWebWorkers:!1,workerURI:$});e(new Jt({},t,s,yr)),pr()}}function yr(){hr(),pr()}function gr(e){const{Ee:t}=e;t&&(clearTimeout(t),e.Ee=null)}const Sr="HTTP error ",br="HTTP Range not supported",xr="HTTP resource changed",zr="Writer iterator completed too soon",Fr="Writer not initialized",Er="Content-Range",Rr="Range",Dr="GET",kr="bytes",vr=16777216,Ar="writable",Tr=Symbol();class Cr{constructor(){this.size=0}init(){this.initialized=!0}}class Ur extends Cr{get readable(){return this.createReadable()}createReadable({offset:e=0,size:t,chunkSize:r=le(ce())}={}){const n=this;let s=0;return new R({async pull(a){const o=t===$?r:i.min(r,t-s),c=await cn(n,e+s,o);a.enqueue(c),s+r>t||t===$&&!c.length&&o?a.close():s+=r}})}}class Ir extends Cr{constructor(){super();const e=this,t=new D({write(t){if(!e.initialized)throw new u(Fr);return e.writeUint8Array(Oe(t))}});r.defineProperty(e,Ar,{get:()=>t})}writeUint8Array(){}}let Or,Mr;class Nr extends Ur{constructor(e){super(),r.assign(this,{blob:e,size:e.size}),Mr||(Mr=(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();Or=1==t}catch{Or=!1}})())}createReadable(e){const{blob:t,size:r}=this,{offset:n=0,size:s=r-n}=e||{};return n||r>s?Or?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 _r extends Cr{constructor(e){super();const t=this,n=new E,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(t,Ar,{get:()=>n.writable}),t.blob=new d(n.readable,{headers:s}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class Lr extends Ur{constructor(e,t){super(),Wr(this,e,t)}async init(){await Zr(this,$r,Gr),super.init()}createReadable(e){const t=this,{useRangeHeader:r,forceRangeRequests:n,size:a}=t;if((r||n)&&a!==$){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 R({start:()=>l(),async pull(e){n||await l();const{value:t,done:r}=await n.read();if(r)throw new u(br);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=$,await e.cancel()})(),c||e.close())},cancel:e=>n&&n.cancel(e)});async function l(){const t=i.min(e.maximumRangeSize,c),r=await $r(Dr,e,Kr(e,a,t));if(206!=r.status)throw new u(br);const l=r.headers.get(Er);if(l){const e=s(l.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=a)throw new u(br)}qr(e,r),jr(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 Vr(this,e,t,$r,Gr)}}class Pr extends Ur{constructor(e,t){super(),Wr(this,e,t)}async init(){await Zr(this,en,Xr),super.init()}readUint8Array(e,t){return Vr(this,e,t,en,Xr)}}function Wr(e,t,n){const{preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,checkResourceChanges:c=!0,maximumRangeSize:l=vr,fetch:d}=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:l,fetch:d})}async function Zr(e,t,r){const{url:n,preventHeadRequest:s,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=e;if((e=>{const{baseURI:t}=ce(),{protocol:r}=new w(e,t);return"http:"==r||"https:"==r})(n)&&(a||i)&&(void 0===s||s)){const n=await t(Dr,e,Kr(e,o?-22:void 0)),s=n.headers.get("Accept-Ranges");if(!(i||s&&s.toLowerCase()==kr))throw new u(br);{if(o){const t=new f(await n.arrayBuffer());206==n.status&&t.length==V&&(e.Re=t)}jr(e,n);const s=Hr(n);s===$?await Qr(e,t,r):e.size=s}}else await Qr(e,t,r)}async function Vr(e,t,r,n,a){const{useRangeHeader:i,forceRangeRequests:o,Re:c,size:l,options:d}=e;if(i||o){if(c&&t==l-V&&r==V)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await n(Dr,e,Kr(e,t,r));if(206!=a.status)throw new u(br);const i=a.headers.get(Er);if(i){const e=s(i.trim().split(/[\s-]+/)[1]);if(!s.isNaN(e)&&e!=t)throw new u(br)}qr(e,a),jr(e,a);const o=new f(await a.arrayBuffer());if(o.length!=r)throw new u(br);return o}return ne}{const{data:n}=e;return n||await a(e,d),e.data.subarray(t,t+r)}}function Hr(e){const t=e.headers.get(Er);if(t){const e=t.trim().split(/\s*\/\s*/)[1];if(e&&"*"!=e){const t=s(e);if(!s.isNaN(t))return t}}}function Br({headers:e}){return{De:e.get("Etag")||$,lastModified:e.get("Last-Modified")||$}}function jr(e,t){const{checkResourceChanges:r,ke:n}=e;r&&!n&&206==t.status&&(e.ke=Br(t))}function qr(e,t){const{checkResourceChanges:n,ke:s,size:a}=e;if(n){const e=Hr(t);if(e!==$&&a!==$&&e!=a)throw new u(xr);if(s){const e=Br(t);if(r.entries(s).some(([t,r])=>r!==$&&e[t]!==$&&r!=e[t]))throw new u(xr)}}}function Kr(e,t=0,n=1){return r.assign({},Yr(e),{[Rr]:kr+"="+(0>t?t:t+"-"+(t+n-1))})}function Yr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Gr(e){await Jr(e,$r)}async function Xr(e){await Jr(e,en)}async function Jr(e,t){const r=await t(Dr,e,Yr(e));e.data=new f(await r.arrayBuffer()),e.size=e.data.length}async function Qr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const n=await t("HEAD",e,Yr(e)),a=n.headers.get("Content-Length");a&&!n.headers.get("Content-Encoding")?e.size=s(a):await r(e,e.options)}}async function $r(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 u(br):new u(Sr+(i.statusText||i.status))}function en(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 u(br):new u(Sr+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new u("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 tn extends Ur{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new Pr(e,t):new Lr(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 rn extends Ur{constructor(e){super(),this.ve=e}async init(){const e=this,{ve:t}=e;e.Ae=0,await g.all(t.map(e=>on(e))),e.Te=t.map(t=>{const r=e.size;return e.size+=t.size,r}),super.init()}Ce(e){const{Te:t,size:r}=this,n=t[e];return n===$?r:n}async readUint8Array(e,t){const r=this,{ve: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=Ie(await cn(c,o,a),await r.readUint8Array(e+a,t-a))}else s=await cn(c,o,t)}else s=ne;return r.Ae=i.max(a,r.Ae),s}}class nn extends Cr{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===Tr)return void(i&&await l());const{availableSize:r}=n;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new u(zr);s=r,s.size=0,s.maxSize&&(n.maxSize=s.maxSize),n.availableSize=n.maxSize,await on(s),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await d())},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 l(){await d(),n.diskOffset+=s.size,n.diskNumber++,i=null,n.availableSize=n.maxSize}async function d(){await i.close()}r.defineProperty(n,Ar,{get:()=>o})}async closeDisk(){const e=this.writable.getWriter();try{await e.ready,await e.write(Tr)}finally{e.releaseLock()}}}class sn{constructor(e){return t.isArray(e)&&(e=new rn(e)),e instanceof R&&(e={readable:e}),e}}class an{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new nn(e)),e instanceof D&&(e={writable:e}),e.size===$&&(e.size=0),e}}async function on(e,t){if(!e.init||e.initialized)return g.resolve();await e.init(t)}function cn(e,t,r){return e.readUint8Array(t,r)}const ln="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function dn(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ln[e[r]];return t}})(e):new b(t,{ignoreBOM:!0}).decode(e)}const wn="filename",un="rawFilename",fn="comment",pn="rawComment",hn="uncompressedSize",mn="compressedSize",yn="offset",gn="diskNumberStart",Sn="lastModDate",bn="rawLastModDate",xn="lastAccessDate",zn="creationDate",Fn="rawCreationDate",En="internalFileAttributes",Rn="externalFileAttributes",Dn="msdosAttributesRaw",kn="msdosAttributes",vn="msDosCompatible",An="zip64",Tn="encrypted",Cn="version",Un="versionMadeBy",In="zipCrypto",On="directory",Mn="executable",Nn="compressionMethod",_n="signature",Ln="extraField",Pn="unixMode",Wn="setuid",Zn="setgid",Vn="sticky",Hn=[wn,un,hn,mn,Sn,bn,fn,pn,xn,zn,Fn,yn,gn,En,Rn,Dn,kn,vn,An,Tn,Cn,Un,In,On,Mn,Nn,_n,Ln,"extraFieldUnix","extraFieldInfoZip","uid","gid",Pn,Wn,Zn,Vn,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Bn{constructor(e){Hn.forEach(t=>this[t]=e[t])}}const jn="password",qn="rawPassword",Kn="passThrough",Yn="signal",Gn="checkAmbiguity",Xn="useWebWorkers",Jn="useCompressionStream",Qn="transferStreams",$n="preventClose",es="offset",ts="usdz",rs="strictness",ns="strict",ss="tolerant",as="File format is not recognized",is="End of central directory not found",os="End of Zip64 central directory locator not found",cs="Central directory header not found",ls="Local file header not found",ds="Zip64 extra field not found",ws="File contains encrypted entry",us="Encryption method not supported",fs="Compression method not supported",ps="Split zip file",hs="Overlapping entry found",ms="Ambiguous archive",ys="Encrypted central directory is not supported",gs="utf-8",Ss="cp437",bs=[[hn,U],[mn,U],[yn,U],[gn,I]],xs={[I]:{Ue:Ks,bytes:4},[U]:{Ue:Ys,bytes:8}};class zs{constructor(e,t={}){r.assign(this,{reader:new sn(e),options:t,config:ce(),Ie:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:n}=t;const{config:s}=t;if(await on(n),n.size!==$&&n.readUint8Array||(n=new Nr(await new d(n.readable).blob()),await on(n)),n.size<V)throw new u(as);const a=Us(Vs(t,e,rs),Vs(t,e,Gn)),o=a==ns,c=a!=ss,w=((e,t)=>e!==$?e:t==ns?0:t==ss?1/0:I)(Vs(t,e,"maxAppendedDataSize"),a),{Oe:f,Me:p}=await(async(e,t,r)=>{const{size:n}=e,s=i.min(n,65557),a={count:Is};let o,c,l=0;for await(const[r,i,d,w,u]of _s(e,s)){const s=qs(r,w+20);if(u+V+s==n){const s=await Ps(e,r,i,w,u,n,a);if(s==Ns){if(o||(o=Ls(d,w,u)),l++,!t||l>1)break}else s!=Ms||c||(c=Ls(d,w,u))}}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,l,d]of _s(e,s)){const s=Ls(c,l,d);a||(a=s);const w=await Ps(e,t,i,l,d,n,r);if(w==Ns)return s;w!=Ms||o||(o=s)}return o||a})(e,r,a)),{Oe:o,Me:l}})(n,c,w);if(!f)throw Ks(Me(await cn(n,0,4)))==N?new u(ps):new u(is);c&&p>1&&Zs("multiple end of central directory records");const h=Me(f);let m=Ks(h,12),y=Ks(h,16);const S=f.offset,b=qs(h,20),x=S+V+b;n.size-x>w&&Zs("appended data");let z=qs(h,4);const F=n.Ae||0;let R,D,k,v=qs(h,6),A=qs(h,10),T=0;const C=y==U||m==U||A==I||v==I;if(y!=U&&v!=I&&(y+=Cs(n,v)),C){const e=f.offset<H?ne:await cn(n,f.offset-H,H),t=Me(e);if(e.length==H&&Ks(t,0)==Z){y=Cs(n,Ks(t,4))+Ys(t,8);let e=await cn(n,y,56),r=Me(e);const s=f.offset-H-56;if((56>e.length||Ks(r,0)!=W)&&y!=s&&s>=0){const t=y;y=s,y>t&&(T=y-t),e=await cn(n,y,56),r=Me(e)}if(56>e.length||Ks(r,0)!=W)throw new u(os);D=!0,k=Ys(r,4)>44,z==I?z=Ks(r,16):o&&z!=Ks(r,16)&&Zs("mismatched zip64 end of central directory record"),v==I?v=Ks(r,20):o&&v!=Ks(r,20)&&Zs("mismatched zip64 end of central directory record"),A==I?A=Ys(r,32):o&&A!=Ys(r,32)&&Zs("mismatched zip64 end of central directory record"),m==U?m=Ys(r,40):o&&m!=Ys(r,40)&&Zs("mismatched zip64 end of central directory record"),y=Cs(n,v)+Ys(r,48)+T}}const M=m,_=f.offset-(D?76:0);if(y<n.size||(T=n.size-y-m-V,y=n.size-m-V),F!=z)throw new u(ps);if(0>y)throw new u(as);let P=0,B=await cn(n,y,m),j=Me(B);if(m){if(4>B.length)throw new u(as);const e=_-m;if(y!=e&&v==z){let t=!(Ks(j,P)==L);if(t||0>e||e+4>n.size||(t=Ks(Me(await cn(n,e,4)),0)==L),t){const t=y;y=e,y>t&&(T+=y-t),B=await cn(n,y,m),j=Me(B)}}}const X=_-y;if(m==X||0>X||v!=z||(m=X,B=await cn(n,y,m),j=Me(B)),0>y||y>=n.size)throw new u(as);R=y;const J=Vs(t,e,"filenameEncoding"),Q=Vs(t,e,"commentEncoding"),ee=o?new l:$;let te;for(let a=0;A>a;a++){const c=new Es(n,s,t.options);if(P+46>B.length||Ks(j,P)!=L){if(0==a&&(k||Rs(j)))throw new u(ys);throw new u(cs)}Ds(c,j,P+6);const l=!!c.bitFlag.languageEncodingFlag,w=P+46,f=w+c.filenameLength,p=f+c.extraFieldLength,h=qs(j,P+4),m=!(h>>8),y=h>>8==3,S=B.subarray(w,f),b=qs(j,P+32),x=p+b,z=B.subarray(p,x),F=l,D=l,v=Ks(j,P+38),C=v&O,U={readOnly:!!(1&C),hidden:!!(2&C),system:!!(4&C),directory:!!(16&C),archive:!!(32&C)},M=Ks(j,P+42),N=Vs(t,e,"decodeText")||dn,_=F?gs:J||Ss,W=D?gs:Q||Ss;let Z=N(S,_);Z===$&&(Z=dn(S,_));let V=N(z,W);V===$&&(V=dn(z,W)),r.assign(c,{index:a,versionMadeBy:h,msDosCompatible:m,compressedSize:0,uncompressedSize:0,Ne:b,offset:M,diskNumberStart:qs(j,P+34),internalFileAttributes:qs(j,P+36),externalFileAttributes:v,msdosAttributesRaw:C,msdosAttributes:U,rawFilename:S,filenameUTF8:F,commentUTF8:D,rawExtraField:B.subarray(f,p),rawComment:z,filename:Z,comment:V}),ks(c,c,j,P+6),c.offset+=T,R=i.min(Cs(n,c.diskNumberStart)+c.offset,R),o&&(ee.has(c.filename)&&(te=!0),ee.add(c.filename));const H=c.externalFileAttributes>>16&I;c.unixMode===$&&16877&H&&(c.unixMode=H);const X=!!(c.unixMode&K),re=!!(c.unixMode&Y),ne=!!(512&c.unixMode),se=c.unixMode!==$?!!(73&c.unixMode):y&&!!(73&H),ae=c.unixMode!==$&&(61440&c.unixMode)==q,ie=(61440&H)==q;r.assign(c,{setuid:X,setgid:re,sticky:ne,unixExternalUpper:H,internalFileAttribute:c.internalFileAttributes,externalFileAttribute:c.externalFileAttributes,executable:se,directory:ae||ie||m&&U.directory||c.filename.endsWith(G)&&!c.uncompressedSize,zipCrypto:c.encrypted&&!c.extraFieldAES});const oe=new Bn(c);oe.getData=(e,r)=>c.getData(e,oe,t.Ie,r),oe.arrayBuffer=async e=>{const r=new E,[n]=await g.all([new d(r.readable).arrayBuffer(),c.getData(r,oe,t.Ie,e)]);return n},P=x;const{onprogress:ce}=e;if(ce)try{await ce(a+1,A,new Bn(c))}catch{}yield oe}o&&P!=M&&Zs("trailing central directory data"),te&&Zs("duplicate filename"),o&&(T||A&&R>0)&&Zs("prepended data");const re=Vs(t,e,"extractPrependedData"),se=Vs(t,e,"extractAppendedData");return re&&(t.prependedData=R>0?await cn(n,0,R):ne),t.comment=b?await cn(n,S+V,b):ne,se&&(t.appendedData=x<n.size?await cn(n,x,n.size-x):ne),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class Fs{constructor(e={}){const{readable:t,writable:r}=new E,n=new zs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await n.next();if(t)return e.close();const s={...r,readable:(()=>{const{readable:e,writable:t}=new E;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete s.getData,e.enqueue(s)}}),this.writable=r}}class Es{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:l,extraFieldZip64:d,compressionMethod:w,config:f,bitFlag:p,signature:h,rawLastModDate:m,uncompressedSize:y,compressedSize:g}=s,{dataDescriptor:S}=p,b=t.localDirectory={},x=Cs(a,c)+o,z=await cn(a,x,X),F=Me(z);let E=Vs(s,n,jn),R=Vs(s,n,qn);const k=Vs(s,n,Kn);if(E=E&&E.length&&E,R=R&&R.length&&R,l&&99!=l.originalCompressionMethod)throw new u(fs);const v=k?$:ge(w);if(0!=w&&8!=w&&9!=w&&!v&&!k)throw new u(fs);if(z.length<X||Ks(F,0)!=M)throw new u(ls);Ds(b,F,4);const{extraFieldLength:A,filenameLength:T}=b,C=Us(Vs(s,n,rs),Vs(s,n,Gn))==ns;let U=ne;if(C&&(T||A)){const e=await cn(a,x+X,T+A);U=e.subarray(0,T),b.rawExtraField=e.subarray(T)}else b.rawExtraField=A?await cn(a,x+X+T,A):ne;ks(s,b,F,4,!0),C&&((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,U);const{lastAccessDate:I,creationDate:N}=b;I&&(t.lastAccessDate=I),N&&(t.creationDate=N);const L=s.encrypted&&b.encrypted&&!k,P=L&&!l;if(k||(t.zipCrypto=P),L){if(!(64&~b.rawBitFlag))throw new u(us);if(!P&&(1>l.strength||l.strength>3))throw new u(us);if(!E&&!R)throw new u(ws)}const W=x+X+T+A,Z=g,V=a.createReadable({offset:W,size:Z}),H=Vs(s,n,Yn),B=Vs(s,n,"checkPasswordOnly");let j=Vs(s,n,"checkOverlappingEntry");const q=Vs(s,n,"checkOverlappingEntryOnly");q&&(j=!0);const{onstart:K,onprogress:Y,onend:G}=n,J=9==w;let Q=Vs(s,n,Jn);J&&(Q=!1);const ee={options:{codecType:Zt,password:E,rawPassword:R,zipCrypto:P,encryptionStrength:l&&l.strength,signed:Vs(s,n,"checkSignature")&&!k,passwordVerification:P&&(S?m>>>8&O:h>>>24&O),outputSize:k?g:y,signature:h,compressed:0!=w&&!k,encrypted:L,useWebWorkers:Vs(s,n,Xn),useCompressionStream:Q,transferStreams:Vs(s,n,Qn),deflate64:J,format:v?v.format:$,codecURI:v?v.codecURI:$,checkPasswordOnly:B},config:f,oe:{signal:H,size:Z,onstart:K,onprogress:Y,onend:G}};let te;j&&await(async({reader:e,_e:t,index:r,offset:n,signature:s,compressedSize:a,uncompressedSize:i,Le:o,dataDescriptor:c,extraFieldZip64:l,Ie:d})=>{let w=0;if(c&&(w=l?20:12),w){const r=await cn(e,o+a,w+4);if(r.length==w+4&&Ks(Me(r),0)==_){const e=Ks(Me(r),4);let n,o;l?(n=Ys(Me(r),8),o=Ys(Me(r),16)):(n=Ks(Me(r),8),o=Ks(Me(r),12)),(t.encrypted&&!t.zipCrypto||e==s)&&n==a&&o==i&&(w+=4)}}const f={start:n,end:o+a+w,_e:t};for(const[e,t]of d)if(e!=r&&f.start<t.end&&t.start<f.end){const e=new u(hs);throw e.Pe=t._e,e}d.set(r,f)})({reader:a,_e:t,index:i,offset:x,signature:h,compressedSize:g,uncompressedSize:y,Le:W,dataDescriptor:S||b.bitFlag.dataDescriptor,extraFieldZip64:d||b.extraFieldZip64,Ie:r});try{if(!q){B&&(e=new D),e=new an(e),await on(e,k?g:y),({writable:te}=e);const{outputSize:t}=await fr({readable:V,writable:te},ee);if(e.size+=t,t!=(k?g:y))throw new u(kt)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!B||t.message!=He)throw t}finally{Vs(s,n,$n)||!te||te.locked||await te.getWriter().close()}return B||q?$:e.getData?e.getData():te}}function Rs(e){const t=i.min(e.byteLength,1024)-3;for(let r=0;t>r;r++)if(134630224==Ks(e,r))return!0;return!1}function Ds(e,t,n){const s=e.rawBitFlag=qs(t,n+2),a=!(1&~s),i=Ks(t,n+6);r.assign(e,{encrypted:a,version:qs(t,n),bitFlag:{level:(6&s)>>1,dataDescriptor:!(8&~s),languageEncodingFlag:(s&j)==j},rawLastModDate:i,lastModDate:Hs(i),filenameLength:qs(t,n+22),extraFieldLength:qs(t,n+24)})}function ks(e,t,n,s,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Me(i);let w=0;try{for(;w<i.length;){const e=qs(d,w),t=qs(d,w+2);l.set(e,{type:e,data:i.slice(w+4,w+4+t)}),w+=4+t}}catch{}const f=qs(n,s+4);r.assign(t,{signature:Ks(n,s+10),compressedSize:Ks(n,s+14),uncompressedSize:Ks(n,s+18)});const p=l.get(1);p&&(((e,t)=>{t.zip64=!0;const r=Me(e.data),n=bs.filter(([e,r])=>t[e]==r),s=n.reduce((e,[,t])=>e+xs[t].bytes,0);if(e.data.length<s)throw new u(ds);for(let s=0,a=0;s<n.length;s++){const[i,o]=n[s],c=xs[o];t[i]=e[i]=c.Ue(r,a),a+=c.bytes}})(p,t),t.extraFieldZip64=p);const h=l.get(28789);h&&(vs(h,wn,un,t,e),t.extraFieldUnicodePath=h);const m=l.get(25461);m&&(vs(m,fn,pn,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y&&y.data.length>=7?(((e,t,n)=>{const s=Me(e.data),a=js(s,4);r.assign(e,{We:js(s,0),vendorId:js(s,2),strength:a,originalCompressionMethod:n,compressionMethod:qs(s,5)}),t.compressionMethod=e.compressionMethod})(y,t,f),t.extraFieldAES=y):t.compressionMethod=f;const g=l.get(10);g&&(((e,t)=>{const n=Me(e.data);let s,a=4;try{for(;a<e.data.length&&!s;){const t=qs(n,a),r=qs(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=Me(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:Bs(a),lastAccessDate:Bs(i),creationDate:Bs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(g,t),t.extraFieldNTFS=g);const S=l.get(30805);if(S)As(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(As(e,t,!0),t.extraFieldInfoZip=e)}const b=l.get(B);b&&(((e,t,r)=>{if(!e.data.length)return;const n=Me(e.data),s=js(n,0),a=[],i=[];r?(1&~s||(a.push(Sn),i.push(bn)),2&~s||(a.push(xn),i.push("rawLastAccessDate")),4&~s||(a.push(zn),i.push(Fn))):5>e.data.length||(a.push(Sn),i.push(bn));let c=1;a.forEach((r,s)=>{if(e.data.length>=c+4){const a=Ks(n,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[s];e[l]=a}c+=4})})(b,t,a),t.extraFieldExtendedTimestamp=b);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function vs(e,t,n,s,a){if(5>e.data.length)return void(e.valid=!1);const i=Me(e.data),o=new Te;o.append(a[n]);const c=Me(new f(4));c.setUint32(0,o.get(),!0);const l=Ks(i,1);r.assign(e,{version:js(i,0),[t]:dn(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ks(c,0)}),e.valid&&(s[t]=e[t],s[t+"UTF8"]=!0)}function As(e,t,n){try{const s=Me(e.data);let a,i;if(n){let t=0;const n=js(s,t++),o=js(s,t++);a=Ts(e.data.subarray(t,t+o)),t+=o;const c=js(s,t++);i=Ts(e.data.subarray(t,t+c)),r.assign(e,{version:n,uid:a,gid:i})}else 4>e.data.length||(a=qs(s,0),i=qs(s,2),r.assign(e,{uid:a,gid:i}));a!==$&&(t.uid=a),i!==$&&(t.gid=i)}catch{}}function Ts(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Cs(e,t){return e.Ce?e.Ce(t):0}function Us(e,t){return e===$?t?ns:"balanced":e}const Is=64,Os=0,Ms=1,Ns=2;async function*_s(e,t){const r=e.size-t,n=await cn(e,r,t),s=Me(n);for(let e=n.length-V;e>=0;e--)Ks(s,e)==P&&(yield[s,r,n,e,r+e])}function Ls(e,t,r){return{offset:r,buffer:e.slice(t,t+V).buffer}}async function Ps(e,t,r,n,s,a,i){const o=qs(t,n+10),c=Ks(t,n+12),l=Ks(t,n+16);if(o==I||c==U||l==U)return await Ws(e,t,r,s-H,a,i)==Z?Ns:Os;if(!o&&!c)return Ms;const d=qs(t,n+6);for(const n of[s-c,Cs(e,d)+l])if(await Ws(e,t,r,n,a,i)==L)return Ns;return Os}async function Ws(e,t,r,n,s,a){return 0>n||n+4>s?$:r>n?a.count>0?(a.count--,Ks(Me(await cn(e,n,4)),0)):$:Ks(t,n-r)}function Zs(e){const t=new u(ms);throw t.reason=e,t}function Vs(e,t,r){return t[r]===$?e.options[r]:t[r]}function Hs(e){const t=(4294901760&e)>>16,r=e&I;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 Bs(e){return new o(s(e/a(1e4)-a(116444736e5)))}function js(e,t){return e.getUint8(t)}function qs(e,t){return e.getUint16(t,!0)}function Ks(e,t){return e.getUint32(t,!0)}function Ys(e,t){return s(e.getBigUint64(t,!0))}var Gs=r.freeze({__proto__:null,ERR_AMBIGUOUS_ARCHIVE:ms,ERR_BAD_FORMAT:as,ERR_CENTRAL_DIRECTORY_NOT_FOUND:cs,ERR_ENCRYPTED:ws,ERR_ENCRYPTED_CENTRAL_DIRECTORY:ys,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:os,ERR_EOCDR_NOT_FOUND:is,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:ds,ERR_INVALID_COMPRESSED_DATA:vt,ERR_INVALID_PASSWORD:Ze,ERR_INVALID_SIGNATURE:Ve,ERR_INVALID_UNCOMPRESSED_SIZE:kt,ERR_LOCAL_FILE_HEADER_NOT_FOUND:ls,ERR_OVERLAPPING_ENTRY:hs,ERR_SPLIT_ZIP_FILE:ps,ERR_UNSUPPORTED_COMPRESSION:fs,ERR_UNSUPPORTED_ENCRYPTION:us,ZipReader:zs,ZipReaderStream:Fs});const Xs="File already exists",Js="Zip file comment exceeds 64KB",Qs="File entry comment exceeds 64KB",$s="File entry name exceeds 64KB",ea="Version exceeds 65535",ta="The strength must equal 1, 2, or 3",ra="Encryption is not supported in USDZ files",na="Extra field type exceeds 65535",sa="Extra field data exceeds 64KB",aa=-2147483648,ia=2147483647,oa="Zip64 is not supported (set the 'zip64' option to 'true')",ca="Undefined uncompressed size",la="Undefined reader",da="Zip file not empty",wa=new f([7,0,2,0,65,69,3,0,0]),ua="infozip",fa="unix";let pa=0;const ha=[];class ma{constructor(e,t={}){e=new an(e);const{availableSize:n=ee,maxSize:s=ee}=e,a=n>0&&n!==ee&&s>0&&s!==ee;r.assign(this,{writer:e,Ze:a,options:t,config:ce(),files:new c,Ve:new l,offset:t[es]===$?e.size||e.writable.size||0:t[es],He:t[es]===$?0:t[es]-(e.size||e.writable.size||0),Be:new l,je:0,qe:$})}async prependZip(e){if(this.Ve.size)throw new u(da);e=new sn(e),await on(e);const{ZipReader:t}=await g.resolve().then(()=>Gs),n=new t(e.readable),s=await n.getEntries();await n.close(),await on(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.Ve=new l(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:l,compressedSize:d,zip64:w}=e;let{compressionMethod:u,Ke:f,Ye:p,Ge:h,Xe:m,Je:y,rawExtraField:g}=e;const{level:S,languageEncodingFlag:b,dataDescriptor:x}=o;f=f||ne,p=p||ne,h=h||ne,m=m||ne,y=y||ne,g=g||ne,e.extraFieldAES&&(u=99);const z=Na(f,p,h,m,y,g),F=w&&l>=U,E=w&&d>=U,R=-7&La(S,b,x,c,u)|S<<1,{Qe:D,$e:k}=_a({version:t,bitFlag:R,compressionMethod:u,uncompressedSize:l,compressedSize:d,rawLastModDate:n,rawFilename:i,et:E,nt:F,extraFieldLength:z}),{signature:v}=e;return v!==$&&Ia(k,10,v),r.assign(e,{nt:F,et:E,st:w&&e.offset>=U,diskNumberStart:0,it:!1,Ke:f,Ye:p,Ge:h,Xe:m,Je:y,rawExtraField:g,extendedTimestamp:h.length>0||m.length>0,ot:1+(s?2:0)+(a?4:0),Qe:D,$e:k}),[e.filename,e]}))}async add(e="",t,n={}){const s=this;n=r.assign({},n);const{Be:c,config:l}=s;let d,w;pa<l.maxWorkers?pa++:await new g(e=>ha.push(e));try{if(e=e.trim(),Ta(s,n,On)&&!e.endsWith(G)&&(e+=G),s.Ve.has(e))throw new u(Xs);return s.Ve.add(e),w=!0,d=(async(e,t,n,s)=>{const c=((e,t,r)=>{t=t.trim();let n=Ta(e,r,vn),s=Ta(e,r,Un,n?20:768);const a=Ta(e,r,Mn),i=Ta(e,r,"uid"),o=Ta(e,r,"gid");let c=Ta(e,r,Pn),l=Ta(e,r,"unixExtraFieldType"),d=Ta(e,r,Wn),w=Ta(e,r,Zn),f=Ta(e,r,Vn);if(i!==$&&(0>i||i>U))throw new u("Invalid uid (must be integer 0..2^32-1)");if(o!==$&&(0>o||o>U))throw new u("Invalid gid (must be integer 0..2^32-1)");if(c!==$&&(0>c||c>I))throw new u("Invalid UNIX mode (must be integer 0..65535)");if(l!==$&&l!==ua&&l!==fa)throw new u("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===fa&&(i!==$&&i>I||o!==$&&o>I))throw new u("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==$||i===$&&o===$||(l=ua);let p=Ta(e,r,Dn),h=Ta(e,r,kn);const m=p!==$||h!==$;if(i!==$||o!==$||c!==$||l?(n=!1,s=s&I|768):m&&(n=!0,s&=O),p!==$&&(0>p||p>O))throw new u("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new u("Invalid msdosAttributes (must be an object with boolean flags)");if(s>I)throw new u(ea);let y=Ta(e,r,Rn);const g=y!==$;g||(y=0),!r[On]&&t.endsWith(G)&&(r[On]=!0);const S=Ta(e,r,On);let b;if(S?(t.endsWith(G)||(t+=G),g||(y=16,n||(y|=16877<<16))):n||g||(y=a?493<<16:27525120),!n){const e=c!==$||!!(d||w||f);b=y>>16&I,c=c===$?b:c&I,d?c|=K:d=!!(c&K),w?c|=Y:w=!!(c&Y),f?c|=512:f=!!(512&c),g&&!e||(S&&(c|=q),y=(c&I)<<16|y&I)}return({msdosAttributesRaw:p,msdosAttributes:h}=((e,t)=>{if(e!==$)e&=O;else if(t!==$){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&O}return t===$&&(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&U|p&O),{name:t,ct:{versionMadeBy:s,msDosCompatible:n,externalFileAttributes:y,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:w,sticky:f,msdosAttributesRaw:p,msdosAttributes:h}}})(e,t,s);({name:t}=c);const l=((e,t,r)=>{const n=Ta(e,r,"encodeText",Ue);let s=n(t);if(s===$&&(s=Ue(t)),Na(s)>I)throw new u($s);const a=r[fn]||"";let i=n(a);if(i===$&&(i=Ue(a)),Na(i)>I)throw new u(Qs);const c=Ta(e,r,Cn,20);if(c>I)throw new u(ea);const l=Ta(e,r,Sn,new o),d=Ta(e,r,xn),w=Ta(e,r,zn),p=Ta(e,r,En,0),h=Ta(e,r,Kn);let m,y;h||(m=Ta(e,r,jn),y=Ta(e,r,qn));const g=Ta(e,r,"encryptionStrength",3),S=Ta(e,r,In),b=Ta(e,r,"extendedTimestamp",!0),x=Ta(e,r,"ntfsTimestamp"),z=Ta(e,r,"keepOrder",!0),F=Ta(e,r,Xn),E=Ta(e,r,Qn),R=Ta(e,r,"bufferedWrite"),D=Ta(e,r,"createTempStream"),k=Ta(e,r,"dataDescriptorSignature",!0),v=Ta(e,r,Yn),A=Ta(e,r,"useUnicodeFileNames",!0),T=Ta(e,r,Nn),C=h||T===$?$:ge(T);if(!h&&T!==$&&0!==T&&8!==T&&!C)throw new u("Compression method not supported");let U=Ta(e,r,"level");if(e.options[ts]){if(m!==$||y!==$)throw new u(ra);U===$&&T===$&&(U=0)}let O=Ta(e,r,Jn),M=Ta(e,r,"dataDescriptor");R&&M===$&&(M=!1),(M===$||S)&&(M=!0),U!==$&&6!=U&&(O=!1),O||C||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(U=0);const N=Ta(e,r,An);if(!S&&(m!==$||y!==$)&&(1>g||g>3))throw new u(ta);let _=ne;const L=r[Ln];if(L){let e=0,t=0;L.forEach(t=>e+=4+Na(t)),_=new f(e);const r=Me(_);L.forEach((e,n)=>{if(n>I)throw new u(na);if(Na(e)>I)throw new u(sa);Ua(r,t,n),Ua(r,t+2,Na(e)),Ma(_,e,t+4),t+=4+Na(e)})}return{comment:a,ct:{rawFilename:s,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:w,internalFileAttributes:p,passThrough:h,password:m,rawPassword:y,encryptionStrength:g,zipCrypto:S,extendedTimestamp:b,ntfsTimestamp:x,keepOrder:z,useWebWorkers:F,transferStreams:E,bufferedWrite:R,createTempStream:D,dataDescriptorSignature:k,signal:v,useUnicodeFileNames:A,compressionMethod:T,format:C?C.format:$,codecURI:C?C.codecURI:$,lt:C?C.versionNeeded:$,level:U,useCompressionStream:O,dataDescriptor:M,zip64:N,rawExtraField:_}}})(e,t,s),{comment:d}=l,w=s[Ln];let p;e.files.set(t,$);try{const d=await(async(e,t,{ct:r},n)=>{const{passThrough:s,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:w,compressionMethod:f}=r,p=0,h=0;if(s){if(!t)throw new u(la);if(h=n[hn],h===$)throw new u(ca)}const m=!0===d,y=Ta(e,n,Tn),g=!!t&&(!!(i&&Na(i)||o&&Na(o))||s&&y);t||(w=0,f=0);const S=g?a?12:16+4*c:0;t&&(t=new sn(t),await on(t),s?(n.uncompressedSize=h,p=Ca(h)+S):t.size===$?(l=!0,(d||d===$)&&(d=!0,h=p=4294967296)):(n.uncompressedSize=h=t.size,p=Ca(h)+S));const b=m||h>=U,x=m||p>=U;if(b||x){if(!1===d)throw new u(oa);d=!0}return d=d||!1,{reader:t,ct:{dataDescriptor:l,zip64:d,nt:b,et:x,uncompressedSize:h,level:w,compressionMethod:f,encrypted:g}}})(e,n,l,s);({reader:n}=d);const w=za(e.writer),h=xa(e.writer),m=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:n,creationDate:s,level:a,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:w,directory:f,rawExtraField:p,encryptionStrength:h,extendedTimestamp:m,ntfsTimestamp:y,passThrough:g,encrypted:S,nt:b,et:x,uncompressedSize:z}=e;let{version:F,compressionMethod:E}=e;const R=!f&&(E===$?a===$||a>0:0!==E);let D;const k=g||!R,v=c&&(e.bufferedWrite||!w||!b&&!x||k),A=v||c&&w&&(b||x);if(c&&(b||x)){const e=20,t=ba(e);if(t.uint16(1),t.uint16(e-4),D=t.array,v&&(t.wt(z),k)){const e=S?l?12:16+4*h:0;t.wt(g?0:z+e)}}else D=ne;let T,C,U,O,N;if(S&&!l){const e=ba(Na(wa)+2);e.uint16(39169),e.bytes(wa),T=e.array,T[8]=h}else T=ne;if(m){const e=ka(r),t=va(e);if(t){const t=9+(n?4:0)+(s?4:0),r=ba(t);O=1+(n?2:0)+(s?4:0),r.uint16(B),r.uint16(t-4),r.uint8(O),r.uint32(e),n&&r.uint32(Aa(ka(n))),s&&r.uint32(Aa(ka(s))),U=r.array}else U=ne;if(y===$?!t||n||s:y)try{const e=Da(r),t=ba(36);t.uint16(10),t.uint16(32),t.ut(4),t.uint16(1),t.uint16(24),t.wt(e),t.wt(Da(n)||e),t.wt(Da(s)||e),C=t.array}catch{C=ne}else C=ne}else C=U=ne;try{const{uid:t,gid:r,unixExtraFieldType:n}=e;if(n!=ua||t===$&&r===$)if(n!=fa||t===$&&r===$)N=ne;else{const e=ba(8);e.uint16(30805),e.uint16(4),e.uint16((t===$?0:t)&I),e.uint16((r===$?0:r)&I),N=e.array}else{const e=Sa(t),n=Sa(r),s=3+e.length+n.length,a=ba(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),N=a.array}}catch{N=ne}E===$&&(E=R?8:0);const{lt:_}=e;R&&_!==$&&(F=F>_?F:_),c&&(F=F>45?F:45),S&&!l&&(F=F>51?F:51,T[9]=E,E=99);const L=A?Na(D):0,P=L+Na(T,U,C,N,p);if(P>I)throw new u(sa);const W=new o(2e3*i.ceil(r.getTime()/2e3)),{Qe:Z,$e:V,rawLastModDate:H}=_a({version:F,bitFlag:La(a,d,w,S,E),compressionMethod:E,uncompressedSize:z,lastModDate:Q>W?Q:W>J?J:W,rawFilename:t,et:x,nt:b,extraFieldLength:P}),j=ba(X+Na(t)+P),q=j.array,K=Me(q);return j.uint32(M),j.bytes(Z),j.bytes(t),A&&j.bytes(D),j.bytes(T),j.bytes(U),j.bytes(C),j.bytes(N),j.bytes(p),w&&(x||Ia(K,18,0),b||Ia(K,22,0)),{ft:q,ht:K,Qe:Z,$e:V,lastModDate:r,rawLastModDate:H,encrypted:S,compressed:R,version:F,compressionMethod:E,ot:O,Ke:ne,yt:L,Ge:U,Xe:C,Je:N,Ye:T,extraFieldLength:P}})(s=r.assign({},s,c.ct,l.ct,d.ct,{internalFileAttribute:l.ct.internalFileAttributes,externalFileAttribute:c.ct.externalFileAttributes,signature:s[_n],offset:e.offset-w,diskNumberStart:h})),y=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let n,s=ne,a=0,i=e?20:12;return r&&(i+=4),t&&(s=new f(i),n=Me(s),r&&(a=4,Ia(n,0,_))),{gt:s,St:n,bt:a}})(s),S=Na(m.ft,y.gt);p=await(async(e,t,n,s,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:w}=i,{xt:p}=s,h=e.options[ts],m=e.qe;let y,S,b,x,z,F,R,k={},v=0;o.set(t,k),e.qe=k;try{let S;l&&(S=m&&m.lock,k.lock=new g(e=>b=e)),i.bufferedWrite||!l||e.zt||e.je||!d?(y=!0,e.je++,R=i.createTempStream?await i.createTempStream():new E($,$,{highWaterMark:ee}),R.size=0,await on(c)):(R=c,await A()),await on(R);const C=za(c);if(e.Ze){delete e.Ze;const t=new f(4);Ia(Me(t),0,N),await Ra(c,t),e.offset+=4}h&&!y&&ga(s,e.offset-C);const{ft:I}=p;y||(await S,await T());const M=xa(c),_=Ea(e,c);if(k.diskNumberStart=M,y||(z=!0,F=c.size,await Ra(R,I)),k=await(async(e,t,{diskNumberStart:n,lock:s},i,o,c)=>{const{xt:l,Ft:d,Et:w}=i,{Qe:f,$e:p,lastModDate:h,rawLastModDate:m,encrypted:y,compressed:g,version:S,compressionMethod:b,Ke:x,yt:z,Ge:F,ot:E,Xe:R,Je:D,Ye:k}=l,{gt:v}=d,{rawFilename:A,lastAccessDate:T,creationDate:C,password:I,rawPassword:M,level:N,zip64:_,nt:L,et:P,zipCrypto:W,dataDescriptor:Z,directory:V,executable:H,versionMadeBy:B,rawComment:j,rawExtraField:q,useWebWorkers:K,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe,useCompressionStream:pe,passThrough:he,format:me,codecURI:ye}=c,ge={lock:s,versionMadeBy:B,zip64:_,directory:!!V,executable:!!H,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:j,Ke:x,yt:z,Ge:F,Xe:R,Je:D,Ye:k,rawExtraField:q,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:ne,externalFileAttributes:se,diskNumberStart:n,uid:ae,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:we,msdosAttributesRaw:ue,msdosAttributes:fe};let{signature:Se,uncompressedSize:be}=c,xe=0;he||(be=0);const{writable:ze}=t;if(e){const r=e.createReadable?e.createReadable():e.readable,n=e.size,s={options:{codecType:Wt,level:N,rawPassword:M,password:I,encryptionStrength:ee,zipCrypto:y&&W,passwordVerification:y&&W&&m>>8&O,signed:!he,compressed:g&&!he,encrypted:y&&!he,useWebWorkers:K,useCompressionStream:pe,transferStreams:Y,format:me,codecURI:ye},config:o,oe:{signal:Q,size:n,onstart:G,onprogress:X,onend:J}};try{const e=await fr({readable:r,writable:ze},s);if(xe=e.outputSize,t.size+=xe,he||(be=e.inputSize,Se=e.signature),!P&&xe>=U||!L&&be>=U)throw new u(oa)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,xt:n,Ft:s},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{$e:l,encrypted:d}=n,{St:w,bt:u}=s;d&&!o||e===$||(Ia(l,10,e),c&&Ia(w,u,e)),i?c&&(Oa(w,u+4,a(t)),Oa(w,u+12,a(r))):(Ia(l,14,t),Ia(l,18,r),c&&(Ia(w,u+4,t),Ia(w,u+8,r)))})({signature:Se,compressedSize:xe,uncompressedSize:be,xt:l,Ft:d},c),Z&&await Ra(t,v),r.assign(ge,{uncompressedSize:be,compressedSize:xe,lastModDate:h,rawLastModDate:m,creationDate:C,lastAccessDate:T,encrypted:y,zipCrypto:W,size:w+xe,compressionMethod:b,version:S,Qe:f,$e:p,signature:Se,ot:E,nt:L,et:P}),ge})(n,R,k,s,e.config,i),y||(z=!1),o.set(t,k),k.filename=t,y){if(await g.all([R.writable.getWriter().close(),S]),await A(),x=!0,F=c.size,await T(),k.diskNumberStart=xa(c),k.offset=Ea(e,c),h){const t=s.Et;ga(s,e.offset-za(c)),k.size+=s.Et-t}(({rawFilename:e,encrypted:t,zip64:r,yt:n,signature:s,compressedSize:i,uncompressedSize:o,nt:c,et:l},d,{dataDescriptor:w})=>{if(w||(t||Ia(d,14,s),l||Ia(d,18,i),c||Ia(d,22,o)),r&&n){const t=X+Na(e)+4;Oa(d,t,a(o)),Oa(d,t+8,a(i))}})(k,p.ht,i),await Ra(c,p.ft),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=Na(e),v+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{n.releaseLock()}})(R.readable,c,w),c.size+=R.size,x=!1}else k.diskNumberStart=M,k.offset=_;return e.offset+=k.size,k}catch(r){if(x||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.je--,b&&b(),S&&S(),y&&R&&R.dispose)try{await R.dispose()}catch{}}async function A(){e.zt=!0;const{Rt:t}=e;e.Rt=new g(t=>S=()=>{e.zt=!1,t()}),await t}async function T(){Fa(c,Na(p.ft))&&await c.closeDisk()}})(e,t,n,{xt:m,Ft:y,Et:S},s)}catch(r){throw e.files.delete(t),r}return r.assign(p,{name:t,comment:d,extraField:w}),new Bn(p)})(s,e,t,n),c.add(d),await d}catch(t){throw w&&s.Ve.delete(e),t}finally{c.delete(d);const e=ha.shift();e?e():pa--}}remove(e){const{Ve:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:n}=e;if(t.has(n)&&r.has(n))return t.delete(n),r.delete(n),!0}return!1}async close(e=ne,r={}){const{Be:n,writer:s}=this,{writable:i}=s;if(Na(e)>I)throw new u(Js);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,Ye:n,rawComment:s,Xe:a,Je:i,rawExtraField:o,extendedTimestamp:c,ot:l,lastModDate:d,nt:w,et:f,uncompressedSize:p,compressedSize:h}=r,m=r.offset>=U,y=r.diskNumberStart>=I;let g,S;if(m||y||w||f){const e=4+(w?8:0)+(f?8:0)+(m?8:0)+(y?4:0),t=ba(e);t.uint16(1),t.uint16(e-4),w&&t.wt(p),f&&t.wt(h),m&&t.wt(r.offset),y&&t.uint32(r.diskNumberStart),g=t.array}else g=ne;r.Ke=g,r.st=m,r.it=y;const b=ka(d);if(c&&va(b)){const e=ba(9);e.uint16(B),e.uint16(5),e.uint8(l),e.uint32(b),S=e.array}else S=ne;r.Ge=S;const x=Na(g,n,a,i,S,o);if(x>I)throw new u(sa);t+=46+Na(e,s)+x}return t})(e.files),i=await(async(e,r,n)=>{const{files:s,writer:a}=e,i=new f(r);await on(a);let o=0,c=0,l=xa(a),d=za(a);for(const[e,r]of t.from(s.values()).entries()){const{offset:t,rawFilename:w,Ke:u,Ye:f,Ge:p,Xe:h,Je:m,rawExtraField:y,rawComment:g,versionMadeBy:S,Qe:b,$e:x,nt:z,et:F,it:E,st:R,internalFileAttributes:D,externalFileAttributes:k,diskNumberStart:v,uncompressedSize:A,compressedSize:T}=r,C=Na(u,f,p,h,m,y),O=46+Na(w,g)+C;Fa(a,o+O-c)&&(await Ra(a,i.slice(c,o)),c=o,await a.closeDisk()),0==e&&(l=xa(a),d=za(a)),z||Ia(x,18,A),F||Ia(x,14,T),(R||E)&&45>r.version&&Ua(x,0,45);const M=ba(O);if(M.uint32(L),M.uint16(S),M.bytes(b.subarray(0,24)),M.uint16(C),M.uint16(Na(g)),M.uint16(E?I:v),M.uint16(D),M.uint32(k),M.uint32(R?U:t),M.bytes(w),M.bytes(u),M.bytes(f),M.bytes(p),M.bytes(h),M.bytes(m),M.bytes(y),M.bytes(g),Ma(i,M.array,o),o+=O,n.onprogress)try{await n.onprogress(e+1,s.size,new Bn(r))}catch{}}return await Ra(a,c?i.slice(c):i),{diskNumber:l,diskOffset:d}})(e,s,n);await(async(e,t,r,n)=>{const{writer:s}=e,{Dt:i}=n;let{kt:o}=n,c=e.files.size,l=i.diskNumber,d=Ea(e,i),w=xa(s);Fa(s,V)&&w++;let f=Ta(e,r,An);if(!(U>d&&U>o&&I>c&&I>w)){if(!1===f)throw new u(oa);f=!0}const p=Na(t);if(p>I)throw new u(Js);const h=ba(f?98:V);Fa(s,Na(h.array)+p)&&await s.closeDisk(),w=xa(s),f&&(h.uint32(W),h.wt(44),h.uint16(45),h.uint16(45),h.uint32(w),h.uint32(l),h.wt(c),h.wt(c),h.wt(o),h.wt(d),h.uint32(Z),h.uint32(w),h.wt(a(Ea(e,s))+a(o)),h.uint32(w+1),Ta(e,r,"supportZip64SplitFile",!0)&&(w=I,l=I),c=I,d=U,o=U),h.uint32(P),h.uint16(w),h.uint16(l),h.uint16(c),h.uint16(c),h.uint32(o),h.uint32(d),h.uint16(p),await Ra(s,h.array),p&&await Ra(s,t)})(e,r,n,{Dt:i,kt:s})})(this,e,r),Ta(this,r,$n)||await i.getWriter().close(),s.getData?s.getData():i}}function ya(e,t,r){e.Be.add(t),t.catch(e=>{try{r(e)}catch{}})}function ga(e,t){const{xt:r}=e;let{ft:n,extraFieldLength:s}=r,a=64-(t+Na(n))%64;4>a&&(a+=64);const i=new f(a),o=Me(i);Ua(o,0,6534),Ua(o,2,a-4);const c=n;r.ft=n=new f(Na(c)+a),Ma(n,c),Ma(n,i,Na(c));const l=Me(n);Ua(l,28,s+a),r.ht=l,e.Et+=a}function Sa(e){if(e===$)return ne;{const t=new f(4);Me(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function ba(e){const t=new f(e),r=Me(t);let n=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,n,e),n+=1},uint16:e=>{Ua(r,n,e),n+=2},uint32:e=>{Ia(r,n,e),n+=4},wt:e=>{Oa(r,n,a(e)),n+=8},bytes:e=>{Ma(t,e,n),n+=Na(e)},ut:e=>n+=e}}function xa(e){const{diskNumber:t=0}=e;return t}function za(e){const{diskOffset:t=0}=e;return t}function Fa(e,t){const{availableSize:r=ee}=e;return t>r}function Ea(e,{diskNumber:t=0,diskOffset:r=0}){return e.offset-r-(t?e.He:0)}async function Ra(e,t){const{writable:r}=e,n=r.getWriter();try{await n.ready,e.size+=Na(t),await n.write(t)}finally{n.releaseLock()}}function Da(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function ka(e){return i.floor(e.getTime()/1e3)}function va(e){return e>=aa&&ia>=e}function Aa(e){return i.min(ia,i.max(aa,e))}function Ta(e,t,r,n){const s=t[r]===$?e.options[r]:t[r];return s===$?n:s}function Ca(e){return e+5*(i.floor(e/16383)+1)}function Ua(e,t,r){e.setUint16(t,r,!0)}function Ia(e,t,r){e.setUint32(t,r,!0)}function Oa(e,t,r){e.setBigUint64(t,r,!0)}function Ma(e,t,r){e.set(t,r)}function Na(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function _a({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:n,compressedSize:s,lastModDate:a,rawLastModDate:i,rawFilename:o,et:c,nt:l,extraFieldLength:d}){const w=ba(26),u=w.array,f=Me(u);if(w.uint16(e),w.uint16(t),w.uint16(r),i===$){const e=new h(1),t=Me(e);Ua(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ua(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return w.uint32(i),w.ut(4),c||s!==$?w.uint32(c?U:s):w.ut(4),l||n!==$?w.uint32(l?U:n):w.ut(4),w.uint16(Na(o)),w.uint16(d),{Qe:u,$e:f,rawLastModDate:i}}function La(e,t,r,n,s){let a=0;return t&&(a|=j),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 Pa=1048576,Wa=".zip.js-temp",Za=1048576,Va=1048576,Ha=".zip.js-temp";try{(e=>{for(const t of ie){const r=e[t];r!==$&&(ae[t]=r)}de(e)})({baseURI:void 0===x&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===x?location.href:C&&"SCRIPT"===C.tagName.toUpperCase()&&C.src||new w("zip-core.min.js",x.baseURI).href})}catch{}e.BlobReader=Nr,e.BlobWriter=_r,e.Data64URIReader=class extends Ur{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const n=e.indexOf(",")+1;r.assign(this,{dataURI:e,vt:n,size:i.floor(.75*(t-n))})}readUint8Array(e,t){const{vt: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 l=0;for(let e=c;c+t>e&&e<o.length;e++)s[e-c]=o.charCodeAt(e),l++;return l<s.length?s.subarray(0,l):s}},e.Data64URIWriter=class extends Ir{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)}},e.ERR_AMBIGUOUS_ARCHIVE=ms,e.ERR_BAD_FORMAT=as,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=cs,e.ERR_DUPLICATED_NAME=Xs,e.ERR_ENCRYPTED=ws,e.ERR_ENCRYPTED_CENTRAL_DIRECTORY=ys,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=os,e.ERR_EOCDR_NOT_FOUND=is,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ds,e.ERR_HTTP_RANGE=br,e.ERR_HTTP_RESOURCE_CHANGED=xr,e.ERR_INVALID_CODEC_DEFINITION=we,e.ERR_INVALID_CODEC_MODULE=fe,e.ERR_INVALID_COMMENT=Js,e.ERR_INVALID_COMPRESSED_DATA=vt,e.ERR_INVALID_ENCRYPTION_STRENGTH=ta,e.ERR_INVALID_ENTRY_COMMENT=Qs,e.ERR_INVALID_ENTRY_NAME=$s,e.ERR_INVALID_EXTRAFIELD_DATA=sa,e.ERR_INVALID_EXTRAFIELD_TYPE=na,e.ERR_INVALID_PASSWORD=Ze,e.ERR_INVALID_SIGNATURE=Ve,e.ERR_INVALID_UNCOMPRESSED_SIZE=kt,e.ERR_INVALID_VERSION=ea,e.ERR_ITERATOR_COMPLETED_TOO_SOON=zr,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ls,e.ERR_OVERLAPPING_ENTRY=hs,e.ERR_RESERVED_COMPRESSION_METHOD=ue,e.ERR_SPLIT_ZIP_FILE=ps,e.ERR_UNDEFINED_READER=la,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=ca,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=us,e.ERR_UNSUPPORTED_ENCRYPTION_USDZ=ra,e.ERR_UNSUPPORTED_FORMAT=oa,e.ERR_WRITER_NOT_INITIALIZED=Fr,e.ERR_ZIP_NOT_EMPTY=da,e.HttpRangeReader=class extends tn{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=tn,e.Reader=Ur,e.SplitDataReader=rn,e.SplitDataWriter=nn,e.TextReader=class extends Nr{constructor(e){super(new y([e],{type:"text/plain"}))}},e.TextWriter=class extends _r{constructor(e){super(e),r.assign(this,{encoding:e,At:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,At: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)})}}},e.Uint8ArrayReader=class extends Ur{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)}},e.Uint8ArrayWriter=class extends Ir{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)}},e.Writer=Ir,e.ZipReader=zs,e.ZipReaderStream=Fs,e.ZipWriter=ma,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new E;this.readable=t,this.zipWriter=new ma(r,e),this.Be=new l}transform(e){const t=this.zipWriter;let r;const{readable:n,writable:s}=new E({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return ya(this,this.zipWriter.add(e,n),e=>r.error(e)),{readable:this.readable,writable:s}}writable(e){let t;const{readable:r,writable:n}=new E({start(e){t=e}});return ya(this,this.zipWriter.add(e,r),e=>t.error(e)),n}async close(e,r={}){return await g.all(t.from(this.Be)),this.zipWriter.close(e,r)}},e.configure=de,e.createBlobTempStream=(e={})=>{const{thresholdBytes:t=Za}=e;return()=>{const e=[];let r,n,s,a=0,i=!1;const o=new D({async write(s){i?await r.write(s):(e.push(s),a+=s.length,a>t&&await(async()=>{const t=new E;n=new d(t.readable).blob(),r=t.writable.getWriter(),i=!0;for(const t of e)await r.write(t);e.length=0})())},async close(){r&&(await r.close(),r=null)}});let c=0;return{writable:o,readable:new R({async pull(t){if(i){if(!s){const e=await n;s=e.stream().getReader()}const{value:e,done:r}=await s.read();r?t.close():t.enqueue(e)}else c<e.length?t.enqueue(e[c++]):t.close()},async cancel(e){s&&await s.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(r){try{await r.abort()}catch{}r=null}n&&(n.catch(()=>{}),n=null),e.length=0}}}},e.createOPFSTempStream=(e={})=>{const{thresholdBytes:t=Pa,directoryName:r=Wa,getDirectory:n=()=>A.storage.getDirectory()}=e;let s;function a(){return s||(s=g.resolve(n()).then(e=>e.getDirectoryHandle(r,{create:!0}))),s}return()=>{const e=[];let r,n,s,i,o=0,c=!1;const l=new D({async write(i){c?await s.write(i):(e.push(i),o+=i.length,o>t&&await(async()=>{const t=await a();r=z.randomUUID(),n=await t.getFileHandle(r,{create:!0}),s=(await n.createWritable()).getWriter(),c=!0;for(const t of e)await s.write(t);e.length=0})())},async close(){s&&(await s.close(),s=null)}});let d=0;return{writable:l,readable:new R({async pull(t){if(c){if(!i){const e=await n.getFile();i=e.stream().getReader()}const{value:e,done:r}=await i.read();r?t.close():t.enqueue(e)}else d<e.length?t.enqueue(e[d++]):t.close()},async cancel(e){i&&await i.cancel(e)}},{highWaterMark:0}),dispose:async()=>{if(s){try{await s.close()}catch{}s=null}if(r){try{const e=await a();await e.removeEntry(r)}catch{}n=r=null}e.length=0}}}},e.createSyncAccessHandleTempStream=(e={})=>{const{thresholdBytes:t=Va,directoryName:r=Ha,getDirectory:n}=e;if(!(n||"undefined"!=typeof FileSystemFileHandle&&FileSystemFileHandle.prototype.createSyncAccessHandle))throw new u("createSyncAccessHandle is only available in dedicated workers");const s=n||(()=>A.storage.getDirectory());let a;function o(){return a||(a=g.resolve(s()).then(e=>e.getDirectoryHandle(r,{create:!0}))),a}return()=>{const e=[];let r,n,s=0,a=!1,c=0,l=0;const d=new D({async write(i){a?(n.write(i,{at:c}),c+=i.length):(e.push(i),s+=i.length,s>t&&await(async()=>{const t=await o();r=z.randomUUID();const s=await t.getFileHandle(r,{create:!0});n=await s.createSyncAccessHandle(),a=!0;for(const t of e)n.write(t,{at:c}),c+=t.length;e.length=0})())},close(){n&&n.flush()}});let w=0;return{writable:d,readable:new R({pull(t){if(a){const e=c-l;if(0>=e)return void t.close();const r=new f(i.min(524288,e)),s=n.read(r,{at:l});s?(l+=s,t.enqueue(r.subarray(0,s))):t.close()}else w<e.length?t.enqueue(e[w++]):t.close()}},{highWaterMark:0}),dispose:async()=>{if(n){try{n.close()}catch{}n=null}if(r){try{const e=await o();await e.removeEntry(r)}catch{}r=null}e.length=0}}}},e.getMimeType=()=>"application/octet-stream",e.registerCodec=(e={})=>{const{compressionMethod:t,format:r,codecURI:n,CompressionStream:a,DecompressionStream:i,versionNeeded:o}=e;if(!s.isInteger(t)||0>t||t>I||typeof r!=pe||!r.length)throw new u(we);if(he.includes(t))throw new u(ue);const c=typeof a==re||typeof i==re;if(!(c||typeof n==pe&&n.length))throw new u(we);me.set(t,{compressionMethod:t,format:r,codecURI:n,versionNeeded:o}),c&&be(r,{CompressionStream:a,DecompressionStream:i})},e.resetConfiguration=()=>{for(const e of ie)delete oe[e];r.assign(oe,ae)},e.terminateWorkers=async()=>{await g.allSettled(cr.map(e=>(gr(e),e.terminate()))),qt=$},e.unregisterCodec=e=>{const t=me.get(e);if(t){let r;me.delete(e),me.forEach(e=>r=r||e.format==t.format),r||ye.delete(t.format)}}});
|
package/dist/zip-fs-core.js
CHANGED
|
@@ -990,7 +990,7 @@
|
|
|
990
990
|
|
|
991
991
|
getDiskOffset(diskNumber) {
|
|
992
992
|
const { diskOffsets, size } = this;
|
|
993
|
-
const diskOffset = diskOffsets
|
|
993
|
+
const diskOffset = diskOffsets[diskNumber];
|
|
994
994
|
return diskOffset === UNDEFINED_VALUE ? size : diskOffset;
|
|
995
995
|
}
|
|
996
996
|
|
|
@@ -2578,7 +2578,7 @@
|
|
|
2578
2578
|
if (zipCrypto.password || zipCrypto.rawPassword) {
|
|
2579
2579
|
const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
|
|
2580
2580
|
zipCrypto.password = zipCrypto.rawPassword = null;
|
|
2581
|
-
if ((decryptedHeader
|
|
2581
|
+
if ((decryptedHeader[HEADER_LENGTH - 1] ^ zipCrypto.passwordVerification) != 0) {
|
|
2582
2582
|
throw new Error(ERR_INVALID_PASSWORD);
|
|
2583
2583
|
}
|
|
2584
2584
|
chunk = chunk.subarray(HEADER_LENGTH);
|