@zip.js/zip.js 2.8.16 → 2.8.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zip-js/zip-js",
3
- "version": "2.8.16",
3
+ "version": "2.8.17",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -1962,7 +1962,8 @@
1962
1962
  */
1963
1963
 
1964
1964
 
1965
- let WEB_WORKERS_SUPPORTED;
1965
+ let webWorkerSupported, webWorkerURI, webWorkerOptions;
1966
+ let transferStreamsSupported = true;
1966
1967
  let initModule = () => { };
1967
1968
 
1968
1969
  class CodecWorker {
@@ -2006,11 +2007,11 @@
2006
2007
  onTaskFinished(workerData);
2007
2008
  }
2008
2009
  });
2009
- if (WEB_WORKERS_SUPPORTED === UNDEFINED_VALUE) {
2010
+ if (webWorkerSupported === UNDEFINED_VALUE) {
2010
2011
  // deno-lint-ignore valid-typeof
2011
- WEB_WORKERS_SUPPORTED = typeof Worker != UNDEFINED_TYPE;
2012
+ webWorkerSupported = typeof Worker != UNDEFINED_TYPE;
2012
2013
  }
2013
- return (useWebWorkers && WEB_WORKERS_SUPPORTED ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2014
+ return (useWebWorkers && webWorkerSupported ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2014
2015
  }
2015
2016
  }
2016
2017
 
@@ -2067,7 +2068,7 @@
2067
2068
  try {
2068
2069
  worker = getWebWorker(workerData.workerURI, baseURI, workerData);
2069
2070
  } catch {
2070
- WEB_WORKERS_SUPPORTED = false;
2071
+ webWorkerSupported = false;
2071
2072
  return createWorkerInterface(workerData, config);
2072
2073
  }
2073
2074
  Object.assign(workerData, {
@@ -2169,28 +2170,60 @@
2169
2170
  return { writable, closed };
2170
2171
  }
2171
2172
 
2172
- let transferStreamsSupported = true;
2173
-
2174
- function getWebWorker(url, baseURI, workerData) {
2175
- const workerOptions = { type: "module" };
2176
- let scriptUrl, worker;
2177
- // deno-lint-ignore valid-typeof
2178
- if (typeof url == FUNCTION_TYPE) {
2179
- url = url();
2173
+ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2174
+ let worker, resolvedURI, resolvedOptions;
2175
+ if (isModuleType) {
2176
+ resolvedOptions = { type: "module" };
2180
2177
  }
2181
- if (url.startsWith("data:") || url.startsWith("blob:")) {
2182
- try {
2183
- worker = new Worker(url);
2184
- } catch {
2185
- worker = new Worker(url, workerOptions);
2178
+ if (webWorkerURI === UNDEFINED_VALUE) {
2179
+ // deno-lint-ignore valid-typeof
2180
+ const isFunctionURI = typeof url == FUNCTION_TYPE;
2181
+ if (isFunctionURI) {
2182
+ resolvedURI = url(useBlobURI);
2183
+ } else {
2184
+ resolvedURI = url;
2186
2185
  }
2187
- } else {
2188
- try {
2189
- scriptUrl = new URL(url, baseURI);
2190
- } catch {
2191
- scriptUrl = url;
2186
+ const isDataURI = resolvedURI.startsWith("data:");
2187
+ const isBlobURI = resolvedURI.startsWith("blob:");
2188
+ if (isDataURI || isBlobURI) {
2189
+ try {
2190
+ worker = new Worker(resolvedURI, resolvedOptions);
2191
+ } catch (error) {
2192
+ if (isBlobURI) {
2193
+ try {
2194
+ URL.revokeObjectURL(resolvedURI);
2195
+ } catch {
2196
+ // ignored
2197
+ }
2198
+ }
2199
+ if (isFunctionURI && isBlobURI) {
2200
+ return getWebWorker(url, baseURI, workerData, isModuleType, false);
2201
+ } else if (!isModuleType) {
2202
+ return getWebWorker(url, baseURI, workerData, true, false);
2203
+ } else {
2204
+ throw error;
2205
+ }
2206
+ }
2207
+ } else {
2208
+ try {
2209
+ resolvedURI = new URL(resolvedURI, baseURI);
2210
+ } catch {
2211
+ // ignored
2212
+ }
2213
+ try {
2214
+ worker = new Worker(resolvedURI, resolvedOptions);
2215
+ } catch (error) {
2216
+ if (!isModuleType) {
2217
+ return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2218
+ } else {
2219
+ throw error;
2220
+ }
2221
+ }
2192
2222
  }
2193
- worker = new Worker(scriptUrl, workerOptions);
2223
+ webWorkerURI = resolvedURI;
2224
+ webWorkerOptions = resolvedOptions;
2225
+ } else {
2226
+ worker = new Worker(webWorkerURI, webWorkerOptions);
2194
2227
  }
2195
2228
  worker.addEventListener(MESSAGE_EVENT_TYPE, event => onMessage(event, workerData));
2196
2229
  return worker;
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,W=134695760,M=W,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,Y=1024,j=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},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,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;ce("baseURI",t),ce("wasmURI",p),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(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 f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function pe(e){if(typeof b==ee){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const fe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=fe.getPartial(r);return 32===s?e.concat(t):fe._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)+fe.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]=fe.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=fe.getPartial(n);return s.push(fe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},we={bytes:{fromBits(e){const t=fe.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(fe.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=fe.concat(t._buffer,e),s=t._length,n=t._length=s+fe.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=fe.concat(t,[fe.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={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.hmacSha1(we.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const w=fe;for(t=we.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=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 p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,Ue=[0,0,0,0],ve=typeof x!=ee,Ce=ve&&x.subtle,Ie=ve&&typeof Ce!=ee,Ne=we.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=f,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Me=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=fe.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 fe.clamp(t,n)}},Oe=ge.hmacSha1;let Le=ve&&Ie&&typeof Ce.importKey==te,Pe=ve&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,Ye(s,0,_e[t])),a=Ye(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(be)})(r,n,s,Ye(e,0,_e[n]+2)),e=Ye(e,_e[n]+2),a?t.error(new p(Se)):i()):await o;const c=new f(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Te),o=Ye(n,n.length-Te);let c=new f;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=je(Ne,t)}if(t){const e=Ye(je(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new p(ze)}e.enqueue(c)}}})}}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:qe(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=xe(new f(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(Ge(Ne,s));r.update(e),i=je(Ne,e)}n.signature=je(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,Ye(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(je(Ne,n),d+s)}return e.pending=Ye(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new f(o),l=Ge(Ne,Ye(c,0,Ae[s])),d=Ge(Ne,Ye(c,Ae[s],2*Ae[s])),u=Ye(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Me(new We(l),t.from(Ue)),hmac:new Oe(d)}),u}function qe(e,t){return t===$?pe(e):t}function Ke(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ye(e,t,r){return e.subarray(t,r)}function je(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(be);e=e.subarray(12)}s?t.error(new p(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set($e(r,t),0),n=12}else s=new f(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";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,p,f=super.readable;a&&!o||!c||(u=new ue,f=dt(f,u)),n&&(f=lt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=dt(f,new Je(e)):(p=new He(e),f=dt(f,p))),ct(d,f,()=>{let e;a&&!o&&(e=p.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,f,w=super.readable;a&&(n?w=dt(w,new Xe(e)):(f=new Ze(e),w=dt(w,f))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),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 p(ze)}})}}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",pt="close",ft="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(ft)?a=it:n.startsWith(wt)&&(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!==$&&s.outputSize>e.outputSize))throw new p(at)},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 mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let gt;class yt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new bt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),gt===$&&(gt=typeof T!=ee),(o&&gt?xt:St)(e,a)}}class bt extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await zt(e,r)},async transform(e,s){n+=e.length,t&&await zt(t,n,r),s.enqueue(e)},async flush(){s&&await zt(s,n)}})}}async function zt(e,...t){try{await e(...t)}catch{}}function St(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 ht(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 xt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==te&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new T(e)}catch{i=new T(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new T(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();Ft({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new f(n)),Ft({type:"ack",messageId:a},t)),s==pt&&h(null,i)}}catch(o){Ft({type:pt,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i})(e.workerURI,s,e)}catch{return gt=!1,St(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=Ft({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let Et=!0;function Ft(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&Et?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{Et=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Rt=[];const kt=[];let Dt=0;async function _t(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=Rt.find(e=>!e.busy);if(r)return At(r),new yt(r,e,t,w);if(Rt.length<p){const r={indexWorker:Dt};return Dt++,Rt.push(r),new yt(r,e,t,w)}return new y(r=>kt.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(kt.length){const[{resolve:t,stream:r,workerOptions:s}]=kt.splice(0,1);t(new yt(e,r,s,w))}else e.worker?(At(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Rt=Rt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Rt=Rt.filter(t=>t!=e)}}function At(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Tt="HTTP error ",Ut="HTTP Range not supported",vt="Range",Ct="GET",It="bytes",Nt=65536,Wt="writable";class Mt{constructor(){this.size=0}init(){this.initialized=!0}}class Ot extends Mt{get readable(){const e=this,{chunkSize:t=Nt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await or(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Lt extends Mt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Wt,{get:()=>t})}writeUint8Array(){}}class Pt extends Ot{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class Zt extends Mt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Wt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Ht extends Ot{constructor(e,t){super(),Bt(this,e,t)}async init(){await qt(this,$t,Gt),super.init()}readUint8Array(e,t){return Kt(this,e,t,$t,Gt)}}class Vt extends Ot{constructor(e,t){super(),Bt(this,e,t)}async init(){await qt(this,er,Xt),super.init()}readUint8Array(e,t){return Kt(this,e,t,er,Xt)}}function Bt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function qt(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(Ct,e,Yt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==It))throw new p(Ut);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await Qt(e,t,r):e.size=a}}else await Qt(e,t,r)}async function Kt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ct,e,Yt(e,t,r));if(206!=n.status)throw new p(Ut);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function Yt(e,t=0,s=1){return r.assign({},jt(e),{[vt]:It+"="+(0>t?t:t+"-"+(t+s-1))})}function jt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Gt(e){await Jt(e,$t)}async function Xt(e){await Jt(e,er)}async function Jt(e,t){const r=await t(Ct,e,jt(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Qt(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,jt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function $t(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(Ut):new p(Tt+(a.statusText||a.status))}function er(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(Ut):new p(Tt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class tr extends Ot{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Vt(e,t):new Ht(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 rr extends Ot{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await or(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 or(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class sr extends Mt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ir(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Wt,{get:()=>o})}}class nr{constructor(e){return t.isArray(e)&&(e=new rr(e)),e instanceof R&&(e={readable:e}),e}}class ar{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new sr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof sr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function ir(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function or(e,t,r,s){return e.readUint8Array(t,r,s)}const cr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function lr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=cr[e[r]];return t}})(e):new z(t).decode(e)}const dr="filename",ur="rawFilename",pr="comment",fr="rawComment",wr="uncompressedSize",hr="compressedSize",mr="offset",gr="diskNumberStart",yr="lastModDate",br="rawLastModDate",zr="lastAccessDate",Sr="creationDate",xr="rawCreationDate",Er="internalFileAttributes",Fr="externalFileAttributes",Rr="msdosAttributesRaw",kr="msdosAttributes",Dr="msDosCompatible",_r="zip64",Ar="encrypted",Tr="version",Ur="versionMadeBy",vr="zipCrypto",Cr="directory",Ir="executable",Nr="compressionMethod",Wr="signature",Mr="extraField",Or="unixMode",Lr="setuid",Pr="setgid",Zr="sticky",Hr=[dr,ur,wr,hr,yr,br,pr,fr,zr,Sr,xr,mr,gr,Er,Fr,Rr,kr,Dr,_r,Ar,Tr,Ur,vr,Cr,Ir,Nr,Wr,Mr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Or,Lr,Pr,Zr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Vr{constructor(e){Hr.forEach(t=>this[t]=e[t])}}const Br="password",qr="rawPassword",Kr="passThrough",Yr="signal",jr="useWebWorkers",Gr="useCompressionStream",Xr="preventClose",Jr="supportZip64SplitFile",Qr="offset",$r="usdz",es="File format is not recognized",ts="End of central directory not found",rs="End of Zip64 central directory locator not found",ss="Central directory header not found",ns="Local file header not found",as="Zip64 extra field not found",is="File contains encrypted entry",os="Encryption method not supported",cs="Compression method not supported",ls="Split zip file",ds="Overlapping entry found",us="utf-8",ps="cp437",fs=[[wr,v],[hr,v],[mr,v],[gr,C]],ws={[C]:{getValue:Ds,bytes:4},[v]:{getValue:_s,bytes:8}};class hs{constructor(e,t={}){r.assign(this,{reader:new nr(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ir(s),s.size!==$&&s.readUint8Array||(s=new Pt(await new d(s.readable).blob()),await ir(s)),s.size<H)throw new p(es);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,As(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await or(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 Ds(As(await or(s,0,4)))==W?new p(ls):new p(ts);const o=As(a);let c=Ds(o,12),l=Ds(o,16);const u=a.offset,w=ks(o,20),h=u+H+w;let m=ks(o,4);const g=s.lastDiskNumber||0;let b=ks(o,6),z=ks(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=As(await or(s,a.offset-20,20));if(Ds(e,0)==Z){l=_s(e,8);let t=await or(s,l,56,-1),r=As(t);const n=a.offset-20-56;if(Ds(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await or(s,l,56,-1),r=As(t)}if(Ds(r,0)!=P)throw new p(rs);m==C&&(m=Ds(r,16)),b==C&&(b=Ds(r,20)),z==C&&(z=_s(r,32)),c==v&&(c=_s(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ls);if(0>l)throw new p(es);let E=0,R=await or(s,l,c,b),k=As(R);if(c){const e=a.offset-c;if(Ds(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await or(s,l,c,b),k=As(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await or(s,l,c,b),k=As(R)),0>l||l>=s.size)throw new p(es);const _=xs(t,e,"filenameEncoding"),A=xs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new ms(s,n,t.options);if(Ds(k,E)!=O)throw new p(ss);gs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=ks(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=ks(k,E+32),D=f+b,T=R.subarray(f,D),U=c,v=c,N=Ds(k,E+38),W=N&I,M={readOnly:!!(1&W),hidden:!!(2&W),system:!!(4&W),directory:!!(16&W),archive:!!(32&W)},L=Ds(k,E+42)+S,P=xs(t,e,"decodeText")||lr,Z=U?us:_||ps,H=v?us:A||ps;let V=P(g,Z);V===$&&(V=lr(g,Z));let B=P(T,H);B===$&&(B=lr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:ks(k,E+34),internalFileAttributes:ks(k,E+36),externalFileAttributes:N,msdosAttributesRaw:W,msdosAttributes:M,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,f),rawComment:T,filename:V,comment:B}),x=i.max(L,x),ys(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&Y),ee=!!(o.unixMode&j),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&M.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Vr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Vr(o))}catch{}yield ne}const T=xs(t,e,"extractPrependedData"),U=xs(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await or(s,0,x):new f),t.comment=w?await or(s,u+H,w):new f,U&&(t.appendedData=h<s.size?await or(s,h,s.size-h):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class ms{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=As(await or(i,o,X,c));let E=xs(a,n,Br),F=xs(a,n,qr);const R=xs(a,n,Kr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new p(cs);if(0!=u&&8!=u&&9!=u&&!R)throw new p(cs);if(Ds(x,0)!=N)throw new p(ns);gs(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await or(i,o+X+_,D,c):new f,ys(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const U=a.encrypted&&S.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new p(os);if(!E&&!F)throw new p(is)}const C=o+X+_+D,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const L=xs(a,n,Yr),P=xs(a,n,"checkPasswordOnly");let Z=xs(a,n,"checkOverlappingEntry");const H=xs(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let Y=xs(a,n,Gr);K&&(Y=!1);const j={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:xs(a,n,"checkSignature")&&!R,passwordVerification:v&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:xs(a,n,jr),useCompressionStream:Y,transferStreams:xs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:W,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await or(e,o+a,f+4,s);if(Ds(As(r),0)==M){const e=Ds(As(r),4);let s,o;l?(s=_s(As(r),8),o=_s(As(r),16)):(s=Ds(As(r),8),o=Ds(As(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const w={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new p(ds);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new ar(e),await ir(e,R?b:y),({writable:G}=e);const{outputSize:t}=await _t({readable:O,writable:G},j);if(e.size+=t,t!=(R?b:y))throw new p(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{xs(a,n,Xr)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function gs(e,t,s){const n=e.rawBitFlag=ks(t,s+2),a=!(1&~n),i=Ds(t,s+6);r.assign(e,{encrypted:a,version:ks(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:Es(i),filenameLength:ks(t,s+22),extraFieldLength:ks(t,s+24)})}function ys(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=As(new f(i));let u=0;try{for(;u<i.length;){const e=ks(d,u),t=ks(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=ks(s,n+4);r.assign(t,{signature:Ds(s,n+10),compressedSize:Ds(s,n+14),uncompressedSize:Ds(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=As(e.data),s=fs.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=ws[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p(as)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(bs(m,dr,ur,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(bs(g,pr,fr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=As(e.data),a=Rs(n,4);r.assign(e,{vendorVersion:Rs(n,0),vendorId:Rs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:ks(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=As(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=ks(s,a),r=ks(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=As(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:Fs(a),lastAccessDate:Fs(i),creationDate:Fs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)zs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(zs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=As(e.data),n=Rs(s,0),a=[],i=[];r?(1&~n||(a.push(yr),i.push(br)),2&~n||(a.push(zr),i.push("rawLastAccessDate")),4&~n||(a.push(Sr),i.push(xr))):5>e.data.length||(a.push(yr),i.push(br));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Ds(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function bs(e,t,s,n,a){const i=As(e.data),o=new de;o.append(a[s]);const c=As(new f(4));c.setUint32(0,o.get(),!0);const l=Ds(i,1);r.assign(e,{version:Rs(i,0),[t]:lr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ds(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function zs(e,t,s){try{const n=As(new f(e.data));let a=0;const i=Rs(n,a++),o=Rs(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Ss(c),d=Rs(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=Ss(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:w}),l!==$&&(t.uid=l),p!==$&&(t.gid=p),w!==$&&(t.unixMode=w)}catch{}}function Ss(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xs(e,t,r){return t[r]===$?e.options[r]:t[r]}function Es(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Fs(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Rs(e,t){return e.getUint8(t)}function ks(e,t){return e.getUint16(t,!0)}function Ds(e,t){return e.getUint32(t,!0)}function _s(e,t){return n(e.getBigUint64(t,!0))}function As(e){return new m(e.buffer)}const Ts="File already exists",Us="Zip file comment exceeds 64KB",vs="File entry comment exceeds 64KB",Cs="File entry name exceeds 64KB",Is="Version exceeds 65535",Ns="The strength must equal 1, 2, or 3",Ws="Extra field type exceeds 65535",Ms="Extra field data exceeds 64KB",Os="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Ls="Undefined uncompressed size",Ps="Zip file not empty",Zs=new f([7,0,2,0,65,69,3,0,0]),Hs="infozip",Vs="unix";let Bs=0;const qs=[];class Ks{constructor(e,t={}){const s=(e=new ar(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[Qr]===$?e.size||e.writable.size||0:t[Qr],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(Ps);e=new nr(e);const t=new hs(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=e.rawExtraFieldUnix||new f,S=S||new f;const R=an(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:_,headerView:A}=on({version:t,bitFlag:cn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-p>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let h;Bs<u.maxWorkers?Bs++:await new y(e=>qs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ts);return c.filenames.add(e),h=(async(e,s,n,c)=>{s=s.trim();let l=Js(e,c,Dr),u=Js(e,c,Ur,l?20:768);const h=Js(e,c,Ir),g=Js(e,c,"uid"),b=Js(e,c,"gid");let z=Js(e,c,Or);const S=Js(e,c,"unixExtraFieldType");let x=Js(e,c,Lr),E=Js(e,c,Pr),R=Js(e,c,Zr);if(g!==$&&(0>g||g>v))throw new p("Invalid uid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>v))throw new p("Invalid gid (must be integer 0..2^32-1)");if(z!==$&&(0>z||z>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==Hs&&S!==Vs)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let k=Js(e,c,Rr),D=Js(e,c,kr);const _=k!==$||D!==$;if(g!==$||b!==$||z!==$||S?(l=!1,u=u&C|768):_&&(l=!0,u&=I),k!==$&&(0>k||k>I))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(D&&"object"!=typeof D)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(u>C)throw new p(Is);let A=Js(e,c,Fr,0);!c[Cr]&&s.endsWith(G)&&(c[Cr]=!0);const T=Js(e,c,Cr);let U;T?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=h?493<<16:27525120),l||(U=A>>16&C,z=z===$?U:z&C,x?z|=K:x=!!(z&K),E?z|=Y:E=!!(z&Y),R?z|=j:R=!!(z&j),T&&(z|=q),A=(z&C)<<16|A&I),({msdosAttributesRaw:k,msdosAttributes:D}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(k,D)),_&&(A=A&v|k&I);const O=Js(e,c,"encodeText",pe);let L=O(s);if(L===$&&(L=pe(s)),an(L)>C)throw new p(Cs);const P=c[pr]||"";let Z=O(P);if(Z===$&&(Z=pe(P)),an(Z)>C)throw new p(vs);const H=Js(e,c,Tr,20);if(H>C)throw new p(Is);const B=Js(e,c,yr,new o),ee=Js(e,c,zr),te=Js(e,c,Sr),re=Js(e,c,Er,0),se=Js(e,c,Kr);let ne,ae;se||(ne=Js(e,c,Br),ae=Js(e,c,qr));const oe=Js(e,c,"encryptionStrength",3),ce=Js(e,c,vr),le=Js(e,c,"extendedTimestamp",!0),de=Js(e,c,"keepOrder",!0),ue=Js(e,c,jr),fe=Js(e,c,"bufferedWrite"),we=Js(e,c,"dataDescriptorSignature",!1),he=Js(e,c,Yr),me=Js(e,c,"useUnicodeFileNames",!0),ge=Js(e,c,Nr);let ye=Js(e,c,"level"),be=Js(e,c,Gr),ze=Js(e,c,"dataDescriptor");fe&&ze===$&&(ze=!1),(ze===$||ce)&&(ze=!0),ye!==$&&6!=ye&&(be=!1),be||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ye=0);let Se=Js(e,c,_r);if(!ce&&(ne!==$||ae!==$)&&(1>oe||oe>3))throw new p(Ns);let xe=new f;const Ee=c[Mr];if(Ee){let e=0,t=0;Ee.forEach(t=>e+=4+an(t)),xe=new f(e),Ee.forEach((e,r)=>{if(r>C)throw new p(Ws);if(an(e)>C)throw new p(Ms);sn(xe,new w([r]),t),sn(xe,new w([an(e)]),t+2),sn(xe,e,t+4),t+=4+an(e)})}let Fe=0,Re=0,ke=0;if(se&&(ke=c[wr],ke===$))throw new p(Ls);const De=!0===Se;n&&(n=new nr(n),await ir(n),se?(c.uncompressedSize=ke,Fe=Qs(ke)):n.size===$?(ze=!0,(Se||Se===$)&&(Se=!0,ke=Fe=4294967296)):(c.uncompressedSize=ke=n.size,Fe=Qs(ke)));const{diskOffset:_e,diskNumber:Ae,maxSize:Te}=e.writer,Ue=De||ke>v,ve=De||Fe>v,Ce=De||e.offset+e.pendingEntriesSize-_e>v,Ie=Js(e,c,Jr,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ie){if(!1===Se||!de)throw new p(Os);Se=!0}Se=Se||!1;const Ne=Js(e,c,Ar),We=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!p&&(o>0||o===$&&0!==_);let T,U;const v=y||!A,I=c&&(e.bufferedWrite||!z&&!S||v);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new f(e);const r=nn(T);U=new f(t);const s=nn(U);if(en(r,0,1),en(r,2,an(T)-4),en(s,0,1),en(s,2,an(U)-4),I){const e=nn(T),t=nn(U);let r=4,s=4;z&&(rn(e,r,a(F)),r+=8,rn(t,s,a(F)),s+=8),S&&v&&(rn(e,r,a(F)),r+=8,rn(t,s,a(F)),s+=8),x&&(rn(e,r,a(R)),r+=8),E&&(tn(e,r,k),r+=4),4==s&&(U=new f)}}else T=new f,U=new f;let W,M,O,L,P;if(b&&!l){W=new f(an(Zs)+2);const e=nn(W);en(e,0,39169),sn(W,Zs,2),$s(e,8,h)}else W=new f;if(g){O=new f(9+(s?4:0)+(n?4:0));const e=nn(O);en(e,0,V),en(e,2,an(O)-4),L=1+(s?2:0)+(n?4:0),$s(e,4,L);let t=5;tn(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(tn(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&tn(e,t,i.floor(n.getTime()/1e3));try{M=new f(36);const e=nn(M),t=Xs(r);en(e,0,10),en(e,2,32),en(e,8,1),en(e,10,24),rn(e,12,t),rn(e,20,Xs(s)||t),rn(e,28,Xs(n)||t)}catch{M=new f}}else M=O=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new f;else{const e=Ys(t),c=Ys(r);let l=new f;if(o==Vs&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=Y),i&&(e|=j),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new f(4+d);const u=nn(P);en(u,0,o==Hs?30837:30805),en(u,2,d),$s(u,4,1),$s(u,5,e.length);let p=6;sn(P,e,p),p+=e.length,$s(u,p,c.length),p++,sn(P,c,p),p+=c.length,sn(P,l,p)}}catch{P=new f}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,W[9]=_,_=99);const Z=I?an(U):0,H=Z+an(W,O,M,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=on({version:D,bitFlag:cn(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new f(ee+an(t)+H),re=nn(te);return tn(re,0,N),sn(te,B,4),sn(te,t,ee),ee+=an(t),I&&sn(te,U,ee),ee+=Z,sn(te,W,ee),ee+=an(W),sn(te,O,ee),ee+=an(O),sn(te,M,ee),ee+=an(M),sn(te,P,ee),ee+=an(P),sn(te,w,ee),u&&(tn(re,18,0),tn(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:O,rawExtraFieldNTFS:M,rawExtraFieldUnix:P,rawExtraFieldAES:W,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:L,rawComment:Z,version:H,versionMadeBy:u,lastModDate:B,lastAccessDate:ee,creationDate:te,rawExtraField:xe,zip64:Se,zip64UncompressedSize:Ue,zip64CompressedSize:ve,zip64Offset:Ce,zip64DiskNumberStart:Ie,password:ne,rawPassword:ae,level:ye,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:fe,keepOrder:de,useUnicodeFileNames:me,dataDescriptor:ze,dataDescriptorSignature:we,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:be,passThrough:se,encrypted:!!(ne&&an(ne)||ae&&an(ae))||se&&Ne,signature:c[Wr],compressionMethod:ge,uncompressedSize:ke,offset:e.offset-_e,diskNumberStart:Ae,uid:g,gid:b,setuid:x,setgid:E,sticky:R,unixMode:z,msdosAttributesRaw:k,msdosAttributes:D,unixExternalUpper:U})),Me=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=nn(n),r&&(a=4,tn(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Oe=an(We.localHeaderArray,Me.dataDescriptorArray);let Le;Re=Oe+Fe,e.options[$r]&&(Re+=Re+64),e.pendingEntriesSize+=Re;try{Le=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:w,signal:h}=o,{headerInfo:m}=i,g=e.options[$r],b=t.from(c.values()).pop();let z,S,x,E,R,k,D,_={};c.set(s,_);try{let t;u&&(t=b&&b.lock,_.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&w||g?(k=l,await A()):(k=new F,k.size=0,z=!0,e.bufferedWrites++,await ir(l)),await ir(k);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);tn(nn(t),0,W),await Gs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=nn(s),i=64-(t+an(s))%64;4>i&&(i+=64);const o=new f(i),c=nn(o);en(c,0,6534),en(c,2,i-2);const l=s;r.localHeaderArray=s=new f(an(l)+i),sn(s,l),sn(s,o,an(l)),a=nn(s),en(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await T(S));const{diskNumber:M}=l;R=!0,_.diskNumberStart=M,z?D=new d(k.readable).blob():await Gs(k,N),_=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:Y,onstart:j,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:ft,level:C,rawPassword:v,password:U,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:Y,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:j,onprogress:G,onend:X}};try{const e=await _t({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===$||(tn(l,10,e),c&&tn(u,p,e)),i?c&&(rn(u,p+4,a(t)),rn(u,p+12,a(r))):(tn(l,14,t),tn(l,18,r),c&&(tn(u,p+4,t),tn(u,p+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await Gs(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L}),me})(n,k,_,i,e.config,o);const{zip64:O}=_;if(R=!1,c.set(s,_),_.filename=s,z){const[r]=await y.all([D,k.writable.getWriter().close(),t]);await A(),E=!0,_.diskNumberStart=l.diskNumber,_.offset=e.offset-l.diskOffset,O&&js(_),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||tn(d,14,n),l||tn(d,18,i),c||tn(d,22,o)),r&&s){let t=X+an(e)+4;c&&(rn(d,t,a(o)),t+=8),l&&(rn(d,t,a(i)),t+=8)}})(_,C,o),await T(S),await Gs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=k.size,E=!1}else _.offset=e.offset-U,O&&js(_);if(_.offset>v&&!O)throw new p(Os);return e.offset+=_.size,_}catch(t){if(z&&E||!z&&R){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=k.size:e.offset=k.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function A(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function T(e){an(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Gs(e,new f))}})(e,s,n,{headerInfo:We,dataDescriptorInfo:Me,metadataSize:Oe},c)}finally{e.pendingEntriesSize-=Re}return r.assign(Le,{name:s,comment:P,extraField:Ee}),new Vr(Le)})(c,e,s,n),l.add(h),await h}catch(t){throw c.filenames.delete(e),t}finally{l.delete(h);const e=qs.shift();e?e():Bs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p}=e;let w;if(l){w=new f(9);const e=nn(w);en(e,0,V),en(e,2,5),$s(e,4,d),tn(e,5,i.floor(p.getTime()/1e3))}else w=new f;e.rawExtraFieldExtendedTimestamp=w,u+=46+an(t,n,r,s,a,o,w,c)}const m=new f(u),g=nn(m);await ir(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:p,rawExtraField:f,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,U=an(i,c,l,u,p,f);tn(g,d,O),en(g,d+4,h),x||tn(z,18,A),E||tn(z,14,T),sn(m,b,d+6);let I=d+X;if(en(g,I,U),I+=2,en(g,I,an(w)),I+=2,en(g,I,S&&F?C:_),I+=2,en(g,I,k),I+=2,D&&tn(g,I,D),I+=4,tn(g,I,S&&R?v:t),I+=4,sn(m,a,I),I+=an(a),sn(m,i,I),I+=an(i),sn(m,c,I),I+=an(c),sn(m,l,I),I+=an(l),sn(m,u,I),I+=an(u),sn(m,p,I),I+=an(p),sn(m,f,I),I+=an(f),sn(m,w,I),I+=an(w),d-y>o.availableSize&&(o.availableSize=0,await Gs(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Vr(r))}catch{}}await Gs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Js(e,s,_r);if(w>v||u>v||h>C||b>C){if(!1===S)throw new p(Os);S=!0}const x=new f(S?98:H),E=nn(x);d=0,S&&(tn(E,0,P),rn(E,4,a(44)),en(E,12,45),en(E,14,45),tn(E,16,b),tn(E,20,l),rn(E,24,a(h)),rn(E,32,a(h)),rn(E,40,a(u)),rn(E,48,a(w)),tn(E,56,Z),rn(E,64,a(w)+a(u)),tn(E,72,b+1),Js(e,s,Jr,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),tn(E,d,L),en(E,d+4,b),en(E,d+6,l),en(E,d+8,h),en(E,d+10,h),tn(E,d+12,u),tn(E,d+16,w);const F=an(r);if(F){if(F>C)throw new p(Us);en(E,d+20,F)}await Gs(o,x),F&&await Gs(o,r)})(this,e,r),Js(this,r,Xr)||await o.getWriter().close(),n.getData?n.getData():o}}function Ys(e){if(e===$)return new f;{const t=new f(4);nn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function js({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=nn(l);let u=4;n&&(rn(d,u,a(t)),u+=8),i&&(rn(d,u,a(e)),u+=8),o&&(rn(d,u,a(r)),u+=8),c&&tn(d,u,s)}async function Gs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=an(t),await s.write(t)}finally{s.releaseLock()}}function Xs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Js(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function Qs(e){return e+5*(i.floor(e/16383)+1)}function $s(e,t,r){e.setUint8(t,r)}function en(e,t,r){e.setUint16(t,r,!0)}function tn(e,t,r){e.setUint32(t,r,!0)}function rn(e,t,r){e.setBigUint64(t,r,!0)}function sn(e,t,r){e.set(t,r)}function nn(e){return new m(e.buffer)}function an(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function on({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=nn(d);en(u,0,e),en(u,2,t),en(u,4,r);const p=new h(1),w=nn(p);en(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),en(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return tn(u,6,m),(o||n!==$)&&tn(u,14,o?v:n),(c||s!==$)&&tn(u,18,c?v:s),en(u,22,an(i)),en(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function cn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Pt,e.BlobWriter=Zt,e.Data64URIReader=class extends Ot{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Lt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=es,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ss,e.ERR_DUPLICATED_NAME=Ts,e.ERR_ENCRYPTED=is,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=rs,e.ERR_EOCDR_NOT_FOUND=ts,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=as,e.ERR_HTTP_RANGE=Ut,e.ERR_INVALID_COMMENT=Us,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ns,e.ERR_INVALID_ENTRY_COMMENT=vs,e.ERR_INVALID_ENTRY_NAME=Cs,e.ERR_INVALID_EXTRAFIELD_DATA=Ms,e.ERR_INVALID_EXTRAFIELD_TYPE=Ws,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Is,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ns,e.ERR_OVERLAPPING_ENTRY=ds,e.ERR_SPLIT_ZIP_FILE=ls,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Ls,e.ERR_UNSUPPORTED_COMPRESSION=cs,e.ERR_UNSUPPORTED_ENCRYPTION=os,e.ERR_UNSUPPORTED_FORMAT=Os,e.ERR_ZIP_NOT_EMPTY=Ps,e.HttpRangeReader=class extends tr{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=tr,e.Reader=Ot,e.SplitDataReader=rr,e.SplitDataWriter=sr,e.TextReader=class extends Pt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Zt{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 Ot{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Lt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Lt,e.ZipReader=hs,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new hs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Ks,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Ks(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Rt.map(e=>(At(e),e.terminate())))}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:_,navigator:A,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==S?S.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,O=134695760,W=O,M=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee="undefined",te="function";let re=2;try{typeof A!=ee&&A.hardwareConcurrency&&(re=A.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=ee&&D,DecompressionStream:typeof _!=ee&&_},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,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:f}=e;ce("baseURI",t),ce("wasmURI",f),ce("workerURI",u),ce("chunkSize",r),ce("maxWorkers",s),ce("terminateWorkerTimeout",n),ce("useCompressionStream",a),ce("useWebWorkers",i),ce("CompressionStream",o),ce("DecompressionStream",c),ce("CompressionStreamZlib",l),ce("DecompressionStreamZlib",d)}function ce(e,t){t!==$&&(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={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ge={importKey:e=>new ge.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)}}},ye=typeof x!=ee&&typeof x.getRandomValues==te,be="Invalid password",ze="Invalid signature",Se="zipjs-abort-check-password";function xe(e){return ye?x.getRandomValues(e):me.getRandomValues(e)}const Ee=16,Fe={name:"PBKDF2"},Re=r.assign({hash:{name:"HMAC"}},Fe),ke=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Fe),De=["deriveBits"],_e=[8,12,16],Ae=[16,24,32],Te=10,Ue=[0,0,0,0],ve=typeof x!=ee,Ce=ve&&x.subtle,Ie=ve&&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}},We=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=ge.hmacSha1;let Le=ve&&Ie&&typeof Ce.importKey==te,Pe=ve&&Ie&&typeof Ce.deriveBits==te;class Ze extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:qe(e,t),signed:s,strength:n-1,pending:new p})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await Be(e,t,r,je(s,0,_e[t])),a=je(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(be)})(r,n,s,je(e,0,_e[n]+2)),e=je(e,_e[n]+2),a?t.error(new f(Se)):i()):await o;const c=new p(e.length-Te-(e.length-Te)%Ee);t.enqueue(Ve(r,e,c,0,Te,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=je(n,0,n.length-Te),o=je(n,n.length-Te);let c=new p;if(i.length){const e=Ge(Ne,i);s.update(e);const t=r.update(e);c=Ye(Ne,t)}if(t){const e=je(Ye(Ne,s.digest()),0,Te);for(let t=0;Te>t;t++)if(e[t]!=o[t])throw new f(ze)}e.enqueue(c)}}})}}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:qe(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=xe(new p(_e[t]));return Ke(s,await Be(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%Ee);c.set(o,0),t.enqueue(Ve(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(Ge(Ne,s));r.update(e),i=Ye(Ne,e)}n.signature=Ye(Ne,r.digest()).slice(0,Te),e.enqueue(Ke(i,n.signature))}}}),n=this}}function Ve(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=Ke(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,l-l%Ee)),d=0;l-Ee>=d;d+=Ee){const e=Ge(Ne,je(t,d,d+Ee));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ye(Ne,n),d+s)}return e.pending=je(t,d),r}async function Be(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Le)return ge.importKey(t);try{return await Ce.importKey("raw",t,r,!1,n)}catch{return Le=!1,ge.importKey(t)}})(0,n,Re,0,De),o=await(async(e,t,r)=>{if(!Pe)return ge.pbkdf2(t,e.salt,ke.iterations,r);try{return await Ce.deriveBits(e,t,r)}catch{return Pe=!1,ge.pbkdf2(t,e.salt,ke.iterations,r)}})(r.assign({salt:a},ke),i,8*(2*Ae[s]+2)),c=new p(o),l=Ge(Ne,je(c,0,Ae[s])),d=Ge(Ne,je(c,Ae[s],2*Ae[s])),u=je(c,2*Ae[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new We(new Oe(l),t.from(Ue)),hmac:new Me(d)}),u}function qe(e,t){return t===$?fe(e):t}function Ke(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 je(e,t,r){return e.subarray(t,r)}function Ye(e,t){return e.fromBits(t)}function Ge(e,t){return e.toBits(t)}class Xe extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;if(r.password){const t=Qe(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new f(be);e=e.subarray(12)}s?t.error(new f(Se)):t.enqueue(Qe(r,e))}})}}class Je extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),et(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=xe(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set($e(r,t),0),n=12}else s=new p(e.length),n=0;s.set($e(r,e),n),t.enqueue(s)}})}}function Qe(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,r[s]);return r}function $e(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=rt(e)^t[s],tt(e,t[s]);return r}function et(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new de(s[0]),crcKey2:new de(s[2])});for(let r=0;r<t.length;r++)tt(e,t.charCodeAt(r))}function tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=nt(i.imul(nt(s+st(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function rt(e){const t=2|e.keys[2];return st(i.imul(t,1^t)>>>8)}function st(e){return 255&e}function nt(e){return 4294967295&e}const at="Invalid uncompressed size";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 Je(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 Xe(e)):(p=new Ze(e),w=dt(w,p))),c&&(w=lt(w,l,{chunkSize:t,deflate64:d},s,r,s)),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(ze)}})}}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="close",pt="deflate",wt="inflate";class ht extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(pt)?a=it:n.startsWith(wt)&&(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!==$&&s.outputSize>e.outputSize))throw new f(at)},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 mt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new p(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let gt,yt,bt,zt=!0;class St{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new mt(a.chunkSize)).pipeThrough(new xt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),gt===$&&(gt=typeof T!=ee),(o&&gt?Rt:Ft)(e,a)}}class xt extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Et(e,r)},async transform(e,s){n+=e.length,t&&await Et(t,n,r),s.enqueue(e)},async flush(){s&&await Et(s,n)}})}}async function Et(e,...t){try{await e(...t)}catch{}}function Ft(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 ht(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 Rt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=kt(e.workerURI,s,e)}catch{return gt=!1,Ft(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new k({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=Dt({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function kt(e,t,s,n=!1,a=!0){let i,o,c;if(n&&(c={type:"module"}),yt===$){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d)try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return kt(e,t,s,n,!1);if(n)throw a;return kt(e,t,s,!0,!1)}else{try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return kt(e,t,s,!0,a)}}yt=o,bt=c}else i=new T(yt,bt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new f(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();Dt({type:ut,value:e,done:r,messageId:a},t)}s==ut&&(await l.ready,await l.write(new p(n)),Dt({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){Dt({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function Dt(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&zt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{zt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let _t=[];const At=[];let Tt=0;async function Ut(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===$;const p=!(c||l||d||t.transferStreams);return t.useWebWorkers=!p&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=_t.find(e=>!e.busy);if(r)return vt(r),new St(r,e,t,w);if(_t.length<f){const r={indexWorker:Tt};return Tt++,_t.push(r),new St(r,e,t,w)}return new y(r=>At.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(At.length){const[{resolve:t,stream:r,workerOptions:s}]=At.splice(0,1);t(new St(e,r,s,w))}else e.worker?(vt(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{_t=_t.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):_t=_t.filter(t=>t!=e)}}function vt(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Ct="HTTP error ",It="HTTP Range not supported",Nt="Range",Ot="GET",Wt="bytes",Mt=65536,Lt="writable";class Pt{constructor(){this.size=0}init(){this.initialized=!0}}class Zt extends Pt{get readable(){const e=this,{chunkSize:t=Mt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await dr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Ht extends Pt{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Lt,{get:()=>t})}writeUint8Array(){}}class Vt extends Zt{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 Bt extends Pt{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Lt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class qt extends Zt{constructor(e,t){super(),jt(this,e,t)}async init(){await Yt(this,rr,Qt),super.init()}readUint8Array(e,t){return Gt(this,e,t,rr,Qt)}}class Kt extends Zt{constructor(e,t){super(),jt(this,e,t)}async init(){await Yt(this,sr,$t),super.init()}readUint8Array(e,t){return Gt(this,e,t,sr,$t)}}function jt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Yt(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(Ot,e,Xt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Wt))throw new f(It);{let a;c&&(e.eocdCache=new p(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await tr(e,t,r):e.size=a}}else await tr(e,t,r)}async function Gt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ot,e,Xt(e,t,r));if(206!=n.status)throw new f(It);return new p(await n.arrayBuffer())}return new p}{const{data:s}=e;return s||await n(e,l),new p(e.data.subarray(t,t+r))}}function Xt(e,t=0,s=1){return r.assign({},Jt(e),{[Nt]:Wt+"="+(0>t?t:t+"-"+(t+s-1))})}function Jt({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Qt(e){await er(e,rr)}async function $t(e){await er(e,sr)}async function er(e,t){const r=await t(Ot,e,Jt(e));e.data=new p(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function tr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Jt(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function rr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new f(It):new f(Ct+(a.statusText||a.status))}function sr(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(It):new f(Ct+(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 nr extends Zt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Kt(e,t):new qt(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 ar extends Zt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await dr(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 dr(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class ir extends Pt{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await lr(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Lt,{get:()=>o})}}class or{constructor(e){return t.isArray(e)&&(e=new ar(e)),e instanceof R&&(e={readable:e}),e}}class cr{constructor(e){return e.writable===$&&typeof e.next==te&&(e=new ir(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof ir||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function lr(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function dr(e,t,r,s){return e.readUint8Array(t,r,s)}const ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function fr(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 z(t).decode(e)}const pr="filename",wr="rawFilename",hr="comment",mr="rawComment",gr="uncompressedSize",yr="compressedSize",br="offset",zr="diskNumberStart",Sr="lastModDate",xr="rawLastModDate",Er="lastAccessDate",Fr="creationDate",Rr="rawCreationDate",kr="internalFileAttributes",Dr="externalFileAttributes",_r="msdosAttributesRaw",Ar="msdosAttributes",Tr="msDosCompatible",Ur="zip64",vr="encrypted",Cr="version",Ir="versionMadeBy",Nr="zipCrypto",Or="directory",Wr="executable",Mr="compressionMethod",Lr="signature",Pr="extraField",Zr="unixMode",Hr="setuid",Vr="setgid",Br="sticky",qr=[pr,wr,gr,yr,Sr,xr,hr,mr,Er,Fr,Rr,br,zr,kr,Dr,_r,Ar,Tr,Ur,vr,Cr,Ir,Nr,Or,Wr,Mr,Lr,Pr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Zr,Hr,Vr,Br,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Kr{constructor(e){qr.forEach(t=>this[t]=e[t])}}const jr="password",Yr="rawPassword",Gr="passThrough",Xr="signal",Jr="useWebWorkers",Qr="useCompressionStream",$r="preventClose",es="supportZip64SplitFile",ts="offset",rs="usdz",ss="File format is not recognized",ns="End of central directory not found",as="End of Zip64 central directory locator not found",is="Central directory header not found",os="Local file header not found",cs="Zip64 extra field not found",ls="File contains encrypted entry",ds="Encryption method not supported",us="Compression method not supported",fs="Split zip file",ps="Overlapping entry found",ws="utf-8",hs="cp437",ms=[[gr,v],[yr,v],[br,v],[zr,C]],gs={[C]:{getValue:Ts,bytes:4},[v]:{getValue:Us,bytes:8}};class ys{constructor(e,t={}){r.assign(this,{reader:new or(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await lr(s),s.size!==$&&s.readUint8Array||(s=new Vt(await new d(s.readable).blob()),await lr(s)),s.size<H)throw new f(ss);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,vs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await dr(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 Ts(vs(await dr(s,0,4)))==O?new f(fs):new f(ns);const o=vs(a);let c=Ts(o,12),l=Ts(o,16);const u=a.offset,w=As(o,20),h=u+H+w;let m=As(o,4);const g=s.lastDiskNumber||0;let b=As(o,6),z=As(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=vs(await dr(s,a.offset-20,20));if(Ts(e,0)==Z){l=Us(e,8);let t=await dr(s,l,56,-1),r=vs(t);const n=a.offset-20-56;if(Ts(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await dr(s,l,56,-1),r=vs(t)}if(Ts(r,0)!=P)throw new f(as);m==C&&(m=Ts(r,16)),b==C&&(b=Ts(r,20)),z==C&&(z=Us(r,32)),c==v&&(c=Us(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new f(fs);if(0>l)throw new f(ss);let E=0,R=await dr(s,l,c,b),k=vs(R);if(c){const e=a.offset-c;if(Ts(k,E)!=M&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await dr(s,l,c,b),k=vs(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await dr(s,l,c,b),k=vs(R)),0>l||l>=s.size)throw new f(ss);const _=Rs(t,e,"filenameEncoding"),A=Rs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new bs(s,n,t.options);if(Ts(k,E)!=M)throw new f(is);zs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=As(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=As(k,E+32),D=p+b,T=R.subarray(p,D),U=c,v=c,N=Ts(k,E+38),O=N&I,W={readOnly:!!(1&O),hidden:!!(2&O),system:!!(4&O),directory:!!(16&O),archive:!!(32&O)},L=Ts(k,E+42)+S,P=Rs(t,e,"decodeText")||fr,Z=U?ws:_||hs,H=v?ws:A||hs;let V=P(g,Z);V===$&&(V=fr(g,Z));let B=P(T,H);B===$&&(B=fr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:As(k,E+34),internalFileAttributes:As(k,E+36),externalFileAttributes:N,msdosAttributesRaw:O,msdosAttributes:W,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,p),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Ss(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&W.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Kr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Kr(o))}catch{}yield ne}const T=Rs(t,e,"extractPrependedData"),U=Rs(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await dr(s,0,x):new p),t.comment=w?await dr(s,u+H,w):new p,U&&(t.appendedData=h<s.size?await dr(s,h,s.size-h):new p),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class bs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=h,S=t.localDirectory={},x=vs(await dr(i,o,X,c));let E=Rs(a,n,jr),F=Rs(a,n,Yr);const R=Rs(a,n,Gr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new f(us);if(0!=u&&8!=u&&9!=u&&!R)throw new f(us);if(Ts(x,0)!=N)throw new f(os);zs(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await dr(i,o+X+_,D,c):new p,Ss(a,S,x,4,!0),r.assign(t,{lastAccessDate:A,creationDate:T});const U=a.encrypted&&S.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new f(ds);if(!E&&!F)throw new f(ls)}const C=o+X+_+D,O=b,M=i.readable;r.assign(M,{diskNumberStart:c,offset:C,size:O});const L=Rs(a,n,Xr),P=Rs(a,n,"checkPasswordOnly");let Z=Rs(a,n,"checkOverlappingEntry");const H=Rs(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=Rs(a,n,Qr);K&&(j=!1);const Y={options:{codecType:wt,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:Rs(a,n,"checkSignature")&&!R,passwordVerification:v&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:Rs(a,n,Jr),useCompressionStream:j,transferStreams:Rs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:O,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let p=0;if(c&&(p=l?20:12),p){const r=await dr(e,o+a,p+4,s);if(Ts(vs(r),0)==W){const e=Ts(vs(r),4);let s,o;l?(s=Us(vs(r),8),o=Us(vs(r),16)):(s=Ts(vs(r),8),o=Ts(vs(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(p+=4)}}const w={start:u+r,end:u+o+a+p,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new f(ps);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new cr(e),await lr(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ut({readable:M,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new f(at)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=Se)throw t}finally{Rs(a,n,$r)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function zs(e,t,s){const n=e.rawBitFlag=As(t,s+2),a=!(1&~n),i=Ts(t,s+6);r.assign(e,{encrypted:a,version:As(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:ks(i),filenameLength:As(t,s+22),extraFieldLength:As(t,s+24)})}function Ss(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=vs(new p(i));let u=0;try{for(;u<i.length;){const e=As(d,u),t=As(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=As(s,n+4);r.assign(t,{signature:Ts(s,n+10),compressedSize:Ts(s,n+14),uncompressedSize:Ts(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=vs(e.data),s=ms.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=gs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new f(cs)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(xs(m,pr,wr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(xs(g,hr,mr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=vs(e.data),a=_s(n,4);r.assign(e,{vendorVersion:_s(n,0),vendorId:_s(n,2),strength:a,originalCompressionMethod:s,compressionMethod:As(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=vs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=As(s,a),r=As(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=vs(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:Ds(a),lastAccessDate:Ds(i),creationDate:Ds(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)Es(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(Es(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=vs(e.data),n=_s(s,0),a=[],i=[];r?(1&~n||(a.push(Sr),i.push(xr)),2&~n||(a.push(Er),i.push("rawLastAccessDate")),4&~n||(a.push(Fr),i.push(Rr))):5>e.data.length||(a.push(Sr),i.push(xr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Ts(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function xs(e,t,s,n,a){const i=vs(e.data),o=new de;o.append(a[s]);const c=vs(new p(4));c.setUint32(0,o.get(),!0);const l=Ts(i,1);r.assign(e,{version:_s(i,0),[t]:fr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ts(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Es(e,t,s){try{const n=vs(new p(e.data));let a=0;const i=_s(n,a++),o=_s(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Fs(c),d=_s(n,a++),u=e.data.subarray(a,a+d);a+=d;const f=Fs(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:f,unixMode:w}),l!==$&&(t.uid=l),f!==$&&(t.gid=f),w!==$&&(t.unixMode=w)}catch{}}function Fs(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Rs(e,t,r){return t[r]===$?e.options[r]:t[r]}function ks(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function Ds(e){return new o(n(e/a(1e4)-a(116444736e5)))}function _s(e,t){return e.getUint8(t)}function As(e,t){return e.getUint16(t,!0)}function Ts(e,t){return e.getUint32(t,!0)}function Us(e,t){return n(e.getBigUint64(t,!0))}function vs(e){return new m(e.buffer)}const Cs="File already exists",Is="Zip file comment exceeds 64KB",Ns="File entry comment exceeds 64KB",Os="File entry name exceeds 64KB",Ws="Version exceeds 65535",Ms="The strength must equal 1, 2, or 3",Ls="Extra field type exceeds 65535",Ps="Extra field data exceeds 64KB",Zs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Hs="Undefined uncompressed size",Vs="Zip file not empty",Bs=new p([7,0,2,0,65,69,3,0,0]),qs="infozip",Ks="unix";let js=0;const Ys=[];class Gs{constructor(e,t={}){const s=(e=new cr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[ts]===$?e.size||e.writable.size||0:t[ts],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new f(Vs);e=new or(e);const t=new ys(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:f,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new p,g=g||new p,y=y||new p,b=b||new p,z=e.rawExtraFieldUnix||new p,S=S||new p;const R=ln(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:_,headerView:A}=dn({version:t,bitFlag:un(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-f>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:_,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let h;js<u.maxWorkers?js++:await new y(e=>Ys.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new f(Cs);return c.filenames.add(e),h=(async(e,s,n,c)=>{s=s.trim();let l=en(e,c,Tr),u=en(e,c,Ir,l?20:768);const h=en(e,c,Wr),g=en(e,c,"uid"),b=en(e,c,"gid");let z=en(e,c,Zr);const S=en(e,c,"unixExtraFieldType");let x=en(e,c,Hr),E=en(e,c,Vr),R=en(e,c,Br);if(g!==$&&(0>g||g>v))throw new f("Invalid uid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>v))throw new f("Invalid gid (must be integer 0..2^32-1)");if(z!==$&&(0>z||z>C))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==qs&&S!==Ks)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let k=en(e,c,_r),D=en(e,c,Ar);const _=k!==$||D!==$;if(g!==$||b!==$||z!==$||S?(l=!1,u=u&C|768):_&&(l=!0,u&=I),k!==$&&(0>k||k>I))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(D&&"object"!=typeof D)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(u>C)throw new f(Ws);let A=en(e,c,Dr,0);!c[Or]&&s.endsWith(G)&&(c[Or]=!0);const T=en(e,c,Or);let U;T?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=h?493<<16:27525120),l||(U=A>>16&C,z=z===$?U:z&C,x?z|=K:x=!!(z&K),E?z|=j:E=!!(z&j),R?z|=Y:R=!!(z&Y),T&&(z|=q),A=(z&C)<<16|A&I),({msdosAttributesRaw:k,msdosAttributes:D}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(k,D)),_&&(A=A&v|k&I);const M=en(e,c,"encodeText",fe);let L=M(s);if(L===$&&(L=fe(s)),ln(L)>C)throw new f(Os);const P=c[hr]||"";let Z=M(P);if(Z===$&&(Z=fe(P)),ln(Z)>C)throw new f(Ns);const H=en(e,c,Cr,20);if(H>C)throw new f(Ws);const B=en(e,c,Sr,new o),ee=en(e,c,Er),te=en(e,c,Fr),re=en(e,c,kr,0),se=en(e,c,Gr);let ne,ae;se||(ne=en(e,c,jr),ae=en(e,c,Yr));const oe=en(e,c,"encryptionStrength",3),ce=en(e,c,Nr),le=en(e,c,"extendedTimestamp",!0),de=en(e,c,"keepOrder",!0),ue=en(e,c,Jr),pe=en(e,c,"bufferedWrite"),we=en(e,c,"dataDescriptorSignature",!1),he=en(e,c,Xr),me=en(e,c,"useUnicodeFileNames",!0),ge=en(e,c,Mr);let ye=en(e,c,"level"),be=en(e,c,Qr),ze=en(e,c,"dataDescriptor");pe&&ze===$&&(ze=!1),(ze===$||ce)&&(ze=!0),ye!==$&&6!=ye&&(be=!1),be||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ye=0);let Se=en(e,c,Ur);if(!ce&&(ne!==$||ae!==$)&&(1>oe||oe>3))throw new f(Ms);let xe=new p;const Ee=c[Pr];if(Ee){let e=0,t=0;Ee.forEach(t=>e+=4+ln(t)),xe=new p(e),Ee.forEach((e,r)=>{if(r>C)throw new f(Ls);if(ln(e)>C)throw new f(Ps);on(xe,new w([r]),t),on(xe,new w([ln(e)]),t+2),on(xe,e,t+4),t+=4+ln(e)})}let Fe=0,Re=0,ke=0;if(se&&(ke=c[gr],ke===$))throw new f(Hs);const De=!0===Se;n&&(n=new or(n),await lr(n),se?(c.uncompressedSize=ke,Fe=tn(ke)):n.size===$?(ze=!0,(Se||Se===$)&&(Se=!0,ke=Fe=4294967296)):(c.uncompressedSize=ke=n.size,Fe=tn(ke)));const{diskOffset:_e,diskNumber:Ae,maxSize:Te}=e.writer,Ue=De||ke>v,ve=De||Fe>v,Ce=De||e.offset+e.pendingEntriesSize-_e>v,Ie=en(e,c,es,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ie){if(!1===Se||!de)throw new f(Zs);Se=!0}Se=Se||!1;const Ne=en(e,c,vr),Oe=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:f,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:E,uncompressedSize:F,offset:R,diskNumberStart:k}=e;let{version:D,compressionMethod:_}=e;const A=!f&&(o>0||o===$&&0!==_);let T,U;const v=y||!A,I=c&&(e.bufferedWrite||!z&&!S||v);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),E&&(e+=4),T=new p(e);const r=cn(T);U=new p(t);const s=cn(U);if(sn(r,0,1),sn(r,2,ln(T)-4),sn(s,0,1),sn(s,2,ln(U)-4),I){const e=cn(T),t=cn(U);let r=4,s=4;z&&(an(e,r,a(F)),r+=8,an(t,s,a(F)),s+=8),S&&v&&(an(e,r,a(F)),r+=8,an(t,s,a(F)),s+=8),x&&(an(e,r,a(R)),r+=8),E&&(nn(e,r,k),r+=4),4==s&&(U=new p)}}else T=new p,U=new p;let O,W,M,L,P;if(b&&!l){O=new p(ln(Bs)+2);const e=cn(O);sn(e,0,39169),on(O,Bs,2),rn(e,8,h)}else O=new p;if(g){M=new p(9+(s?4:0)+(n?4:0));const e=cn(M);sn(e,0,V),sn(e,2,ln(M)-4),L=1+(s?2:0)+(n?4:0),rn(e,4,L);let t=5;nn(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(nn(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&nn(e,t,i.floor(n.getTime()/1e3));try{W=new p(36);const e=cn(W),t=$s(r);sn(e,0,10),sn(e,2,32),sn(e,8,1),sn(e,10,24),an(e,12,t),an(e,20,$s(s)||t),an(e,28,$s(n)||t)}catch{W=new p}}else W=M=new p;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)P=new p;else{const e=Xs(t),c=Xs(r);let l=new p;if(o==Ks&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new p(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new p(4+d);const u=cn(P);sn(u,0,o==qs?30837:30805),sn(u,2,d),rn(u,4,1),rn(u,5,e.length);let f=6;on(P,e,f),f+=e.length,rn(u,f,c.length),f++,on(P,c,f),f+=c.length,on(P,l,f)}}catch{P=new p}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,O[9]=_,_=99);const Z=I?ln(U):0,H=Z+ln(O,M,W,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=dn({version:D,bitFlag:un(o,d,u,b,_),compressionMethod:_,uncompressedSize:F,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let ee=X;const te=new p(ee+ln(t)+H),re=cn(te);return nn(re,0,N),on(te,B,4),on(te,t,ee),ee+=ln(t),I&&on(te,U,ee),ee+=Z,on(te,O,ee),ee+=ln(O),on(te,M,ee),ee+=ln(M),on(te,W,ee),ee+=ln(W),on(te,P,ee),ee+=ln(P),on(te,w,ee),u&&(nn(re,18,0),nn(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:A,version:D,compressionMethod:_,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:M,rawExtraFieldNTFS:W,rawExtraFieldUnix:P,rawExtraFieldAES:O,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:L,rawComment:Z,version:H,versionMadeBy:u,lastModDate:B,lastAccessDate:ee,creationDate:te,rawExtraField:xe,zip64:Se,zip64UncompressedSize:Ue,zip64CompressedSize:ve,zip64Offset:Ce,zip64DiskNumberStart:Ie,password:ne,rawPassword:ae,level:ye,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:pe,keepOrder:de,useUnicodeFileNames:me,dataDescriptor:ze,dataDescriptorSignature:we,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:be,passThrough:se,encrypted:!!(ne&&ln(ne)||ae&&ln(ae))||se&&Ne,signature:c[Lr],compressionMethod:ge,uncompressedSize:ke,offset:e.offset-_e,diskNumberStart:Ae,uid:g,gid:b,setuid:x,setgid:E,sticky:R,unixMode:z,msdosAttributesRaw:k,msdosAttributes:D,unixExternalUpper:U})),We=(({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=cn(n),r&&(a=4,nn(s,0,W))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Me=ln(Oe.localHeaderArray,We.dataDescriptorArray);let Le;Re=Me+Fe,e.options[rs]&&(Re+=Re+64),e.pendingEntriesSize+=Re;try{Le=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:w,signal:h}=o,{headerInfo:m}=i,g=e.options[rs],b=t.from(c.values()).pop();let z,S,x,E,R,k,D,_={};c.set(s,_);try{let t;u&&(t=b&&b.lock,_.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&w||g?(k=l,await A()):(k=new F,k.size=0,z=!0,e.bufferedWrites++,await lr(l)),await lr(k);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);nn(cn(t),0,O),await Qs(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=cn(s),i=64-(t+ln(s))%64;4>i&&(i+=64);const o=new p(i),c=cn(o);sn(c,0,6534),sn(c,2,i-2);const l=s;r.localHeaderArray=s=new p(ln(l)+i),on(s,l),on(s,o,ln(l)),a=cn(s),sn(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:C,localHeaderArray:N}=m;z||(await t,await T(S));const{diskNumber:W}=l;R=!0,_.diskNumberStart=W,z?D=new d(k.readable).blob():await Qs(k,N),_=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:f,headerView:p,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:_,lastAccessDate:A,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:O,zip64CompressedSize:W,zip64Offset:M,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:Y,onprogress:G,onend:X,signal:J,encryptionStrength:Q,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe,useCompressionStream:we,passThrough:he}=c,me={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:_,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:fe,msdosAttributes:pe};let{signature:ge,uncompressedSize:ye}=c,be=0;he||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:pt,level:C,rawPassword:v,password:U,encryptionStrength:Q,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!he,compressed:g&&!he,encrypted:m&&!he,useWebWorkers:j,useCompressionStream:we,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:Y,onprogress:G,onend:X}};try{const e=await Ut({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,he||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:f}=n;d&&!o||e===$||(nn(l,10,e),c&&nn(u,f,e)),i?c&&(an(u,f+4,a(t)),an(u,f+12,a(r))):(nn(l,14,t),nn(l,18,r),c&&(nn(u,f+4,t),nn(u,f+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await Qs(t,D),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:A,encrypted:m,zipCrypto:P,size:u+be,compressionMethod:b,version:y,headerArray:f,headerView:p,signature:ge,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:O,zip64CompressedSize:W,zip64Offset:M,zip64DiskNumberStart:L}),me})(n,k,_,i,e.config,o);const{zip64:M}=_;if(R=!1,c.set(s,_),_.filename=s,z){const[r]=await y.all([D,k.writable.getWriter().close(),t]);await A(),E=!0,_.diskNumberStart=l.diskNumber,_.offset=e.offset-l.diskOffset,M&&Js(_),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||nn(d,14,n),l||nn(d,18,i),c||nn(d,22,o)),r&&s){let t=X+ln(e)+4;c&&(an(d,t,a(o)),t+=8),l&&(an(d,t,a(i)),t+=8)}})(_,C,o),await T(S),await Qs(l,N),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=k.size,E=!1}else _.offset=e.offset-U,M&&Js(_);if(_.offset>v&&!M)throw new f(Zs);return e.offset+=_.size,_}catch(t){if(z&&E||!z&&R){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=k.size:e.offset=k.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function A(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function T(e){ln(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Qs(e,new p))}})(e,s,n,{headerInfo:Oe,dataDescriptorInfo:We,metadataSize:Me},c)}finally{e.pendingEntriesSize-=Re}return r.assign(Le,{name:s,comment:P,extraField:Ee}),new Kr(Le)})(c,e,s,n),l.add(h),await h}catch(t){throw c.filenames.delete(e),t}finally{l.delete(h);const e=Ys.shift();e?e():js--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new p,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:f}=e;let w;if(l){w=new p(9);const e=cn(w);sn(e,0,V),sn(e,2,5),rn(e,4,d),nn(e,5,i.floor(f.getTime()/1e3))}else w=new p;e.rawExtraFieldExtendedTimestamp=w,u+=46+ln(t,n,r,s,a,o,w,c)}const m=new p(u),g=cn(m);await lr(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:f,rawExtraField:p,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:_,uncompressedSize:A,compressedSize:T}=r,U=ln(i,c,l,u,f,p);nn(g,d,M),sn(g,d+4,h),x||nn(z,18,A),E||nn(z,14,T),on(m,b,d+6);let I=d+X;if(sn(g,I,U),I+=2,sn(g,I,ln(w)),I+=2,sn(g,I,S&&F?C:_),I+=2,sn(g,I,k),I+=2,D&&nn(g,I,D),I+=4,nn(g,I,S&&R?v:t),I+=4,on(m,a,I),I+=ln(a),on(m,i,I),I+=ln(i),on(m,c,I),I+=ln(c),on(m,l,I),I+=ln(l),on(m,u,I),I+=ln(u),on(m,f,I),I+=ln(f),on(m,p,I),I+=ln(p),on(m,w,I),I+=ln(w),d-y>o.availableSize&&(o.availableSize=0,await Qs(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Kr(r))}catch{}}await Qs(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=en(e,s,Ur);if(w>v||u>v||h>C||b>C){if(!1===S)throw new f(Zs);S=!0}const x=new p(S?98:H),E=cn(x);d=0,S&&(nn(E,0,P),an(E,4,a(44)),sn(E,12,45),sn(E,14,45),nn(E,16,b),nn(E,20,l),an(E,24,a(h)),an(E,32,a(h)),an(E,40,a(u)),an(E,48,a(w)),nn(E,56,Z),an(E,64,a(w)+a(u)),nn(E,72,b+1),en(e,s,es,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),nn(E,d,L),sn(E,d+4,b),sn(E,d+6,l),sn(E,d+8,h),sn(E,d+10,h),nn(E,d+12,u),nn(E,d+16,w);const F=ln(r);if(F){if(F>C)throw new f(Is);sn(E,d+20,F)}await Qs(o,x),F&&await Qs(o,r)})(this,e,r),en(this,r,$r)||await o.getWriter().close(),n.getData?n.getData():o}}function Xs(e){if(e===$)return new p;{const t=new p(4);cn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Js({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=cn(l);let u=4;n&&(an(d,u,a(t)),u+=8),i&&(an(d,u,a(e)),u+=8),o&&(an(d,u,a(r)),u+=8),c&&nn(d,u,s)}async function Qs(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=ln(t),await s.write(t)}finally{s.releaseLock()}}function $s(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function en(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function tn(e){return e+5*(i.floor(e/16383)+1)}function rn(e,t,r){e.setUint8(t,r)}function sn(e,t,r){e.setUint16(t,r,!0)}function nn(e,t,r){e.setUint32(t,r,!0)}function an(e,t,r){e.setBigUint64(t,r,!0)}function on(e,t,r){e.set(t,r)}function cn(e){return new m(e.buffer)}function ln(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function dn({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new p(26),u=cn(d);sn(u,0,e),sn(u,2,t),sn(u,4,r);const f=new h(1),w=cn(f);sn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),sn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=f[0];return nn(u,6,m),(o||n!==$)&&nn(u,14,o?v:n),(c||s!==$)&&nn(u,18,c?v:s),sn(u,22,ln(i)),sn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function un(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{oe({baseURI:void 0===S&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===S?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",S.baseURI).href})}catch{}e.BlobReader=Vt,e.BlobWriter=Bt,e.Data64URIReader=class extends Zt{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 Ht{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=ss,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=is,e.ERR_DUPLICATED_NAME=Cs,e.ERR_ENCRYPTED=ls,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=as,e.ERR_EOCDR_NOT_FOUND=ns,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=cs,e.ERR_HTTP_RANGE=It,e.ERR_INVALID_COMMENT=Is,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ms,e.ERR_INVALID_ENTRY_COMMENT=Ns,e.ERR_INVALID_ENTRY_NAME=Os,e.ERR_INVALID_EXTRAFIELD_DATA=Ps,e.ERR_INVALID_EXTRAFIELD_TYPE=Ls,e.ERR_INVALID_PASSWORD=be,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=at,e.ERR_INVALID_VERSION=Ws,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=os,e.ERR_OVERLAPPING_ENTRY=ps,e.ERR_SPLIT_ZIP_FILE=fs,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Hs,e.ERR_UNSUPPORTED_COMPRESSION=us,e.ERR_UNSUPPORTED_ENCRYPTION=ds,e.ERR_UNSUPPORTED_FORMAT=Zs,e.ERR_ZIP_NOT_EMPTY=Vs,e.HttpRangeReader=class extends nr{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=nr,e.Reader=Zt,e.SplitDataReader=ar,e.SplitDataWriter=ir,e.TextReader=class extends Vt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Bt{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 Zt{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 Ht{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=Ht,e.ZipReader=ys,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new ys(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Gs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Gs(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=oe,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(_t.map(e=>(vt(e),e.terminate())))}});
@@ -2682,7 +2682,8 @@
2682
2682
  */
2683
2683
 
2684
2684
 
2685
- let WEB_WORKERS_SUPPORTED;
2685
+ let webWorkerSupported, webWorkerURI, webWorkerOptions;
2686
+ let transferStreamsSupported = true;
2686
2687
  let initModule = () => { };
2687
2688
 
2688
2689
  class CodecWorker {
@@ -2726,11 +2727,11 @@
2726
2727
  onTaskFinished(workerData);
2727
2728
  }
2728
2729
  });
2729
- if (WEB_WORKERS_SUPPORTED === UNDEFINED_VALUE) {
2730
+ if (webWorkerSupported === UNDEFINED_VALUE) {
2730
2731
  // deno-lint-ignore valid-typeof
2731
- WEB_WORKERS_SUPPORTED = typeof Worker != UNDEFINED_TYPE;
2732
+ webWorkerSupported = typeof Worker != UNDEFINED_TYPE;
2732
2733
  }
2733
- return (useWebWorkers && WEB_WORKERS_SUPPORTED ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2734
+ return (useWebWorkers && webWorkerSupported ? createWebWorkerInterface : createWorkerInterface)(workerData, config);
2734
2735
  }
2735
2736
  }
2736
2737
 
@@ -2787,7 +2788,7 @@
2787
2788
  try {
2788
2789
  worker = getWebWorker(workerData.workerURI, baseURI, workerData);
2789
2790
  } catch {
2790
- WEB_WORKERS_SUPPORTED = false;
2791
+ webWorkerSupported = false;
2791
2792
  return createWorkerInterface(workerData, config);
2792
2793
  }
2793
2794
  Object.assign(workerData, {
@@ -2889,28 +2890,60 @@
2889
2890
  return { writable, closed };
2890
2891
  }
2891
2892
 
2892
- let transferStreamsSupported = true;
2893
-
2894
- function getWebWorker(url, baseURI, workerData) {
2895
- const workerOptions = { type: "module" };
2896
- let scriptUrl, worker;
2897
- // deno-lint-ignore valid-typeof
2898
- if (typeof url == FUNCTION_TYPE) {
2899
- url = url();
2893
+ function getWebWorker(url, baseURI, workerData, isModuleType = false, useBlobURI = true) {
2894
+ let worker, resolvedURI, resolvedOptions;
2895
+ if (isModuleType) {
2896
+ resolvedOptions = { type: "module" };
2900
2897
  }
2901
- if (url.startsWith("data:") || url.startsWith("blob:")) {
2902
- try {
2903
- worker = new Worker(url);
2904
- } catch {
2905
- worker = new Worker(url, workerOptions);
2898
+ if (webWorkerURI === UNDEFINED_VALUE) {
2899
+ // deno-lint-ignore valid-typeof
2900
+ const isFunctionURI = typeof url == FUNCTION_TYPE;
2901
+ if (isFunctionURI) {
2902
+ resolvedURI = url(useBlobURI);
2903
+ } else {
2904
+ resolvedURI = url;
2906
2905
  }
2907
- } else {
2908
- try {
2909
- scriptUrl = new URL(url, baseURI);
2910
- } catch {
2911
- scriptUrl = url;
2906
+ const isDataURI = resolvedURI.startsWith("data:");
2907
+ const isBlobURI = resolvedURI.startsWith("blob:");
2908
+ if (isDataURI || isBlobURI) {
2909
+ try {
2910
+ worker = new Worker(resolvedURI, resolvedOptions);
2911
+ } catch (error) {
2912
+ if (isBlobURI) {
2913
+ try {
2914
+ URL.revokeObjectURL(resolvedURI);
2915
+ } catch {
2916
+ // ignored
2917
+ }
2918
+ }
2919
+ if (isFunctionURI && isBlobURI) {
2920
+ return getWebWorker(url, baseURI, workerData, isModuleType, false);
2921
+ } else if (!isModuleType) {
2922
+ return getWebWorker(url, baseURI, workerData, true, false);
2923
+ } else {
2924
+ throw error;
2925
+ }
2926
+ }
2927
+ } else {
2928
+ try {
2929
+ resolvedURI = new URL(resolvedURI, baseURI);
2930
+ } catch {
2931
+ // ignored
2932
+ }
2933
+ try {
2934
+ worker = new Worker(resolvedURI, resolvedOptions);
2935
+ } catch (error) {
2936
+ if (!isModuleType) {
2937
+ return getWebWorker(url, baseURI, workerData, true, useBlobURI);
2938
+ } else {
2939
+ throw error;
2940
+ }
2941
+ }
2912
2942
  }
2913
- worker = new Worker(scriptUrl, workerOptions);
2943
+ webWorkerURI = resolvedURI;
2944
+ webWorkerOptions = resolvedOptions;
2945
+ } else {
2946
+ worker = new Worker(webWorkerURI, webWorkerOptions);
2914
2947
  }
2915
2948
  worker.addEventListener(MESSAGE_EVENT_TYPE, event => onMessage(event, workerData));
2916
2949
  return worker;