@zip.js/zip.js 2.8.29 → 2.8.31

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