@zip.js/zip.js 2.8.5 → 2.8.7

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.
@@ -2189,13 +2189,8 @@
2189
2189
  const { value, readable, writable } = message;
2190
2190
  const transferables = [];
2191
2191
  if (value) {
2192
- if (value.byteLength < value.buffer.byteLength) {
2193
- message.value = value.buffer.slice(0, value.byteLength);
2194
- }
2195
- else {
2196
- message.value = value.buffer;
2197
- }
2198
- transferables.push(message.value);
2192
+ message.value = value;
2193
+ transferables.push(message.value.buffer);
2199
2194
  }
2200
2195
  if (transferStreams && transferStreamsSupported) {
2201
2196
  if (readable) {
@@ -1 +1 @@
1
- ((A,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).zip={})})(this,function(A){"use strict";const{Array:e,Object:t,String:g,Number:i,BigInt:s,Math:o,Date:a,Map:r,Set:n,Response:B,URL:c,Error:I,Uint8Array:E,Uint16Array:C,Uint32Array:l,DataView:w,Blob:h,Promise:d,TextEncoder:u,TextDecoder:F,document:Q,crypto:D,btoa:Y,TransformStream:p,ReadableStream:m,WritableStream:f,CompressionStream:S,DecompressionStream:y,navigator:M,Worker:G}="undefined"!=typeof globalThis?globalThis:this||self;var b=void 0!==Q?Q.currentScript:null;const O=4294967295,U=65535,W=67324752,K=134695760,T=K,z=33639248,R=101010256,N=101075792,H=117853008,L=22,k=21589,J=2048,x="/",P=30,V=new a(2107,11,31),X=new a(1980,0,1),Z=void 0,j="undefined",q="function";let v=2;try{typeof M!=j&&M.hardwareConcurrency&&(v=M.hardwareConcurrency)}catch{}const _={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:v,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof S!=j&&S,DecompressionStream:typeof y!=j&&y},$=t.assign({},_);function AA(){return $}function eA(A){return o.max(A.chunkSize,64)}function tA(A){const{baseURI:e,chunkSize:t,maxWorkers:g,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:o,CompressionStream:a,DecompressionStream:r,CompressionStreamZlib:n,DecompressionStreamZlib:B,workerURI:c,wasmURI:I}=A;gA("baseURI",e),gA("wasmURI",I),gA("workerURI",c),gA("chunkSize",t),gA("maxWorkers",g),gA("terminateWorkerTimeout",i),gA("useCompressionStream",s),gA("useWebWorkers",o),gA("CompressionStream",a),gA("DecompressionStream",r),gA("CompressionStreamZlib",n),gA("DecompressionStreamZlib",B)}function gA(A,e){e!==Z&&($[A]=e)}const iA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sA=[];for(let A=0;256>A;A++){let e=A;for(let A=0;8>A;A++)1&e?e=e>>>1^3988292384:e>>>=1;sA[A]=e}class oA{constructor(A){this.crc=A||-1}append(A){let e=0|this.crc;for(let t=0,g=0|A.length;g>t;t++)e=e>>>8^sA[255&(e^A[t])];this.crc=e}get(){return~this.crc}}class aA extends p{constructor(){let A;const e=new oA;super({transform(A,t){e.append(A),t.enqueue(A)},flush(){const t=new E(4);new w(t.buffer).setUint32(0,e.get()),A.value=t}}),A=this}}function rA(A){if(typeof u==j){const e=new E((A=unescape(encodeURIComponent(A))).length);for(let t=0;t<e.length;t++)e[t]=A.charCodeAt(t);return e}return(new u).encode(A)}const nA={concat(A,e){if(0===A.length||0===e.length)return A.concat(e);const t=A[A.length-1],g=nA.getPartial(t);return 32===g?A.concat(e):nA._shiftRight(e,g,0|t,A.slice(0,A.length-1))},bitLength(A){const e=A.length;if(0===e)return 0;const t=A[e-1];return 32*(e-1)+nA.getPartial(t)},clamp(A,e){if(32*A.length<e)return A;const t=(A=A.slice(0,o.ceil(e/32))).length;return e&=31,t>0&&e&&(A[t-1]=nA.partial(e,A[t-1]&2147483648>>e-1,1)),A},partial:(A,e,t)=>32===A?e:(t?0|e:e<<32-A)+1099511627776*A,getPartial:A=>o.round(A/1099511627776)||32,_shiftRight(A,e,t,g){for(void 0===g&&(g=[]);e>=32;e-=32)g.push(t),t=0;if(0===e)return g.concat(A);for(let i=0;i<A.length;i++)g.push(t|A[i]>>>e),t=A[i]<<32-e;const i=A.length?A[A.length-1]:0,s=nA.getPartial(i);return g.push(nA.partial(e+s&31,e+s>32?t:g.pop(),1)),g}},BA={bytes:{fromBits(A){const e=nA.bitLength(A)/8,t=new E(e);let g;for(let i=0;e>i;i++)3&i||(g=A[i/4]),t[i]=g>>>24,g<<=8;return t},toBits(A){const e=[];let t,g=0;for(t=0;t<A.length;t++)g=g<<8|A[t],3&~t||(e.push(g),g=0);return 3&t&&e.push(nA.partial(8*(3&t),g)),e}}},cA=class{constructor(A){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],A?(e._h=A._h.slice(0),e._buffer=A._buffer.slice(0),e._length=A._length):e.reset()}reset(){const A=this;return A._h=A._init.slice(0),A._buffer=[],A._length=0,A}update(A){const e=this;"string"==typeof A&&(A=BA.utf8String.toBits(A));const t=e._buffer=nA.concat(e._buffer,A),g=e._length,i=e._length=g+nA.bitLength(A);if(i>9007199254740991)throw new I("Cannot hash more than 2^53 - 1 bits");const s=new l(t);let o=0;for(let A=e.blockSize+g-(e.blockSize+g&e.blockSize-1);i>=A;A+=e.blockSize)e._block(s.subarray(16*o,16*(o+1))),o+=1;return t.splice(0,16*o),e}finalize(){const A=this;let e=A._buffer;const t=A._h;e=nA.concat(e,[nA.partial(1,1)]);for(let A=e.length+2;15&A;A++)e.push(0);for(e.push(o.floor(A._length/4294967296)),e.push(0|A._length);e.length;)A._block(e.splice(0,16));return A.reset(),t}_f(A,e,t,g){return A>19?A>39?A>59?A>79?void 0:e^t^g:e&t|e&g|t&g:e^t^g:e&t|~e&g}_S(A,e){return e<<A|e>>>32-A}_block(A){const t=this,g=t._h,i=e(80);for(let e=0;16>e;e++)i[e]=A[e];let s=g[0],a=g[1],r=g[2],n=g[3],B=g[4];for(let A=0;79>=A;A++){16>A||(i[A]=t._S(1,i[A-3]^i[A-8]^i[A-14]^i[A-16]));const e=t._S(5,s)+t._f(A,a,r,n)+B+i[A]+t._key[o.floor(A/20)]|0;B=n,n=r,r=t._S(30,a),a=s,s=e}g[0]=g[0]+s|0,g[1]=g[1]+a|0,g[2]=g[2]+r|0,g[3]=g[3]+n|0,g[4]=g[4]+B|0}},IA={getRandomValues(A){const e=new l(A.buffer),t=A=>{let e=987654321;const t=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&t,(((e<<16)+(A=18e3*(65535&A)+(A>>16)&t)&t)/4294967296+.5)*(o.random()>.5?1:-1))};for(let g,i=0;i<A.length;i+=4){const A=t(4294967296*(g||o.random()));g=987654071*A(),e[i/4]=4294967296*A()|0}return A}},EA={importKey:A=>new EA.hmacSha1(BA.bytes.toBits(A)),pbkdf2(A,e,t,g){if(t=t||1e4,0>g||0>t)throw new I("invalid params to pbkdf2");const i=1+(g>>5)<<2;let s,o,a,r,n;const B=new ArrayBuffer(i),c=new w(B);let E=0;const C=nA;for(e=BA.bytes.toBits(e),n=1;(i||1)>E;n++){for(s=o=A.encrypt(C.concat(e,[n])),a=1;t>a;a++)for(o=A.encrypt(o),r=0;r<o.length;r++)s[r]^=o[r];for(a=0;(i||1)>E&&a<s.length;a++)c.setInt32(E,s[a]),E+=4}return B.slice(0,g/8)},hmacSha1:class{constructor(A){const e=this,t=e._hash=cA,g=[[],[]];e._baseHash=[new t,new t];const i=e._baseHash[0].blockSize/32;A.length>i&&(A=(new t).update(A).finalize());for(let e=0;i>e;e++)g[0][e]=909522486^A[e],g[1][e]=1549556828^A[e];e._baseHash[0].update(g[0]),e._baseHash[1].update(g[1]),e._resultHash=new t(e._baseHash[0])}reset(){const A=this;A._resultHash=new A._hash(A._baseHash[0]),A._updated=!1}update(A){this._updated=!0,this._resultHash.update(A)}digest(){const A=this,e=A._resultHash.finalize(),t=new A._hash(A._baseHash[1]).update(e).finalize();return A.reset(),t}encrypt(A){if(this._updated)throw new I("encrypt on already updated hmac called!");return this.update(A),this.digest(A)}}},CA=typeof D!=j&&typeof D.getRandomValues==q,lA="Invalid password",wA="Invalid signature",hA="zipjs-abort-check-password";function dA(A){return CA?D.getRandomValues(A):IA.getRandomValues(A)}const uA=16,FA={name:"PBKDF2"},QA=t.assign({hash:{name:"HMAC"}},FA),DA=t.assign({iterations:1e3,hash:{name:"SHA-1"}},FA),YA=["deriveBits"],pA=[8,12,16],mA=[16,24,32],fA=10,SA=[0,0,0,0],yA=typeof D!=j,MA=yA&&D.subtle,GA=yA&&typeof MA!=j,bA=BA.bytes,OA=class{constructor(A){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],g=e._tables[1],i=A.length;let s,o,a,r=1;if(4!==i&&6!==i&&8!==i)throw new I("invalid aes key size");for(e._key=[o=A.slice(0),a=[]],s=i;4*i+28>s;s++){let A=o[s-1];(s%i===0||8===i&&s%i===4)&&(A=t[A>>>24]<<24^t[A>>16&255]<<16^t[A>>8&255]<<8^t[255&A],s%i===0&&(A=A<<8^A>>>24^r<<24,r=r<<1^283*(r>>7))),o[s]=o[s-i]^A}for(let A=0;s;A++,s--){const e=o[3&A?s:s-4];a[A]=4>=s||4>A?e:g[0][t[e>>>24]]^g[1][t[e>>16&255]]^g[2][t[e>>8&255]]^g[3][t[255&e]]}}encrypt(A){return this._crypt(A,0)}decrypt(A){return this._crypt(A,1)}_precompute(){const A=this._tables[0],e=this._tables[1],t=A[4],g=e[4],i=[],s=[];let o,a,r,n;for(let A=0;256>A;A++)s[(i[A]=A<<1^283*(A>>7))^A]=A;for(let B=o=0;!t[B];B^=a||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,t[B]=s,g[s]=B,n=i[r=i[a=i[B]]];let c=16843009*n^65537*r^257*a^16843008*B,I=257*i[s]^16843008*s;for(let t=0;4>t;t++)A[t][B]=I=I<<24^I>>>8,e[t][s]=c=c<<24^c>>>8}for(let t=0;5>t;t++)A[t]=A[t].slice(0),e[t]=e[t].slice(0)}_crypt(A,e){if(4!==A.length)throw new I("invalid aes block size");const t=this._key[e],g=t.length/4-2,i=[0,0,0,0],s=this._tables[e],o=s[0],a=s[1],r=s[2],n=s[3],B=s[4];let c,E,C,l=A[0]^t[0],w=A[e?3:1]^t[1],h=A[2]^t[2],d=A[e?1:3]^t[3],u=4;for(let A=0;g>A;A++)c=o[l>>>24]^a[w>>16&255]^r[h>>8&255]^n[255&d]^t[u],E=o[w>>>24]^a[h>>16&255]^r[d>>8&255]^n[255&l]^t[u+1],C=o[h>>>24]^a[d>>16&255]^r[l>>8&255]^n[255&w]^t[u+2],d=o[d>>>24]^a[l>>16&255]^r[w>>8&255]^n[255&h]^t[u+3],u+=4,l=c,w=E,h=C;for(let A=0;4>A;A++)i[e?3&-A:A]=B[l>>>24]<<24^B[w>>16&255]<<16^B[h>>8&255]<<8^B[255&d]^t[u++],c=l,l=w,w=h,h=d,d=c;return i}},UA=class{constructor(A,e){this._prf=A,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(A){return this.calculate(this._prf,A,this._iv)}incWord(A){if(255&~(A>>24))A+=1<<24;else{let e=A>>16&255,t=A>>8&255,g=255&A;255===e?(e=0,255===t?(t=0,255===g?g=0:++g):++t):++e,A=0,A+=e<<16,A+=t<<8,A+=g}return A}incCounter(A){0===(A[0]=this.incWord(A[0]))&&(A[1]=this.incWord(A[1]))}calculate(A,e,t){let g;if(!(g=e.length))return[];const i=nA.bitLength(e);for(let i=0;g>i;i+=4){this.incCounter(t);const g=A.encrypt(t);e[i]^=g[0],e[i+1]^=g[1],e[i+2]^=g[2],e[i+3]^=g[3]}return nA.clamp(e,i)}},WA=EA.hmacSha1;let KA=yA&&GA&&typeof MA.importKey==q,TA=yA&&GA&&typeof MA.deriveBits==q;class zA extends p{constructor({password:A,rawPassword:e,signed:g,encryptionStrength:i,checkPasswordOnly:s}){super({start(){t.assign(this,{ready:new d(A=>this.resolveReady=A),password:LA(A,e),signed:g,strength:i-1,pending:new E})},async transform(A,e){const t=this,{password:g,strength:i,resolveReady:o,ready:a}=t;g?(await(async(A,e,t,g)=>{const i=await HA(A,e,t,JA(g,0,pA[e])),s=JA(g,pA[e]);if(i[0]!=s[0]||i[1]!=s[1])throw new I(lA)})(t,i,g,JA(A,0,pA[i]+2)),A=JA(A,pA[i]+2),s?e.error(new I(hA)):o()):await a;const r=new E(A.length-fA-(A.length-fA)%uA);e.enqueue(NA(t,A,r,0,fA,!0))},async flush(A){const{signed:e,ctr:t,hmac:g,pending:i,ready:s}=this;if(g&&t){await s;const o=JA(i,0,i.length-fA),a=JA(i,i.length-fA);let r=new E;if(o.length){const A=PA(bA,o);g.update(A);const e=t.update(A);r=xA(bA,e)}if(e){const A=JA(xA(bA,g.digest()),0,fA);for(let e=0;fA>e;e++)if(A[e]!=a[e])throw new I(wA)}A.enqueue(r)}}})}}class RA extends p{constructor({password:A,rawPassword:e,encryptionStrength:g}){let i;super({start(){t.assign(this,{ready:new d(A=>this.resolveReady=A),password:LA(A,e),strength:g-1,pending:new E})},async transform(A,e){const t=this,{password:g,strength:i,resolveReady:s,ready:o}=t;let a=new E;g?(a=await(async(A,e,t)=>{const g=dA(new E(pA[e]));return kA(g,await HA(A,e,t,g))})(t,i,g),s()):await o;const r=new E(a.length+A.length-A.length%uA);r.set(a,0),e.enqueue(NA(t,A,r,a.length,0))},async flush(A){const{ctr:e,hmac:t,pending:g,ready:s}=this;if(t&&e){await s;let o=new E;if(g.length){const A=e.update(PA(bA,g));t.update(A),o=xA(bA,A)}i.signature=xA(bA,t.digest()).slice(0,fA),A.enqueue(kA(o,i.signature))}}}),i=this}}function NA(A,e,t,g,i,s){const{ctr:o,hmac:a,pending:r}=A,n=e.length-i;let B;for(r.length&&(e=kA(r,e),t=((A,e)=>{if(e&&e>A.length){const t=A;(A=new E(e)).set(t,0)}return A})(t,n-n%uA)),B=0;n-uA>=B;B+=uA){const A=PA(bA,JA(e,B,B+uA));s&&a.update(A);const i=o.update(A);s||a.update(i),t.set(xA(bA,i),B+g)}return A.pending=JA(e,B),t}async function HA(A,g,i,s){A.password=null;const o=await(async(A,e,t,g,i)=>{if(!KA)return EA.importKey(e);try{return await MA.importKey("raw",e,t,!1,i)}catch{return KA=!1,EA.importKey(e)}})(0,i,QA,0,YA),a=await(async(A,e,t)=>{if(!TA)return EA.pbkdf2(e,A.salt,DA.iterations,t);try{return await MA.deriveBits(A,e,t)}catch{return TA=!1,EA.pbkdf2(e,A.salt,DA.iterations,t)}})(t.assign({salt:s},DA),o,8*(2*mA[g]+2)),r=new E(a),n=PA(bA,JA(r,0,mA[g])),B=PA(bA,JA(r,mA[g],2*mA[g])),c=JA(r,2*mA[g]);return t.assign(A,{keys:{key:n,authentication:B,passwordVerification:c},ctr:new UA(new OA(n),e.from(SA)),hmac:new WA(B)}),c}function LA(A,e){return e===Z?rA(A):e}function kA(A,e){let t=A;return A.length+e.length&&(t=new E(A.length+e.length),t.set(A,0),t.set(e,A.length)),t}function JA(A,e,t){return A.subarray(e,t)}function xA(A,e){return A.fromBits(e)}function PA(A,e){return A.toBits(e)}class VA extends p{constructor({password:A,passwordVerification:e,checkPasswordOnly:g}){super({start(){t.assign(this,{password:A,passwordVerification:e}),qA(this,A)},transform(A,e){const t=this;if(t.password){const e=ZA(t,A.subarray(0,12));if(t.password=null,e.at(-1)!=t.passwordVerification)throw new I(lA);A=A.subarray(12)}g?e.error(new I(hA)):e.enqueue(ZA(t,A))}})}}class XA extends p{constructor({password:A,passwordVerification:e}){super({start(){t.assign(this,{password:A,passwordVerification:e}),qA(this,A)},transform(A,e){const t=this;let g,i;if(t.password){t.password=null;const e=dA(new E(12));e[11]=t.passwordVerification,g=new E(A.length+e.length),g.set(jA(t,e),0),i=12}else g=new E(A.length),i=0;g.set(jA(t,A),i),e.enqueue(g)}})}}function ZA(A,e){const t=new E(e.length);for(let g=0;g<e.length;g++)t[g]=_A(A)^e[g],vA(A,t[g]);return t}function jA(A,e){const t=new E(e.length);for(let g=0;g<e.length;g++)t[g]=_A(A)^e[g],vA(A,e[g]);return t}function qA(A,e){const g=[305419896,591751049,878082192];t.assign(A,{keys:g,crcKey0:new oA(g[0]),crcKey2:new oA(g[2])});for(let t=0;t<e.length;t++)vA(A,e.charCodeAt(t))}function vA(A,e){let[t,g,i]=A.keys;A.crcKey0.append([e]),t=~A.crcKey0.get(),g=Ae(o.imul(Ae(g+$A(t)),134775813)+1),A.crcKey2.append([g>>>24]),i=~A.crcKey2.get(),A.keys=[t,g,i]}function _A(A){const e=2|A.keys[2];return $A(o.imul(e,1^e)>>>8)}function $A(A){return 255&A}function Ae(A){return 4294967295&A}const ee="Invalid uncompressed size";class te extends p{constructor(A,{chunkSize:e,CompressionStreamZlib:t,CompressionStream:g}){super({});const{compressed:i,encrypted:s,useCompressionStream:o,zipCrypto:a,signed:r,level:n}=A,B=this;let c,I,E=super.readable;s&&!a||!r||(c=new aA,E=oe(E,c)),i&&(E=se(E,o,{level:n,chunkSize:e},g,t,g)),s&&(a?E=oe(E,new XA(A)):(I=new RA(A),E=oe(E,I))),ie(B,E,()=>{let A;s&&!a&&(A=I.signature),s&&!a||!r||(A=new w(c.value.buffer).getUint32(0)),B.signature=A})}}class ge extends p{constructor(A,{chunkSize:e,DecompressionStreamZlib:t,DecompressionStream:g}){super({});const{zipCrypto:i,encrypted:s,signed:o,signature:a,compressed:r,useCompressionStream:n,deflate64:B}=A;let c,E,C=super.readable;s&&(i?C=oe(C,new VA(A)):(E=new zA(A),C=oe(C,E))),r&&(C=se(C,n,{chunkSize:e,deflate64:B},g,t,g)),s&&!i||!o||(c=new aA,C=oe(C,c)),ie(this,C,()=>{if((!s||i)&&o){const A=new w(c.value.buffer);if(a!=A.getUint32(0,!1))throw new I(wA)}})}}function ie(A,e,g){e=oe(e,new p({flush:g})),t.defineProperty(A,"readable",{get:()=>e})}function se(A,e,t,g,i,s){const o=e&&g?g:i||s,a=t.deflate64?"deflate64-raw":"deflate-raw";try{A=oe(A,new o(a,t))}catch(g){if(!e)throw g;if(i)A=oe(A,new i(a,t));else{if(!s)throw g;A=oe(A,new s(a,t))}}return A}function oe(A,e){return A.pipeThrough(e)}const ae="data",re="close",ne="deflate",Be="inflate";class ce extends p{constructor(A,e){super({});const g=this,{codecType:i}=A;let s;i.startsWith(ne)?s=te:i.startsWith(Be)&&(s=ge),g.outputSize=0;let o=0;const a=new s(A,e),r=super.readable,n=new p({transform(A,e){A&&A.length&&(o+=A.length,e.enqueue(A))},flush(){t.assign(g,{inputSize:o})}}),B=new p({transform(e,t){if(e&&e.length&&(t.enqueue(e),g.outputSize+=e.length,A.outputSize!==Z&&g.outputSize>A.outputSize))throw new I(ee)},flush(){const{signature:A}=a;t.assign(g,{signature:A,inputSize:o})}});t.defineProperty(g,"readable",{get:()=>r.pipeThrough(n).pipeThrough(a).pipeThrough(B)})}}class Ie extends p{constructor(A){let e;super({transform:function t(g,i){if(e){const A=new E(e.length+g.length);A.set(e),A.set(g,e.length),g=A,e=null}g.length>A?(i.enqueue(g.slice(0,A)),t(g.slice(A),i)):e=g},flush(A){e&&e.length&&A.enqueue(e)}})}}let Ee=typeof G!=j;class Ce{constructor(A,{readable:e,writable:g},{options:i,config:s,streamOptions:o,useWebWorkers:a,transferStreams:r,workerURI:n},B){const{signal:c}=o;return t.assign(A,{busy:!0,readable:e.pipeThrough(new Ie(s.chunkSize)).pipeThrough(new le(o),{signal:c}),writable:g,options:t.assign({},i),workerURI:n,transferStreams:r,terminate:()=>new d(e=>{const{worker:t,busy:g}=A;t?(g?A.resolveTerminated=e:(t.terminate(),e()),A.interface=null):e()}),onTaskFinished(){const{resolveTerminated:e}=A;e&&(A.resolveTerminated=null,A.terminated=!0,A.worker.terminate(),e()),A.busy=!1,B(A)}}),(a&&Ee?de:he)(A,s)}}class le extends p{constructor({onstart:A,onprogress:e,size:t,onend:g}){let i=0;super({async start(){A&&await we(A,t)},async transform(A,g){i+=A.length,e&&await we(e,i,t),g.enqueue(A)},async flush(){g&&await we(g,i)}})}}async function we(A,...e){try{await A(...e)}catch{}}function he(A,e){return{run:()=>(async({options:A,readable:e,writable:t,onTaskFinished:g},i)=>{let s;try{if(!A.useCompressionStream)try{await void 0}catch{A.useCompressionStream=!0}s=new ce(A,i),await e.pipeThrough(s).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:g,inputSize:o,outputSize:a}=s;return{signature:g,inputSize:o,outputSize:a}}catch(A){throw s&&(A.outputSize=s.outputSize),A}finally{g()}})(A,e)}}function de(A,e){const{baseURI:g,chunkSize:i}=e;let{wasmURI:s}=e;if(!A.interface){let o;typeof s==q&&(s=s());try{o=((A,e,g)=>{const i={type:"module"};let s,o;if(typeof A==q&&(A=A()),A.startsWith("data:")||A.startsWith("blob:"))try{o=new G(A)}catch{o=new G(A,i)}else{try{s=new c(A,e)}catch{s=A}o=new G(s,i)}return o.addEventListener("message",A=>(async({data:A},e)=>{const{type:g,value:i,messageId:s,result:o,error:a}=A,{reader:r,writer:n,resolveResult:B,rejectResult:c,onTaskFinished:C}=e;try{if(a){const{message:A,stack:e,code:g,name:i,outputSize:s}=a,o=new I(A);t.assign(o,{stack:e,code:g,name:i,outputSize:s}),l(o)}else{if("pull"==g){const{value:A,done:t}=await r.read();Fe({type:ae,value:A,done:t,messageId:s},e)}g==ae&&(await n.ready,await n.write(new E(i)),Fe({type:"ack",messageId:s},e)),g==re&&l(null,o)}}catch(a){Fe({type:re,messageId:s},e),l(a)}function l(A,e){A?c(A):B(e),n&&n.releaseLock(),C()}})(A,g)),o})(A.workerURI,g,A)}catch{return Ee=!1,he(A,e)}t.assign(A,{worker:o,interface:{run:()=>(async(A,e)=>{let g,i;const s=new d((A,e)=>{g=A,i=e});t.assign(A,{reader:null,writer:null,resolveResult:g,rejectResult:i,result:s});const{readable:o,options:a}=A,{writable:r,closed:n}=(A=>{let e;const t=new d(A=>e=A);return{writable:new f({async write(e){const t=A.getWriter();await t.ready,await t.write(e),t.releaseLock()},close(){e()},abort:e=>A.getWriter().abort(e)}),closed:t}})(A.writable),B=Fe({type:"start",options:a,config:e,readable:o,writable:r},A);B||t.assign(A,{reader:o.getReader(),writer:r.getWriter()});const c=await s;return B||await r.getWriter().close(),await n,c})(A,{chunkSize:i,wasmURI:s,baseURI:g})}})}return A.interface}let ue=!0;function Fe(A,{worker:e,writer:t,onTaskFinished:g,transferStreams:i}){try{const{value:t,readable:g,writable:s}=A,o=[];if(t&&(t.byteLength<t.buffer.byteLength?A.value=t.buffer.slice(0,t.byteLength):A.value=t.buffer,o.push(A.value)),i&&ue?(g&&o.push(g),s&&o.push(s)):A.readable=A.writable=null,o.length)try{return e.postMessage(A,o),!0}catch{ue=!1,A.readable=A.writable=null,e.postMessage(A)}else e.postMessage(A)}catch(A){throw t&&t.releaseLock(),g(),A}}let Qe=[];const De=[];let Ye=0;async function pe(A,e){const{options:t,config:g}=e,{transferStreams:s,useWebWorkers:o,useCompressionStream:a,compressed:r,signed:n,encrypted:B}=t,{workerURI:c,maxWorkers:I}=g;e.transferStreams=s||s===Z;const E=!(r||n||B||e.transferStreams);return e.useWebWorkers=!E&&(o||o===Z&&g.useWebWorkers),e.workerURI=e.useWebWorkers&&c?c:Z,t.useCompressionStream=a||a===Z&&g.useCompressionStream,(await(async()=>{const t=Qe.find(A=>!A.busy);if(t)return me(t),new Ce(t,A,e,C);if(Qe.length<I){const t={indexWorker:Ye};return Ye++,Qe.push(t),new Ce(t,A,e,C)}return new d(t=>De.push({resolve:t,stream:A,workerOptions:e}))})()).run();function C(A){if(De.length){const[{resolve:e,stream:t,workerOptions:g}]=De.splice(0,1);e(new Ce(A,t,g,C))}else A.worker?(me(A),((A,e)=>{const{config:t}=e,{terminateWorkerTimeout:g}=t;i.isFinite(g)&&g>=0&&(A.terminated?A.terminated=!1:A.terminateTimeout=setTimeout(async()=>{Qe=Qe.filter(e=>e!=A);try{await A.terminate()}catch{}},g))})(A,e)):Qe=Qe.filter(e=>e!=A)}}function me(A){const{terminateTimeout:e}=A;e&&(clearTimeout(e),A.terminateTimeout=null)}const fe="HTTP error ",Se="HTTP Range not supported",ye="Range",Me="GET",Ge="bytes",be=65536,Oe="writable";class Ue{constructor(){this.size=0}init(){this.initialized=!0}}class We extends Ue{get readable(){const A=this,{chunkSize:e=be}=A,t=new m({start(){this.chunkOffset=0},async pull(g){const{offset:i=0,size:s,diskNumberStart:a}=t,{chunkOffset:r}=this,n=s===Z?e:o.min(e,s-r),B=await gt(A,i+r,n,a);g.enqueue(B),r+e>s||s===Z&&!B.length&&n?g.close():this.chunkOffset+=e}});return t}}class Ke extends Ue{constructor(){super();const A=this,e=new f({write(e){if(!A.initialized)throw new I("Writer not initialized");return A.writeUint8Array(e)}});t.defineProperty(A,Oe,{get:()=>e})}writeUint8Array(){}}class Te extends We{constructor(A){super(),t.assign(this,{blob:A,size:A.size})}async readUint8Array(A,e){const t=this,g=A+e,i=A||g<t.size?t.blob.slice(A,g):t.blob;let s=await i.arrayBuffer();return s.byteLength>e&&(s=s.slice(A,g)),new E(s)}}class ze extends Ue{constructor(A){super();const e=new p,g=[];A&&g.push(["Content-Type",A]),t.defineProperty(this,Oe,{get:()=>e.writable}),this.blob=new B(e.readable,{headers:g}).blob()}getData(){return this.blob}}class Re extends We{constructor(A,e){super(),He(this,A,e)}async init(){await Le(this,je,Pe),super.init()}readUint8Array(A,e){return ke(this,A,e,je,Pe)}}class Ne extends We{constructor(A,e){super(),He(this,A,e)}async init(){await Le(this,qe,Ve),super.init()}readUint8Array(A,e){return ke(this,A,e,qe,Ve)}}function He(A,e,g){const{preventHeadRequest:i,useRangeHeader:s,forceRangeRequests:o,combineSizeEocd:a}=g;delete(g=t.assign({},g)).preventHeadRequest,delete g.useRangeHeader,delete g.forceRangeRequests,delete g.combineSizeEocd,delete g.useXHR,t.assign(A,{url:e,options:g,preventHeadRequest:i,useRangeHeader:s,forceRangeRequests:o,combineSizeEocd:a})}async function Le(A,e,t){const{url:g,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:r}=A;if((A=>{const{baseURI:e}=AA(),{protocol:t}=new c(A,e);return"http:"==t||"https:"==t})(g)&&(o||a)&&(void 0===s||s)){const g=await e(Me,A,Je(A,r?-22:void 0)),s=g.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==Ge))throw new I(Se);{let s;r&&(A.eocdCache=new E(await g.arrayBuffer()));const o=g.headers.get("Content-Range");if(o){const A=o.trim().split(/\s*\/\s*/);if(A.length){const e=A[1];e&&"*"!=e&&(s=i(e))}}s===Z?await Ze(A,e,t):A.size=s}}else await Ze(A,e,t)}async function ke(A,e,t,g,i){const{useRangeHeader:s,forceRangeRequests:o,eocdCache:a,size:r,options:n}=A;if(s||o){if(a&&e==r-L&&t==L)return a;if(r>e){e+t>r&&(t=r-e);const i=await g(Me,A,Je(A,e,t));if(206!=i.status)throw new I(Se);return new E(await i.arrayBuffer())}return new E}{const{data:g}=A;return g||await i(A,n),new E(A.data.subarray(e,e+t))}}function Je(A,e=0,g=1){return t.assign({},xe(A),{[ye]:Ge+"="+(0>e?e:e+"-"+(e+g-1))})}function xe({options:A}){const{headers:e}=A;if(e)return Symbol.iterator in e?t.fromEntries(e):e}async function Pe(A){await Xe(A,je)}async function Ve(A){await Xe(A,qe)}async function Xe(A,e){const t=await e(Me,A,xe(A));A.data=new E(await t.arrayBuffer()),A.size||(A.size=A.data.length)}async function Ze(A,e,t){if(A.preventHeadRequest)await t(A,A.options);else{const g=(await e("HEAD",A,xe(A))).headers.get("Content-Length");g?A.size=i(g):await t(A,A.options)}}async function je(A,{options:e,url:g},i){const s=await fetch(g,t.assign({},e,{method:A,headers:i}));if(400>s.status)return s;throw 416==s.status?new I(Se):new I(fe+(s.statusText||s.status))}function qe(A,{url:e},g){return new d((i,s)=>{const o=new XMLHttpRequest;if(o.addEventListener("load",()=>{if(400>o.status){const A=[];o.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const t=e.trim().split(/\s*:\s*/);t[0]=t[0].trim().replace(/^[a-z]|-[a-z]/g,A=>A.toUpperCase()),A.push(t)}),i({status:o.status,arrayBuffer:()=>o.response,headers:new r(A)})}else s(416==o.status?new I(Se):new I(fe+(o.statusText||o.status)))},!1),o.addEventListener("error",A=>s(A.detail?A.detail.error:new I("Network error")),!1),o.open(A,e),g)for(const A of t.entries(g))o.setRequestHeader(A[0],A[1]);o.responseType="arraybuffer",o.send()})}class ve extends We{constructor(A,e={}){super(),t.assign(this,{url:A,reader:e.useXHR?new Ne(A,e):new Re(A,e)})}set size(A){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(A,e){return this.reader.readUint8Array(A,e)}}class _e extends We{constructor(A){super(),this.readers=A}async init(){const A=this,{readers:e}=A;A.lastDiskNumber=0,A.lastDiskOffset=0,await d.all(e.map(async(t,g)=>{await t.init(),g!=e.length-1&&(A.lastDiskOffset+=t.size),A.size+=t.size})),super.init()}async readUint8Array(A,e,t=0){const g=this,{readers:i}=this;let s,a=t;-1==a&&(a=i.length-1);let r=A;for(;i[a]&&r>=i[a].size;)r-=i[a].size,a++;const n=i[a];if(n){const i=n.size;if(r+e>i){const o=i-r;s=new E(e);const a=await gt(n,r,o);s.set(a,0);const B=await g.readUint8Array(A+o,e-o,t);s.set(B,o),a.length+B.length<e&&(s=s.subarray(0,a.length+B.length))}else s=await gt(n,r,e)}else s=new E;return g.lastDiskNumber=o.max(a,g.lastDiskNumber),s}}class $e extends Ue{constructor(A,e=4294967295){super();const g=this;let i,s,o;t.assign(g,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const a=new f({async write(e){const{availableSize:t}=g;if(o)e.length<t?await r(e):(await r(e.subarray(0,t)),await n(),g.diskOffset+=i.size,g.diskNumber++,o=null,await this.write(e.subarray(t)));else{const{value:t,done:a}=await A.next();if(a&&!t)throw new I("Writer iterator completed too soon");i=t,i.size=0,i.maxSize&&(g.maxSize=i.maxSize),g.availableSize=g.maxSize,await tt(i),s=t.writable,o=s.getWriter(),await this.write(e)}},async close(){await o.ready,await n()}});async function r(A){const e=A.length;e&&(await o.ready,await o.write(A),i.size+=e,g.size+=e,g.availableSize-=e)}async function n(){await o.close()}t.defineProperty(g,Oe,{get:()=>a})}}class At{constructor(A){return e.isArray(A)&&(A=new _e(A)),A instanceof m&&(A={readable:A}),A}}class et{constructor(A){return A.writable===Z&&typeof A.next==q&&(A=new $e(A)),A instanceof f&&(A={writable:A}),A.size===Z&&(A.size=0),A instanceof $e||t.assign(A,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),A}}async function tt(A,e){if(!A.init||A.initialized)return d.resolve();await A.init(e)}function gt(A,e,t,g){return A.readUint8Array(e,t,g)}const it="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function st(A,e){return e&&"cp437"==e.trim().toLowerCase()?(A=>{{let e="";for(let t=0;t<A.length;t++)e+=it[A[t]];return e}})(A):new F(e).decode(A)}const ot="filename",at="rawFilename",rt="comment",nt="rawComment",Bt="uncompressedSize",ct="compressedSize",It="offset",Et="diskNumberStart",Ct="lastModDate",lt="rawLastModDate",wt="lastAccessDate",ht="creationDate",dt="internalFileAttributes",ut="externalFileAttributes",Ft="msDosCompatible",Qt="zip64",Dt="encrypted",Yt="version",pt="versionMadeBy",mt="zipCrypto",ft="directory",St="executable",yt="compressionMethod",Mt="signature",Gt="extraField",bt=[ot,at,ct,Bt,Ct,lt,rt,nt,wt,ht,It,Et,Et,dt,ut,Ft,Qt,Dt,Yt,pt,mt,ft,St,yt,Mt,Gt,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ot{constructor(A){bt.forEach(e=>this[e]=A[e])}}const Ut="password",Wt="rawPassword",Kt="passThrough",Tt="signal",zt="useWebWorkers",Rt="useCompressionStream",Nt="preventClose",Ht="supportZip64SplitFile",Lt="offset",kt="usdz",Jt="File format is not recognized",xt="End of central directory not found",Pt="End of Zip64 central directory locator not found",Vt="Central directory header not found",Xt="Local file header not found",Zt="Zip64 extra field not found",jt="File contains encrypted entry",qt="Encryption method not supported",vt="Compression method not supported",_t="Split zip file",$t="Overlapping entry found",Ag="utf-8",eg="cp437",tg=[[Bt,O],[ct,O],[It,O],[Et,U]],gg={[U]:{getValue:Cg,bytes:4},[O]:{getValue:lg,bytes:8}};class ig{constructor(A,e={}){t.assign(this,{reader:new At(A),options:e,config:AA(),readRanges:[]})}async*getEntriesGenerator(A={}){const e=this;let{reader:g}=e;const{config:i}=e;if(await tt(g),g.size!==Z&&g.readUint8Array||(g=new Te(await new B(g.readable).blob()),await tt(g)),g.size<L)throw new I(Jt);g.chunkSize=eA(i);const s=await(async(A,e,t)=>{const g=new E(4);var i;return i=e,wg(g).setUint32(0,i,!0),await s(22)||await s(o.min(1048582,t));async function s(e){const i=t-e,s=await gt(A,i,e);for(let A=s.length-22;A>=0;A--)if(s[A]==g[0]&&s[A+1]==g[1]&&s[A+2]==g[2]&&s[A+3]==g[3])return{offset:i+A,buffer:s.slice(A,A+22).buffer}}})(g,R,g.size);if(!s)throw Cg(wg(await gt(g,0,4)))==K?new I(_t):new I(xt);const a=wg(s);let r=Cg(a,12),n=Cg(a,16);const c=s.offset,C=Eg(a,20),l=c+L+C;let w=Eg(a,4);const h=g.lastDiskNumber||0;let u=Eg(a,6),F=Eg(a,8),Q=0,D=0;if(n==O||r==O||F==U||u==U){const A=wg(await gt(g,s.offset-20,20));if(Cg(A,0)==H){n=lg(A,8);let e=await gt(g,n,56,-1),t=wg(e);const i=s.offset-20-56;if(Cg(t,0)!=N&&n!=i){const A=n;n=i,n>A&&(Q=n-A),e=await gt(g,n,56,-1),t=wg(e)}if(Cg(t,0)!=N)throw new I(Pt);w==U&&(w=Cg(t,16)),u==U&&(u=Cg(t,20)),F==U&&(F=lg(t,32)),r==O&&(r=lg(t,40)),n-=r}}if(n<g.size||(Q=g.size-n-r-L,n=g.size-r-L),h!=w)throw new I(_t);if(0>n)throw new I(Jt);let Y=0,m=await gt(g,n,r,u),f=wg(m);if(r){const A=s.offset-r;if(Cg(f,Y)!=z&&n!=A){const e=n;n=A,n>e&&(Q+=n-e),m=await gt(g,n,r,u),f=wg(m)}}const S=s.offset-n-(g.lastDiskOffset||0);if(r==S||0>S||(r=S,m=await gt(g,n,r,u),f=wg(m)),0>n||n>=g.size)throw new I(Jt);const y=ng(e,A,"filenameEncoding"),M=ng(e,A,"commentEncoding");for(let s=0;F>s;s++){const a=new sg(g,i,e.options);if(Cg(f,Y)!=z)throw new I(Vt);og(a,f,Y+6);const r=!!a.bitFlag.languageEncodingFlag,n=Y+46,c=n+a.filenameLength,E=c+a.extraFieldLength,C=Eg(f,Y+4),l=!(C>>8),w=C>>8==3,h=m.subarray(n,c),u=Eg(f,Y+32),S=E+u,G=m.subarray(E,S),b=r,O=r,U=Cg(f,Y+38),W=l&&!(16&~Ig(f,Y+38))||w&&16384==(U>>16&61440)||h.length&&47==h.at(-1),K=w&&!!(U>>16&73),T=Cg(f,Y+42)+Q;t.assign(a,{versionMadeBy:C,msDosCompatible:l,compressedSize:0,uncompressedSize:0,commentLength:u,directory:W,offset:T,diskNumberStart:Eg(f,Y+34),internalFileAttributes:Eg(f,Y+36),externalFileAttributes:U,rawFilename:h,filenameUTF8:b,commentUTF8:O,rawExtraField:m.subarray(c,E),executable:K}),a.internalFileAttribute=a.internalFileAttributes,a.externalFileAttribute=a.externalFileAttributes;const R=ng(e,A,"decodeText")||st,N=b?Ag:y||eg,H=O?Ag:M||eg;let L=R(h,N);L===Z&&(L=st(h,N));let k=R(G,H);k===Z&&(k=st(G,H)),t.assign(a,{rawComment:G,filename:L,comment:k,directory:W||L.endsWith(x)}),D=o.max(T,D),ag(a,a,f,Y+6),a.zipCrypto=a.encrypted&&!a.extraFieldAES;const J=new Ot(a);J.getData=(A,t)=>a.getData(A,J,e.readRanges,t),J.arrayBuffer=async A=>{const t=new p,[g]=await d.all([new B(t.readable).arrayBuffer(),a.getData(t,J,e.readRanges,A)]);return g},Y=S;const{onprogress:P}=A;if(P)try{await P(s+1,F,new Ot(a))}catch{}yield J}const G=ng(e,A,"extractPrependedData"),b=ng(e,A,"extractAppendedData");return G&&(e.prependedData=D>0?await gt(g,0,D):new E),e.comment=C?await gt(g,c+L,C):new E,b&&(e.appendedData=l<g.size?await gt(g,l,g.size-l):new E),!0}async getEntries(A={}){const e=[];for await(const t of this.getEntriesGenerator(A))e.push(t);return e}async close(){}}class sg{constructor(A,e,g){t.assign(this,{reader:A,config:e,options:g})}async getData(A,e,g,i={}){const s=this,{reader:o,offset:a,diskNumberStart:r,extraFieldAES:n,extraFieldZip64:B,compressionMethod:c,config:C,bitFlag:l,signature:w,rawLastModDate:h,uncompressedSize:d,compressedSize:u}=s,{dataDescriptor:F}=l,Q=e.localDirectory={},D=wg(await gt(o,a,P,r));let Y=ng(s,i,Ut),p=ng(s,i,Wt);const m=ng(s,i,Kt);if(Y=Y&&Y.length&&Y,p=p&&p.length&&p,n&&99!=n.originalCompressionMethod)throw new I(vt);if(0!=c&&8!=c&&9!=c&&!m)throw new I(vt);if(Cg(D,0)!=W)throw new I(Xt);og(Q,D,4);const{extraFieldLength:S,filenameLength:y,lastAccessDate:M,creationDate:G}=Q;Q.rawExtraField=S?await gt(o,a+P+y,S,r):new E,ag(s,Q,D,4,!0),t.assign(e,{lastAccessDate:M,creationDate:G});const b=s.encrypted&&Q.encrypted&&!m,O=b&&!n;if(m||(e.zipCrypto=O),b){if(!O&&n.strength===Z)throw new I(qt);if(!Y&&!p)throw new I(jt)}const U=a+P+y+S,K=u,z=o.readable;t.assign(z,{diskNumberStart:r,offset:U,size:K});const R=ng(s,i,Tt),N=ng(s,i,"checkPasswordOnly");let H=ng(s,i,"checkOverlappingEntry");const L=ng(s,i,"checkOverlappingEntryOnly");L&&(H=!0);const{onstart:k,onprogress:J,onend:x}=i,V=9==c;let X=ng(s,i,Rt);V&&(X=!1);const j={options:{codecType:Be,password:Y,rawPassword:p,zipCrypto:O,encryptionStrength:n&&n.strength,signed:ng(s,i,"checkSignature")&&!m,passwordVerification:O&&(F?h>>>8&255:w>>>24&255),outputSize:m?u:d,signature:w,compressed:0!=c&&!m,encrypted:s.encrypted&&!m,useWebWorkers:ng(s,i,zt),useCompressionStream:X,transferStreams:ng(s,i,"transferStreams"),deflate64:V,checkPasswordOnly:N},config:C,streamOptions:{signal:R,size:K,onstart:k,onprogress:J,onend:x}};let q;H&&await(async({reader:A,fileEntry:e,offset:t,diskNumberStart:g,signature:i,compressedSize:s,uncompressedSize:o,dataOffset:a,dataDescriptor:r,extraFieldZip64:n,readRanges:B})=>{let c=0;if(g)for(let e=0;g>e;e++)c+=A.readers[e].size;let E=0;if(r&&(E=n?20:12),E){const t=await gt(A,a+s,E+4,g);if(Cg(wg(t),0)==T){const A=Cg(wg(t),4);let g,a;n?(g=lg(wg(t),8),a=lg(wg(t),16)):(g=Cg(wg(t),8),a=Cg(wg(t),12)),(e.encrypted&&!e.zipCrypto||A==i)&&g==s&&a==o&&(E+=4)}}const C={start:c+t,end:c+a+s+E,fileEntry:e};for(const A of B)if(A.fileEntry!=e&&C.start>=A.start&&C.start<A.end){const e=new I($t);throw e.overlappingEntry=A.fileEntry,e}B.push(C)})({reader:o,fileEntry:e,offset:a,diskNumberStart:r,signature:w,compressedSize:u,uncompressedSize:d,dataOffset:U,dataDescriptor:F||Q.bitFlag.dataDescriptor,extraFieldZip64:B||Q.extraFieldZip64,readRanges:g});try{if(!L){N&&(A=new f),A=new et(A),await tt(A,m?u:d),({writable:q}=A);const{outputSize:e}=await pe({readable:z,writable:q},j);if(A.size+=e,e!=(m?u:d))throw new I(ee)}}catch(e){if(e.outputSize!==Z&&(A.size+=e.outputSize),!N||e.message!=hA)throw e}finally{ng(s,i,Nt)||!q||q.locked||await q.getWriter().close()}return N||L?Z:A.getData?A.getData():q}}function og(A,e,g){const i=A.rawBitFlag=Eg(e,g+2),s=!(1&~i),o=Cg(e,g+6);t.assign(A,{encrypted:s,version:Eg(e,g),bitFlag:{level:(6&i)>>1,dataDescriptor:!(8&~i),languageEncodingFlag:(i&J)==J},rawLastModDate:o,lastModDate:Bg(o),filenameLength:Eg(e,g+22),extraFieldLength:Eg(e,g+24)})}function ag(A,e,g,i,s){const{rawExtraField:o}=e,n=e.extraField=new r,B=wg(new E(o));let c=0;try{for(;c<o.length;){const A=Eg(B,c),e=Eg(B,c+2);n.set(A,{type:A,data:o.slice(c+4,c+4+e)}),c+=4+e}}catch{}const C=Eg(g,i+4);t.assign(e,{signature:Cg(g,i+10),compressedSize:Cg(g,i+14),uncompressedSize:Cg(g,i+18)});const l=n.get(1);l&&(((A,e)=>{e.zip64=!0;const t=wg(A.data),g=tg.filter(([A,t])=>e[A]==t);for(let i=0,s=0;i<g.length;i++){const[o,a]=g[i];if(e[o]==a){const g=gg[a];e[o]=A[o]=g.getValue(t,s),s+=g.bytes}else if(A[o])throw new I(Zt)}})(l,e),e.extraFieldZip64=l);const w=n.get(28789);w&&(rg(w,ot,at,e,A),e.extraFieldUnicodePath=w);const h=n.get(25461);h&&(rg(h,rt,nt,e,A),e.extraFieldUnicodeComment=h);const d=n.get(39169);d?(((A,e,g)=>{const i=wg(A.data),s=Ig(i,4);t.assign(A,{vendorVersion:Ig(i,0),vendorId:Ig(i,2),strength:s,originalCompressionMethod:g,compressionMethod:Eg(i,5)}),e.compressionMethod=A.compressionMethod})(d,e,C),e.extraFieldAES=d):e.compressionMethod=C;const u=n.get(10);u&&(((A,e)=>{const g=wg(A.data);let i,s=4;try{for(;s<A.data.length&&!i;){const e=Eg(g,s),t=Eg(g,s+2);1==e&&(i=A.data.slice(s+4,s+4+t)),s+=4+t}}catch{}try{if(i&&24==i.length){const g=wg(i),s=g.getBigUint64(0,!0),o=g.getBigUint64(8,!0),a=g.getBigUint64(16,!0);t.assign(A,{rawLastModDate:s,rawLastAccessDate:o,rawCreationDate:a});const r={lastModDate:cg(s),lastAccessDate:cg(o),creationDate:cg(a)};t.assign(A,r),t.assign(e,r)}}catch{}})(u,e),e.extraFieldNTFS=u);const F=n.get(k);F&&(((A,e,t)=>{const g=wg(A.data),i=Ig(g,0),s=[],o=[];t?(1&~i||(s.push(Ct),o.push(lt)),2&~i||(s.push(wt),o.push("rawLastAccessDate")),4&~i||(s.push(ht),o.push("rawCreationDate"))):5>A.data.length||(s.push(Ct),o.push(lt));let r=1;s.forEach((t,i)=>{if(A.data.length>=r+4){const s=Cg(g,r);e[t]=A[t]=new a(1e3*s);const n=o[i];A[n]=s}r+=4})})(F,e,s),e.extraFieldExtendedTimestamp=F);const Q=n.get(6534);Q&&(e.extraFieldUSDZ=Q)}function rg(A,e,g,i,s){const o=wg(A.data),a=new oA;a.append(s[g]);const r=wg(new E(4));r.setUint32(0,a.get(),!0);const n=Cg(o,1);t.assign(A,{version:Ig(o,0),[e]:st(A.data.subarray(5)),valid:!s.bitFlag.languageEncodingFlag&&n==Cg(r,0)}),A.valid&&(i[e]=A[e],i[e+"UTF8"]=!0)}function ng(A,e,t){return e[t]===Z?A.options[t]:e[t]}function Bg(A){const e=(4294901760&A)>>16,t=65535&A;try{return new a(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch{}}function cg(A){return new a(i(A/s(1e4)-s(116444736e5)))}function Ig(A,e){return A.getUint8(e)}function Eg(A,e){return A.getUint16(e,!0)}function Cg(A,e){return A.getUint32(e,!0)}function lg(A,e){return i(A.getBigUint64(e,!0))}function wg(A){return new w(A.buffer)}const hg="File already exists",dg="Zip file comment exceeds 64KB",ug="File entry comment exceeds 64KB",Fg="File entry name exceeds 64KB",Qg="Version exceeds 65535",Dg="The strength must equal 1, 2, or 3",Yg="Extra field type exceeds 65535",pg="Extra field data exceeds 64KB",mg="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",fg="Undefined uncompressed size",Sg="Zip file not empty",yg=new E([7,0,2,0,65,69,3,0,0]);let Mg=0;const Gg=[];class bg{constructor(A,e={}){const g=(A=new et(A)).availableSize!==Z&&A.availableSize>0&&A.availableSize!==1/0&&A.maxSize!==Z&&A.maxSize>0&&A.maxSize!==1/0;t.assign(this,{writer:A,addSplitZipSignature:g,options:e,config:AA(),files:new r,filenames:new n,offset:e[Lt]===Z?A.size||A.writable.size||0:e[Lt],pendingEntriesSize:0,pendingAddFileCalls:new n,bufferedWrites:0})}async prependZip(A){if(this.filenames.size)throw new I(Sg);A=new At(A);const e=new ig(A.readable),g=await e.getEntries();await e.close(),await A.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=A.size,this.filenames=new n(g.map(A=>A.filename)),this.files=new r(g.map(A=>{const{version:e,compressionMethod:g,lastModDate:i,lastAccessDate:s,creationDate:o,rawFilename:a,bitFlag:r,encrypted:n,uncompressedSize:B,compressedSize:c,diskOffset:I,diskNumber:C,zip64:l}=A;let{rawExtraFieldZip64:w,rawExtraFieldAES:h,rawExtraFieldExtendedTimestamp:d,rawExtraFieldNTFS:u,rawExtraField:F}=A;const{level:Q,languageEncodingFlag:D,dataDescriptor:Y}=r;w=w||new E,h=h||new E,d=d||new E,u=u||new E,F=F||new E;const p=Jg(w,h,d,u,F),m=l&&B>O,f=l&&c>O,{headerArray:S,headerView:y}=xg({version:e,bitFlag:Pg(Q,D,Y,n,g),compressionMethod:g,uncompressedSize:B,compressedSize:c,lastModDate:i,rawFilename:a,zip64CompressedSize:f,zip64UncompressedSize:m,extraFieldLength:p});return t.assign(A,{zip64UncompressedSize:m,zip64CompressedSize:f,zip64Offset:l&&this.offset-I>O,zip64DiskNumberStart:l&&C>U,rawExtraFieldZip64:w,rawExtraFieldAES:h,rawExtraFieldExtendedTimestamp:d,rawExtraFieldNTFS:u,rawExtraField:F,extendedTimestamp:d.length>0||u.length>0,extraFieldExtendedTimestampFlag:1+(s?2:0)+(o?4:0),headerArray:S,headerView:y}),[A.filename,A]}))}async add(A="",g,i={}){const r=this,{pendingAddFileCalls:n,config:c}=r;let l;Mg<c.maxWorkers?Mg++:await new d(A=>Gg.push(A));try{if(A=A.trim(),r.filenames.has(A))throw new I(hg);return r.filenames.add(A),l=(async(A,g,i,r)=>{g=g.trim();const n=Kg(A,r,Ft),c=Kg(A,r,pt,n?20:768),l=Kg(A,r,St);if(c>U)throw new I(Qg);let w=Kg(A,r,ut,0);!r[ft]&&g.endsWith(x)&&(r[ft]=!0),Kg(A,r,ft)?(g.endsWith(x)||(g+=x),0===w&&(w=16,n||(w|=16877<<16))):n||0!==w||(w=l?493<<16:27525120);const h=Kg(A,r,"encodeText",rA);let u=h(g);if(u===Z&&(u=rA(g)),Jg(u)>U)throw new I(Fg);const F=r[rt]||"";let Q=h(F);if(Q===Z&&(Q=rA(F)),Jg(Q)>U)throw new I(ug);const D=Kg(A,r,Yt,20);if(D>U)throw new I(Qg);const Y=Kg(A,r,Ct,new a),m=Kg(A,r,wt),f=Kg(A,r,ht),S=Kg(A,r,dt,0),y=Kg(A,r,Kt);let M,G;y||(M=Kg(A,r,Ut),G=Kg(A,r,Wt));const b=Kg(A,r,"encryptionStrength",3),z=Kg(A,r,mt),R=Kg(A,r,"extendedTimestamp",!0),N=Kg(A,r,"keepOrder",!0),H=Kg(A,r,zt),L=Kg(A,r,"bufferedWrite"),J=Kg(A,r,"dataDescriptorSignature",!1),j=Kg(A,r,Tt),q=Kg(A,r,"useUnicodeFileNames",!0),v=Kg(A,r,yt);let _=Kg(A,r,"level"),$=Kg(A,r,Rt),AA=Kg(A,r,"dataDescriptor");L&&AA===Z&&(AA=!1),(AA===Z||z)&&(AA=!0),_!==Z&&6!=_&&($=!1),$||A.config.CompressionStream!==Z||A.config.CompressionStreamZlib!==Z||(_=0);let tA=Kg(A,r,Qt);if(!z&&(M!==Z||G!==Z)&&(1>b||b>3))throw new I(Dg);let gA=new E;const iA=r[Gt];if(iA){let A=0,e=0;iA.forEach(e=>A+=4+Jg(e)),gA=new E(A),iA.forEach((A,t)=>{if(t>U)throw new I(Yg);if(Jg(A)>U)throw new I(pg);Lg(gA,new C([t]),e),Lg(gA,new C([Jg(A)]),e+2),Lg(gA,A,e+4),e+=4+Jg(A)})}let sA=0,oA=0,aA=0;if(y&&(aA=r[Bt],aA===Z))throw new I(fg);const nA=!0===tA;i&&(i=new At(i),await tt(i),y?(r.uncompressedSize=aA,sA=Tg(aA)):i.size===Z?(AA=!0,(tA||tA===Z)&&(tA=!0,aA=sA=4294967296)):(r.uncompressedSize=aA=i.size,sA=Tg(aA)));const{diskOffset:BA,diskNumber:cA,maxSize:IA}=A.writer,EA=nA||aA>O,CA=nA||sA>O,lA=nA||A.offset+A.pendingEntriesSize-BA>O,wA=Kg(A,r,Ht,!0)&&nA||cA+o.ceil(A.pendingEntriesSize/IA)>U;if(lA||EA||CA||wA){if(!1===tA||!N)throw new I(mg);tA=!0}tA=tA||!1;const hA=Kg(A,r,Dt),dA=(A=>{const{rawFilename:e,lastModDate:t,lastAccessDate:g,creationDate:i,level:a,zip64:r,zipCrypto:n,useUnicodeFileNames:B,dataDescriptor:c,directory:I,rawExtraField:C,encryptionStrength:l,extendedTimestamp:w,passThrough:h,encrypted:d,zip64UncompressedSize:u,zip64CompressedSize:F,zip64Offset:Q,zip64DiskNumberStart:D,uncompressedSize:Y,offset:p,diskNumberStart:m}=A;let{version:f,compressionMethod:S}=A;const y=!I&&(a>0||a===Z&&0!==S);let M;const G=h||!y,b=r&&(A.bufferedWrite||!u&&!F||G);if(r){let A=4;u&&(A+=8),F&&(A+=8),Q&&(A+=8),D&&(A+=4),M=new E(A);const e=kg(M);if(Rg(e,0,1),Rg(e,2,Jg(M)-4),b){const A=kg(M);let e=4;u&&(Hg(A,e,s(Y)),e+=8),F&&G&&(Hg(A,e,s(Y)),e+=8),Q&&(Hg(A,e,s(p)),e+=8),D&&(Ng(A,e,m),e+=4)}}else M=new E;let O,U,K,T;if(d&&!n){O=new E(Jg(yg)+2);const A=kg(O);Rg(A,0,39169),Lg(O,yg,2),zg(A,8,l)}else O=new E;if(w){K=new E(9+(g?4:0)+(i?4:0));const A=kg(K);Rg(A,0,k),Rg(A,2,Jg(K)-4),T=1+(g?2:0)+(i?4:0),zg(A,4,T);let e=5;Ng(A,e,o.floor(t.getTime()/1e3)),e+=4,g&&(Ng(A,e,o.floor(g.getTime()/1e3)),e+=4),i&&Ng(A,e,o.floor(i.getTime()/1e3));try{U=new E(36);const A=kg(U),e=Wg(t);Rg(A,0,10),Rg(A,2,32),Rg(A,8,1),Rg(A,10,24),Hg(A,12,e),Hg(A,20,Wg(g)||e),Hg(A,28,Wg(i)||e)}catch{U=new E}}else U=K=new E;S===Z&&(S=y?8:0),r&&(f=f>45?f:45),d&&!n&&(f=f>51?f:51,O[9]=S,S=99);const z=b?Jg(M):0,R=z+Jg(O,K,U,C),{headerArray:N,headerView:H,rawLastModDate:L}=xg({version:f,bitFlag:Pg(a,B,c,d,S),compressionMethod:S,uncompressedSize:Y,lastModDate:X>t?X:t>V?V:t,rawFilename:e,zip64CompressedSize:F,zip64UncompressedSize:u,extraFieldLength:R});let J=P;const x=new E(J+Jg(e)+R),j=kg(x);return Ng(j,0,W),Lg(x,N,4),Lg(x,e,J),J+=Jg(e),b&&Lg(x,M,J),J+=z,Lg(x,O,J),J+=Jg(O),Lg(x,K,J),J+=Jg(K),Lg(x,U,J),J+=Jg(U),Lg(x,C,J),c&&(Ng(j,18,0),Ng(j,22,0)),{localHeaderArray:x,localHeaderView:j,headerArray:N,headerView:H,lastModDate:t,rawLastModDate:L,encrypted:d,compressed:y,version:f,compressionMethod:S,extraFieldExtendedTimestampFlag:T,rawExtraFieldZip64:M,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:K,rawExtraFieldNTFS:U,rawExtraFieldAES:O,extraFieldLength:R}})(r=t.assign({},r,{rawFilename:u,rawComment:Q,version:D,versionMadeBy:c,lastModDate:Y,lastAccessDate:m,creationDate:f,rawExtraField:gA,zip64:tA,zip64UncompressedSize:EA,zip64CompressedSize:CA,zip64Offset:lA,zip64DiskNumberStart:wA,password:M,rawPassword:G,level:_,useWebWorkers:H,encryptionStrength:b,extendedTimestamp:R,zipCrypto:z,bufferedWrite:L,keepOrder:N,useUnicodeFileNames:q,dataDescriptor:AA,dataDescriptorSignature:J,signal:j,msDosCompatible:n,internalFileAttribute:S,internalFileAttributes:S,externalFileAttribute:w,externalFileAttributes:w,useCompressionStream:$,passThrough:y,encrypted:!!(M&&Jg(M)||G&&Jg(G))||y&&hA,signature:r[Mt],compressionMethod:v,uncompressedSize:aA,offset:A.offset-BA,diskNumberStart:cA})),uA=(({zip64:A,dataDescriptor:e,dataDescriptorSignature:t})=>{let g,i=new E,s=0,o=A?20:12;return t&&(o+=4),e&&(i=new E(o),g=kg(i),t&&(s=4,Ng(g,0,T))),{dataDescriptorArray:i,dataDescriptorView:g,dataDescriptorOffset:s}})(r),FA=Jg(dA.localHeaderArray,uA.dataDescriptorArray);let QA;oA=FA+sA,A.options[kt]&&(oA+=oA+64),A.pendingEntriesSize+=oA;try{QA=await(async(A,g,i,o,a)=>{const{files:r,writer:n}=A,{keepOrder:c,dataDescriptor:C,signal:l}=a,{headerInfo:w}=o,h=A.options[kt],u=e.from(r.values()).pop();let F,Q,D,Y,m,f,S,y={};r.set(g,y);try{let e;c&&(e=u&&u.lock,y.lock=new d(A=>D=A)),!(a.bufferedWrite||A.writerLocked||A.bufferedWrites&&c)&&C||h?(f=n,await M()):(f=new p,f.size=0,F=!0,A.bufferedWrites++,await tt(n)),await tt(f);const{writable:Q,diskOffset:b}=n;if(A.addSplitZipSignature){delete A.addSplitZipSignature;const e=new E(4);Ng(kg(e),0,K),await Ug(n,e),A.offset+=4}h&&((A,e)=>{const{headerInfo:t}=A;let{localHeaderArray:g,extraFieldLength:i}=t,s=kg(g),o=64-(e+Jg(g))%64;4>o&&(o+=64);const a=new E(o),r=kg(a);Rg(r,0,6534),Rg(r,2,o-2);const n=g;t.localHeaderArray=g=new E(Jg(n)+o),Lg(g,n),Lg(g,a,Jg(n)),s=kg(g),Rg(s,28,i+o),A.metadataSize+=o})(o,A.offset-b);const{localHeaderView:U,localHeaderArray:W}=w;F||(await e,await G(Q));const{diskNumber:T}=n;m=!0,y.diskNumberStart=T,F?S=new B(f.readable).blob():await Ug(f,W),y=await(async(A,e,{diskNumberStart:g,lock:i},o,a,r)=>{const{headerInfo:n,dataDescriptorInfo:B,metadataSize:c}=o,{headerArray:I,headerView:E,lastModDate:C,rawLastModDate:l,encrypted:w,compressed:h,version:d,compressionMethod:u,rawExtraFieldZip64:F,localExtraFieldZip64Length:Q,rawExtraFieldExtendedTimestamp:D,extraFieldExtendedTimestampFlag:Y,rawExtraFieldNTFS:p,rawExtraFieldAES:m}=n,{dataDescriptorArray:f}=B,{rawFilename:S,lastAccessDate:y,creationDate:M,password:G,rawPassword:b,level:O,zip64:U,zip64UncompressedSize:W,zip64CompressedSize:K,zip64Offset:T,zip64DiskNumberStart:z,zipCrypto:R,dataDescriptor:N,directory:H,executable:L,versionMadeBy:k,rawComment:J,rawExtraField:x,useWebWorkers:P,onstart:V,onprogress:X,onend:j,signal:q,encryptionStrength:v,extendedTimestamp:_,msDosCompatible:$,internalFileAttributes:AA,externalFileAttributes:tA,useCompressionStream:gA,passThrough:iA}=r,sA={lock:i,versionMadeBy:k,zip64:U,directory:!!H,executable:!!L,filenameUTF8:!0,rawFilename:S,commentUTF8:!0,rawComment:J,rawExtraFieldZip64:F,localExtraFieldZip64Length:Q,rawExtraFieldExtendedTimestamp:D,rawExtraFieldNTFS:p,rawExtraFieldAES:m,rawExtraField:x,extendedTimestamp:_,msDosCompatible:$,internalFileAttributes:AA,externalFileAttributes:tA,diskNumberStart:g};let{signature:oA,uncompressedSize:aA}=r,rA=0;iA||(aA=0);const{writable:nA}=e;if(A){A.chunkSize=eA(a);const t=A.readable,g=A.size,i={options:{codecType:ne,level:O,rawPassword:b,password:G,encryptionStrength:v,zipCrypto:w&&R,passwordVerification:w&&R&&l>>8&255,signed:!iA,compressed:h&&!iA,encrypted:w&&!iA,useWebWorkers:P,useCompressionStream:gA,transferStreams:!1},config:a,streamOptions:{signal:q,size:g,onstart:V,onprogress:X,onend:j}};try{const A=await pe({readable:t,writable:nA},i);rA=A.outputSize,e.size+=rA,iA||(aA=A.inputSize,oA=A.signature)}catch(A){throw A.outputSize!==Z&&(e.size+=A.outputSize),A}}return(({signature:A,compressedSize:e,uncompressedSize:t,headerInfo:g,dataDescriptorInfo:i},{zip64:o,zipCrypto:a,dataDescriptor:r})=>{const{headerView:n,encrypted:B}=g,{dataDescriptorView:c,dataDescriptorOffset:I}=i;B&&!a||A===Z||(Ng(n,10,A),r&&Ng(c,I,A)),o?r&&(Hg(c,I+4,s(e)),Hg(c,I+12,s(t))):(Ng(n,14,e),Ng(n,18,t),r&&(Ng(c,I+4,e),Ng(c,I+8,t)))})({signature:oA,compressedSize:rA,uncompressedSize:aA,headerInfo:n,dataDescriptorInfo:B},r),N&&await Ug(e,f),t.assign(sA,{uncompressedSize:aA,compressedSize:rA,lastModDate:C,rawLastModDate:l,creationDate:M,lastAccessDate:y,encrypted:w,zipCrypto:R,size:c+rA,compressionMethod:u,version:d,headerArray:I,headerView:E,signature:oA,extraFieldExtendedTimestampFlag:Y,zip64UncompressedSize:W,zip64CompressedSize:K,zip64Offset:T,zip64DiskNumberStart:z}),sA})(i,f,y,o,A.config,a);const{zip64:z}=y;if(m=!1,r.set(g,y),y.filename=g,F){const[t]=await d.all([S,f.writable.getWriter().close(),e]);await M(),Y=!0,y.diskNumberStart=n.diskNumber,y.offset=A.offset-n.diskOffset,z&&Og(y),(({rawFilename:A,encrypted:e,zip64:t,localExtraFieldZip64Length:g,signature:i,compressedSize:o,uncompressedSize:a,offset:r,diskNumberStart:n,zip64UncompressedSize:B,zip64CompressedSize:c,zip64Offset:I,zip64DiskNumberStart:E},C,{dataDescriptor:l})=>{if(l||(e||Ng(C,14,i),t||(Ng(C,18,o),Ng(C,22,a))),t&&g){let e=P+Jg(A)+4;B&&(Hg(C,e,s(a)),e+=8),c&&(Hg(C,e,s(o)),e+=8),I&&(Hg(C,e,s(r)),e+=8),E&&Ng(C,e,n)}})(y,U,a),await G(Q),await Ug(n,W),await t.stream().pipeTo(Q,{preventClose:!0,preventAbort:!0,signal:l}),n.size+=f.size,Y=!1}else y.offset=A.offset-b,z&&Og(y);if(y.offset>O&&!z)throw new I(mg);return A.offset+=y.size,y}catch(e){if(F&&Y||!F&&m){if(A.hasCorruptedEntries=!0,e)try{e.corruptedEntry=!0}catch{}F?A.offset+=f.size:A.offset=f.size}throw r.delete(g),e}finally{F&&A.bufferedWrites--,D&&D(),Q&&Q()}async function M(){A.writerLocked=!0;const{lockWriter:e}=A;A.lockWriter=new d(e=>Q=()=>{A.writerLocked=!1,e()}),await e}async function G(A){Jg(w.localHeaderArray)>n.availableSize&&(n.availableSize=0,await Ug(A,new E))}})(A,g,i,{headerInfo:dA,dataDescriptorInfo:uA,metadataSize:FA},r)}finally{A.pendingEntriesSize-=oA}return t.assign(QA,{name:g,comment:F,extraField:iA}),new Ot(QA)})(r,A,g,i),n.add(l),await l}catch(e){throw r.filenames.delete(A),e}finally{n.delete(l);const A=Gg.shift();A?A():Mg--}}remove(A){const{filenames:e,files:t}=this;if("string"==typeof A&&(A=t.get(A)),A&&A.filename!==Z){const{filename:g}=A;if(e.has(g)&&t.has(g))return e.delete(g),t.delete(g),!0}return!1}async close(A=new E,t={}){const{pendingAddFileCalls:g,writer:i}=this,{writable:a}=i;for(;g.size;)await d.allSettled(e.from(g));return await(async(A,t,g)=>{const{files:i,writer:a}=A,{diskOffset:r}=a;let{diskNumber:n}=a,B=0,c=0,C=A.offset-r,l=i.size;for(const[,A]of i){const{rawFilename:e,rawExtraFieldZip64:t,rawExtraFieldAES:g,rawComment:i,rawExtraFieldNTFS:s,rawExtraField:a,extendedTimestamp:r,extraFieldExtendedTimestampFlag:n,lastModDate:B}=A;let I;if(r){I=new E(9);const A=kg(I);Rg(A,0,k),Rg(A,2,5),zg(A,4,n),Ng(A,5,o.floor(B.getTime()/1e3))}else I=new E;A.rawExtraFieldExtendedTimestamp=I,c+=46+Jg(e,i,t,g,s,I,a)}const w=new E(c),h=kg(w);await tt(a);let d=0;for(const[A,t]of e.from(i.values()).entries()){const{offset:e,rawFilename:s,rawExtraFieldZip64:o,rawExtraFieldAES:r,rawExtraFieldExtendedTimestamp:n,rawExtraFieldNTFS:c,rawExtraField:I,rawComment:E,versionMadeBy:C,headerArray:l,headerView:u,zip64:F,zip64UncompressedSize:Q,zip64CompressedSize:D,zip64DiskNumberStart:Y,zip64Offset:p,internalFileAttributes:m,externalFileAttributes:f,diskNumberStart:S,uncompressedSize:y,compressedSize:M}=t,G=Jg(o,r,n,c,I);Ng(h,B,z),Rg(h,B+4,C),Q||Ng(u,18,y),D||Ng(u,14,M),Lg(w,l,B+6);let b=B+P;if(Rg(h,b,G),b+=2,Rg(h,b,Jg(E)),b+=2,Rg(h,b,F&&Y?U:S),b+=2,Rg(h,b,m),b+=2,f&&Ng(h,b,f),b+=4,Ng(h,b,F&&p?O:e),b+=4,Lg(w,s,b),b+=Jg(s),Lg(w,o,b),b+=Jg(o),Lg(w,r,b),b+=Jg(r),Lg(w,n,b),b+=Jg(n),Lg(w,c,b),b+=Jg(c),Lg(w,I,b),b+=Jg(I),Lg(w,E,b),B-d>a.availableSize&&(a.availableSize=0,await Ug(a,w.slice(d,B)),d=B),B=b,g.onprogress)try{await g.onprogress(A+1,i.size,new Ot(t))}catch{}}await Ug(a,d?w.slice(d):w);let u=a.diskNumber;const{availableSize:F}=a;L>F&&u++;let Q=Kg(A,g,Qt);if(C>O||c>O||l>U||u>U){if(!1===Q)throw new I(mg);Q=!0}const D=new E(Q?98:L),Y=kg(D);B=0,Q&&(Ng(Y,0,N),Hg(Y,4,s(44)),Rg(Y,12,45),Rg(Y,14,45),Ng(Y,16,u),Ng(Y,20,n),Hg(Y,24,s(l)),Hg(Y,32,s(l)),Hg(Y,40,s(c)),Hg(Y,48,s(C)),Ng(Y,56,H),Hg(Y,64,s(C)+s(c)),Ng(Y,72,u+1),Kg(A,g,Ht,!0)&&(u=U,n=U),l=U,C=O,c=O,B+=76),Ng(Y,B,R),Rg(Y,B+4,u),Rg(Y,B+6,n),Rg(Y,B+8,l),Rg(Y,B+10,l),Ng(Y,B+12,c),Ng(Y,B+16,C);const p=Jg(t);if(p){if(p>U)throw new I(dg);Rg(Y,B+20,p)}await Ug(a,D),p&&await Ug(a,t)})(this,A,t),Kg(this,t,Nt)||await a.getWriter().close(),i.getData?i.getData():a}}function Og({compressedSize:A,uncompressedSize:e,offset:t,diskNumberStart:g,zip64UncompressedSize:i,zip64CompressedSize:o,zip64Offset:a,zip64DiskNumberStart:r,rawExtraFieldZip64:n}){const B=kg(n);let c=4;i&&(Hg(B,c,s(e)),c+=8),o&&(Hg(B,c,s(A)),c+=8),a&&(Hg(B,c,s(t)),c+=8),r&&Ng(B,c,g)}async function Ug(A,e){const{writable:t}=A,g=t.getWriter();try{await g.ready,A.size+=Jg(e),await g.write(e)}finally{g.releaseLock()}}function Wg(A){if(A)return(s(A.getTime())+s(116444736e5))*s(1e4)}function Kg(A,e,t,g){const i=e[t]===Z?A.options[t]:e[t];return i===Z?g:i}function Tg(A){return A+5*(o.floor(A/16383)+1)}function zg(A,e,t){A.setUint8(e,t)}function Rg(A,e,t){A.setUint16(e,t,!0)}function Ng(A,e,t){A.setUint32(e,t,!0)}function Hg(A,e,t){A.setBigUint64(e,t,!0)}function Lg(A,e,t){A.set(e,t)}function kg(A){return new w(A.buffer)}function Jg(...A){let e=0;return A.forEach(A=>A&&(e+=A.length)),e}function xg({version:A,bitFlag:e,compressionMethod:t,uncompressedSize:g,compressedSize:i,lastModDate:s,rawFilename:o,zip64CompressedSize:a,zip64UncompressedSize:r,extraFieldLength:n}){const B=new E(26),c=kg(B);Rg(c,0,A),Rg(c,2,e),Rg(c,4,t);const I=new l(1),C=kg(I);Rg(C,0,(s.getHours()<<6|s.getMinutes())<<5|s.getSeconds()/2),Rg(C,2,(s.getFullYear()-1980<<4|s.getMonth()+1)<<5|s.getDate());const w=I[0];return Ng(c,6,w),(a||i!==Z)&&Ng(c,14,a?O:i),(r||g!==Z)&&Ng(c,18,r?O:g),Rg(c,22,Jg(o)),Rg(c,24,n),{headerArray:B,headerView:c,rawLastModDate:w}}function Pg(A,e,t,g,i){let s=0;return e&&(s|=J),t&&(s|=8),8!=i&&9!=i||(0>A||A>3||(s|=6),A>3&&5>=A&&(s|=4),9==A&&(s|=2)),g&&(s|=1),s}try{tA({baseURI:void 0===Q&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===Q?location.href:b&&"SCRIPT"===b.tagName.toUpperCase()&&b.src||new c("zip-legacy.min.js",Q.baseURI).href})}catch{}(A=>{let e;A({workerURI:()=>(e||(e="data:text/javascript;base64,"+(A=>{A=(A=>{const e=(A=(A+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,t=[];for(let g=0;e>g;g+=4){const e=iA.indexOf(A[g])<<18|iA.indexOf(A[g+1])<<12|(63&iA.indexOf(A[g+2]))<<6|63&iA.indexOf(A[g+3]);t.push(e>>16&255),"="!==A[g+2]&&t.push(e>>8&255),"="!==A[g+3]&&t.push(255&e)}return new E(t)})(A);let e=new E(1024),t=0;for(let i=0;i<A.length;){const s=A[i++];if(128&s){const o=3+(127&s),a=A[i++]<<8|A[i++],r=t-a;g(t+o);for(let A=0;o>A;A++)e[t++]=e[r+A]}else{const o=s;g(t+o);for(let g=0;o>g&&i<A.length;g++)e[t++]=A[i++]}}return(A=>{let e="";const t=A.length;let g=0;for(;t>g+2;g+=3){const t=A[g]<<16|A[g+1]<<8|A[g+2];e+=iA[t>>18&63]+iA[t>>12&63]+iA[t>>6&63]+iA[63&t]}const i=t-g;if(1===i){const t=A[g]<<16;e+=iA[t>>18&63]+iA[t>>12&63]+"=="}else if(2===i){const t=A[g]<<16|A[g+1]<<8;e+=iA[t>>18&63]+iA[t>>12&63]+iA[t>>6&63]+"="}return e})(new E(e.buffer.slice(0,t)));function g(A){if(e.length<A){let g=2*e.length;for(;A>g;)g*=2;const i=new E(g);i.set(e.subarray(0,t)),e=i}}})("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")),e)})})(tA),A.BlobReader=Te,A.BlobWriter=ze,A.Data64URIReader=class extends We{constructor(A){super();let e=A.length;for(;"="==A.charAt(e-1);)e--;const g=A.indexOf(",")+1;t.assign(this,{dataURI:A,dataStart:g,size:o.floor(.75*(e-g))})}readUint8Array(A,e){const{dataStart:t,dataURI:g}=this,i=new E(e),s=4*o.floor(A/3),a=atob(g.substring(s+t,4*o.ceil((A+e)/3)+t)),r=A-3*o.floor(s/4);let n=0;for(let A=r;r+e>A&&A<a.length;A++)i[A-r]=a.charCodeAt(A),n++;return n<i.length?i.subarray(0,n):i}},A.Data64URIWriter=class extends Ke{constructor(A){super(),t.assign(this,{data:"data:"+(A||"")+";base64,",pending:[]})}writeUint8Array(A){const e=this;let t=0,i=e.pending;const s=e.pending.length;for(e.pending="",t=0;t<3*o.floor((s+A.length)/3)-s;t++)i+=g.fromCharCode(A[t]);for(;t<A.length;t++)e.pending+=g.fromCharCode(A[t]);i.length&&(i.length>2?e.data+=Y(i):e.pending+=i)}getData(){return this.data+Y(this.pending)}},A.ERR_BAD_FORMAT=Jt,A.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Vt,A.ERR_DUPLICATED_NAME=hg,A.ERR_ENCRYPTED=jt,A.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Pt,A.ERR_EOCDR_NOT_FOUND=xt,A.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Zt,A.ERR_HTTP_RANGE=Se,A.ERR_INVALID_COMMENT=dg,A.ERR_INVALID_ENCRYPTION_STRENGTH=Dg,A.ERR_INVALID_ENTRY_COMMENT=ug,A.ERR_INVALID_ENTRY_NAME=Fg,A.ERR_INVALID_EXTRAFIELD_DATA=pg,A.ERR_INVALID_EXTRAFIELD_TYPE=Yg,A.ERR_INVALID_PASSWORD=lA,A.ERR_INVALID_SIGNATURE=wA,A.ERR_INVALID_UNCOMPRESSED_SIZE=ee,A.ERR_INVALID_VERSION=Qg,A.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Xt,A.ERR_OVERLAPPING_ENTRY=$t,A.ERR_SPLIT_ZIP_FILE=_t,A.ERR_UNDEFINED_UNCOMPRESSED_SIZE=fg,A.ERR_UNSUPPORTED_COMPRESSION=vt,A.ERR_UNSUPPORTED_ENCRYPTION=qt,A.ERR_UNSUPPORTED_FORMAT=mg,A.ERR_ZIP_NOT_EMPTY=Sg,A.HttpRangeReader=class extends ve{constructor(A,e={}){e.useRangeHeader=!0,super(A,e)}},A.HttpReader=ve,A.Reader=We,A.SplitDataReader=_e,A.SplitDataWriter=$e,A.TextReader=class extends Te{constructor(A){super(new h([A],{type:"text/plain"}))}},A.TextWriter=class extends ze{constructor(A){super(A),t.assign(this,{encoding:A,utf8:!A||"utf-8"==A.toLowerCase()})}async getData(){const{encoding:A,utf8:e}=this,g=await super.getData();if(g.text&&e)return g.text();{const e=new FileReader;return new d((i,s)=>{t.assign(e,{onload:({target:A})=>i(A.result),onerror:()=>s(e.error)}),e.readAsText(g,A)})}}},A.Uint8ArrayReader=class extends We{constructor(A){super(),A=new E(A.buffer,A.byteOffset,A.byteLength),t.assign(this,{array:A,size:A.length})}readUint8Array(A,e){return this.array.slice(A,A+e)}},A.Uint8ArrayWriter=class extends Ke{init(A=0){t.assign(this,{offset:0,array:new E(A)}),super.init()}writeUint8Array(A){const e=this;if(e.offset+A.length>e.array.length){const t=e.array;e.array=new E(t.length+A.length),e.array.set(t)}e.array.set(A,e.offset),e.offset+=A.length}getData(){return this.array}},A.Writer=Ke,A.ZipReader=ig,A.ZipReaderStream=class{constructor(A={}){const{readable:e,writable:t}=new p,g=new ig(e,A).getEntriesGenerator();this.readable=new m({async pull(A){const{done:e,value:t}=await g.next();if(e)return A.close();const i={...t,readable:(()=>{const{readable:A,writable:e}=new p;if(t.getData)return t.getData(e),A})()};delete i.getData,A.enqueue(i)}}),this.writable=t}},A.ZipWriter=bg,A.ZipWriterStream=class{constructor(A={}){const{readable:e,writable:t}=new p;this.readable=e,this.zipWriter=new bg(t,A)}transform(A){const{readable:e,writable:t}=new p({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(A,e),{readable:this.readable,writable:t}}writable(A){const{readable:e,writable:t}=new p;return this.zipWriter.add(A,e),t}close(A,e={}){return this.zipWriter.close(A,e)}},A.configure=tA,A.getMimeType=()=>"application/octet-stream",A.terminateWorkers=async()=>{await d.allSettled(Qe.map(A=>(me(A),A.terminate())))}});
1
+ ((A,e)=>{"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((A="undefined"!=typeof globalThis?globalThis:A||self).zip={})})(this,function(A){"use strict";const{Array:e,Object:t,String:g,Number:i,BigInt:s,Math:o,Date:a,Map:r,Set:n,Response:B,URL:c,Error:I,Uint8Array:E,Uint16Array:C,Uint32Array:l,DataView:w,Blob:h,Promise:d,TextEncoder:u,TextDecoder:F,document:Q,crypto:D,btoa:Y,TransformStream:p,ReadableStream:m,WritableStream:f,CompressionStream:S,DecompressionStream:y,navigator:M,Worker:G}="undefined"!=typeof globalThis?globalThis:this||self;var b=void 0!==Q?Q.currentScript:null;const O=4294967295,U=65535,W=67324752,K=134695760,T=K,z=33639248,R=101010256,N=101075792,H=117853008,L=22,k=21589,J=2048,x="/",P=30,V=new a(2107,11,31),X=new a(1980,0,1),Z=void 0,j="undefined",q="function";let v=2;try{typeof M!=j&&M.hardwareConcurrency&&(v=M.hardwareConcurrency)}catch{}const _={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:v,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof S!=j&&S,DecompressionStream:typeof y!=j&&y},$=t.assign({},_);function AA(){return $}function eA(A){return o.max(A.chunkSize,64)}function tA(A){const{baseURI:e,chunkSize:t,maxWorkers:g,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:o,CompressionStream:a,DecompressionStream:r,CompressionStreamZlib:n,DecompressionStreamZlib:B,workerURI:c,wasmURI:I}=A;gA("baseURI",e),gA("wasmURI",I),gA("workerURI",c),gA("chunkSize",t),gA("maxWorkers",g),gA("terminateWorkerTimeout",i),gA("useCompressionStream",s),gA("useWebWorkers",o),gA("CompressionStream",a),gA("DecompressionStream",r),gA("CompressionStreamZlib",n),gA("DecompressionStreamZlib",B)}function gA(A,e){e!==Z&&($[A]=e)}const iA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sA=[];for(let A=0;256>A;A++){let e=A;for(let A=0;8>A;A++)1&e?e=e>>>1^3988292384:e>>>=1;sA[A]=e}class oA{constructor(A){this.crc=A||-1}append(A){let e=0|this.crc;for(let t=0,g=0|A.length;g>t;t++)e=e>>>8^sA[255&(e^A[t])];this.crc=e}get(){return~this.crc}}class aA extends p{constructor(){let A;const e=new oA;super({transform(A,t){e.append(A),t.enqueue(A)},flush(){const t=new E(4);new w(t.buffer).setUint32(0,e.get()),A.value=t}}),A=this}}function rA(A){if(typeof u==j){const e=new E((A=unescape(encodeURIComponent(A))).length);for(let t=0;t<e.length;t++)e[t]=A.charCodeAt(t);return e}return(new u).encode(A)}const nA={concat(A,e){if(0===A.length||0===e.length)return A.concat(e);const t=A[A.length-1],g=nA.getPartial(t);return 32===g?A.concat(e):nA._shiftRight(e,g,0|t,A.slice(0,A.length-1))},bitLength(A){const e=A.length;if(0===e)return 0;const t=A[e-1];return 32*(e-1)+nA.getPartial(t)},clamp(A,e){if(32*A.length<e)return A;const t=(A=A.slice(0,o.ceil(e/32))).length;return e&=31,t>0&&e&&(A[t-1]=nA.partial(e,A[t-1]&2147483648>>e-1,1)),A},partial:(A,e,t)=>32===A?e:(t?0|e:e<<32-A)+1099511627776*A,getPartial:A=>o.round(A/1099511627776)||32,_shiftRight(A,e,t,g){for(void 0===g&&(g=[]);e>=32;e-=32)g.push(t),t=0;if(0===e)return g.concat(A);for(let i=0;i<A.length;i++)g.push(t|A[i]>>>e),t=A[i]<<32-e;const i=A.length?A[A.length-1]:0,s=nA.getPartial(i);return g.push(nA.partial(e+s&31,e+s>32?t:g.pop(),1)),g}},BA={bytes:{fromBits(A){const e=nA.bitLength(A)/8,t=new E(e);let g;for(let i=0;e>i;i++)3&i||(g=A[i/4]),t[i]=g>>>24,g<<=8;return t},toBits(A){const e=[];let t,g=0;for(t=0;t<A.length;t++)g=g<<8|A[t],3&~t||(e.push(g),g=0);return 3&t&&e.push(nA.partial(8*(3&t),g)),e}}},cA=class{constructor(A){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],A?(e._h=A._h.slice(0),e._buffer=A._buffer.slice(0),e._length=A._length):e.reset()}reset(){const A=this;return A._h=A._init.slice(0),A._buffer=[],A._length=0,A}update(A){const e=this;"string"==typeof A&&(A=BA.utf8String.toBits(A));const t=e._buffer=nA.concat(e._buffer,A),g=e._length,i=e._length=g+nA.bitLength(A);if(i>9007199254740991)throw new I("Cannot hash more than 2^53 - 1 bits");const s=new l(t);let o=0;for(let A=e.blockSize+g-(e.blockSize+g&e.blockSize-1);i>=A;A+=e.blockSize)e._block(s.subarray(16*o,16*(o+1))),o+=1;return t.splice(0,16*o),e}finalize(){const A=this;let e=A._buffer;const t=A._h;e=nA.concat(e,[nA.partial(1,1)]);for(let A=e.length+2;15&A;A++)e.push(0);for(e.push(o.floor(A._length/4294967296)),e.push(0|A._length);e.length;)A._block(e.splice(0,16));return A.reset(),t}_f(A,e,t,g){return A>19?A>39?A>59?A>79?void 0:e^t^g:e&t|e&g|t&g:e^t^g:e&t|~e&g}_S(A,e){return e<<A|e>>>32-A}_block(A){const t=this,g=t._h,i=e(80);for(let e=0;16>e;e++)i[e]=A[e];let s=g[0],a=g[1],r=g[2],n=g[3],B=g[4];for(let A=0;79>=A;A++){16>A||(i[A]=t._S(1,i[A-3]^i[A-8]^i[A-14]^i[A-16]));const e=t._S(5,s)+t._f(A,a,r,n)+B+i[A]+t._key[o.floor(A/20)]|0;B=n,n=r,r=t._S(30,a),a=s,s=e}g[0]=g[0]+s|0,g[1]=g[1]+a|0,g[2]=g[2]+r|0,g[3]=g[3]+n|0,g[4]=g[4]+B|0}},IA={getRandomValues(A){const e=new l(A.buffer),t=A=>{let e=987654321;const t=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&t,(((e<<16)+(A=18e3*(65535&A)+(A>>16)&t)&t)/4294967296+.5)*(o.random()>.5?1:-1))};for(let g,i=0;i<A.length;i+=4){const A=t(4294967296*(g||o.random()));g=987654071*A(),e[i/4]=4294967296*A()|0}return A}},EA={importKey:A=>new EA.hmacSha1(BA.bytes.toBits(A)),pbkdf2(A,e,t,g){if(t=t||1e4,0>g||0>t)throw new I("invalid params to pbkdf2");const i=1+(g>>5)<<2;let s,o,a,r,n;const B=new ArrayBuffer(i),c=new w(B);let E=0;const C=nA;for(e=BA.bytes.toBits(e),n=1;(i||1)>E;n++){for(s=o=A.encrypt(C.concat(e,[n])),a=1;t>a;a++)for(o=A.encrypt(o),r=0;r<o.length;r++)s[r]^=o[r];for(a=0;(i||1)>E&&a<s.length;a++)c.setInt32(E,s[a]),E+=4}return B.slice(0,g/8)},hmacSha1:class{constructor(A){const e=this,t=e._hash=cA,g=[[],[]];e._baseHash=[new t,new t];const i=e._baseHash[0].blockSize/32;A.length>i&&(A=(new t).update(A).finalize());for(let e=0;i>e;e++)g[0][e]=909522486^A[e],g[1][e]=1549556828^A[e];e._baseHash[0].update(g[0]),e._baseHash[1].update(g[1]),e._resultHash=new t(e._baseHash[0])}reset(){const A=this;A._resultHash=new A._hash(A._baseHash[0]),A._updated=!1}update(A){this._updated=!0,this._resultHash.update(A)}digest(){const A=this,e=A._resultHash.finalize(),t=new A._hash(A._baseHash[1]).update(e).finalize();return A.reset(),t}encrypt(A){if(this._updated)throw new I("encrypt on already updated hmac called!");return this.update(A),this.digest(A)}}},CA=typeof D!=j&&typeof D.getRandomValues==q,lA="Invalid password",wA="Invalid signature",hA="zipjs-abort-check-password";function dA(A){return CA?D.getRandomValues(A):IA.getRandomValues(A)}const uA=16,FA={name:"PBKDF2"},QA=t.assign({hash:{name:"HMAC"}},FA),DA=t.assign({iterations:1e3,hash:{name:"SHA-1"}},FA),YA=["deriveBits"],pA=[8,12,16],mA=[16,24,32],fA=10,SA=[0,0,0,0],yA=typeof D!=j,MA=yA&&D.subtle,GA=yA&&typeof MA!=j,bA=BA.bytes,OA=class{constructor(A){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],g=e._tables[1],i=A.length;let s,o,a,r=1;if(4!==i&&6!==i&&8!==i)throw new I("invalid aes key size");for(e._key=[o=A.slice(0),a=[]],s=i;4*i+28>s;s++){let A=o[s-1];(s%i===0||8===i&&s%i===4)&&(A=t[A>>>24]<<24^t[A>>16&255]<<16^t[A>>8&255]<<8^t[255&A],s%i===0&&(A=A<<8^A>>>24^r<<24,r=r<<1^283*(r>>7))),o[s]=o[s-i]^A}for(let A=0;s;A++,s--){const e=o[3&A?s:s-4];a[A]=4>=s||4>A?e:g[0][t[e>>>24]]^g[1][t[e>>16&255]]^g[2][t[e>>8&255]]^g[3][t[255&e]]}}encrypt(A){return this._crypt(A,0)}decrypt(A){return this._crypt(A,1)}_precompute(){const A=this._tables[0],e=this._tables[1],t=A[4],g=e[4],i=[],s=[];let o,a,r,n;for(let A=0;256>A;A++)s[(i[A]=A<<1^283*(A>>7))^A]=A;for(let B=o=0;!t[B];B^=a||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,t[B]=s,g[s]=B,n=i[r=i[a=i[B]]];let c=16843009*n^65537*r^257*a^16843008*B,I=257*i[s]^16843008*s;for(let t=0;4>t;t++)A[t][B]=I=I<<24^I>>>8,e[t][s]=c=c<<24^c>>>8}for(let t=0;5>t;t++)A[t]=A[t].slice(0),e[t]=e[t].slice(0)}_crypt(A,e){if(4!==A.length)throw new I("invalid aes block size");const t=this._key[e],g=t.length/4-2,i=[0,0,0,0],s=this._tables[e],o=s[0],a=s[1],r=s[2],n=s[3],B=s[4];let c,E,C,l=A[0]^t[0],w=A[e?3:1]^t[1],h=A[2]^t[2],d=A[e?1:3]^t[3],u=4;for(let A=0;g>A;A++)c=o[l>>>24]^a[w>>16&255]^r[h>>8&255]^n[255&d]^t[u],E=o[w>>>24]^a[h>>16&255]^r[d>>8&255]^n[255&l]^t[u+1],C=o[h>>>24]^a[d>>16&255]^r[l>>8&255]^n[255&w]^t[u+2],d=o[d>>>24]^a[l>>16&255]^r[w>>8&255]^n[255&h]^t[u+3],u+=4,l=c,w=E,h=C;for(let A=0;4>A;A++)i[e?3&-A:A]=B[l>>>24]<<24^B[w>>16&255]<<16^B[h>>8&255]<<8^B[255&d]^t[u++],c=l,l=w,w=h,h=d,d=c;return i}},UA=class{constructor(A,e){this._prf=A,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(A){return this.calculate(this._prf,A,this._iv)}incWord(A){if(255&~(A>>24))A+=1<<24;else{let e=A>>16&255,t=A>>8&255,g=255&A;255===e?(e=0,255===t?(t=0,255===g?g=0:++g):++t):++e,A=0,A+=e<<16,A+=t<<8,A+=g}return A}incCounter(A){0===(A[0]=this.incWord(A[0]))&&(A[1]=this.incWord(A[1]))}calculate(A,e,t){let g;if(!(g=e.length))return[];const i=nA.bitLength(e);for(let i=0;g>i;i+=4){this.incCounter(t);const g=A.encrypt(t);e[i]^=g[0],e[i+1]^=g[1],e[i+2]^=g[2],e[i+3]^=g[3]}return nA.clamp(e,i)}},WA=EA.hmacSha1;let KA=yA&&GA&&typeof MA.importKey==q,TA=yA&&GA&&typeof MA.deriveBits==q;class zA extends p{constructor({password:A,rawPassword:e,signed:g,encryptionStrength:i,checkPasswordOnly:s}){super({start(){t.assign(this,{ready:new d(A=>this.resolveReady=A),password:LA(A,e),signed:g,strength:i-1,pending:new E})},async transform(A,e){const t=this,{password:g,strength:i,resolveReady:o,ready:a}=t;g?(await(async(A,e,t,g)=>{const i=await HA(A,e,t,JA(g,0,pA[e])),s=JA(g,pA[e]);if(i[0]!=s[0]||i[1]!=s[1])throw new I(lA)})(t,i,g,JA(A,0,pA[i]+2)),A=JA(A,pA[i]+2),s?e.error(new I(hA)):o()):await a;const r=new E(A.length-fA-(A.length-fA)%uA);e.enqueue(NA(t,A,r,0,fA,!0))},async flush(A){const{signed:e,ctr:t,hmac:g,pending:i,ready:s}=this;if(g&&t){await s;const o=JA(i,0,i.length-fA),a=JA(i,i.length-fA);let r=new E;if(o.length){const A=PA(bA,o);g.update(A);const e=t.update(A);r=xA(bA,e)}if(e){const A=JA(xA(bA,g.digest()),0,fA);for(let e=0;fA>e;e++)if(A[e]!=a[e])throw new I(wA)}A.enqueue(r)}}})}}class RA extends p{constructor({password:A,rawPassword:e,encryptionStrength:g}){let i;super({start(){t.assign(this,{ready:new d(A=>this.resolveReady=A),password:LA(A,e),strength:g-1,pending:new E})},async transform(A,e){const t=this,{password:g,strength:i,resolveReady:s,ready:o}=t;let a=new E;g?(a=await(async(A,e,t)=>{const g=dA(new E(pA[e]));return kA(g,await HA(A,e,t,g))})(t,i,g),s()):await o;const r=new E(a.length+A.length-A.length%uA);r.set(a,0),e.enqueue(NA(t,A,r,a.length,0))},async flush(A){const{ctr:e,hmac:t,pending:g,ready:s}=this;if(t&&e){await s;let o=new E;if(g.length){const A=e.update(PA(bA,g));t.update(A),o=xA(bA,A)}i.signature=xA(bA,t.digest()).slice(0,fA),A.enqueue(kA(o,i.signature))}}}),i=this}}function NA(A,e,t,g,i,s){const{ctr:o,hmac:a,pending:r}=A,n=e.length-i;let B;for(r.length&&(e=kA(r,e),t=((A,e)=>{if(e&&e>A.length){const t=A;(A=new E(e)).set(t,0)}return A})(t,n-n%uA)),B=0;n-uA>=B;B+=uA){const A=PA(bA,JA(e,B,B+uA));s&&a.update(A);const i=o.update(A);s||a.update(i),t.set(xA(bA,i),B+g)}return A.pending=JA(e,B),t}async function HA(A,g,i,s){A.password=null;const o=await(async(A,e,t,g,i)=>{if(!KA)return EA.importKey(e);try{return await MA.importKey("raw",e,t,!1,i)}catch{return KA=!1,EA.importKey(e)}})(0,i,QA,0,YA),a=await(async(A,e,t)=>{if(!TA)return EA.pbkdf2(e,A.salt,DA.iterations,t);try{return await MA.deriveBits(A,e,t)}catch{return TA=!1,EA.pbkdf2(e,A.salt,DA.iterations,t)}})(t.assign({salt:s},DA),o,8*(2*mA[g]+2)),r=new E(a),n=PA(bA,JA(r,0,mA[g])),B=PA(bA,JA(r,mA[g],2*mA[g])),c=JA(r,2*mA[g]);return t.assign(A,{keys:{key:n,authentication:B,passwordVerification:c},ctr:new UA(new OA(n),e.from(SA)),hmac:new WA(B)}),c}function LA(A,e){return e===Z?rA(A):e}function kA(A,e){let t=A;return A.length+e.length&&(t=new E(A.length+e.length),t.set(A,0),t.set(e,A.length)),t}function JA(A,e,t){return A.subarray(e,t)}function xA(A,e){return A.fromBits(e)}function PA(A,e){return A.toBits(e)}class VA extends p{constructor({password:A,passwordVerification:e,checkPasswordOnly:g}){super({start(){t.assign(this,{password:A,passwordVerification:e}),qA(this,A)},transform(A,e){const t=this;if(t.password){const e=ZA(t,A.subarray(0,12));if(t.password=null,e.at(-1)!=t.passwordVerification)throw new I(lA);A=A.subarray(12)}g?e.error(new I(hA)):e.enqueue(ZA(t,A))}})}}class XA extends p{constructor({password:A,passwordVerification:e}){super({start(){t.assign(this,{password:A,passwordVerification:e}),qA(this,A)},transform(A,e){const t=this;let g,i;if(t.password){t.password=null;const e=dA(new E(12));e[11]=t.passwordVerification,g=new E(A.length+e.length),g.set(jA(t,e),0),i=12}else g=new E(A.length),i=0;g.set(jA(t,A),i),e.enqueue(g)}})}}function ZA(A,e){const t=new E(e.length);for(let g=0;g<e.length;g++)t[g]=_A(A)^e[g],vA(A,t[g]);return t}function jA(A,e){const t=new E(e.length);for(let g=0;g<e.length;g++)t[g]=_A(A)^e[g],vA(A,e[g]);return t}function qA(A,e){const g=[305419896,591751049,878082192];t.assign(A,{keys:g,crcKey0:new oA(g[0]),crcKey2:new oA(g[2])});for(let t=0;t<e.length;t++)vA(A,e.charCodeAt(t))}function vA(A,e){let[t,g,i]=A.keys;A.crcKey0.append([e]),t=~A.crcKey0.get(),g=Ae(o.imul(Ae(g+$A(t)),134775813)+1),A.crcKey2.append([g>>>24]),i=~A.crcKey2.get(),A.keys=[t,g,i]}function _A(A){const e=2|A.keys[2];return $A(o.imul(e,1^e)>>>8)}function $A(A){return 255&A}function Ae(A){return 4294967295&A}const ee="Invalid uncompressed size";class te extends p{constructor(A,{chunkSize:e,CompressionStreamZlib:t,CompressionStream:g}){super({});const{compressed:i,encrypted:s,useCompressionStream:o,zipCrypto:a,signed:r,level:n}=A,B=this;let c,I,E=super.readable;s&&!a||!r||(c=new aA,E=oe(E,c)),i&&(E=se(E,o,{level:n,chunkSize:e},g,t,g)),s&&(a?E=oe(E,new XA(A)):(I=new RA(A),E=oe(E,I))),ie(B,E,()=>{let A;s&&!a&&(A=I.signature),s&&!a||!r||(A=new w(c.value.buffer).getUint32(0)),B.signature=A})}}class ge extends p{constructor(A,{chunkSize:e,DecompressionStreamZlib:t,DecompressionStream:g}){super({});const{zipCrypto:i,encrypted:s,signed:o,signature:a,compressed:r,useCompressionStream:n,deflate64:B}=A;let c,E,C=super.readable;s&&(i?C=oe(C,new VA(A)):(E=new zA(A),C=oe(C,E))),r&&(C=se(C,n,{chunkSize:e,deflate64:B},g,t,g)),s&&!i||!o||(c=new aA,C=oe(C,c)),ie(this,C,()=>{if((!s||i)&&o){const A=new w(c.value.buffer);if(a!=A.getUint32(0,!1))throw new I(wA)}})}}function ie(A,e,g){e=oe(e,new p({flush:g})),t.defineProperty(A,"readable",{get:()=>e})}function se(A,e,t,g,i,s){const o=e&&g?g:i||s,a=t.deflate64?"deflate64-raw":"deflate-raw";try{A=oe(A,new o(a,t))}catch(g){if(!e)throw g;if(i)A=oe(A,new i(a,t));else{if(!s)throw g;A=oe(A,new s(a,t))}}return A}function oe(A,e){return A.pipeThrough(e)}const ae="data",re="close",ne="deflate",Be="inflate";class ce extends p{constructor(A,e){super({});const g=this,{codecType:i}=A;let s;i.startsWith(ne)?s=te:i.startsWith(Be)&&(s=ge),g.outputSize=0;let o=0;const a=new s(A,e),r=super.readable,n=new p({transform(A,e){A&&A.length&&(o+=A.length,e.enqueue(A))},flush(){t.assign(g,{inputSize:o})}}),B=new p({transform(e,t){if(e&&e.length&&(t.enqueue(e),g.outputSize+=e.length,A.outputSize!==Z&&g.outputSize>A.outputSize))throw new I(ee)},flush(){const{signature:A}=a;t.assign(g,{signature:A,inputSize:o})}});t.defineProperty(g,"readable",{get:()=>r.pipeThrough(n).pipeThrough(a).pipeThrough(B)})}}class Ie extends p{constructor(A){let e;super({transform:function t(g,i){if(e){const A=new E(e.length+g.length);A.set(e),A.set(g,e.length),g=A,e=null}g.length>A?(i.enqueue(g.slice(0,A)),t(g.slice(A),i)):e=g},flush(A){e&&e.length&&A.enqueue(e)}})}}let Ee=typeof G!=j;class Ce{constructor(A,{readable:e,writable:g},{options:i,config:s,streamOptions:o,useWebWorkers:a,transferStreams:r,workerURI:n},B){const{signal:c}=o;return t.assign(A,{busy:!0,readable:e.pipeThrough(new Ie(s.chunkSize)).pipeThrough(new le(o),{signal:c}),writable:g,options:t.assign({},i),workerURI:n,transferStreams:r,terminate:()=>new d(e=>{const{worker:t,busy:g}=A;t?(g?A.resolveTerminated=e:(t.terminate(),e()),A.interface=null):e()}),onTaskFinished(){const{resolveTerminated:e}=A;e&&(A.resolveTerminated=null,A.terminated=!0,A.worker.terminate(),e()),A.busy=!1,B(A)}}),(a&&Ee?de:he)(A,s)}}class le extends p{constructor({onstart:A,onprogress:e,size:t,onend:g}){let i=0;super({async start(){A&&await we(A,t)},async transform(A,g){i+=A.length,e&&await we(e,i,t),g.enqueue(A)},async flush(){g&&await we(g,i)}})}}async function we(A,...e){try{await A(...e)}catch{}}function he(A,e){return{run:()=>(async({options:A,readable:e,writable:t,onTaskFinished:g},i)=>{let s;try{if(!A.useCompressionStream)try{await void 0}catch{A.useCompressionStream=!0}s=new ce(A,i),await e.pipeThrough(s).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:g,inputSize:o,outputSize:a}=s;return{signature:g,inputSize:o,outputSize:a}}catch(A){throw s&&(A.outputSize=s.outputSize),A}finally{g()}})(A,e)}}function de(A,e){const{baseURI:g,chunkSize:i}=e;let{wasmURI:s}=e;if(!A.interface){let o;typeof s==q&&(s=s());try{o=((A,e,g)=>{const i={type:"module"};let s,o;if(typeof A==q&&(A=A()),A.startsWith("data:")||A.startsWith("blob:"))try{o=new G(A)}catch{o=new G(A,i)}else{try{s=new c(A,e)}catch{s=A}o=new G(s,i)}return o.addEventListener("message",A=>(async({data:A},e)=>{const{type:g,value:i,messageId:s,result:o,error:a}=A,{reader:r,writer:n,resolveResult:B,rejectResult:c,onTaskFinished:C}=e;try{if(a){const{message:A,stack:e,code:g,name:i,outputSize:s}=a,o=new I(A);t.assign(o,{stack:e,code:g,name:i,outputSize:s}),l(o)}else{if("pull"==g){const{value:A,done:t}=await r.read();Fe({type:ae,value:A,done:t,messageId:s},e)}g==ae&&(await n.ready,await n.write(new E(i)),Fe({type:"ack",messageId:s},e)),g==re&&l(null,o)}}catch(a){Fe({type:re,messageId:s},e),l(a)}function l(A,e){A?c(A):B(e),n&&n.releaseLock(),C()}})(A,g)),o})(A.workerURI,g,A)}catch{return Ee=!1,he(A,e)}t.assign(A,{worker:o,interface:{run:()=>(async(A,e)=>{let g,i;const s=new d((A,e)=>{g=A,i=e});t.assign(A,{reader:null,writer:null,resolveResult:g,rejectResult:i,result:s});const{readable:o,options:a}=A,{writable:r,closed:n}=(A=>{let e;const t=new d(A=>e=A);return{writable:new f({async write(e){const t=A.getWriter();await t.ready,await t.write(e),t.releaseLock()},close(){e()},abort:e=>A.getWriter().abort(e)}),closed:t}})(A.writable),B=Fe({type:"start",options:a,config:e,readable:o,writable:r},A);B||t.assign(A,{reader:o.getReader(),writer:r.getWriter()});const c=await s;return B||await r.getWriter().close(),await n,c})(A,{chunkSize:i,wasmURI:s,baseURI:g})}})}return A.interface}let ue=!0;function Fe(A,{worker:e,writer:t,onTaskFinished:g,transferStreams:i}){try{const{value:t,readable:g,writable:s}=A,o=[];if(t&&(A.value=t,o.push(A.value.buffer)),i&&ue?(g&&o.push(g),s&&o.push(s)):A.readable=A.writable=null,o.length)try{return e.postMessage(A,o),!0}catch{ue=!1,A.readable=A.writable=null,e.postMessage(A)}else e.postMessage(A)}catch(A){throw t&&t.releaseLock(),g(),A}}let Qe=[];const De=[];let Ye=0;async function pe(A,e){const{options:t,config:g}=e,{transferStreams:s,useWebWorkers:o,useCompressionStream:a,compressed:r,signed:n,encrypted:B}=t,{workerURI:c,maxWorkers:I}=g;e.transferStreams=s||s===Z;const E=!(r||n||B||e.transferStreams);return e.useWebWorkers=!E&&(o||o===Z&&g.useWebWorkers),e.workerURI=e.useWebWorkers&&c?c:Z,t.useCompressionStream=a||a===Z&&g.useCompressionStream,(await(async()=>{const t=Qe.find(A=>!A.busy);if(t)return me(t),new Ce(t,A,e,C);if(Qe.length<I){const t={indexWorker:Ye};return Ye++,Qe.push(t),new Ce(t,A,e,C)}return new d(t=>De.push({resolve:t,stream:A,workerOptions:e}))})()).run();function C(A){if(De.length){const[{resolve:e,stream:t,workerOptions:g}]=De.splice(0,1);e(new Ce(A,t,g,C))}else A.worker?(me(A),((A,e)=>{const{config:t}=e,{terminateWorkerTimeout:g}=t;i.isFinite(g)&&g>=0&&(A.terminated?A.terminated=!1:A.terminateTimeout=setTimeout(async()=>{Qe=Qe.filter(e=>e!=A);try{await A.terminate()}catch{}},g))})(A,e)):Qe=Qe.filter(e=>e!=A)}}function me(A){const{terminateTimeout:e}=A;e&&(clearTimeout(e),A.terminateTimeout=null)}const fe="HTTP error ",Se="HTTP Range not supported",ye="Range",Me="GET",Ge="bytes",be=65536,Oe="writable";class Ue{constructor(){this.size=0}init(){this.initialized=!0}}class We extends Ue{get readable(){const A=this,{chunkSize:e=be}=A,t=new m({start(){this.chunkOffset=0},async pull(g){const{offset:i=0,size:s,diskNumberStart:a}=t,{chunkOffset:r}=this,n=s===Z?e:o.min(e,s-r),B=await gt(A,i+r,n,a);g.enqueue(B),r+e>s||s===Z&&!B.length&&n?g.close():this.chunkOffset+=e}});return t}}class Ke extends Ue{constructor(){super();const A=this,e=new f({write(e){if(!A.initialized)throw new I("Writer not initialized");return A.writeUint8Array(e)}});t.defineProperty(A,Oe,{get:()=>e})}writeUint8Array(){}}class Te extends We{constructor(A){super(),t.assign(this,{blob:A,size:A.size})}async readUint8Array(A,e){const t=this,g=A+e,i=A||g<t.size?t.blob.slice(A,g):t.blob;let s=await i.arrayBuffer();return s.byteLength>e&&(s=s.slice(A,g)),new E(s)}}class ze extends Ue{constructor(A){super();const e=new p,g=[];A&&g.push(["Content-Type",A]),t.defineProperty(this,Oe,{get:()=>e.writable}),this.blob=new B(e.readable,{headers:g}).blob()}getData(){return this.blob}}class Re extends We{constructor(A,e){super(),He(this,A,e)}async init(){await Le(this,je,Pe),super.init()}readUint8Array(A,e){return ke(this,A,e,je,Pe)}}class Ne extends We{constructor(A,e){super(),He(this,A,e)}async init(){await Le(this,qe,Ve),super.init()}readUint8Array(A,e){return ke(this,A,e,qe,Ve)}}function He(A,e,g){const{preventHeadRequest:i,useRangeHeader:s,forceRangeRequests:o,combineSizeEocd:a}=g;delete(g=t.assign({},g)).preventHeadRequest,delete g.useRangeHeader,delete g.forceRangeRequests,delete g.combineSizeEocd,delete g.useXHR,t.assign(A,{url:e,options:g,preventHeadRequest:i,useRangeHeader:s,forceRangeRequests:o,combineSizeEocd:a})}async function Le(A,e,t){const{url:g,preventHeadRequest:s,useRangeHeader:o,forceRangeRequests:a,combineSizeEocd:r}=A;if((A=>{const{baseURI:e}=AA(),{protocol:t}=new c(A,e);return"http:"==t||"https:"==t})(g)&&(o||a)&&(void 0===s||s)){const g=await e(Me,A,Je(A,r?-22:void 0)),s=g.headers.get("Accept-Ranges");if(!(a||s&&s.toLowerCase()==Ge))throw new I(Se);{let s;r&&(A.eocdCache=new E(await g.arrayBuffer()));const o=g.headers.get("Content-Range");if(o){const A=o.trim().split(/\s*\/\s*/);if(A.length){const e=A[1];e&&"*"!=e&&(s=i(e))}}s===Z?await Ze(A,e,t):A.size=s}}else await Ze(A,e,t)}async function ke(A,e,t,g,i){const{useRangeHeader:s,forceRangeRequests:o,eocdCache:a,size:r,options:n}=A;if(s||o){if(a&&e==r-L&&t==L)return a;if(r>e){e+t>r&&(t=r-e);const i=await g(Me,A,Je(A,e,t));if(206!=i.status)throw new I(Se);return new E(await i.arrayBuffer())}return new E}{const{data:g}=A;return g||await i(A,n),new E(A.data.subarray(e,e+t))}}function Je(A,e=0,g=1){return t.assign({},xe(A),{[ye]:Ge+"="+(0>e?e:e+"-"+(e+g-1))})}function xe({options:A}){const{headers:e}=A;if(e)return Symbol.iterator in e?t.fromEntries(e):e}async function Pe(A){await Xe(A,je)}async function Ve(A){await Xe(A,qe)}async function Xe(A,e){const t=await e(Me,A,xe(A));A.data=new E(await t.arrayBuffer()),A.size||(A.size=A.data.length)}async function Ze(A,e,t){if(A.preventHeadRequest)await t(A,A.options);else{const g=(await e("HEAD",A,xe(A))).headers.get("Content-Length");g?A.size=i(g):await t(A,A.options)}}async function je(A,{options:e,url:g},i){const s=await fetch(g,t.assign({},e,{method:A,headers:i}));if(400>s.status)return s;throw 416==s.status?new I(Se):new I(fe+(s.statusText||s.status))}function qe(A,{url:e},g){return new d((i,s)=>{const o=new XMLHttpRequest;if(o.addEventListener("load",()=>{if(400>o.status){const A=[];o.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const t=e.trim().split(/\s*:\s*/);t[0]=t[0].trim().replace(/^[a-z]|-[a-z]/g,A=>A.toUpperCase()),A.push(t)}),i({status:o.status,arrayBuffer:()=>o.response,headers:new r(A)})}else s(416==o.status?new I(Se):new I(fe+(o.statusText||o.status)))},!1),o.addEventListener("error",A=>s(A.detail?A.detail.error:new I("Network error")),!1),o.open(A,e),g)for(const A of t.entries(g))o.setRequestHeader(A[0],A[1]);o.responseType="arraybuffer",o.send()})}class ve extends We{constructor(A,e={}){super(),t.assign(this,{url:A,reader:e.useXHR?new Ne(A,e):new Re(A,e)})}set size(A){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(A,e){return this.reader.readUint8Array(A,e)}}class _e extends We{constructor(A){super(),this.readers=A}async init(){const A=this,{readers:e}=A;A.lastDiskNumber=0,A.lastDiskOffset=0,await d.all(e.map(async(t,g)=>{await t.init(),g!=e.length-1&&(A.lastDiskOffset+=t.size),A.size+=t.size})),super.init()}async readUint8Array(A,e,t=0){const g=this,{readers:i}=this;let s,a=t;-1==a&&(a=i.length-1);let r=A;for(;i[a]&&r>=i[a].size;)r-=i[a].size,a++;const n=i[a];if(n){const i=n.size;if(r+e>i){const o=i-r;s=new E(e);const a=await gt(n,r,o);s.set(a,0);const B=await g.readUint8Array(A+o,e-o,t);s.set(B,o),a.length+B.length<e&&(s=s.subarray(0,a.length+B.length))}else s=await gt(n,r,e)}else s=new E;return g.lastDiskNumber=o.max(a,g.lastDiskNumber),s}}class $e extends Ue{constructor(A,e=4294967295){super();const g=this;let i,s,o;t.assign(g,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const a=new f({async write(e){const{availableSize:t}=g;if(o)e.length<t?await r(e):(await r(e.subarray(0,t)),await n(),g.diskOffset+=i.size,g.diskNumber++,o=null,await this.write(e.subarray(t)));else{const{value:t,done:a}=await A.next();if(a&&!t)throw new I("Writer iterator completed too soon");i=t,i.size=0,i.maxSize&&(g.maxSize=i.maxSize),g.availableSize=g.maxSize,await tt(i),s=t.writable,o=s.getWriter(),await this.write(e)}},async close(){await o.ready,await n()}});async function r(A){const e=A.length;e&&(await o.ready,await o.write(A),i.size+=e,g.size+=e,g.availableSize-=e)}async function n(){await o.close()}t.defineProperty(g,Oe,{get:()=>a})}}class At{constructor(A){return e.isArray(A)&&(A=new _e(A)),A instanceof m&&(A={readable:A}),A}}class et{constructor(A){return A.writable===Z&&typeof A.next==q&&(A=new $e(A)),A instanceof f&&(A={writable:A}),A.size===Z&&(A.size=0),A instanceof $e||t.assign(A,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),A}}async function tt(A,e){if(!A.init||A.initialized)return d.resolve();await A.init(e)}function gt(A,e,t,g){return A.readUint8Array(e,t,g)}const it="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function st(A,e){return e&&"cp437"==e.trim().toLowerCase()?(A=>{{let e="";for(let t=0;t<A.length;t++)e+=it[A[t]];return e}})(A):new F(e).decode(A)}const ot="filename",at="rawFilename",rt="comment",nt="rawComment",Bt="uncompressedSize",ct="compressedSize",It="offset",Et="diskNumberStart",Ct="lastModDate",lt="rawLastModDate",wt="lastAccessDate",ht="creationDate",dt="internalFileAttributes",ut="externalFileAttributes",Ft="msDosCompatible",Qt="zip64",Dt="encrypted",Yt="version",pt="versionMadeBy",mt="zipCrypto",ft="directory",St="executable",yt="compressionMethod",Mt="signature",Gt="extraField",bt=[ot,at,ct,Bt,Ct,lt,rt,nt,wt,ht,It,Et,Et,dt,ut,Ft,Qt,Dt,Yt,pt,mt,ft,St,yt,Mt,Gt,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ot{constructor(A){bt.forEach(e=>this[e]=A[e])}}const Ut="password",Wt="rawPassword",Kt="passThrough",Tt="signal",zt="useWebWorkers",Rt="useCompressionStream",Nt="preventClose",Ht="supportZip64SplitFile",Lt="offset",kt="usdz",Jt="File format is not recognized",xt="End of central directory not found",Pt="End of Zip64 central directory locator not found",Vt="Central directory header not found",Xt="Local file header not found",Zt="Zip64 extra field not found",jt="File contains encrypted entry",qt="Encryption method not supported",vt="Compression method not supported",_t="Split zip file",$t="Overlapping entry found",Ag="utf-8",eg="cp437",tg=[[Bt,O],[ct,O],[It,O],[Et,U]],gg={[U]:{getValue:Cg,bytes:4},[O]:{getValue:lg,bytes:8}};class ig{constructor(A,e={}){t.assign(this,{reader:new At(A),options:e,config:AA(),readRanges:[]})}async*getEntriesGenerator(A={}){const e=this;let{reader:g}=e;const{config:i}=e;if(await tt(g),g.size!==Z&&g.readUint8Array||(g=new Te(await new B(g.readable).blob()),await tt(g)),g.size<L)throw new I(Jt);g.chunkSize=eA(i);const s=await(async(A,e,t)=>{const g=new E(4);var i;return i=e,wg(g).setUint32(0,i,!0),await s(22)||await s(o.min(1048582,t));async function s(e){const i=t-e,s=await gt(A,i,e);for(let A=s.length-22;A>=0;A--)if(s[A]==g[0]&&s[A+1]==g[1]&&s[A+2]==g[2]&&s[A+3]==g[3])return{offset:i+A,buffer:s.slice(A,A+22).buffer}}})(g,R,g.size);if(!s)throw Cg(wg(await gt(g,0,4)))==K?new I(_t):new I(xt);const a=wg(s);let r=Cg(a,12),n=Cg(a,16);const c=s.offset,C=Eg(a,20),l=c+L+C;let w=Eg(a,4);const h=g.lastDiskNumber||0;let u=Eg(a,6),F=Eg(a,8),Q=0,D=0;if(n==O||r==O||F==U||u==U){const A=wg(await gt(g,s.offset-20,20));if(Cg(A,0)==H){n=lg(A,8);let e=await gt(g,n,56,-1),t=wg(e);const i=s.offset-20-56;if(Cg(t,0)!=N&&n!=i){const A=n;n=i,n>A&&(Q=n-A),e=await gt(g,n,56,-1),t=wg(e)}if(Cg(t,0)!=N)throw new I(Pt);w==U&&(w=Cg(t,16)),u==U&&(u=Cg(t,20)),F==U&&(F=lg(t,32)),r==O&&(r=lg(t,40)),n-=r}}if(n<g.size||(Q=g.size-n-r-L,n=g.size-r-L),h!=w)throw new I(_t);if(0>n)throw new I(Jt);let Y=0,m=await gt(g,n,r,u),f=wg(m);if(r){const A=s.offset-r;if(Cg(f,Y)!=z&&n!=A){const e=n;n=A,n>e&&(Q+=n-e),m=await gt(g,n,r,u),f=wg(m)}}const S=s.offset-n-(g.lastDiskOffset||0);if(r==S||0>S||(r=S,m=await gt(g,n,r,u),f=wg(m)),0>n||n>=g.size)throw new I(Jt);const y=ng(e,A,"filenameEncoding"),M=ng(e,A,"commentEncoding");for(let s=0;F>s;s++){const a=new sg(g,i,e.options);if(Cg(f,Y)!=z)throw new I(Vt);og(a,f,Y+6);const r=!!a.bitFlag.languageEncodingFlag,n=Y+46,c=n+a.filenameLength,E=c+a.extraFieldLength,C=Eg(f,Y+4),l=!(C>>8),w=C>>8==3,h=m.subarray(n,c),u=Eg(f,Y+32),S=E+u,G=m.subarray(E,S),b=r,O=r,U=Cg(f,Y+38),W=l&&!(16&~Ig(f,Y+38))||w&&16384==(U>>16&61440)||h.length&&47==h.at(-1),K=w&&!!(U>>16&73),T=Cg(f,Y+42)+Q;t.assign(a,{versionMadeBy:C,msDosCompatible:l,compressedSize:0,uncompressedSize:0,commentLength:u,directory:W,offset:T,diskNumberStart:Eg(f,Y+34),internalFileAttributes:Eg(f,Y+36),externalFileAttributes:U,rawFilename:h,filenameUTF8:b,commentUTF8:O,rawExtraField:m.subarray(c,E),executable:K}),a.internalFileAttribute=a.internalFileAttributes,a.externalFileAttribute=a.externalFileAttributes;const R=ng(e,A,"decodeText")||st,N=b?Ag:y||eg,H=O?Ag:M||eg;let L=R(h,N);L===Z&&(L=st(h,N));let k=R(G,H);k===Z&&(k=st(G,H)),t.assign(a,{rawComment:G,filename:L,comment:k,directory:W||L.endsWith(x)}),D=o.max(T,D),ag(a,a,f,Y+6),a.zipCrypto=a.encrypted&&!a.extraFieldAES;const J=new Ot(a);J.getData=(A,t)=>a.getData(A,J,e.readRanges,t),J.arrayBuffer=async A=>{const t=new p,[g]=await d.all([new B(t.readable).arrayBuffer(),a.getData(t,J,e.readRanges,A)]);return g},Y=S;const{onprogress:P}=A;if(P)try{await P(s+1,F,new Ot(a))}catch{}yield J}const G=ng(e,A,"extractPrependedData"),b=ng(e,A,"extractAppendedData");return G&&(e.prependedData=D>0?await gt(g,0,D):new E),e.comment=C?await gt(g,c+L,C):new E,b&&(e.appendedData=l<g.size?await gt(g,l,g.size-l):new E),!0}async getEntries(A={}){const e=[];for await(const t of this.getEntriesGenerator(A))e.push(t);return e}async close(){}}class sg{constructor(A,e,g){t.assign(this,{reader:A,config:e,options:g})}async getData(A,e,g,i={}){const s=this,{reader:o,offset:a,diskNumberStart:r,extraFieldAES:n,extraFieldZip64:B,compressionMethod:c,config:C,bitFlag:l,signature:w,rawLastModDate:h,uncompressedSize:d,compressedSize:u}=s,{dataDescriptor:F}=l,Q=e.localDirectory={},D=wg(await gt(o,a,P,r));let Y=ng(s,i,Ut),p=ng(s,i,Wt);const m=ng(s,i,Kt);if(Y=Y&&Y.length&&Y,p=p&&p.length&&p,n&&99!=n.originalCompressionMethod)throw new I(vt);if(0!=c&&8!=c&&9!=c&&!m)throw new I(vt);if(Cg(D,0)!=W)throw new I(Xt);og(Q,D,4);const{extraFieldLength:S,filenameLength:y,lastAccessDate:M,creationDate:G}=Q;Q.rawExtraField=S?await gt(o,a+P+y,S,r):new E,ag(s,Q,D,4,!0),t.assign(e,{lastAccessDate:M,creationDate:G});const b=s.encrypted&&Q.encrypted&&!m,O=b&&!n;if(m||(e.zipCrypto=O),b){if(!O&&n.strength===Z)throw new I(qt);if(!Y&&!p)throw new I(jt)}const U=a+P+y+S,K=u,z=o.readable;t.assign(z,{diskNumberStart:r,offset:U,size:K});const R=ng(s,i,Tt),N=ng(s,i,"checkPasswordOnly");let H=ng(s,i,"checkOverlappingEntry");const L=ng(s,i,"checkOverlappingEntryOnly");L&&(H=!0);const{onstart:k,onprogress:J,onend:x}=i,V=9==c;let X=ng(s,i,Rt);V&&(X=!1);const j={options:{codecType:Be,password:Y,rawPassword:p,zipCrypto:O,encryptionStrength:n&&n.strength,signed:ng(s,i,"checkSignature")&&!m,passwordVerification:O&&(F?h>>>8&255:w>>>24&255),outputSize:m?u:d,signature:w,compressed:0!=c&&!m,encrypted:s.encrypted&&!m,useWebWorkers:ng(s,i,zt),useCompressionStream:X,transferStreams:ng(s,i,"transferStreams"),deflate64:V,checkPasswordOnly:N},config:C,streamOptions:{signal:R,size:K,onstart:k,onprogress:J,onend:x}};let q;H&&await(async({reader:A,fileEntry:e,offset:t,diskNumberStart:g,signature:i,compressedSize:s,uncompressedSize:o,dataOffset:a,dataDescriptor:r,extraFieldZip64:n,readRanges:B})=>{let c=0;if(g)for(let e=0;g>e;e++)c+=A.readers[e].size;let E=0;if(r&&(E=n?20:12),E){const t=await gt(A,a+s,E+4,g);if(Cg(wg(t),0)==T){const A=Cg(wg(t),4);let g,a;n?(g=lg(wg(t),8),a=lg(wg(t),16)):(g=Cg(wg(t),8),a=Cg(wg(t),12)),(e.encrypted&&!e.zipCrypto||A==i)&&g==s&&a==o&&(E+=4)}}const C={start:c+t,end:c+a+s+E,fileEntry:e};for(const A of B)if(A.fileEntry!=e&&C.start>=A.start&&C.start<A.end){const e=new I($t);throw e.overlappingEntry=A.fileEntry,e}B.push(C)})({reader:o,fileEntry:e,offset:a,diskNumberStart:r,signature:w,compressedSize:u,uncompressedSize:d,dataOffset:U,dataDescriptor:F||Q.bitFlag.dataDescriptor,extraFieldZip64:B||Q.extraFieldZip64,readRanges:g});try{if(!L){N&&(A=new f),A=new et(A),await tt(A,m?u:d),({writable:q}=A);const{outputSize:e}=await pe({readable:z,writable:q},j);if(A.size+=e,e!=(m?u:d))throw new I(ee)}}catch(e){if(e.outputSize!==Z&&(A.size+=e.outputSize),!N||e.message!=hA)throw e}finally{ng(s,i,Nt)||!q||q.locked||await q.getWriter().close()}return N||L?Z:A.getData?A.getData():q}}function og(A,e,g){const i=A.rawBitFlag=Eg(e,g+2),s=!(1&~i),o=Cg(e,g+6);t.assign(A,{encrypted:s,version:Eg(e,g),bitFlag:{level:(6&i)>>1,dataDescriptor:!(8&~i),languageEncodingFlag:(i&J)==J},rawLastModDate:o,lastModDate:Bg(o),filenameLength:Eg(e,g+22),extraFieldLength:Eg(e,g+24)})}function ag(A,e,g,i,s){const{rawExtraField:o}=e,n=e.extraField=new r,B=wg(new E(o));let c=0;try{for(;c<o.length;){const A=Eg(B,c),e=Eg(B,c+2);n.set(A,{type:A,data:o.slice(c+4,c+4+e)}),c+=4+e}}catch{}const C=Eg(g,i+4);t.assign(e,{signature:Cg(g,i+10),compressedSize:Cg(g,i+14),uncompressedSize:Cg(g,i+18)});const l=n.get(1);l&&(((A,e)=>{e.zip64=!0;const t=wg(A.data),g=tg.filter(([A,t])=>e[A]==t);for(let i=0,s=0;i<g.length;i++){const[o,a]=g[i];if(e[o]==a){const g=gg[a];e[o]=A[o]=g.getValue(t,s),s+=g.bytes}else if(A[o])throw new I(Zt)}})(l,e),e.extraFieldZip64=l);const w=n.get(28789);w&&(rg(w,ot,at,e,A),e.extraFieldUnicodePath=w);const h=n.get(25461);h&&(rg(h,rt,nt,e,A),e.extraFieldUnicodeComment=h);const d=n.get(39169);d?(((A,e,g)=>{const i=wg(A.data),s=Ig(i,4);t.assign(A,{vendorVersion:Ig(i,0),vendorId:Ig(i,2),strength:s,originalCompressionMethod:g,compressionMethod:Eg(i,5)}),e.compressionMethod=A.compressionMethod})(d,e,C),e.extraFieldAES=d):e.compressionMethod=C;const u=n.get(10);u&&(((A,e)=>{const g=wg(A.data);let i,s=4;try{for(;s<A.data.length&&!i;){const e=Eg(g,s),t=Eg(g,s+2);1==e&&(i=A.data.slice(s+4,s+4+t)),s+=4+t}}catch{}try{if(i&&24==i.length){const g=wg(i),s=g.getBigUint64(0,!0),o=g.getBigUint64(8,!0),a=g.getBigUint64(16,!0);t.assign(A,{rawLastModDate:s,rawLastAccessDate:o,rawCreationDate:a});const r={lastModDate:cg(s),lastAccessDate:cg(o),creationDate:cg(a)};t.assign(A,r),t.assign(e,r)}}catch{}})(u,e),e.extraFieldNTFS=u);const F=n.get(k);F&&(((A,e,t)=>{const g=wg(A.data),i=Ig(g,0),s=[],o=[];t?(1&~i||(s.push(Ct),o.push(lt)),2&~i||(s.push(wt),o.push("rawLastAccessDate")),4&~i||(s.push(ht),o.push("rawCreationDate"))):5>A.data.length||(s.push(Ct),o.push(lt));let r=1;s.forEach((t,i)=>{if(A.data.length>=r+4){const s=Cg(g,r);e[t]=A[t]=new a(1e3*s);const n=o[i];A[n]=s}r+=4})})(F,e,s),e.extraFieldExtendedTimestamp=F);const Q=n.get(6534);Q&&(e.extraFieldUSDZ=Q)}function rg(A,e,g,i,s){const o=wg(A.data),a=new oA;a.append(s[g]);const r=wg(new E(4));r.setUint32(0,a.get(),!0);const n=Cg(o,1);t.assign(A,{version:Ig(o,0),[e]:st(A.data.subarray(5)),valid:!s.bitFlag.languageEncodingFlag&&n==Cg(r,0)}),A.valid&&(i[e]=A[e],i[e+"UTF8"]=!0)}function ng(A,e,t){return e[t]===Z?A.options[t]:e[t]}function Bg(A){const e=(4294901760&A)>>16,t=65535&A;try{return new a(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch{}}function cg(A){return new a(i(A/s(1e4)-s(116444736e5)))}function Ig(A,e){return A.getUint8(e)}function Eg(A,e){return A.getUint16(e,!0)}function Cg(A,e){return A.getUint32(e,!0)}function lg(A,e){return i(A.getBigUint64(e,!0))}function wg(A){return new w(A.buffer)}const hg="File already exists",dg="Zip file comment exceeds 64KB",ug="File entry comment exceeds 64KB",Fg="File entry name exceeds 64KB",Qg="Version exceeds 65535",Dg="The strength must equal 1, 2, or 3",Yg="Extra field type exceeds 65535",pg="Extra field data exceeds 64KB",mg="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",fg="Undefined uncompressed size",Sg="Zip file not empty",yg=new E([7,0,2,0,65,69,3,0,0]);let Mg=0;const Gg=[];class bg{constructor(A,e={}){const g=(A=new et(A)).availableSize!==Z&&A.availableSize>0&&A.availableSize!==1/0&&A.maxSize!==Z&&A.maxSize>0&&A.maxSize!==1/0;t.assign(this,{writer:A,addSplitZipSignature:g,options:e,config:AA(),files:new r,filenames:new n,offset:e[Lt]===Z?A.size||A.writable.size||0:e[Lt],pendingEntriesSize:0,pendingAddFileCalls:new n,bufferedWrites:0})}async prependZip(A){if(this.filenames.size)throw new I(Sg);A=new At(A);const e=new ig(A.readable),g=await e.getEntries();await e.close(),await A.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=A.size,this.filenames=new n(g.map(A=>A.filename)),this.files=new r(g.map(A=>{const{version:e,compressionMethod:g,lastModDate:i,lastAccessDate:s,creationDate:o,rawFilename:a,bitFlag:r,encrypted:n,uncompressedSize:B,compressedSize:c,diskOffset:I,diskNumber:C,zip64:l}=A;let{rawExtraFieldZip64:w,rawExtraFieldAES:h,rawExtraFieldExtendedTimestamp:d,rawExtraFieldNTFS:u,rawExtraField:F}=A;const{level:Q,languageEncodingFlag:D,dataDescriptor:Y}=r;w=w||new E,h=h||new E,d=d||new E,u=u||new E,F=F||new E;const p=Jg(w,h,d,u,F),m=l&&B>O,f=l&&c>O,{headerArray:S,headerView:y}=xg({version:e,bitFlag:Pg(Q,D,Y,n,g),compressionMethod:g,uncompressedSize:B,compressedSize:c,lastModDate:i,rawFilename:a,zip64CompressedSize:f,zip64UncompressedSize:m,extraFieldLength:p});return t.assign(A,{zip64UncompressedSize:m,zip64CompressedSize:f,zip64Offset:l&&this.offset-I>O,zip64DiskNumberStart:l&&C>U,rawExtraFieldZip64:w,rawExtraFieldAES:h,rawExtraFieldExtendedTimestamp:d,rawExtraFieldNTFS:u,rawExtraField:F,extendedTimestamp:d.length>0||u.length>0,extraFieldExtendedTimestampFlag:1+(s?2:0)+(o?4:0),headerArray:S,headerView:y}),[A.filename,A]}))}async add(A="",g,i={}){const r=this,{pendingAddFileCalls:n,config:c}=r;let l;Mg<c.maxWorkers?Mg++:await new d(A=>Gg.push(A));try{if(A=A.trim(),r.filenames.has(A))throw new I(hg);return r.filenames.add(A),l=(async(A,g,i,r)=>{g=g.trim();const n=Kg(A,r,Ft),c=Kg(A,r,pt,n?20:768),l=Kg(A,r,St);if(c>U)throw new I(Qg);let w=Kg(A,r,ut,0);!r[ft]&&g.endsWith(x)&&(r[ft]=!0),Kg(A,r,ft)?(g.endsWith(x)||(g+=x),0===w&&(w=16,n||(w|=16877<<16))):n||0!==w||(w=l?493<<16:27525120);const h=Kg(A,r,"encodeText",rA);let u=h(g);if(u===Z&&(u=rA(g)),Jg(u)>U)throw new I(Fg);const F=r[rt]||"";let Q=h(F);if(Q===Z&&(Q=rA(F)),Jg(Q)>U)throw new I(ug);const D=Kg(A,r,Yt,20);if(D>U)throw new I(Qg);const Y=Kg(A,r,Ct,new a),m=Kg(A,r,wt),f=Kg(A,r,ht),S=Kg(A,r,dt,0),y=Kg(A,r,Kt);let M,G;y||(M=Kg(A,r,Ut),G=Kg(A,r,Wt));const b=Kg(A,r,"encryptionStrength",3),z=Kg(A,r,mt),R=Kg(A,r,"extendedTimestamp",!0),N=Kg(A,r,"keepOrder",!0),H=Kg(A,r,zt),L=Kg(A,r,"bufferedWrite"),J=Kg(A,r,"dataDescriptorSignature",!1),j=Kg(A,r,Tt),q=Kg(A,r,"useUnicodeFileNames",!0),v=Kg(A,r,yt);let _=Kg(A,r,"level"),$=Kg(A,r,Rt),AA=Kg(A,r,"dataDescriptor");L&&AA===Z&&(AA=!1),(AA===Z||z)&&(AA=!0),_!==Z&&6!=_&&($=!1),$||A.config.CompressionStream!==Z||A.config.CompressionStreamZlib!==Z||(_=0);let tA=Kg(A,r,Qt);if(!z&&(M!==Z||G!==Z)&&(1>b||b>3))throw new I(Dg);let gA=new E;const iA=r[Gt];if(iA){let A=0,e=0;iA.forEach(e=>A+=4+Jg(e)),gA=new E(A),iA.forEach((A,t)=>{if(t>U)throw new I(Yg);if(Jg(A)>U)throw new I(pg);Lg(gA,new C([t]),e),Lg(gA,new C([Jg(A)]),e+2),Lg(gA,A,e+4),e+=4+Jg(A)})}let sA=0,oA=0,aA=0;if(y&&(aA=r[Bt],aA===Z))throw new I(fg);const nA=!0===tA;i&&(i=new At(i),await tt(i),y?(r.uncompressedSize=aA,sA=Tg(aA)):i.size===Z?(AA=!0,(tA||tA===Z)&&(tA=!0,aA=sA=4294967296)):(r.uncompressedSize=aA=i.size,sA=Tg(aA)));const{diskOffset:BA,diskNumber:cA,maxSize:IA}=A.writer,EA=nA||aA>O,CA=nA||sA>O,lA=nA||A.offset+A.pendingEntriesSize-BA>O,wA=Kg(A,r,Ht,!0)&&nA||cA+o.ceil(A.pendingEntriesSize/IA)>U;if(lA||EA||CA||wA){if(!1===tA||!N)throw new I(mg);tA=!0}tA=tA||!1;const hA=Kg(A,r,Dt),dA=(A=>{const{rawFilename:e,lastModDate:t,lastAccessDate:g,creationDate:i,level:a,zip64:r,zipCrypto:n,useUnicodeFileNames:B,dataDescriptor:c,directory:I,rawExtraField:C,encryptionStrength:l,extendedTimestamp:w,passThrough:h,encrypted:d,zip64UncompressedSize:u,zip64CompressedSize:F,zip64Offset:Q,zip64DiskNumberStart:D,uncompressedSize:Y,offset:p,diskNumberStart:m}=A;let{version:f,compressionMethod:S}=A;const y=!I&&(a>0||a===Z&&0!==S);let M;const G=h||!y,b=r&&(A.bufferedWrite||!u&&!F||G);if(r){let A=4;u&&(A+=8),F&&(A+=8),Q&&(A+=8),D&&(A+=4),M=new E(A);const e=kg(M);if(Rg(e,0,1),Rg(e,2,Jg(M)-4),b){const A=kg(M);let e=4;u&&(Hg(A,e,s(Y)),e+=8),F&&G&&(Hg(A,e,s(Y)),e+=8),Q&&(Hg(A,e,s(p)),e+=8),D&&(Ng(A,e,m),e+=4)}}else M=new E;let O,U,K,T;if(d&&!n){O=new E(Jg(yg)+2);const A=kg(O);Rg(A,0,39169),Lg(O,yg,2),zg(A,8,l)}else O=new E;if(w){K=new E(9+(g?4:0)+(i?4:0));const A=kg(K);Rg(A,0,k),Rg(A,2,Jg(K)-4),T=1+(g?2:0)+(i?4:0),zg(A,4,T);let e=5;Ng(A,e,o.floor(t.getTime()/1e3)),e+=4,g&&(Ng(A,e,o.floor(g.getTime()/1e3)),e+=4),i&&Ng(A,e,o.floor(i.getTime()/1e3));try{U=new E(36);const A=kg(U),e=Wg(t);Rg(A,0,10),Rg(A,2,32),Rg(A,8,1),Rg(A,10,24),Hg(A,12,e),Hg(A,20,Wg(g)||e),Hg(A,28,Wg(i)||e)}catch{U=new E}}else U=K=new E;S===Z&&(S=y?8:0),r&&(f=f>45?f:45),d&&!n&&(f=f>51?f:51,O[9]=S,S=99);const z=b?Jg(M):0,R=z+Jg(O,K,U,C),{headerArray:N,headerView:H,rawLastModDate:L}=xg({version:f,bitFlag:Pg(a,B,c,d,S),compressionMethod:S,uncompressedSize:Y,lastModDate:X>t?X:t>V?V:t,rawFilename:e,zip64CompressedSize:F,zip64UncompressedSize:u,extraFieldLength:R});let J=P;const x=new E(J+Jg(e)+R),j=kg(x);return Ng(j,0,W),Lg(x,N,4),Lg(x,e,J),J+=Jg(e),b&&Lg(x,M,J),J+=z,Lg(x,O,J),J+=Jg(O),Lg(x,K,J),J+=Jg(K),Lg(x,U,J),J+=Jg(U),Lg(x,C,J),c&&(Ng(j,18,0),Ng(j,22,0)),{localHeaderArray:x,localHeaderView:j,headerArray:N,headerView:H,lastModDate:t,rawLastModDate:L,encrypted:d,compressed:y,version:f,compressionMethod:S,extraFieldExtendedTimestampFlag:T,rawExtraFieldZip64:M,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:K,rawExtraFieldNTFS:U,rawExtraFieldAES:O,extraFieldLength:R}})(r=t.assign({},r,{rawFilename:u,rawComment:Q,version:D,versionMadeBy:c,lastModDate:Y,lastAccessDate:m,creationDate:f,rawExtraField:gA,zip64:tA,zip64UncompressedSize:EA,zip64CompressedSize:CA,zip64Offset:lA,zip64DiskNumberStart:wA,password:M,rawPassword:G,level:_,useWebWorkers:H,encryptionStrength:b,extendedTimestamp:R,zipCrypto:z,bufferedWrite:L,keepOrder:N,useUnicodeFileNames:q,dataDescriptor:AA,dataDescriptorSignature:J,signal:j,msDosCompatible:n,internalFileAttribute:S,internalFileAttributes:S,externalFileAttribute:w,externalFileAttributes:w,useCompressionStream:$,passThrough:y,encrypted:!!(M&&Jg(M)||G&&Jg(G))||y&&hA,signature:r[Mt],compressionMethod:v,uncompressedSize:aA,offset:A.offset-BA,diskNumberStart:cA})),uA=(({zip64:A,dataDescriptor:e,dataDescriptorSignature:t})=>{let g,i=new E,s=0,o=A?20:12;return t&&(o+=4),e&&(i=new E(o),g=kg(i),t&&(s=4,Ng(g,0,T))),{dataDescriptorArray:i,dataDescriptorView:g,dataDescriptorOffset:s}})(r),FA=Jg(dA.localHeaderArray,uA.dataDescriptorArray);let QA;oA=FA+sA,A.options[kt]&&(oA+=oA+64),A.pendingEntriesSize+=oA;try{QA=await(async(A,g,i,o,a)=>{const{files:r,writer:n}=A,{keepOrder:c,dataDescriptor:C,signal:l}=a,{headerInfo:w}=o,h=A.options[kt],u=e.from(r.values()).pop();let F,Q,D,Y,m,f,S,y={};r.set(g,y);try{let e;c&&(e=u&&u.lock,y.lock=new d(A=>D=A)),!(a.bufferedWrite||A.writerLocked||A.bufferedWrites&&c)&&C||h?(f=n,await M()):(f=new p,f.size=0,F=!0,A.bufferedWrites++,await tt(n)),await tt(f);const{writable:Q,diskOffset:b}=n;if(A.addSplitZipSignature){delete A.addSplitZipSignature;const e=new E(4);Ng(kg(e),0,K),await Ug(n,e),A.offset+=4}h&&((A,e)=>{const{headerInfo:t}=A;let{localHeaderArray:g,extraFieldLength:i}=t,s=kg(g),o=64-(e+Jg(g))%64;4>o&&(o+=64);const a=new E(o),r=kg(a);Rg(r,0,6534),Rg(r,2,o-2);const n=g;t.localHeaderArray=g=new E(Jg(n)+o),Lg(g,n),Lg(g,a,Jg(n)),s=kg(g),Rg(s,28,i+o),A.metadataSize+=o})(o,A.offset-b);const{localHeaderView:U,localHeaderArray:W}=w;F||(await e,await G(Q));const{diskNumber:T}=n;m=!0,y.diskNumberStart=T,F?S=new B(f.readable).blob():await Ug(f,W),y=await(async(A,e,{diskNumberStart:g,lock:i},o,a,r)=>{const{headerInfo:n,dataDescriptorInfo:B,metadataSize:c}=o,{headerArray:I,headerView:E,lastModDate:C,rawLastModDate:l,encrypted:w,compressed:h,version:d,compressionMethod:u,rawExtraFieldZip64:F,localExtraFieldZip64Length:Q,rawExtraFieldExtendedTimestamp:D,extraFieldExtendedTimestampFlag:Y,rawExtraFieldNTFS:p,rawExtraFieldAES:m}=n,{dataDescriptorArray:f}=B,{rawFilename:S,lastAccessDate:y,creationDate:M,password:G,rawPassword:b,level:O,zip64:U,zip64UncompressedSize:W,zip64CompressedSize:K,zip64Offset:T,zip64DiskNumberStart:z,zipCrypto:R,dataDescriptor:N,directory:H,executable:L,versionMadeBy:k,rawComment:J,rawExtraField:x,useWebWorkers:P,onstart:V,onprogress:X,onend:j,signal:q,encryptionStrength:v,extendedTimestamp:_,msDosCompatible:$,internalFileAttributes:AA,externalFileAttributes:tA,useCompressionStream:gA,passThrough:iA}=r,sA={lock:i,versionMadeBy:k,zip64:U,directory:!!H,executable:!!L,filenameUTF8:!0,rawFilename:S,commentUTF8:!0,rawComment:J,rawExtraFieldZip64:F,localExtraFieldZip64Length:Q,rawExtraFieldExtendedTimestamp:D,rawExtraFieldNTFS:p,rawExtraFieldAES:m,rawExtraField:x,extendedTimestamp:_,msDosCompatible:$,internalFileAttributes:AA,externalFileAttributes:tA,diskNumberStart:g};let{signature:oA,uncompressedSize:aA}=r,rA=0;iA||(aA=0);const{writable:nA}=e;if(A){A.chunkSize=eA(a);const t=A.readable,g=A.size,i={options:{codecType:ne,level:O,rawPassword:b,password:G,encryptionStrength:v,zipCrypto:w&&R,passwordVerification:w&&R&&l>>8&255,signed:!iA,compressed:h&&!iA,encrypted:w&&!iA,useWebWorkers:P,useCompressionStream:gA,transferStreams:!1},config:a,streamOptions:{signal:q,size:g,onstart:V,onprogress:X,onend:j}};try{const A=await pe({readable:t,writable:nA},i);rA=A.outputSize,e.size+=rA,iA||(aA=A.inputSize,oA=A.signature)}catch(A){throw A.outputSize!==Z&&(e.size+=A.outputSize),A}}return(({signature:A,compressedSize:e,uncompressedSize:t,headerInfo:g,dataDescriptorInfo:i},{zip64:o,zipCrypto:a,dataDescriptor:r})=>{const{headerView:n,encrypted:B}=g,{dataDescriptorView:c,dataDescriptorOffset:I}=i;B&&!a||A===Z||(Ng(n,10,A),r&&Ng(c,I,A)),o?r&&(Hg(c,I+4,s(e)),Hg(c,I+12,s(t))):(Ng(n,14,e),Ng(n,18,t),r&&(Ng(c,I+4,e),Ng(c,I+8,t)))})({signature:oA,compressedSize:rA,uncompressedSize:aA,headerInfo:n,dataDescriptorInfo:B},r),N&&await Ug(e,f),t.assign(sA,{uncompressedSize:aA,compressedSize:rA,lastModDate:C,rawLastModDate:l,creationDate:M,lastAccessDate:y,encrypted:w,zipCrypto:R,size:c+rA,compressionMethod:u,version:d,headerArray:I,headerView:E,signature:oA,extraFieldExtendedTimestampFlag:Y,zip64UncompressedSize:W,zip64CompressedSize:K,zip64Offset:T,zip64DiskNumberStart:z}),sA})(i,f,y,o,A.config,a);const{zip64:z}=y;if(m=!1,r.set(g,y),y.filename=g,F){const[t]=await d.all([S,f.writable.getWriter().close(),e]);await M(),Y=!0,y.diskNumberStart=n.diskNumber,y.offset=A.offset-n.diskOffset,z&&Og(y),(({rawFilename:A,encrypted:e,zip64:t,localExtraFieldZip64Length:g,signature:i,compressedSize:o,uncompressedSize:a,offset:r,diskNumberStart:n,zip64UncompressedSize:B,zip64CompressedSize:c,zip64Offset:I,zip64DiskNumberStart:E},C,{dataDescriptor:l})=>{if(l||(e||Ng(C,14,i),t||(Ng(C,18,o),Ng(C,22,a))),t&&g){let e=P+Jg(A)+4;B&&(Hg(C,e,s(a)),e+=8),c&&(Hg(C,e,s(o)),e+=8),I&&(Hg(C,e,s(r)),e+=8),E&&Ng(C,e,n)}})(y,U,a),await G(Q),await Ug(n,W),await t.stream().pipeTo(Q,{preventClose:!0,preventAbort:!0,signal:l}),n.size+=f.size,Y=!1}else y.offset=A.offset-b,z&&Og(y);if(y.offset>O&&!z)throw new I(mg);return A.offset+=y.size,y}catch(e){if(F&&Y||!F&&m){if(A.hasCorruptedEntries=!0,e)try{e.corruptedEntry=!0}catch{}F?A.offset+=f.size:A.offset=f.size}throw r.delete(g),e}finally{F&&A.bufferedWrites--,D&&D(),Q&&Q()}async function M(){A.writerLocked=!0;const{lockWriter:e}=A;A.lockWriter=new d(e=>Q=()=>{A.writerLocked=!1,e()}),await e}async function G(A){Jg(w.localHeaderArray)>n.availableSize&&(n.availableSize=0,await Ug(A,new E))}})(A,g,i,{headerInfo:dA,dataDescriptorInfo:uA,metadataSize:FA},r)}finally{A.pendingEntriesSize-=oA}return t.assign(QA,{name:g,comment:F,extraField:iA}),new Ot(QA)})(r,A,g,i),n.add(l),await l}catch(e){throw r.filenames.delete(A),e}finally{n.delete(l);const A=Gg.shift();A?A():Mg--}}remove(A){const{filenames:e,files:t}=this;if("string"==typeof A&&(A=t.get(A)),A&&A.filename!==Z){const{filename:g}=A;if(e.has(g)&&t.has(g))return e.delete(g),t.delete(g),!0}return!1}async close(A=new E,t={}){const{pendingAddFileCalls:g,writer:i}=this,{writable:a}=i;for(;g.size;)await d.allSettled(e.from(g));return await(async(A,t,g)=>{const{files:i,writer:a}=A,{diskOffset:r}=a;let{diskNumber:n}=a,B=0,c=0,C=A.offset-r,l=i.size;for(const[,A]of i){const{rawFilename:e,rawExtraFieldZip64:t,rawExtraFieldAES:g,rawComment:i,rawExtraFieldNTFS:s,rawExtraField:a,extendedTimestamp:r,extraFieldExtendedTimestampFlag:n,lastModDate:B}=A;let I;if(r){I=new E(9);const A=kg(I);Rg(A,0,k),Rg(A,2,5),zg(A,4,n),Ng(A,5,o.floor(B.getTime()/1e3))}else I=new E;A.rawExtraFieldExtendedTimestamp=I,c+=46+Jg(e,i,t,g,s,I,a)}const w=new E(c),h=kg(w);await tt(a);let d=0;for(const[A,t]of e.from(i.values()).entries()){const{offset:e,rawFilename:s,rawExtraFieldZip64:o,rawExtraFieldAES:r,rawExtraFieldExtendedTimestamp:n,rawExtraFieldNTFS:c,rawExtraField:I,rawComment:E,versionMadeBy:C,headerArray:l,headerView:u,zip64:F,zip64UncompressedSize:Q,zip64CompressedSize:D,zip64DiskNumberStart:Y,zip64Offset:p,internalFileAttributes:m,externalFileAttributes:f,diskNumberStart:S,uncompressedSize:y,compressedSize:M}=t,G=Jg(o,r,n,c,I);Ng(h,B,z),Rg(h,B+4,C),Q||Ng(u,18,y),D||Ng(u,14,M),Lg(w,l,B+6);let b=B+P;if(Rg(h,b,G),b+=2,Rg(h,b,Jg(E)),b+=2,Rg(h,b,F&&Y?U:S),b+=2,Rg(h,b,m),b+=2,f&&Ng(h,b,f),b+=4,Ng(h,b,F&&p?O:e),b+=4,Lg(w,s,b),b+=Jg(s),Lg(w,o,b),b+=Jg(o),Lg(w,r,b),b+=Jg(r),Lg(w,n,b),b+=Jg(n),Lg(w,c,b),b+=Jg(c),Lg(w,I,b),b+=Jg(I),Lg(w,E,b),B-d>a.availableSize&&(a.availableSize=0,await Ug(a,w.slice(d,B)),d=B),B=b,g.onprogress)try{await g.onprogress(A+1,i.size,new Ot(t))}catch{}}await Ug(a,d?w.slice(d):w);let u=a.diskNumber;const{availableSize:F}=a;L>F&&u++;let Q=Kg(A,g,Qt);if(C>O||c>O||l>U||u>U){if(!1===Q)throw new I(mg);Q=!0}const D=new E(Q?98:L),Y=kg(D);B=0,Q&&(Ng(Y,0,N),Hg(Y,4,s(44)),Rg(Y,12,45),Rg(Y,14,45),Ng(Y,16,u),Ng(Y,20,n),Hg(Y,24,s(l)),Hg(Y,32,s(l)),Hg(Y,40,s(c)),Hg(Y,48,s(C)),Ng(Y,56,H),Hg(Y,64,s(C)+s(c)),Ng(Y,72,u+1),Kg(A,g,Ht,!0)&&(u=U,n=U),l=U,C=O,c=O,B+=76),Ng(Y,B,R),Rg(Y,B+4,u),Rg(Y,B+6,n),Rg(Y,B+8,l),Rg(Y,B+10,l),Ng(Y,B+12,c),Ng(Y,B+16,C);const p=Jg(t);if(p){if(p>U)throw new I(dg);Rg(Y,B+20,p)}await Ug(a,D),p&&await Ug(a,t)})(this,A,t),Kg(this,t,Nt)||await a.getWriter().close(),i.getData?i.getData():a}}function Og({compressedSize:A,uncompressedSize:e,offset:t,diskNumberStart:g,zip64UncompressedSize:i,zip64CompressedSize:o,zip64Offset:a,zip64DiskNumberStart:r,rawExtraFieldZip64:n}){const B=kg(n);let c=4;i&&(Hg(B,c,s(e)),c+=8),o&&(Hg(B,c,s(A)),c+=8),a&&(Hg(B,c,s(t)),c+=8),r&&Ng(B,c,g)}async function Ug(A,e){const{writable:t}=A,g=t.getWriter();try{await g.ready,A.size+=Jg(e),await g.write(e)}finally{g.releaseLock()}}function Wg(A){if(A)return(s(A.getTime())+s(116444736e5))*s(1e4)}function Kg(A,e,t,g){const i=e[t]===Z?A.options[t]:e[t];return i===Z?g:i}function Tg(A){return A+5*(o.floor(A/16383)+1)}function zg(A,e,t){A.setUint8(e,t)}function Rg(A,e,t){A.setUint16(e,t,!0)}function Ng(A,e,t){A.setUint32(e,t,!0)}function Hg(A,e,t){A.setBigUint64(e,t,!0)}function Lg(A,e,t){A.set(e,t)}function kg(A){return new w(A.buffer)}function Jg(...A){let e=0;return A.forEach(A=>A&&(e+=A.length)),e}function xg({version:A,bitFlag:e,compressionMethod:t,uncompressedSize:g,compressedSize:i,lastModDate:s,rawFilename:o,zip64CompressedSize:a,zip64UncompressedSize:r,extraFieldLength:n}){const B=new E(26),c=kg(B);Rg(c,0,A),Rg(c,2,e),Rg(c,4,t);const I=new l(1),C=kg(I);Rg(C,0,(s.getHours()<<6|s.getMinutes())<<5|s.getSeconds()/2),Rg(C,2,(s.getFullYear()-1980<<4|s.getMonth()+1)<<5|s.getDate());const w=I[0];return Ng(c,6,w),(a||i!==Z)&&Ng(c,14,a?O:i),(r||g!==Z)&&Ng(c,18,r?O:g),Rg(c,22,Jg(o)),Rg(c,24,n),{headerArray:B,headerView:c,rawLastModDate:w}}function Pg(A,e,t,g,i){let s=0;return e&&(s|=J),t&&(s|=8),8!=i&&9!=i||(0>A||A>3||(s|=6),A>3&&5>=A&&(s|=4),9==A&&(s|=2)),g&&(s|=1),s}try{tA({baseURI:void 0===Q&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===Q?location.href:b&&"SCRIPT"===b.tagName.toUpperCase()&&b.src||new c("zip-legacy.min.js",Q.baseURI).href})}catch{}(A=>{let e;A({workerURI:()=>(e||(e="data:text/javascript;base64,"+(A=>{A=(A=>{const e=(A=(A+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,t=[];for(let g=0;e>g;g+=4){const e=iA.indexOf(A[g])<<18|iA.indexOf(A[g+1])<<12|(63&iA.indexOf(A[g+2]))<<6|63&iA.indexOf(A[g+3]);t.push(e>>16&255),"="!==A[g+2]&&t.push(e>>8&255),"="!==A[g+3]&&t.push(255&e)}return new E(t)})(A);let e=new E(1024),t=0;for(let i=0;i<A.length;){const s=A[i++];if(128&s){const o=3+(127&s),a=A[i++]<<8|A[i++],r=t-a;g(t+o);for(let A=0;o>A;A++)e[t++]=e[r+A]}else{const o=s;g(t+o);for(let g=0;o>g&&i<A.length;g++)e[t++]=A[i++]}}return(A=>{let e="";const t=A.length;let g=0;for(;t>g+2;g+=3){const t=A[g]<<16|A[g+1]<<8|A[g+2];e+=iA[t>>18&63]+iA[t>>12&63]+iA[t>>6&63]+iA[63&t]}const i=t-g;if(1===i){const t=A[g]<<16;e+=iA[t>>18&63]+iA[t>>12&63]+"=="}else if(2===i){const t=A[g]<<16|A[g+1]<<8;e+=iA[t>>18&63]+iA[t>>12&63]+iA[t>>6&63]+"="}return e})(new E(e.buffer.slice(0,t)));function g(A){if(e.length<A){let g=2*e.length;for(;A>g;)g*=2;const i=new E(g);i.set(e.subarray(0,t)),e=i}}})("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")),e)})})(tA),A.BlobReader=Te,A.BlobWriter=ze,A.Data64URIReader=class extends We{constructor(A){super();let e=A.length;for(;"="==A.charAt(e-1);)e--;const g=A.indexOf(",")+1;t.assign(this,{dataURI:A,dataStart:g,size:o.floor(.75*(e-g))})}readUint8Array(A,e){const{dataStart:t,dataURI:g}=this,i=new E(e),s=4*o.floor(A/3),a=atob(g.substring(s+t,4*o.ceil((A+e)/3)+t)),r=A-3*o.floor(s/4);let n=0;for(let A=r;r+e>A&&A<a.length;A++)i[A-r]=a.charCodeAt(A),n++;return n<i.length?i.subarray(0,n):i}},A.Data64URIWriter=class extends Ke{constructor(A){super(),t.assign(this,{data:"data:"+(A||"")+";base64,",pending:[]})}writeUint8Array(A){const e=this;let t=0,i=e.pending;const s=e.pending.length;for(e.pending="",t=0;t<3*o.floor((s+A.length)/3)-s;t++)i+=g.fromCharCode(A[t]);for(;t<A.length;t++)e.pending+=g.fromCharCode(A[t]);i.length&&(i.length>2?e.data+=Y(i):e.pending+=i)}getData(){return this.data+Y(this.pending)}},A.ERR_BAD_FORMAT=Jt,A.ERR_CENTRAL_DIRECTORY_NOT_FOUND=Vt,A.ERR_DUPLICATED_NAME=hg,A.ERR_ENCRYPTED=jt,A.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=Pt,A.ERR_EOCDR_NOT_FOUND=xt,A.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=Zt,A.ERR_HTTP_RANGE=Se,A.ERR_INVALID_COMMENT=dg,A.ERR_INVALID_ENCRYPTION_STRENGTH=Dg,A.ERR_INVALID_ENTRY_COMMENT=ug,A.ERR_INVALID_ENTRY_NAME=Fg,A.ERR_INVALID_EXTRAFIELD_DATA=pg,A.ERR_INVALID_EXTRAFIELD_TYPE=Yg,A.ERR_INVALID_PASSWORD=lA,A.ERR_INVALID_SIGNATURE=wA,A.ERR_INVALID_UNCOMPRESSED_SIZE=ee,A.ERR_INVALID_VERSION=Qg,A.ERR_LOCAL_FILE_HEADER_NOT_FOUND=Xt,A.ERR_OVERLAPPING_ENTRY=$t,A.ERR_SPLIT_ZIP_FILE=_t,A.ERR_UNDEFINED_UNCOMPRESSED_SIZE=fg,A.ERR_UNSUPPORTED_COMPRESSION=vt,A.ERR_UNSUPPORTED_ENCRYPTION=qt,A.ERR_UNSUPPORTED_FORMAT=mg,A.ERR_ZIP_NOT_EMPTY=Sg,A.HttpRangeReader=class extends ve{constructor(A,e={}){e.useRangeHeader=!0,super(A,e)}},A.HttpReader=ve,A.Reader=We,A.SplitDataReader=_e,A.SplitDataWriter=$e,A.TextReader=class extends Te{constructor(A){super(new h([A],{type:"text/plain"}))}},A.TextWriter=class extends ze{constructor(A){super(A),t.assign(this,{encoding:A,utf8:!A||"utf-8"==A.toLowerCase()})}async getData(){const{encoding:A,utf8:e}=this,g=await super.getData();if(g.text&&e)return g.text();{const e=new FileReader;return new d((i,s)=>{t.assign(e,{onload:({target:A})=>i(A.result),onerror:()=>s(e.error)}),e.readAsText(g,A)})}}},A.Uint8ArrayReader=class extends We{constructor(A){super(),A=new E(A.buffer,A.byteOffset,A.byteLength),t.assign(this,{array:A,size:A.length})}readUint8Array(A,e){return this.array.slice(A,A+e)}},A.Uint8ArrayWriter=class extends Ke{init(A=0){t.assign(this,{offset:0,array:new E(A)}),super.init()}writeUint8Array(A){const e=this;if(e.offset+A.length>e.array.length){const t=e.array;e.array=new E(t.length+A.length),e.array.set(t)}e.array.set(A,e.offset),e.offset+=A.length}getData(){return this.array}},A.Writer=Ke,A.ZipReader=ig,A.ZipReaderStream=class{constructor(A={}){const{readable:e,writable:t}=new p,g=new ig(e,A).getEntriesGenerator();this.readable=new m({async pull(A){const{done:e,value:t}=await g.next();if(e)return A.close();const i={...t,readable:(()=>{const{readable:A,writable:e}=new p;if(t.getData)return t.getData(e),A})()};delete i.getData,A.enqueue(i)}}),this.writable=t}},A.ZipWriter=bg,A.ZipWriterStream=class{constructor(A={}){const{readable:e,writable:t}=new p;this.readable=e,this.zipWriter=new bg(t,A)}transform(A){const{readable:e,writable:t}=new p({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(A,e),{readable:this.readable,writable:t}}writable(A){const{readable:e,writable:t}=new p;return this.zipWriter.add(A,e),t}close(A,e={}){return this.zipWriter.close(A,e)}},A.configure=tA,A.getMimeType=()=>"application/octet-stream",A.terminateWorkers=async()=>{await d.allSettled(Qe.map(A=>(me(A),A.terminate())))}});
@@ -2189,13 +2189,8 @@
2189
2189
  const { value, readable, writable } = message;
2190
2190
  const transferables = [];
2191
2191
  if (value) {
2192
- if (value.byteLength < value.buffer.byteLength) {
2193
- message.value = value.buffer.slice(0, value.byteLength);
2194
- }
2195
- else {
2196
- message.value = value.buffer;
2197
- }
2198
- transferables.push(message.value);
2192
+ message.value = value;
2193
+ transferables.push(message.value.buffer);
2199
2194
  }
2200
2195
  if (transferStreams && transferStreamsSupported) {
2201
2196
  if (readable) {