@zip.js/zip.js 2.8.22 → 2.8.23

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.22",
3
+ "version": "2.8.23",
4
4
  "exports": {
5
5
  ".": "./index.js"
6
6
  },
package/dist/zip-core.js CHANGED
@@ -4372,7 +4372,7 @@
4372
4372
  const ERR_INVALID_ENCRYPTION_STRENGTH = "The strength must equal 1, 2, or 3";
4373
4373
  const ERR_INVALID_EXTRAFIELD_TYPE = "Extra field type exceeds 65535";
4374
4374
  const ERR_INVALID_EXTRAFIELD_DATA = "Extra field data exceeds 64KB";
4375
- const ERR_UNSUPPORTED_FORMAT = "Zip64 is not supported (make sure 'keepOrder' is set to 'true')";
4375
+ const ERR_UNSUPPORTED_FORMAT = "Zip64 is not supported (set the 'zip64' option to 'true')";
4376
4376
  const ERR_UNDEFINED_UNCOMPRESSED_SIZE = "Undefined uncompressed size";
4377
4377
  const ERR_ZIP_NOT_EMPTY = "Zip file not empty";
4378
4378
  const ERR_INVALID_UID = "Invalid uid (must be integer 0..2^32-1)";
@@ -4788,14 +4788,11 @@
4788
4788
  maximumCompressedSize = getMaximumCompressedSize(uncompressedSize);
4789
4789
  }
4790
4790
  }
4791
- const { diskOffset, diskNumber, maxSize } = zipWriter.writer;
4791
+ const { diskOffset, diskNumber } = zipWriter.writer;
4792
4792
  const zip64UncompressedSize = zip64Enabled || uncompressedSize > MAX_32_BITS;
4793
4793
  const zip64CompressedSize = zip64Enabled || maximumCompressedSize > MAX_32_BITS;
4794
- const zip64Offset = zip64Enabled || zipWriter.offset + zipWriter.pendingEntriesSize - diskOffset > MAX_32_BITS;
4795
- const supportZip64SplitFile = getOptionValue(zipWriter, options, OPTION_SUPPORT_ZIP64_SPLIT_FILE, true);
4796
- const zip64DiskNumberStart = (supportZip64SplitFile && zip64Enabled) || diskNumber + Math.ceil(zipWriter.pendingEntriesSize / maxSize) > MAX_16_BITS;
4797
- if (zip64Offset || zip64UncompressedSize || zip64CompressedSize || zip64DiskNumberStart) {
4798
- if (zip64 === false || !keepOrder) {
4794
+ if (zip64UncompressedSize || zip64CompressedSize) {
4795
+ if (zip64 === false) {
4799
4796
  throw new Error(ERR_UNSUPPORTED_FORMAT);
4800
4797
  } else {
4801
4798
  zip64 = true;
@@ -4815,8 +4812,6 @@
4815
4812
  zip64,
4816
4813
  zip64UncompressedSize,
4817
4814
  zip64CompressedSize,
4818
- zip64Offset,
4819
- zip64DiskNumberStart,
4820
4815
  password,
4821
4816
  rawPassword,
4822
4817
  level,
@@ -4944,7 +4939,6 @@
4944
4939
  await writeData(fileWriter, localHeaderArray);
4945
4940
  }
4946
4941
  fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
4947
- const { zip64 } = fileEntry;
4948
4942
  if (!bufferedWrite) {
4949
4943
  writingEntryData = false;
4950
4944
  }
@@ -4956,9 +4950,6 @@
4956
4950
  writingBufferedEntryData = true;
4957
4951
  fileEntry.diskNumberStart = writer.diskNumber;
4958
4952
  fileEntry.offset = zipWriter.offset - writer.diskOffset;
4959
- if (zip64) {
4960
- updateZip64ExtraField(fileEntry);
4961
- }
4962
4953
  updateLocalHeader(fileEntry, localHeaderView, options);
4963
4954
  await skipDiskIfNeeded(writable);
4964
4955
  await writeData(writer, localHeaderArray);
@@ -4967,12 +4958,6 @@
4967
4958
  writingBufferedEntryData = false;
4968
4959
  } else {
4969
4960
  fileEntry.offset = zipWriter.offset - diskOffset;
4970
- if (zip64) {
4971
- updateZip64ExtraField(fileEntry);
4972
- }
4973
- }
4974
- if (fileEntry.offset > MAX_32_BITS && !zip64) {
4975
- throw new Error(ERR_UNSUPPORTED_FORMAT);
4976
4961
  }
4977
4962
  zipWriter.offset += fileEntry.size;
4978
4963
  return fileEntry;
@@ -5062,8 +5047,6 @@
5062
5047
  zip64,
5063
5048
  zip64UncompressedSize,
5064
5049
  zip64CompressedSize,
5065
- zip64Offset,
5066
- zip64DiskNumberStart,
5067
5050
  zipCrypto,
5068
5051
  dataDescriptor,
5069
5052
  directory,
@@ -5201,9 +5184,7 @@
5201
5184
  signature,
5202
5185
  extraFieldExtendedTimestampFlag,
5203
5186
  zip64UncompressedSize,
5204
- zip64CompressedSize,
5205
- zip64Offset,
5206
- zip64DiskNumberStart
5187
+ zip64CompressedSize
5207
5188
  });
5208
5189
  return fileEntry;
5209
5190
  }
@@ -5227,74 +5208,41 @@
5227
5208
  encrypted,
5228
5209
  zip64UncompressedSize,
5229
5210
  zip64CompressedSize,
5230
- zip64Offset,
5231
- zip64DiskNumberStart,
5232
- uncompressedSize,
5233
- offset,
5234
- diskNumberStart
5211
+ uncompressedSize
5235
5212
  } = options;
5236
5213
  let { version, compressionMethod } = options;
5237
5214
  const compressed = !directory && (level > 0 || (level === UNDEFINED_VALUE && compressionMethod !== 0));
5238
- let rawExtraFieldZip64;
5239
5215
  let rawLocalExtraFieldZip64;
5240
5216
  const uncompressedFile = passThrough || !compressed;
5241
5217
  const zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || ((!zip64UncompressedSize && !zip64CompressedSize) || uncompressedFile));
5242
5218
  if (zip64) {
5243
- let rawExtraFieldZip64Length = 4;
5244
5219
  let rawLocalExtraFieldZip64Length = 4;
5245
5220
  if (zip64UncompressedSize) {
5246
- rawExtraFieldZip64Length += 8;
5247
5221
  rawLocalExtraFieldZip64Length += 8;
5248
5222
  }
5249
5223
  if (zip64CompressedSize) {
5250
- rawExtraFieldZip64Length += 8;
5251
5224
  rawLocalExtraFieldZip64Length += 8;
5252
5225
  }
5253
- if (zip64Offset) {
5254
- rawExtraFieldZip64Length += 8;
5255
- }
5256
- if (zip64DiskNumberStart) {
5257
- rawExtraFieldZip64Length += 4;
5258
- }
5259
- rawExtraFieldZip64 = new Uint8Array(rawExtraFieldZip64Length);
5260
- const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
5261
5226
  rawLocalExtraFieldZip64 = new Uint8Array(rawLocalExtraFieldZip64Length);
5262
5227
  const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
5263
- setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
5264
- setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
5265
5228
  setUint16(rawLocalExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
5266
5229
  setUint16(rawLocalExtraFieldZip64View, 2, getLength(rawLocalExtraFieldZip64) - 4);
5267
5230
  if (zip64ExtraFieldComplete) {
5268
- const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
5269
5231
  const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
5270
- let rawExtraFieldZip64Offset = 4;
5271
5232
  let rawLocalExtraFieldZip64Offset = 4;
5272
5233
  if (zip64UncompressedSize) {
5273
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
5274
- rawExtraFieldZip64Offset += 8;
5275
5234
  setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
5276
5235
  rawLocalExtraFieldZip64Offset += 8;
5277
5236
  }
5278
5237
  if (zip64CompressedSize && uncompressedFile) {
5279
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
5280
- rawExtraFieldZip64Offset += 8;
5281
5238
  setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
5282
5239
  rawLocalExtraFieldZip64Offset += 8;
5283
5240
  }
5284
- if (zip64Offset) {
5285
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
5286
- rawExtraFieldZip64Offset += 8;
5287
- }
5288
- if (zip64DiskNumberStart) {
5289
- setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
5290
- rawExtraFieldZip64Offset += 4;
5291
- }
5292
5241
  if (rawLocalExtraFieldZip64Offset == 4) {
5293
5242
  rawLocalExtraFieldZip64 = new Uint8Array();
5294
5243
  }
5295
5244
  }
5296
5245
  } else {
5297
- rawExtraFieldZip64 = new Uint8Array();
5298
5246
  rawLocalExtraFieldZip64 = new Uint8Array();
5299
5247
  }
5300
5248
  let rawExtraFieldAES;
@@ -5451,7 +5399,7 @@
5451
5399
  version,
5452
5400
  compressionMethod,
5453
5401
  extraFieldExtendedTimestampFlag,
5454
- rawExtraFieldZip64,
5402
+ rawExtraFieldZip64: new Uint8Array(),
5455
5403
  localExtraFieldZip64Length,
5456
5404
  rawExtraFieldExtendedTimestamp,
5457
5405
  rawExtraFieldNTFS,
@@ -5623,35 +5571,6 @@
5623
5571
  }
