@zip.js/zip.js 2.8.19 → 2.8.21

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.19",
3
+ "version": "2.8.21",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -1967,6 +1967,11 @@
1967
1967
 
1968
1968
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
1969
1969
  let transferStreamsSupported = true;
1970
+ try {
1971
+ transferStreamsSupported = typeof structuredClone == FUNCTION_TYPE && structuredClone(new DOMException("", "AbortError")).code !== UNDEFINED_VALUE;
1972
+ } catch {
1973
+ // ignored
1974
+ }
1970
1975
  let initModule = () => { };
1971
1976
 
1972
1977
  class CodecWorker {
@@ -2153,23 +2158,8 @@
2153
2158
  }
2154
2159
 
2155
2160
  function watchClosedStream(writableSource) {
2156
- let resolveStreamClosed;
2157
- const closed = new Promise(resolve => resolveStreamClosed = resolve);
2158
- const writable = new WritableStream({
2159
- async write(chunk) {
2160
- const writer = writableSource.getWriter();
2161
- await writer.ready;
2162
- await writer.write(chunk);
2163
- writer.releaseLock();
2164
- },
2165
- close() {
2166
- resolveStreamClosed();
2167
- },
2168
- abort(reason) {
2169
- const writer = writableSource.getWriter();
2170
- return writer.abort(reason);
2171
- }
2172
- });
2161
+ const { writable, readable } = new TransformStream();
2162
+ const closed = readable.pipeTo(writableSource, { preventClose: true });
2173
2163
  return { writable, closed };
2174
2164
  }
2175
2165
 
@@ -3458,6 +3448,7 @@
3458
3448
  const OPTION_KEEP_ORDER = "keepOrder";
3459
3449
  const OPTION_LEVEL = "level";
3460
3450
  const OPTION_BUFFERED_WRITE = "bufferedWrite";
3451
+ const OPTION_CREATE_TEMP_STREAM = "createTempStream";
3461
3452
  const OPTION_DATA_DESCRIPTOR_SIGNATURE = "dataDescriptorSignature";
3462
3453
  const OPTION_USE_UNICODE_FILE_NAMES = "useUnicodeFileNames";
3463
3454
  const OPTION_DATA_DESCRIPTOR = "dataDescriptor";
@@ -4722,7 +4713,9 @@
4722
4713
  const extendedTimestamp = getOptionValue(zipWriter, options, OPTION_EXTENDED_TIMESTAMP, true);
4723
4714
  const keepOrder = getOptionValue(zipWriter, options, OPTION_KEEP_ORDER, true);
4724
4715
  const useWebWorkers = getOptionValue(zipWriter, options, OPTION_USE_WEB_WORKERS);
4716
+ const transferStreams = getOptionValue(zipWriter, options, OPTION_TRANSFER_STREAMS, true);
4725
4717
  const bufferedWrite = getOptionValue(zipWriter, options, OPTION_BUFFERED_WRITE);
4718
+ const createTempStream = getOptionValue(zipWriter, options, OPTION_CREATE_TEMP_STREAM);
4726
4719
  const dataDescriptorSignature = getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR_SIGNATURE, false);
4727
4720
  const signal = getOptionValue(zipWriter, options, OPTION_SIGNAL);
4728
4721
  const useUnicodeFileNames = getOptionValue(zipWriter, options, OPTION_USE_UNICODE_FILE_NAMES, true);
@@ -4828,10 +4821,12 @@
4828
4821
  rawPassword,
4829
4822
  level,
4830
4823
  useWebWorkers,
4824
+ transferStreams,
4831
4825
  encryptionStrength,
4832
4826
  extendedTimestamp,
4833
4827
  zipCrypto,
4834
4828
  bufferedWrite,
4829
+ createTempStream,
4835
4830
  keepOrder,
4836
4831
  useUnicodeFileNames,
4837
4832
  dataDescriptor,
@@ -4908,7 +4903,11 @@
4908
4903
  requestLockCurrentFileEntry();
4909
4904
  }
4910
4905
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4911
- fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4906
+ if (options.createTempStream) {
4907
+ fileWriter = await options.createTempStream();
4908
+ } else {
4909
+ fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4910
+ }
4912
4911
  fileWriter.size = 0;
4913
4912
  bufferedWrite = true;
4914
4913
  zipWriter.bufferedWrites++;
@@ -5073,6 +5072,7 @@
5073
5072
  rawComment,
5074
5073
  rawExtraField,
5075
5074
  useWebWorkers,
5075
+ transferStreams,
5076
5076
  onstart,
5077
5077
  onprogress,
5078
5078
  onend,
@@ -5153,7 +5153,7 @@
5153
5153
  encrypted: encrypted && !passThrough,
5154
5154
  useWebWorkers,
5155
5155
  useCompressionStream,
5156
- transferStreams: false
5156
+ transferStreams
5157
5157
  },
5158
5158
  config,
