@zip.js/zip.js 2.8.28 → 2.8.30

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