@zip.js/zip.js 2.8.26 → 2.8.28

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.
Files changed (52) hide show
  1. package/README.md +2 -2
  2. package/deno.json +1 -1
  3. package/dist/zip-core.js +1050 -569
  4. package/dist/zip-core.min.js +1 -1
  5. package/dist/zip-fs-core.js +1146 -617
  6. package/dist/zip-fs-core.min.js +1 -1
  7. package/dist/zip-fs-native.js +1207 -627
  8. package/dist/zip-fs-native.min.js +1 -1
  9. package/dist/zip-fs.js +1279 -681
  10. package/dist/zip-fs.min.js +1 -1
  11. package/dist/zip-legacy.js +1051 -570
  12. package/dist/zip-legacy.min.js +1 -1
  13. package/dist/zip-module.wasm +0 -0
  14. package/dist/zip-native.js +1053 -572
  15. package/dist/zip-native.min.js +1 -1
  16. package/dist/zip-web-worker-native.js +1 -1
  17. package/dist/zip-web-worker.js +1 -1
  18. package/dist/zip.js +1125 -626
  19. package/dist/zip.min.js +1 -1
  20. package/eslint.config.mjs +6 -1
  21. package/index-native.cjs +1207 -627
  22. package/index-native.min.js +1 -1
  23. package/index.cjs +1279 -681
  24. package/index.d.ts +2451 -2355
  25. package/index.min.js +1 -1
  26. package/lib/core/codec-pool.js +39 -1
  27. package/lib/core/codec-worker.js +120 -34
  28. package/lib/core/configuration.js +3 -0
  29. package/lib/core/constants.js +6 -0
  30. package/lib/core/io.js +55 -25
  31. package/lib/core/options.js +2 -0
  32. package/lib/core/streams/aes-crypto-stream.js +12 -12
  33. package/lib/core/streams/codec-stream.js +11 -5
  34. package/lib/core/streams/codecs/sjcl.js +1 -33
  35. package/lib/core/streams/common-crypto.js +4 -4
  36. package/lib/core/streams/zip-crypto-stream.js +25 -15
  37. package/lib/core/streams/zip-entry-stream.js +35 -1
  38. package/lib/core/streams/zlib-js/zlib-streams.min.js +1 -1
  39. package/lib/core/streams/zlib-wasm/zlib-streams.js +73 -55
  40. package/lib/core/streams/zlib-wasm/zlib-streams.wasm +0 -0
  41. package/lib/core/util/decode-cp437.js +1 -1
  42. package/lib/core/util/decode-text.js +2 -1
  43. package/lib/core/web-worker-base.js +12 -4
  44. package/lib/core/web-worker-inline-native.js +1 -1
  45. package/lib/core/web-worker-inline-wasm.js +1 -1
  46. package/lib/core/zip-fs.js +154 -55
  47. package/lib/core/zip-reader.js +185 -67
  48. package/lib/core/zip-writer.js +613 -376
  49. package/lib/core/zlib-streams-inline.js +1 -1
  50. package/lib/zip-core-reader.js +3 -1
  51. package/lib/zip-core-writer.js +1 -0
  52. package/package.json +20 -6
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:S,document:z,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:A,navigator:_,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==z?z.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,M=134695760,W=M,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function";let se=2;try{typeof _!=te&&_.hardwareConcurrency&&(se=_.hardwareConcurrency)}catch{}const ne={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=te&&D,DecompressionStream:typeof A!=te&&A},ae=r.assign({},ne);function ie(){return ae}function oe(e){return i.max(e.chunkSize,64)}function ce(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;le("baseURI",t),le("wasmURI",p),le("workerURI",u),le("chunkSize",r),le("maxWorkers",s),le("terminateWorkerTimeout",n),le("useCompressionStream",a),le("useWebWorkers",i),le("CompressionStream",o),le("DecompressionStream",c),le("CompressionStreamZlib",l),le("DecompressionStreamZlib",d)}function le(e,t){t!==$&&(ae[e]=t)}const de=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;de[e]=t}class ue{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^de[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class pe extends F{constructor(){let e;const t=new ue;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const we={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=we.getPartial(r);return 32===s?e.concat(t):we._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+we.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=we.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=we.getPartial(n);return s.push(we.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},he={bytes:{fromBits(e){const t=we.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(we.partial(8*(3&r),s)),t}}},me=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=he.utf8String.toBits(e));const r=t._buffer=we.concat(t._buffer,e),s=t._length,n=t._length=s+we.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=we.concat(t,[we.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},ge={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ye={importKey:e=>new ye.hmacSha1(he.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const w=we;for(t=he.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=me,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},be=typeof x!=te&&typeof x.getRandomValues==re,Se="Invalid password",ze="Invalid signature",xe="zipjs-abort-check-password";function Ee(e){return be?x.getRandomValues(e):ge.getRandomValues(e)}const Fe=16,Re={name:"PBKDF2"},ke=r.assign({hash:{name:"HMAC"}},Re),De=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Re),Ae=["deriveBits"],_e=[8,12,16],Te=[16,24,32],Ue=10,ve=[0,0,0,0],Ce=typeof x!=te,Ie=Ce&&x.subtle,Ne=Ce&&typeof Ie!=te,Me=he.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=f,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Oe=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=we.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return we.clamp(t,n)}},Le=ye.hmacSha1;let Pe=Ce&&Ne&&typeof Ie.importKey==re,Ze=Ce&&Ne&&typeof Ie.deriveBits==re;class He extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await qe(e,t,r,Ye(s,0,_e[t])),a=Ye(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(Se)})(r,n,s,Ye(e,0,_e[n]+2)),e=Ye(e,_e[n]+2),a?t.error(new p(xe)):i()):await o;const c=new f(e.length-Ue-(e.length-Ue)%Fe);t.enqueue(Be(r,e,c,0,Ue,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Ue),o=Ye(n,n.length-Ue);let c=new f;if(i.length){const e=Xe(Me,i);s.update(e);const t=r.update(e);c=Ge(Me,t)}if(t){const e=Ye(Ge(Me,s.digest()),0,Ue);for(let t=0;Ue>t;t++)if(e[t]!=o[t])throw new p(ze)}e.enqueue(c)}}})}}class Ve extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=Ee(new f(_e[t]));return je(s,await qe(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%Fe);c.set(o,0),t.enqueue(Be(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(Xe(Me,s));r.update(e),i=Ge(Me,e)}n.signature=Ge(Me,r.digest()).slice(0,Ue),e.enqueue(je(i,n.signature))}}}),n=this}}function Be(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=je(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%Fe)),d=0;l-Fe>=d;d+=Fe){const e=Xe(Me,Ye(t,d,d+Fe));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ge(Me,n),d+s)}return e.pending=Ye(t,d),r}async function qe(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Pe)return ye.importKey(t);try{return await Ie.importKey("raw",t,r,!1,n)}catch{return Pe=!1,ye.importKey(t)}})(0,n,ke,0,Ae),o=await(async(e,t,r)=>{if(!Ze)return ye.pbkdf2(t,e.salt,De.iterations,r);try{return await Ie.deriveBits(e,t,r)}catch{return Ze=!1,ye.pbkdf2(t,e.salt,De.iterations,r)}})(r.assign({salt:a},De),i,8*(2*Te[s]+2)),c=new f(o),l=Xe(Me,Ye(c,0,Te[s])),d=Xe(Me,Ye(c,Te[s],2*Te[s])),u=Ye(c,2*Te[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Oe(new We(l),t.from(ve)),hmac:new Le(d)}),u}function Ke(e,t){return t===$?fe(e):t}function je(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ye(e,t,r){return e.subarray(t,r)}function Ge(e,t){return e.fromBits(t)}function Xe(e,t){return e.toBits(t)}class Je extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;if(r.password){const t=$e(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(Se);e=e.subarray(12)}s?t.error(new p(xe)):t.enqueue($e(r,e))}})}}class Qe extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Ee(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(et(r,t),0),n=12}else s=new f(e.length),n=0;s.set(et(r,e),n),t.enqueue(s)}})}}function $e(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,r[s]);return r}function et(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,t[s]);return r}function tt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new ue(s[0]),crcKey2:new ue(s[2])});for(let r=0;r<t.length;r++)rt(e,t.charCodeAt(r))}function rt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=at(i.imul(at(s+nt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function st(e){const t=2|e.keys[2];return nt(i.imul(t,1^t)>>>8)}function nt(e){return 255&e}function at(e){return 4294967295&e}const it="Invalid uncompressed size";class ot extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new pe,f=ut(f,u)),n&&(f=dt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=ut(f,new Qe(e)):(p=new Ve(e),f=ut(f,p))),lt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ct extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,w=super.readable;a&&(n?w=ut(w,new Je(e)):(f=new He(e),w=ut(w,f))),c&&(w=dt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new pe,w=ut(w,u)),lt(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(ze)}})}}function lt(e,t,s){t=ut(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function dt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=ut(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=ut(e,new n(o,r));else{if(!a)throw s;e=ut(e,new a(o,r))}}return e}function ut(e,t){return e.pipeThrough(t)}const pt="data",ft="close",wt="deflate",ht="inflate";class mt extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(wt)?a=ot:n.startsWith(ht)&&(a=ct),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new p(it)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class gt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const yt={type:"module"};let bt,St,zt,xt=!0;try{xt=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Et{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new gt(a.chunkSize)).pipeThrough(new Ft(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),bt===$&&(bt=typeof T!=te),(o&&bt?Dt:kt)(e,a)}}class Ft extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Rt(e,r)},async transform(e,s){n+=e.length,t&&await Rt(t,n,r),s.enqueue(e)},async flush(){s&&await Rt(s,n)}})}}async function Rt(e,...t){try{await e(...t)}catch{}}function kt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new mt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Dt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==re&&(a=a());try{i=At(e.workerURI,s,e)}catch{return bt=!1,kt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{const{writable:t,readable:r}=new F;return{writable:t,closed:r.pipeTo(e,{preventClose:!0})}})(e.writable),d=_t({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function At(e,t,s,n,a=!0){let i,o,c;if(St===$){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=yt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return At(e,t,s,n,!1);if(n)throw a;return At(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=yt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return At(e,t,s,!1,a)}}St=o,zt=c}else i=new T(St,zt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();_t({type:pt,value:e,done:r,messageId:a},t)}s==pt&&(await l.ready,await l.write(new f(n)),_t({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){_t({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function _t(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&xt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Tt=[];const Ut=[];let vt=0;async function Ct(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=Tt.find(e=>!e.busy);if(r)return It(r),new Et(r,e,t,w);if(Tt.length<p){const r={indexWorker:vt};return vt++,Tt.push(r),new Et(r,e,t,w)}return new y(r=>Ut.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Ut.length){const[{resolve:t,stream:r,workerOptions:s}]=Ut.splice(0,1);t(new Et(e,r,s,w))}else e.worker?(It(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Tt=Tt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Tt=Tt.filter(t=>t!=e)}}function It(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Nt="HTTP error ",Mt="HTTP Range not supported",Wt="Range",Ot="GET",Lt="bytes",Pt=65536,Zt="writable";class Ht{constructor(){this.size=0}init(){this.initialized=!0}}class Vt extends Ht{get readable(){const e=this,{chunkSize:t=Pt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await pr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Bt extends Ht{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Zt,{get:()=>t})}writeUint8Array(){}}class qt extends Vt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class Kt extends Ht{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Zt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class jt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,nr,er),super.init()}readUint8Array(e,t){return Jt(this,e,t,nr,er)}}class Yt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,ar,tr),super.init()}readUint8Array(e,t){return Jt(this,e,t,ar,tr)}}function Gt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Xt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Ot,e,Qt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Lt))throw new p(Mt);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await sr(e,t,r):e.size=a}}else await sr(e,t,r)}async function Jt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t&&0!==r){t+r>c&&(r=c-t);const n=await s(Ot,e,Qt(e,t,r));if(206!=n.status)throw new p(Mt);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function Qt(e,t=0,s=1){return r.assign({},$t(e),{[Wt]:Lt+"="+(0>t?t:t+"-"+(t+s-1))})}function $t({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function er(e){await rr(e,nr)}async function tr(e){await rr(e,ar)}async function rr(e,t){const r=await t(Ot,e,$t(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function sr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,$t(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function nr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(Mt):new p(Nt+(a.statusText||a.status))}function ar(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(Mt):new p(Nt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class ir extends Vt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Yt(e,t):new jt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class or extends Vt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await pr(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await pr(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class cr extends Ht{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ur(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Zt,{get:()=>o})}}class lr{constructor(e){return t.isArray(e)&&(e=new or(e)),e instanceof R&&(e={readable:e}),e}}class dr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new cr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof cr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function ur(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function pr(e,t,r,s){return e.readUint8Array(t,r,s)}const fr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function wr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=fr[e[r]];return t}})(e):new S(t).decode(e)}const hr="filename",mr="rawFilename",gr="comment",yr="rawComment",br="uncompressedSize",Sr="compressedSize",zr="offset",xr="diskNumberStart",Er="lastModDate",Fr="rawLastModDate",Rr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",Ar="internalFileAttributes",_r="externalFileAttributes",Tr="msdosAttributesRaw",Ur="msdosAttributes",vr="msDosCompatible",Cr="zip64",Ir="encrypted",Nr="version",Mr="versionMadeBy",Wr="zipCrypto",Or="directory",Lr="executable",Pr="compressionMethod",Zr="signature",Hr="extraField",Vr="unixMode",Br="setuid",qr="setgid",Kr="sticky",jr=[hr,mr,br,Sr,Er,Fr,gr,yr,Rr,kr,Dr,zr,xr,Ar,_r,Tr,Ur,vr,Cr,Ir,Nr,Mr,Wr,Or,Lr,Pr,Zr,Hr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Vr,Br,qr,Kr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yr{constructor(e){jr.forEach(t=>this[t]=e[t])}}const Gr="password",Xr="rawPassword",Jr="passThrough",Qr="signal",$r="useWebWorkers",es="useCompressionStream",ts="transferStreams",rs="preventClose",ss="offset",ns="usdz",as="File format is not recognized",is="End of central directory not found",os="End of Zip64 central directory locator not found",cs="Central directory header not found",ls="Local file header not found",ds="Zip64 extra field not found",us="File contains encrypted entry",ps="Encryption method not supported",fs="Compression method not supported",ws="Split zip file",hs="Overlapping entry found",ms="utf-8",gs="cp437",ys=[[br,v],[Sr,v],[zr,v],[xr,C]],bs={[C]:{getValue:vs,bytes:4},[v]:{getValue:Cs,bytes:8}};class Ss{constructor(e,t={}){r.assign(this,{reader:new lr(e),options:t,config:ie(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ur(s),s.size!==$&&s.readUint8Array||(s=new qt(await new d(s.readable).blob()),await ur(s)),s.size<H)throw new p(as);s.chunkSize=oe(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,Is(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await pr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw vs(Is(await pr(s,0,4)))==M?new p(ws):new p(is);const o=Is(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,w=Us(o,20),h=u+H+w;let m=Us(o,4);const g=s.lastDiskNumber||0;let b=Us(o,6),S=Us(o,8),z=0,x=0;if(l==v||c==v||S==C||b==C){const e=Is(await pr(s,a.offset-20,20));if(vs(e,0)==Z){l=Cs(e,8);let t=await pr(s,l,56,-1),r=Is(t);const n=a.offset-20-56;if(vs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(z=l-e),t=await pr(s,l,56,-1),r=Is(t)}if(vs(r,0)!=P)throw new p(os);m==C&&(m=vs(r,16)),b==C&&(b=vs(r,20)),S==C&&(S=Cs(r,32)),c==v&&(c=Cs(r,40)),l-=c}}if(l<s.size||(z=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ws);if(0>l)throw new p(as);let E=0,R=await pr(s,l,c,b),k=Is(R);if(c){const e=a.offset-c;if(vs(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(z+=l-t),R=await pr(s,l,c,b),k=Is(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await pr(s,l,c,b),k=Is(R)),0>l||l>=s.size)throw new p(as);const A=Ds(t,e,"filenameEncoding"),_=Ds(t,e,"commentEncoding");for(let a=0;S>a;a++){const o=new zs(s,n,t.options);if(vs(k,E)!=O)throw new p(cs);xs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=Us(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=Us(k,E+32),D=f+b,T=R.subarray(f,D),U=c,v=c,N=vs(k,E+38),M=N&I,W={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},L=vs(k,E+42)+z,P=Ds(t,e,"decodeText")||wr,Z=U?ms:A||gs,H=v?ms:_||gs;let V=P(g,Z);V===$&&(V=wr(g,Z));let B=P(T,H);B===$&&(B=wr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:Us(k,E+34),internalFileAttributes:Us(k,E+36),externalFileAttributes:N,msdosAttributesRaw:M,msdosAttributes:W,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,f),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Es(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&W.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Yr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,S,new Yr(o))}catch{}yield ne}const T=Ds(t,e,"extractPrependedData"),U=Ds(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await pr(s,0,x):new f),t.comment=w?await pr(s,u+H,w):new f,U&&(t.appendedData=h<s.size?await pr(s,h,s.size-h):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class zs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:S}=h,z=t.localDirectory={},x=Is(await pr(i,o,X,c));let E=Ds(a,n,Gr),F=Ds(a,n,Xr);const R=Ds(a,n,Jr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new p(fs);if(0!=u&&8!=u&&9!=u&&!R)throw new p(fs);if(vs(x,0)!=N)throw new p(ls);xs(z,x,4);const{extraFieldLength:D,filenameLength:A,lastAccessDate:_,creationDate:T}=z;z.rawExtraField=D?await pr(i,o+X+A,D,c):new f,Es(a,z,x,4,!0),r.assign(t,{lastAccessDate:_,creationDate:T});const U=a.encrypted&&z.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new p(ps);if(!E&&!F)throw new p(us)}const C=o+X+A+D,M=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:M});const L=Ds(a,n,Qr),P=Ds(a,n,"checkPasswordOnly");let Z=Ds(a,n,"checkOverlappingEntry");const H=Ds(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=Ds(a,n,es);K&&(j=!1);const Y={options:{codecType:ht,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:Ds(a,n,"checkSignature")&&!R,passwordVerification:v&&(S?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:Ds(a,n,$r),useCompressionStream:j,transferStreams:Ds(a,n,ts),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:M,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await pr(e,o+a,f+4,s);if(vs(Is(r),0)==W){const e=vs(Is(r),4);let s,o;l?(s=Cs(Is(r),8),o=Cs(Is(r),16)):(s=vs(Is(r),8),o=vs(Is(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const w={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new p(hs);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:S||z.bitFlag.dataDescriptor,extraFieldZip64:d||z.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new dr(e),await ur(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ct({readable:O,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new p(it)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=xe)throw t}finally{Ds(a,n,rs)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function xs(e,t,s){const n=e.rawBitFlag=Us(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Us(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:As(i),filenameLength:Us(t,s+22),extraFieldLength:Us(t,s+24)})}function Es(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Is(new f(i));let u=0;try{for(;u<i.length;){const e=Us(d,u),t=Us(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Us(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Is(e.data),s=ys.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=bs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p(ds)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Fs(m,hr,mr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Fs(g,gr,yr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Is(e.data),a=Ts(n,4);r.assign(e,{vendorVersion:Ts(n,0),vendorId:Ts(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Us(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=Is(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Us(s,a),r=Us(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=Is(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:_s(a),lastAccessDate:_s(i),creationDate:_s(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const S=l.get(30805);if(S)Rs(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(Rs(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(V);z&&(((e,t,r)=>{const s=Is(e.data),n=Ts(s,0),a=[],i=[];r?(1&~n||(a.push(Er),i.push(Fr)),2&~n||(a.push(Rr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Er),i.push(Fr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Fs(e,t,s,n,a){const i=Is(e.data),o=new ue;o.append(a[s]);const c=Is(new f(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:Ts(i,0),[t]:wr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Rs(e,t,s){try{const n=Is(new f(e.data));let a=0;const i=Ts(n,a++),o=Ts(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=ks(c),d=Ts(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=ks(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:w}),l!==$&&(t.uid=l),p!==$&&(t.gid=p),w!==$&&(t.unixMode=w)}catch{}}function ks(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ds(e,t,r){return t[r]===$?e.options[r]:t[r]}function As(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function _s(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Ts(e,t){return e.getUint8(t)}function Us(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Cs(e,t){return n(e.getBigUint64(t,!0))}function Is(e){return new m(e.buffer)}const Ns="File already exists",Ms="Zip file comment exceeds 64KB",Ws="File entry comment exceeds 64KB",Os="File entry name exceeds 64KB",Ls="Version exceeds 65535",Ps="The strength must equal 1, 2, or 3",Zs="Extra field type exceeds 65535",Hs="Extra field data exceeds 64KB",Vs="Zip64 is not supported (set the 'zip64' option to 'true')",Bs="Undefined uncompressed size",qs="Zip file not empty",Ks=new f([7,0,2,0,65,69,3,0,0]),js="infozip",Ys="unix";let Gs=0;const Xs=[];class Js{constructor(e,t={}){const s=(e=new dr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ie(),files:new c,filenames:new l,offset:t[ss]===$?e.size||e.writable.size||0:t[ss],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(qs);e=new lr(e);const t=new Ss(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,S=e.rawExtraFieldUnix||new f,z=z||new f;const R=dn(m,g,y,b,S,z),k=h&&d>v,D=h&&u>v,{headerArray:A,headerView:_}=un({version:t,bitFlag:pn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-p>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:A,headerView:_}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;Gs<d.maxWorkers?Gs++:await new y(e=>Xs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ns);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=tn(e,c,vr),d=tn(e,c,Mr,l?20:768);const u=tn(e,c,Lr),h=tn(e,c,"uid"),g=tn(e,c,"gid");let b=tn(e,c,Vr);const S=tn(e,c,"unixExtraFieldType");let z=tn(e,c,Br),x=tn(e,c,qr),E=tn(e,c,Kr);if(h!==$&&(0>h||h>v))throw new p("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>v))throw new p("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==js&&S!==Ys)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=tn(e,c,Tr),k=tn(e,c,Ur);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||S?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new p(Ls);let A=tn(e,c,_r,0);!c[Or]&&s.endsWith(G)&&(c[Or]=!0);const _=tn(e,c,Or);let T;_?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=u?493<<16:27525120),l||(T=A>>16&C,b=b===$?T:b&C,z?b|=K:z=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),_&&(b|=q),A=(b&C)<<16|A&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(A=A&v|R&I);const U=tn(e,c,"encodeText",fe);let O=U(s);if(O===$&&(O=fe(s)),dn(O)>C)throw new p(Os);const L=c[gr]||"";let P=U(L);if(P===$&&(P=fe(L)),dn(P)>C)throw new p(Ws);const Z=tn(e,c,Nr,20);if(Z>C)throw new p(Ls);const H=tn(e,c,Er,new o),B=tn(e,c,Rr),te=tn(e,c,kr),re=tn(e,c,Ar,0),se=tn(e,c,Jr);let ne,ae;se||(ne=tn(e,c,Gr),ae=tn(e,c,Xr));const ie=tn(e,c,"encryptionStrength",3),ce=tn(e,c,Wr),le=tn(e,c,"extendedTimestamp",!0),de=tn(e,c,"keepOrder",!0),ue=tn(e,c,$r),pe=tn(e,c,ts,!0),we=tn(e,c,"bufferedWrite"),he=tn(e,c,"createTempStream"),me=tn(e,c,"dataDescriptorSignature",!1),ge=tn(e,c,Qr),ye=tn(e,c,"useUnicodeFileNames",!0),be=tn(e,c,Pr);let Se=tn(e,c,"level"),ze=tn(e,c,es),xe=tn(e,c,"dataDescriptor");we&&xe===$&&(xe=!1),(xe===$||ce)&&(xe=!0),Se!==$&&6!=Se&&(ze=!1),ze||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(Se=0);let Ee=tn(e,c,Cr);if(!ce&&(ne!==$||ae!==$)&&(1>ie||ie>3))throw new p(Ps);let Fe=new f;const Re=c[Hr];if(Re){let e=0,t=0;Re.forEach(t=>e+=4+dn(t)),Fe=new f(e),Re.forEach((e,r)=>{if(r>C)throw new p(Zs);if(dn(e)>C)throw new p(Hs);cn(Fe,new w([r]),t),cn(Fe,new w([dn(e)]),t+2),cn(Fe,e,t+4),t+=4+dn(e)})}let ke=0,De=0,Ae=0;if(se&&(Ae=c[br],Ae===$))throw new p(Bs);const _e=!0===Ee;n&&(n=new lr(n),await ur(n),se?(c.uncompressedSize=Ae,ke=rn(Ae)):n.size===$?(xe=!0,(Ee||Ee===$)&&(Ee=!0,Ae=ke=4294967296)):(c.uncompressedSize=Ae=n.size,ke=rn(Ae)));const{diskOffset:Te,diskNumber:Ue}=e.writer,ve=_e||Ae>v,Ce=_e||ke>v;if(ve||Ce){if(!1===Ee)throw new p(Vs);Ee=!0}Ee=Ee||!1;const Ie=tn(e,c,Ir),Ne=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:S,zip64CompressedSize:z,uncompressedSize:x}=e;let{version:E,compressionMethod:F}=e;const R=!p&&(o>0||o===$&&0!==F);let k;const D=y||!R,A=c&&(e.bufferedWrite||!S&&!z||D);if(c){let e=4;S&&(e+=8),z&&(e+=8),k=new f(e);const t=ln(k);if(nn(t,0,1),nn(t,2,dn(k)-4),A){const e=ln(k);let t=4;S&&(on(e,t,a(x)),t+=8),z&&D&&(on(e,t,a(x)),t+=8),4==t&&(k=new f)}}else k=new f;let _,T,U,v,I;if(b&&!l){_=new f(dn(Ks)+2);const e=ln(_);nn(e,0,39169),cn(_,Ks,2),sn(e,8,h)}else _=new f;if(g){U=new f(9+(s?4:0)+(n?4:0));const e=ln(U);nn(e,0,V),nn(e,2,dn(U)-4),v=1+(s?2:0)+(n?4:0),sn(e,4,v);let t=5;an(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(an(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&an(e,t,i.floor(n.getTime()/1e3));try{T=new f(36);const e=ln(T),t=en(r);nn(e,0,10),nn(e,2,32),nn(e,8,1),nn(e,10,24),on(e,12,t),on(e,20,en(s)||t),on(e,28,en(n)||t)}catch{T=new f}}else T=U=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)I=new f;else{const e=Qs(t),c=Qs(r);let l=new f;if(o==Ys&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;I=new f(4+d);const u=ln(I);nn(u,0,o==js?30837:30805),nn(u,2,d),sn(u,4,1),sn(u,5,e.length);let p=6;cn(I,e,p),p+=e.length,sn(u,p,c.length),p++,cn(I,c,p),p+=c.length,cn(I,l,p)}}catch{I=new f}F===$&&(F=R?8:0),c&&(E=E>45?E:45),b&&!l&&(E=E>51?E:51,_[9]=F,F=99);const M=A?dn(k):0,W=M+dn(_,U,T,I,w),{headerArray:O,headerView:L,rawLastModDate:P}=un({version:E,bitFlag:pn(o,d,u,b,F),compressionMethod:F,uncompressedSize:x,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:S,extraFieldLength:W});let Z=X;const H=new f(Z+dn(t)+W),B=ln(H);return an(B,0,N),cn(H,O,4),cn(H,t,Z),Z+=dn(t),A&&cn(H,k,Z),Z+=M,cn(H,_,Z),Z+=dn(_),cn(H,U,Z),Z+=dn(U),cn(H,T,Z),Z+=dn(T),cn(H,I,Z),Z+=dn(I),cn(H,w,Z),u&&(an(B,18,0),an(B,22,0)),{localHeaderArray:H,localHeaderView:B,headerArray:O,headerView:L,lastModDate:r,rawLastModDate:P,encrypted:b,compressed:R,version:E,compressionMethod:F,extraFieldExtendedTimestampFlag:v,rawExtraFieldZip64:new f,localExtraFieldZip64Length:M,rawExtraFieldExtendedTimestamp:U,rawExtraFieldNTFS:T,rawExtraFieldUnix:I,rawExtraFieldAES:_,extraFieldLength:W}})(c=r.assign({},c,{rawFilename:O,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:te,rawExtraField:Fe,zip64:Ee,zip64UncompressedSize:ve,zip64CompressedSize:Ce,password:ne,rawPassword:ae,level:Se,useWebWorkers:ue,transferStreams:pe,encryptionStrength:ie,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:we,createTempStream:he,keepOrder:de,useUnicodeFileNames:ye,dataDescriptor:xe,dataDescriptorSignature:me,signal:ge,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:ze,passThrough:se,encrypted:!!(ne&&dn(ne)||ae&&dn(ae))||se&&Ie,signature:c[Zr],compressionMethod:be,uncompressedSize:Ae,offset:e.offset-Te,diskNumberStart:Ue,uid:h,gid:g,setuid:z,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),Me=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=ln(n),r&&(a=4,an(s,0,W))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),We=dn(Ne.localHeaderArray,Me.dataDescriptorArray);let Oe;De=We+ke,e.options[ns]&&(De+=De+64),e.pendingEntriesSize+=De;try{Oe=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:p}=o,{headerInfo:w}=i,h=e.options[ns],m=t.from(c.values()).pop();let g,b,S,z,x,E,R={};c.set(s,R);try{let t;d&&(t=m&&m.lock,R.lock=new y(e=>S=e)),!o.bufferedWrite&&d&&!e.writerLocked&&!e.bufferedWrites&&u||h?(E=l,await k()):(E=o.createTempStream?await o.createTempStream():new F($,$,{highWaterMark:ee}),E.size=0,g=!0,e.bufferedWrites++,await ur(l)),await ur(E);const{writable:b,diskOffset:A}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);an(ln(t),0,M),await $s(l,t),e.offset+=4}h&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=ln(s),i=64-(t+dn(s))%64;4>i&&(i+=64);const o=new f(i),c=ln(o);nn(c,0,6534),nn(c,2,i-2);const l=s;r.localHeaderArray=s=new f(dn(l)+i),cn(s,l),cn(s,o,dn(l)),a=ln(s),nn(a,28,n+i),e.metadataSize+=i})(i,e.offset-A);const{localHeaderView:_,localHeaderArray:T}=w;g||(await t,await D(b));const{diskNumber:U}=l;return R.diskNumberStart=U,g||(x=!0,await $s(E,T)),R=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:S,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:A,lastAccessDate:_,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:M,zip64CompressedSize:W,zipCrypto:O,dataDescriptor:L,directory:P,executable:Z,versionMadeBy:H,rawComment:V,rawExtraField:B,useWebWorkers:q,transferStreams:K,onstart:j,onprogress:Y,onend:G,signal:X,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:ee,internalFileAttributes:te,externalFileAttributes:re,uid:se,gid:ne,unixMode:ae,setuid:ie,setgid:ce,sticky:le,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:pe,useCompressionStream:fe,passThrough:we}=c,he={lock:n,versionMadeBy:H,zip64:N,directory:!!P,executable:!!Z,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:V,rawExtraFieldZip64:S,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:B,extendedTimestamp:Q,msDosCompatible:ee,internalFileAttributes:te,externalFileAttributes:re,diskNumberStart:s,uid:se,gid:ne,unixMode:ae,setuid:ie,setgid:ce,sticky:le,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:pe};let{signature:me,uncompressedSize:ge}=c,ye=0;we||(ge=0);const{writable:be}=t;if(e){e.chunkSize=oe(o);const r=e.readable,s=e.size,n={options:{codecType:wt,level:C,rawPassword:v,password:U,encryptionStrength:J,zipCrypto:m&&O,passwordVerification:m&&O&&h>>8&I,signed:!we,compressed:g&&!we,encrypted:m&&!we,useWebWorkers:q,useCompressionStream:fe,transferStreams:K},config:o,streamOptions:{signal:X,size:s,onstart:j,onprogress:Y,onend:G}};try{const e=await Ct({readable:r,writable:be},n);ye=e.outputSize,t.size+=ye,we||(ge=e.inputSize,me=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===$||(an(l,10,e),c&&an(u,p,e)),i?c&&(on(u,p+4,a(t)),on(u,p+12,a(r))):(an(l,14,t),an(l,18,r),c&&(an(u,p+4,t),an(u,p+8,r)))})({signature:me,compressedSize:ye,uncompressedSize:ge,headerInfo:l,dataDescriptorInfo:d},c),L&&await $s(t,D),r.assign(he,{uncompressedSize:ge,compressedSize:ye,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:_,encrypted:m,zipCrypto:O,size:u+ye,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:me,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:M,zip64CompressedSize:W}),he})(n,E,R,i,e.config,o),g||(x=!1),c.set(s,R),R.filename=s,g?(await y.all([E.writable.getWriter().close(),t]),await k(),z=!0,R.diskNumberStart=l.diskNumber,R.offset=e.offset-l.diskOffset,(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||an(d,14,n),l||an(d,18,i),c||an(d,22,o)),r&&s){let t=X+dn(e)+4;c&&(on(d,t,a(o)),t+=8),l&&(on(d,t,a(i)),t+=8)}})(R,_,o),await D(b),await $s(l,T),await E.readable.pipeTo(b,{preventClose:!0,preventAbort:!0,signal:p}),l.size+=E.size,z=!1):R.offset=e.offset-A,e.offset+=R.size,R}catch(t){if(z||x){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}g?e.offset+=E.size:e.offset=E.size}throw c.delete(s),t}finally{g&&e.bufferedWrites--,S&&S(),b&&b()}async function k(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>b=()=>{e.writerLocked=!1,t()}),await t}async function D(e){dn(w.localHeaderArray)>l.availableSize&&(l.availableSize=0,await $s(e,new f))}})(e,s,n,{headerInfo:Ne,dataDescriptorInfo:Me,metadataSize:We},c)}finally{e.pendingEntriesSize-=De}return r.assign(Oe,{name:s,comment:L,extraField:Re}),new Yr(Oe)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Xs.shift();e?e():Gs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldAES:r,rawComment:s,rawExtraFieldNTFS:n,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p,zip64UncompressedSize:w,zip64CompressedSize:h,uncompressedSize:m,compressedSize:g}=e,y=e.offset>v,b=e.diskNumberStart>C;let S,z;if(y||b||w||h){let t=4;w&&(t+=8),h&&(t+=8),y&&(t+=8),b&&(t+=4),S=new f(t);const r=ln(S);nn(r,0,1),nn(r,2,t-4);let s=4;w&&(on(r,s,a(m)),s+=8),h&&(on(r,s,a(g)),s+=8),y&&(on(r,s,a(e.offset)),s+=8),b&&an(r,s,e.diskNumberStart)}else S=new f;if(e.rawExtraFieldZip64=S,e.zip64Offset=y,e.zip64DiskNumberStart=b,l){z=new f(9);const e=ln(z);nn(e,0,V),nn(e,2,5),sn(e,4,d),an(e,5,i.floor(p.getTime()/1e3))}else z=new f;e.rawExtraFieldExtendedTimestamp=z,u+=46+dn(t,s,S,r,n,o,z,c)}const m=new f(u),g=ln(m);await ur(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:p,rawExtraField:f,rawComment:w,versionMadeBy:h,headerArray:b,headerView:S,zip64UncompressedSize:z,zip64CompressedSize:x,zip64DiskNumberStart:E,zip64Offset:F,internalFileAttributes:R,externalFileAttributes:k,diskNumberStart:D,uncompressedSize:A,compressedSize:_}=r,T=dn(i,c,l,u,p,f);an(g,d,O),nn(g,d+4,h),z||an(S,18,A),x||an(S,14,_),cn(m,b,d+6);let U=d+X;if(nn(g,U,T),U+=2,nn(g,U,dn(w)),U+=2,nn(g,U,E?C:D),U+=2,nn(g,U,R),U+=2,k&&an(g,U,k),U+=4,an(g,U,F?v:t),U+=4,cn(m,a,U),U+=dn(a),cn(m,i,U),U+=dn(i),cn(m,c,U),U+=dn(c),cn(m,l,U),U+=dn(l),cn(m,u,U),U+=dn(u),cn(m,p,U),U+=dn(p),cn(m,f,U),U+=dn(f),cn(m,w,U),U+=dn(w),d-y>o.availableSize&&(o.availableSize=0,await $s(o,m.slice(y,d)),y=d),d=U,s.onprogress)try{await s.onprogress(e+1,n.size,new Yr(r))}catch{}}await $s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:S}=o;H>S&&b++;let z=tn(e,s,Cr);if(w>v||u>v||h>C||b>C){if(!1===z)throw new p(Vs);z=!0}const x=new f(z?98:H),E=ln(x);d=0,z&&(an(E,0,P),on(E,4,a(44)),nn(E,12,45),nn(E,14,45),an(E,16,b),an(E,20,l),on(E,24,a(h)),on(E,32,a(h)),on(E,40,a(u)),on(E,48,a(w)),an(E,56,Z),on(E,64,a(w)+a(u)),an(E,72,b+1),tn(e,s,"supportZip64SplitFile",!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),an(E,d,L),nn(E,d+4,b),nn(E,d+6,l),nn(E,d+8,h),nn(E,d+10,h),an(E,d+12,u),an(E,d+16,w);const F=dn(r);if(F){if(F>C)throw new p(Ms);nn(E,d+20,F)}await $s(o,x),F&&await $s(o,r)})(this,e,r),tn(this,r,rs)||await o.getWriter().close(),n.getData?n.getData():o}}function Qs(e){if(e===$)return new f;{const t=new f(4);ln(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}async function $s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=dn(t),await s.write(t)}finally{s.releaseLock()}}function en(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function tn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function rn(e){return e+5*(i.floor(e/16383)+1)}function sn(e,t,r){e.setUint8(t,r)}function nn(e,t,r){e.setUint16(t,r,!0)}function an(e,t,r){e.setUint32(t,r,!0)}function on(e,t,r){e.setBigUint64(t,r,!0)}function cn(e,t,r){e.set(t,r)}function ln(e){return new m(e.buffer)}function dn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function un({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=ln(d);nn(u,0,e),nn(u,2,t),nn(u,4,r);const p=new h(1),w=ln(p);nn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),nn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return an(u,6,m),(o||n!==$)&&an(u,14,o?v:n),(c||s!==$)&&an(u,18,c?v:s),nn(u,22,dn(i)),nn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function pn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{ce({baseURI:void 0===z&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===z?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",z.baseURI).href})}catch{}e.BlobReader=qt,e.BlobWriter=Kt,e.Data64URIReader=class extends Vt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Bt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=as,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=cs,e.ERR_DUPLICATED_NAME=Ns,e.ERR_ENCRYPTED=us,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=os,e.ERR_EOCDR_NOT_FOUND=is,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ds,e.ERR_HTTP_RANGE=Mt,e.ERR_INVALID_COMMENT=Ms,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ps,e.ERR_INVALID_ENTRY_COMMENT=Ws,e.ERR_INVALID_ENTRY_NAME=Os,e.ERR_INVALID_EXTRAFIELD_DATA=Hs,e.ERR_INVALID_EXTRAFIELD_TYPE=Zs,e.ERR_INVALID_PASSWORD=Se,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=it,e.ERR_INVALID_VERSION=Ls,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ls,e.ERR_OVERLAPPING_ENTRY=hs,e.ERR_SPLIT_ZIP_FILE=ws,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Bs,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=ps,e.ERR_UNSUPPORTED_FORMAT=Vs,e.ERR_ZIP_NOT_EMPTY=qs,e.HttpRangeReader=class extends ir{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ir,e.Reader=Vt,e.SplitDataReader=or,e.SplitDataWriter=cr,e.TextReader=class extends qt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Kt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Vt{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Bt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Bt,e.ZipReader=Ss,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new Ss(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Js,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Js(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=ce,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Tt.map(e=>(It(e),e.terminate())))}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:S,document:z,crypto:x,btoa:E,TransformStream:F,ReadableStream:k,WritableStream:R,CompressionStream:D,DecompressionStream:A,navigator:v,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var _=void 0!==z?z.currentScript:null;const C=4294967295,U=65535,N=255,O=67324752,I=134695760,M=I,W=33639248,L=101010256,P=101075792,H=117853008,B=22,Z=21589,V=2048,q=16384,K=2048,j=1024,Y="/",G=30,X=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function";let re=2;try{typeof v!=ee&&v.hardwareConcurrency&&(re=v.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,workerStarvationTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof A!=ee&&A},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}function oe(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,workerStarvationTimeout:a,useCompressionStream:i,useWebWorkers:o,CompressionStream:c,DecompressionStream:l,CompressionStreamZlib:d,DecompressionStreamZlib:u,workerURI:f,wasmURI:p}=e;ce("baseURI",t),ce("wasmURI",p),ce("workerURI",f),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("workerStarvationTimeout",a),ce("useCompressionStream",i),ce("useWebWorkers",o),ce("CompressionStream",c),ce("DecompressionStream",l),ce("CompressionStreamZlib",d),ce("DecompressionStreamZlib",u)}function ce(e,t){t!==Q&&(ne[e]=t)}const le=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;le[e]=t}class de{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^le[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class ue extends F{constructor(){let e;const t=new de;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new p(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==ee){const t=new p((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const pe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=pe.getPartial(r);return 32===s?e.concat(t):pe._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+pe.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=pe.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=pe.getPartial(n);return s.push(pe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=pe.bitLength(e)/8,r=new p(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(pe.partial(8*(3&r),s)),t}}},he=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=we.utf8String.toBits(e));const r=t._buffer=pe.concat(t._buffer,e),s=t._length,n=t._length=s+pe.bitLength(e);if(n>9007199254740991)throw new f("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=pe.concat(t,[pe.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},me={importKey:e=>new me.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new f("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let p=0;const w=pe;for(t=we.bytes.toBits(t),l=1;(n||1)>p;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>p&&o<a.length;o++)u.setInt32(p,a[o]),p+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=he,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ge=typeof x!=ee&&typeof x.getRandomValues==te,ye="Invalid password",be="Invalid signature",Se="zipjs-abort-check-password";function ze(e){if(ge)return x.getRandomValues(e);throw new f("Crypto API not supported")}const xe=16,Ee={name:"PBKDF2"},Fe=r.assign({hash:{name:"HMAC"}},Ee),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Ee),Re=["deriveBits"],De=[8,12,16],Ae=[16,24,32],ve=10,Te=[0,0,0,0],_e=typeof x!=ee,Ce=_e&&x.subtle,Ue=_e&&typeof Ce!=ee,Ne=we.bytes,Oe=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new f("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,f=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=f=f<<24^f>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new f("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,p,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],p=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=p,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Ie=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=pe.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return pe.clamp(t,n)}},Me=me.hmacSha1;let We=_e&&Ue&&typeof Ce.importKey==te,Le=_e&&Ue&&typeof Ce.deriveBits==te;class Pe extends F{constructor({password:e,rawPassword:t,encryptionStrength:s,checkPasswordOnly:n}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ve(e,t),strength:s-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:a,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Ze(e,t,r,Ke(s,0,De[t])),a=Ke(s,De[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(ye)})(r,a,s,Ke(e,0,De[a]+2)),e=Ke(e,De[a]+2),n?t.error(new f(Se)):i()):await o;const c=new p(e.length-ve-(e.length-ve)%xe);t.enqueue(Be(r,e,c,0,ve,!0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:n}=this;if(r&&t){await n;const a=Ke(s,0,s.length-ve),i=Ke(s,s.length-ve);let o=new p;if(a.length){const e=Ye(Ne,a);r.update(e);const s=t.update(e);o=je(Ne,s)}const c=Ke(je(Ne,r.digest()),0,ve);let l=s.length<ve?1:0;for(let e=0;ve>e;e++)l|=c[e]^i[e];if(l)throw new f(be);e.enqueue(o)}}})}}class He extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ve(e,t),strength:s-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new p;s?(o=await(async(e,t,r)=>{const s=ze(new p(De[t]));return qe(s,await Ze(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%xe);c.set(o,0),t.enqueue(Be(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new p;if(s.length){const e=t.update(Ye(Ne,s));r.update(e),i=je(Ne,e)}n.signature=je(Ne,r.digest()).slice(0,ve),e.enqueue(qe(i,n.signature))}}}),n=this}}function Be(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e;c.length&&(t=qe(c,t));const l=t.length-n;let d;for(r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,s+(l-l%xe)),d=0;l-xe>=d;d+=xe){const e=Ye(Ne,Ke(t,d,d+xe));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(je(Ne,n),d+s)}return e.pending=Ke(t,d),r}async function Ze(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!We)return me.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return We=!1,me.importKey(t)}})(0,n,Fe,0,Re),o=await(async(e,t,r)=>{if(!Le)return me.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Le=!1,me.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new p(o),l=Ye(Ne,Ke(c,0,Ae[s])),d=Ye(Ne,Ke(c,Ae[s],2*Ae[s])),u=Ke(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Ie(new Oe(l),t.from(Te)),hmac:new Me(d)}),u}function Ve(e,t){return t===Q?fe(e):t}function qe(e,t){let r=e;return e.length+t.length&&(r=new p(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ke(e,t,r){return e.subarray(t,r)}function je(e,t){return e.fromBits(t)}function Ye(e,t){return e.toBits(t)}class Ge extends F{constructor({password:e,rawPassword:t,passwordVerification:s,checkPasswordOnly:n}){super({start(){r.assign(this,{password:e,rawPassword:t,passwordVerification:s}),$e(this,e,t)},transform(e,t){const r=this;if(r.password||r.rawPassword){const t=Je(r,e.subarray(0,12));if(r.password=r.rawPassword=null,0!=(t.at(-1)^r.passwordVerification))throw new f(ye);e=e.subarray(12)}n?t.error(new f(Se)):t.enqueue(Je(r,e))}})}}class Xe extends F{constructor({password:e,rawPassword:t,passwordVerification:s}){super({start(){r.assign(this,{password:e,rawPassword:t,passwordVerification:s}),$e(this,e,t)},transform(e,t){const r=this;let s,n;if(r.password||r.rawPassword){r.password=r.rawPassword=null;const t=ze(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set(Qe(r,t),0),n=12}else s=new p(e.length),n=0;s.set(Qe(r,e),n),t.enqueue(s)}})}}function Je(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=tt(e)^t[s],et(e,r[s]);return r}function Qe(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=tt(e)^t[s],et(e,t[s]);return r}function $e(e,t,s){const n=[305419896,591751049,878082192];if(r.assign(e,{keys:n,crcKey0:new de(n[0]),crcKey2:new de(n[2])}),s)for(let t=0;t<s.length;t++)et(e,s[t]);else for(let r=0;r<t.length;r++)et(e,t.charCodeAt(r))}function et(e,t){let[,r]=e.keys;e.crcKey0.append([t]);const s=~e.crcKey0.get();r=st(i.imul(st(r+rt(s)),134775813)+1),e.crcKey2.append([r>>>24]);const n=~e.crcKey2.get();e.keys=[s,r,n]}function tt(e){const t=2|e.keys[2];return rt(i.imul(t,1^t)>>>8)}function rt(e){return 255&e}function st(e){return 4294967295&e}const nt="Invalid uncompressed size",at="Invalid compressed data";class it extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,f,p=super.readable;a&&!o||!c||(u=new ue,p=dt(p,u)),n&&(p=lt(p,i,{level:l,chunkSize:t},s,r,s)),a&&(o?p=dt(p,new Xe(e)):(f=new He(e),p=dt(p,f))),ct(d,p,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ot extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,p,w=super.readable;a&&(n?w=dt(w,new Ge(e)):(p=new Pe(e),w=dt(w,p))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s),w=(e=>{const t=e.getReader();return new k({async pull(e){let r;try{r=await t.read()}catch(e){if(e&&e.message)throw e;const t=new f(at);throw t.cause=e,t}const{value:s,done:n}=r;n?e.close():e.enqueue(s)},cancel:e=>t.cancel(e)})})(w)),a&&!n||!i||(u=new ue,w=dt(w,u)),ct(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(be)}})}}function ct(e,t,s){t=dt(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function lt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=dt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=dt(e,new n(o,r));else{if(!a)throw s;e=dt(e,new a(o,r))}}return e}function dt(e,t){return e.pipeThrough(t)}const ut="data",ft="deflate",pt="inflate";class wt extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(ft)?a=it:n.startsWith(pt)&&(a=ot),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==Q&&s.outputSize>e.outputSize))throw new f(nt)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class ht extends F{constructor(e){let t;1>e&&(e=65536),super({transform:(r,s)=>{if(t){const e=new p(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}let n=0;for(;r.length-n>e;)s.enqueue(r.slice(n,n+e)),n+=e;t=n?r.slice(n):r},flush(e){t&&t.length&&e.enqueue(t)}})}}const mt={type:"module"},gt="error";let yt,bt,St,zt,xt=!0;try{xt=typeof structuredClone==te&&structuredClone(new DOMException("","AbortError")).code!==Q}catch{}class Et{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,generation:(e.generation||0)+1,readable:t.pipeThrough(new ht(ie(a))).pipeThrough(new Ft(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){if(e.busy){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}}),yt===Q&&(yt=typeof T!=ee),(o&&yt?Dt:Rt)(e,a)}}class Ft extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await kt(e,r)},async transform(e,s){n+=e.length,t&&await kt(t,n,r),s.enqueue(e)},async flush(){s&&await kt(s,n)}})}}async function kt(e,...t){try{await e(...t)}catch{}}function Rt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new wt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Dt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=vt(e.workerURI,s,e)}catch{return yt=!1,Rt(e,t)}r.assign(e,{worker:i,terminated:!1,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l,abortPipe:d}=(e=>{const t=new AbortController,{writable:r,readable:s}=new F,n=s.pipeTo(e,{preventClose:!0,preventAbort:!0,signal:t.signal});return n.catch(()=>{}),{writable:r,closed:n,abortPipe:()=>t.abort()}})(e.writable);let u;try{u=_t({type:"start",options:o,config:t,readable:i,writable:c},e)}catch(t){d();try{await l}catch{}throw e.onTaskFinished(),t}u||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});try{const e=await a;return await f(),await l,e}catch(e){await f(),d();try{await l}catch{}throw e}async function f(){if(!u&&!c.locked)try{await c.getWriter().close()}catch{}}})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function At(e){const{worker:t}=e;if(t)try{t.terminate()}catch{}e.interface=null}function vt(e,t,s,n,a=!0){let i,o,c;if(St===Q||bt!==e){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===Q&&(n=!1),n&&(c=mt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return vt(e,t,s,n,!1);if(n)throw a;return vt(e,t,s,!0,!1)}}else{n===Q&&(n=!0),n&&(c=mt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return vt(e,t,s,!1,a)}}bt=e,St=o,zt=c}else i=new T(St,zt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w,generation:h}=t,m=()=>t.generation!=h;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),g(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();m()||_t({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new p(n)),m()||_t({type:"ack",messageId:a},t)),"close"==s&&g(null,i)}}catch(o){m()||(At(t),g(o))}function g(e,t){m()||(e?u(e):d(t),l&&l.releaseLock(),w())}})(e,s)),i.addEventListener(gt,e=>Tt(e,s)),i.addEventListener("messageerror",e=>Tt(e,s)),i}function Tt(e,t){e.preventDefault&&e.preventDefault();const{rejectResult:r,writer:s,onTaskFinished:n}=t;At(t),r&&(r(e.error||new f(e.message||gt)),s&&s.releaseLock(),n())}function _t(e,{worker:t,writer:r,transferStreams:s}){try{const{value:r,readable:n,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),s&&xt?(n&&i.push(n),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),e}}let Ct=[];const Ut=[];let Nt,Ot,It=0;async function Mt(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:f}=s;t.transferStreams=a||a===Q;const p=!(c||l||d||t.transferStreams);return t.useWebWorkers=!p&&(i||i===Q&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&s.useCompressionStream,(await(async()=>{const r=Ct.find(e=>!e.busy);if(r)return Bt(r),new Et(r,e,t,w);if(Ct.length<f){const r={indexWorker:It};return It++,Ct.push(r),new Et(r,e,t,w)}return new y(r=>{Ut.push({resolve:r,stream:e,workerOptions:t}),Ot=s.workerStarvationTimeout,Wt()})})()).run();function w(e){if(Lt(),Ut.length){const[{resolve:t,stream:r,workerOptions:s}]=Ut.splice(0,1);t(new Et(e,r,s,w)),Wt()}else e.worker?(Bt(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Ct=Ct.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Ct=Ct.filter(t=>t!=e)}}function Wt(){!Nt&&Ut.length&&n.isFinite(Ot)&&Ot>=0&&(Nt=setTimeout(Pt,Ot))}function Lt(){Nt&&(clearTimeout(Nt),Nt=null)}function Pt(){if(Nt=null,Ut.length){const[{resolve:e,stream:t,workerOptions:s}]=Ut.splice(0,1),n=r.assign({},s,{useWebWorkers:!1,workerURI:Q});e(new Et({},t,n,Ht)),Wt()}}function Ht(){Lt(),Wt()}function Bt(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Zt="HTTP error ",Vt="HTTP Range not supported",qt="Content-Range",Kt="Range",jt="GET",Yt="bytes",Gt=65536,Xt="writable";class Jt{constructor(){this.size=0}init(){this.initialized=!0}}class Qt extends Jt{get readable(){const e=this,{chunkSize:t=Gt}=e,r=new k({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===Q?t:i.min(t,a-c),d=await zr(e,n+c,l,o);s.enqueue(d),c+t>a||a===Q&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class $t extends Jt{constructor(){super();const e=this,t=new R({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Xt,{get:()=>t})}writeUint8Array(){}}class er extends Qt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new p(a)}}class tr extends Jt{constructor(e){super();const t=this,s=new F,n=[];e&&n.push(["Content-Type",e]),r.defineProperty(t,Xt,{get:()=>s.writable}),t.blob=new d(s.readable,{headers:n}).blob(),t.blob.catch(()=>{})}getData(){return this.blob}}class rr extends Qt{constructor(e,t){super(),nr(this,e,t)}async init(){await ar(this,pr,lr),super.init()}readUint8Array(e,t){return ir(this,e,t,pr,lr)}}class sr extends Qt{constructor(e,t){super(),nr(this,e,t)}async init(){await ar(this,wr,dr),super.init()}readUint8Array(e,t){return ir(this,e,t,wr,dr)}}function nr(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,delete s.fetch,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o,fetch:c})}async function ar(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(jt,e,or(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Yt))throw new f(Vt);{if(c){const t=new p(await s.arrayBuffer());206==s.status&&t.length==B&&(e.eocdCache=t)}let a;const i=s.headers.get(qt);if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===Q?await fr(e,t,r):e.size=a}}else await fr(e,t,r)}async function ir(e,t,r,s,a){const{useRangeHeader:i,forceRangeRequests:o,eocdCache:c,size:l,options:d}=e;if(i||o){if(c&&t==l-B&&r==B)return c;if(l>t&&0!==r){t+r>l&&(r=l-t);const a=await s(jt,e,or(e,t,r));if(206!=a.status)throw new f(Vt);const i=a.headers.get(qt);if(i){const e=n(i.trim().split(/[\s-]+/)[1]);if(!n.isNaN(e)&&e!=t)throw new f(Vt)}const o=new p(await a.arrayBuffer());if(o.length!=r)throw new f(Vt);return o}return new p}{const{data:s}=e;return s||await a(e,d),new p(e.data.subarray(t,t+r))}}function or(e,t=0,s=1){return r.assign({},cr(e),{[Kt]:Yt+"="+(0>t?t:t+"-"+(t+s-1))})}function cr({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function lr(e){await ur(e,pr)}async function dr(e){await ur(e,wr)}async function ur(e,t){const r=await t(jt,e,cr(e));e.data=new p(await r.arrayBuffer()),e.size=e.data.length}async function fr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=await t("HEAD",e,cr(e)),a=s.headers.get("Content-Length");a&&!s.headers.get("Content-Encoding")?e.size=n(a):await r(e,e.options)}}async function pr(e,{fetch:t=fetch,options:s,url:n},a){const i=await t(n,r.assign({},s,{method:e,headers:a}));if(400>i.status)return i;throw 416==i.status?new f(Vt):new f(Zt+(i.statusText||i.status))}function wr(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(Vt):new f(Zt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new f("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class hr extends Qt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR&&!t.fetch?new sr(e,t):new rr(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class mr extends Qt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await Sr(r),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await zr(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await zr(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class gr extends Jt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new R({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,s.availableSize=s.maxSize,t.length>r&&await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await Sr(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){i&&(await i.ready,await l())},async abort(e){i&&await i.abort(e)}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Xt,{get:()=>o})}}class yr{constructor(e){return t.isArray(e)&&(e=new mr(e)),e instanceof k&&(e={readable:e}),e}}class br{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new gr(e)),e instanceof R&&(e={writable:e}),e.size===Q&&(e.size=0),e instanceof gr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:$,maxSize:$}),e}}async function Sr(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function zr(e,t,r,s){return e.readUint8Array(t,r,s)}const xr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function Er(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=xr[e[r]];return t}})(e):new S(t,{ignoreBOM:!0}).decode(e)}const Fr="filename",kr="rawFilename",Rr="comment",Dr="rawComment",Ar="uncompressedSize",vr="compressedSize",Tr="offset",_r="diskNumberStart",Cr="lastModDate",Ur="rawLastModDate",Nr="lastAccessDate",Or="creationDate",Ir="rawCreationDate",Mr="internalFileAttributes",Wr="externalFileAttributes",Lr="msdosAttributesRaw",Pr="msdosAttributes",Hr="msDosCompatible",Br="zip64",Zr="encrypted",Vr="version",qr="versionMadeBy",Kr="zipCrypto",jr="directory",Yr="executable",Gr="compressionMethod",Xr="signature",Jr="extraField",Qr="unixMode",$r="setuid",es="setgid",ts="sticky",rs=[Fr,kr,Ar,vr,Cr,Ur,Rr,Dr,Nr,Or,Ir,Tr,_r,Mr,Wr,Lr,Pr,Hr,Br,Zr,Vr,qr,Kr,jr,Yr,Gr,Xr,Jr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Qr,$r,es,ts,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class ss{constructor(e){rs.forEach(t=>this[t]=e[t])}}const ns="password",as="rawPassword",is="passThrough",os="signal",cs="checkAmbiguity",ls="useWebWorkers",ds="useCompressionStream",us="transferStreams",fs="preventClose",ps="offset",ws="File format is not recognized",hs="End of central directory not found",ms="End of Zip64 central directory locator not found",gs="Central directory header not found",ys="Local file header not found",bs="Zip64 extra field not found",Ss="File contains encrypted entry",zs="Encryption method not supported",xs="Compression method not supported",Es="Split zip file",Fs="Overlapping entry found",ks="Ambiguous archive",Rs="utf-8",Ds="cp437",As=[[Ar,C],[vr,C],[Tr,C],[_r,U]],vs={[U]:{getValue:Zs,bytes:4},[C]:{getValue:Vs,bytes:8}};class Ts{constructor(e,t={}){r.assign(this,{reader:new yr(e),options:t,config:ae(),readRanges:new c})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await Sr(s),s.size!==Q&&s.readUint8Array||(s=new er(await new d(s.readable).blob()),await Sr(s)),s.size<B)throw new f(ws);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,qs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await zr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw Zs(qs(await zr(s,0,4)))==I?new f(Es):new f(hs);const o=qs(a);let c=Zs(o,12),u=Zs(o,16);const w=a.offset,h=Bs(o,20),m=w+B+h,g=Ws(t,e,cs);g&&m!=s.size&&Ms("appended data");let b=Bs(o,4);const S=s.lastDiskNumber||0;let z,x,E=Bs(o,6),k=Bs(o,10),R=0;if(u==C||c==C||k==U||E==U){const e=20>a.offset?new p:await zr(s,a.offset-20,20),t=qs(e);if(20==e.length&&Zs(t,0)==H){u=Vs(t,8);let e=await zr(s,u,56,-1),r=qs(e);const n=a.offset-20-56-(s.lastDiskOffset||0);if((56>e.length||Zs(r,0)!=P)&&u!=n&&n>=0){const t=u;u=n,u>t&&(R=u-t),e=await zr(s,u,56,-1),r=qs(e)}if(56>e.length||Zs(r,0)!=P)throw new f(ms);x=!0,b==U?b=Zs(r,16):g&&b!=Zs(r,16)&&Ms("mismatched zip64 end of central directory record"),E==U?E=Zs(r,20):g&&E!=Zs(r,20)&&Ms("mismatched zip64 end of central directory record"),k==U?k=Vs(r,32):g&&k!=Vs(r,32)&&Ms("mismatched zip64 end of central directory record"),c==C?c=Vs(r,40):g&&c!=Vs(r,40)&&Ms("mismatched zip64 end of central directory record"),u=Vs(r,48)+R}}const D=c,A=a.offset-(x?76:0);if(u<s.size||(R=s.size-u-c-B,u=s.size-c-B),S!=b)throw new f(Es);if(0>u)throw new f(ws);let v=0,T=await zr(s,u,c,E),_=qs(T);if(c){if(4>T.length)throw new f(ws);const e=A-c-(s.lastDiskOffset||0);if(Zs(_,v)!=W&&u!=e&&E==b){const t=u;u=e,u>t&&(R+=u-t),T=await zr(s,u,c,E),_=qs(T)}}const O=A-u-(s.lastDiskOffset||0);if(c==O||0>O||E!=b||(c=O,T=await zr(s,u,c,E),_=qs(T)),0>u||u>=s.size)throw new f(ws);z=u;const M=Ws(t,e,"filenameEncoding"),Z=Ws(t,e,"commentEncoding"),V=g?new l:Q;let G;for(let a=0;k>a;a++){const o=new _s(s,n,t.options);if(v+46>T.length||Zs(_,v)!=W)throw new f(gs);Cs(o,_,v+6);const c=!!o.bitFlag.languageEncodingFlag,l=v+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=Bs(_,v+4),h=!(w>>8),m=w>>8==3,b=T.subarray(l,u),S=Bs(_,v+32),x=p+S,E=T.subarray(p,x),D=c,A=c,C=Zs(_,v+38),O=C&N,I={readOnly:!!(1&O),hidden:!!(2&O),system:!!(4&O),directory:!!(16&O),archive:!!(32&O)},L=Zs(_,v+42),P=Ws(t,e,"decodeText")||Er,H=D?Rs:M||Ds,B=A?Rs:Z||Ds;let X=P(b,H);X===Q&&(X=Er(b,H));let J=P(E,B);J===Q&&(J=Er(E,B)),r.assign(o,{index:a,versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:S,offset:L,diskNumberStart:Bs(_,v+34),internalFileAttributes:Bs(_,v+36),externalFileAttributes:C,msdosAttributesRaw:O,msdosAttributes:I,rawFilename:b,filenameUTF8:D,commentUTF8:A,rawExtraField:T.subarray(u,p),rawComment:E,filename:X,comment:J}),Us(o,o,_,v+6),o.offset+=R,z=i.min(o.offset,z),g&&(V.has(o.filename)&&(G=!0),V.add(o.filename));const $=o.externalFileAttributes>>16&U;o.unixMode===Q&&16877&$&&(o.unixMode=$);const ee=!!(o.unixMode&K),te=!!(o.unixMode&j),re=!!(512&o.unixMode),se=o.unixMode!==Q?!!(73&o.unixMode):m&&!!(73&$),ne=o.unixMode!==Q&&(61440&o.unixMode)==q,ae=(61440&$)==q;r.assign(o,{setuid:ee,setgid:te,sticky:re,unixExternalUpper:$,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:se,directory:ne||ae||h&&I.directory||o.filename.endsWith(Y)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ie=new ss(o);ie.getData=(e,r)=>o.getData(e,ie,t.readRanges,r),ie.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ie,t.readRanges,e)]);return s},v=x;const{onprogress:oe}=e;if(oe)try{await oe(a+1,k,new ss(o))}catch{}yield ie}g&&v!=D&&Ms("trailing central directory data"),G&&Ms("duplicate filename"),g&&(R||k&&z>0)&&Ms("prepended data");const X=Ws(t,e,"extractPrependedData"),J=Ws(t,e,"extractAppendedData");return X&&(t.prependedData=z>0?await zr(s,0,z):new p),t.comment=h?await zr(s,w+B,h):new p,J&&(t.appendedData=m<s.size?await zr(s,m,s.size-m):new p),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class _s{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:o,index:c,offset:l,diskNumberStart:d,extraFieldAES:u,extraFieldZip64:w,compressionMethod:h,config:m,bitFlag:g,signature:y,rawLastModDate:b,uncompressedSize:S,compressedSize:z}=a,{dataDescriptor:x}=g,E=t.localDirectory={},F=await zr(o,l,G,d),k=qs(F);let D=Ws(a,n,ns),A=Ws(a,n,as);const v=Ws(a,n,is);if(D=D&&D.length&&D,A=A&&A.length&&A,u&&99!=u.originalCompressionMethod)throw new f(xs);if(0!=h&&8!=h&&9!=h&&!v)throw new f(xs);if(F.length<G||Zs(k,0)!=O)throw new f(ys);Cs(E,k,4);const{extraFieldLength:T,filenameLength:_}=E,C=Ws(a,n,cs);let U=new p;if(C&&(_||T)){const e=await zr(o,l+G,_+T,d);U=e.subarray(0,_),E.rawExtraField=e.subarray(_)}else E.rawExtraField=T?await zr(o,l+G+_,T,d):new p;Us(a,E,k,4,!0),C&&((e,t,r)=>{const{rawFilename:s}=e;(r.length!=s.length||r.some((e,t)=>e!=s[t]))&&Ms("mismatched local file header (filename)"),(2057&t.rawBitFlag)!=(2057&e.rawBitFlag)&&Ms("mismatched local file header (general purpose bit flag)"),t.compressionMethod!=e.compressionMethod&&Ms("mismatched local file header (compression method)"),t.bitFlag.dataDescriptor||!(t.signature||t.compressedSize||t.uncompressedSize)||t.signature==e.signature&&t.compressedSize==e.compressedSize&&t.uncompressedSize==e.uncompressedSize||Ms("mismatched local file header (signature or sizes)")})(a,E,U);const{lastAccessDate:I,creationDate:W}=E;I&&(t.lastAccessDate=I),W&&(t.creationDate=W);const L=a.encrypted&&E.encrypted&&!v,P=L&&!u;if(v||(t.zipCrypto=P),L){if(!P&&u.strength===Q)throw new f(zs);if(!D&&!A)throw new f(Ss)}const H=l+G+_+T,B=z,Z=o.readable;r.assign(Z,{diskNumberStart:d,offset:H,size:B});const V=Ws(a,n,os),q=Ws(a,n,"checkPasswordOnly");let K=Ws(a,n,"checkOverlappingEntry");const j=Ws(a,n,"checkOverlappingEntryOnly");j&&(K=!0);const{onstart:Y,onprogress:X,onend:J}=n,$=9==h;let ee=Ws(a,n,ds);$&&(ee=!1);const te={options:{codecType:pt,password:D,rawPassword:A,zipCrypto:P,encryptionStrength:u&&u.strength,signed:Ws(a,n,"checkSignature")&&!v,passwordVerification:P&&(x?b>>>8&N:y>>>24&N),outputSize:v?z:S,signature:y,compressed:0!=h&&!v,encrypted:L,useWebWorkers:Ws(a,n,ls),useCompressionStream:ee,transferStreams:Ws(a,n,us),deflate64:$,checkPasswordOnly:q},config:m,streamOptions:{signal:V,size:B,onstart:Y,onprogress:X,onend:J}};let re;K&&await(async({reader:e,fileEntry:t,index:r,offset:s,diskNumberStart:n,signature:a,compressedSize:o,uncompressedSize:c,dataOffset:l,dataDescriptor:d,extraFieldZip64:u,readRanges:p})=>{let w=0;if(n&&e.readers)for(let t=0;t<i.min(n,e.readers.length);t++)w+=e.readers[t].size;let h=0;if(d&&(h=u?20:12),h){const r=await zr(e,l+o,h+4,n);if(r.length==h+4&&Zs(qs(r),0)==M){const e=Zs(qs(r),4);let s,n;u?(s=Vs(qs(r),8),n=Vs(qs(r),16)):(s=Zs(qs(r),8),n=Zs(qs(r),12)),(t.encrypted&&!t.zipCrypto||e==a)&&s==o&&n==c&&(h+=4)}}const m={start:w+s,end:w+l+o+h,fileEntry:t};for(const[e,t]of p)if(e!=r&&m.start<t.end&&t.start<m.end){const e=new f(Fs);throw e.overlappingEntry=t.fileEntry,e}p.set(r,m)})({reader:o,fileEntry:t,index:c,offset:l,diskNumberStart:d,signature:y,compressedSize:z,uncompressedSize:S,dataOffset:H,dataDescriptor:x||E.bitFlag.dataDescriptor,extraFieldZip64:w||E.extraFieldZip64,readRanges:s});try{if(!j){q&&(e=new R),e=new br(e),await Sr(e,v?z:S),({writable:re}=e);const{outputSize:t}=await Mt({readable:Z,writable:re},te);if(e.size+=t,t!=(v?z:S))throw new f(nt)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!q||t.message!=Se)throw t}finally{Ws(a,n,fs)||!re||re.locked||await re.getWriter().close()}return q||j?Q:e.getData?e.getData():re}}function Cs(e,t,s){const n=e.rawBitFlag=Bs(t,s+2),a=!(1&~n),i=Zs(t,s+6);r.assign(e,{encrypted:a,version:Bs(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&V)==V},rawLastModDate:i,lastModDate:Ls(i),filenameLength:Bs(t,s+22),extraFieldLength:Bs(t,s+24)})}function Us(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=qs(new p(i));let u=0;try{for(;u<i.length;){const e=Bs(d,u),t=Bs(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Bs(s,n+4);r.assign(t,{signature:Zs(s,n+10),compressedSize:Zs(s,n+14),uncompressedSize:Zs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=qs(e.data),s=As.filter(([e,r])=>t[e]==r),n=s.reduce((e,[,t])=>e+vs[t].bytes,0);if(e.data.length<n)throw new f(bs);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n],c=vs[o];t[i]=e[i]=c.getValue(r,a),a+=c.bytes}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Ns(m,Fr,kr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Ns(g,Rr,Dr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y&&y.data.length>=7?(((e,t,s)=>{const n=qs(e.data),a=Hs(n,4);r.assign(e,{vendorVersion:Hs(n,0),vendorId:Hs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Bs(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=qs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Bs(s,a),r=Bs(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=qs(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:Ps(a),lastAccessDate:Ps(i),creationDate:Ps(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const S=l.get(30805);if(S)Os(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(Os(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(Z);z&&(((e,t,r)=>{if(!e.data.length)return;const s=qs(e.data),n=Hs(s,0),a=[],i=[];r?(1&~n||(a.push(Cr),i.push(Ur)),2&~n||(a.push(Nr),i.push("rawLastAccessDate")),4&~n||(a.push(Or),i.push(Ir))):5>e.data.length||(a.push(Cr),i.push(Ur));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Zs(s,c);t[r]=e[r]=new o(1e3*(0|a));const l=i[n];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Ns(e,t,s,n,a){if(5>e.data.length)return void(e.valid=!1);const i=qs(e.data),o=new de;o.append(a[s]);const c=qs(new p(4));c.setUint32(0,o.get(),!0);const l=Zs(i,1);r.assign(e,{version:Hs(i,0),[t]:Er(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Zs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Os(e,t,s){try{const n=qs(new p(e.data));let a,i;if(s){let t=0;const s=Hs(n,t++),o=Hs(n,t++);a=Is(e.data.subarray(t,t+o)),t+=o;const c=Hs(n,t++);i=Is(e.data.subarray(t,t+c)),r.assign(e,{version:s,uid:a,gid:i})}else 4>e.data.length||(a=Bs(n,0),i=Bs(n,2),r.assign(e,{uid:a,gid:i}));a!==Q&&(t.uid=a),i!==Q&&(t.gid=i)}catch{}}function Is(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ms(e){const t=new f(ks);throw t.reason=e,t}function Ws(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Ls(e){const t=(4294901760&e)>>16,r=e&U;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Ps(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Hs(e,t){return e.getUint8(t)}function Bs(e,t){return e.getUint16(t,!0)}function Zs(e,t){return e.getUint32(t,!0)}function Vs(e,t){return n(e.getBigUint64(t,!0))}function qs(e){return new m(e.buffer,e.byteOffset,e.byteLength)}const Ks="File already exists",js="Zip file comment exceeds 64KB",Ys="File entry comment exceeds 64KB",Gs="File entry name exceeds 64KB",Xs="Version exceeds 65535",Js="The strength must equal 1, 2, or 3",Qs="Extra field type exceeds 65535",$s="Extra field data exceeds 64KB",en=-2147483648,tn=2147483647,rn="Zip64 is not supported (set the 'zip64' option to 'true')",sn="Undefined uncompressed size",nn="Undefined reader",an="Zip file not empty",on=new p([7,0,2,0,65,69,3,0,0]),cn="infozip",ln="unix";let dn=0;const un=[];class fn{constructor(e,t={}){const s=(e=new br(e)).availableSize!==Q&&e.availableSize>0&&e.availableSize!==$&&e.maxSize!==Q&&e.maxSize>0&&e.maxSize!==$;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[ps]===Q?e.size||e.writable.size||0:t[ps],initialOffset:t[ps]===Q?0:t[ps]-(e.size||e.writable.size||0),pendingAddFileCalls:new l,bufferedWrites:0,lastFileEntry:Q})}async prependZip(e){if(this.filenames.size)throw new f(an);e=new yr(e),await Sr(e);const t=new Ts(e.readable),s=await t.getEntries();await t.close(),await Sr(this.writer),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,rawLastModDate:s,lastAccessDate:n,creationDate:a,rawFilename:i,bitFlag:o,encrypted:c,uncompressedSize:l,compressedSize:d,diskOffset:u,diskNumber:f,zip64:w}=e;let{compressionMethod:h,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=o;m=m||new p,g=g||new p,y=y||new p,b=b||new p,S=S||new p,z=z||new p,e.extraFieldAES&&(h=99);const k=Tn(m,g,y,b,S,z),R=w&&l>=C,D=w&&d>=C,A=-7&Cn(x,E,F,c,h)|x<<1,{headerArray:v,headerView:T}=_n({version:t,bitFlag:A,compressionMethod:h,uncompressedSize:l,compressedSize:d,rawLastModDate:s,rawFilename:i,zip64CompressedSize:D,zip64UncompressedSize:R,extraFieldLength:k}),{signature:_}=e;return _!==Q&&Rn(T,10,_),r.assign(e,{zip64UncompressedSize:R,zip64CompressedSize:D,zip64Offset:w&&this.offset-u>=C,zip64DiskNumberStart:w&&f>=U,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(n?2:0)+(a?4:0),headerArray:v,headerView:T}),[e.filename,e]}))}async add(e="",t,s={}){const n=this;s=r.assign({},s);const{pendingAddFileCalls:i,config:c}=n;let l,d;dn<c.maxWorkers?dn++:await new y(e=>un.push(e));try{if(e=e.trim(),En(n,s,jr)&&!e.endsWith(Y)&&(e+=Y),n.filenames.has(e))throw new f(Ks);return n.filenames.add(e),d=!0,l=(async(e,t,s,n)=>{const i=((e,t,r)=>{t=t.trim();let s=En(e,r,Hr),n=En(e,r,qr,s?20:768);const a=En(e,r,Yr),i=En(e,r,"uid"),o=En(e,r,"gid");let c=En(e,r,Qr),l=En(e,r,"unixExtraFieldType"),d=En(e,r,$r),u=En(e,r,es),p=En(e,r,ts);if(i!==Q&&(0>i||i>C))throw new f("Invalid uid (must be integer 0..2^32-1)");if(o!==Q&&(0>o||o>C))throw new f("Invalid gid (must be integer 0..2^32-1)");if(c!==Q&&(0>c||c>U))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(l!==Q&&l!==cn&&l!==ln)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");if(l===ln&&(i!==Q&&i>U||o!==Q&&o>U))throw new f("uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)");l!==Q||i===Q&&o===Q||(l=cn);let w=En(e,r,Lr),h=En(e,r,Pr);const m=w!==Q||h!==Q;if(i!==Q||o!==Q||c!==Q||l?(s=!1,n=n&U|768):m&&(s=!0,n&=N),w!==Q&&(0>w||w>N))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(h&&"object"!=typeof h)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(n>U)throw new f(Xs);let g=En(e,r,Wr,0);!r[jr]&&t.endsWith(Y)&&(r[jr]=!0);const y=En(e,r,jr);let b;return y?(t.endsWith(Y)||(t+=Y),0===g&&(g=16,s||(g|=16877<<16))):s||0!==g||(g=a?493<<16:27525120),s||(b=g>>16&U,c=c===Q?b:c&U,d?c|=K:d=!!(c&K),u?c|=j:u=!!(c&j),p?c|=512:p=!!(512&c),y&&(c|=q),g=(c&U)<<16|g&N),({msdosAttributesRaw:w,msdosAttributes:h}=((e,t)=>{if(e!==Q)e&=N;else if(t!==Q){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&N}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(w,h)),m&&(g=g&C|w&N),{name:t,resolvedOptions:{versionMadeBy:n,msDosCompatible:s,externalFileAttributes:g,unixExternalUpper:b,uid:i,gid:o,unixMode:c,unixExtraFieldType:l,setuid:d,setgid:u,sticky:p,msdosAttributesRaw:w,msdosAttributes:h}}})(e,t,n);({name:t}=i);const c=((e,t,r)=>{const s=En(e,r,"encodeText",fe);let n=s(t);if(n===Q&&(n=fe(t)),Tn(n)>U)throw new f(Gs);const a=r[Rr]||"";let i=s(a);if(i===Q&&(i=fe(a)),Tn(i)>U)throw new f(Ys);const c=En(e,r,Vr,20);if(c>U)throw new f(Xs);const l=En(e,r,Cr,new o),d=En(e,r,Nr),u=En(e,r,Or),w=En(e,r,Mr,0),h=En(e,r,is);let m,g;h||(m=En(e,r,ns),g=En(e,r,as));const y=En(e,r,"encryptionStrength",3),b=En(e,r,Kr),S=En(e,r,"extendedTimestamp",!0),z=En(e,r,"keepOrder",!0),x=En(e,r,ls),E=En(e,r,us,!0),F=En(e,r,"bufferedWrite"),k=En(e,r,"createTempStream"),R=En(e,r,"dataDescriptorSignature",!0),D=En(e,r,os),A=En(e,r,"useUnicodeFileNames",!0),v=En(e,r,Gr);if(!h&&v!==Q&&0!==v&&8!==v)throw new f("Compression method not supported");let T=En(e,r,"level"),_=En(e,r,ds),C=En(e,r,"dataDescriptor");F&&C===Q&&(C=!1),(C===Q||b)&&(C=!0),T!==Q&&6!=T&&(_=!1),_||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(T=0);const N=En(e,r,Br);if(!b&&(m!==Q||g!==Q)&&(1>y||y>3))throw new f(Js);let O=new p;const I=r[Jr];if(I){let e=0,t=0;I.forEach(t=>e+=4+Tn(t)),O=new p(e);const r=vn(O);I.forEach((e,s)=>{if(s>U)throw new f(Qs);if(Tn(e)>U)throw new f($s);kn(r,t,s),kn(r,t+2,Tn(e)),An(O,e,t+4),t+=4+Tn(e)})}return{comment:a,resolvedOptions:{rawFilename:n,rawComment:i,version:c,lastModDate:l,lastAccessDate:d,creationDate:u,internalFileAttributes:w,passThrough:h,password:m,rawPassword:g,encryptionStrength:y,zipCrypto:b,extendedTimestamp:S,keepOrder:z,useWebWorkers:x,transferStreams:E,bufferedWrite:F,createTempStream:k,dataDescriptorSignature:R,signal:D,useUnicodeFileNames:A,compressionMethod:v,level:T,useCompressionStream:_,dataDescriptor:C,zip64:N,rawExtraField:O}}})(e,t,n),{comment:l}=c,d=n[Jr];let u;e.files.set(t,Q);try{const o=await(async(e,t,{resolvedOptions:r},s)=>{const{passThrough:n,zipCrypto:a,password:i,rawPassword:o,encryptionStrength:c}=r;let{dataDescriptor:l,zip64:d,level:u,compressionMethod:p}=r,w=0,h=0;if(n){if(!t)throw new f(nn);if(h=s[Ar],h===Q)throw new f(sn)}const m=!0===d,g=En(e,s,Zr),y=!!t&&(!!(i&&Tn(i)||o&&Tn(o))||n&&g);t||(u=0,p=0);const b=y?a?12:16+4*c:0;t&&(t=new yr(t),await Sr(t),n?(s.uncompressedSize=h,w=Fn(h)+b):t.size===Q?(l=!0,(d||d===Q)&&(d=!0,h=w=4294967296)):(s.uncompressedSize=h=t.size,w=Fn(h)+b));const S=m||h>=C,z=m||w>=C;if(S||z){if(!1===d)throw new f(rn);d=!0}return d=d||!1,{reader:t,resolvedOptions:{dataDescriptor:l,zip64:d,zip64UncompressedSize:S,zip64CompressedSize:z,uncompressedSize:h,level:u,compressionMethod:p,encrypted:y}}})(e,s,c,n);({reader:s}=o);const{diskOffset:l,diskNumber:d}=e.writer,w=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:a,zip64:i,zipCrypto:o,useUnicodeFileNames:c,dataDescriptor:l,directory:d,rawExtraField:u,encryptionStrength:w,extendedTimestamp:h,passThrough:m,encrypted:g,zip64UncompressedSize:y,zip64CompressedSize:b,uncompressedSize:S}=e;let{version:z,compressionMethod:x}=e;const E=!d&&(x===Q?a===Q||a>0:0!==x);let F;const k=m||!E,R=i&&(e.bufferedWrite||!l||!y&&!b||k),D=R||i&&l&&(y||b);if(i&&(y||b)){const e=20,t=mn(e);if(t.uint16(1),t.uint16(e-4),F=t.array,R&&(t.uint64(S),k)){const e=g?o?12:16+4*w:0;t.uint64(m?0:S+e)}}else F=new p;let A,v,T,_,C;if(g&&!o){const e=mn(Tn(on)+2);e.uint16(39169),e.bytes(on),A=e.array,A[8]=w}else A=new p;if(h){const e=Sn(r);if(zn(e)){const t=9+(s?4:0)+(n?4:0),r=mn(t);_=1+(s?2:0)+(n?4:0),r.uint16(Z),r.uint16(t-4),r.uint8(_),r.uint32(e),s&&r.uint32(xn(Sn(s))),n&&r.uint32(xn(Sn(n))),T=r.array}else T=new p;try{const e=bn(r),t=mn(36);t.uint16(10),t.uint16(32),t.skip(4),t.uint16(1),t.uint16(24),t.uint64(e),t.uint64(bn(s)||e),t.uint64(bn(n)||e),v=t.array}catch{v=new p}}else v=T=new p;try{const{uid:t,gid:r,unixExtraFieldType:s}=e;if(s!=cn||t===Q&&r===Q)if(s!=ln||t===Q&&r===Q)C=new p;else{const e=mn(8);e.uint16(30805),e.uint16(4),e.uint16((t===Q?0:t)&U),e.uint16((r===Q?0:r)&U),C=e.array}else{const e=hn(t),s=hn(r),n=3+e.length+s.length,a=mn(4+n);a.uint16(30837),a.uint16(n),a.uint8(1),a.uint8(e.length),a.bytes(e),a.uint8(s.length),a.bytes(s),C=a.array}}catch{C=new p}x===Q&&(x=E?8:0),i&&(z=z>45?z:45),g&&!o&&(z=z>51?z:51,A[9]=x,x=99);const N=D?Tn(F):0,I=N+Tn(A,T,v,C,u);if(I>U)throw new f($s);const{headerArray:M,headerView:W,rawLastModDate:L}=_n({version:z,bitFlag:Cn(a,c,l,g,x),compressionMethod:x,uncompressedSize:S,lastModDate:J>r?J:r>X?X:r,rawFilename:t,zip64CompressedSize:b,zip64UncompressedSize:y,extraFieldLength:I}),P=mn(G+Tn(t)+I),H=P.array,B=vn(H);return P.uint32(O),P.bytes(M),P.bytes(t),D&&P.bytes(F),P.bytes(A),P.bytes(T),P.bytes(v),P.bytes(C),P.bytes(u),l&&(b||Rn(B,18,0),y||Rn(B,22,0)),{localHeaderArray:H,localHeaderView:B,headerArray:M,headerView:W,lastModDate:r,rawLastModDate:L,encrypted:g,compressed:E,version:z,compressionMethod:x,extraFieldExtendedTimestampFlag:_,rawExtraFieldZip64:new p,localExtraFieldZip64Length:N,rawExtraFieldExtendedTimestamp:T,rawExtraFieldNTFS:v,rawExtraFieldUnix:C,rawExtraFieldAES:A,extraFieldLength:I}})(n=r.assign({},n,i.resolvedOptions,c.resolvedOptions,o.resolvedOptions,{internalFileAttribute:c.resolvedOptions.internalFileAttributes,externalFileAttribute:i.resolvedOptions.externalFileAttributes,signature:n[Xr],offset:e.offset-l,diskNumberStart:d})),h=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new p,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new p(i),s=vn(n),r&&(a=4,Rn(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(n),m=Tn(w.localHeaderArray,h.dataDescriptorArray);u=await(async(e,t,s,n,i)=>{const{files:o,writer:c}=e,{keepOrder:l,dataDescriptor:d,signal:u}=i,{headerInfo:w}=n,h=e.options.usdz,m=e.lastFileEntry;let g,b,S,z,x,E,k,D={},A=0;o.set(t,D),e.lastFileEntry=D;try{let b;l&&(b=m&&m.lock,D.lock=new y(e=>S=e)),i.bufferedWrite||!l||e.writerLocked||e.bufferedWrites||!d?(g=!0,e.bufferedWrites++,k=i.createTempStream?await i.createTempStream():new F(Q,Q,{highWaterMark:$}),k.size=0,await Sr(c)):(k=c,await v()),await Sr(k);const{diskOffset:_}=c;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);Rn(vn(t),0,I),await yn(c,t),e.offset+=4}h&&!g&&wn(n,e.offset-_);const{localHeaderArray:U}=w;g||(await b,await T());const O=c.diskNumber,M=gn(e,c);if(D.diskNumberStart=O,g||(x=!0,E=c.size,await yn(k,U)),D=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:w,lastModDate:h,rawLastModDate:m,encrypted:g,compressed:y,version:b,compressionMethod:S,rawExtraFieldZip64:z,localExtraFieldZip64Length:x,rawExtraFieldExtendedTimestamp:E,extraFieldExtendedTimestampFlag:F,rawExtraFieldNTFS:k,rawExtraFieldUnix:R,rawExtraFieldAES:D}=l,{dataDescriptorArray:A}=d,{rawFilename:v,lastAccessDate:T,creationDate:_,password:U,rawPassword:O,level:I,zip64:M,zip64UncompressedSize:W,zip64CompressedSize:L,zipCrypto:P,dataDescriptor:H,directory:B,executable:Z,versionMadeBy:V,rawComment:q,rawExtraField:K,useWebWorkers:j,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:$,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:se,externalFileAttributes:ne,uid:ae,gid:oe,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:fe,msdosAttributesRaw:pe,msdosAttributes:we,useCompressionStream:he,passThrough:me}=c,ge={lock:n,versionMadeBy:V,zip64:M,directory:!!B,executable:!!Z,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:x,rawExtraFieldExtendedTimestamp:E,rawExtraFieldNTFS:k,rawExtraFieldUnix:R,rawExtraFieldAES:D,rawExtraField:K,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:se,externalFileAttributes:ne,diskNumberStart:s,uid:ae,gid:oe,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:fe,msdosAttributesRaw:pe,msdosAttributes:we};let{signature:ye,uncompressedSize:be}=c,Se=0;me||(be=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:ft,level:I,rawPassword:O,password:U,encryptionStrength:ee,zipCrypto:g&&P,passwordVerification:g&&P&&m>>8&N,signed:!me,compressed:y&&!me,encrypted:g&&!me,useWebWorkers:j,useCompressionStream:he,transferStreams:Y},config:o,streamOptions:{signal:$,size:s,onstart:G,onprogress:X,onend:J}};try{const e=await Mt({readable:r,writable:ze},n);if(Se=e.outputSize,t.size+=Se,me||(be=e.inputSize,ye=e.signature),!L&&Se>=C||!W&&be>=C)throw new f(rn)}catch(e){throw e.outputSize!==Q&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:f}=n;d&&!o||e===Q||(Rn(l,10,e),c&&Rn(u,f,e)),i?c&&(Dn(u,f+4,a(t)),Dn(u,f+12,a(r))):(Rn(l,14,t),Rn(l,18,r),c&&(Rn(u,f+4,t),Rn(u,f+8,r)))})({signature:ye,compressedSize:Se,uncompressedSize:be,headerInfo:l,dataDescriptorInfo:d},c),H&&await yn(t,A),r.assign(ge,{uncompressedSize:be,compressedSize:Se,lastModDate:h,rawLastModDate:m,creationDate:_,lastAccessDate:T,encrypted:g,zipCrypto:P,size:u+Se,compressionMethod:S,version:b,headerArray:p,headerView:w,signature:ye,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:W,zip64CompressedSize:L}),ge})(s,k,D,n,e.config,i),g||(x=!1),o.set(t,D),D.filename=t,g){if(await y.all([k.writable.getWriter().close(),b]),await v(),z=!0,E=c.size,await T(),D.diskNumberStart=c.diskNumber,D.offset=gn(e,c),h){const t=n.metadataSize;wn(n,e.offset-c.diskOffset),D.size+=n.metadataSize-t}(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||Rn(d,14,n),l||Rn(d,18,i),c||Rn(d,22,o)),r&&s){const t=G+Tn(e)+4;Dn(d,t,a(o)),Dn(d,t+8,a(i))}})(D,w.localHeaderView,i),await yn(c,w.localHeaderArray),await(async(e,t,r)=>{const s=t.writable.getWriter();try{await e.pipeTo(new R({async write(e){var t;await s.ready,await s.write(e),t=Tn(e),A+=t}}),{preventClose:!0,preventAbort:!0,signal:r})}finally{s.releaseLock()}})(k.readable,c,u),c.size+=k.size,z=!1}else D.diskNumberStart=O,D.offset=M;return e.offset+=D.size,D}catch(r){if(z||x){if(e.hasCorruptedEntries=!0,r)try{r.corruptedEntry=!0}catch{}e.offset+=c.size-E,g&&(e.offset+=A)}throw o.delete(t),r}finally{g&&e.bufferedWrites--,S&&S(),b&&b()}async function v(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>b=()=>{e.writerLocked=!1,t()}),await t}async function T(){Tn(w.localHeaderArray)>c.availableSize&&(c.availableSize=0,await yn(c,new p))}})(e,t,s,{headerInfo:w,dataDescriptorInfo:h,metadataSize:m},n)}catch(r){throw e.files.delete(t),r}return r.assign(u,{name:t,comment:l,extraField:d}),new ss(u)})(n,e,t,s),i.add(l),await l}catch(t){throw d&&n.filenames.delete(e),t}finally{i.delete(l);const e=un.shift();e?e():dn--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new p,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:i}=n;if(Tn(e)>U)throw new f(js);for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const n=(e=>{let t=0;for(const[,r]of e){const{rawFilename:e,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:i,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d,zip64UncompressedSize:u,zip64CompressedSize:w,uncompressedSize:h,compressedSize:m}=r,g=r.offset>=C,y=r.diskNumberStart>=U;let b,S;if(g||y||u||w){const e=4+(u?8:0)+(w?8:0)+(g?8:0)+(y?4:0),t=mn(e);t.uint16(1),t.uint16(e-4),u&&t.uint64(h),w&&t.uint64(m),g&&t.uint64(r.offset),y&&t.uint32(r.diskNumberStart),b=t.array}else b=new p;r.rawExtraFieldZip64=b,r.zip64Offset=g,r.zip64DiskNumberStart=y;const z=Sn(d);if(c&&zn(z)){const e=mn(9);e.uint16(Z),e.uint16(5),e.uint8(l),e.uint32(z),S=e.array}else S=new p;r.rawExtraFieldExtendedTimestamp=S;const x=Tn(b,s,a,i,S,o);if(x>U)throw new f($s);t+=46+Tn(e,n)+x}return t})(e.files),{cdStartDiskNumber:i,cdStartDiskOffset:o}=await(async(e,r,s)=>{const{files:n,writer:a}=e,i=new p(r);await Sr(a);let o=0,c=0,l=a.diskNumber,d=a.diskOffset;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:u,rawExtraFieldZip64:f,rawExtraFieldAES:w,rawExtraFieldExtendedTimestamp:h,rawExtraFieldNTFS:m,rawExtraFieldUnix:g,rawExtraField:y,rawComment:b,versionMadeBy:S,headerArray:z,headerView:x,zip64UncompressedSize:E,zip64CompressedSize:F,zip64DiskNumberStart:k,zip64Offset:R,internalFileAttributes:D,externalFileAttributes:A,diskNumberStart:v,uncompressedSize:T,compressedSize:_}=r,N=Tn(f,w,h,m,g,y),O=46+Tn(u,b)+N;o+O-c>a.availableSize&&(await yn(a,i.slice(c,o)),c=o,a.availableSize=0,await yn(a,new p)),0==e&&(l=a.diskNumber,d=a.diskOffset),E||Rn(x,18,T),F||Rn(x,14,_),(R||k)&&45>r.version&&kn(x,0,45);const I=mn(O);if(I.uint32(W),I.uint16(S),I.bytes(z.subarray(0,24)),I.uint16(N),I.uint16(Tn(b)),I.uint16(k?U:v),I.uint16(D),I.uint32(A),I.uint32(R?C:t),I.bytes(u),I.bytes(f),I.bytes(w),I.bytes(h),I.bytes(m),I.bytes(g),I.bytes(y),I.bytes(b),An(i,I.array,o),o+=O,s.onprogress)try{await s.onprogress(e+1,n.size,new ss(r))}catch{}}return await yn(a,c?i.slice(c):i),{cdStartDiskNumber:l,cdStartDiskOffset:d}})(e,n,s);await(async(e,t,r,s)=>{const{writer:n}=e,{cdStartDiskNumber:i,cdStartDiskOffset:o}=s;let{directoryDataLength:c}=s,l=e.files.size,d=i,u=e.offset-o-(i?e.initialOffset:0),w=n.diskNumber;n.availableSize<B&&w++;let h=En(e,r,Br);if(!(C>u&&C>c&&U>l&&U>w)){if(!1===h)throw new f(rn);h=!0}const m=Tn(t);if(m>U)throw new f(js);const g=mn(h?98:B);Tn(g.array)+m>n.availableSize&&(n.availableSize=0,await yn(n,new p)),w=n.diskNumber,h&&(g.uint32(P),g.uint64(44),g.uint16(45),g.uint16(45),g.uint32(w),g.uint32(d),g.uint64(l),g.uint64(l),g.uint64(c),g.uint64(u),g.uint32(H),g.uint32(w),g.uint64(a(e.offset)+a(c)-a(n.diskOffset)-a(n.diskNumber?e.initialOffset:0)),g.uint32(w+1),En(e,r,"supportZip64SplitFile",!0)&&(w=U,d=U),l=U,u=C,c=C),g.uint32(L),g.uint16(w),g.uint16(d),g.uint16(l),g.uint16(l),g.uint32(c),g.uint32(u),g.uint16(m),await yn(n,g.array),m&&await yn(n,t)})(e,r,s,{cdStartDiskNumber:i,cdStartDiskOffset:o,directoryDataLength:n})})(this,e,r),En(this,r,fs)||await i.getWriter().close(),n.getData?n.getData():i}}function pn(e,t,r){e.pendingAddFileCalls.add(t),t.catch(e=>{try{r(e)}catch{}})}function wn(e,t){const{headerInfo:r}=e;let s,{localHeaderArray:n,extraFieldLength:a}=r,i=64-(t+Tn(n))%64;4>i&&(i+=64);const o=new p(i),c=vn(o);kn(c,0,6534),kn(c,2,i-4);const l=n;r.localHeaderArray=n=new p(Tn(l)+i),An(n,l),An(n,o,Tn(l)),s=vn(n),kn(s,28,a+i),r.localHeaderView=s,e.metadataSize+=i}function hn(e){if(e===Q)return new p;{const t=new p(4);vn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function mn(e){const t=new p(e),r=vn(t);let s=0;return{array:t,uint8:e=>{((e,t,r)=>{e.setUint8(t,r)})(r,s,e),s+=1},uint16:e=>{kn(r,s,e),s+=2},uint32:e=>{Rn(r,s,e),s+=4},uint64:e=>{Dn(r,s,a(e)),s+=8},bytes:e=>{An(t,e,s),s+=Tn(e)},skip:e=>s+=e}}function gn(e,t){return e.offset-t.diskOffset-(t.diskNumber?e.initialOffset:0)}async function yn(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=Tn(t),await s.write(t)}finally{s.releaseLock()}}function bn(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Sn(e){return i.floor(e.getTime()/1e3)}function zn(e){return e>=en&&tn>=e}function xn(e){return i.min(tn,i.max(en,e))}function En(e,t,r,s){const n=t[r]===Q?e.options[r]:t[r];return n===Q?s:n}function Fn(e){return e+5*(i.floor(e/16383)+1)}function kn(e,t,r){e.setUint16(t,r,!0)}function Rn(e,t,r){e.setUint32(t,r,!0)}function Dn(e,t,r){e.setBigUint64(t,r,!0)}function An(e,t,r){e.set(t,r)}function vn(e){return new m(e.buffer,e.byteOffset,e.byteLength)}function Tn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function _n({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawLastModDate:i,rawFilename:o,zip64CompressedSize:c,zip64UncompressedSize:l,extraFieldLength:d}){const u=mn(26),f=u.array,p=vn(f);if(u.uint16(e),u.uint16(t),u.uint16(r),i===Q){const e=new h(1),t=vn(e);kn(t,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),kn(t,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate()),i=e[0]}return u.uint32(i),u.skip(4),c||n!==Q?u.uint32(c?C:n):u.skip(4),l||s!==Q?u.uint32(l?C:s):u.skip(4),u.uint16(Tn(o)),u.uint16(d),{headerArray:f,headerView:p,rawLastModDate:i}}function Cn(e,t,r,s,n){let a=0;return t&&(a|=V),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===z&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===z?location.href:_&&"SCRIPT"===_.tagName.toUpperCase()&&_.src||new u("zip-core.min.js",z.baseURI).href})}catch{}e.BlobReader=er,e.BlobWriter=tr,e.Data64URIReader=class extends Qt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new p(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends $t{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length>2?t.data+=E(n):t.pending=n+t.pending}getData(){return this.data+E(this.pending)}},e.ERR_AMBIGUOUS_ARCHIVE=ks,e.ERR_BAD_FORMAT=ws,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=gs,e.ERR_DUPLICATED_NAME=Ks,e.ERR_ENCRYPTED=Ss,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=ms,e.ERR_EOCDR_NOT_FOUND=hs,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=bs,e.ERR_HTTP_RANGE=Vt,e.ERR_INVALID_COMMENT=js,e.ERR_INVALID_COMPRESSED_DATA=at,e.ERR_INVALID_ENCRYPTION_STRENGTH=Js,e.ERR_INVALID_ENTRY_COMMENT=Ys,e.ERR_INVALID_ENTRY_NAME=Gs,e.ERR_INVALID_EXTRAFIELD_DATA=$s,e.ERR_INVALID_EXTRAFIELD_TYPE=Qs,e.ERR_INVALID_PASSWORD=ye,e.ERR_INVALID_SIGNATURE=be,e.ERR_INVALID_UNCOMPRESSED_SIZE=nt,e.ERR_INVALID_VERSION=Xs,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ys,e.ERR_OVERLAPPING_ENTRY=Fs,e.ERR_SPLIT_ZIP_FILE=Es,e.ERR_UNDEFINED_READER=nn,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=sn,e.ERR_UNSUPPORTED_COMPRESSION=xs,e.ERR_UNSUPPORTED_ENCRYPTION=zs,e.ERR_UNSUPPORTED_FORMAT=rn,e.ERR_ZIP_NOT_EMPTY=an,e.HttpRangeReader=class extends hr{constructor(e,t={}){super(e,r.assign({},t,{useRangeHeader:!0}))}},e.HttpReader=hr,e.Reader=Qt,e.SplitDataReader=mr,e.SplitDataWriter=gr,e.TextReader=class extends er{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends tr{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Qt{constructor(e){super(),e=new p(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends $t{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new p(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new p(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=$t,e.ZipReader=Ts,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new Ts(t,e).getEntriesGenerator();this.readable=new k({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return(async()=>{try{await r.getData(t)}catch(e){try{await t.abort(e)}catch{}}})(),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=fn,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new fn(r,e),this.pendingAddFileCalls=new l}transform(e){const t=this.zipWriter;let r;const{readable:s,writable:n}=new F({start(e){r=e},flush:()=>{(async()=>{try{await t.close()}catch(e){try{await t.writer.writable.abort(e)}catch{}}})()}});return pn(this,this.zipWriter.add(e,s),e=>r.error(e)),{readable:this.readable,writable:n}}writable(e){let t;const{readable:r,writable:s}=new F({start(e){t=e}});return pn(this,this.zipWriter.add(e,r),e=>t.error(e)),s}async close(e,r={}){return await y.all(t.from(this.pendingAddFileCalls)),this.zipWriter.close(e,r)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Ct.map(e=>(Bt(e),e.terminate())))}});