5159
5159
  streamOptions: { signal, size, onstart, onprogress, onend }
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:f,Uint8Array:p,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder: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,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function";let se=2;try{typeof A!=te&&A.hardwareConcurrency&&(se=A.hardwareConcurrency)}catch{}const ne={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=te&&D,DecompressionStream:typeof _!=te&&_},ae=r.assign({},ne);function ie(){return ae}function oe(e){return i.max(e.chunkSize,64)}function ce(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:f}=e;le("baseURI",t),le("wasmURI",f),le("workerURI",u),le("chunkSize",r),le("maxWorkers",s),le("terminateWorkerTimeout",n),le("useCompressionStream",a),le("useWebWorkers",i),le("CompressionStream",o),le("DecompressionStream",c),le("CompressionStreamZlib",l),le("DecompressionStreamZlib",d)}function le(e,t){t!==$&&(ae[e]=t)}const de=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;de[e]=t}class ue{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^de[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class fe extends F{constructor(){let e;const t=new ue;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 pe(e){if(typeof b==te){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 we={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=we.getPartial(r);return 32===s?e.concat(t):we._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+we.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=we.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=we.getPartial(n);return s.push(we.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},he={bytes:{fromBits(e){const t=we.bitLength(e)/8,r=new 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(we.partial(8*(3&r),s)),t}}},me=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=he.utf8String.toBits(e));const r=t._buffer=we.concat(t._buffer,e),s=t._length,n=t._length=s+we.bitLength(e);if(n>9007199254740991)throw new 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=we.concat(t,[we.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},ge={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ye={importKey:e=>new ye.hmacSha1(he.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new 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=we;for(t=he.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=me,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new f("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},be=typeof x!=te&&typeof x.getRandomValues==re,ze="Invalid password",Se="Invalid signature",xe="zipjs-abort-check-password";function Ee(e){return be?x.getRandomValues(e):ge.getRandomValues(e)}const Fe=16,Re={name:"PBKDF2"},ke=r.assign({hash:{name:"HMAC"}},Re),De=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Re),_e=["deriveBits"],Ae=[8,12,16],Te=[16,24,32],Ue=10,ve=[0,0,0,0],Ce=typeof x!=te,Ie=Ce&&x.subtle,Ne=Ce&&typeof Ie!=te,We=he.bytes,Me=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}},Oe=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=we.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return we.clamp(t,n)}},Le=ye.hmacSha1;let Pe=Ce&&Ne&&typeof Ie.importKey==re,Ze=Ce&&Ne&&typeof Ie.deriveBits==re;class He extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),signed:s,strength:n-1,pending:new 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 qe(e,t,r,Ye(s,0,Ae[t])),a=Ye(s,Ae[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new f(ze)})(r,n,s,Ye(e,0,Ae[n]+2)),e=Ye(e,Ae[n]+2),a?t.error(new f(xe)):i()):await o;const c=new p(e.length-Ue-(e.length-Ue)%Fe);t.enqueue(Be(r,e,c,0,Ue,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Ue),o=Ye(n,n.length-Ue);let c=new p;if(i.length){const e=Xe(We,i);s.update(e);const t=r.update(e);c=Ge(We,t)}if(t){const e=Ye(Ge(We,s.digest()),0,Ue);for(let t=0;Ue>t;t++)if(e[t]!=o[t])throw new f(Se)}e.enqueue(c)}}})}}class Ve extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),strength:s-1,pending:new 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=Ee(new p(Ae[t]));return je(s,await qe(e,t,r,s))})(r,n,s),a()):await i;const c=new p(o.length+e.length-e.length%Fe);c.set(o,0),t.enqueue(Be(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new p;if(s.length){const e=t.update(Xe(We,s));r.update(e),i=Ge(We,e)}n.signature=Ge(We,r.digest()).slice(0,Ue),e.enqueue(je(i,n.signature))}}}),n=this}}function Be(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=je(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new p(t)).set(r,0)}return e})(r,l-l%Fe)),d=0;l-Fe>=d;d+=Fe){const e=Xe(We,Ye(t,d,d+Fe));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ge(We,n),d+s)}return e.pending=Ye(t,d),r}async function qe(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Pe)return ye.importKey(t);try{return await Ie.importKey("raw",t,r,!1,n)}catch{return Pe=!1,ye.importKey(t)}})(0,n,ke,0,_e),o=await(async(e,t,r)=>{if(!Ze)return ye.pbkdf2(t,e.salt,De.iterations,r);try{return await Ie.deriveBits(e,t,r)}catch{return Ze=!1,ye.pbkdf2(t,e.salt,De.iterations,r)}})(r.assign({salt:a},De),i,8*(2*Te[s]+2)),c=new p(o),l=Xe(We,Ye(c,0,Te[s])),d=Xe(We,Ye(c,Te[s],2*Te[s])),u=Ye(c,2*Te[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Oe(new Me(l),t.from(ve)),hmac:new Le(d)}),u}function Ke(e,t){return t===$?pe(e):t}function je(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 Ye(e,t,r){return e.subarray(t,r)}function Ge(e,t){return e.fromBits(t)}function Xe(e,t){return e.toBits(t)}class Je extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;if(r.password){const t=$e(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new f(ze);e=e.subarray(12)}s?t.error(new f(xe)):t.enqueue($e(r,e))}})}}class Qe extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Ee(new p(12));t[11]=r.passwordVerification,s=new p(e.length+t.length),s.set(et(r,t),0),n=12}else s=new p(e.length),n=0;s.set(et(r,e),n),t.enqueue(s)}})}}function $e(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,r[s]);return r}function et(e,t){const r=new p(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,t[s]);return r}function tt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new ue(s[0]),crcKey2:new ue(s[2])});for(let r=0;r<t.length;r++)rt(e,t.charCodeAt(r))}function rt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=at(i.imul(at(s+nt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function st(e){const t=2|e.keys[2];return nt(i.imul(t,1^t)>>>8)}function nt(e){return 255&e}function at(e){return 4294967295&e}const it="Invalid uncompressed size";class ot extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,f,p=super.readable;a&&!o||!c||(u=new fe,p=ut(p,u)),n&&(p=dt(p,i,{level:l,chunkSize:t},s,r,s)),a&&(o?p=ut(p,new Qe(e)):(f=new Ve(e),p=ut(p,f))),lt(d,p,()=>{let e;a&&!o&&(e=f.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ct extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,p,w=super.readable;a&&(n?w=ut(w,new Je(e)):(p=new He(e),w=ut(w,p))),c&&(w=dt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new fe,w=ut(w,u)),lt(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new f(Se)}})}}function lt(e,t,s){t=ut(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function dt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=ut(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=ut(e,new n(o,r));else{if(!a)throw s;e=ut(e,new a(o,r))}}return e}function ut(e,t){return e.pipeThrough(t)}const ft="data",pt="close",wt="deflate",ht="inflate";class mt extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(wt)?a=ot:n.startsWith(ht)&&(a=ct),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new f(it)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class gt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new 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)}})}}const yt={type:"module"};let bt,zt,St,xt=!0;class Et{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new gt(a.chunkSize)).pipeThrough(new Ft(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),bt===$&&(bt=typeof T!=te),(o&&bt?Dt:kt)(e,a)}}class Ft extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Rt(e,r)},async transform(e,s){n+=e.length,t&&await Rt(t,n,r),s.enqueue(e)},async flush(){s&&await Rt(s,n)}})}}async function Rt(e,...t){try{await e(...t)}catch{}}function kt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new mt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Dt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==re&&(a=a());try{i=_t(e.workerURI,s,e)}catch{return bt=!1,kt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{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=At({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 _t(e,t,s,n,a=!0){let i,o,c;if(zt===$){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=yt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return _t(e,t,s,n,!1);if(n)throw a;return _t(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=yt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return _t(e,t,s,!1,a)}}zt=o,St=c}else i=new T(zt,St);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();At({type:ft,value:e,done:r,messageId:a},t)}s==ft&&(await l.ready,await l.write(new p(n)),At({type:"ack",messageId:a},t)),s==pt&&h(null,i)}}catch(o){At({type:pt,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function At(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&xt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Tt=[];const Ut=[];let vt=0;async function Ct(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers: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=Tt.find(e=>!e.busy);if(r)return It(r),new Et(r,e,t,w);if(Tt.length<f){const r={indexWorker:vt};return vt++,Tt.push(r),new Et(r,e,t,w)}return new y(r=>Ut.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Ut.length){const[{resolve:t,stream:r,workerOptions:s}]=Ut.splice(0,1);t(new Et(e,r,s,w))}else e.worker?(It(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Tt=Tt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Tt=Tt.filter(t=>t!=e)}}function It(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Nt="HTTP error ",Wt="HTTP Range not supported",Mt="Range",Ot="GET",Lt="bytes",Pt=65536,Zt="writable";class Ht{constructor(){this.size=0}init(){this.initialized=!0}}class Vt extends Ht{get readable(){const e=this,{chunkSize:t=Pt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await fr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Bt extends Ht{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new f("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Zt,{get:()=>t})}writeUint8Array(){}}class qt extends Vt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new p(a)}}class Kt extends Ht{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Zt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class jt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,nr,er),super.init()}readUint8Array(e,t){return Jt(this,e,t,nr,er)}}class Yt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,ar,tr),super.init()}readUint8Array(e,t){return Jt(this,e,t,ar,tr)}}function Gt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Xt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Ot,e,Qt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Lt))throw new f(Wt);{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 sr(e,t,r):e.size=a}}else await sr(e,t,r)}async function Jt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ot,e,Qt(e,t,r));if(206!=n.status)throw new f(Wt);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 Qt(e,t=0,s=1){return r.assign({},$t(e),{[Mt]:Lt+"="+(0>t?t:t+"-"+(t+s-1))})}function $t({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function er(e){await rr(e,nr)}async function tr(e){await rr(e,ar)}async function rr(e,t){const r=await t(Ot,e,$t(e));e.data=new p(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function sr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,$t(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function nr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new f(Wt):new f(Nt+(a.statusText||a.status))}function ar(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new f(Wt):new f(Nt+(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 ir extends Vt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Yt(e,t):new jt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class or extends Vt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new p(t);const o=await fr(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 fr(l,c,t)}else a=new p;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class cr extends Ht{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new f("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ur(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Zt,{get:()=>o})}}class lr{constructor(e){return t.isArray(e)&&(e=new or(e)),e instanceof R&&(e={readable:e}),e}}class dr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new cr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof cr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function ur(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function fr(e,t,r,s){return e.readUint8Array(t,r,s)}const pr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function wr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=pr[e[r]];return t}})(e):new z(t).decode(e)}const hr="filename",mr="rawFilename",gr="comment",yr="rawComment",br="uncompressedSize",zr="compressedSize",Sr="offset",xr="diskNumberStart",Er="lastModDate",Fr="rawLastModDate",Rr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",_r="internalFileAttributes",Ar="externalFileAttributes",Tr="msdosAttributesRaw",Ur="msdosAttributes",vr="msDosCompatible",Cr="zip64",Ir="encrypted",Nr="version",Wr="versionMadeBy",Mr="zipCrypto",Or="directory",Lr="executable",Pr="compressionMethod",Zr="signature",Hr="extraField",Vr="unixMode",Br="setuid",qr="setgid",Kr="sticky",jr=[hr,mr,br,zr,Er,Fr,gr,yr,Rr,kr,Dr,Sr,xr,_r,Ar,Tr,Ur,vr,Cr,Ir,Nr,Wr,Mr,Or,Lr,Pr,Zr,Hr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Vr,Br,qr,Kr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yr{constructor(e){jr.forEach(t=>this[t]=e[t])}}const Gr="password",Xr="rawPassword",Jr="passThrough",Qr="signal",$r="useWebWorkers",es="useCompressionStream",ts="preventClose",rs="supportZip64SplitFile",ss="offset",ns="usdz",as="File format is not recognized",is="End of central directory not found",os="End of Zip64 central directory locator not found",cs="Central directory header not found",ls="Local file header not found",ds="Zip64 extra field not found",us="File contains encrypted entry",fs="Encryption method not supported",ps="Compression method not supported",ws="Split zip file",hs="Overlapping entry found",ms="utf-8",gs="cp437",ys=[[br,v],[zr,v],[Sr,v],[xr,C]],bs={[C]:{getValue:vs,bytes:4},[v]:{getValue:Cs,bytes:8}};class zs{constructor(e,t={}){r.assign(this,{reader:new lr(e),options:t,config:ie(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ur(s),s.size!==$&&s.readUint8Array||(s=new qt(await new d(s.readable).blob()),await ur(s)),s.size<H)throw new f(as);s.chunkSize=oe(n);const a=await(async(e,t,r)=>{const s=new p(4);var n;return n=t,Is(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await fr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw vs(Is(await fr(s,0,4)))==W?new f(ws):new f(is);const o=Is(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,w=Us(o,20),h=u+H+w;let m=Us(o,4);const g=s.lastDiskNumber||0;let b=Us(o,6),z=Us(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=Is(await fr(s,a.offset-20,20));if(vs(e,0)==Z){l=Cs(e,8);let t=await fr(s,l,56,-1),r=Is(t);const n=a.offset-20-56;if(vs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await fr(s,l,56,-1),r=Is(t)}if(vs(r,0)!=P)throw new f(os);m==C&&(m=vs(r,16)),b==C&&(b=vs(r,20)),z==C&&(z=Cs(r,32)),c==v&&(c=Cs(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new f(ws);if(0>l)throw new f(as);let E=0,R=await fr(s,l,c,b),k=Is(R);if(c){const e=a.offset-c;if(vs(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await fr(s,l,c,b),k=Is(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await fr(s,l,c,b),k=Is(R)),0>l||l>=s.size)throw new f(as);const _=Ds(t,e,"filenameEncoding"),A=Ds(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new Ss(s,n,t.options);if(vs(k,E)!=O)throw new f(cs);xs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,p=u+o.extraFieldLength,w=Us(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=Us(k,E+32),D=p+b,T=R.subarray(p,D),U=c,v=c,N=vs(k,E+38),W=N&I,M={readOnly:!!(1&W),hidden:!!(2&W),system:!!(4&W),directory:!!(16&W),archive:!!(32&W)},L=vs(k,E+42)+S,P=Ds(t,e,"decodeText")||wr,Z=U?ms:_||gs,H=v?ms:A||gs;let V=P(g,Z);V===$&&(V=wr(g,Z));let B=P(T,H);B===$&&(B=wr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:Us(k,E+34),internalFileAttributes:Us(k,E+36),externalFileAttributes:N,msdosAttributesRaw:W,msdosAttributes:M,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,p),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Es(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&M.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Yr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Yr(o))}catch{}yield ne}const T=Ds(t,e,"extractPrependedData"),U=Ds(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await fr(s,0,x):new p),t.comment=w?await fr(s,u+H,w):new p,U&&(t.appendedData=h<s.size?await fr(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 Ss{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=Is(await fr(i,o,X,c));let E=Ds(a,n,Gr),F=Ds(a,n,Xr);const R=Ds(a,n,Jr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new f(ps);if(0!=u&&8!=u&&9!=u&&!R)throw new f(ps);if(vs(x,0)!=N)throw new f(ls);xs(S,x,4);const{extraFieldLength:D,filenameLength:_,lastAccessDate:A,creationDate:T}=S;S.rawExtraField=D?await fr(i,o+X+_,D,c):new p,Es(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(fs);if(!E&&!F)throw new f(us)}const C=o+X+_+D,W=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:W});const L=Ds(a,n,Qr),P=Ds(a,n,"checkPasswordOnly");let Z=Ds(a,n,"checkOverlappingEntry");const H=Ds(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=Ds(a,n,es);K&&(j=!1);const Y={options:{codecType:ht,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:Ds(a,n,"checkSignature")&&!R,passwordVerification:v&&(z?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:Ds(a,n,$r),useCompressionStream:j,transferStreams:Ds(a,n,"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 p=0;if(c&&(p=l?20:12),p){const r=await fr(e,o+a,p+4,s);if(vs(Is(r),0)==M){const e=vs(Is(r),4);let s,o;l?(s=Cs(Is(r),8),o=Cs(Is(r),16)):(s=vs(Is(r),8),o=vs(Is(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(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(hs);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new dr(e),await ur(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ct({readable:O,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new f(it)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=xe)throw t}finally{Ds(a,n,ts)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function xs(e,t,s){const n=e.rawBitFlag=Us(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Us(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:_s(i),filenameLength:Us(t,s+22),extraFieldLength:Us(t,s+24)})}function Es(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Is(new p(i));let u=0;try{for(;u<i.length;){const e=Us(d,u),t=Us(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Us(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Is(e.data),s=ys.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=bs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new f(ds)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Fs(m,hr,mr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Fs(g,gr,yr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Is(e.data),a=Ts(n,4);r.assign(e,{vendorVersion:Ts(n,0),vendorId:Ts(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Us(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=Is(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Us(s,a),r=Us(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=Is(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:As(a),lastAccessDate:As(i),creationDate:As(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)Rs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(Rs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=Is(e.data),n=Ts(s,0),a=[],i=[];r?(1&~n||(a.push(Er),i.push(Fr)),2&~n||(a.push(Rr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Er),i.push(Fr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Fs(e,t,s,n,a){const i=Is(e.data),o=new ue;o.append(a[s]);const c=Is(new p(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:Ts(i,0),[t]:wr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Rs(e,t,s){try{const n=Is(new p(e.data));let a=0;const i=Ts(n,a++),o=Ts(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=ks(c),d=Ts(n,a++),u=e.data.subarray(a,a+d);a+=d;const f=ks(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:f,unixMode:w}),l!==$&&(t.uid=l),f!==$&&(t.gid=f),w!==$&&(t.unixMode=w)}catch{}}function ks(e){const t=new p(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ds(e,t,r){return t[r]===$?e.options[r]:t[r]}function _s(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 As(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Ts(e,t){return e.getUint8(t)}function Us(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Cs(e,t){return n(e.getBigUint64(t,!0))}function Is(e){return new m(e.buffer)}const Ns="File already exists",Ws="Zip file comment exceeds 64KB",Ms="File entry comment exceeds 64KB",Os="File entry name exceeds 64KB",Ls="Version exceeds 65535",Ps="The strength must equal 1, 2, or 3",Zs="Extra field type exceeds 65535",Hs="Extra field data exceeds 64KB",Vs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Bs="Undefined uncompressed size",qs="Zip file not empty",Ks=new p([7,0,2,0,65,69,3,0,0]),js="infozip",Ys="unix";let Gs=0;const Xs=[];class Js{constructor(e,t={}){const s=(e=new dr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ie(),files:new c,filenames:new l,offset:t[ss]===$?e.size||e.writable.size||0:t[ss],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new f(qs);e=new lr(e);const t=new zs(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=un(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:_,headerView:A}=fn({version:t,bitFlag:pn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-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:d}=c;let u;Gs<d.maxWorkers?Gs++:await new y(e=>Xs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new f(Ns);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=rn(e,c,vr),d=rn(e,c,Wr,l?20:768);const u=rn(e,c,Lr),h=rn(e,c,"uid"),g=rn(e,c,"gid");let b=rn(e,c,Vr);const z=rn(e,c,"unixExtraFieldType");let S=rn(e,c,Br),x=rn(e,c,qr),E=rn(e,c,Kr);if(h!==$&&(0>h||h>v))throw new f("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>v))throw new f("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new f("Invalid UNIX mode (must be integer 0..65535)");if(z!==$&&z!==js&&z!==Ys)throw new f("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=rn(e,c,Tr),k=rn(e,c,Ur);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||z?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new f("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new f("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new f(Ls);let _=rn(e,c,Ar,0);!c[Or]&&s.endsWith(G)&&(c[Or]=!0);const A=rn(e,c,Or);let T;A?(s.endsWith(G)||(s+=G),0===_&&(_=16,l||(_|=16877<<16))):l||0!==_||(_=u?493<<16:27525120),l||(T=_>>16&C,b=b===$?T:b&C,S?b|=K:S=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),A&&(b|=q),_=(b&C)<<16|_&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(_=_&v|R&I);const U=rn(e,c,"encodeText",pe);let O=U(s);if(O===$&&(O=pe(s)),un(O)>C)throw new f(Os);const L=c[gr]||"";let P=U(L);if(P===$&&(P=pe(L)),un(P)>C)throw new f(Ms);const Z=rn(e,c,Nr,20);if(Z>C)throw new f(Ls);const H=rn(e,c,Er,new o),B=rn(e,c,Rr),te=rn(e,c,kr),re=rn(e,c,_r,0),se=rn(e,c,Jr);let ne,ae;se||(ne=rn(e,c,Gr),ae=rn(e,c,Xr));const ie=rn(e,c,"encryptionStrength",3),ce=rn(e,c,Mr),le=rn(e,c,"extendedTimestamp",!0),de=rn(e,c,"keepOrder",!0),ue=rn(e,c,$r),fe=rn(e,c,"bufferedWrite"),we=rn(e,c,"dataDescriptorSignature",!1),he=rn(e,c,Qr),me=rn(e,c,"useUnicodeFileNames",!0),ge=rn(e,c,Pr);let ye=rn(e,c,"level"),be=rn(e,c,es),ze=rn(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=rn(e,c,Cr);if(!ce&&(ne!==$||ae!==$)&&(1>ie||ie>3))throw new f(Ps);let xe=new p;const Ee=c[Hr];if(Ee){let e=0,t=0;Ee.forEach(t=>e+=4+un(t)),xe=new p(e),Ee.forEach((e,r)=>{if(r>C)throw new f(Zs);if(un(e)>C)throw new f(Hs);ln(xe,new w([r]),t),ln(xe,new w([un(e)]),t+2),ln(xe,e,t+4),t+=4+un(e)})}let Fe=0,Re=0,ke=0;if(se&&(ke=c[br],ke===$))throw new f(Bs);const De=!0===Se;n&&(n=new lr(n),await ur(n),se?(c.uncompressedSize=ke,Fe=sn(ke)):n.size===$?(ze=!0,(Se||Se===$)&&(Se=!0,ke=Fe=4294967296)):(c.uncompressedSize=ke=n.size,Fe=sn(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=rn(e,c,rs,!0)&&De||Ae+i.ceil(e.pendingEntriesSize/Te)>C;if(Ce||Ue||ve||Ie){if(!1===Se||!de)throw new f(Vs);Se=!0}Se=Se||!1;const Ne=rn(e,c,Ir),We=(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=dn(T);U=new p(t);const s=dn(U);if(an(r,0,1),an(r,2,un(T)-4),an(s,0,1),an(s,2,un(U)-4),I){const e=dn(T),t=dn(U);let r=4,s=4;z&&(cn(e,r,a(F)),r+=8,cn(t,s,a(F)),s+=8),S&&v&&(cn(e,r,a(F)),r+=8,cn(t,s,a(F)),s+=8),x&&(cn(e,r,a(R)),r+=8),E&&(on(e,r,k),r+=4),4==s&&(U=new p)}}else T=new p,U=new p;let W,M,O,L,P;if(b&&!l){W=new p(un(Ks)+2);const e=dn(W);an(e,0,39169),ln(W,Ks,2),nn(e,8,h)}else W=new p;if(g){O=new p(9+(s?4:0)+(n?4:0));const e=dn(O);an(e,0,V),an(e,2,un(O)-4),L=1+(s?2:0)+(n?4:0),nn(e,4,L);let t=5;on(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(on(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&on(e,t,i.floor(n.getTime()/1e3));try{M=new p(36);const e=dn(M),t=tn(r);an(e,0,10),an(e,2,32),an(e,8,1),an(e,10,24),cn(e,12,t),cn(e,20,tn(s)||t),cn(e,28,tn(n)||t)}catch{M=new p}}else M=O=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=Qs(t),c=Qs(r);let l=new p;if(o==Ys&&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=dn(P);an(u,0,o==js?30837:30805),an(u,2,d),nn(u,4,1),nn(u,5,e.length);let f=6;ln(P,e,f),f+=e.length,nn(u,f,c.length),f++,ln(P,c,f),f+=c.length,ln(P,l,f)}}catch{P=new p}_===$&&(_=A?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,W[9]=_,_=99);const Z=I?un(U):0,H=Z+un(W,O,M,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=fn({version:D,bitFlag:pn(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+un(t)+H),re=dn(te);return on(re,0,N),ln(te,B,4),ln(te,t,ee),ee+=un(t),I&&ln(te,U,ee),ee+=Z,ln(te,W,ee),ee+=un(W),ln(te,O,ee),ee+=un(O),ln(te,M,ee),ee+=un(M),ln(te,P,ee),ee+=un(P),ln(te,w,ee),u&&(on(re,18,0),on(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:O,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:te,rawExtraField:xe,zip64:Se,zip64UncompressedSize:Ue,zip64CompressedSize:ve,zip64Offset:Ce,zip64DiskNumberStart:Ie,password:ne,rawPassword:ae,level:ye,useWebWorkers:ue,encryptionStrength:ie,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:fe,keepOrder:de,useUnicodeFileNames:me,dataDescriptor:ze,dataDescriptorSignature:we,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:_,externalFileAttributes:_,useCompressionStream:be,passThrough:se,encrypted:!!(ne&&un(ne)||ae&&un(ae))||se&&Ne,signature:c[Zr],compressionMethod:ge,uncompressedSize:ke,offset:e.offset-_e,diskNumberStart:Ae,uid:h,gid:g,setuid:S,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),Me=(({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=dn(n),r&&(a=4,on(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Oe=un(We.localHeaderArray,Me.dataDescriptorArray);let Le;Re=Oe+Fe,e.options[ns]&&(Re+=Re+64),e.pendingEntriesSize+=Re;try{Le=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:w}=o,{headerInfo:h}=i,m=e.options[ns],g=t.from(c.values()).pop();let b,z,S,x,E,R,k={};c.set(s,k);try{let t;d&&(t=g&&g.lock,k.lock=new y(e=>S=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&d)&&u||m?(R=l,await D()):(R=new F($,$,{highWaterMark:ee}),R.size=0,b=!0,e.bufferedWrites++,await ur(l)),await ur(R);const{writable:z,diskOffset:A}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new p(4);on(dn(t),0,W),await en(l,t),e.offset+=4}m&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=dn(s),i=64-(t+un(s))%64;4>i&&(i+=64);const o=new p(i),c=dn(o);an(c,0,6534),an(c,2,i-2);const l=s;r.localHeaderArray=s=new p(un(l)+i),ln(s,l),ln(s,o,un(l)),a=dn(s),an(a,28,n+i),e.metadataSize+=i})(i,e.offset-A);const{localHeaderView:T,localHeaderArray:U}=h;b||(await t,await _(z));const{diskNumber:C}=l;k.diskNumberStart=C,b||(E=!0,await en(R,U)),k=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:W,zip64CompressedSize:M,zip64Offset:O,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:ie,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:ie,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=oe(o);const r=e.readable,s=e.size,n={options:{codecType:wt,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 Ct({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===$||(on(l,10,e),c&&on(u,f,e)),i?c&&(cn(u,f+4,a(t)),cn(u,f+12,a(r))):(on(l,14,t),on(l,18,r),c&&(on(u,f+4,t),on(u,f+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),Z&&await en(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:W,zip64CompressedSize:M,zip64Offset:O,zip64DiskNumberStart:L}),me})(n,R,k,i,e.config,o);const{zip64:N}=k;if(b||(E=!1),c.set(s,k),k.filename=s,b?(await y.all([R.writable.getWriter().close(),t]),await D(),x=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,N&&$s(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||on(d,14,n),l||on(d,18,i),c||on(d,22,o)),r&&s){let t=X+un(e)+4;c&&(cn(d,t,a(o)),t+=8),l&&(cn(d,t,a(i)),t+=8)}})(k,T,o),await _(z),await en(l,U),await R.readable.pipeTo(z,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=R.size,x=!1):(k.offset=e.offset-A,N&&$s(k)),k.offset>v&&!N)throw new f(Vs);return e.offset+=k.size,k}catch(t){if(x||E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}b?e.offset+=R.size:e.offset=R.size}throw c.delete(s),t}finally{b&&e.bufferedWrites--,S&&S(),z&&z()}async function D(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>z=()=>{e.writerLocked=!1,t()}),await t}async function _(e){un(h.localHeaderArray)>l.availableSize&&(l.availableSize=0,await en(e,new p))}})(e,s,n,{headerInfo:We,dataDescriptorInfo:Me,metadataSize:Oe},c)}finally{e.pendingEntriesSize-=Re}return r.assign(Le,{name:s,comment:L,extraField:Ee}),new Yr(Le)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Xs.shift();e?e():Gs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new 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=dn(w);an(e,0,V),an(e,2,5),nn(e,4,d),on(e,5,i.floor(f.getTime()/1e3))}else w=new p;e.rawExtraFieldExtendedTimestamp=w,u+=46+un(t,n,r,s,a,o,w,c)}const m=new p(u),g=dn(m);await ur(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix: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=un(i,c,l,u,f,p);on(g,d,O),an(g,d+4,h),x||on(z,18,A),E||on(z,14,T),ln(m,b,d+6);let I=d+X;if(an(g,I,U),I+=2,an(g,I,un(w)),I+=2,an(g,I,S&&F?C:_),I+=2,an(g,I,k),I+=2,D&&on(g,I,D),I+=4,on(g,I,S&&R?v:t),I+=4,ln(m,a,I),I+=un(a),ln(m,i,I),I+=un(i),ln(m,c,I),I+=un(c),ln(m,l,I),I+=un(l),ln(m,u,I),I+=un(u),ln(m,f,I),I+=un(f),ln(m,p,I),I+=un(p),ln(m,w,I),I+=un(w),d-y>o.availableSize&&(o.availableSize=0,await en(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Yr(r))}catch{}}await en(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=rn(e,s,Cr);if(w>v||u>v||h>C||b>C){if(!1===S)throw new f(Vs);S=!0}const x=new p(S?98:H),E=dn(x);d=0,S&&(on(E,0,P),cn(E,4,a(44)),an(E,12,45),an(E,14,45),on(E,16,b),on(E,20,l),cn(E,24,a(h)),cn(E,32,a(h)),cn(E,40,a(u)),cn(E,48,a(w)),on(E,56,Z),cn(E,64,a(w)+a(u)),on(E,72,b+1),rn(e,s,rs,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),on(E,d,L),an(E,d+4,b),an(E,d+6,l),an(E,d+8,h),an(E,d+10,h),on(E,d+12,u),on(E,d+16,w);const F=un(r);if(F){if(F>C)throw new f(Ws);an(E,d+20,F)}await en(o,x),F&&await en(o,r)})(this,e,r),rn(this,r,ts)||await o.getWriter().close(),n.getData?n.getData():o}}function Qs(e){if(e===$)return new p;{const t=new p(4);dn(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function $s({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=dn(l);let u=4;n&&(cn(d,u,a(t)),u+=8),i&&(cn(d,u,a(e)),u+=8),o&&(cn(d,u,a(r)),u+=8),c&&on(d,u,s)}async function en(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=un(t),await s.write(t)}finally{s.releaseLock()}}function tn(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function rn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function sn(e){return e+5*(i.floor(e/16383)+1)}function nn(e,t,r){e.setUint8(t,r)}function an(e,t,r){e.setUint16(t,r,!0)}function on(e,t,r){e.setUint32(t,r,!0)}function cn(e,t,r){e.setBigUint64(t,r,!0)}function ln(e,t,r){e.set(t,r)}function dn(e){return new m(e.buffer)}function un(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function fn({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=dn(d);an(u,0,e),an(u,2,t),an(u,4,r);const f=new h(1),w=dn(f);an(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),an(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=f[0];return on(u,6,m),(o||n!==$)&&on(u,14,o?v:n),(c||s!==$)&&on(u,18,c?v:s),an(u,22,un(i)),an(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function pn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{ce({baseURI:void 0===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=qt,e.BlobWriter=Kt,e.Data64URIReader=class extends Vt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new 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 Bt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=as,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=cs,e.ERR_DUPLICATED_NAME=Ns,e.ERR_ENCRYPTED=us,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=os,e.ERR_EOCDR_NOT_FOUND=is,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ds,e.ERR_HTTP_RANGE=Wt,e.ERR_INVALID_COMMENT=Ws,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ps,e.ERR_INVALID_ENTRY_COMMENT=Ms,e.ERR_INVALID_ENTRY_NAME=Os,e.ERR_INVALID_EXTRAFIELD_DATA=Hs,e.ERR_INVALID_EXTRAFIELD_TYPE=Zs,e.ERR_INVALID_PASSWORD=ze,e.ERR_INVALID_SIGNATURE=Se,e.ERR_INVALID_UNCOMPRESSED_SIZE=it,e.ERR_INVALID_VERSION=Ls,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ls,e.ERR_OVERLAPPING_ENTRY=hs,e.ERR_SPLIT_ZIP_FILE=ws,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Bs,e.ERR_UNSUPPORTED_COMPRESSION=ps,e.ERR_UNSUPPORTED_ENCRYPTION=fs,e.ERR_UNSUPPORTED_FORMAT=Vs,e.ERR_ZIP_NOT_EMPTY=qs,e.HttpRangeReader=class extends ir{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ir,e.Reader=Vt,e.SplitDataReader=or,e.SplitDataWriter=cr,e.TextReader=class extends qt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Kt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Vt{constructor(e){super(),e=new 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 Bt{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=Bt,e.ZipReader=zs,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new zs(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Js,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Js(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=ce,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Tt.map(e=>(It(e),e.terminate())))}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error: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:A,navigator:_,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,M=134695760,O=M,W=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function";let se=2;try{typeof _!=te&&_.hardwareConcurrency&&(se=_.hardwareConcurrency)}catch{}const ne={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=te&&D,DecompressionStream:typeof A!=te&&A},ae=r.assign({},ne);function ie(){return ae}function oe(e){return i.max(e.chunkSize,64)}function ce(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;le("baseURI",t),le("wasmURI",p),le("workerURI",u),le("chunkSize",r),le("maxWorkers",s),le("terminateWorkerTimeout",n),le("useCompressionStream",a),le("useWebWorkers",i),le("CompressionStream",o),le("DecompressionStream",c),le("CompressionStreamZlib",l),le("DecompressionStreamZlib",d)}function le(e,t){t!==$&&(ae[e]=t)}const de=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;de[e]=t}class ue{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^de[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class pe extends F{constructor(){let e;const t=new ue;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const we={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=we.getPartial(r);return 32===s?e.concat(t):we._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+we.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=we.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=we.getPartial(n);return s.push(we.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},he={bytes:{fromBits(e){const t=we.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(we.partial(8*(3&r),s)),t}}},me=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=he.utf8String.toBits(e));const r=t._buffer=we.concat(t._buffer,e),s=t._length,n=t._length=s+we.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=we.concat(t,[we.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},ge={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ye={importKey:e=>new ye.hmacSha1(he.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const w=we;for(t=he.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=me,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},be=typeof x!=te&&typeof x.getRandomValues==re,ze="Invalid password",Se="Invalid signature",xe="zipjs-abort-check-password";function Ee(e){return be?x.getRandomValues(e):ge.getRandomValues(e)}const Fe=16,Re={name:"PBKDF2"},ke=r.assign({hash:{name:"HMAC"}},Re),De=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Re),Ae=["deriveBits"],_e=[8,12,16],Te=[16,24,32],Ue=10,ve=[0,0,0,0],Ce=typeof x!=te,Ie=Ce&&x.subtle,Ne=Ce&&typeof Ie!=te,Me=he.bytes,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 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}},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=we.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return we.clamp(t,n)}},Le=ye.hmacSha1;let Pe=Ce&&Ne&&typeof Ie.importKey==re,Ze=Ce&&Ne&&typeof Ie.deriveBits==re;class He extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await qe(e,t,r,Ye(s,0,_e[t])),a=Ye(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(ze)})(r,n,s,Ye(e,0,_e[n]+2)),e=Ye(e,_e[n]+2),a?t.error(new p(xe)):i()):await o;const c=new f(e.length-Ue-(e.length-Ue)%Fe);t.enqueue(Be(r,e,c,0,Ue,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Ue),o=Ye(n,n.length-Ue);let c=new f;if(i.length){const e=Xe(Me,i);s.update(e);const t=r.update(e);c=Ge(Me,t)}if(t){const e=Ye(Ge(Me,s.digest()),0,Ue);for(let t=0;Ue>t;t++)if(e[t]!=o[t])throw new p(Se)}e.enqueue(c)}}})}}class Ve extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=Ee(new f(_e[t]));return je(s,await qe(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%Fe);c.set(o,0),t.enqueue(Be(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(Xe(Me,s));r.update(e),i=Ge(Me,e)}n.signature=Ge(Me,r.digest()).slice(0,Ue),e.enqueue(je(i,n.signature))}}}),n=this}}function Be(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=je(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%Fe)),d=0;l-Fe>=d;d+=Fe){const e=Xe(Me,Ye(t,d,d+Fe));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ge(Me,n),d+s)}return e.pending=Ye(t,d),r}async function qe(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Pe)return ye.importKey(t);try{return await Ie.importKey("raw",t,r,!1,n)}catch{return Pe=!1,ye.importKey(t)}})(0,n,ke,0,Ae),o=await(async(e,t,r)=>{if(!Ze)return ye.pbkdf2(t,e.salt,De.iterations,r);try{return await Ie.deriveBits(e,t,r)}catch{return Ze=!1,ye.pbkdf2(t,e.salt,De.iterations,r)}})(r.assign({salt:a},De),i,8*(2*Te[s]+2)),c=new f(o),l=Xe(Me,Ye(c,0,Te[s])),d=Xe(Me,Ye(c,Te[s],2*Te[s])),u=Ye(c,2*Te[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new We(new Oe(l),t.from(ve)),hmac:new Le(d)}),u}function Ke(e,t){return t===$?fe(e):t}function je(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ye(e,t,r){return e.subarray(t,r)}function Ge(e,t){return e.fromBits(t)}function Xe(e,t){return e.toBits(t)}class Je extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;if(r.password){const t=$e(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(ze);e=e.subarray(12)}s?t.error(new p(xe)):t.enqueue($e(r,e))}})}}class Qe extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Ee(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(et(r,t),0),n=12}else s=new f(e.length),n=0;s.set(et(r,e),n),t.enqueue(s)}})}}function $e(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,r[s]);return r}function et(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,t[s]);return r}function tt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new ue(s[0]),crcKey2:new ue(s[2])});for(let r=0;r<t.length;r++)rt(e,t.charCodeAt(r))}function rt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=at(i.imul(at(s+nt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function st(e){const t=2|e.keys[2];return nt(i.imul(t,1^t)>>>8)}function nt(e){return 255&e}function at(e){return 4294967295&e}const it="Invalid uncompressed size";class ot extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new pe,f=ut(f,u)),n&&(f=dt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=ut(f,new Qe(e)):(p=new Ve(e),f=ut(f,p))),lt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ct extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,w=super.readable;a&&(n?w=ut(w,new Je(e)):(f=new He(e),w=ut(w,f))),c&&(w=dt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new pe,w=ut(w,u)),lt(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(Se)}})}}function lt(e,t,s){t=ut(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function dt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=ut(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=ut(e,new n(o,r));else{if(!a)throw s;e=ut(e,new a(o,r))}}return e}function ut(e,t){return e.pipeThrough(t)}const pt="data",ft="close",wt="deflate",ht="inflate";class mt extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(wt)?a=ot:n.startsWith(ht)&&(a=ct),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new p(it)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class gt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const yt={type:"module"};let bt,zt,St,xt=!0;try{xt=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Et{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new gt(a.chunkSize)).pipeThrough(new Ft(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),bt===$&&(bt=typeof T!=te),(o&&bt?Dt:kt)(e,a)}}class Ft extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Rt(e,r)},async transform(e,s){n+=e.length,t&&await Rt(t,n,r),s.enqueue(e)},async flush(){s&&await Rt(s,n)}})}}async function Rt(e,...t){try{await e(...t)}catch{}}function kt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new mt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Dt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==re&&(a=a());try{i=At(e.workerURI,s,e)}catch{return bt=!1,kt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{const{writable:t,readable:r}=new F;return{writable:t,closed:r.pipeTo(e,{preventClose:!0})}})(e.writable),d=_t({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function At(e,t,s,n,a=!0){let i,o,c;if(zt===$){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=yt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return At(e,t,s,n,!1);if(n)throw a;return At(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=yt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return At(e,t,s,!1,a)}}zt=o,St=c}else i=new T(zt,St);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();_t({type:pt,value:e,done:r,messageId:a},t)}s==pt&&(await l.ready,await l.write(new f(n)),_t({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){_t({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function _t(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&xt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Tt=[];const Ut=[];let vt=0;async function Ct(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=Tt.find(e=>!e.busy);if(r)return It(r),new Et(r,e,t,w);if(Tt.length<p){const r={indexWorker:vt};return vt++,Tt.push(r),new Et(r,e,t,w)}return new y(r=>Ut.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Ut.length){const[{resolve:t,stream:r,workerOptions:s}]=Ut.splice(0,1);t(new Et(e,r,s,w))}else e.worker?(It(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Tt=Tt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Tt=Tt.filter(t=>t!=e)}}function It(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Nt="HTTP error ",Mt="HTTP Range not supported",Ot="Range",Wt="GET",Lt="bytes",Pt=65536,Zt="writable";class Ht{constructor(){this.size=0}init(){this.initialized=!0}}class Vt extends Ht{get readable(){const e=this,{chunkSize:t=Pt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await pr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Bt extends Ht{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Zt,{get:()=>t})}writeUint8Array(){}}class qt extends Vt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class Kt extends Ht{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Zt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class jt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,nr,er),super.init()}readUint8Array(e,t){return Jt(this,e,t,nr,er)}}class Yt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,ar,tr),super.init()}readUint8Array(e,t){return Jt(this,e,t,ar,tr)}}function Gt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Xt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Wt,e,Qt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Lt))throw new p(Mt);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await sr(e,t,r):e.size=a}}else await sr(e,t,r)}async function Jt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Wt,e,Qt(e,t,r));if(206!=n.status)throw new p(Mt);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function Qt(e,t=0,s=1){return r.assign({},$t(e),{[Ot]:Lt+"="+(0>t?t:t+"-"+(t+s-1))})}function $t({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function er(e){await rr(e,nr)}async function tr(e){await rr(e,ar)}async function rr(e,t){const r=await t(Wt,e,$t(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function sr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,$t(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function nr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(Mt):new p(Nt+(a.statusText||a.status))}function ar(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(Mt):new p(Nt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class ir extends Vt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Yt(e,t):new jt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class or extends Vt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await pr(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await pr(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class cr extends Ht{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ur(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Zt,{get:()=>o})}}class lr{constructor(e){return t.isArray(e)&&(e=new or(e)),e instanceof R&&(e={readable:e}),e}}class dr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new cr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof cr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function ur(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function pr(e,t,r,s){return e.readUint8Array(t,r,s)}const fr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function wr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=fr[e[r]];return t}})(e):new z(t).decode(e)}const hr="filename",mr="rawFilename",gr="comment",yr="rawComment",br="uncompressedSize",zr="compressedSize",Sr="offset",xr="diskNumberStart",Er="lastModDate",Fr="rawLastModDate",Rr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",Ar="internalFileAttributes",_r="externalFileAttributes",Tr="msdosAttributesRaw",Ur="msdosAttributes",vr="msDosCompatible",Cr="zip64",Ir="encrypted",Nr="version",Mr="versionMadeBy",Or="zipCrypto",Wr="directory",Lr="executable",Pr="compressionMethod",Zr="signature",Hr="extraField",Vr="unixMode",Br="setuid",qr="setgid",Kr="sticky",jr=[hr,mr,br,zr,Er,Fr,gr,yr,Rr,kr,Dr,Sr,xr,Ar,_r,Tr,Ur,vr,Cr,Ir,Nr,Mr,Or,Wr,Lr,Pr,Zr,Hr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Vr,Br,qr,Kr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yr{constructor(e){jr.forEach(t=>this[t]=e[t])}}const Gr="password",Xr="rawPassword",Jr="passThrough",Qr="signal",$r="useWebWorkers",es="useCompressionStream",ts="transferStreams",rs="preventClose",ss="supportZip64SplitFile",ns="offset",as="usdz",is="File format is not recognized",os="End of central directory not found",cs="End of Zip64 central directory locator not found",ls="Central directory header not found",ds="Local file header not found",us="Zip64 extra field not found",ps="File contains encrypted entry",fs="Encryption method not supported",ws="Compression method not supported",hs="Split zip file",ms="Overlapping entry found",gs="utf-8",ys="cp437",bs=[[br,v],[zr,v],[Sr,v],[xr,C]],zs={[C]:{getValue:Cs,bytes:4},[v]:{getValue:Is,bytes:8}};class Ss{constructor(e,t={}){r.assign(this,{reader:new lr(e),options:t,config:ie(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ur(s),s.size!==$&&s.readUint8Array||(s=new qt(await new d(s.readable).blob()),await ur(s)),s.size<H)throw new p(is);s.chunkSize=oe(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,Ns(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await pr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw Cs(Ns(await pr(s,0,4)))==M?new p(hs):new p(os);const o=Ns(a);let c=Cs(o,12),l=Cs(o,16);const u=a.offset,w=vs(o,20),h=u+H+w;let m=vs(o,4);const g=s.lastDiskNumber||0;let b=vs(o,6),z=vs(o,8),S=0,x=0;if(l==v||c==v||z==C||b==C){const e=Ns(await pr(s,a.offset-20,20));if(Cs(e,0)==Z){l=Is(e,8);let t=await pr(s,l,56,-1),r=Ns(t);const n=a.offset-20-56;if(Cs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await pr(s,l,56,-1),r=Ns(t)}if(Cs(r,0)!=P)throw new p(cs);m==C&&(m=Cs(r,16)),b==C&&(b=Cs(r,20)),z==C&&(z=Is(r,32)),c==v&&(c=Is(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(hs);if(0>l)throw new p(is);let E=0,R=await pr(s,l,c,b),k=Ns(R);if(c){const e=a.offset-c;if(Cs(k,E)!=W&&l!=e){const t=l;l=e,l>t&&(S+=l-t),R=await pr(s,l,c,b),k=Ns(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await pr(s,l,c,b),k=Ns(R)),0>l||l>=s.size)throw new p(is);const A=As(t,e,"filenameEncoding"),_=As(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new xs(s,n,t.options);if(Cs(k,E)!=W)throw new p(ls);Es(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=vs(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=vs(k,E+32),D=f+b,T=R.subarray(f,D),U=c,v=c,N=Cs(k,E+38),M=N&I,O={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},L=Cs(k,E+42)+S,P=As(t,e,"decodeText")||wr,Z=U?gs:A||ys,H=v?gs:_||ys;let V=P(g,Z);V===$&&(V=wr(g,Z));let B=P(T,H);B===$&&(B=wr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:vs(k,E+34),internalFileAttributes:vs(k,E+36),externalFileAttributes:N,msdosAttributesRaw:M,msdosAttributes:O,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,f),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Fs(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&&O.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Yr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Yr(o))}catch{}yield ne}const T=As(t,e,"extractPrependedData"),U=As(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await pr(s,0,x):new f),t.comment=w?await pr(s,u+H,w):new f,U&&(t.appendedData=h<s.size?await pr(s,h,s.size-h):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class xs{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=Ns(await pr(i,o,X,c));let E=As(a,n,Gr),F=As(a,n,Xr);const R=As(a,n,Jr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new p(ws);if(0!=u&&8!=u&&9!=u&&!R)throw new p(ws);if(Cs(x,0)!=N)throw new p(ds);Es(S,x,4);const{extraFieldLength:D,filenameLength:A,lastAccessDate:_,creationDate:T}=S;S.rawExtraField=D?await pr(i,o+X+A,D,c):new f,Fs(a,S,x,4,!0),r.assign(t,{lastAccessDate:_,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(fs);if(!E&&!F)throw new p(ps)}const C=o+X+A+D,M=b,W=i.readable;r.assign(W,{diskNumberStart:c,offset:C,size:M});const L=As(a,n,Qr),P=As(a,n,"checkPasswordOnly");let Z=As(a,n,"checkOverlappingEntry");const H=As(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=As(a,n,es);K&&(j=!1);const Y={options:{codecType:ht,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:As(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:As(a,n,$r),useCompressionStream:j,transferStreams:As(a,n,ts),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:M,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await pr(e,o+a,f+4,s);if(Cs(Ns(r),0)==O){const e=Cs(Ns(r),4);let s,o;l?(s=Is(Ns(r),8),o=Is(Ns(r),16)):(s=Cs(Ns(r),8),o=Cs(Ns(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(ms);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 dr(e),await ur(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ct({readable:W,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new p(it)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=xe)throw t}finally{As(a,n,rs)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function Es(e,t,s){const n=e.rawBitFlag=vs(t,s+2),a=!(1&~n),i=Cs(t,s+6);r.assign(e,{encrypted:a,version:vs(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:_s(i),filenameLength:vs(t,s+22),extraFieldLength:vs(t,s+24)})}function Fs(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Ns(new f(i));let u=0;try{for(;u<i.length;){const e=vs(d,u),t=vs(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=vs(s,n+4);r.assign(t,{signature:Cs(s,n+10),compressedSize:Cs(s,n+14),uncompressedSize:Cs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Ns(e.data),s=bs.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=zs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p(us)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Rs(m,hr,mr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Rs(g,gr,yr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Ns(e.data),a=Us(n,4);r.assign(e,{vendorVersion:Us(n,0),vendorId:Us(n,2),strength:a,originalCompressionMethod:s,compressionMethod:vs(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=Ns(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=vs(s,a),r=vs(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=Ns(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:Ts(a),lastAccessDate:Ts(i),creationDate:Ts(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)ks(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(ks(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(V);S&&(((e,t,r)=>{const s=Ns(e.data),n=Us(s,0),a=[],i=[];r?(1&~n||(a.push(Er),i.push(Fr)),2&~n||(a.push(Rr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Er),i.push(Fr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Cs(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 Rs(e,t,s,n,a){const i=Ns(e.data),o=new ue;o.append(a[s]);const c=Ns(new f(4));c.setUint32(0,o.get(),!0);const l=Cs(i,1);r.assign(e,{version:Us(i,0),[t]:wr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Cs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ks(e,t,s){try{const n=Ns(new f(e.data));let a=0;const i=Us(n,a++),o=Us(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Ds(c),d=Us(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=Ds(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 Ds(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function As(e,t,r){return t[r]===$?e.options[r]:t[r]}function _s(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 Ts(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Us(e,t){return e.getUint8(t)}function vs(e,t){return e.getUint16(t,!0)}function Cs(e,t){return e.getUint32(t,!0)}function Is(e,t){return n(e.getBigUint64(t,!0))}function Ns(e){return new m(e.buffer)}const Ms="File already exists",Os="Zip file comment exceeds 64KB",Ws="File entry comment exceeds 64KB",Ls="File entry name exceeds 64KB",Ps="Version exceeds 65535",Zs="The strength must equal 1, 2, or 3",Hs="Extra field type exceeds 65535",Vs="Extra field data exceeds 64KB",Bs="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",qs="Undefined uncompressed size",Ks="Zip file not empty",js=new f([7,0,2,0,65,69,3,0,0]),Ys="infozip",Gs="unix";let Xs=0;const Js=[];class Qs{constructor(e,t={}){const s=(e=new dr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ie(),files:new c,filenames:new l,offset:t[ns]===$?e.size||e.writable.size||0:t[ns],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(Ks);e=new lr(e);const t=new Ss(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix: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=pn(m,g,y,b,z,S),k=h&&d>v,D=h&&u>v,{headerArray:A,headerView:_}=fn({version:t,bitFlag:wn(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:A,headerView:_}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;Xs<d.maxWorkers?Xs++:await new y(e=>Js.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ms);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=sn(e,c,vr),d=sn(e,c,Mr,l?20:768);const u=sn(e,c,Lr),h=sn(e,c,"uid"),g=sn(e,c,"gid");let b=sn(e,c,Vr);const z=sn(e,c,"unixExtraFieldType");let S=sn(e,c,Br),x=sn(e,c,qr),E=sn(e,c,Kr);if(h!==$&&(0>h||h>v))throw new p("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>v))throw new p("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(z!==$&&z!==Ys&&z!==Gs)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=sn(e,c,Tr),k=sn(e,c,Ur);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||z?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new p(Ps);let A=sn(e,c,_r,0);!c[Wr]&&s.endsWith(G)&&(c[Wr]=!0);const _=sn(e,c,Wr);let T;_?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=u?493<<16:27525120),l||(T=A>>16&C,b=b===$?T:b&C,S?b|=K:S=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),_&&(b|=q),A=(b&C)<<16|A&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(A=A&v|R&I);const U=sn(e,c,"encodeText",fe);let W=U(s);if(W===$&&(W=fe(s)),pn(W)>C)throw new p(Ls);const L=c[gr]||"";let P=U(L);if(P===$&&(P=fe(L)),pn(P)>C)throw new p(Ws);const Z=sn(e,c,Nr,20);if(Z>C)throw new p(Ps);const H=sn(e,c,Er,new o),B=sn(e,c,Rr),te=sn(e,c,kr),re=sn(e,c,Ar,0),se=sn(e,c,Jr);let ne,ae;se||(ne=sn(e,c,Gr),ae=sn(e,c,Xr));const ie=sn(e,c,"encryptionStrength",3),ce=sn(e,c,Or),le=sn(e,c,"extendedTimestamp",!0),de=sn(e,c,"keepOrder",!0),ue=sn(e,c,$r),pe=sn(e,c,ts,!0),we=sn(e,c,"bufferedWrite"),he=sn(e,c,"createTempStream"),me=sn(e,c,"dataDescriptorSignature",!1),ge=sn(e,c,Qr),ye=sn(e,c,"useUnicodeFileNames",!0),be=sn(e,c,Pr);let ze=sn(e,c,"level"),Se=sn(e,c,es),xe=sn(e,c,"dataDescriptor");we&&xe===$&&(xe=!1),(xe===$||ce)&&(xe=!0),ze!==$&&6!=ze&&(Se=!1),Se||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(ze=0);let Ee=sn(e,c,Cr);if(!ce&&(ne!==$||ae!==$)&&(1>ie||ie>3))throw new p(Zs);let Fe=new f;const Re=c[Hr];if(Re){let e=0,t=0;Re.forEach(t=>e+=4+pn(t)),Fe=new f(e),Re.forEach((e,r)=>{if(r>C)throw new p(Hs);if(pn(e)>C)throw new p(Vs);dn(Fe,new w([r]),t),dn(Fe,new w([pn(e)]),t+2),dn(Fe,e,t+4),t+=4+pn(e)})}let ke=0,De=0,Ae=0;if(se&&(Ae=c[br],Ae===$))throw new p(qs);const _e=!0===Ee;n&&(n=new lr(n),await ur(n),se?(c.uncompressedSize=Ae,ke=nn(Ae)):n.size===$?(xe=!0,(Ee||Ee===$)&&(Ee=!0,Ae=ke=4294967296)):(c.uncompressedSize=Ae=n.size,ke=nn(Ae)));const{diskOffset:Te,diskNumber:Ue,maxSize:ve}=e.writer,Ce=_e||Ae>v,Ie=_e||ke>v,Ne=_e||e.offset+e.pendingEntriesSize-Te>v,Me=sn(e,c,ss,!0)&&_e||Ue+i.ceil(e.pendingEntriesSize/ve)>C;if(Ne||Ce||Ie||Me){if(!1===Ee||!de)throw new p(Bs);Ee=!0}Ee=Ee||!1;const Oe=sn(e,c,Ir),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:A}=e;const _=!p&&(o>0||o===$&&0!==A);let T,U;const v=y||!_,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=un(T);U=new f(t);const s=un(U);if(on(r,0,1),on(r,2,pn(T)-4),on(s,0,1),on(s,2,pn(U)-4),I){const e=un(T),t=un(U);let r=4,s=4;z&&(ln(e,r,a(F)),r+=8,ln(t,s,a(F)),s+=8),S&&v&&(ln(e,r,a(F)),r+=8,ln(t,s,a(F)),s+=8),x&&(ln(e,r,a(R)),r+=8),E&&(cn(e,r,k),r+=4),4==s&&(U=new f)}}else T=new f,U=new f;let M,O,W,L,P;if(b&&!l){M=new f(pn(js)+2);const e=un(M);on(e,0,39169),dn(M,js,2),an(e,8,h)}else M=new f;if(g){W=new f(9+(s?4:0)+(n?4:0));const e=un(W);on(e,0,V),on(e,2,pn(W)-4),L=1+(s?2:0)+(n?4:0),an(e,4,L);let t=5;cn(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(cn(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&cn(e,t,i.floor(n.getTime()/1e3));try{O=new f(36);const e=un(O),t=rn(r);on(e,0,10),on(e,2,32),on(e,8,1),on(e,10,24),ln(e,12,t),ln(e,20,rn(s)||t),ln(e,28,rn(n)||t)}catch{O=new f}}else O=W=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=$s(t),c=$s(r);let l=new f;if(o==Gs&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;P=new f(4+d);const u=un(P);on(u,0,o==Ys?30837:30805),on(u,2,d),an(u,4,1),an(u,5,e.length);let p=6;dn(P,e,p),p+=e.length,an(u,p,c.length),p++,dn(P,c,p),p+=c.length,dn(P,l,p)}}catch{P=new f}A===$&&(A=_?8:0),c&&(D=D>45?D:45),b&&!l&&(D=D>51?D:51,M[9]=A,A=99);const Z=I?pn(U):0,H=Z+pn(M,W,O,P,w),{headerArray:B,headerView:q,rawLastModDate:G}=fn({version:D,bitFlag:wn(o,d,u,b,A),compressionMethod:A,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+pn(t)+H),re=un(te);return cn(re,0,N),dn(te,B,4),dn(te,t,ee),ee+=pn(t),I&&dn(te,U,ee),ee+=Z,dn(te,M,ee),ee+=pn(M),dn(te,W,ee),ee+=pn(W),dn(te,O,ee),ee+=pn(O),dn(te,P,ee),ee+=pn(P),dn(te,w,ee),u&&(cn(re,18,0),cn(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:B,headerView:q,lastModDate:r,rawLastModDate:G,encrypted:b,compressed:_,version:D,compressionMethod:A,extraFieldExtendedTimestampFlag:L,rawExtraFieldZip64:T,localExtraFieldZip64Length:Z,rawExtraFieldExtendedTimestamp:W,rawExtraFieldNTFS:O,rawExtraFieldUnix:P,rawExtraFieldAES:M,extraFieldLength:H}})(c=r.assign({},c,{rawFilename:W,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:te,rawExtraField:Fe,zip64:Ee,zip64UncompressedSize:Ce,zip64CompressedSize:Ie,zip64Offset:Ne,zip64DiskNumberStart:Me,password:ne,rawPassword:ae,level:ze,useWebWorkers:ue,transferStreams:pe,encryptionStrength:ie,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:we,createTempStream:he,keepOrder:de,useUnicodeFileNames:ye,dataDescriptor:xe,dataDescriptorSignature:me,signal:ge,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:Se,passThrough:se,encrypted:!!(ne&&pn(ne)||ae&&pn(ae))||se&&Oe,signature:c[Zr],compressionMethod:be,uncompressedSize:Ae,offset:e.offset-Te,diskNumberStart:Ue,uid:h,gid:g,setuid:S,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),Le=(({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=un(n),r&&(a=4,cn(s,0,O))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Pe=pn(We.localHeaderArray,Le.dataDescriptorArray);let Ze;De=Pe+ke,e.options[as]&&(De+=De+64),e.pendingEntriesSize+=De;try{Ze=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:w}=o,{headerInfo:h}=i,m=e.options[as],g=t.from(c.values()).pop();let b,z,S,x,E,R,k={};c.set(s,k);try{let t;d&&(t=g&&g.lock,k.lock=new y(e=>S=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&d)&&u||m?(R=l,await D()):(R=o.createTempStream?await o.createTempStream():new F($,$,{highWaterMark:ee}),R.size=0,b=!0,e.bufferedWrites++,await ur(l)),await ur(R);const{writable:z,diskOffset:_}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);cn(un(t),0,M),await tn(l,t),e.offset+=4}m&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=un(s),i=64-(t+pn(s))%64;4>i&&(i+=64);const o=new f(i),c=un(o);on(c,0,6534),on(c,2,i-2);const l=s;r.localHeaderArray=s=new f(pn(l)+i),dn(s,l),dn(s,o,pn(l)),a=un(s),on(a,28,n+i),e.metadataSize+=i})(i,e.offset-_);const{localHeaderView:T,localHeaderArray:U}=h;b||(await t,await A(z));const{diskNumber:C}=l;k.diskNumberStart=C,b||(E=!0,await tn(R,U)),k=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:A,lastAccessDate:_,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:M,zip64CompressedSize:O,zip64Offset:W,zip64DiskNumberStart:L,zipCrypto:P,dataDescriptor:Z,directory:H,executable:V,versionMadeBy:B,rawComment:q,rawExtraField:K,useWebWorkers:j,transferStreams:Y,onstart:G,onprogress:X,onend:J,signal:Q,encryptionStrength:ee,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:se,externalFileAttributes:ne,uid:ae,gid:ie,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:pe,msdosAttributesRaw:fe,msdosAttributes:we,useCompressionStream:he,passThrough:me}=c,ge={lock:n,versionMadeBy:B,zip64:N,directory:!!H,executable:!!V,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:K,extendedTimestamp:te,msDosCompatible:re,internalFileAttributes:se,externalFileAttributes:ne,diskNumberStart:s,uid:ae,gid:ie,unixMode:ce,setuid:le,setgid:de,sticky:ue,unixExternalUpper:pe,msdosAttributesRaw:fe,msdosAttributes:we};let{signature:ye,uncompressedSize:be}=c,ze=0;me||(be=0);const{writable:Se}=t;if(e){e.chunkSize=oe(o);const r=e.readable,s=e.size,n={options:{codecType:wt,level:C,rawPassword:v,password:U,encryptionStrength:ee,zipCrypto:m&&P,passwordVerification:m&&P&&h>>8&I,signed:!me,compressed:g&&!me,encrypted:m&&!me,useWebWorkers:j,useCompressionStream:he,transferStreams:Y},config:o,streamOptions:{signal:Q,size:s,onstart:G,onprogress:X,onend:J}};try{const e=await Ct({readable:r,writable:Se},n);ze=e.outputSize,t.size+=ze,me||(be=e.inputSize,ye=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===$||(cn(l,10,e),c&&cn(u,p,e)),i?c&&(ln(u,p+4,a(t)),ln(u,p+12,a(r))):(cn(l,14,t),cn(l,18,r),c&&(cn(u,p+4,t),cn(u,p+8,r)))})({signature:ye,compressedSize:ze,uncompressedSize:be,headerInfo:l,dataDescriptorInfo:d},c),Z&&await tn(t,D),r.assign(ge,{uncompressedSize:be,compressedSize:ze,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:_,encrypted:m,zipCrypto:P,size:u+ze,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ye,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:M,zip64CompressedSize:O,zip64Offset:W,zip64DiskNumberStart:L}),ge})(n,R,k,i,e.config,o);const{zip64:N}=k;if(b||(E=!1),c.set(s,k),k.filename=s,b?(await y.all([R.writable.getWriter().close(),t]),await D(),x=!0,k.diskNumberStart=l.diskNumber,k.offset=e.offset-l.diskOffset,N&&en(k),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||cn(d,14,n),l||cn(d,18,i),c||cn(d,22,o)),r&&s){let t=X+pn(e)+4;c&&(ln(d,t,a(o)),t+=8),l&&(ln(d,t,a(i)),t+=8)}})(k,T,o),await A(z),await tn(l,U),await R.readable.pipeTo(z,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=R.size,x=!1):(k.offset=e.offset-_,N&&en(k)),k.offset>v&&!N)throw new p(Bs);return e.offset+=k.size,k}catch(t){if(x||E){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}b?e.offset+=R.size:e.offset=R.size}throw c.delete(s),t}finally{b&&e.bufferedWrites--,S&&S(),z&&z()}async function D(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>z=()=>{e.writerLocked=!1,t()}),await t}async function A(e){pn(h.localHeaderArray)>l.availableSize&&(l.availableSize=0,await tn(e,new f))}})(e,s,n,{headerInfo:We,dataDescriptorInfo:Le,metadataSize:Pe},c)}finally{e.pendingEntriesSize-=De}return r.assign(Ze,{name:s,comment:L,extraField:Re}),new Yr(Ze)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Js.shift();e?e():Xs--}}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=un(w);on(e,0,V),on(e,2,5),an(e,4,d),cn(e,5,i.floor(p.getTime()/1e3))}else w=new f;e.rawExtraFieldExtendedTimestamp=w,u+=46+pn(t,n,r,s,a,o,w,c)}const m=new f(u),g=un(m);await ur(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:p,rawExtraField:f,rawComment:w,versionMadeBy:h,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:E,zip64DiskNumberStart:F,zip64Offset:R,internalFileAttributes:k,externalFileAttributes:D,diskNumberStart:A,uncompressedSize:_,compressedSize:T}=r,U=pn(i,c,l,u,p,f);cn(g,d,W),on(g,d+4,h),x||cn(z,18,_),E||cn(z,14,T),dn(m,b,d+6);let I=d+X;if(on(g,I,U),I+=2,on(g,I,pn(w)),I+=2,on(g,I,S&&F?C:A),I+=2,on(g,I,k),I+=2,D&&cn(g,I,D),I+=4,cn(g,I,S&&R?v:t),I+=4,dn(m,a,I),I+=pn(a),dn(m,i,I),I+=pn(i),dn(m,c,I),I+=pn(c),dn(m,l,I),I+=pn(l),dn(m,u,I),I+=pn(u),dn(m,p,I),I+=pn(p),dn(m,f,I),I+=pn(f),dn(m,w,I),I+=pn(w),d-y>o.availableSize&&(o.availableSize=0,await tn(o,m.slice(y,d)),y=d),d=I,s.onprogress)try{await s.onprogress(e+1,n.size,new Yr(r))}catch{}}await tn(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=sn(e,s,Cr);if(w>v||u>v||h>C||b>C){if(!1===S)throw new p(Bs);S=!0}const x=new f(S?98:H),E=un(x);d=0,S&&(cn(E,0,P),ln(E,4,a(44)),on(E,12,45),on(E,14,45),cn(E,16,b),cn(E,20,l),ln(E,24,a(h)),ln(E,32,a(h)),ln(E,40,a(u)),ln(E,48,a(w)),cn(E,56,Z),ln(E,64,a(w)+a(u)),cn(E,72,b+1),sn(e,s,ss,!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),cn(E,d,L),on(E,d+4,b),on(E,d+6,l),on(E,d+8,h),on(E,d+10,h),cn(E,d+12,u),cn(E,d+16,w);const F=pn(r);if(F){if(F>C)throw new p(Os);on(E,d+20,F)}await tn(o,x),F&&await tn(o,r)})(this,e,r),sn(this,r,rs)||await o.getWriter().close(),n.getData?n.getData():o}}function $s(e){if(e===$)return new f;{const t=new f(4);un(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function en({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=un(l);let u=4;n&&(ln(d,u,a(t)),u+=8),i&&(ln(d,u,a(e)),u+=8),o&&(ln(d,u,a(r)),u+=8),c&&cn(d,u,s)}async function tn(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=pn(t),await s.write(t)}finally{s.releaseLock()}}function rn(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function sn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function nn(e){return e+5*(i.floor(e/16383)+1)}function an(e,t,r){e.setUint8(t,r)}function on(e,t,r){e.setUint16(t,r,!0)}function cn(e,t,r){e.setUint32(t,r,!0)}function ln(e,t,r){e.setBigUint64(t,r,!0)}function dn(e,t,r){e.set(t,r)}function un(e){return new m(e.buffer)}function pn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function fn({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=un(d);on(u,0,e),on(u,2,t),on(u,4,r);const p=new h(1),w=un(p);on(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),on(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return cn(u,6,m),(o||n!==$)&&cn(u,14,o?v:n),(c||s!==$)&&cn(u,18,c?v:s),on(u,22,pn(i)),on(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function wn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{ce({baseURI:void 0===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=qt,e.BlobWriter=Kt,e.Data64URIReader=class extends Vt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Bt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=is,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=ls,e.ERR_DUPLICATED_NAME=Ms,e.ERR_ENCRYPTED=ps,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=cs,e.ERR_EOCDR_NOT_FOUND=os,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=us,e.ERR_HTTP_RANGE=Mt,e.ERR_INVALID_COMMENT=Os,e.ERR_INVALID_ENCRYPTION_STRENGTH=Zs,e.ERR_INVALID_ENTRY_COMMENT=Ws,e.ERR_INVALID_ENTRY_NAME=Ls,e.ERR_INVALID_EXTRAFIELD_DATA=Vs,e.ERR_INVALID_EXTRAFIELD_TYPE=Hs,e.ERR_INVALID_PASSWORD=ze,e.ERR_INVALID_SIGNATURE=Se,e.ERR_INVALID_UNCOMPRESSED_SIZE=it,e.ERR_INVALID_VERSION=Ps,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ds,e.ERR_OVERLAPPING_ENTRY=ms,e.ERR_SPLIT_ZIP_FILE=hs,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=qs,e.ERR_UNSUPPORTED_COMPRESSION=ws,e.ERR_UNSUPPORTED_ENCRYPTION=fs,e.ERR_UNSUPPORTED_FORMAT=Bs,e.ERR_ZIP_NOT_EMPTY=Ks,e.HttpRangeReader=class extends ir{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ir,e.Reader=Vt,e.SplitDataReader=or,e.SplitDataWriter=cr,e.TextReader=class extends qt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Kt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Vt{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Bt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Bt,e.ZipReader=Ss,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new Ss(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Qs,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Qs(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=ce,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Tt.map(e=>(It(e),e.terminate())))}});
@@ -2687,6 +2687,11 @@
2687
2687
 
2688
2688
  let webWorkerSupported, webWorkerURI, webWorkerOptions;
2689
2689
  let transferStreamsSupported = true;
2690
+ try {
2691
+ transferStreamsSupported = typeof structuredClone == FUNCTION_TYPE && structuredClone(new DOMException("", "AbortError")).code !== UNDEFINED_VALUE;
2692
+ } catch {
2693
+ // ignored
2694
+ }
2690
2695
  let initModule = () => { };
2691
2696
 
2692
2697
  class CodecWorker {
@@ -2873,23 +2878,8 @@
2873
2878
  }
2874
2879
 
2875
2880
  function watchClosedStream(writableSource) {
2876
- let resolveStreamClosed;
2877
- const closed = new Promise(resolve => resolveStreamClosed = resolve);
2878
- const writable = new WritableStream({
2879
- async write(chunk) {
2880
- const writer = writableSource.getWriter();
2881
- await writer.ready;
2882
- await writer.write(chunk);
2883
- writer.releaseLock();
2884
- },
2885
- close() {
2886
- resolveStreamClosed();
2887
- },
2888
- abort(reason) {
2889
- const writer = writableSource.getWriter();
2890
- return writer.abort(reason);
2891
- }
2892
- });
2881
+ const { writable, readable } = new TransformStream();
2882
+ const closed = readable.pipeTo(writableSource, { preventClose: true });
2893
2883
  return { writable, closed };
2894
2884
  }
2895
2885
 
@@ -3407,6 +3397,7 @@
3407
3397
  const OPTION_KEEP_ORDER = "keepOrder";
3408
3398
  const OPTION_LEVEL = "level";
3409
3399
  const OPTION_BUFFERED_WRITE = "bufferedWrite";
3400
+ const OPTION_CREATE_TEMP_STREAM = "createTempStream";
3410
3401
  const OPTION_DATA_DESCRIPTOR_SIGNATURE = "dataDescriptorSignature";
3411
3402
  const OPTION_USE_UNICODE_FILE_NAMES = "useUnicodeFileNames";
3412
3403
  const OPTION_DATA_DESCRIPTOR = "dataDescriptor";
@@ -4616,7 +4607,9 @@
4616
4607
  const extendedTimestamp = getOptionValue(zipWriter, options, OPTION_EXTENDED_TIMESTAMP, true);
4617
4608
  const keepOrder = getOptionValue(zipWriter, options, OPTION_KEEP_ORDER, true);
4618
4609
  const useWebWorkers = getOptionValue(zipWriter, options, OPTION_USE_WEB_WORKERS);
4610
+ const transferStreams = getOptionValue(zipWriter, options, OPTION_TRANSFER_STREAMS, true);
4619
4611
  const bufferedWrite = getOptionValue(zipWriter, options, OPTION_BUFFERED_WRITE);
4612
+ const createTempStream = getOptionValue(zipWriter, options, OPTION_CREATE_TEMP_STREAM);
4620
4613
  const dataDescriptorSignature = getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR_SIGNATURE, false);
4621
4614
  const signal = getOptionValue(zipWriter, options, OPTION_SIGNAL);
4622
4615
  const useUnicodeFileNames = getOptionValue(zipWriter, options, OPTION_USE_UNICODE_FILE_NAMES, true);
@@ -4722,10 +4715,12 @@
4722
4715
  rawPassword,
4723
4716
  level,
4724
4717
  useWebWorkers,
4718
+ transferStreams,
4725
4719
  encryptionStrength,
4726
4720
  extendedTimestamp,
4727
4721
  zipCrypto,
4728
4722
  bufferedWrite,
4723
+ createTempStream,
4729
4724
  keepOrder,
4730
4725
  useUnicodeFileNames,
4731
4726
  dataDescriptor,
@@ -4802,7 +4797,11 @@
4802
4797
  requestLockCurrentFileEntry();
4803
4798
  }
4804
4799
  if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
4805
- fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4800
+ if (options.createTempStream) {
4801
+ fileWriter = await options.createTempStream();
4802
+ } else {
4803
+ fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
4804
+ }
4806
4805
  fileWriter.size = 0;
4807
4806
  bufferedWrite = true;
4808
4807
  zipWriter.bufferedWrites++;
@@ -4967,6 +4966,7 @@
4967
4966
  rawComment,
4968
4967
  rawExtraField,
4969
4968
  useWebWorkers,
4969
+ transferStreams,
4970
4970
  onstart,
4971
4971
  onprogress,
4972
4972
  onend,
@@ -5047,7 +5047,7 @@
5047
5047
  encrypted: encrypted && !passThrough,
5048
5048
  useWebWorkers,
5049
5049
  useCompressionStream,
5050
- transferStreams: false
5050
+ transferStreams
5051
5051
  },
5052
5052
  config,
5053
5053
  streamOptions: { signal, size, onstart, onprogress, onend }