5624
5572
  }
5625
5573
 
5626
- function updateZip64ExtraField({
5627
- compressedSize,
5628
- uncompressedSize,
5629
- offset,
5630
- diskNumberStart,
5631
- zip64UncompressedSize,
5632
- zip64CompressedSize,
5633
- zip64Offset,
5634
- zip64DiskNumberStart,
5635
- rawExtraFieldZip64
5636
- }) {
5637
- const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
5638
- let rawExtraFieldZip64Offset = 4;
5639
- if (zip64UncompressedSize) {
5640
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
5641
- rawExtraFieldZip64Offset += 8;
5642
- }
5643
- if (zip64CompressedSize) {
5644
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(compressedSize));
5645
- rawExtraFieldZip64Offset += 8;
5646
- }
5647
- if (zip64Offset) {
5648
- setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
5649
- rawExtraFieldZip64Offset += 8;
5650
- }
5651
- if (zip64DiskNumberStart) {
5652
- setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
5653
- }
5654
- }
5655
5574
 
5656
5575
  async function closeFile(zipWriter, comment, options) {
5657
5576
  const { files, writer } = zipWriter;
@@ -5664,7 +5583,6 @@
5664
5583
  for (const [, fileEntry] of files) {
5665
5584
  const {
5666
5585
  rawFilename,
5667
- rawExtraFieldZip64,
5668
5586
  rawExtraFieldAES,
5669
5587
  rawComment,
5670
5588
  rawExtraFieldNTFS,
@@ -5672,8 +5590,36 @@
5672
5590
  rawExtraField,
5673
5591
  extendedTimestamp,
5674
5592
  extraFieldExtendedTimestampFlag,
5675
- lastModDate
5593
+ lastModDate,
5594
+ zip64UncompressedSize,
5595
+ zip64CompressedSize,
5596
+ uncompressedSize,
5597
+ compressedSize
5676
5598
  } = fileEntry;
5599
+ const zip64Offset = fileEntry.offset > MAX_32_BITS;
5600
+ const zip64DiskNumberStart = fileEntry.diskNumberStart > MAX_16_BITS;
5601
+ let rawExtraFieldZip64;
5602
+ if (zip64Offset || zip64DiskNumberStart || zip64UncompressedSize || zip64CompressedSize) {
5603
+ let length = 4;
5604
+ if (zip64UncompressedSize) length += 8;
5605
+ if (zip64CompressedSize) length += 8;
5606
+ if (zip64Offset) length += 8;
5607
+ if (zip64DiskNumberStart) length += 4;
5608
+ rawExtraFieldZip64 = new Uint8Array(length);
5609
+ const zip64View = getDataView(rawExtraFieldZip64);
5610
+ setUint16(zip64View, 0, EXTRAFIELD_TYPE_ZIP64);
5611
+ setUint16(zip64View, 2, length - 4);
5612
+ let zip64FieldOffset = 4;
5613
+ if (zip64UncompressedSize) { setBigUint64(zip64View, zip64FieldOffset, BigInt(uncompressedSize)); zip64FieldOffset += 8; }
5614
+ if (zip64CompressedSize) { setBigUint64(zip64View, zip64FieldOffset, BigInt(compressedSize)); zip64FieldOffset += 8; }
5615
+ if (zip64Offset) { setBigUint64(zip64View, zip64FieldOffset, BigInt(fileEntry.offset)); zip64FieldOffset += 8; }
5616
+ if (zip64DiskNumberStart) { setUint32(zip64View, zip64FieldOffset, fileEntry.diskNumberStart); }
5617
+ } else {
5618
+ rawExtraFieldZip64 = new Uint8Array();
5619
+ }
5620
+ fileEntry.rawExtraFieldZip64 = rawExtraFieldZip64;
5621
+ fileEntry.zip64Offset = zip64Offset;
5622
+ fileEntry.zip64DiskNumberStart = zip64DiskNumberStart;
5677
5623
  let rawExtraFieldTimestamp;
5678
5624
  if (extendedTimestamp) {
5679
5625
  rawExtraFieldTimestamp = new Uint8Array(9);
@@ -5715,7 +5661,6 @@
5715
5661
  versionMadeBy,
5716
5662
  headerArray,
5717
5663
  headerView,
5718
- zip64,
5719
5664
  zip64UncompressedSize,
5720
5665
  zip64CompressedSize,
5721
5666
  zip64DiskNumberStart,
@@ -5741,7 +5686,7 @@
5741
5686
  directoryOffset += 2;
5742
5687
  setUint16(directoryView, directoryOffset, getLength(rawComment));
5743
5688
  directoryOffset += 2;
5744
- setUint16(directoryView, directoryOffset, zip64 && zip64DiskNumberStart ? MAX_16_BITS : diskNumberStart);
5689
+ setUint16(directoryView, directoryOffset, zip64DiskNumberStart ? MAX_16_BITS : diskNumberStart);
5745
5690
  directoryOffset += 2;
5746
5691
  setUint16(directoryView, directoryOffset, internalFileAttributes);
5747
5692
  directoryOffset += 2;
@@ -5749,7 +5694,7 @@
5749
5694
  setUint32(directoryView, directoryOffset, externalFileAttributes);
5750
5695
  }
5751
5696
  directoryOffset += 4;
5752
- setUint32(directoryView, directoryOffset, zip64 && zip64Offset ? MAX_32_BITS : fileEntryOffset);
5697
+ setUint32(directoryView, directoryOffset, zip64Offset ? MAX_32_BITS : fileEntryOffset);
5753
5698
  directoryOffset += 4;
5754
5699
  arraySet(directoryArray, rawFilename, directoryOffset);
5755
5700
  directoryOffset += getLength(rawFilename);
@@ -1 +1 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream: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&&d&&!e.writerLocked&&!e.bufferedWrites&&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())))}});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:w,Uint32Array:h,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:S,document:z,crypto:x,btoa:E,TransformStream:F,ReadableStream:R,WritableStream:k,CompressionStream:D,DecompressionStream:A,navigator:_,Worker:T}="undefined"!=typeof globalThis?globalThis:this||self;var U=void 0!==z?z.currentScript:null;const v=4294967295,C=65535,I=255,N=67324752,M=134695760,W=M,O=33639248,L=101010256,P=101075792,Z=117853008,H=22,V=21589,B=2048,q=16384,K=2048,j=1024,Y=512,G="/",X=30,J=new o(2107,11,31),Q=new o(1980,0,1),$=void 0,ee=1/0,te="undefined",re="function";let se=2;try{typeof _!=te&&_.hardwareConcurrency&&(se=_.hardwareConcurrency)}catch{}const ne={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:se,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof D!=te&&D,DecompressionStream:typeof A!=te&&A},ae=r.assign({},ne);function ie(){return ae}function oe(e){return i.max(e.chunkSize,64)}function ce(e){const{baseURI:t,chunkSize:r,maxWorkers:s,terminateWorkerTimeout:n,useCompressionStream:a,useWebWorkers:i,CompressionStream:o,DecompressionStream:c,CompressionStreamZlib:l,DecompressionStreamZlib:d,workerURI:u,wasmURI:p}=e;le("baseURI",t),le("wasmURI",p),le("workerURI",u),le("chunkSize",r),le("maxWorkers",s),le("terminateWorkerTimeout",n),le("useCompressionStream",a),le("useWebWorkers",i),le("CompressionStream",o),le("DecompressionStream",c),le("CompressionStreamZlib",l),le("DecompressionStreamZlib",d)}function le(e,t){t!==$&&(ae[e]=t)}const de=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;de[e]=t}class ue{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^de[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class pe extends F{constructor(){let e;const t=new ue;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function fe(e){if(typeof b==te){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const we={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=we.getPartial(r);return 32===s?e.concat(t):we._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+we.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=we.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=we.getPartial(n);return s.push(we.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},he={bytes:{fromBits(e){const t=we.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(we.partial(8*(3&r),s)),t}}},me=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=he.utf8String.toBits(e));const r=t._buffer=we.concat(t._buffer,e),s=t._length,n=t._length=s+we.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new h(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=we.concat(t,[we.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},ge={getRandomValues(e){const t=new h(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},ye={importKey:e=>new ye.hmacSha1(he.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const w=we;for(t=he.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(w.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=me,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new r(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},be=typeof x!=te&&typeof x.getRandomValues==re,Se="Invalid password",ze="Invalid signature",xe="zipjs-abort-check-password";function Ee(e){return be?x.getRandomValues(e):ge.getRandomValues(e)}const Fe=16,Re={name:"PBKDF2"},ke=r.assign({hash:{name:"HMAC"}},Re),De=r.assign({iterations:1e3,hash:{name:"SHA-1"}},Re),Ae=["deriveBits"],_e=[8,12,16],Te=[16,24,32],Ue=10,ve=[0,0,0,0],Ce=typeof x!=te,Ie=Ce&&x.subtle,Ne=Ce&&typeof Ie!=te,Me=he.bytes,We=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,w,h=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[h>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&h]^r[b+1],w=i[g>>>24]^o[y>>16&255]^c[h>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[h>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,h=u,m=f,g=w;for(let e=0;4>e;e++)n[t?3&-e:e]=d[h>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=h,h=m,m=g,g=y,y=u;return n}},Oe=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=we.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return we.clamp(t,n)}},Le=ye.hmacSha1;let Pe=Ce&&Ne&&typeof Ie.importKey==re,Ze=Ce&&Ne&&typeof Ie.deriveBits==re;class He extends F{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await qe(e,t,r,Ye(s,0,_e[t])),a=Ye(s,_e[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(Se)})(r,n,s,Ye(e,0,_e[n]+2)),e=Ye(e,_e[n]+2),a?t.error(new p(xe)):i()):await o;const c=new f(e.length-Ue-(e.length-Ue)%Fe);t.enqueue(Be(r,e,c,0,Ue,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ye(n,0,n.length-Ue),o=Ye(n,n.length-Ue);let c=new f;if(i.length){const e=Xe(Me,i);s.update(e);const t=r.update(e);c=Ge(Me,t)}if(t){const e=Ye(Ge(Me,s.digest()),0,Ue);for(let t=0;Ue>t;t++)if(e[t]!=o[t])throw new p(ze)}e.enqueue(c)}}})}}class Ve extends F{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Ke(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=Ee(new f(_e[t]));return je(s,await qe(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%Fe);c.set(o,0),t.enqueue(Be(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(Xe(Me,s));r.update(e),i=Ge(Me,e)}n.signature=Ge(Me,r.digest()).slice(0,Ue),e.enqueue(je(i,n.signature))}}}),n=this}}function Be(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=je(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%Fe)),d=0;l-Fe>=d;d+=Fe){const e=Xe(Me,Ye(t,d,d+Fe));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ge(Me,n),d+s)}return e.pending=Ye(t,d),r}async function qe(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!Pe)return ye.importKey(t);try{return await Ie.importKey("raw",t,r,!1,n)}catch{return Pe=!1,ye.importKey(t)}})(0,n,ke,0,Ae),o=await(async(e,t,r)=>{if(!Ze)return ye.pbkdf2(t,e.salt,De.iterations,r);try{return await Ie.deriveBits(e,t,r)}catch{return Ze=!1,ye.pbkdf2(t,e.salt,De.iterations,r)}})(r.assign({salt:a},De),i,8*(2*Te[s]+2)),c=new f(o),l=Xe(Me,Ye(c,0,Te[s])),d=Xe(Me,Ye(c,Te[s],2*Te[s])),u=Ye(c,2*Te[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new Oe(new We(l),t.from(ve)),hmac:new Le(d)}),u}function Ke(e,t){return t===$?fe(e):t}function je(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ye(e,t,r){return e.subarray(t,r)}function Ge(e,t){return e.fromBits(t)}function Xe(e,t){return e.toBits(t)}class Je extends F{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;if(r.password){const t=$e(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(Se);e=e.subarray(12)}s?t.error(new p(xe)):t.enqueue($e(r,e))}})}}class Qe extends F{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),tt(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Ee(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(et(r,t),0),n=12}else s=new f(e.length),n=0;s.set(et(r,e),n),t.enqueue(s)}})}}function $e(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,r[s]);return r}function et(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=st(e)^t[s],rt(e,t[s]);return r}function tt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new ue(s[0]),crcKey2:new ue(s[2])});for(let r=0;r<t.length;r++)rt(e,t.charCodeAt(r))}function rt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=at(i.imul(at(s+nt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function st(e){const t=2|e.keys[2];return nt(i.imul(t,1^t)>>>8)}function nt(e){return 255&e}function at(e){return 4294967295&e}const it="Invalid uncompressed size";class ot extends F{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new pe,f=ut(f,u)),n&&(f=dt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=ut(f,new Qe(e)):(p=new Ve(e),f=ut(f,p))),lt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class ct extends F{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,w=super.readable;a&&(n?w=ut(w,new Je(e)):(f=new He(e),w=ut(w,f))),c&&(w=dt(w,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new pe,w=ut(w,u)),lt(this,w,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(ze)}})}}function lt(e,t,s){t=ut(t,new F({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function dt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=ut(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=ut(e,new n(o,r));else{if(!a)throw s;e=ut(e,new a(o,r))}}return e}function ut(e,t){return e.pipeThrough(t)}const pt="data",ft="close",wt="deflate",ht="inflate";class mt extends F{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(wt)?a=ot:n.startsWith(ht)&&(a=ct),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new F({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new F({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==$&&s.outputSize>e.outputSize))throw new p(it)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class gt extends F{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const yt={type:"module"};let bt,St,zt,xt=!0;try{xt=typeof structuredClone==re&&structuredClone(new DOMException("","AbortError")).code!==$}catch{}class Et{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new gt(a.chunkSize)).pipeThrough(new Ft(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),bt===$&&(bt=typeof T!=te),(o&&bt?Dt:kt)(e,a)}}class Ft extends F{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Rt(e,r)},async transform(e,s){n+=e.length,t&&await Rt(t,n,r),s.enqueue(e)},async flush(){s&&await Rt(s,n)}})}}async function Rt(e,...t){try{await e(...t)}catch{}}function kt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new mt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Dt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==re&&(a=a());try{i=At(e.workerURI,s,e)}catch{return bt=!1,kt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{const{writable:t,readable:r}=new F;return{writable:t,closed:r.pipeTo(e,{preventClose:!0})}})(e.writable),d=_t({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}function At(e,t,s,n,a=!0){let i,o,c;if(St===$){const r=typeof e==re;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===$&&(n=!1),n&&(c=yt);try{i=new T(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return At(e,t,s,n,!1);if(n)throw a;return At(e,t,s,!0,!1)}}else{n===$&&(n=!0),n&&(c=yt);try{o=new u(o,t)}catch{}try{i=new T(o,c)}catch(r){if(n)throw r;return At(e,t,s,!1,a)}}St=o,zt=c}else i=new T(St,zt);return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:w}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),h(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();_t({type:pt,value:e,done:r,messageId:a},t)}s==pt&&(await l.ready,await l.write(new f(n)),_t({type:"ack",messageId:a},t)),s==ft&&h(null,i)}}catch(o){_t({type:ft,messageId:a},t),h(o)}function h(e,t){e?u(e):d(t),l&&l.releaseLock(),w()}})(e,s)),i}function _t(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&xt?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{xt=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let Tt=[];const Ut=[];let vt=0;async function Ct(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===$;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===$&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:$,r.useCompressionStream=o||o===$&&s.useCompressionStream,(await(async()=>{const r=Tt.find(e=>!e.busy);if(r)return It(r),new Et(r,e,t,w);if(Tt.length<p){const r={indexWorker:vt};return vt++,Tt.push(r),new Et(r,e,t,w)}return new y(r=>Ut.push({resolve:r,stream:e,workerOptions:t}))})()).run();function w(e){if(Ut.length){const[{resolve:t,stream:r,workerOptions:s}]=Ut.splice(0,1);t(new Et(e,r,s,w))}else e.worker?(It(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Tt=Tt.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):Tt=Tt.filter(t=>t!=e)}}function It(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const Nt="HTTP error ",Mt="HTTP Range not supported",Wt="Range",Ot="GET",Lt="bytes",Pt=65536,Zt="writable";class Ht{constructor(){this.size=0}init(){this.initialized=!0}}class Vt extends Ht{get readable(){const e=this,{chunkSize:t=Pt}=e,r=new R({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===$?t:i.min(t,a-c),d=await pr(e,n+c,l,o);s.enqueue(d),c+t>a||a===$&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class Bt extends Ht{constructor(){super();const e=this,t=new k({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,Zt,{get:()=>t})}writeUint8Array(){}}class qt extends Vt{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class Kt extends Ht{constructor(e){super();const t=new F,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,Zt,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class jt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,nr,er),super.init()}readUint8Array(e,t){return Jt(this,e,t,nr,er)}}class Yt extends Vt{constructor(e,t){super(),Gt(this,e,t)}async init(){await Xt(this,ar,tr),super.init()}readUint8Array(e,t){return Jt(this,e,t,ar,tr)}}function Gt(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function Xt(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ie(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(Ot,e,Qt(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==Lt))throw new p(Mt);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===$?await sr(e,t,r):e.size=a}}else await sr(e,t,r)}async function Jt(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(Ot,e,Qt(e,t,r));if(206!=n.status)throw new p(Mt);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function Qt(e,t=0,s=1){return r.assign({},$t(e),{[Wt]:Lt+"="+(0>t?t:t+"-"+(t+s-1))})}function $t({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function er(e){await rr(e,nr)}async function tr(e){await rr(e,ar)}async function rr(e,t){const r=await t(Ot,e,$t(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function sr(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,$t(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function nr(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(Mt):new p(Nt+(a.statusText||a.status))}function ar(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(Mt):new p(Nt+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class ir extends Vt{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Yt(e,t):new jt(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class or extends Vt{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await pr(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await pr(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class cr extends Ht{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new k({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await ur(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,Zt,{get:()=>o})}}class lr{constructor(e){return t.isArray(e)&&(e=new or(e)),e instanceof R&&(e={readable:e}),e}}class dr{constructor(e){return e.writable===$&&typeof e.next==re&&(e=new cr(e)),e instanceof k&&(e={writable:e}),e.size===$&&(e.size=0),e instanceof cr||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:ee,maxSize:ee}),e}}async function ur(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function pr(e,t,r,s){return e.readUint8Array(t,r,s)}const fr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function wr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=fr[e[r]];return t}})(e):new S(t).decode(e)}const hr="filename",mr="rawFilename",gr="comment",yr="rawComment",br="uncompressedSize",Sr="compressedSize",zr="offset",xr="diskNumberStart",Er="lastModDate",Fr="rawLastModDate",Rr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",Ar="internalFileAttributes",_r="externalFileAttributes",Tr="msdosAttributesRaw",Ur="msdosAttributes",vr="msDosCompatible",Cr="zip64",Ir="encrypted",Nr="version",Mr="versionMadeBy",Wr="zipCrypto",Or="directory",Lr="executable",Pr="compressionMethod",Zr="signature",Hr="extraField",Vr="unixMode",Br="setuid",qr="setgid",Kr="sticky",jr=[hr,mr,br,Sr,Er,Fr,gr,yr,Rr,kr,Dr,zr,xr,Ar,_r,Tr,Ur,vr,Cr,Ir,Nr,Mr,Wr,Or,Lr,Pr,Zr,Hr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Vr,Br,qr,Kr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Yr{constructor(e){jr.forEach(t=>this[t]=e[t])}}const Gr="password",Xr="rawPassword",Jr="passThrough",Qr="signal",$r="useWebWorkers",es="useCompressionStream",ts="transferStreams",rs="preventClose",ss="offset",ns="usdz",as="File format is not recognized",is="End of central directory not found",os="End of Zip64 central directory locator not found",cs="Central directory header not found",ls="Local file header not found",ds="Zip64 extra field not found",us="File contains encrypted entry",ps="Encryption method not supported",fs="Compression method not supported",ws="Split zip file",hs="Overlapping entry found",ms="utf-8",gs="cp437",ys=[[br,v],[Sr,v],[zr,v],[xr,C]],bs={[C]:{getValue:vs,bytes:4},[v]:{getValue:Cs,bytes:8}};class Ss{constructor(e,t={}){r.assign(this,{reader:new lr(e),options:t,config:ie(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await ur(s),s.size!==$&&s.readUint8Array||(s=new qt(await new d(s.readable).blob()),await ur(s)),s.size<H)throw new p(as);s.chunkSize=oe(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,Is(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await pr(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,L,s.size);if(!a)throw vs(Is(await pr(s,0,4)))==M?new p(ws):new p(is);const o=Is(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,w=Us(o,20),h=u+H+w;let m=Us(o,4);const g=s.lastDiskNumber||0;let b=Us(o,6),S=Us(o,8),z=0,x=0;if(l==v||c==v||S==C||b==C){const e=Is(await pr(s,a.offset-20,20));if(vs(e,0)==Z){l=Cs(e,8);let t=await pr(s,l,56,-1),r=Is(t);const n=a.offset-20-56;if(vs(r,0)!=P&&l!=n){const e=l;l=n,l>e&&(z=l-e),t=await pr(s,l,56,-1),r=Is(t)}if(vs(r,0)!=P)throw new p(os);m==C&&(m=vs(r,16)),b==C&&(b=vs(r,20)),S==C&&(S=Cs(r,32)),c==v&&(c=Cs(r,40)),l-=c}}if(l<s.size||(z=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(ws);if(0>l)throw new p(as);let E=0,R=await pr(s,l,c,b),k=Is(R);if(c){const e=a.offset-c;if(vs(k,E)!=O&&l!=e){const t=l;l=e,l>t&&(z+=l-t),R=await pr(s,l,c,b),k=Is(R)}}const D=a.offset-l-(s.lastDiskOffset||0);if(c==D||0>D||(c=D,R=await pr(s,l,c,b),k=Is(R)),0>l||l>=s.size)throw new p(as);const A=Ds(t,e,"filenameEncoding"),_=Ds(t,e,"commentEncoding");for(let a=0;S>a;a++){const o=new zs(s,n,t.options);if(vs(k,E)!=O)throw new p(cs);xs(o,k,E+6);const c=!!o.bitFlag.languageEncodingFlag,l=E+46,u=l+o.filenameLength,f=u+o.extraFieldLength,w=Us(k,E+4),h=!(w>>8),m=w>>8==3,g=R.subarray(l,u),b=Us(k,E+32),D=f+b,T=R.subarray(f,D),U=c,v=c,N=vs(k,E+38),M=N&I,W={readOnly:!!(1&M),hidden:!!(2&M),system:!!(4&M),directory:!!(16&M),archive:!!(32&M)},L=vs(k,E+42)+z,P=Ds(t,e,"decodeText")||wr,Z=U?ms:A||gs,H=v?ms:_||gs;let V=P(g,Z);V===$&&(V=wr(g,Z));let B=P(T,H);B===$&&(B=wr(T,H)),r.assign(o,{versionMadeBy:w,msDosCompatible:h,compressedSize:0,uncompressedSize:0,commentLength:b,offset:L,diskNumberStart:Us(k,E+34),internalFileAttributes:Us(k,E+36),externalFileAttributes:N,msdosAttributesRaw:M,msdosAttributes:W,rawFilename:g,filenameUTF8:U,commentUTF8:v,rawExtraField:R.subarray(u,f),rawComment:T,filename:V,comment:B}),x=i.max(L,x),Es(o,o,k,E+6);const X=o.externalFileAttributes>>16&C;o.unixMode===$&&16877&X&&(o.unixMode=X);const J=!!(o.unixMode&K),Q=!!(o.unixMode&j),ee=!!(o.unixMode&Y),te=o.unixMode!==$?!!(73&o.unixMode):m&&!!(73&X),re=o.unixMode!==$&&(61440&o.unixMode)==q,se=(61440&X)==q;r.assign(o,{setuid:J,setgid:Q,sticky:ee,unixExternalUpper:X,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||h&&W.directory||V.endsWith(G)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Yr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new F,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},E=D;const{onprogress:ae}=e;if(ae)try{await ae(a+1,S,new Yr(o))}catch{}yield ne}const T=Ds(t,e,"extractPrependedData"),U=Ds(t,e,"extractAppendedData");return T&&(t.prependedData=x>0?await pr(s,0,x):new f),t.comment=w?await pr(s,u+H,w):new f,U&&(t.appendedData=h<s.size?await pr(s,h,s.size-h):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class zs{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:w,bitFlag:h,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:S}=h,z=t.localDirectory={},x=Is(await pr(i,o,X,c));let E=Ds(a,n,Gr),F=Ds(a,n,Xr);const R=Ds(a,n,Jr);if(E=E&&E.length&&E,F=F&&F.length&&F,l&&99!=l.originalCompressionMethod)throw new p(fs);if(0!=u&&8!=u&&9!=u&&!R)throw new p(fs);if(vs(x,0)!=N)throw new p(ls);xs(z,x,4);const{extraFieldLength:D,filenameLength:A,lastAccessDate:_,creationDate:T}=z;z.rawExtraField=D?await pr(i,o+X+A,D,c):new f,Es(a,z,x,4,!0),r.assign(t,{lastAccessDate:_,creationDate:T});const U=a.encrypted&&z.encrypted&&!R,v=U&&!l;if(R||(t.zipCrypto=v),U){if(!v&&l.strength===$)throw new p(ps);if(!E&&!F)throw new p(us)}const C=o+X+A+D,M=b,O=i.readable;r.assign(O,{diskNumberStart:c,offset:C,size:M});const L=Ds(a,n,Qr),P=Ds(a,n,"checkPasswordOnly");let Z=Ds(a,n,"checkOverlappingEntry");const H=Ds(a,n,"checkOverlappingEntryOnly");H&&(Z=!0);const{onstart:V,onprogress:B,onend:q}=n,K=9==u;let j=Ds(a,n,es);K&&(j=!1);const Y={options:{codecType:ht,password:E,rawPassword:F,zipCrypto:v,encryptionStrength:l&&l.strength,signed:Ds(a,n,"checkSignature")&&!R,passwordVerification:v&&(S?g>>>8&I:m>>>24&I),outputSize:R?b:y,signature:m,compressed:0!=u&&!R,encrypted:a.encrypted&&!R,useWebWorkers:Ds(a,n,$r),useCompressionStream:j,transferStreams:Ds(a,n,ts),deflate64:K,checkPasswordOnly:P},config:w,streamOptions:{signal:L,size:M,onstart:V,onprogress:B,onend:q}};let G;Z&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await pr(e,o+a,f+4,s);if(vs(Is(r),0)==W){const e=vs(Is(r),4);let s,o;l?(s=Cs(Is(r),8),o=Cs(Is(r),16)):(s=vs(Is(r),8),o=vs(Is(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const w={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&w.start>=e.start&&w.start<e.end){const t=new p(hs);throw t.overlappingEntry=e.fileEntry,t}d.push(w)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:C,dataDescriptor:S||z.bitFlag.dataDescriptor,extraFieldZip64:d||z.extraFieldZip64,readRanges:s});try{if(!H){P&&(e=new k),e=new dr(e),await ur(e,R?b:y),({writable:G}=e);const{outputSize:t}=await Ct({readable:O,writable:G},Y);if(e.size+=t,t!=(R?b:y))throw new p(it)}}catch(t){if(t.outputSize!==$&&(e.size+=t.outputSize),!P||t.message!=xe)throw t}finally{Ds(a,n,rs)||!G||G.locked||await G.getWriter().close()}return P||H?$:e.getData?e.getData():G}}function xs(e,t,s){const n=e.rawBitFlag=Us(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Us(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&B)==B},rawLastModDate:i,lastModDate:As(i),filenameLength:Us(t,s+22),extraFieldLength:Us(t,s+24)})}function Es(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Is(new f(i));let u=0;try{for(;u<i.length;){const e=Us(d,u),t=Us(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const w=Us(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const h=l.get(1);h&&(((e,t)=>{t.zip64=!0;const r=Is(e.data),s=ys.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=bs[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p(ds)}})(h,t),t.extraFieldZip64=h);const m=l.get(28789);m&&(Fs(m,hr,mr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(Fs(g,gr,yr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=Is(e.data),a=Ts(n,4);r.assign(e,{vendorVersion:Ts(n,0),vendorId:Ts(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Us(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,w),t.extraFieldAES=y):t.compressionMethod=w;const b=l.get(10);b&&(((e,t)=>{const s=Is(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Us(s,a),r=Us(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=Is(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:_s(a),lastAccessDate:_s(i),creationDate:_s(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const S=l.get(30805);if(S)Rs(S,t,!1),t.extraFieldUnix=S;else{const e=l.get(30837);e&&(Rs(e,t,!0),t.extraFieldInfoZip=e)}const z=l.get(V);z&&(((e,t,r)=>{const s=Is(e.data),n=Ts(s,0),a=[],i=[];r?(1&~n||(a.push(Er),i.push(Fr)),2&~n||(a.push(Rr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Er),i.push(Fr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function Fs(e,t,s,n,a){const i=Is(e.data),o=new ue;o.append(a[s]);const c=Is(new f(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:Ts(i,0),[t]:wr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function Rs(e,t,s){try{const n=Is(new f(e.data));let a=0;const i=Ts(n,a++),o=Ts(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=ks(c),d=Ts(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=ks(u);let w=$;if(!s&&a+2<=e.data.length){const t=e.data;w=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:w}),l!==$&&(t.uid=l),p!==$&&(t.gid=p),w!==$&&(t.unixMode=w)}catch{}}function ks(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function Ds(e,t,r){return t[r]===$?e.options[r]:t[r]}function As(e){const t=(4294901760&e)>>16,r=e&C;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function _s(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Ts(e,t){return e.getUint8(t)}function Us(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function Cs(e,t){return n(e.getBigUint64(t,!0))}function Is(e){return new m(e.buffer)}const Ns="File already exists",Ms="Zip file comment exceeds 64KB",Ws="File entry comment exceeds 64KB",Os="File entry name exceeds 64KB",Ls="Version exceeds 65535",Ps="The strength must equal 1, 2, or 3",Zs="Extra field type exceeds 65535",Hs="Extra field data exceeds 64KB",Vs="Zip64 is not supported (set the 'zip64' option to 'true')",Bs="Undefined uncompressed size",qs="Zip file not empty",Ks=new f([7,0,2,0,65,69,3,0,0]),js="infozip",Ys="unix";let Gs=0;const Xs=[];class Js{constructor(e,t={}){const s=(e=new dr(e)).availableSize!==$&&e.availableSize>0&&e.availableSize!==ee&&e.maxSize!==$&&e.maxSize>0&&e.maxSize!==ee;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ie(),files:new c,filenames:new l,offset:t[ss]===$?e.size||e.writable.size||0:t[ss],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p(qs);e=new lr(e);const t=new Ss(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:w,zip64:h}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z}=e;const{level:x,languageEncodingFlag:E,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,S=e.rawExtraFieldUnix||new f,z=z||new f;const R=dn(m,g,y,b,S,z),k=h&&d>v,D=h&&u>v,{headerArray:A,headerView:_}=un({version:t,bitFlag:pn(x,E,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:D,zip64UncompressedSize:k,extraFieldLength:R});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:D,zip64Offset:h&&this.offset-p>v,zip64DiskNumberStart:h&&w>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:S,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:A,headerView:_}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;Gs<d.maxWorkers?Gs++:await new y(e=>Xs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p(Ns);return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=tn(e,c,vr),d=tn(e,c,Mr,l?20:768);const u=tn(e,c,Lr),h=tn(e,c,"uid"),g=tn(e,c,"gid");let b=tn(e,c,Vr);const S=tn(e,c,"unixExtraFieldType");let z=tn(e,c,Br),x=tn(e,c,qr),E=tn(e,c,Kr);if(h!==$&&(0>h||h>v))throw new p("Invalid uid (must be integer 0..2^32-1)");if(g!==$&&(0>g||g>v))throw new p("Invalid gid (must be integer 0..2^32-1)");if(b!==$&&(0>b||b>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(S!==$&&S!==js&&S!==Ys)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let R=tn(e,c,Tr),k=tn(e,c,Ur);const D=R!==$||k!==$;if(h!==$||g!==$||b!==$||S?(l=!1,d=d&C|768):D&&(l=!0,d&=I),R!==$&&(0>R||R>I))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(k&&"object"!=typeof k)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new p(Ls);let A=tn(e,c,_r,0);!c[Or]&&s.endsWith(G)&&(c[Or]=!0);const _=tn(e,c,Or);let T;_?(s.endsWith(G)||(s+=G),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=u?493<<16:27525120),l||(T=A>>16&C,b=b===$?T:b&C,z?b|=K:z=!!(b&K),x?b|=j:x=!!(b&j),E?b|=Y:E=!!(b&Y),_&&(b|=q),A=(b&C)<<16|A&I),({msdosAttributesRaw:R,msdosAttributes:k}=((e,t)=>{if(e!==$)e&=I;else if(t!==$){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&I}return t===$&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(R,k)),D&&(A=A&v|R&I);const U=tn(e,c,"encodeText",fe);let O=U(s);if(O===$&&(O=fe(s)),dn(O)>C)throw new p(Os);const L=c[gr]||"";let P=U(L);if(P===$&&(P=fe(L)),dn(P)>C)throw new p(Ws);const Z=tn(e,c,Nr,20);if(Z>C)throw new p(Ls);const H=tn(e,c,Er,new o),B=tn(e,c,Rr),te=tn(e,c,kr),re=tn(e,c,Ar,0),se=tn(e,c,Jr);let ne,ae;se||(ne=tn(e,c,Gr),ae=tn(e,c,Xr));const ie=tn(e,c,"encryptionStrength",3),ce=tn(e,c,Wr),le=tn(e,c,"extendedTimestamp",!0),de=tn(e,c,"keepOrder",!0),ue=tn(e,c,$r),pe=tn(e,c,ts,!0),we=tn(e,c,"bufferedWrite"),he=tn(e,c,"createTempStream"),me=tn(e,c,"dataDescriptorSignature",!1),ge=tn(e,c,Qr),ye=tn(e,c,"useUnicodeFileNames",!0),be=tn(e,c,Pr);let Se=tn(e,c,"level"),ze=tn(e,c,es),xe=tn(e,c,"dataDescriptor");we&&xe===$&&(xe=!1),(xe===$||ce)&&(xe=!0),Se!==$&&6!=Se&&(ze=!1),ze||e.config.CompressionStream!==$||e.config.CompressionStreamZlib!==$||(Se=0);let Ee=tn(e,c,Cr);if(!ce&&(ne!==$||ae!==$)&&(1>ie||ie>3))throw new p(Ps);let Fe=new f;const Re=c[Hr];if(Re){let e=0,t=0;Re.forEach(t=>e+=4+dn(t)),Fe=new f(e),Re.forEach((e,r)=>{if(r>C)throw new p(Zs);if(dn(e)>C)throw new p(Hs);cn(Fe,new w([r]),t),cn(Fe,new w([dn(e)]),t+2),cn(Fe,e,t+4),t+=4+dn(e)})}let ke=0,De=0,Ae=0;if(se&&(Ae=c[br],Ae===$))throw new p(Bs);const _e=!0===Ee;n&&(n=new lr(n),await ur(n),se?(c.uncompressedSize=Ae,ke=rn(Ae)):n.size===$?(xe=!0,(Ee||Ee===$)&&(Ee=!0,Ae=ke=4294967296)):(c.uncompressedSize=Ae=n.size,ke=rn(Ae)));const{diskOffset:Te,diskNumber:Ue}=e.writer,ve=_e||Ae>v,Ce=_e||ke>v;if(ve||Ce){if(!1===Ee)throw new p(Vs);Ee=!0}Ee=Ee||!1;const Ie=tn(e,c,Ir),Ne=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:w,encryptionStrength:h,extendedTimestamp:g,passThrough:y,encrypted:b,zip64UncompressedSize:S,zip64CompressedSize:z,uncompressedSize:x}=e;let{version:E,compressionMethod:F}=e;const R=!p&&(o>0||o===$&&0!==F);let k;const D=y||!R,A=c&&(e.bufferedWrite||!S&&!z||D);if(c){let e=4;S&&(e+=8),z&&(e+=8),k=new f(e);const t=ln(k);if(nn(t,0,1),nn(t,2,dn(k)-4),A){const e=ln(k);let t=4;S&&(on(e,t,a(x)),t+=8),z&&D&&(on(e,t,a(x)),t+=8),4==t&&(k=new f)}}else k=new f;let _,T,U,v,I;if(b&&!l){_=new f(dn(Ks)+2);const e=ln(_);nn(e,0,39169),cn(_,Ks,2),sn(e,8,h)}else _=new f;if(g){U=new f(9+(s?4:0)+(n?4:0));const e=ln(U);nn(e,0,V),nn(e,2,dn(U)-4),v=1+(s?2:0)+(n?4:0),sn(e,4,v);let t=5;an(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(an(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&an(e,t,i.floor(n.getTime()/1e3));try{T=new f(36);const e=ln(T),t=en(r);nn(e,0,10),nn(e,2,32),nn(e,8,1),nn(e,10,24),on(e,12,t),on(e,20,en(s)||t),on(e,28,en(n)||t)}catch{T=new f}}else T=U=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===$&&r===$&&s===$)I=new f;else{const e=Qs(t),c=Qs(r);let l=new f;if(o==Ys&&s!==$){let e=s&C;n&&(e|=K),a&&(e|=j),i&&(e|=Y),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;I=new f(4+d);const u=ln(I);nn(u,0,o==js?30837:30805),nn(u,2,d),sn(u,4,1),sn(u,5,e.length);let p=6;cn(I,e,p),p+=e.length,sn(u,p,c.length),p++,cn(I,c,p),p+=c.length,cn(I,l,p)}}catch{I=new f}F===$&&(F=R?8:0),c&&(E=E>45?E:45),b&&!l&&(E=E>51?E:51,_[9]=F,F=99);const M=A?dn(k):0,W=M+dn(_,U,T,I,w),{headerArray:O,headerView:L,rawLastModDate:P}=un({version:E,bitFlag:pn(o,d,u,b,F),compressionMethod:F,uncompressedSize:x,lastModDate:Q>r?Q:r>J?J:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:S,extraFieldLength:W});let Z=X;const H=new f(Z+dn(t)+W),B=ln(H);return an(B,0,N),cn(H,O,4),cn(H,t,Z),Z+=dn(t),A&&cn(H,k,Z),Z+=M,cn(H,_,Z),Z+=dn(_),cn(H,U,Z),Z+=dn(U),cn(H,T,Z),Z+=dn(T),cn(H,I,Z),Z+=dn(I),cn(H,w,Z),u&&(an(B,18,0),an(B,22,0)),{localHeaderArray:H,localHeaderView:B,headerArray:O,headerView:L,lastModDate:r,rawLastModDate:P,encrypted:b,compressed:R,version:E,compressionMethod:F,extraFieldExtendedTimestampFlag:v,rawExtraFieldZip64:new f,localExtraFieldZip64Length:M,rawExtraFieldExtendedTimestamp:U,rawExtraFieldNTFS:T,rawExtraFieldUnix:I,rawExtraFieldAES:_,extraFieldLength:W}})(c=r.assign({},c,{rawFilename:O,rawComment:P,version:Z,versionMadeBy:d,lastModDate:H,lastAccessDate:B,creationDate:te,rawExtraField:Fe,zip64:Ee,zip64UncompressedSize:ve,zip64CompressedSize:Ce,password:ne,rawPassword:ae,level:Se,useWebWorkers:ue,transferStreams:pe,encryptionStrength:ie,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:we,createTempStream:he,keepOrder:de,useUnicodeFileNames:ye,dataDescriptor:xe,dataDescriptorSignature:me,signal:ge,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:ze,passThrough:se,encrypted:!!(ne&&dn(ne)||ae&&dn(ae))||se&&Ie,signature:c[Zr],compressionMethod:be,uncompressedSize:Ae,offset:e.offset-Te,diskNumberStart:Ue,uid:h,gid:g,setuid:z,setgid:x,sticky:E,unixMode:b,msdosAttributesRaw:R,msdosAttributes:k,unixExternalUpper:T})),Me=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=ln(n),r&&(a=4,an(s,0,W))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),We=dn(Ne.localHeaderArray,Me.dataDescriptorArray);let Oe;De=We+ke,e.options[ns]&&(De+=De+64),e.pendingEntriesSize+=De;try{Oe=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:p}=o,{headerInfo:w}=i,h=e.options[ns],m=t.from(c.values()).pop();let g,b,S,z,x,E,R={};c.set(s,R);try{let t;d&&(t=m&&m.lock,R.lock=new y(e=>S=e)),!o.bufferedWrite&&d&&!e.writerLocked&&!e.bufferedWrites&&u||h?(E=l,await k()):(E=o.createTempStream?await o.createTempStream():new F($,$,{highWaterMark:ee}),E.size=0,g=!0,e.bufferedWrites++,await ur(l)),await ur(E);const{writable:b,diskOffset:A}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);an(ln(t),0,M),await $s(l,t),e.offset+=4}h&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=ln(s),i=64-(t+dn(s))%64;4>i&&(i+=64);const o=new f(i),c=ln(o);nn(c,0,6534),nn(c,2,i-2);const l=s;r.localHeaderArray=s=new f(dn(l)+i),cn(s,l),cn(s,o,dn(l)),a=ln(s),nn(a,28,n+i),e.metadataSize+=i})(i,e.offset-A);const{localHeaderView:_,localHeaderArray:T}=w;g||(await t,await D(b));const{diskNumber:U}=l;return R.diskNumberStart=U,g||(x=!0,await $s(E,T)),R=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:w,rawLastModDate:h,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:S,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:E,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k}=l,{dataDescriptorArray:D}=d,{rawFilename:A,lastAccessDate:_,creationDate:T,password:U,rawPassword:v,level:C,zip64:N,zip64UncompressedSize:M,zip64CompressedSize:W,zipCrypto:O,dataDescriptor:L,directory:P,executable:Z,versionMadeBy:H,rawComment:V,rawExtraField:B,useWebWorkers:q,transferStreams:K,onstart:j,onprogress:Y,onend:G,signal:X,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:ee,internalFileAttributes:te,externalFileAttributes:re,uid:se,gid:ne,unixMode:ae,setuid:ie,setgid:ce,sticky:le,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:pe,useCompressionStream:fe,passThrough:we}=c,he={lock:n,versionMadeBy:H,zip64:N,directory:!!P,executable:!!Z,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:V,rawExtraFieldZip64:S,localExtraFieldZip64Length:z,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:F,rawExtraFieldUnix:R,rawExtraFieldAES:k,rawExtraField:B,extendedTimestamp:Q,msDosCompatible:ee,internalFileAttributes:te,externalFileAttributes:re,diskNumberStart:s,uid:se,gid:ne,unixMode:ae,setuid:ie,setgid:ce,sticky:le,unixExternalUpper:de,msdosAttributesRaw:ue,msdosAttributes:pe};let{signature:me,uncompressedSize:ge}=c,ye=0;we||(ge=0);const{writable:be}=t;if(e){e.chunkSize=oe(o);const r=e.readable,s=e.size,n={options:{codecType:wt,level:C,rawPassword:v,password:U,encryptionStrength:J,zipCrypto:m&&O,passwordVerification:m&&O&&h>>8&I,signed:!we,compressed:g&&!we,encrypted:m&&!we,useWebWorkers:q,useCompressionStream:fe,transferStreams:K},config:o,streamOptions:{signal:X,size:s,onstart:j,onprogress:Y,onend:G}};try{const e=await Ct({readable:r,writable:be},n);ye=e.outputSize,t.size+=ye,we||(ge=e.inputSize,me=e.signature)}catch(e){throw e.outputSize!==$&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===$||(an(l,10,e),c&&an(u,p,e)),i?c&&(on(u,p+4,a(t)),on(u,p+12,a(r))):(an(l,14,t),an(l,18,r),c&&(an(u,p+4,t),an(u,p+8,r)))})({signature:me,compressedSize:ye,uncompressedSize:ge,headerInfo:l,dataDescriptorInfo:d},c),L&&await $s(t,D),r.assign(he,{uncompressedSize:ge,compressedSize:ye,lastModDate:w,rawLastModDate:h,creationDate:T,lastAccessDate:_,encrypted:m,zipCrypto:O,size:u+ye,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:me,extraFieldExtendedTimestampFlag:E,zip64UncompressedSize:M,zip64CompressedSize:W}),he})(n,E,R,i,e.config,o),g||(x=!1),c.set(s,R),R.filename=s,g?(await y.all([E.writable.getWriter().close(),t]),await k(),z=!0,R.diskNumberStart=l.diskNumber,R.offset=e.offset-l.diskOffset,(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||an(d,14,n),l||an(d,18,i),c||an(d,22,o)),r&&s){let t=X+dn(e)+4;c&&(on(d,t,a(o)),t+=8),l&&(on(d,t,a(i)),t+=8)}})(R,_,o),await D(b),await $s(l,T),await E.readable.pipeTo(b,{preventClose:!0,preventAbort:!0,signal:p}),l.size+=E.size,z=!1):R.offset=e.offset-A,e.offset+=R.size,R}catch(t){if(z||x){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}g?e.offset+=E.size:e.offset=E.size}throw c.delete(s),t}finally{g&&e.bufferedWrites--,S&&S(),b&&b()}async function k(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>b=()=>{e.writerLocked=!1,t()}),await t}async function D(e){dn(w.localHeaderArray)>l.availableSize&&(l.availableSize=0,await $s(e,new f))}})(e,s,n,{headerInfo:Ne,dataDescriptorInfo:Me,metadataSize:We},c)}finally{e.pendingEntriesSize-=De}return r.assign(Oe,{name:s,comment:L,extraField:Re}),new Yr(Oe)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Xs.shift();e?e():Gs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==$){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,w=e.offset-c,h=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldAES:r,rawComment:s,rawExtraFieldNTFS:n,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p,zip64UncompressedSize:w,zip64CompressedSize:h,uncompressedSize:m,compressedSize:g}=e,y=e.offset>v,b=e.diskNumberStart>C;let S,z;if(y||b||w||h){let t=4;w&&(t+=8),h&&(t+=8),y&&(t+=8),b&&(t+=4),S=new f(t);const r=ln(S);nn(r,0,1),nn(r,2,t-4);let s=4;w&&(on(r,s,a(m)),s+=8),h&&(on(r,s,a(g)),s+=8),y&&(on(r,s,a(e.offset)),s+=8),b&&an(r,s,e.diskNumberStart)}else S=new f;if(e.rawExtraFieldZip64=S,e.zip64Offset=y,e.zip64DiskNumberStart=b,l){z=new f(9);const e=ln(z);nn(e,0,V),nn(e,2,5),sn(e,4,d),an(e,5,i.floor(p.getTime()/1e3))}else z=new f;e.rawExtraFieldExtendedTimestamp=z,u+=46+dn(t,s,S,r,n,o,z,c)}const m=new f(u),g=ln(m);await ur(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraFieldUnix:p,rawExtraField:f,rawComment:w,versionMadeBy:h,headerArray:b,headerView:S,zip64UncompressedSize:z,zip64CompressedSize:x,zip64DiskNumberStart:E,zip64Offset:F,internalFileAttributes:R,externalFileAttributes:k,diskNumberStart:D,uncompressedSize:A,compressedSize:_}=r,T=dn(i,c,l,u,p,f);an(g,d,O),nn(g,d+4,h),z||an(S,18,A),x||an(S,14,_),cn(m,b,d+6);let U=d+X;if(nn(g,U,T),U+=2,nn(g,U,dn(w)),U+=2,nn(g,U,E?C:D),U+=2,nn(g,U,R),U+=2,k&&an(g,U,k),U+=4,an(g,U,F?v:t),U+=4,cn(m,a,U),U+=dn(a),cn(m,i,U),U+=dn(i),cn(m,c,U),U+=dn(c),cn(m,l,U),U+=dn(l),cn(m,u,U),U+=dn(u),cn(m,p,U),U+=dn(p),cn(m,f,U),U+=dn(f),cn(m,w,U),U+=dn(w),d-y>o.availableSize&&(o.availableSize=0,await $s(o,m.slice(y,d)),y=d),d=U,s.onprogress)try{await s.onprogress(e+1,n.size,new Yr(r))}catch{}}await $s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:S}=o;H>S&&b++;let z=tn(e,s,Cr);if(w>v||u>v||h>C||b>C){if(!1===z)throw new p(Vs);z=!0}const x=new f(z?98:H),E=ln(x);d=0,z&&(an(E,0,P),on(E,4,a(44)),nn(E,12,45),nn(E,14,45),an(E,16,b),an(E,20,l),on(E,24,a(h)),on(E,32,a(h)),on(E,40,a(u)),on(E,48,a(w)),an(E,56,Z),on(E,64,a(w)+a(u)),an(E,72,b+1),tn(e,s,"supportZip64SplitFile",!0)&&(b=C,l=C),h=C,w=v,u=v,d+=76),an(E,d,L),nn(E,d+4,b),nn(E,d+6,l),nn(E,d+8,h),nn(E,d+10,h),an(E,d+12,u),an(E,d+16,w);const F=dn(r);if(F){if(F>C)throw new p(Ms);nn(E,d+20,F)}await $s(o,x),F&&await $s(o,r)})(this,e,r),tn(this,r,rs)||await o.getWriter().close(),n.getData?n.getData():o}}function Qs(e){if(e===$)return new f;{const t=new f(4);ln(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}async function $s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=dn(t),await s.write(t)}finally{s.releaseLock()}}function en(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function tn(e,t,r,s){const n=t[r]===$?e.options[r]:t[r];return n===$?s:n}function rn(e){return e+5*(i.floor(e/16383)+1)}function sn(e,t,r){e.setUint8(t,r)}function nn(e,t,r){e.setUint16(t,r,!0)}function an(e,t,r){e.setUint32(t,r,!0)}function on(e,t,r){e.setBigUint64(t,r,!0)}function cn(e,t,r){e.set(t,r)}function ln(e){return new m(e.buffer)}function dn(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function un({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=ln(d);nn(u,0,e),nn(u,2,t),nn(u,4,r);const p=new h(1),w=ln(p);nn(w,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),nn(w,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return an(u,6,m),(o||n!==$)&&an(u,14,o?v:n),(c||s!==$)&&an(u,18,c?v:s),nn(u,22,dn(i)),nn(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function pn(e,t,r,s,n){let a=0;return t&&(a|=B),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}try{ce({baseURI:void 0===z&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:void 0===z?location.href:U&&"SCRIPT"===U.tagName.toUpperCase()&&U.src||new u("zip-core.min.js",z.baseURI).href})}catch{}e.BlobReader=qt,e.BlobWriter=Kt,e.Data64URIReader=class extends Vt{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}},e.Data64URIWriter=class extends Bt{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=E(n):t.pending+=n)}getData(){return this.data+E(this.pending)}},e.ERR_BAD_FORMAT=as,e.ERR_CENTRAL_DIRECTORY_NOT_FOUND=cs,e.ERR_DUPLICATED_NAME=Ns,e.ERR_ENCRYPTED=us,e.ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND=os,e.ERR_EOCDR_NOT_FOUND=is,e.ERR_EXTRAFIELD_ZIP64_NOT_FOUND=ds,e.ERR_HTTP_RANGE=Mt,e.ERR_INVALID_COMMENT=Ms,e.ERR_INVALID_ENCRYPTION_STRENGTH=Ps,e.ERR_INVALID_ENTRY_COMMENT=Ws,e.ERR_INVALID_ENTRY_NAME=Os,e.ERR_INVALID_EXTRAFIELD_DATA=Hs,e.ERR_INVALID_EXTRAFIELD_TYPE=Zs,e.ERR_INVALID_PASSWORD=Se,e.ERR_INVALID_SIGNATURE=ze,e.ERR_INVALID_UNCOMPRESSED_SIZE=it,e.ERR_INVALID_VERSION=Ls,e.ERR_LOCAL_FILE_HEADER_NOT_FOUND=ls,e.ERR_OVERLAPPING_ENTRY=hs,e.ERR_SPLIT_ZIP_FILE=ws,e.ERR_UNDEFINED_UNCOMPRESSED_SIZE=Bs,e.ERR_UNSUPPORTED_COMPRESSION=fs,e.ERR_UNSUPPORTED_ENCRYPTION=ps,e.ERR_UNSUPPORTED_FORMAT=Vs,e.ERR_ZIP_NOT_EMPTY=qs,e.HttpRangeReader=class extends ir{constructor(e,t={}){t.useRangeHeader=!0,super(e,t)}},e.HttpReader=ir,e.Reader=Vt,e.SplitDataReader=or,e.SplitDataWriter=cr,e.TextReader=class extends qt{constructor(e){super(new g([e],{type:"text/plain"}))}},e.TextWriter=class extends Kt{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}},e.Uint8ArrayReader=class extends Vt{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}},e.Uint8ArrayWriter=class extends Bt{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}},e.Writer=Bt,e.ZipReader=Ss,e.ZipReaderStream=class{constructor(e={}){const{readable:t,writable:r}=new F,s=new Ss(t,e).getEntriesGenerator();this.readable=new R({async pull(e){const{done:t,value:r}=await s.next();if(t)return e.close();const n={...r,readable:(()=>{const{readable:e,writable:t}=new F;if(r.getData)return r.getData(t),e})()};delete n.getData,e.enqueue(n)}}),this.writable=r}},e.ZipWriter=Js,e.ZipWriterStream=class{constructor(e={}){const{readable:t,writable:r}=new F;this.readable=t,this.zipWriter=new Js(r,e)}transform(e){const{readable:t,writable:r}=new F({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(e,t),{readable:this.readable,writable:r}}writable(e){const{readable:t,writable:r}=new F;return this.zipWriter.add(e,t),r}close(e,t={}){return this.zipWriter.close(e,t)}},e.configure=ce,e.getMimeType=()=>"application/octet-stream",e.terminateWorkers=async()=>{await y.allSettled(Tt.map(e=>(It(e),e.terminate())))}});