@zip.js/zip.js 2.6.26 → 2.6.28

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.
@@ -4,7 +4,7 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.zip = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- const { Array, Object, String, BigInt, Math, Date, Map, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
7
+ const { Array, Object, String, Number, BigInt, Math, Date, Map, Set, Response, URL, Error, Uint8Array, Uint16Array, Uint32Array, DataView, Blob, Promise, TextEncoder, TextDecoder, document, crypto, btoa, TransformStream, ReadableStream, WritableStream, CompressionStream, DecompressionStream, navigator } = globalThis;
8
8
 
9
9
  /*
10
10
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
@@ -4257,73 +4257,35 @@
4257
4257
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4258
4258
  */
4259
4259
 
4260
- /* global navigator */
4261
-
4262
- const MINIMUM_CHUNK_SIZE = 64;
4263
- const UNDEFINED_TYPE$2 = undefined;
4264
- const DEFAULT_CONFIGURATION = {
4265
- chunkSize: 512 * 1024,
4266
- maxWorkers: (typeof navigator != "undefined" && navigator.hardwareConcurrency) || 2,
4267
- terminateWorkerTimeout: 5000,
4268
- useWebWorkers: true,
4269
- workerScripts: undefined
4270
- };
4271
-
4272
- const config = Object.assign({}, DEFAULT_CONFIGURATION);
4273
-
4274
- function getConfiguration() {
4275
- return config;
4260
+ const table$1 = [];
4261
+ for (let i = 0; i < 256; i++) {
4262
+ let t = i;
4263
+ for (let j = 0; j < 8; j++) {
4264
+ if (t & 1) {
4265
+ t = (t >>> 1) ^ 0xEDB88320;
4266
+ } else {
4267
+ t = t >>> 1;
4268
+ }
4269
+ }
4270
+ table$1[i] = t;
4276
4271
  }
4277
4272
 
4278
- function getChunkSize(config) {
4279
- return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
4280
- }
4273
+ class Crc32 {
4281
4274
 
4282
- function configure(configuration) {
4283
- const {
4284
- baseURL,
4285
- chunkSize,
4286
- maxWorkers,
4287
- terminateWorkerTimeout,
4288
- useCompressionStream,
4289
- useWebWorkers,
4290
- Deflate,
4291
- Inflate,
4292
- workerScripts
4293
- } = configuration;
4294
- setIfDefined("baseURL", baseURL);
4295
- setIfDefined("chunkSize", chunkSize);
4296
- setIfDefined("maxWorkers", maxWorkers);
4297
- setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
4298
- setIfDefined("useCompressionStream", useCompressionStream);
4299
- setIfDefined("useWebWorkers", useWebWorkers);
4300
- setIfDefined("Deflate", Deflate);
4301
- setIfDefined("Inflate", Inflate);
4302
- if (workerScripts !== UNDEFINED_TYPE$2) {
4303
- const { deflate, inflate } = workerScripts;
4304
- if (deflate || inflate) {
4305
- if (!config.workerScripts) {
4306
- config.workerScripts = {};
4307
- }
4308
- }
4309
- if (deflate) {
4310
- if (!Array.isArray(deflate)) {
4311
- throw new Error("workerScripts.deflate must be an array");
4312
- }
4313
- config.workerScripts.deflate = deflate;
4314
- }
4315
- if (inflate) {
4316
- if (!Array.isArray(inflate)) {
4317
- throw new Error("workerScripts.inflate must be an array");
4318
- }
4319
- config.workerScripts.inflate = inflate;
4275
+ constructor(crc) {
4276
+ this.crc = crc || -1;
4277
+ }
4278
+
4279
+ append(data) {
4280
+ let crc = this.crc | 0;
4281
+ for (let offset = 0, length = data.length | 0; offset < length; offset++) {
4282
+ crc = (crc >>> 8) ^ table$1[(crc ^ data[offset]) & 0xFF];
4320
4283
  }
4284
+ this.crc = crc;
4321
4285
  }
4322
- }
4323
4286
 
4324
- function setIfDefined(propertyName, propertyValue) {
4325
- if (propertyValue !== UNDEFINED_TYPE$2) {
4326
- config[propertyName] = propertyValue;
4287
+ get() {
4288
+ return ~this.crc;
4327
4289
  }
4328
4290
  }
4329
4291
 
@@ -4355,1115 +4317,22 @@
4355
4317
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4356
4318
  */
4357
4319
 
4358
- function getMimeType$1() {
4359
- return "application/octet-stream";
4360
- }
4361
-
4362
- /*
4363
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
4364
-
4365
- Redistribution and use in source and binary forms, with or without
4366
- modification, are permitted provided that the following conditions are met:
4367
-
4368
- 1. Redistributions of source code must retain the above copyright notice,
4369
- this list of conditions and the following disclaimer.
4370
-
4371
- 2. Redistributions in binary form must reproduce the above copyright
4372
- notice, this list of conditions and the following disclaimer in
4373
- the documentation and/or other materials provided with the distribution.
4374
-
4375
- 3. The names of the authors may not be used to endorse or promote products
4376
- derived from this software without specific prior written permission.
4377
-
4378
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
4379
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
4380
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
4381
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
4382
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
4383
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
4384
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
4385
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
4386
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
4387
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4388
- */
4389
-
4390
- const table$1 = {
4391
- "application": {
4392
- "andrew-inset": "ez",
4393
- "annodex": "anx",
4394
- "atom+xml": "atom",
4395
- "atomcat+xml": "atomcat",
4396
- "atomserv+xml": "atomsrv",
4397
- "bbolin": "lin",
4398
- "cap": ["cap", "pcap"],
4399
- "cu-seeme": "cu",
4400
- "davmount+xml": "davmount",
4401
- "dsptype": "tsp",
4402
- "ecmascript": ["es", "ecma"],
4403
- "futuresplash": "spl",
4404
- "hta": "hta",
4405
- "java-archive": "jar",
4406
- "java-serialized-object": "ser",
4407
- "java-vm": "class",
4408
- "javascript": "js",
4409
- "m3g": "m3g",
4410
- "mac-binhex40": "hqx",
4411
- "mathematica": ["nb", "ma", "mb"],
4412
- "msaccess": "mdb",
4413
- "msword": ["doc", "dot"],
4414
- "mxf": "mxf",
4415
- "oda": "oda",
4416
- "ogg": "ogx",
4417
- "pdf": "pdf",
4418
- "pgp-keys": "key",
4419
- "pgp-signature": ["asc", "sig"],
4420
- "pics-rules": "prf",
4421
- "postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
4422
- "rar": "rar",
4423
- "rdf+xml": "rdf",
4424
- "rss+xml": "rss",
4425
- "rtf": "rtf",
4426
- "smil": ["smi", "smil"],
4427
- "xhtml+xml": ["xhtml", "xht"],
4428
- "xml": ["xml", "xsl", "xsd"],
4429
- "xspf+xml": "xspf",
4430
- "zip": "zip",
4431
- "vnd.android.package-archive": "apk",
4432
- "vnd.cinderella": "cdy",
4433
- "vnd.google-earth.kml+xml": "kml",
4434
- "vnd.google-earth.kmz": "kmz",
4435
- "vnd.mozilla.xul+xml": "xul",
4436
- "vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
4437
- "vnd.ms-pki.seccat": "cat",
4438
- "vnd.ms-pki.stl": "stl",
4439
- "vnd.ms-powerpoint": ["ppt", "pps", "pot"],
4440
- "vnd.oasis.opendocument.chart": "odc",
4441
- "vnd.oasis.opendocument.database": "odb",
4442
- "vnd.oasis.opendocument.formula": "odf",
4443
- "vnd.oasis.opendocument.graphics": "odg",
4444
- "vnd.oasis.opendocument.graphics-template": "otg",
4445
- "vnd.oasis.opendocument.image": "odi",
4446
- "vnd.oasis.opendocument.presentation": "odp",
4447
- "vnd.oasis.opendocument.presentation-template": "otp",
4448
- "vnd.oasis.opendocument.spreadsheet": "ods",
4449
- "vnd.oasis.opendocument.spreadsheet-template": "ots",
4450
- "vnd.oasis.opendocument.text": "odt",
4451
- "vnd.oasis.opendocument.text-master": "odm",
4452
- "vnd.oasis.opendocument.text-template": "ott",
4453
- "vnd.oasis.opendocument.text-web": "oth",
4454
- "vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
4455
- "vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
4456
- "vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
4457
- "vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
4458
- "vnd.openxmlformats-officedocument.presentationml.template": "potx",
4459
- "vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
4460
- "vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
4461
- "vnd.smaf": "mmf",
4462
- "vnd.stardivision.calc": "sdc",
4463
- "vnd.stardivision.chart": "sds",
4464
- "vnd.stardivision.draw": "sda",
4465
- "vnd.stardivision.impress": "sdd",
4466
- "vnd.stardivision.math": ["sdf", "smf"],
4467
- "vnd.stardivision.writer": ["sdw", "vor"],
4468
- "vnd.stardivision.writer-global": "sgl",
4469
- "vnd.sun.xml.calc": "sxc",
4470
- "vnd.sun.xml.calc.template": "stc",
4471
- "vnd.sun.xml.draw": "sxd",
4472
- "vnd.sun.xml.draw.template": "std",
4473
- "vnd.sun.xml.impress": "sxi",
4474
- "vnd.sun.xml.impress.template": "sti",
4475
- "vnd.sun.xml.math": "sxm",
4476
- "vnd.sun.xml.writer": "sxw",
4477
- "vnd.sun.xml.writer.global": "sxg",
4478
- "vnd.sun.xml.writer.template": "stw",
4479
- "vnd.symbian.install": ["sis", "sisx"],
4480
- "vnd.visio": ["vsd", "vst", "vss", "vsw"],
4481
- "vnd.wap.wbxml": "wbxml",
4482
- "vnd.wap.wmlc": "wmlc",
4483
- "vnd.wap.wmlscriptc": "wmlsc",
4484
- "vnd.wordperfect": "wpd",
4485
- "vnd.wordperfect5.1": "wp5",
4486
- "x-123": "wk",
4487
- "x-7z-compressed": "7z",
4488
- "x-abiword": "abw",
4489
- "x-apple-diskimage": "dmg",
4490
- "x-bcpio": "bcpio",
4491
- "x-bittorrent": "torrent",
4492
- "x-cbr": ["cbr", "cba", "cbt", "cb7"],
4493
- "x-cbz": "cbz",
4494
- "x-cdf": ["cdf", "cda"],
4495
- "x-cdlink": "vcd",
4496
- "x-chess-pgn": "pgn",
4497
- "x-cpio": "cpio",
4498
- "x-csh": "csh",
4499
- "x-debian-package": ["deb", "udeb"],
4500
- "x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
4501
- "x-dms": "dms",
4502
- "x-doom": "wad",
4503
- "x-dvi": "dvi",
4504
- "x-httpd-eruby": "rhtml",
4505
- "x-font": "pcf.Z",
4506
- "x-freemind": "mm",
4507
- "x-gnumeric": "gnumeric",
4508
- "x-go-sgf": "sgf",
4509
- "x-graphing-calculator": "gcf",
4510
- "x-gtar": ["gtar", "taz"],
4511
- "x-hdf": "hdf",
4512
- "x-httpd-php": ["phtml", "pht", "php"],
4513
- "x-httpd-php-source": "phps",
4514
- "x-httpd-php3": "php3",
4515
- "x-httpd-php3-preprocessed": "php3p",
4516
- "x-httpd-php4": "php4",
4517
- "x-httpd-php5": "php5",
4518
- "x-ica": "ica",
4519
- "x-info": "info",
4520
- "x-internet-signup": ["ins", "isp"],
4521
- "x-iphone": "iii",
4522
- "x-iso9660-image": "iso",
4523
- "x-java-jnlp-file": "jnlp",
4524
- "x-jmol": "jmz",
4525
- "x-killustrator": "kil",
4526
- "x-koan": ["skp", "skd", "skt", "skm"],
4527
- "x-kpresenter": ["kpr", "kpt"],
4528
- "x-kword": ["kwd", "kwt"],
4529
- "x-latex": "latex",
4530
- "x-lha": "lha",
4531
- "x-lyx": "lyx",
4532
- "x-lzh": "lzh",
4533
- "x-lzx": "lzx",
4534
- "x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
4535
- "x-ms-wmd": "wmd",
4536
- "x-ms-wmz": "wmz",
4537
- "x-msdos-program": ["com", "exe", "bat", "dll"],
4538
- "x-msi": "msi",
4539
- "x-netcdf": ["nc", "cdf"],
4540
- "x-ns-proxy-autoconfig": ["pac", "dat"],
4541
- "x-nwc": "nwc",
4542
- "x-object": "o",
4543
- "x-oz-application": "oza",
4544
- "x-pkcs7-certreqresp": "p7r",
4545
- "x-python-code": ["pyc", "pyo"],
4546
- "x-qgis": ["qgs", "shp", "shx"],
4547
- "x-quicktimeplayer": "qtl",
4548
- "x-redhat-package-manager": "rpm",
4549
- "x-ruby": "rb",
4550
- "x-sh": "sh",
4551
- "x-shar": "shar",
4552
- "x-shockwave-flash": ["swf", "swfl"],
4553
- "x-silverlight": "scr",
4554
- "x-stuffit": "sit",
4555
- "x-sv4cpio": "sv4cpio",
4556
- "x-sv4crc": "sv4crc",
4557
- "x-tar": "tar",
4558
- "x-tcl": "tcl",
4559
- "x-tex-gf": "gf",
4560
- "x-tex-pk": "pk",
4561
- "x-texinfo": ["texinfo", "texi"],
4562
- "x-trash": ["~", "%", "bak", "old", "sik"],
4563
- "x-troff": ["t", "tr", "roff"],
4564
- "x-troff-man": "man",
4565
- "x-troff-me": "me",
4566
- "x-troff-ms": "ms",
4567
- "x-ustar": "ustar",
4568
- "x-wais-source": "src",
4569
- "x-wingz": "wz",
4570
- "x-x509-ca-cert": ["crt", "der", "cer"],
4571
- "x-xcf": "xcf",
4572
- "x-xfig": "fig",
4573
- "x-xpinstall": "xpi",
4574
- "applixware": "aw",
4575
- "atomsvc+xml": "atomsvc",
4576
- "ccxml+xml": "ccxml",
4577
- "cdmi-capability": "cdmia",
4578
- "cdmi-container": "cdmic",
4579
- "cdmi-domain": "cdmid",
4580
- "cdmi-object": "cdmio",
4581
- "cdmi-queue": "cdmiq",
4582
- "docbook+xml": "dbk",
4583
- "dssc+der": "dssc",
4584
- "dssc+xml": "xdssc",
4585
- "emma+xml": "emma",
4586
- "epub+zip": "epub",
4587
- "exi": "exi",
4588
- "font-tdpfr": "pfr",
4589
- "gml+xml": "gml",
4590
- "gpx+xml": "gpx",
4591
- "gxf": "gxf",
4592
- "hyperstudio": "stk",
4593
- "inkml+xml": ["ink", "inkml"],
4594
- "ipfix": "ipfix",
4595
- "json": "json",
4596
- "jsonml+json": "jsonml",
4597
- "lost+xml": "lostxml",
4598
- "mads+xml": "mads",
4599
- "marc": "mrc",
4600
- "marcxml+xml": "mrcx",
4601
- "mathml+xml": "mathml",
4602
- "mbox": "mbox",
4603
- "mediaservercontrol+xml": "mscml",
4604
- "metalink+xml": "metalink",
4605
- "metalink4+xml": "meta4",
4606
- "mets+xml": "mets",
4607
- "mods+xml": "mods",
4608
- "mp21": ["m21", "mp21"],
4609
- "mp4": "mp4s",
4610
- "oebps-package+xml": "opf",
4611
- "omdoc+xml": "omdoc",
4612
- "onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
4613
- "oxps": "oxps",
4614
- "patch-ops-error+xml": "xer",
4615
- "pgp-encrypted": "pgp",
4616
- "pkcs10": "p10",
4617
- "pkcs7-mime": ["p7m", "p7c"],
4618
- "pkcs7-signature": "p7s",
4619
- "pkcs8": "p8",
4620
- "pkix-attr-cert": "ac",
4621
- "pkix-crl": "crl",
4622
- "pkix-pkipath": "pkipath",
4623
- "pkixcmp": "pki",
4624
- "pls+xml": "pls",
4625
- "prs.cww": "cww",
4626
- "pskc+xml": "pskcxml",
4627
- "reginfo+xml": "rif",
4628
- "relax-ng-compact-syntax": "rnc",
4629
- "resource-lists+xml": "rl",
4630
- "resource-lists-diff+xml": "rld",
4631
- "rls-services+xml": "rs",
4632
- "rpki-ghostbusters": "gbr",
4633
- "rpki-manifest": "mft",
4634
- "rpki-roa": "roa",
4635
- "rsd+xml": "rsd",
4636
- "sbml+xml": "sbml",
4637
- "scvp-cv-request": "scq",
4638
- "scvp-cv-response": "scs",
4639
- "scvp-vp-request": "spq",
4640
- "scvp-vp-response": "spp",
4641
- "sdp": "sdp",
4642
- "set-payment-initiation": "setpay",
4643
- "set-registration-initiation": "setreg",
4644
- "shf+xml": "shf",
4645
- "sparql-query": "rq",
4646
- "sparql-results+xml": "srx",
4647
- "srgs": "gram",
4648
- "srgs+xml": "grxml",
4649
- "sru+xml": "sru",
4650
- "ssdl+xml": "ssdl",
4651
- "ssml+xml": "ssml",
4652
- "tei+xml": ["tei", "teicorpus"],
4653
- "thraud+xml": "tfi",
4654
- "timestamped-data": "tsd",
4655
- "vnd.3gpp.pic-bw-large": "plb",
4656
- "vnd.3gpp.pic-bw-small": "psb",
4657
- "vnd.3gpp.pic-bw-var": "pvb",
4658
- "vnd.3gpp2.tcap": "tcap",
4659
- "vnd.3m.post-it-notes": "pwn",
4660
- "vnd.accpac.simply.aso": "aso",
4661
- "vnd.accpac.simply.imp": "imp",
4662
- "vnd.acucobol": "acu",
4663
- "vnd.acucorp": ["atc", "acutc"],
4664
- "vnd.adobe.air-application-installer-package+zip": "air",
4665
- "vnd.adobe.formscentral.fcdt": "fcdt",
4666
- "vnd.adobe.fxp": ["fxp", "fxpl"],
4667
- "vnd.adobe.xdp+xml": "xdp",
4668
- "vnd.adobe.xfdf": "xfdf",
4669
- "vnd.ahead.space": "ahead",
4670
- "vnd.airzip.filesecure.azf": "azf",
4671
- "vnd.airzip.filesecure.azs": "azs",
4672
- "vnd.amazon.ebook": "azw",
4673
- "vnd.americandynamics.acc": "acc",
4674
- "vnd.amiga.ami": "ami",
4675
- "vnd.anser-web-certificate-issue-initiation": "cii",
4676
- "vnd.anser-web-funds-transfer-initiation": "fti",
4677
- "vnd.antix.game-component": "atx",
4678
- "vnd.apple.installer+xml": "mpkg",
4679
- "vnd.apple.mpegurl": "m3u8",
4680
- "vnd.aristanetworks.swi": "swi",
4681
- "vnd.astraea-software.iota": "iota",
4682
- "vnd.audiograph": "aep",
4683
- "vnd.blueice.multipass": "mpm",
4684
- "vnd.bmi": "bmi",
4685
- "vnd.businessobjects": "rep",
4686
- "vnd.chemdraw+xml": "cdxml",
4687
- "vnd.chipnuts.karaoke-mmd": "mmd",
4688
- "vnd.claymore": "cla",
4689
- "vnd.cloanto.rp9": "rp9",
4690
- "vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
4691
- "vnd.cluetrust.cartomobile-config": "c11amc",
4692
- "vnd.cluetrust.cartomobile-config-pkg": "c11amz",
4693
- "vnd.commonspace": "csp",
4694
- "vnd.contact.cmsg": "cdbcmsg",
4695
- "vnd.cosmocaller": "cmc",
4696
- "vnd.crick.clicker": "clkx",
4697
- "vnd.crick.clicker.keyboard": "clkk",
4698
- "vnd.crick.clicker.palette": "clkp",
4699
- "vnd.crick.clicker.template": "clkt",
4700
- "vnd.crick.clicker.wordbank": "clkw",
4701
- "vnd.criticaltools.wbs+xml": "wbs",
4702
- "vnd.ctc-posml": "pml",
4703
- "vnd.cups-ppd": "ppd",
4704
- "vnd.curl.car": "car",
4705
- "vnd.curl.pcurl": "pcurl",
4706
- "vnd.dart": "dart",
4707
- "vnd.data-vision.rdz": "rdz",
4708
- "vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
4709
- "vnd.dece.ttml+xml": ["uvt", "uvvt"],
4710
- "vnd.dece.unspecified": ["uvx", "uvvx"],
4711
- "vnd.dece.zip": ["uvz", "uvvz"],
4712
- "vnd.denovo.fcselayout-link": "fe_launch",
4713
- "vnd.dna": "dna",
4714
- "vnd.dolby.mlp": "mlp",
4715
- "vnd.dpgraph": "dpg",
4716
- "vnd.dreamfactory": "dfac",
4717
- "vnd.ds-keypoint": "kpxx",
4718
- "vnd.dvb.ait": "ait",
4719
- "vnd.dvb.service": "svc",
4720
- "vnd.dynageo": "geo",
4721
- "vnd.ecowin.chart": "mag",
4722
- "vnd.enliven": "nml",
4723
- "vnd.epson.esf": "esf",
4724
- "vnd.epson.msf": "msf",
4725
- "vnd.epson.quickanime": "qam",
4726
- "vnd.epson.salt": "slt",
4727
- "vnd.epson.ssf": "ssf",
4728
- "vnd.eszigno3+xml": ["es3", "et3"],
4729
- "vnd.ezpix-album": "ez2",
4730
- "vnd.ezpix-package": "ez3",
4731
- "vnd.fdf": "fdf",
4732
- "vnd.fdsn.mseed": "mseed",
4733
- "vnd.fdsn.seed": ["seed", "dataless"],
4734
- "vnd.flographit": "gph",
4735
- "vnd.fluxtime.clip": "ftc",
4736
- "vnd.framemaker": ["fm", "frame", "maker", "book"],
4737
- "vnd.frogans.fnc": "fnc",
4738
- "vnd.frogans.ltf": "ltf",
4739
- "vnd.fsc.weblaunch": "fsc",
4740
- "vnd.fujitsu.oasys": "oas",
4741
- "vnd.fujitsu.oasys2": "oa2",
4742
- "vnd.fujitsu.oasys3": "oa3",
4743
- "vnd.fujitsu.oasysgp": "fg5",
4744
- "vnd.fujitsu.oasysprs": "bh2",
4745
- "vnd.fujixerox.ddd": "ddd",
4746
- "vnd.fujixerox.docuworks": "xdw",
4747
- "vnd.fujixerox.docuworks.binder": "xbd",
4748
- "vnd.fuzzysheet": "fzs",
4749
- "vnd.genomatix.tuxedo": "txd",
4750
- "vnd.geogebra.file": "ggb",
4751
- "vnd.geogebra.tool": "ggt",
4752
- "vnd.geometry-explorer": ["gex", "gre"],
4753
- "vnd.geonext": "gxt",
4754
- "vnd.geoplan": "g2w",
4755
- "vnd.geospace": "g3w",
4756
- "vnd.gmx": "gmx",
4757
- "vnd.grafeq": ["gqf", "gqs"],
4758
- "vnd.groove-account": "gac",
4759
- "vnd.groove-help": "ghf",
4760
- "vnd.groove-identity-message": "gim",
4761
- "vnd.groove-injector": "grv",
4762
- "vnd.groove-tool-message": "gtm",
4763
- "vnd.groove-tool-template": "tpl",
4764
- "vnd.groove-vcard": "vcg",
4765
- "vnd.hal+xml": "hal",
4766
- "vnd.handheld-entertainment+xml": "zmm",
4767
- "vnd.hbci": "hbci",
4768
- "vnd.hhe.lesson-player": "les",
4769
- "vnd.hp-hpgl": "hpgl",
4770
- "vnd.hp-hpid": "hpid",
4771
- "vnd.hp-hps": "hps",
4772
- "vnd.hp-jlyt": "jlt",
4773
- "vnd.hp-pcl": "pcl",
4774
- "vnd.hp-pclxl": "pclxl",
4775
- "vnd.hydrostatix.sof-data": "sfd-hdstx",
4776
- "vnd.ibm.minipay": "mpy",
4777
- "vnd.ibm.modcap": ["afp", "listafp", "list3820"],
4778
- "vnd.ibm.rights-management": "irm",
4779
- "vnd.ibm.secure-container": "sc",
4780
- "vnd.iccprofile": ["icc", "icm"],
4781
- "vnd.igloader": "igl",
4782
- "vnd.immervision-ivp": "ivp",
4783
- "vnd.immervision-ivu": "ivu",
4784
- "vnd.insors.igm": "igm",
4785
- "vnd.intercon.formnet": ["xpw", "xpx"],
4786
- "vnd.intergeo": "i2g",
4787
- "vnd.intu.qbo": "qbo",
4788
- "vnd.intu.qfx": "qfx",
4789
- "vnd.ipunplugged.rcprofile": "rcprofile",
4790
- "vnd.irepository.package+xml": "irp",
4791
- "vnd.is-xpr": "xpr",
4792
- "vnd.isac.fcs": "fcs",
4793
- "vnd.jam": "jam",
4794
- "vnd.jcp.javame.midlet-rms": "rms",
4795
- "vnd.jisp": "jisp",
4796
- "vnd.joost.joda-archive": "joda",
4797
- "vnd.kahootz": ["ktz", "ktr"],
4798
- "vnd.kde.karbon": "karbon",
4799
- "vnd.kde.kchart": "chrt",
4800
- "vnd.kde.kformula": "kfo",
4801
- "vnd.kde.kivio": "flw",
4802
- "vnd.kde.kontour": "kon",
4803
- "vnd.kde.kpresenter": ["kpr", "kpt"],
4804
- "vnd.kde.kspread": "ksp",
4805
- "vnd.kde.kword": ["kwd", "kwt"],
4806
- "vnd.kenameaapp": "htke",
4807
- "vnd.kidspiration": "kia",
4808
- "vnd.kinar": ["kne", "knp"],
4809
- "vnd.koan": ["skp", "skd", "skt", "skm"],
4810
- "vnd.kodak-descriptor": "sse",
4811
- "vnd.las.las+xml": "lasxml",
4812
- "vnd.llamagraphics.life-balance.desktop": "lbd",
4813
- "vnd.llamagraphics.life-balance.exchange+xml": "lbe",
4814
- "vnd.lotus-1-2-3": "123",
4815
- "vnd.lotus-approach": "apr",
4816
- "vnd.lotus-freelance": "pre",
4817
- "vnd.lotus-notes": "nsf",
4818
- "vnd.lotus-organizer": "org",
4819
- "vnd.lotus-screencam": "scm",
4820
- "vnd.lotus-wordpro": "lwp",
4821
- "vnd.macports.portpkg": "portpkg",
4822
- "vnd.mcd": "mcd",
4823
- "vnd.medcalcdata": "mc1",
4824
- "vnd.mediastation.cdkey": "cdkey",
4825
- "vnd.mfer": "mwf",
4826
- "vnd.mfmp": "mfm",
4827
- "vnd.micrografx.flo": "flo",
4828
- "vnd.micrografx.igx": "igx",
4829
- "vnd.mif": "mif",
4830
- "vnd.mobius.daf": "daf",
4831
- "vnd.mobius.dis": "dis",
4832
- "vnd.mobius.mbk": "mbk",
4833
- "vnd.mobius.mqy": "mqy",
4834
- "vnd.mobius.msl": "msl",
4835
- "vnd.mobius.plc": "plc",
4836
- "vnd.mobius.txf": "txf",
4837
- "vnd.mophun.application": "mpn",
4838
- "vnd.mophun.certificate": "mpc",
4839
- "vnd.ms-artgalry": "cil",
4840
- "vnd.ms-cab-compressed": "cab",
4841
- "vnd.ms-excel.addin.macroenabled.12": "xlam",
4842
- "vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
4843
- "vnd.ms-excel.sheet.macroenabled.12": "xlsm",
4844
- "vnd.ms-excel.template.macroenabled.12": "xltm",
4845
- "vnd.ms-fontobject": "eot",
4846
- "vnd.ms-htmlhelp": "chm",
4847
- "vnd.ms-ims": "ims",
4848
- "vnd.ms-lrm": "lrm",
4849
- "vnd.ms-officetheme": "thmx",
4850
- "vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
4851
- "vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
4852
- "vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
4853
- "vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
4854
- "vnd.ms-powerpoint.template.macroenabled.12": "potm",
4855
- "vnd.ms-project": ["mpp", "mpt"],
4856
- "vnd.ms-word.document.macroenabled.12": "docm",
4857
- "vnd.ms-word.template.macroenabled.12": "dotm",
4858
- "vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
4859
- "vnd.ms-wpl": "wpl",
4860
- "vnd.ms-xpsdocument": "xps",
4861
- "vnd.mseq": "mseq",
4862
- "vnd.musician": "mus",
4863
- "vnd.muvee.style": "msty",
4864
- "vnd.mynfc": "taglet",
4865
- "vnd.neurolanguage.nlu": "nlu",
4866
- "vnd.nitf": ["ntf", "nitf"],
4867
- "vnd.noblenet-directory": "nnd",
4868
- "vnd.noblenet-sealer": "nns",
4869
- "vnd.noblenet-web": "nnw",
4870
- "vnd.nokia.n-gage.data": "ngdat",
4871
- "vnd.nokia.n-gage.symbian.install": "n-gage",
4872
- "vnd.nokia.radio-preset": "rpst",
4873
- "vnd.nokia.radio-presets": "rpss",
4874
- "vnd.novadigm.edm": "edm",
4875
- "vnd.novadigm.edx": "edx",
4876
- "vnd.novadigm.ext": "ext",
4877
- "vnd.oasis.opendocument.chart-template": "otc",
4878
- "vnd.oasis.opendocument.formula-template": "odft",
4879
- "vnd.oasis.opendocument.image-template": "oti",
4880
- "vnd.olpc-sugar": "xo",
4881
- "vnd.oma.dd2+xml": "dd2",
4882
- "vnd.openofficeorg.extension": "oxt",
4883
- "vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
4884
- "vnd.osgeo.mapguide.package": "mgp",
4885
- "vnd.osgi.dp": "dp",
4886
- "vnd.osgi.subsystem": "esa",
4887
- "vnd.palm": ["pdb", "pqa", "oprc"],
4888
- "vnd.pawaafile": "paw",
4889
- "vnd.pg.format": "str",
4890
- "vnd.pg.osasli": "ei6",
4891
- "vnd.picsel": "efif",
4892
- "vnd.pmi.widget": "wg",
4893
- "vnd.pocketlearn": "plf",
4894
- "vnd.powerbuilder6": "pbd",
4895
- "vnd.previewsystems.box": "box",
4896
- "vnd.proteus.magazine": "mgz",
4897
- "vnd.publishare-delta-tree": "qps",
4898
- "vnd.pvi.ptid1": "ptid",
4899
- "vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
4900
- "vnd.realvnc.bed": "bed",
4901
- "vnd.recordare.musicxml": "mxl",
4902
- "vnd.recordare.musicxml+xml": "musicxml",
4903
- "vnd.rig.cryptonote": "cryptonote",
4904
- "vnd.rn-realmedia": "rm",
4905
- "vnd.rn-realmedia-vbr": "rmvb",
4906
- "vnd.route66.link66+xml": "link66",
4907
- "vnd.sailingtracker.track": "st",
4908
- "vnd.seemail": "see",
4909
- "vnd.sema": "sema",
4910
- "vnd.semd": "semd",
4911
- "vnd.semf": "semf",
4912
- "vnd.shana.informed.formdata": "ifm",
4913
- "vnd.shana.informed.formtemplate": "itp",
4914
- "vnd.shana.informed.interchange": "iif",
4915
- "vnd.shana.informed.package": "ipk",
4916
- "vnd.simtech-mindmapper": ["twd", "twds"],
4917
- "vnd.smart.teacher": "teacher",
4918
- "vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
4919
- "vnd.spotfire.dxp": "dxp",
4920
- "vnd.spotfire.sfs": "sfs",
4921
- "vnd.stepmania.package": "smzip",
4922
- "vnd.stepmania.stepchart": "sm",
4923
- "vnd.sus-calendar": ["sus", "susp"],
4924
- "vnd.svd": "svd",
4925
- "vnd.syncml+xml": "xsm",
4926
- "vnd.syncml.dm+wbxml": "bdm",
4927
- "vnd.syncml.dm+xml": "xdm",
4928
- "vnd.tao.intent-module-archive": "tao",
4929
- "vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
4930
- "vnd.tmobile-livetv": "tmo",
4931
- "vnd.trid.tpt": "tpt",
4932
- "vnd.triscape.mxs": "mxs",
4933
- "vnd.trueapp": "tra",
4934
- "vnd.ufdl": ["ufd", "ufdl"],
4935
- "vnd.uiq.theme": "utz",
4936
- "vnd.umajin": "umj",
4937
- "vnd.unity": "unityweb",
4938
- "vnd.uoml+xml": "uoml",
4939
- "vnd.vcx": "vcx",
4940
- "vnd.visionary": "vis",
4941
- "vnd.vsf": "vsf",
4942
- "vnd.webturbo": "wtb",
4943
- "vnd.wolfram.player": "nbp",
4944
- "vnd.wqd": "wqd",
4945
- "vnd.wt.stf": "stf",
4946
- "vnd.xara": "xar",
4947
- "vnd.xfdl": "xfdl",
4948
- "vnd.yamaha.hv-dic": "hvd",
4949
- "vnd.yamaha.hv-script": "hvs",
4950
- "vnd.yamaha.hv-voice": "hvp",
4951
- "vnd.yamaha.openscoreformat": "osf",
4952
- "vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
4953
- "vnd.yamaha.smaf-audio": "saf",
4954
- "vnd.yamaha.smaf-phrase": "spf",
4955
- "vnd.yellowriver-custom-menu": "cmp",
4956
- "vnd.zul": ["zir", "zirz"],
4957
- "vnd.zzazz.deck+xml": "zaz",
4958
- "voicexml+xml": "vxml",
4959
- "widget": "wgt",
4960
- "winhlp": "hlp",
4961
- "wsdl+xml": "wsdl",
4962
- "wspolicy+xml": "wspolicy",
4963
- "x-ace-compressed": "ace",
4964
- "x-authorware-bin": ["aab", "x32", "u32", "vox"],
4965
- "x-authorware-map": "aam",
4966
- "x-authorware-seg": "aas",
4967
- "x-blorb": ["blb", "blorb"],
4968
- "x-bzip": "bz",
4969
- "x-bzip2": ["bz2", "boz"],
4970
- "x-cfs-compressed": "cfs",
4971
- "x-chat": "chat",
4972
- "x-conference": "nsc",
4973
- "x-dgc-compressed": "dgc",
4974
- "x-dtbncx+xml": "ncx",
4975
- "x-dtbook+xml": "dtb",
4976
- "x-dtbresource+xml": "res",
4977
- "x-eva": "eva",
4978
- "x-font-bdf": "bdf",
4979
- "x-font-ghostscript": "gsf",
4980
- "x-font-linux-psf": "psf",
4981
- "x-font-otf": "otf",
4982
- "x-font-pcf": "pcf",
4983
- "x-font-snf": "snf",
4984
- "x-font-ttf": ["ttf", "ttc"],
4985
- "x-font-type1": ["pfa", "pfb", "pfm", "afm"],
4986
- "x-font-woff": "woff",
4987
- "x-freearc": "arc",
4988
- "x-gca-compressed": "gca",
4989
- "x-glulx": "ulx",
4990
- "x-gramps-xml": "gramps",
4991
- "x-install-instructions": "install",
4992
- "x-lzh-compressed": ["lzh", "lha"],
4993
- "x-mie": "mie",
4994
- "x-mobipocket-ebook": ["prc", "mobi"],
4995
- "x-ms-application": "application",
4996
- "x-ms-shortcut": "lnk",
4997
- "x-ms-xbap": "xbap",
4998
- "x-msbinder": "obd",
4999
- "x-mscardfile": "crd",
5000
- "x-msclip": "clp",
5001
- "x-msdownload": ["exe", "dll", "com", "bat", "msi"],
5002
- "x-msmediaview": ["mvb", "m13", "m14"],
5003
- "x-msmetafile": ["wmf", "wmz", "emf", "emz"],
5004
- "x-msmoney": "mny",
5005
- "x-mspublisher": "pub",
5006
- "x-msschedule": "scd",
5007
- "x-msterminal": "trm",
5008
- "x-mswrite": "wri",
5009
- "x-nzb": "nzb",
5010
- "x-pkcs12": ["p12", "pfx"],
5011
- "x-pkcs7-certificates": ["p7b", "spc"],
5012
- "x-research-info-systems": "ris",
5013
- "x-silverlight-app": "xap",
5014
- "x-sql": "sql",
5015
- "x-stuffitx": "sitx",
5016
- "x-subrip": "srt",
5017
- "x-t3vm-image": "t3",
5018
- "x-tads": "gam",
5019
- "x-tex": "tex",
5020
- "x-tex-tfm": "tfm",
5021
- "x-tgif": "obj",
5022
- "x-xliff+xml": "xlf",
5023
- "x-xz": "xz",
5024
- "x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
5025
- "xaml+xml": "xaml",
5026
- "xcap-diff+xml": "xdf",
5027
- "xenc+xml": "xenc",
5028
- "xml-dtd": "dtd",
5029
- "xop+xml": "xop",
5030
- "xproc+xml": "xpl",
5031
- "xslt+xml": "xslt",
5032
- "xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
5033
- "yang": "yang",
5034
- "yin+xml": "yin",
5035
- "envoy": "evy",
5036
- "fractals": "fif",
5037
- "internet-property-stream": "acx",
5038
- "olescript": "axs",
5039
- "vnd.ms-outlook": "msg",
5040
- "vnd.ms-pkicertstore": "sst",
5041
- "x-compress": "z",
5042
- "x-compressed": "tgz",
5043
- "x-gzip": "gz",
5044
- "x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
5045
- "x-pkcs7-mime": ["p7c", "p7m"],
5046
- "ynd.ms-pkipko": "pko"
5047
- },
5048
- "audio": {
5049
- "amr": "amr",
5050
- "amr-wb": "awb",
5051
- "annodex": "axa",
5052
- "basic": ["au", "snd"],
5053
- "flac": "flac",
5054
- "midi": ["mid", "midi", "kar", "rmi"],
5055
- "mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
5056
- "mpegurl": "m3u",
5057
- "ogg": ["oga", "ogg", "spx"],
5058
- "prs.sid": "sid",
5059
- "x-aiff": ["aif", "aiff", "aifc"],
5060
- "x-gsm": "gsm",
5061
- "x-ms-wma": "wma",
5062
- "x-ms-wax": "wax",
5063
- "x-pn-realaudio": "ram",
5064
- "x-realaudio": "ra",
5065
- "x-sd2": "sd2",
5066
- "x-wav": "wav",
5067
- "adpcm": "adp",
5068
- "mp4": "mp4a",
5069
- "s3m": "s3m",
5070
- "silk": "sil",
5071
- "vnd.dece.audio": ["uva", "uvva"],
5072
- "vnd.digital-winds": "eol",
5073
- "vnd.dra": "dra",
5074
- "vnd.dts": "dts",
5075
- "vnd.dts.hd": "dtshd",
5076
- "vnd.lucent.voice": "lvp",
5077
- "vnd.ms-playready.media.pya": "pya",
5078
- "vnd.nuera.ecelp4800": "ecelp4800",
5079
- "vnd.nuera.ecelp7470": "ecelp7470",
5080
- "vnd.nuera.ecelp9600": "ecelp9600",
5081
- "vnd.rip": "rip",
5082
- "webm": "weba",
5083
- "x-aac": "aac",
5084
- "x-caf": "caf",
5085
- "x-matroska": "mka",
5086
- "x-pn-realaudio-plugin": "rmp",
5087
- "xm": "xm",
5088
- "mid": ["mid", "rmi"]
5089
- },
5090
- "chemical": {
5091
- "x-alchemy": "alc",
5092
- "x-cache": ["cac", "cache"],
5093
- "x-cache-csf": "csf",
5094
- "x-cactvs-binary": ["cbin", "cascii", "ctab"],
5095
- "x-cdx": "cdx",
5096
- "x-chem3d": "c3d",
5097
- "x-cif": "cif",
5098
- "x-cmdf": "cmdf",
5099
- "x-cml": "cml",
5100
- "x-compass": "cpa",
5101
- "x-crossfire": "bsd",
5102
- "x-csml": ["csml", "csm"],
5103
- "x-ctx": "ctx",
5104
- "x-cxf": ["cxf", "cef"],
5105
- "x-embl-dl-nucleotide": ["emb", "embl"],
5106
- "x-gamess-input": ["inp", "gam", "gamin"],
5107
- "x-gaussian-checkpoint": ["fch", "fchk"],
5108
- "x-gaussian-cube": "cub",
5109
- "x-gaussian-input": ["gau", "gjc", "gjf"],
5110
- "x-gaussian-log": "gal",
5111
- "x-gcg8-sequence": "gcg",
5112
- "x-genbank": "gen",
5113
- "x-hin": "hin",
5114
- "x-isostar": ["istr", "ist"],
5115
- "x-jcamp-dx": ["jdx", "dx"],
5116
- "x-kinemage": "kin",
5117
- "x-macmolecule": "mcm",
5118
- "x-macromodel-input": ["mmd", "mmod"],
5119
- "x-mdl-molfile": "mol",
5120
- "x-mdl-rdfile": "rd",
5121
- "x-mdl-rxnfile": "rxn",
5122
- "x-mdl-sdfile": ["sd", "sdf"],
5123
- "x-mdl-tgf": "tgf",
5124
- "x-mmcif": "mcif",
5125
- "x-mol2": "mol2",
5126
- "x-molconn-Z": "b",
5127
- "x-mopac-graph": "gpt",
5128
- "x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
5129
- "x-mopac-out": "moo",
5130
- "x-ncbi-asn1": "asn",
5131
- "x-ncbi-asn1-ascii": ["prt", "ent"],
5132
- "x-ncbi-asn1-binary": ["val", "aso"],
5133
- "x-pdb": ["pdb", "ent"],
5134
- "x-rosdal": "ros",
5135
- "x-swissprot": "sw",
5136
- "x-vamas-iso14976": "vms",
5137
- "x-vmd": "vmd",
5138
- "x-xtel": "xtel",
5139
- "x-xyz": "xyz"
5140
- },
5141
- "image": {
5142
- "gif": "gif",
5143
- "ief": "ief",
5144
- "jpeg": ["jpeg", "jpg", "jpe"],
5145
- "pcx": "pcx",
5146
- "png": "png",
5147
- "svg+xml": ["svg", "svgz"],
5148
- "tiff": ["tiff", "tif"],
5149
- "vnd.djvu": ["djvu", "djv"],
5150
- "vnd.wap.wbmp": "wbmp",
5151
- "x-canon-cr2": "cr2",
5152
- "x-canon-crw": "crw",
5153
- "x-cmu-raster": "ras",
5154
- "x-coreldraw": "cdr",
5155
- "x-coreldrawpattern": "pat",
5156
- "x-coreldrawtemplate": "cdt",
5157
- "x-corelphotopaint": "cpt",
5158
- "x-epson-erf": "erf",
5159
- "x-icon": "ico",
5160
- "x-jg": "art",
5161
- "x-jng": "jng",
5162
- "x-nikon-nef": "nef",
5163
- "x-olympus-orf": "orf",
5164
- "x-photoshop": "psd",
5165
- "x-portable-anymap": "pnm",
5166
- "x-portable-bitmap": "pbm",
5167
- "x-portable-graymap": "pgm",
5168
- "x-portable-pixmap": "ppm",
5169
- "x-rgb": "rgb",
5170
- "x-xbitmap": "xbm",
5171
- "x-xpixmap": "xpm",
5172
- "x-xwindowdump": "xwd",
5173
- "bmp": "bmp",
5174
- "cgm": "cgm",
5175
- "g3fax": "g3",
5176
- "ktx": "ktx",
5177
- "prs.btif": "btif",
5178
- "sgi": "sgi",
5179
- "vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
5180
- "vnd.dwg": "dwg",
5181
- "vnd.dxf": "dxf",
5182
- "vnd.fastbidsheet": "fbs",
5183
- "vnd.fpx": "fpx",
5184
- "vnd.fst": "fst",
5185
- "vnd.fujixerox.edmics-mmr": "mmr",
5186
- "vnd.fujixerox.edmics-rlc": "rlc",
5187
- "vnd.ms-modi": "mdi",
5188
- "vnd.ms-photo": "wdp",
5189
- "vnd.net-fpx": "npx",
5190
- "vnd.xiff": "xif",
5191
- "webp": "webp",
5192
- "x-3ds": "3ds",
5193
- "x-cmx": "cmx",
5194
- "x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
5195
- "x-pict": ["pic", "pct"],
5196
- "x-tga": "tga",
5197
- "cis-cod": "cod",
5198
- "pipeg": "jfif"
5199
- },
5200
- "message": {
5201
- "rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
5202
- },
5203
- "model": {
5204
- "iges": ["igs", "iges"],
5205
- "mesh": ["msh", "mesh", "silo"],
5206
- "vrml": ["wrl", "vrml"],
5207
- "x3d+vrml": ["x3dv", "x3dvz"],
5208
- "x3d+xml": ["x3d", "x3dz"],
5209
- "x3d+binary": ["x3db", "x3dbz"],
5210
- "vnd.collada+xml": "dae",
5211
- "vnd.dwf": "dwf",
5212
- "vnd.gdl": "gdl",
5213
- "vnd.gtw": "gtw",
5214
- "vnd.mts": "mts",
5215
- "vnd.vtu": "vtu"
5216
- },
5217
- "text": {
5218
- "cache-manifest": ["manifest", "appcache"],
5219
- "calendar": ["ics", "icz", "ifb"],
5220
- "css": "css",
5221
- "csv": "csv",
5222
- "h323": "323",
5223
- "html": ["html", "htm", "shtml", "stm"],
5224
- "iuls": "uls",
5225
- "mathml": "mml",
5226
- "plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
5227
- "richtext": "rtx",
5228
- "scriptlet": ["sct", "wsc"],
5229
- "texmacs": ["tm", "ts"],
5230
- "tab-separated-values": "tsv",
5231
- "vnd.sun.j2me.app-descriptor": "jad",
5232
- "vnd.wap.wml": "wml",
5233
- "vnd.wap.wmlscript": "wmls",
5234
- "x-bibtex": "bib",
5235
- "x-boo": "boo",
5236
- "x-c++hdr": ["h++", "hpp", "hxx", "hh"],
5237
- "x-c++src": ["c++", "cpp", "cxx", "cc"],
5238
- "x-component": "htc",
5239
- "x-dsrc": "d",
5240
- "x-diff": ["diff", "patch"],
5241
- "x-haskell": "hs",
5242
- "x-java": "java",
5243
- "x-literate-haskell": "lhs",
5244
- "x-moc": "moc",
5245
- "x-pascal": ["p", "pas"],
5246
- "x-pcs-gcd": "gcd",
5247
- "x-perl": ["pl", "pm"],
5248
- "x-python": "py",
5249
- "x-scala": "scala",
5250
- "x-setext": "etx",
5251
- "x-tcl": ["tcl", "tk"],
5252
- "x-tex": ["tex", "ltx", "sty", "cls"],
5253
- "x-vcalendar": "vcs",
5254
- "x-vcard": "vcf",
5255
- "n3": "n3",
5256
- "prs.lines.tag": "dsc",
5257
- "sgml": ["sgml", "sgm"],
5258
- "troff": ["t", "tr", "roff", "man", "me", "ms"],
5259
- "turtle": "ttl",
5260
- "uri-list": ["uri", "uris", "urls"],
5261
- "vcard": "vcard",
5262
- "vnd.curl": "curl",
5263
- "vnd.curl.dcurl": "dcurl",
5264
- "vnd.curl.scurl": "scurl",
5265
- "vnd.curl.mcurl": "mcurl",
5266
- "vnd.dvb.subtitle": "sub",
5267
- "vnd.fly": "fly",
5268
- "vnd.fmi.flexstor": "flx",
5269
- "vnd.graphviz": "gv",
5270
- "vnd.in3d.3dml": "3dml",
5271
- "vnd.in3d.spot": "spot",
5272
- "x-asm": ["s", "asm"],
5273
- "x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
5274
- "x-fortran": ["f", "for", "f77", "f90"],
5275
- "x-opml": "opml",
5276
- "x-nfo": "nfo",
5277
- "x-sfv": "sfv",
5278
- "x-uuencode": "uu",
5279
- "webviewhtml": "htt"
5280
- },
5281
- "video": {
5282
- "avif": ".avif",
5283
- "3gpp": "3gp",
5284
- "annodex": "axv",
5285
- "dl": "dl",
5286
- "dv": ["dif", "dv"],
5287
- "fli": "fli",
5288
- "gl": "gl",
5289
- "mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
5290
- "mp4": ["mp4", "mp4v", "mpg4"],
5291
- "quicktime": ["qt", "mov"],
5292
- "ogg": "ogv",
5293
- "vnd.mpegurl": ["mxu", "m4u"],
5294
- "x-flv": "flv",
5295
- "x-la-asf": ["lsf", "lsx"],
5296
- "x-mng": "mng",
5297
- "x-ms-asf": ["asf", "asx", "asr"],
5298
- "x-ms-wm": "wm",
5299
- "x-ms-wmv": "wmv",
5300
- "x-ms-wmx": "wmx",
5301
- "x-ms-wvx": "wvx",
5302
- "x-msvideo": "avi",
5303
- "x-sgi-movie": "movie",
5304
- "x-matroska": ["mpv", "mkv", "mk3d", "mks"],
5305
- "3gpp2": "3g2",
5306
- "h261": "h261",
5307
- "h263": "h263",
5308
- "h264": "h264",
5309
- "jpeg": "jpgv",
5310
- "jpm": ["jpm", "jpgm"],
5311
- "mj2": ["mj2", "mjp2"],
5312
- "vnd.dece.hd": ["uvh", "uvvh"],
5313
- "vnd.dece.mobile": ["uvm", "uvvm"],
5314
- "vnd.dece.pd": ["uvp", "uvvp"],
5315
- "vnd.dece.sd": ["uvs", "uvvs"],
5316
- "vnd.dece.video": ["uvv", "uvvv"],
5317
- "vnd.dvb.file": "dvb",
5318
- "vnd.fvt": "fvt",
5319
- "vnd.ms-playready.media.pyv": "pyv",
5320
- "vnd.uvvu.mp4": ["uvu", "uvvu"],
5321
- "vnd.vivo": "viv",
5322
- "webm": "webm",
5323
- "x-f4v": "f4v",
5324
- "x-m4v": "m4v",
5325
- "x-ms-vob": "vob",
5326
- "x-smv": "smv"
5327
- },
5328
- "x-conference": {
5329
- "x-cooltalk": "ice"
5330
- },
5331
- "x-world": {
5332
- "x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
5333
- }
5334
- };
5335
-
5336
- const mimeTypes = (() => {
5337
- const mimeTypes = {};
5338
- for (const type in table$1) {
5339
- // eslint-disable-next-line no-prototype-builtins
5340
- if (table$1.hasOwnProperty(type)) {
5341
- for (const subtype in table$1[type]) {
5342
- // eslint-disable-next-line no-prototype-builtins
5343
- if (table$1[type].hasOwnProperty(subtype)) {
5344
- const value = table$1[type][subtype];
5345
- if (typeof value == "string") {
5346
- mimeTypes[value] = type + "/" + subtype;
5347
- } else {
5348
- for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
5349
- mimeTypes[value[indexMimeType]] = type + "/" + subtype;
5350
- }
5351
- }
5352
- }
5353
- }
5354
- }
5355
- }
5356
- return mimeTypes;
5357
- })();
5358
-
5359
- function getMimeType(filename) {
5360
- return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
5361
- }
5362
-
5363
- /*
5364
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5365
-
5366
- Redistribution and use in source and binary forms, with or without
5367
- modification, are permitted provided that the following conditions are met:
5368
-
5369
- 1. Redistributions of source code must retain the above copyright notice,
5370
- this list of conditions and the following disclaimer.
5371
-
5372
- 2. Redistributions in binary form must reproduce the above copyright
5373
- notice, this list of conditions and the following disclaimer in
5374
- the documentation and/or other materials provided with the distribution.
5375
-
5376
- 3. The names of the authors may not be used to endorse or promote products
5377
- derived from this software without specific prior written permission.
5378
-
5379
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5380
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5381
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5382
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5383
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5384
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5385
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5386
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5387
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5388
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5389
- */
5390
-
5391
- const table = [];
5392
- for (let i = 0; i < 256; i++) {
5393
- let t = i;
5394
- for (let j = 0; j < 8; j++) {
5395
- if (t & 1) {
5396
- t = (t >>> 1) ^ 0xEDB88320;
5397
- } else {
5398
- t = t >>> 1;
5399
- }
5400
- }
5401
- table[i] = t;
5402
- }
5403
-
5404
- class Crc32 {
5405
-
5406
- constructor(crc) {
5407
- this.crc = crc || -1;
5408
- }
5409
-
5410
- append(data) {
5411
- let crc = this.crc | 0;
5412
- for (let offset = 0, length = data.length | 0; offset < length; offset++) {
5413
- crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF];
5414
- }
5415
- this.crc = crc;
5416
- }
5417
-
5418
- get() {
5419
- return ~this.crc;
5420
- }
5421
- }
5422
-
5423
- /*
5424
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5425
-
5426
- Redistribution and use in source and binary forms, with or without
5427
- modification, are permitted provided that the following conditions are met:
5428
-
5429
- 1. Redistributions of source code must retain the above copyright notice,
5430
- this list of conditions and the following disclaimer.
5431
-
5432
- 2. Redistributions in binary form must reproduce the above copyright
5433
- notice, this list of conditions and the following disclaimer in
5434
- the documentation and/or other materials provided with the distribution.
5435
-
5436
- 3. The names of the authors may not be used to endorse or promote products
5437
- derived from this software without specific prior written permission.
5438
-
5439
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5440
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5441
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5442
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5443
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5444
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5445
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5446
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5447
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5448
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5449
- */
5450
-
5451
- class Crc32Stream extends TransformStream {
5452
-
5453
- constructor() {
5454
- const crc32 = new Crc32();
5455
- super({
5456
- transform(chunk) {
5457
- crc32.append(chunk);
5458
- },
5459
- flush(controller) {
5460
- const value = new Uint8Array(4);
5461
- const dataView = new DataView(value.buffer);
5462
- dataView.setUint32(0, crc32.get());
5463
- controller.enqueue(value);
5464
- }
5465
- });
5466
- }
4320
+ class Crc32Stream extends TransformStream {
4321
+
4322
+ constructor() {
4323
+ const crc32 = new Crc32();
4324
+ super({
4325
+ transform(chunk) {
4326
+ crc32.append(chunk);
4327
+ },
4328
+ flush(controller) {
4329
+ const value = new Uint8Array(4);
4330
+ const dataView = new DataView(value.buffer);
4331
+ dataView.setUint32(0, crc32.get());
4332
+ controller.enqueue(value);
4333
+ }
4334
+ });
4335
+ }
5467
4336
  }
5468
4337
 
5469
4338
  /*
@@ -6362,6 +5231,7 @@
6362
5231
  const GET_RANDOM_VALUES_SUPPORTED = typeof crypto != "undefined" && typeof crypto.getRandomValues == "function";
6363
5232
 
6364
5233
  const ERR_INVALID_PASSWORD = "Invalid password";
5234
+ const ERR_INVALID_SIGNATURE = "Invalid signature";
6365
5235
 
6366
5236
  function getRandomValues(array) {
6367
5237
  if (GET_RANDOM_VALUES_SUPPORTED) {
@@ -6411,12 +5281,13 @@
6411
5281
  const KEY_LENGTH = [16, 24, 32];
6412
5282
  const SIGNATURE_LENGTH = 10;
6413
5283
  const COUNTER_DEFAULT_VALUE = [0, 0, 0, 0];
6414
- const UNDEFINED_TYPE$1 = "undefined";
5284
+ const UNDEFINED_TYPE = "undefined";
6415
5285
  const FUNCTION_TYPE = "function";
6416
- const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE$1;
6417
- const SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof crypto.subtle != UNDEFINED_TYPE$1;
6418
- const IMPORT_KEY_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof crypto.subtle.importKey == FUNCTION_TYPE;
6419
- const DERIVE_BITS_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof crypto.subtle.deriveBits == FUNCTION_TYPE;
5286
+ const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE;
5287
+ const subtle = CRYPTO_API_SUPPORTED && crypto.subtle;
5288
+ const SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof subtle != UNDEFINED_TYPE;
5289
+ const IMPORT_KEY_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.importKey == FUNCTION_TYPE;
5290
+ const DERIVE_BITS_SUPPORTED = CRYPTO_API_SUPPORTED && SUBTLE_API_SUPPORTED && typeof subtle.deriveBits == FUNCTION_TYPE;
6420
5291
  const codecBytes = codec.bytes;
6421
5292
  const Aes = cipher.aes;
6422
5293
  const CtrGladman = mode.ctrGladman;
@@ -6425,7 +5296,6 @@
6425
5296
  class AESDecryptionStream extends TransformStream {
6426
5297
 
6427
5298
  constructor(password, signed, strength) {
6428
- let stream;
6429
5299
  super({
6430
5300
  start() {
6431
5301
  Object.assign(this, {
@@ -6438,47 +5308,51 @@
6438
5308
  },
6439
5309
  async transform(chunk, controller) {
6440
5310
  const aesCrypto = this;
6441
- if (aesCrypto.password) {
6442
- const password = aesCrypto.password;
6443
- aesCrypto.password = null;
6444
- const preamble = subarray(chunk, 0, SALT_LENGTH[aesCrypto.strength] + 2);
6445
- await createDecryptionKeys(aesCrypto, preamble, password);
6446
- aesCrypto.ctr = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));
6447
- aesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);
6448
- chunk = subarray(chunk, SALT_LENGTH[aesCrypto.strength] + 2);
6449
- aesCrypto.resolveReady();
5311
+ const {
5312
+ password,
5313
+ strength,
5314
+ resolveReady,
5315
+ ready
5316
+ } = aesCrypto;
5317
+ if (password) {
5318
+ await createDecryptionKeys(aesCrypto, strength, password, subarray(chunk, 0, SALT_LENGTH[strength] + 2));
5319
+ chunk = subarray(chunk, SALT_LENGTH[strength] + 2);
5320
+ resolveReady();
6450
5321
  } else {
6451
- await aesCrypto.ready;
5322
+ await ready;
6452
5323
  }
6453
5324
  const output = new Uint8Array(chunk.length - SIGNATURE_LENGTH - ((chunk.length - SIGNATURE_LENGTH) % BLOCK_LENGTH));
6454
5325
  controller.enqueue(append(aesCrypto, chunk, output, 0, SIGNATURE_LENGTH, true));
6455
5326
  },
6456
5327
  async flush(controller) {
6457
- const aesCrypto = this;
6458
- await aesCrypto.ready;
6459
- const pending = aesCrypto.pending;
5328
+ const {
5329
+ signed,
5330
+ ctr,
5331
+ hmac,
5332
+ pending,
5333
+ ready
5334
+ } = this;
5335
+ await ready;
6460
5336
  const chunkToDecrypt = subarray(pending, 0, pending.length - SIGNATURE_LENGTH);
6461
5337
  const originalSignature = subarray(pending, pending.length - SIGNATURE_LENGTH);
6462
5338
  let decryptedChunkArray = new Uint8Array();
6463
5339
  if (chunkToDecrypt.length) {
6464
5340
  const encryptedChunk = toBits(codecBytes, chunkToDecrypt);
6465
- aesCrypto.hmac.update(encryptedChunk);
6466
- const decryptedChunk = aesCrypto.ctr.update(encryptedChunk);
5341
+ hmac.update(encryptedChunk);
5342
+ const decryptedChunk = ctr.update(encryptedChunk);
6467
5343
  decryptedChunkArray = fromBits(codecBytes, decryptedChunk);
6468
5344
  }
6469
- stream.valid = true;
6470
- if (aesCrypto.signed) {
6471
- const signature = subarray(fromBits(codecBytes, aesCrypto.hmac.digest()), 0, SIGNATURE_LENGTH);
5345
+ if (signed) {
5346
+ const signature = subarray(fromBits(codecBytes, hmac.digest()), 0, SIGNATURE_LENGTH);
6472
5347
  for (let indexSignature = 0; indexSignature < SIGNATURE_LENGTH; indexSignature++) {
6473
5348
  if (signature[indexSignature] != originalSignature[indexSignature]) {
6474
- stream.valid = false;
5349
+ throw new Error(ERR_INVALID_SIGNATURE);
6475
5350
  }
6476
5351
  }
6477
5352
  }
6478
5353
  controller.enqueue(decryptedChunkArray);
6479
5354
  }
6480
5355
  });
6481
- stream = this;
6482
5356
  }
6483
5357
  }
6484
5358
 
@@ -6497,31 +5371,38 @@
6497
5371
  },
6498
5372
  async transform(chunk, controller) {
6499
5373
  const aesCrypto = this;
5374
+ const {
5375
+ password,
5376
+ strength,
5377
+ resolveReady,
5378
+ ready
5379
+ } = aesCrypto;
6500
5380
  let preamble = new Uint8Array();
6501
- if (aesCrypto.password) {
6502
- const password = aesCrypto.password;
6503
- aesCrypto.password = null;
6504
- preamble = await createEncryptionKeys(aesCrypto, password);
6505
- aesCrypto.ctr = new CtrGladman(new Aes(aesCrypto.keys.key), Array.from(COUNTER_DEFAULT_VALUE));
6506
- aesCrypto.hmac = new HmacSha1(aesCrypto.keys.authentication);
6507
- aesCrypto.resolveReady();
5381
+ if (password) {
5382
+ preamble = await createEncryptionKeys(aesCrypto, strength, password);
5383
+ resolveReady();
6508
5384
  } else {
6509
- await aesCrypto.ready;
5385
+ await ready;
6510
5386
  }
6511
5387
  const output = new Uint8Array(preamble.length + chunk.length - (chunk.length % BLOCK_LENGTH));
6512
5388
  output.set(preamble, 0);
6513
5389
  controller.enqueue(append(aesCrypto, chunk, output, preamble.length, 0));
6514
5390
  },
6515
5391
  async flush(controller) {
6516
- const aesCrypto = this;
6517
- await aesCrypto.ready;
5392
+ const {
5393
+ ctr,
5394
+ hmac,
5395
+ pending,
5396
+ ready
5397
+ } = this;
5398
+ await ready;
6518
5399
  let encryptedChunkArray = new Uint8Array();
6519
- if (aesCrypto.pending.length) {
6520
- const encryptedChunk = aesCrypto.ctr.update(toBits(codecBytes, aesCrypto.pending));
6521
- aesCrypto.hmac.update(encryptedChunk);
5400
+ if (pending.length) {
5401
+ const encryptedChunk = ctr.update(toBits(codecBytes, pending));
5402
+ hmac.update(encryptedChunk);
6522
5403
  encryptedChunkArray = fromBits(codecBytes, encryptedChunk);
6523
5404
  }
6524
- stream.signature = fromBits(codecBytes, aesCrypto.hmac.digest()).slice(0, SIGNATURE_LENGTH);
5405
+ stream.signature = fromBits(codecBytes, hmac.digest()).slice(0, SIGNATURE_LENGTH);
6525
5406
  controller.enqueue(concat(encryptedChunkArray, stream.signature));
6526
5407
  }
6527
5408
  });
@@ -6530,20 +5411,25 @@
6530
5411
  }
6531
5412
 
6532
5413
  function append(aesCrypto, input, output, paddingStart, paddingEnd, verifySignature) {
5414
+ const {
5415
+ ctr,
5416
+ hmac,
5417
+ pending
5418
+ } = aesCrypto;
6533
5419
  const inputLength = input.length - paddingEnd;
6534
- if (aesCrypto.pending.length) {
6535
- input = concat(aesCrypto.pending, input);
5420
+ if (pending.length) {
5421
+ input = concat(pending, input);
6536
5422
  output = expand(output, inputLength - (inputLength % BLOCK_LENGTH));
6537
5423
  }
6538
5424
  let offset;
6539
5425
  for (offset = 0; offset <= inputLength - BLOCK_LENGTH; offset += BLOCK_LENGTH) {
6540
5426
  const inputChunk = toBits(codecBytes, subarray(input, offset, offset + BLOCK_LENGTH));
6541
5427
  if (verifySignature) {
6542
- aesCrypto.hmac.update(inputChunk);
5428
+ hmac.update(inputChunk);
6543
5429
  }
6544
- const outputChunk = aesCrypto.ctr.update(inputChunk);
5430
+ const outputChunk = ctr.update(inputChunk);
6545
5431
  if (!verifySignature) {
6546
- aesCrypto.hmac.update(outputChunk);
5432
+ hmac.update(outputChunk);
6547
5433
  }
6548
5434
  output.set(fromBits(codecBytes, outputChunk), offset + paddingStart);
6549
5435
  }
@@ -6551,77 +5437,368 @@
6551
5437
  return output;
6552
5438
  }
6553
5439
 
6554
- async function createDecryptionKeys(decrypt, preambleArray, password) {
6555
- await createKeys$1(decrypt, password, subarray(preambleArray, 0, SALT_LENGTH[decrypt.strength]));
6556
- const passwordVerification = subarray(preambleArray, SALT_LENGTH[decrypt.strength]);
6557
- const passwordVerificationKey = decrypt.keys.passwordVerification;
5440
+ async function createDecryptionKeys(decrypt, strength, password, preamble) {
5441
+ const passwordVerificationKey = await createKeys$1(decrypt, strength, password, subarray(preamble, 0, SALT_LENGTH[strength]));
5442
+ const passwordVerification = subarray(preamble, SALT_LENGTH[strength]);
6558
5443
  if (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {
6559
5444
  throw new Error(ERR_INVALID_PASSWORD);
6560
5445
  }
6561
5446
  }
6562
5447
 
6563
- async function createEncryptionKeys(encrypt, password) {
6564
- const salt = getRandomValues(new Uint8Array(SALT_LENGTH[encrypt.strength]));
6565
- await createKeys$1(encrypt, password, salt);
6566
- return concat(salt, encrypt.keys.passwordVerification);
6567
- }
6568
-
6569
- async function createKeys$1(target, password, salt) {
6570
- const encodedPassword = encodeText(password);
6571
- const basekey = await importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);
6572
- const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), basekey, 8 * ((KEY_LENGTH[target.strength] * 2) + 2));
6573
- const compositeKey = new Uint8Array(derivedBits);
6574
- target.keys = {
6575
- key: toBits(codecBytes, subarray(compositeKey, 0, KEY_LENGTH[target.strength])),
6576
- authentication: toBits(codecBytes, subarray(compositeKey, KEY_LENGTH[target.strength], KEY_LENGTH[target.strength] * 2)),
6577
- passwordVerification: subarray(compositeKey, KEY_LENGTH[target.strength] * 2)
6578
- };
6579
- }
5448
+ async function createEncryptionKeys(encrypt, strength, password) {
5449
+ const salt = getRandomValues(new Uint8Array(SALT_LENGTH[strength]));
5450
+ const passwordVerification = await createKeys$1(encrypt, strength, password, salt);
5451
+ return concat(salt, passwordVerification);
5452
+ }
5453
+
5454
+ async function createKeys$1(aesCrypto, strength, password, salt) {
5455
+ aesCrypto.password = null;
5456
+ const encodedPassword = encodeText(password);
5457
+ const baseKey = await importKey(RAW_FORMAT, encodedPassword, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);
5458
+ const derivedBits = await deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), baseKey, 8 * ((KEY_LENGTH[strength] * 2) + 2));
5459
+ const compositeKey = new Uint8Array(derivedBits);
5460
+ const key = toBits(codecBytes, subarray(compositeKey, 0, KEY_LENGTH[strength]));
5461
+ const authentication = toBits(codecBytes, subarray(compositeKey, KEY_LENGTH[strength], KEY_LENGTH[strength] * 2));
5462
+ const passwordVerification = subarray(compositeKey, KEY_LENGTH[strength] * 2);
5463
+ Object.assign(aesCrypto, {
5464
+ keys: {
5465
+ key,
5466
+ authentication,
5467
+ passwordVerification
5468
+ },
5469
+ ctr: new CtrGladman(new Aes(key), Array.from(COUNTER_DEFAULT_VALUE)),
5470
+ hmac: new HmacSha1(authentication)
5471
+ });
5472
+ return passwordVerification;
5473
+ }
5474
+
5475
+ function importKey(format, password, algorithm, extractable, keyUsages) {
5476
+ if (IMPORT_KEY_SUPPORTED) {
5477
+ return subtle.importKey(format, password, algorithm, extractable, keyUsages);
5478
+ } else {
5479
+ return misc.importKey(password);
5480
+ }
5481
+ }
5482
+
5483
+ async function deriveBits(algorithm, baseKey, length) {
5484
+ if (DERIVE_BITS_SUPPORTED) {
5485
+ return await subtle.deriveBits(algorithm, baseKey, length);
5486
+ } else {
5487
+ return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
5488
+ }
5489
+ }
5490
+
5491
+ function concat(leftArray, rightArray) {
5492
+ let array = leftArray;
5493
+ if (leftArray.length + rightArray.length) {
5494
+ array = new Uint8Array(leftArray.length + rightArray.length);
5495
+ array.set(leftArray, 0);
5496
+ array.set(rightArray, leftArray.length);
5497
+ }
5498
+ return array;
5499
+ }
5500
+
5501
+ function expand(inputArray, length) {
5502
+ if (length && length > inputArray.length) {
5503
+ const array = inputArray;
5504
+ inputArray = new Uint8Array(length);
5505
+ inputArray.set(array, 0);
5506
+ }
5507
+ return inputArray;
5508
+ }
5509
+
5510
+ function subarray(array, begin, end) {
5511
+ return array.subarray(begin, end);
5512
+ }
5513
+
5514
+ function fromBits(codecBytes, chunk) {
5515
+ return codecBytes.fromBits(chunk);
5516
+ }
5517
+ function toBits(codecBytes, chunk) {
5518
+ return codecBytes.toBits(chunk);
5519
+ }
5520
+
5521
+ /*
5522
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5523
+
5524
+ Redistribution and use in source and binary forms, with or without
5525
+ modification, are permitted provided that the following conditions are met:
5526
+
5527
+ 1. Redistributions of source code must retain the above copyright notice,
5528
+ this list of conditions and the following disclaimer.
5529
+
5530
+ 2. Redistributions in binary form must reproduce the above copyright
5531
+ notice, this list of conditions and the following disclaimer in
5532
+ the documentation and/or other materials provided with the distribution.
5533
+
5534
+ 3. The names of the authors may not be used to endorse or promote products
5535
+ derived from this software without specific prior written permission.
5536
+
5537
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5538
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5539
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5540
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5541
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5542
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5543
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5544
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5545
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5546
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5547
+ */
5548
+
5549
+ const HEADER_LENGTH = 12;
5550
+
5551
+ class ZipCryptoDecryptionStream extends TransformStream {
5552
+
5553
+ constructor(password, passwordVerification) {
5554
+ super({
5555
+ start() {
5556
+ Object.assign(this, {
5557
+ password,
5558
+ passwordVerification
5559
+ });
5560
+ createKeys(this, password);
5561
+ },
5562
+ transform(chunk, controller) {
5563
+ const zipCrypto = this;
5564
+ if (zipCrypto.password) {
5565
+ const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
5566
+ zipCrypto.password = null;
5567
+ if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
5568
+ throw new Error(ERR_INVALID_PASSWORD);
5569
+ }
5570
+ chunk = chunk.subarray(HEADER_LENGTH);
5571
+ }
5572
+ controller.enqueue(decrypt(zipCrypto, chunk));
5573
+ }
5574
+ });
5575
+ }
5576
+ }
5577
+
5578
+ class ZipCryptoEncryptionStream extends TransformStream {
5579
+
5580
+ constructor(password, passwordVerification) {
5581
+ super({
5582
+ start() {
5583
+ Object.assign(this, {
5584
+ password,
5585
+ passwordVerification
5586
+ });
5587
+ createKeys(this, password);
5588
+ },
5589
+ transform(chunk, controller) {
5590
+ const zipCrypto = this;
5591
+ let output;
5592
+ let offset;
5593
+ if (zipCrypto.password) {
5594
+ zipCrypto.password = null;
5595
+ const header = getRandomValues(new Uint8Array(HEADER_LENGTH));
5596
+ header[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;
5597
+ output = new Uint8Array(chunk.length + header.length);
5598
+ output.set(encrypt(zipCrypto, header), 0);
5599
+ offset = HEADER_LENGTH;
5600
+ } else {
5601
+ output = new Uint8Array(chunk.length);
5602
+ offset = 0;
5603
+ }
5604
+ output.set(encrypt(zipCrypto, chunk), offset);
5605
+ controller.enqueue(output);
5606
+ },
5607
+ flush() {
5608
+ }
5609
+ });
5610
+ }
5611
+ }
5612
+
5613
+ function decrypt(target, input) {
5614
+ const output = new Uint8Array(input.length);
5615
+ for (let index = 0; index < input.length; index++) {
5616
+ output[index] = getByte(target) ^ input[index];
5617
+ updateKeys(target, output[index]);
5618
+ }
5619
+ return output;
5620
+ }
5621
+
5622
+ function encrypt(target, input) {
5623
+ const output = new Uint8Array(input.length);
5624
+ for (let index = 0; index < input.length; index++) {
5625
+ output[index] = getByte(target) ^ input[index];
5626
+ updateKeys(target, input[index]);
5627
+ }
5628
+ return output;
5629
+ }
5630
+
5631
+ function createKeys(target, password) {
5632
+ const keys = [0x12345678, 0x23456789, 0x34567890];
5633
+ Object.assign(target, {
5634
+ keys,
5635
+ crcKey0: new Crc32(keys[0]),
5636
+ crcKey2: new Crc32(keys[2]),
5637
+ });
5638
+ for (let index = 0; index < password.length; index++) {
5639
+ updateKeys(target, password.charCodeAt(index));
5640
+ }
5641
+ }
5642
+
5643
+ function updateKeys(target, byte) {
5644
+ let [key0, key1, key2] = target.keys;
5645
+ target.crcKey0.append([byte]);
5646
+ key0 = ~target.crcKey0.get();
5647
+ key1 = getInt32(Math.imul(getInt32(key1 + getInt8(key0)), 134775813) + 1);
5648
+ target.crcKey2.append([key1 >>> 24]);
5649
+ key2 = ~target.crcKey2.get();
5650
+ target.keys = [key0, key1, key2];
5651
+ }
5652
+
5653
+ function getByte(target) {
5654
+ const temp = target.keys[2] | 2;
5655
+ return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
5656
+ }
5657
+
5658
+ function getInt8(number) {
5659
+ return number & 0xFF;
5660
+ }
5661
+
5662
+ function getInt32(number) {
5663
+ return number & 0xFFFFFFFF;
5664
+ }
5665
+
5666
+ /*
5667
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5668
+
5669
+ Redistribution and use in source and binary forms, with or without
5670
+ modification, are permitted provided that the following conditions are met:
5671
+
5672
+ 1. Redistributions of source code must retain the above copyright notice,
5673
+ this list of conditions and the following disclaimer.
5674
+
5675
+ 2. Redistributions in binary form must reproduce the above copyright
5676
+ notice, this list of conditions and the following disclaimer in
5677
+ the documentation and/or other materials provided with the distribution.
5678
+
5679
+ 3. The names of the authors may not be used to endorse or promote products
5680
+ derived from this software without specific prior written permission.
5681
+
5682
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5683
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5684
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5685
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5686
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5687
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5688
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5689
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5690
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5691
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5692
+ */
5693
+
5694
+ const COMPRESSION_FORMAT = "deflate-raw";
5695
+
5696
+ class DeflateStream extends TransformStream {
5697
+
5698
+ constructor(options, { chunkSize, CompressionStream, CompressionStreamNative }) {
5699
+ super({});
5700
+ const { compressed, encrypted, useCompressionStream, password, passwordVerification, encryptionStrength, zipCrypto, signed, level } = options;
5701
+ const stream = this;
5702
+ let crc32Stream, encryptionStream;
5703
+ let readable = filterEmptyChunks(super.readable);
5704
+ if ((!encrypted || zipCrypto) && signed) {
5705
+ [readable, crc32Stream] = readable.tee();
5706
+ crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
5707
+ }
5708
+ if (compressed) {
5709
+ readable = pipeThroughCommpressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStreamNative, CompressionStream);
5710
+ }
5711
+ if (encrypted) {
5712
+ if (zipCrypto) {
5713
+ readable = pipeThrough(readable, new ZipCryptoEncryptionStream(password, passwordVerification));
5714
+ } else {
5715
+ encryptionStream = new AESEncryptionStream(password, encryptionStrength);
5716
+ readable = pipeThrough(readable, encryptionStream);
5717
+ }
5718
+ }
5719
+ setReadable(stream, readable, async () => {
5720
+ let signature;
5721
+ if (encrypted && !zipCrypto) {
5722
+ signature = encryptionStream.signature;
5723
+ }
5724
+ if ((!encrypted || zipCrypto) && signed) {
5725
+ signature = await crc32Stream.getReader().read();
5726
+ signature = new DataView(signature.value.buffer).getUint32(0);
5727
+ }
5728
+ stream.signature = signature;
5729
+ });
5730
+ }
5731
+ }
5732
+
5733
+ class InflateStream extends TransformStream {
6580
5734
 
6581
- function importKey(format, password, algorithm, extractable, keyUsages) {
6582
- if (IMPORT_KEY_SUPPORTED) {
6583
- return crypto.subtle.importKey(format, password, algorithm, extractable, keyUsages);
6584
- } else {
6585
- return misc.importKey(password);
5735
+ constructor(options, { chunkSize, DecompressionStream, DecompressionStreamNative }) {
5736
+ super({});
5737
+ const { zipCrypto, encrypted, password, passwordVerification, signed, signature, encryptionStrength, compressed, useCompressionStream } = options;
5738
+ let crc32Stream, decryptionStream;
5739
+ let readable = filterEmptyChunks(super.readable);
5740
+ if (encrypted) {
5741
+ if (zipCrypto) {
5742
+ readable = pipeThrough(readable, new ZipCryptoDecryptionStream(password, passwordVerification));
5743
+ } else {
5744
+ decryptionStream = new AESDecryptionStream(password, signed, encryptionStrength);
5745
+ readable = pipeThrough(readable, decryptionStream);
5746
+ }
5747
+ }
5748
+ if (compressed) {
5749
+ readable = pipeThroughCommpressionStream(readable, useCompressionStream, { chunkSize }, DecompressionStreamNative, DecompressionStream);
5750
+ }
5751
+ if ((!encrypted || zipCrypto) && signed) {
5752
+ [readable, crc32Stream] = readable.tee();
5753
+ crc32Stream = pipeThrough(crc32Stream, new Crc32Stream());
5754
+ }
5755
+ setReadable(this, readable, async () => {
5756
+ if ((!encrypted || zipCrypto) && signed) {
5757
+ const streamSignature = await crc32Stream.getReader().read();
5758
+ const dataViewSignature = new DataView(streamSignature.value.buffer);
5759
+ if (signature != dataViewSignature.getUint32(0, false)) {
5760
+ throw new Error(ERR_INVALID_SIGNATURE);
5761
+ }
5762
+ }
5763
+ });
6586
5764
  }
6587
5765
  }
6588
5766
 
6589
- async function deriveBits(algorithm, baseKey, length) {
6590
- if (DERIVE_BITS_SUPPORTED) {
6591
- return await crypto.subtle.deriveBits(algorithm, baseKey, length);
6592
- } else {
6593
- return misc.pbkdf2(baseKey, algorithm.salt, DERIVED_BITS_ALGORITHM.iterations, length);
6594
- }
5767
+ function filterEmptyChunks(readable) {
5768
+ return pipeThrough(readable, new TransformStream({
5769
+ transform(chunk, controller) {
5770
+ if (chunk && chunk.length) {
5771
+ controller.enqueue(chunk);
5772
+ }
5773
+ }
5774
+ }));
6595
5775
  }
6596
5776
 
6597
- function concat(leftArray, rightArray) {
6598
- let array = leftArray;
6599
- if (leftArray.length + rightArray.length) {
6600
- array = new Uint8Array(leftArray.length + rightArray.length);
6601
- array.set(leftArray, 0);
6602
- array.set(rightArray, leftArray.length);
6603
- }
6604
- return array;
5777
+ function setReadable(stream, readable, flush) {
5778
+ readable = pipeThrough(readable, new TransformStream({ flush }));
5779
+ Object.defineProperty(stream, "readable", {
5780
+ get() {
5781
+ return readable;
5782
+ }
5783
+ });
6605
5784
  }
6606
5785
 
6607
- function expand(inputArray, length) {
6608
- if (length && length > inputArray.length) {
6609
- const array = inputArray;
6610
- inputArray = new Uint8Array(length);
6611
- inputArray.set(array, 0);
5786
+ function pipeThroughCommpressionStream(readable, useCompressionStream, options, CodecStreamNative, CodecStream) {
5787
+ try {
5788
+ const CompressionStream = useCompressionStream && CodecStreamNative ? CodecStreamNative : CodecStream;
5789
+ readable = pipeThrough(readable, new CompressionStream(COMPRESSION_FORMAT, options));
5790
+ } catch (error) {
5791
+ if (useCompressionStream) {
5792
+ readable = pipeThrough(readable, new CodecStream(COMPRESSION_FORMAT, options));
5793
+ } else {
5794
+ throw error;
5795
+ }
6612
5796
  }
6613
- return inputArray;
5797
+ return readable;
6614
5798
  }
6615
5799
 
6616
- function subarray(array, begin, end) {
6617
- return array.subarray(begin, end);
6618
- }
6619
-
6620
- function fromBits(codecBytes, chunk) {
6621
- return codecBytes.fromBits(chunk);
6622
- }
6623
- function toBits(codecBytes, chunk) {
6624
- return codecBytes.toBits(chunk);
5800
+ function pipeThrough(readable, transformStream) {
5801
+ return readable.pipeThrough(transformStream);
6625
5802
  }
6626
5803
 
6627
5804
  /*
@@ -6652,122 +5829,239 @@
6652
5829
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6653
5830
  */
6654
5831
 
6655
- const HEADER_LENGTH = 12;
5832
+ /*
5833
+ * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
5834
+ * JZlib is based on zlib-1.1.3, so all credit should go authors
5835
+ * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
5836
+ * and contributors of zlib.
5837
+ */
6656
5838
 
6657
- class ZipCryptoDecryptionStream extends TransformStream {
5839
+ /* global TransformStream */
6658
5840
 
6659
- constructor(password, passwordVerification) {
6660
- let stream;
5841
+ class CodecStream extends TransformStream {
5842
+
5843
+ constructor(Codec, options) {
5844
+ let codec;
6661
5845
  super({
6662
5846
  start() {
6663
- Object.assign(this, {
6664
- password,
6665
- passwordVerification
6666
- });
6667
- createKeys(this, password);
5847
+ codec = new Codec(options);
6668
5848
  },
6669
5849
  transform(chunk, controller) {
6670
- const zipCrypto = this;
6671
- if (zipCrypto.password) {
6672
- const decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));
6673
- zipCrypto.password = null;
6674
- if (decryptedHeader[HEADER_LENGTH - 1] != zipCrypto.passwordVerification) {
6675
- throw new Error(ERR_INVALID_PASSWORD);
6676
- }
6677
- chunk = chunk.subarray(HEADER_LENGTH);
6678
- }
6679
- controller.enqueue(decrypt(zipCrypto, chunk));
5850
+ controller.enqueue(codec.append(chunk));
6680
5851
  },
6681
- flush() {
6682
- stream.valid = true;
5852
+ flush(controller) {
5853
+ const chunk = codec.flush();
5854
+ if (chunk) {
5855
+ controller.enqueue(chunk);
5856
+ }
6683
5857
  }
6684
5858
  });
6685
- stream = this;
6686
5859
  }
6687
5860
  }
6688
5861
 
6689
- class ZipCryptoEncryptionStream extends TransformStream {
5862
+ /*
5863
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
6690
5864
 
6691
- constructor(password, passwordVerification) {
6692
- super({
6693
- start() {
6694
- Object.assign(this, {
6695
- password,
6696
- passwordVerification
6697
- });
6698
- createKeys(this, password);
6699
- },
6700
- transform(chunk, controller) {
6701
- const zipCrypto = this;
6702
- let output;
6703
- let offset;
6704
- if (zipCrypto.password) {
6705
- zipCrypto.password = null;
6706
- const header = getRandomValues(new Uint8Array(HEADER_LENGTH));
6707
- header[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;
6708
- output = new Uint8Array(chunk.length + header.length);
6709
- output.set(encrypt(zipCrypto, header), 0);
6710
- offset = HEADER_LENGTH;
6711
- } else {
6712
- output = new Uint8Array(chunk.length);
6713
- offset = 0;
6714
- }
6715
- output.set(encrypt(zipCrypto, chunk), offset);
6716
- controller.enqueue(output);
6717
- },
6718
- flush() {
6719
- }
5865
+ Redistribution and use in source and binary forms, with or without
5866
+ modification, are permitted provided that the following conditions are met:
5867
+
5868
+ 1. Redistributions of source code must retain the above copyright notice,
5869
+ this list of conditions and the following disclaimer.
5870
+
5871
+ 2. Redistributions in binary form must reproduce the above copyright
5872
+ notice, this list of conditions and the following disclaimer in
5873
+ the documentation and/or other materials provided with the distribution.
5874
+
5875
+ 3. The names of the authors may not be used to endorse or promote products
5876
+ derived from this software without specific prior written permission.
5877
+
5878
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5879
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5880
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5881
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5882
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5883
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5884
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5885
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5886
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5887
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5888
+ */
5889
+
5890
+ const CODEC_DEFLATE = "deflate";
5891
+ const CODEC_INFLATE = "inflate";
5892
+ const MESSAGE_EVENT_TYPE = "message";
5893
+ const MESSAGE_START = "start";
5894
+ const MESSAGE_PULL = "pull";
5895
+ const MESSAGE_DATA = "data";
5896
+ const MESSAGE_ACK_DATA = "ack";
5897
+ const MESSAGE_CLOSE = "close";
5898
+
5899
+ class Codec {
5900
+
5901
+ constructor(readable, writable, options, config) {
5902
+ const { codecType } = options;
5903
+ let CodecStream;
5904
+ if (codecType.startsWith(CODEC_DEFLATE)) {
5905
+ CodecStream = DeflateStream;
5906
+ } else if (codecType.startsWith(CODEC_INFLATE)) {
5907
+ CodecStream = InflateStream;
5908
+ }
5909
+ Object.assign(this, {
5910
+ CodecStream,
5911
+ readable,
5912
+ writable,
5913
+ options,
5914
+ config
6720
5915
  });
6721
5916
  }
6722
- }
6723
5917
 
6724
- function decrypt(target, input) {
6725
- const output = new Uint8Array(input.length);
6726
- for (let index = 0; index < input.length; index++) {
6727
- output[index] = getByte(target) ^ input[index];
6728
- updateKeys(target, output[index]);
5918
+ async run() {
5919
+ const {
5920
+ CodecStream,
5921
+ readable,
5922
+ writable,
5923
+ options,
5924
+ config
5925
+ } = this;
5926
+ const stream = new CodecStream(options, config);
5927
+ let size = 0;
5928
+ await readable
5929
+ .pipeThrough(stream)
5930
+ .pipeThrough(new TransformStream({
5931
+ transform(chunk, controller) {
5932
+ if (chunk && chunk.length) {
5933
+ size += chunk.length;
5934
+ controller.enqueue(chunk);
5935
+ }
5936
+ }
5937
+ }))
5938
+ .pipeTo(writable, { preventClose: true, preventAbort: true });
5939
+ const { signature } = stream;
5940
+ return { size, signature };
6729
5941
  }
6730
- return output;
6731
5942
  }
6732
5943
 
6733
- function encrypt(target, input) {
6734
- const output = new Uint8Array(input.length);
6735
- for (let index = 0; index < input.length; index++) {
6736
- output[index] = getByte(target) ^ input[index];
6737
- updateKeys(target, input[index]);
5944
+ function getCodecStreamClass(Codec) {
5945
+ return class extends CodecStream {
5946
+ constructor(algorithm, options) {
5947
+ super(Codec, options);
5948
+ }
5949
+ };
5950
+ }
5951
+
5952
+ /*
5953
+ Copyright (c) 2022 Gildas Lormeau. All rights reserved.
5954
+
5955
+ Redistribution and use in source and binary forms, with or without
5956
+ modification, are permitted provided that the following conditions are met:
5957
+
5958
+ 1. Redistributions of source code must retain the above copyright notice,
5959
+ this list of conditions and the following disclaimer.
5960
+
5961
+ 2. Redistributions in binary form must reproduce the above copyright
5962
+ notice, this list of conditions and the following disclaimer in
5963
+ the documentation and/or other materials provided with the distribution.
5964
+
5965
+ 3. The names of the authors may not be used to endorse or promote products
5966
+ derived from this software without specific prior written permission.
5967
+
5968
+ THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
5969
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
5970
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
5971
+ INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
5972
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
5973
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
5974
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
5975
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
5976
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
5977
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5978
+ */
5979
+
5980
+ const MINIMUM_CHUNK_SIZE = 64;
5981
+ const UNDEFINED_VALUE = undefined;
5982
+ let maxWorkers = 2;
5983
+ try {
5984
+ if (typeof navigator != "undefined" && navigator.hardwareConcurrency) {
5985
+ maxWorkers = navigator.hardwareConcurrency;
6738
5986
  }
6739
- return output;
5987
+ } catch (_error) {
5988
+ // ignored
6740
5989
  }
5990
+ const DEFAULT_CONFIGURATION = {
5991
+ chunkSize: 512 * 1024,
5992
+ maxWorkers,
5993
+ terminateWorkerTimeout: 5000,
5994
+ useWebWorkers: true,
5995
+ useCompressionStream: true,
5996
+ workerScripts: undefined,
5997
+ CompressionStreamNative: typeof CompressionStream != "undefined" && CompressionStream,
5998
+ DecompressionStreamNative: typeof DecompressionStream != "undefined" && DecompressionStream
5999
+ };
6741
6000
 
6742
- function createKeys(target, password) {
6743
- target.keys = [0x12345678, 0x23456789, 0x34567890];
6744
- target.crcKey0 = new Crc32(target.keys[0]);
6745
- target.crcKey2 = new Crc32(target.keys[2]);
6746
- for (let index = 0; index < password.length; index++) {
6747
- updateKeys(target, password.charCodeAt(index));
6748
- }
6749
- }
6001
+ const config = Object.assign({}, DEFAULT_CONFIGURATION);
6750
6002
 
6751
- function updateKeys(target, byte) {
6752
- target.crcKey0.append([byte]);
6753
- target.keys[0] = ~target.crcKey0.get();
6754
- target.keys[1] = getInt32(target.keys[1] + getInt8(target.keys[0]));
6755
- target.keys[1] = getInt32(Math.imul(target.keys[1], 134775813) + 1);
6756
- target.crcKey2.append([target.keys[1] >>> 24]);
6757
- target.keys[2] = ~target.crcKey2.get();
6003
+ function getConfiguration() {
6004
+ return config;
6758
6005
  }
6759
6006
 
6760
- function getByte(target) {
6761
- const temp = target.keys[2] | 2;
6762
- return getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);
6007
+ function getChunkSize(config) {
6008
+ return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
6763
6009
  }
6764
6010
 
6765
- function getInt8(number) {
6766
- return number & 0xFF;
6011
+ function configure(configuration) {
6012
+ const {
6013
+ baseURL,
6014
+ chunkSize,
6015
+ maxWorkers,
6016
+ terminateWorkerTimeout,
6017
+ useCompressionStream,
6018
+ useWebWorkers,
6019
+ Deflate,
6020
+ Inflate,
6021
+ CompressionStream,
6022
+ DecompressionStream,
6023
+ workerScripts
6024
+ } = configuration;
6025
+ setIfDefined("baseURL", baseURL);
6026
+ setIfDefined("chunkSize", chunkSize);
6027
+ setIfDefined("maxWorkers", maxWorkers);
6028
+ setIfDefined("terminateWorkerTimeout", terminateWorkerTimeout);
6029
+ setIfDefined("useCompressionStream", useCompressionStream);
6030
+ setIfDefined("useWebWorkers", useWebWorkers);
6031
+ if (Deflate) {
6032
+ config.CompressionStream = getCodecStreamClass(Deflate);
6033
+ }
6034
+ if (Inflate) {
6035
+ config.DecompressionStream = getCodecStreamClass(Inflate);
6036
+ }
6037
+ setIfDefined("CompressionStream", CompressionStream);
6038
+ setIfDefined("DecompressionStream", DecompressionStream);
6039
+ if (workerScripts !== UNDEFINED_VALUE) {
6040
+ const { deflate, inflate } = workerScripts;
6041
+ if (deflate || inflate) {
6042
+ if (!config.workerScripts) {
6043
+ config.workerScripts = {};
6044
+ }
6045
+ }
6046
+ if (deflate) {
6047
+ if (!Array.isArray(deflate)) {
6048
+ throw new Error("workerScripts.deflate must be an array");
6049
+ }
6050
+ config.workerScripts.deflate = deflate;
6051
+ }
6052
+ if (inflate) {
6053
+ if (!Array.isArray(inflate)) {
6054
+ throw new Error("workerScripts.inflate must be an array");
6055
+ }
6056
+ config.workerScripts.inflate = inflate;
6057
+ }
6058
+ }
6767
6059
  }
6768
6060
 
6769
- function getInt32(number) {
6770
- return number & 0xFFFFFFFF;
6061
+ function setIfDefined(propertyName, propertyValue) {
6062
+ if (propertyValue !== UNDEFINED_VALUE) {
6063
+ config[propertyName] = propertyValue;
6064
+ }
6771
6065
  }
6772
6066
 
6773
6067
  /*
@@ -6798,35 +6092,8 @@
6798
6092
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6799
6093
  */
6800
6094
 
6801
- /*
6802
- * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.
6803
- * JZlib is based on zlib-1.1.3, so all credit should go authors
6804
- * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
6805
- * and contributors of zlib.
6806
- */
6807
-
6808
- /* global TransformStream */
6809
-
6810
- class CodecStream extends TransformStream {
6811
-
6812
- constructor(Codec, options) {
6813
- let codec;
6814
- super({
6815
- start() {
6816
- codec = new Codec(options);
6817
- },
6818
- transform(chunk, controller) {
6819
- chunk = codec.append(chunk);
6820
- controller.enqueue(chunk);
6821
- },
6822
- flush(controller) {
6823
- const chunk = codec.flush();
6824
- if (chunk) {
6825
- controller.enqueue(chunk);
6826
- }
6827
- }
6828
- });
6829
- }
6095
+ function getMimeType$1() {
6096
+ return "application/octet-stream";
6830
6097
  }
6831
6098
 
6832
6099
  /*
@@ -6857,214 +6124,977 @@
6857
6124
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6858
6125
  */
6859
6126
 
6860
- const ERR_INVALID_SIGNATURE = "Invalid signature";
6861
- const COMPRESSION_FORMAT = "deflate-raw";
6862
- const UNDEFINED_TYPE = "undefined";
6863
- const COMPRESSION_STREAM_API_SUPPORTED = typeof CompressionStream == UNDEFINED_TYPE;
6864
- const DECOMPRESSION_STREAM_API_SUPPORTED = typeof DecompressionStream == UNDEFINED_TYPE;
6865
- let INFLATE_RAW_SUPPORTED = true;
6866
- let DEFLATE_RAW_SUPPORTED = true;
6867
-
6868
- class DeflateStream extends TransformStream {
6869
-
6870
- constructor(codecConstructor, options, { chunkSize }, ...strategies) {
6871
- super({}, ...strategies);
6872
- const { compressed, encrypted, useCompressionStream, password, passwordVerification, encryptionStrength, zipCrypto, signed, level } = options;
6873
- const stream = this;
6874
- let crc32Stream, encryptionStream;
6875
- let readable = filterEmptyChunks(super.readable);
6876
- if ((!encrypted || zipCrypto) && signed) {
6877
- [readable, crc32Stream] = readable.tee();
6878
- crc32Stream = crc32Stream.pipeThrough(new Crc32Stream());
6879
- }
6880
- if (compressed) {
6881
- if ((useCompressionStream !== undefined && !useCompressionStream) || (COMPRESSION_STREAM_API_SUPPORTED && !DEFLATE_RAW_SUPPORTED)) {
6882
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize, level });
6883
- } else {
6884
- try {
6885
- readable = readable.pipeThrough(new CompressionStream(COMPRESSION_FORMAT));
6886
- } catch (_error) {
6887
- DEFLATE_RAW_SUPPORTED = false;
6888
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize, level });
6889
- }
6890
- }
6891
- }
6892
- if (encrypted) {
6893
- if (zipCrypto) {
6894
- readable = readable.pipeThrough(new ZipCryptoEncryptionStream(password, passwordVerification));
6895
- } else {
6896
- encryptionStream = new AESEncryptionStream(password, encryptionStrength);
6897
- readable = readable.pipeThrough(encryptionStream);
6898
- }
6899
- }
6900
- setReadable(stream, readable, async () => {
6901
- let signature;
6902
- if (encrypted && !zipCrypto) {
6903
- signature = encryptionStream.signature;
6904
- }
6905
- if ((!encrypted || zipCrypto) && signed) {
6906
- signature = await crc32Stream.getReader().read();
6907
- signature = new DataView(signature.value.buffer).getUint32(0);
6908
- }
6909
- stream.signature = signature;
6910
- });
6127
+ const table = {
6128
+ "application": {
6129
+ "andrew-inset": "ez",
6130
+ "annodex": "anx",
6131
+ "atom+xml": "atom",
6132
+ "atomcat+xml": "atomcat",
6133
+ "atomserv+xml": "atomsrv",
6134
+ "bbolin": "lin",
6135
+ "cap": ["cap", "pcap"],
6136
+ "cu-seeme": "cu",
6137
+ "davmount+xml": "davmount",
6138
+ "dsptype": "tsp",
6139
+ "ecmascript": ["es", "ecma"],
6140
+ "futuresplash": "spl",
6141
+ "hta": "hta",
6142
+ "java-archive": "jar",
6143
+ "java-serialized-object": "ser",
6144
+ "java-vm": "class",
6145
+ "javascript": "js",
6146
+ "m3g": "m3g",
6147
+ "mac-binhex40": "hqx",
6148
+ "mathematica": ["nb", "ma", "mb"],
6149
+ "msaccess": "mdb",
6150
+ "msword": ["doc", "dot"],
6151
+ "mxf": "mxf",
6152
+ "oda": "oda",
6153
+ "ogg": "ogx",
6154
+ "pdf": "pdf",
6155
+ "pgp-keys": "key",
6156
+ "pgp-signature": ["asc", "sig"],
6157
+ "pics-rules": "prf",
6158
+ "postscript": ["ps", "ai", "eps", "epsi", "epsf", "eps2", "eps3"],
6159
+ "rar": "rar",
6160
+ "rdf+xml": "rdf",
6161
+ "rss+xml": "rss",
6162
+ "rtf": "rtf",
6163
+ "smil": ["smi", "smil"],
6164
+ "xhtml+xml": ["xhtml", "xht"],
6165
+ "xml": ["xml", "xsl", "xsd"],
6166
+ "xspf+xml": "xspf",
6167
+ "zip": "zip",
6168
+ "vnd.android.package-archive": "apk",
6169
+ "vnd.cinderella": "cdy",
6170
+ "vnd.google-earth.kml+xml": "kml",
6171
+ "vnd.google-earth.kmz": "kmz",
6172
+ "vnd.mozilla.xul+xml": "xul",
6173
+ "vnd.ms-excel": ["xls", "xlb", "xlt", "xlm", "xla", "xlc", "xlw"],
6174
+ "vnd.ms-pki.seccat": "cat",
6175
+ "vnd.ms-pki.stl": "stl",
6176
+ "vnd.ms-powerpoint": ["ppt", "pps", "pot"],
6177
+ "vnd.oasis.opendocument.chart": "odc",
6178
+ "vnd.oasis.opendocument.database": "odb",
6179
+ "vnd.oasis.opendocument.formula": "odf",
6180
+ "vnd.oasis.opendocument.graphics": "odg",
6181
+ "vnd.oasis.opendocument.graphics-template": "otg",
6182
+ "vnd.oasis.opendocument.image": "odi",
6183
+ "vnd.oasis.opendocument.presentation": "odp",
6184
+ "vnd.oasis.opendocument.presentation-template": "otp",
6185
+ "vnd.oasis.opendocument.spreadsheet": "ods",
6186
+ "vnd.oasis.opendocument.spreadsheet-template": "ots",
6187
+ "vnd.oasis.opendocument.text": "odt",
6188
+ "vnd.oasis.opendocument.text-master": "odm",
6189
+ "vnd.oasis.opendocument.text-template": "ott",
6190
+ "vnd.oasis.opendocument.text-web": "oth",
6191
+ "vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
6192
+ "vnd.openxmlformats-officedocument.spreadsheetml.template": "xltx",
6193
+ "vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
6194
+ "vnd.openxmlformats-officedocument.presentationml.slideshow": "ppsx",
6195
+ "vnd.openxmlformats-officedocument.presentationml.template": "potx",
6196
+ "vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
6197
+ "vnd.openxmlformats-officedocument.wordprocessingml.template": "dotx",
6198
+ "vnd.smaf": "mmf",
6199
+ "vnd.stardivision.calc": "sdc",
6200
+ "vnd.stardivision.chart": "sds",
6201
+ "vnd.stardivision.draw": "sda",
6202
+ "vnd.stardivision.impress": "sdd",
6203
+ "vnd.stardivision.math": ["sdf", "smf"],
6204
+ "vnd.stardivision.writer": ["sdw", "vor"],
6205
+ "vnd.stardivision.writer-global": "sgl",
6206
+ "vnd.sun.xml.calc": "sxc",
6207
+ "vnd.sun.xml.calc.template": "stc",
6208
+ "vnd.sun.xml.draw": "sxd",
6209
+ "vnd.sun.xml.draw.template": "std",
6210
+ "vnd.sun.xml.impress": "sxi",
6211
+ "vnd.sun.xml.impress.template": "sti",
6212
+ "vnd.sun.xml.math": "sxm",
6213
+ "vnd.sun.xml.writer": "sxw",
6214
+ "vnd.sun.xml.writer.global": "sxg",
6215
+ "vnd.sun.xml.writer.template": "stw",
6216
+ "vnd.symbian.install": ["sis", "sisx"],
6217
+ "vnd.visio": ["vsd", "vst", "vss", "vsw"],
6218
+ "vnd.wap.wbxml": "wbxml",
6219
+ "vnd.wap.wmlc": "wmlc",
6220
+ "vnd.wap.wmlscriptc": "wmlsc",
6221
+ "vnd.wordperfect": "wpd",
6222
+ "vnd.wordperfect5.1": "wp5",
6223
+ "x-123": "wk",
6224
+ "x-7z-compressed": "7z",
6225
+ "x-abiword": "abw",
6226
+ "x-apple-diskimage": "dmg",
6227
+ "x-bcpio": "bcpio",
6228
+ "x-bittorrent": "torrent",
6229
+ "x-cbr": ["cbr", "cba", "cbt", "cb7"],
6230
+ "x-cbz": "cbz",
6231
+ "x-cdf": ["cdf", "cda"],
6232
+ "x-cdlink": "vcd",
6233
+ "x-chess-pgn": "pgn",
6234
+ "x-cpio": "cpio",
6235
+ "x-csh": "csh",
6236
+ "x-debian-package": ["deb", "udeb"],
6237
+ "x-director": ["dcr", "dir", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
6238
+ "x-dms": "dms",
6239
+ "x-doom": "wad",
6240
+ "x-dvi": "dvi",
6241
+ "x-httpd-eruby": "rhtml",
6242
+ "x-font": "pcf.Z",
6243
+ "x-freemind": "mm",
6244
+ "x-gnumeric": "gnumeric",
6245
+ "x-go-sgf": "sgf",
6246
+ "x-graphing-calculator": "gcf",
6247
+ "x-gtar": ["gtar", "taz"],
6248
+ "x-hdf": "hdf",
6249
+ "x-httpd-php": ["phtml", "pht", "php"],
6250
+ "x-httpd-php-source": "phps",
6251
+ "x-httpd-php3": "php3",
6252
+ "x-httpd-php3-preprocessed": "php3p",
6253
+ "x-httpd-php4": "php4",
6254
+ "x-httpd-php5": "php5",
6255
+ "x-ica": "ica",
6256
+ "x-info": "info",
6257
+ "x-internet-signup": ["ins", "isp"],
6258
+ "x-iphone": "iii",
6259
+ "x-iso9660-image": "iso",
6260
+ "x-java-jnlp-file": "jnlp",
6261
+ "x-jmol": "jmz",
6262
+ "x-killustrator": "kil",
6263
+ "x-koan": ["skp", "skd", "skt", "skm"],
6264
+ "x-kpresenter": ["kpr", "kpt"],
6265
+ "x-kword": ["kwd", "kwt"],
6266
+ "x-latex": "latex",
6267
+ "x-lha": "lha",
6268
+ "x-lyx": "lyx",
6269
+ "x-lzh": "lzh",
6270
+ "x-lzx": "lzx",
6271
+ "x-maker": ["frm", "maker", "frame", "fm", "fb", "book", "fbdoc"],
6272
+ "x-ms-wmd": "wmd",
6273
+ "x-ms-wmz": "wmz",
6274
+ "x-msdos-program": ["com", "exe", "bat", "dll"],
6275
+ "x-msi": "msi",
6276
+ "x-netcdf": ["nc", "cdf"],
6277
+ "x-ns-proxy-autoconfig": ["pac", "dat"],
6278
+ "x-nwc": "nwc",
6279
+ "x-object": "o",
6280
+ "x-oz-application": "oza",
6281
+ "x-pkcs7-certreqresp": "p7r",
6282
+ "x-python-code": ["pyc", "pyo"],
6283
+ "x-qgis": ["qgs", "shp", "shx"],
6284
+ "x-quicktimeplayer": "qtl",
6285
+ "x-redhat-package-manager": "rpm",
6286
+ "x-ruby": "rb",
6287
+ "x-sh": "sh",
6288
+ "x-shar": "shar",
6289
+ "x-shockwave-flash": ["swf", "swfl"],
6290
+ "x-silverlight": "scr",
6291
+ "x-stuffit": "sit",
6292
+ "x-sv4cpio": "sv4cpio",
6293
+ "x-sv4crc": "sv4crc",
6294
+ "x-tar": "tar",
6295
+ "x-tcl": "tcl",
6296
+ "x-tex-gf": "gf",
6297
+ "x-tex-pk": "pk",
6298
+ "x-texinfo": ["texinfo", "texi"],
6299
+ "x-trash": ["~", "%", "bak", "old", "sik"],
6300
+ "x-troff": ["t", "tr", "roff"],
6301
+ "x-troff-man": "man",
6302
+ "x-troff-me": "me",
6303
+ "x-troff-ms": "ms",
6304
+ "x-ustar": "ustar",
6305
+ "x-wais-source": "src",
6306
+ "x-wingz": "wz",
6307
+ "x-x509-ca-cert": ["crt", "der", "cer"],
6308
+ "x-xcf": "xcf",
6309
+ "x-xfig": "fig",
6310
+ "x-xpinstall": "xpi",
6311
+ "applixware": "aw",
6312
+ "atomsvc+xml": "atomsvc",
6313
+ "ccxml+xml": "ccxml",
6314
+ "cdmi-capability": "cdmia",
6315
+ "cdmi-container": "cdmic",
6316
+ "cdmi-domain": "cdmid",
6317
+ "cdmi-object": "cdmio",
6318
+ "cdmi-queue": "cdmiq",
6319
+ "docbook+xml": "dbk",
6320
+ "dssc+der": "dssc",
6321
+ "dssc+xml": "xdssc",
6322
+ "emma+xml": "emma",
6323
+ "epub+zip": "epub",
6324
+ "exi": "exi",
6325
+ "font-tdpfr": "pfr",
6326
+ "gml+xml": "gml",
6327
+ "gpx+xml": "gpx",
6328
+ "gxf": "gxf",
6329
+ "hyperstudio": "stk",
6330
+ "inkml+xml": ["ink", "inkml"],
6331
+ "ipfix": "ipfix",
6332
+ "json": "json",
6333
+ "jsonml+json": "jsonml",
6334
+ "lost+xml": "lostxml",
6335
+ "mads+xml": "mads",
6336
+ "marc": "mrc",
6337
+ "marcxml+xml": "mrcx",
6338
+ "mathml+xml": "mathml",
6339
+ "mbox": "mbox",
6340
+ "mediaservercontrol+xml": "mscml",
6341
+ "metalink+xml": "metalink",
6342
+ "metalink4+xml": "meta4",
6343
+ "mets+xml": "mets",
6344
+ "mods+xml": "mods",
6345
+ "mp21": ["m21", "mp21"],
6346
+ "mp4": "mp4s",
6347
+ "oebps-package+xml": "opf",
6348
+ "omdoc+xml": "omdoc",
6349
+ "onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
6350
+ "oxps": "oxps",
6351
+ "patch-ops-error+xml": "xer",
6352
+ "pgp-encrypted": "pgp",
6353
+ "pkcs10": "p10",
6354
+ "pkcs7-mime": ["p7m", "p7c"],
6355
+ "pkcs7-signature": "p7s",
6356
+ "pkcs8": "p8",
6357
+ "pkix-attr-cert": "ac",
6358
+ "pkix-crl": "crl",
6359
+ "pkix-pkipath": "pkipath",
6360
+ "pkixcmp": "pki",
6361
+ "pls+xml": "pls",
6362
+ "prs.cww": "cww",
6363
+ "pskc+xml": "pskcxml",
6364
+ "reginfo+xml": "rif",
6365
+ "relax-ng-compact-syntax": "rnc",
6366
+ "resource-lists+xml": "rl",
6367
+ "resource-lists-diff+xml": "rld",
6368
+ "rls-services+xml": "rs",
6369
+ "rpki-ghostbusters": "gbr",
6370
+ "rpki-manifest": "mft",
6371
+ "rpki-roa": "roa",
6372
+ "rsd+xml": "rsd",
6373
+ "sbml+xml": "sbml",
6374
+ "scvp-cv-request": "scq",
6375
+ "scvp-cv-response": "scs",
6376
+ "scvp-vp-request": "spq",
6377
+ "scvp-vp-response": "spp",
6378
+ "sdp": "sdp",
6379
+ "set-payment-initiation": "setpay",
6380
+ "set-registration-initiation": "setreg",
6381
+ "shf+xml": "shf",
6382
+ "sparql-query": "rq",
6383
+ "sparql-results+xml": "srx",
6384
+ "srgs": "gram",
6385
+ "srgs+xml": "grxml",
6386
+ "sru+xml": "sru",
6387
+ "ssdl+xml": "ssdl",
6388
+ "ssml+xml": "ssml",
6389
+ "tei+xml": ["tei", "teicorpus"],
6390
+ "thraud+xml": "tfi",
6391
+ "timestamped-data": "tsd",
6392
+ "vnd.3gpp.pic-bw-large": "plb",
6393
+ "vnd.3gpp.pic-bw-small": "psb",
6394
+ "vnd.3gpp.pic-bw-var": "pvb",
6395
+ "vnd.3gpp2.tcap": "tcap",
6396
+ "vnd.3m.post-it-notes": "pwn",
6397
+ "vnd.accpac.simply.aso": "aso",
6398
+ "vnd.accpac.simply.imp": "imp",
6399
+ "vnd.acucobol": "acu",
6400
+ "vnd.acucorp": ["atc", "acutc"],
6401
+ "vnd.adobe.air-application-installer-package+zip": "air",
6402
+ "vnd.adobe.formscentral.fcdt": "fcdt",
6403
+ "vnd.adobe.fxp": ["fxp", "fxpl"],
6404
+ "vnd.adobe.xdp+xml": "xdp",
6405
+ "vnd.adobe.xfdf": "xfdf",
6406
+ "vnd.ahead.space": "ahead",
6407
+ "vnd.airzip.filesecure.azf": "azf",
6408
+ "vnd.airzip.filesecure.azs": "azs",
6409
+ "vnd.amazon.ebook": "azw",
6410
+ "vnd.americandynamics.acc": "acc",
6411
+ "vnd.amiga.ami": "ami",
6412
+ "vnd.anser-web-certificate-issue-initiation": "cii",
6413
+ "vnd.anser-web-funds-transfer-initiation": "fti",
6414
+ "vnd.antix.game-component": "atx",
6415
+ "vnd.apple.installer+xml": "mpkg",
6416
+ "vnd.apple.mpegurl": "m3u8",
6417
+ "vnd.aristanetworks.swi": "swi",
6418
+ "vnd.astraea-software.iota": "iota",
6419
+ "vnd.audiograph": "aep",
6420
+ "vnd.blueice.multipass": "mpm",
6421
+ "vnd.bmi": "bmi",
6422
+ "vnd.businessobjects": "rep",
6423
+ "vnd.chemdraw+xml": "cdxml",
6424
+ "vnd.chipnuts.karaoke-mmd": "mmd",
6425
+ "vnd.claymore": "cla",
6426
+ "vnd.cloanto.rp9": "rp9",
6427
+ "vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
6428
+ "vnd.cluetrust.cartomobile-config": "c11amc",
6429
+ "vnd.cluetrust.cartomobile-config-pkg": "c11amz",
6430
+ "vnd.commonspace": "csp",
6431
+ "vnd.contact.cmsg": "cdbcmsg",
6432
+ "vnd.cosmocaller": "cmc",
6433
+ "vnd.crick.clicker": "clkx",
6434
+ "vnd.crick.clicker.keyboard": "clkk",
6435
+ "vnd.crick.clicker.palette": "clkp",
6436
+ "vnd.crick.clicker.template": "clkt",
6437
+ "vnd.crick.clicker.wordbank": "clkw",
6438
+ "vnd.criticaltools.wbs+xml": "wbs",
6439
+ "vnd.ctc-posml": "pml",
6440
+ "vnd.cups-ppd": "ppd",
6441
+ "vnd.curl.car": "car",
6442
+ "vnd.curl.pcurl": "pcurl",
6443
+ "vnd.dart": "dart",
6444
+ "vnd.data-vision.rdz": "rdz",
6445
+ "vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
6446
+ "vnd.dece.ttml+xml": ["uvt", "uvvt"],
6447
+ "vnd.dece.unspecified": ["uvx", "uvvx"],
6448
+ "vnd.dece.zip": ["uvz", "uvvz"],
6449
+ "vnd.denovo.fcselayout-link": "fe_launch",
6450
+ "vnd.dna": "dna",
6451
+ "vnd.dolby.mlp": "mlp",
6452
+ "vnd.dpgraph": "dpg",
6453
+ "vnd.dreamfactory": "dfac",
6454
+ "vnd.ds-keypoint": "kpxx",
6455
+ "vnd.dvb.ait": "ait",
6456
+ "vnd.dvb.service": "svc",
6457
+ "vnd.dynageo": "geo",
6458
+ "vnd.ecowin.chart": "mag",
6459
+ "vnd.enliven": "nml",
6460
+ "vnd.epson.esf": "esf",
6461
+ "vnd.epson.msf": "msf",
6462
+ "vnd.epson.quickanime": "qam",
6463
+ "vnd.epson.salt": "slt",
6464
+ "vnd.epson.ssf": "ssf",
6465
+ "vnd.eszigno3+xml": ["es3", "et3"],
6466
+ "vnd.ezpix-album": "ez2",
6467
+ "vnd.ezpix-package": "ez3",
6468
+ "vnd.fdf": "fdf",
6469
+ "vnd.fdsn.mseed": "mseed",
6470
+ "vnd.fdsn.seed": ["seed", "dataless"],
6471
+ "vnd.flographit": "gph",
6472
+ "vnd.fluxtime.clip": "ftc",
6473
+ "vnd.framemaker": ["fm", "frame", "maker", "book"],
6474
+ "vnd.frogans.fnc": "fnc",
6475
+ "vnd.frogans.ltf": "ltf",
6476
+ "vnd.fsc.weblaunch": "fsc",
6477
+ "vnd.fujitsu.oasys": "oas",
6478
+ "vnd.fujitsu.oasys2": "oa2",
6479
+ "vnd.fujitsu.oasys3": "oa3",
6480
+ "vnd.fujitsu.oasysgp": "fg5",
6481
+ "vnd.fujitsu.oasysprs": "bh2",
6482
+ "vnd.fujixerox.ddd": "ddd",
6483
+ "vnd.fujixerox.docuworks": "xdw",
6484
+ "vnd.fujixerox.docuworks.binder": "xbd",
6485
+ "vnd.fuzzysheet": "fzs",
6486
+ "vnd.genomatix.tuxedo": "txd",
6487
+ "vnd.geogebra.file": "ggb",
6488
+ "vnd.geogebra.tool": "ggt",
6489
+ "vnd.geometry-explorer": ["gex", "gre"],
6490
+ "vnd.geonext": "gxt",
6491
+ "vnd.geoplan": "g2w",
6492
+ "vnd.geospace": "g3w",
6493
+ "vnd.gmx": "gmx",
6494
+ "vnd.grafeq": ["gqf", "gqs"],
6495
+ "vnd.groove-account": "gac",
6496
+ "vnd.groove-help": "ghf",
6497
+ "vnd.groove-identity-message": "gim",
6498
+ "vnd.groove-injector": "grv",
6499
+ "vnd.groove-tool-message": "gtm",
6500
+ "vnd.groove-tool-template": "tpl",
6501
+ "vnd.groove-vcard": "vcg",
6502
+ "vnd.hal+xml": "hal",
6503
+ "vnd.handheld-entertainment+xml": "zmm",
6504
+ "vnd.hbci": "hbci",
6505
+ "vnd.hhe.lesson-player": "les",
6506
+ "vnd.hp-hpgl": "hpgl",
6507
+ "vnd.hp-hpid": "hpid",
6508
+ "vnd.hp-hps": "hps",
6509
+ "vnd.hp-jlyt": "jlt",
6510
+ "vnd.hp-pcl": "pcl",
6511
+ "vnd.hp-pclxl": "pclxl",
6512
+ "vnd.hydrostatix.sof-data": "sfd-hdstx",
6513
+ "vnd.ibm.minipay": "mpy",
6514
+ "vnd.ibm.modcap": ["afp", "listafp", "list3820"],
6515
+ "vnd.ibm.rights-management": "irm",
6516
+ "vnd.ibm.secure-container": "sc",
6517
+ "vnd.iccprofile": ["icc", "icm"],
6518
+ "vnd.igloader": "igl",
6519
+ "vnd.immervision-ivp": "ivp",
6520
+ "vnd.immervision-ivu": "ivu",
6521
+ "vnd.insors.igm": "igm",
6522
+ "vnd.intercon.formnet": ["xpw", "xpx"],
6523
+ "vnd.intergeo": "i2g",
6524
+ "vnd.intu.qbo": "qbo",
6525
+ "vnd.intu.qfx": "qfx",
6526
+ "vnd.ipunplugged.rcprofile": "rcprofile",
6527
+ "vnd.irepository.package+xml": "irp",
6528
+ "vnd.is-xpr": "xpr",
6529
+ "vnd.isac.fcs": "fcs",
6530
+ "vnd.jam": "jam",
6531
+ "vnd.jcp.javame.midlet-rms": "rms",
6532
+ "vnd.jisp": "jisp",
6533
+ "vnd.joost.joda-archive": "joda",
6534
+ "vnd.kahootz": ["ktz", "ktr"],
6535
+ "vnd.kde.karbon": "karbon",
6536
+ "vnd.kde.kchart": "chrt",
6537
+ "vnd.kde.kformula": "kfo",
6538
+ "vnd.kde.kivio": "flw",
6539
+ "vnd.kde.kontour": "kon",
6540
+ "vnd.kde.kpresenter": ["kpr", "kpt"],
6541
+ "vnd.kde.kspread": "ksp",
6542
+ "vnd.kde.kword": ["kwd", "kwt"],
6543
+ "vnd.kenameaapp": "htke",
6544
+ "vnd.kidspiration": "kia",
6545
+ "vnd.kinar": ["kne", "knp"],
6546
+ "vnd.koan": ["skp", "skd", "skt", "skm"],
6547
+ "vnd.kodak-descriptor": "sse",
6548
+ "vnd.las.las+xml": "lasxml",
6549
+ "vnd.llamagraphics.life-balance.desktop": "lbd",
6550
+ "vnd.llamagraphics.life-balance.exchange+xml": "lbe",
6551
+ "vnd.lotus-1-2-3": "123",
6552
+ "vnd.lotus-approach": "apr",
6553
+ "vnd.lotus-freelance": "pre",
6554
+ "vnd.lotus-notes": "nsf",
6555
+ "vnd.lotus-organizer": "org",
6556
+ "vnd.lotus-screencam": "scm",
6557
+ "vnd.lotus-wordpro": "lwp",
6558
+ "vnd.macports.portpkg": "portpkg",
6559
+ "vnd.mcd": "mcd",
6560
+ "vnd.medcalcdata": "mc1",
6561
+ "vnd.mediastation.cdkey": "cdkey",
6562
+ "vnd.mfer": "mwf",
6563
+ "vnd.mfmp": "mfm",
6564
+ "vnd.micrografx.flo": "flo",
6565
+ "vnd.micrografx.igx": "igx",
6566
+ "vnd.mif": "mif",
6567
+ "vnd.mobius.daf": "daf",
6568
+ "vnd.mobius.dis": "dis",
6569
+ "vnd.mobius.mbk": "mbk",
6570
+ "vnd.mobius.mqy": "mqy",
6571
+ "vnd.mobius.msl": "msl",
6572
+ "vnd.mobius.plc": "plc",
6573
+ "vnd.mobius.txf": "txf",
6574
+ "vnd.mophun.application": "mpn",
6575
+ "vnd.mophun.certificate": "mpc",
6576
+ "vnd.ms-artgalry": "cil",
6577
+ "vnd.ms-cab-compressed": "cab",
6578
+ "vnd.ms-excel.addin.macroenabled.12": "xlam",
6579
+ "vnd.ms-excel.sheet.binary.macroenabled.12": "xlsb",
6580
+ "vnd.ms-excel.sheet.macroenabled.12": "xlsm",
6581
+ "vnd.ms-excel.template.macroenabled.12": "xltm",
6582
+ "vnd.ms-fontobject": "eot",
6583
+ "vnd.ms-htmlhelp": "chm",
6584
+ "vnd.ms-ims": "ims",
6585
+ "vnd.ms-lrm": "lrm",
6586
+ "vnd.ms-officetheme": "thmx",
6587
+ "vnd.ms-powerpoint.addin.macroenabled.12": "ppam",
6588
+ "vnd.ms-powerpoint.presentation.macroenabled.12": "pptm",
6589
+ "vnd.ms-powerpoint.slide.macroenabled.12": "sldm",
6590
+ "vnd.ms-powerpoint.slideshow.macroenabled.12": "ppsm",
6591
+ "vnd.ms-powerpoint.template.macroenabled.12": "potm",
6592
+ "vnd.ms-project": ["mpp", "mpt"],
6593
+ "vnd.ms-word.document.macroenabled.12": "docm",
6594
+ "vnd.ms-word.template.macroenabled.12": "dotm",
6595
+ "vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
6596
+ "vnd.ms-wpl": "wpl",
6597
+ "vnd.ms-xpsdocument": "xps",
6598
+ "vnd.mseq": "mseq",
6599
+ "vnd.musician": "mus",
6600
+ "vnd.muvee.style": "msty",
6601
+ "vnd.mynfc": "taglet",
6602
+ "vnd.neurolanguage.nlu": "nlu",
6603
+ "vnd.nitf": ["ntf", "nitf"],
6604
+ "vnd.noblenet-directory": "nnd",
6605
+ "vnd.noblenet-sealer": "nns",
6606
+ "vnd.noblenet-web": "nnw",
6607
+ "vnd.nokia.n-gage.data": "ngdat",
6608
+ "vnd.nokia.n-gage.symbian.install": "n-gage",
6609
+ "vnd.nokia.radio-preset": "rpst",
6610
+ "vnd.nokia.radio-presets": "rpss",
6611
+ "vnd.novadigm.edm": "edm",
6612
+ "vnd.novadigm.edx": "edx",
6613
+ "vnd.novadigm.ext": "ext",
6614
+ "vnd.oasis.opendocument.chart-template": "otc",
6615
+ "vnd.oasis.opendocument.formula-template": "odft",
6616
+ "vnd.oasis.opendocument.image-template": "oti",
6617
+ "vnd.olpc-sugar": "xo",
6618
+ "vnd.oma.dd2+xml": "dd2",
6619
+ "vnd.openofficeorg.extension": "oxt",
6620
+ "vnd.openxmlformats-officedocument.presentationml.slide": "sldx",
6621
+ "vnd.osgeo.mapguide.package": "mgp",
6622
+ "vnd.osgi.dp": "dp",
6623
+ "vnd.osgi.subsystem": "esa",
6624
+ "vnd.palm": ["pdb", "pqa", "oprc"],
6625
+ "vnd.pawaafile": "paw",
6626
+ "vnd.pg.format": "str",
6627
+ "vnd.pg.osasli": "ei6",
6628
+ "vnd.picsel": "efif",
6629
+ "vnd.pmi.widget": "wg",
6630
+ "vnd.pocketlearn": "plf",
6631
+ "vnd.powerbuilder6": "pbd",
6632
+ "vnd.previewsystems.box": "box",
6633
+ "vnd.proteus.magazine": "mgz",
6634
+ "vnd.publishare-delta-tree": "qps",
6635
+ "vnd.pvi.ptid1": "ptid",
6636
+ "vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
6637
+ "vnd.realvnc.bed": "bed",
6638
+ "vnd.recordare.musicxml": "mxl",
6639
+ "vnd.recordare.musicxml+xml": "musicxml",
6640
+ "vnd.rig.cryptonote": "cryptonote",
6641
+ "vnd.rn-realmedia": "rm",
6642
+ "vnd.rn-realmedia-vbr": "rmvb",
6643
+ "vnd.route66.link66+xml": "link66",
6644
+ "vnd.sailingtracker.track": "st",
6645
+ "vnd.seemail": "see",
6646
+ "vnd.sema": "sema",
6647
+ "vnd.semd": "semd",
6648
+ "vnd.semf": "semf",
6649
+ "vnd.shana.informed.formdata": "ifm",
6650
+ "vnd.shana.informed.formtemplate": "itp",
6651
+ "vnd.shana.informed.interchange": "iif",
6652
+ "vnd.shana.informed.package": "ipk",
6653
+ "vnd.simtech-mindmapper": ["twd", "twds"],
6654
+ "vnd.smart.teacher": "teacher",
6655
+ "vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
6656
+ "vnd.spotfire.dxp": "dxp",
6657
+ "vnd.spotfire.sfs": "sfs",
6658
+ "vnd.stepmania.package": "smzip",
6659
+ "vnd.stepmania.stepchart": "sm",
6660
+ "vnd.sus-calendar": ["sus", "susp"],
6661
+ "vnd.svd": "svd",
6662
+ "vnd.syncml+xml": "xsm",
6663
+ "vnd.syncml.dm+wbxml": "bdm",
6664
+ "vnd.syncml.dm+xml": "xdm",
6665
+ "vnd.tao.intent-module-archive": "tao",
6666
+ "vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
6667
+ "vnd.tmobile-livetv": "tmo",
6668
+ "vnd.trid.tpt": "tpt",
6669
+ "vnd.triscape.mxs": "mxs",
6670
+ "vnd.trueapp": "tra",
6671
+ "vnd.ufdl": ["ufd", "ufdl"],
6672
+ "vnd.uiq.theme": "utz",
6673
+ "vnd.umajin": "umj",
6674
+ "vnd.unity": "unityweb",
6675
+ "vnd.uoml+xml": "uoml",
6676
+ "vnd.vcx": "vcx",
6677
+ "vnd.visionary": "vis",
6678
+ "vnd.vsf": "vsf",
6679
+ "vnd.webturbo": "wtb",
6680
+ "vnd.wolfram.player": "nbp",
6681
+ "vnd.wqd": "wqd",
6682
+ "vnd.wt.stf": "stf",
6683
+ "vnd.xara": "xar",
6684
+ "vnd.xfdl": "xfdl",
6685
+ "vnd.yamaha.hv-dic": "hvd",
6686
+ "vnd.yamaha.hv-script": "hvs",
6687
+ "vnd.yamaha.hv-voice": "hvp",
6688
+ "vnd.yamaha.openscoreformat": "osf",
6689
+ "vnd.yamaha.openscoreformat.osfpvg+xml": "osfpvg",
6690
+ "vnd.yamaha.smaf-audio": "saf",
6691
+ "vnd.yamaha.smaf-phrase": "spf",
6692
+ "vnd.yellowriver-custom-menu": "cmp",
6693
+ "vnd.zul": ["zir", "zirz"],
6694
+ "vnd.zzazz.deck+xml": "zaz",
6695
+ "voicexml+xml": "vxml",
6696
+ "widget": "wgt",
6697
+ "winhlp": "hlp",
6698
+ "wsdl+xml": "wsdl",
6699
+ "wspolicy+xml": "wspolicy",
6700
+ "x-ace-compressed": "ace",
6701
+ "x-authorware-bin": ["aab", "x32", "u32", "vox"],
6702
+ "x-authorware-map": "aam",
6703
+ "x-authorware-seg": "aas",
6704
+ "x-blorb": ["blb", "blorb"],
6705
+ "x-bzip": "bz",
6706
+ "x-bzip2": ["bz2", "boz"],
6707
+ "x-cfs-compressed": "cfs",
6708
+ "x-chat": "chat",
6709
+ "x-conference": "nsc",
6710
+ "x-dgc-compressed": "dgc",
6711
+ "x-dtbncx+xml": "ncx",
6712
+ "x-dtbook+xml": "dtb",
6713
+ "x-dtbresource+xml": "res",
6714
+ "x-eva": "eva",
6715
+ "x-font-bdf": "bdf",
6716
+ "x-font-ghostscript": "gsf",
6717
+ "x-font-linux-psf": "psf",
6718
+ "x-font-otf": "otf",
6719
+ "x-font-pcf": "pcf",
6720
+ "x-font-snf": "snf",
6721
+ "x-font-ttf": ["ttf", "ttc"],
6722
+ "x-font-type1": ["pfa", "pfb", "pfm", "afm"],
6723
+ "x-font-woff": "woff",
6724
+ "x-freearc": "arc",
6725
+ "x-gca-compressed": "gca",
6726
+ "x-glulx": "ulx",
6727
+ "x-gramps-xml": "gramps",
6728
+ "x-install-instructions": "install",
6729
+ "x-lzh-compressed": ["lzh", "lha"],
6730
+ "x-mie": "mie",
6731
+ "x-mobipocket-ebook": ["prc", "mobi"],
6732
+ "x-ms-application": "application",
6733
+ "x-ms-shortcut": "lnk",
6734
+ "x-ms-xbap": "xbap",
6735
+ "x-msbinder": "obd",
6736
+ "x-mscardfile": "crd",
6737
+ "x-msclip": "clp",
6738
+ "x-msdownload": ["exe", "dll", "com", "bat", "msi"],
6739
+ "x-msmediaview": ["mvb", "m13", "m14"],
6740
+ "x-msmetafile": ["wmf", "wmz", "emf", "emz"],
6741
+ "x-msmoney": "mny",
6742
+ "x-mspublisher": "pub",
6743
+ "x-msschedule": "scd",
6744
+ "x-msterminal": "trm",
6745
+ "x-mswrite": "wri",
6746
+ "x-nzb": "nzb",
6747
+ "x-pkcs12": ["p12", "pfx"],
6748
+ "x-pkcs7-certificates": ["p7b", "spc"],
6749
+ "x-research-info-systems": "ris",
6750
+ "x-silverlight-app": "xap",
6751
+ "x-sql": "sql",
6752
+ "x-stuffitx": "sitx",
6753
+ "x-subrip": "srt",
6754
+ "x-t3vm-image": "t3",
6755
+ "x-tads": "gam",
6756
+ "x-tex": "tex",
6757
+ "x-tex-tfm": "tfm",
6758
+ "x-tgif": "obj",
6759
+ "x-xliff+xml": "xlf",
6760
+ "x-xz": "xz",
6761
+ "x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
6762
+ "xaml+xml": "xaml",
6763
+ "xcap-diff+xml": "xdf",
6764
+ "xenc+xml": "xenc",
6765
+ "xml-dtd": "dtd",
6766
+ "xop+xml": "xop",
6767
+ "xproc+xml": "xpl",
6768
+ "xslt+xml": "xslt",
6769
+ "xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
6770
+ "yang": "yang",
6771
+ "yin+xml": "yin",
6772
+ "envoy": "evy",
6773
+ "fractals": "fif",
6774
+ "internet-property-stream": "acx",
6775
+ "olescript": "axs",
6776
+ "vnd.ms-outlook": "msg",
6777
+ "vnd.ms-pkicertstore": "sst",
6778
+ "x-compress": "z",
6779
+ "x-compressed": "tgz",
6780
+ "x-gzip": "gz",
6781
+ "x-perfmon": ["pma", "pmc", "pml", "pmr", "pmw"],
6782
+ "x-pkcs7-mime": ["p7c", "p7m"],
6783
+ "ynd.ms-pkipko": "pko"
6784
+ },
6785
+ "audio": {
6786
+ "amr": "amr",
6787
+ "amr-wb": "awb",
6788
+ "annodex": "axa",
6789
+ "basic": ["au", "snd"],
6790
+ "flac": "flac",
6791
+ "midi": ["mid", "midi", "kar", "rmi"],
6792
+ "mpeg": ["mpga", "mpega", "mp2", "mp3", "m4a", "mp2a", "m2a", "m3a"],
6793
+ "mpegurl": "m3u",
6794
+ "ogg": ["oga", "ogg", "spx"],
6795
+ "prs.sid": "sid",
6796
+ "x-aiff": ["aif", "aiff", "aifc"],
6797
+ "x-gsm": "gsm",
6798
+ "x-ms-wma": "wma",
6799
+ "x-ms-wax": "wax",
6800
+ "x-pn-realaudio": "ram",
6801
+ "x-realaudio": "ra",
6802
+ "x-sd2": "sd2",
6803
+ "x-wav": "wav",
6804
+ "adpcm": "adp",
6805
+ "mp4": "mp4a",
6806
+ "s3m": "s3m",
6807
+ "silk": "sil",
6808
+ "vnd.dece.audio": ["uva", "uvva"],
6809
+ "vnd.digital-winds": "eol",
6810
+ "vnd.dra": "dra",
6811
+ "vnd.dts": "dts",
6812
+ "vnd.dts.hd": "dtshd",
6813
+ "vnd.lucent.voice": "lvp",
6814
+ "vnd.ms-playready.media.pya": "pya",
6815
+ "vnd.nuera.ecelp4800": "ecelp4800",
6816
+ "vnd.nuera.ecelp7470": "ecelp7470",
6817
+ "vnd.nuera.ecelp9600": "ecelp9600",
6818
+ "vnd.rip": "rip",
6819
+ "webm": "weba",
6820
+ "x-aac": "aac",
6821
+ "x-caf": "caf",
6822
+ "x-matroska": "mka",
6823
+ "x-pn-realaudio-plugin": "rmp",
6824
+ "xm": "xm",
6825
+ "mid": ["mid", "rmi"]
6826
+ },
6827
+ "chemical": {
6828
+ "x-alchemy": "alc",
6829
+ "x-cache": ["cac", "cache"],
6830
+ "x-cache-csf": "csf",
6831
+ "x-cactvs-binary": ["cbin", "cascii", "ctab"],
6832
+ "x-cdx": "cdx",
6833
+ "x-chem3d": "c3d",
6834
+ "x-cif": "cif",
6835
+ "x-cmdf": "cmdf",
6836
+ "x-cml": "cml",
6837
+ "x-compass": "cpa",
6838
+ "x-crossfire": "bsd",
6839
+ "x-csml": ["csml", "csm"],
6840
+ "x-ctx": "ctx",
6841
+ "x-cxf": ["cxf", "cef"],
6842
+ "x-embl-dl-nucleotide": ["emb", "embl"],
6843
+ "x-gamess-input": ["inp", "gam", "gamin"],
6844
+ "x-gaussian-checkpoint": ["fch", "fchk"],
6845
+ "x-gaussian-cube": "cub",
6846
+ "x-gaussian-input": ["gau", "gjc", "gjf"],
6847
+ "x-gaussian-log": "gal",
6848
+ "x-gcg8-sequence": "gcg",
6849
+ "x-genbank": "gen",
6850
+ "x-hin": "hin",
6851
+ "x-isostar": ["istr", "ist"],
6852
+ "x-jcamp-dx": ["jdx", "dx"],
6853
+ "x-kinemage": "kin",
6854
+ "x-macmolecule": "mcm",
6855
+ "x-macromodel-input": ["mmd", "mmod"],
6856
+ "x-mdl-molfile": "mol",
6857
+ "x-mdl-rdfile": "rd",
6858
+ "x-mdl-rxnfile": "rxn",
6859
+ "x-mdl-sdfile": ["sd", "sdf"],
6860
+ "x-mdl-tgf": "tgf",
6861
+ "x-mmcif": "mcif",
6862
+ "x-mol2": "mol2",
6863
+ "x-molconn-Z": "b",
6864
+ "x-mopac-graph": "gpt",
6865
+ "x-mopac-input": ["mop", "mopcrt", "mpc", "zmt"],
6866
+ "x-mopac-out": "moo",
6867
+ "x-ncbi-asn1": "asn",
6868
+ "x-ncbi-asn1-ascii": ["prt", "ent"],
6869
+ "x-ncbi-asn1-binary": ["val", "aso"],
6870
+ "x-pdb": ["pdb", "ent"],
6871
+ "x-rosdal": "ros",
6872
+ "x-swissprot": "sw",
6873
+ "x-vamas-iso14976": "vms",
6874
+ "x-vmd": "vmd",
6875
+ "x-xtel": "xtel",
6876
+ "x-xyz": "xyz"
6877
+ },
6878
+ "image": {
6879
+ "gif": "gif",
6880
+ "ief": "ief",
6881
+ "jpeg": ["jpeg", "jpg", "jpe"],
6882
+ "pcx": "pcx",
6883
+ "png": "png",
6884
+ "svg+xml": ["svg", "svgz"],
6885
+ "tiff": ["tiff", "tif"],
6886
+ "vnd.djvu": ["djvu", "djv"],
6887
+ "vnd.wap.wbmp": "wbmp",
6888
+ "x-canon-cr2": "cr2",
6889
+ "x-canon-crw": "crw",
6890
+ "x-cmu-raster": "ras",
6891
+ "x-coreldraw": "cdr",
6892
+ "x-coreldrawpattern": "pat",
6893
+ "x-coreldrawtemplate": "cdt",
6894
+ "x-corelphotopaint": "cpt",
6895
+ "x-epson-erf": "erf",
6896
+ "x-icon": "ico",
6897
+ "x-jg": "art",
6898
+ "x-jng": "jng",
6899
+ "x-nikon-nef": "nef",
6900
+ "x-olympus-orf": "orf",
6901
+ "x-photoshop": "psd",
6902
+ "x-portable-anymap": "pnm",
6903
+ "x-portable-bitmap": "pbm",
6904
+ "x-portable-graymap": "pgm",
6905
+ "x-portable-pixmap": "ppm",
6906
+ "x-rgb": "rgb",
6907
+ "x-xbitmap": "xbm",
6908
+ "x-xpixmap": "xpm",
6909
+ "x-xwindowdump": "xwd",
6910
+ "bmp": "bmp",
6911
+ "cgm": "cgm",
6912
+ "g3fax": "g3",
6913
+ "ktx": "ktx",
6914
+ "prs.btif": "btif",
6915
+ "sgi": "sgi",
6916
+ "vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
6917
+ "vnd.dwg": "dwg",
6918
+ "vnd.dxf": "dxf",
6919
+ "vnd.fastbidsheet": "fbs",
6920
+ "vnd.fpx": "fpx",
6921
+ "vnd.fst": "fst",
6922
+ "vnd.fujixerox.edmics-mmr": "mmr",
6923
+ "vnd.fujixerox.edmics-rlc": "rlc",
6924
+ "vnd.ms-modi": "mdi",
6925
+ "vnd.ms-photo": "wdp",
6926
+ "vnd.net-fpx": "npx",
6927
+ "vnd.xiff": "xif",
6928
+ "webp": "webp",
6929
+ "x-3ds": "3ds",
6930
+ "x-cmx": "cmx",
6931
+ "x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
6932
+ "x-pict": ["pic", "pct"],
6933
+ "x-tga": "tga",
6934
+ "cis-cod": "cod",
6935
+ "pipeg": "jfif"
6936
+ },
6937
+ "message": {
6938
+ "rfc822": ["eml", "mime", "mht", "mhtml", "nws"]
6939
+ },
6940
+ "model": {
6941
+ "iges": ["igs", "iges"],
6942
+ "mesh": ["msh", "mesh", "silo"],
6943
+ "vrml": ["wrl", "vrml"],
6944
+ "x3d+vrml": ["x3dv", "x3dvz"],
6945
+ "x3d+xml": ["x3d", "x3dz"],
6946
+ "x3d+binary": ["x3db", "x3dbz"],
6947
+ "vnd.collada+xml": "dae",
6948
+ "vnd.dwf": "dwf",
6949
+ "vnd.gdl": "gdl",
6950
+ "vnd.gtw": "gtw",
6951
+ "vnd.mts": "mts",
6952
+ "vnd.vtu": "vtu"
6953
+ },
6954
+ "text": {
6955
+ "cache-manifest": ["manifest", "appcache"],
6956
+ "calendar": ["ics", "icz", "ifb"],
6957
+ "css": "css",
6958
+ "csv": "csv",
6959
+ "h323": "323",
6960
+ "html": ["html", "htm", "shtml", "stm"],
6961
+ "iuls": "uls",
6962
+ "mathml": "mml",
6963
+ "plain": ["txt", "text", "brf", "conf", "def", "list", "log", "in", "bas"],
6964
+ "richtext": "rtx",
6965
+ "scriptlet": ["sct", "wsc"],
6966
+ "texmacs": ["tm", "ts"],
6967
+ "tab-separated-values": "tsv",
6968
+ "vnd.sun.j2me.app-descriptor": "jad",
6969
+ "vnd.wap.wml": "wml",
6970
+ "vnd.wap.wmlscript": "wmls",
6971
+ "x-bibtex": "bib",
6972
+ "x-boo": "boo",
6973
+ "x-c++hdr": ["h++", "hpp", "hxx", "hh"],
6974
+ "x-c++src": ["c++", "cpp", "cxx", "cc"],
6975
+ "x-component": "htc",
6976
+ "x-dsrc": "d",
6977
+ "x-diff": ["diff", "patch"],
6978
+ "x-haskell": "hs",
6979
+ "x-java": "java",
6980
+ "x-literate-haskell": "lhs",
6981
+ "x-moc": "moc",
6982
+ "x-pascal": ["p", "pas"],
6983
+ "x-pcs-gcd": "gcd",
6984
+ "x-perl": ["pl", "pm"],
6985
+ "x-python": "py",
6986
+ "x-scala": "scala",
6987
+ "x-setext": "etx",
6988
+ "x-tcl": ["tcl", "tk"],
6989
+ "x-tex": ["tex", "ltx", "sty", "cls"],
6990
+ "x-vcalendar": "vcs",
6991
+ "x-vcard": "vcf",
6992
+ "n3": "n3",
6993
+ "prs.lines.tag": "dsc",
6994
+ "sgml": ["sgml", "sgm"],
6995
+ "troff": ["t", "tr", "roff", "man", "me", "ms"],
6996
+ "turtle": "ttl",
6997
+ "uri-list": ["uri", "uris", "urls"],
6998
+ "vcard": "vcard",
6999
+ "vnd.curl": "curl",
7000
+ "vnd.curl.dcurl": "dcurl",
7001
+ "vnd.curl.scurl": "scurl",
7002
+ "vnd.curl.mcurl": "mcurl",
7003
+ "vnd.dvb.subtitle": "sub",
7004
+ "vnd.fly": "fly",
7005
+ "vnd.fmi.flexstor": "flx",
7006
+ "vnd.graphviz": "gv",
7007
+ "vnd.in3d.3dml": "3dml",
7008
+ "vnd.in3d.spot": "spot",
7009
+ "x-asm": ["s", "asm"],
7010
+ "x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
7011
+ "x-fortran": ["f", "for", "f77", "f90"],
7012
+ "x-opml": "opml",
7013
+ "x-nfo": "nfo",
7014
+ "x-sfv": "sfv",
7015
+ "x-uuencode": "uu",
7016
+ "webviewhtml": "htt"
7017
+ },
7018
+ "video": {
7019
+ "avif": ".avif",
7020
+ "3gpp": "3gp",
7021
+ "annodex": "axv",
7022
+ "dl": "dl",
7023
+ "dv": ["dif", "dv"],
7024
+ "fli": "fli",
7025
+ "gl": "gl",
7026
+ "mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v", "mp2", "mpa", "mpv2"],
7027
+ "mp4": ["mp4", "mp4v", "mpg4"],
7028
+ "quicktime": ["qt", "mov"],
7029
+ "ogg": "ogv",
7030
+ "vnd.mpegurl": ["mxu", "m4u"],
7031
+ "x-flv": "flv",
7032
+ "x-la-asf": ["lsf", "lsx"],
7033
+ "x-mng": "mng",
7034
+ "x-ms-asf": ["asf", "asx", "asr"],
7035
+ "x-ms-wm": "wm",
7036
+ "x-ms-wmv": "wmv",
7037
+ "x-ms-wmx": "wmx",
7038
+ "x-ms-wvx": "wvx",
7039
+ "x-msvideo": "avi",
7040
+ "x-sgi-movie": "movie",
7041
+ "x-matroska": ["mpv", "mkv", "mk3d", "mks"],
7042
+ "3gpp2": "3g2",
7043
+ "h261": "h261",
7044
+ "h263": "h263",
7045
+ "h264": "h264",
7046
+ "jpeg": "jpgv",
7047
+ "jpm": ["jpm", "jpgm"],
7048
+ "mj2": ["mj2", "mjp2"],
7049
+ "vnd.dece.hd": ["uvh", "uvvh"],
7050
+ "vnd.dece.mobile": ["uvm", "uvvm"],
7051
+ "vnd.dece.pd": ["uvp", "uvvp"],
7052
+ "vnd.dece.sd": ["uvs", "uvvs"],
7053
+ "vnd.dece.video": ["uvv", "uvvv"],
7054
+ "vnd.dvb.file": "dvb",
7055
+ "vnd.fvt": "fvt",
7056
+ "vnd.ms-playready.media.pyv": "pyv",
7057
+ "vnd.uvvu.mp4": ["uvu", "uvvu"],
7058
+ "vnd.vivo": "viv",
7059
+ "webm": "webm",
7060
+ "x-f4v": "f4v",
7061
+ "x-m4v": "m4v",
7062
+ "x-ms-vob": "vob",
7063
+ "x-smv": "smv"
7064
+ },
7065
+ "x-conference": {
7066
+ "x-cooltalk": "ice"
7067
+ },
7068
+ "x-world": {
7069
+ "x-vrml": ["vrm", "vrml", "wrl", "flr", "wrz", "xaf", "xof"]
6911
7070
  }
6912
- }
6913
-
6914
- class InflateStream extends TransformStream {
7071
+ };
6915
7072
 
6916
- constructor(codecConstructor, options, { chunkSize }, ...strategies) {
6917
- super({}, ...strategies);
6918
- const { zipCrypto, encrypted, password, passwordVerification, signed, encryptionStrength, compressed, useCompressionStream } = options;
6919
- const stream = this;
6920
- let crc32Stream, decryptionStream;
6921
- let readable = filterEmptyChunks(super.readable);
6922
- if (encrypted) {
6923
- if (zipCrypto) {
6924
- readable = readable.pipeThrough(new ZipCryptoDecryptionStream(password, passwordVerification));
6925
- } else {
6926
- decryptionStream = new AESDecryptionStream(password, signed, encryptionStrength);
6927
- readable = readable.pipeThrough(decryptionStream);
6928
- }
6929
- }
6930
- if (compressed) {
6931
- if ((useCompressionStream !== undefined && !useCompressionStream) || (DECOMPRESSION_STREAM_API_SUPPORTED && !INFLATE_RAW_SUPPORTED)) {
6932
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
6933
- } else {
6934
- try {
6935
- readable = readable.pipeThrough(new DecompressionStream(COMPRESSION_FORMAT));
6936
- } catch (_error) {
6937
- INFLATE_RAW_SUPPORTED = false;
6938
- readable = pipeCodecStream(codecConstructor, readable, { chunkSize });
6939
- }
6940
- }
6941
- }
6942
- if ((!encrypted || zipCrypto) && signed) {
6943
- [readable, crc32Stream] = readable.tee();
6944
- crc32Stream = crc32Stream.pipeThrough(new Crc32Stream());
6945
- }
6946
- setReadable(stream, readable, async () => {
6947
- if (encrypted && !zipCrypto) {
6948
- if (!decryptionStream.valid) {
6949
- throw new Error(ERR_INVALID_SIGNATURE);
6950
- }
6951
- }
6952
- if ((!encrypted || zipCrypto) && signed) {
6953
- const signature = await crc32Stream.getReader().read();
6954
- const dataViewSignature = new DataView(signature.value.buffer);
6955
- if (options.signature != dataViewSignature.getUint32(0, false)) {
6956
- throw new Error(ERR_INVALID_SIGNATURE);
7073
+ const mimeTypes = (() => {
7074
+ const mimeTypes = {};
7075
+ for (const type in table) {
7076
+ // eslint-disable-next-line no-prototype-builtins
7077
+ if (table.hasOwnProperty(type)) {
7078
+ for (const subtype in table[type]) {
7079
+ // eslint-disable-next-line no-prototype-builtins
7080
+ if (table[type].hasOwnProperty(subtype)) {
7081
+ const value = table[type][subtype];
7082
+ if (typeof value == "string") {
7083
+ mimeTypes[value] = type + "/" + subtype;
7084
+ } else {
7085
+ for (let indexMimeType = 0; indexMimeType < value.length; indexMimeType++) {
7086
+ mimeTypes[value[indexMimeType]] = type + "/" + subtype;
7087
+ }
7088
+ }
6957
7089
  }
6958
7090
  }
6959
- });
6960
- }
6961
- }
6962
-
6963
- function pipeCodecStream(codecConstructor, readable, options) {
6964
- return readable.pipeThrough(new CodecStream(codecConstructor, options));
6965
- }
6966
-
6967
- function filterEmptyChunks(readable) {
6968
- return readable.pipeThrough(new TransformStream({
6969
- transform(chunk, controller) {
6970
- if (chunk && chunk.length) {
6971
- controller.enqueue(chunk);
6972
- }
6973
- }
6974
- }));
6975
- }
6976
-
6977
- function setReadable(stream, readable, flush) {
6978
- readable = readable.pipeThrough(new TransformStream({ flush }));
6979
- Object.defineProperty(stream, "readable", {
6980
- get() {
6981
- return readable;
6982
- }
6983
- });
6984
- }
6985
-
6986
- /*
6987
- Copyright (c) 2022 Gildas Lormeau. All rights reserved.
6988
-
6989
- Redistribution and use in source and binary forms, with or without
6990
- modification, are permitted provided that the following conditions are met:
6991
-
6992
- 1. Redistributions of source code must retain the above copyright notice,
6993
- this list of conditions and the following disclaimer.
6994
-
6995
- 2. Redistributions in binary form must reproduce the above copyright
6996
- notice, this list of conditions and the following disclaimer in
6997
- the documentation and/or other materials provided with the distribution.
6998
-
6999
- 3. The names of the authors may not be used to endorse or promote products
7000
- derived from this software without specific prior written permission.
7001
-
7002
- THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
7003
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
7004
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
7005
- INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
7006
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
7007
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
7008
- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
7009
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
7010
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
7011
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7012
- */
7013
-
7014
- const CODEC_DEFLATE = "deflate";
7015
- const CODEC_INFLATE = "inflate";
7016
- const MESSAGE_EVENT_TYPE = "message";
7017
- const MESSAGE_START = "start";
7018
- const MESSAGE_PULL = "pull";
7019
- const MESSAGE_DATA = "data";
7020
- const MESSAGE_ACK_DATA = "ack";
7021
- const MESSAGE_CLOSE = "close";
7022
-
7023
- class Codec {
7024
-
7025
- constructor(CodecConstructor, readable, writable, options, config) {
7026
- const { codecType } = options;
7027
- let StreamConstructor;
7028
- if (codecType.startsWith(CODEC_DEFLATE)) {
7029
- StreamConstructor = DeflateStream;
7030
- } else if (codecType.startsWith(CODEC_INFLATE)) {
7031
- StreamConstructor = InflateStream;
7032
7091
  }
7033
- Object.assign(this, {
7034
- StreamConstructor,
7035
- CodecConstructor,
7036
- readable,
7037
- writable,
7038
- options,
7039
- config
7040
- });
7041
7092
  }
7093
+ return mimeTypes;
7094
+ })();
7042
7095
 
7043
- async run() {
7044
- const {
7045
- StreamConstructor,
7046
- CodecConstructor,
7047
- readable,
7048
- writable,
7049
- options,
7050
- config
7051
- } = this;
7052
- const stream = new StreamConstructor(CodecConstructor, options, config);
7053
- let size = 0;
7054
- await readable
7055
- .pipeThrough(stream)
7056
- .pipeThrough(new TransformStream({
7057
- transform(chunk, controller) {
7058
- if (chunk && chunk.length) {
7059
- size += chunk.length;
7060
- controller.enqueue(chunk);
7061
- }
7062
- }
7063
- }))
7064
- .pipeTo(writable, { preventClose: true, preventAbort: true });
7065
- const { signature } = stream;
7066
- return { size, signature };
7067
- }
7096
+ function getMimeType(filename) {
7097
+ return filename && mimeTypes[filename.split(".").pop().toLowerCase()] || getMimeType$1();
7068
7098
  }
7069
7099
 
7070
7100
  /*
@@ -7103,10 +7133,9 @@
7103
7133
 
7104
7134
  constructor(workerData, stream, workerOptions, onTaskFinished) {
7105
7135
  const { readable, writable } = stream;
7106
- const { options, config, streamOptions, useWebWorkers, transferStreams, scripts, codecConstructor } = workerOptions;
7136
+ const { options, config, streamOptions, useWebWorkers, transferStreams, scripts } = workerOptions;
7107
7137
  Object.assign(workerData, {
7108
7138
  busy: true,
7109
- codecConstructor,
7110
7139
  readable,
7111
7140
  writable,
7112
7141
  options: Object.assign({}, options),
@@ -7159,7 +7188,7 @@
7159
7188
  }
7160
7189
 
7161
7190
  function createWorkerInterface(workerData, config) {
7162
- const interfaceCodec = new Codec(workerData.codecConstructor, workerData.readable, workerData.writable, workerData.options, config);
7191
+ const interfaceCodec = new Codec(workerData.readable, workerData.writable, workerData.options, config);
7163
7192
  const { onTaskFinished } = workerData;
7164
7193
  const codec = {
7165
7194
  async run() {
@@ -7360,7 +7389,7 @@
7360
7389
  const streamCopy = !compressed && !signed && !encrypted && !workerOptions.transferStreams;
7361
7390
  workerOptions.useWebWorkers = !streamCopy && (useWebWorkers || (useWebWorkers === undefined && config.useWebWorkers));
7362
7391
  workerOptions.scripts = workerOptions.useWebWorkers && workerScripts ? workerScripts[codecType] : [];
7363
- options.useCompressionStream = useCompressionStream === undefined ? config.useCompressionStream : useCompressionStream;
7392
+ options.useCompressionStream = useCompressionStream || (useCompressionStream === undefined && config.useCompressionStream);
7364
7393
  let worker;
7365
7394
  if (pool.length < config.maxWorkers) {
7366
7395
  const workerData = { indexWorker };
@@ -7412,7 +7441,7 @@
7412
7441
  });
7413
7442
  }
7414
7443
 
7415
- function t(t){const e=()=>URL.createObjectURL(new Blob(['const{Array:t,Object:e,Math:n,Error:r,Uint8Array:i,Uint16Array:s,Uint32Array:o,Int32Array:c,DataView:f,Promise:l,TextEncoder:a,crypto:u,postMessage:w,TransformStream:h,ReadableStream:d,WritableStream:p,CompressionStream:b,DecompressionStream:y}=globalThis,m=[];for(let t=0;256>t;t++){let e=t;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;m[t]=e}class k{constructor(t){this.t=t||-1}append(t){let e=0|this.t;for(let n=0,r=0|t.length;r>n;n++)e=e>>>8^m[255&(e^t[n])];this.t=e}get(){return~this.t}}class g extends h{constructor(){const t=new k;super({transform(e){t.append(e)},flush(e){const n=new i(4);new f(n.buffer).setUint32(0,t.get()),e.enqueue(n)}})}}const v={concat(t,e){if(0===t.length||0===e.length)return t.concat(e);const n=t[t.length-1],r=v.i(n);return 32===r?t.concat(e):v.o(e,r,0|n,t.slice(0,t.length-1))},l(t){const e=t.length;if(0===e)return 0;const n=t[e-1];return 32*(e-1)+v.i(n)},u(t,e){if(32*t.length<e)return t;const r=(t=t.slice(0,n.ceil(e/32))).length;return e&=31,r>0&&e&&(t[r-1]=v.h(e,t[r-1]&2147483648>>e-1,1)),t},h:(t,e,n)=>32===t?e:(n?0|e:e<<32-t)+1099511627776*t,i:t=>n.round(t/1099511627776)||32,o(t,e,n,r){for(void 0===r&&(r=[]);e>=32;e-=32)r.push(n),n=0;if(0===e)return r.concat(t);for(let i=0;i<t.length;i++)r.push(n|t[i]>>>e),n=t[i]<<32-e;const i=t.length?t[t.length-1]:0,s=v.i(i);return r.push(v.h(e+s&31,e+s>32?n:r.pop(),1)),r}},S={p:{m(t){const e=v.l(t)/8,n=new i(e);let r;for(let i=0;e>i;i++)0==(3&i)&&(r=t[i/4]),n[i]=r>>>24,r<<=8;return n},k(t){const e=[];let n,r=0;for(n=0;n<t.length;n++)r=r<<8|t[n],3==(3&n)&&(e.push(r),r=0);return 3&n&&e.push(v.h(8*(3&n),r)),e}}},C={g:function(t){t?(this.v=t.v.slice(0),this.S=t.S.slice(0),this.C=t.C):this.reset()}};C.g.prototype={blockSize:512,reset(){const t=this;return t.v=this._.slice(0),t.S=[],t.C=0,t},update(t){const e=this;"string"==typeof t&&(t=S.I.k(t));const n=e.S=v.concat(e.S,t),i=e.C,s=e.C=i+v.l(t);if(s>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let t=e.blockSize+i-(e.blockSize+i&e.blockSize-1);s>=t;t+=e.blockSize)e.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),e},V(){const t=this;let e=t.S;const r=t.v;e=v.concat(e,[v.h(1,1)]);for(let t=e.length+2;15&t;t++)e.push(0);for(e.push(n.floor(t.C/4294967296)),e.push(0|t.C);e.length;)t.A(e.splice(0,16));return t.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],M:[1518500249,1859775393,2400959708,3395469782],B:(t,e,n,r)=>t>19?t>39?t>59?t>79?void 0:e^n^r:e&n|e&r|n&r:e^n^r:e&n|~e&r,D:(t,e)=>e<<t|e>>>32-t,A(e){const r=this,i=r.v,s=t(80);for(let t=0;16>t;t++)s[t]=e[t];let o=i[0],c=i[1],f=i[2],l=i[3],a=i[4];for(let t=0;79>=t;t++){16>t||(s[t]=r.D(1,s[t-3]^s[t-8]^s[t-14]^s[t-16]));const e=r.D(5,o)+r.B(t,c,f,l)+a+s[t]+r.M[n.floor(t/20)]|0;a=l,l=f,f=r.D(30,c),c=o,o=e}i[0]=i[0]+o|0,i[1]=i[1]+c|0,i[2]=i[2]+f|0,i[3]=i[3]+l|0,i[4]=i[4]+a|0}};const z={getRandomValues(t){const e=new o(t.buffer),r=t=>{let e=987654321;const r=4294967295;return()=>(e=36969*(65535&e)+(e>>16)&r,(((e<<16)+(t=18e3*(65535&t)+(t>>16)&r)&r)/4294967296+.5)*(n.random()>.5?1:-1))};for(let i,s=0;s<t.length;s+=4){const t=r(4294967296*(i||n.random()));i=987654071*t(),e[s/4]=4294967296*t()|0}return t}},_={importKey:t=>new _.T(S.p.k(t)),P(t,e,n,i){if(n=n||1e4,0>i||0>n)throw new r("invalid params to pbkdf2");const s=1+(i>>5)<<2;let o,c,l,a,u;const w=new ArrayBuffer(s),h=new f(w);let d=0;const p=v;for(e=S.p.k(e),u=1;(s||1)>d;u++){for(o=c=t.encrypt(p.concat(e,[u])),l=1;n>l;l++)for(c=t.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(l=0;(s||1)>d&&l<o.length;l++)h.setInt32(d,o[l]),d+=4}return w.slice(0,i/8)},T:class{constructor(t){const e=this,n=e.R=C.g,r=[[],[]],i=n.prototype.blockSize/32;e.U=[new n,new n],t.length>i&&(t=n.hash(t));for(let e=0;i>e;e++)r[0][e]=909522486^t[e],r[1][e]=1549556828^t[e];e.U[0].update(r[0]),e.U[1].update(r[1]),e.W=new n(e.U[0])}reset(){const t=this;t.W=new t.R(t.U[0]),t.H=!1}update(t){this.H=!0,this.W.update(t)}digest(){const t=this,e=t.W.V(),n=new t.R(t.U[1]).update(e).V();return t.reset(),n}encrypt(t){if(this.H)throw new r("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},I=void 0!==u&&"function"==typeof u.getRandomValues;function x(t){return I?u.getRandomValues(t):z.getRandomValues(t)}const A={name:"PBKDF2"},V=e.assign({hash:{name:"HMAC"}},A),M=e.assign({iterations:1e3,hash:{name:"SHA-1"}},A),B=["deriveBits"],D=[8,12,16],E=[16,24,32],T=[0,0,0,0],P=void 0!==u,R=P&&void 0!==u.subtle,U=P&&R&&"function"==typeof u.subtle.importKey,W=P&&R&&"function"==typeof u.subtle.deriveBits,H=S.p,K=class{constructor(t){const e=this;e.K=[[[],[],[],[],[]],[[],[],[],[],[]]],e.K[0][0][0]||e.L();const n=e.K[0][4],i=e.K[1],s=t.length;let o,c,f,l=1;if(4!==s&&6!==s&&8!==s)throw new r("invalid aes key size");for(e.M=[c=t.slice(0),f=[]],o=s;4*s+28>o;o++){let t=c[o-1];(o%s==0||8===s&&o%s==4)&&(t=n[t>>>24]<<24^n[t>>16&255]<<16^n[t>>8&255]<<8^n[255&t],o%s==0&&(t=t<<8^t>>>24^l<<24,l=l<<1^283*(l>>7))),c[o]=c[o-s]^t}for(let t=0;o;t++,o--){const e=c[3&t?o:o-4];f[t]=4>=o||4>t?e:i[0][n[e>>>24]]^i[1][n[e>>16&255]]^i[2][n[e>>8&255]]^i[3][n[255&e]]}}encrypt(t){return this.N(t,0)}decrypt(t){return this.N(t,1)}L(){const t=this.K[0],e=this.K[1],n=t[4],r=e[4],i=[],s=[];let o,c,f,l;for(let t=0;256>t;t++)s[(i[t]=t<<1^283*(t>>7))^t]=t;for(let a=o=0;!n[a];a^=c||1,o=s[o]||1){let s=o^o<<1^o<<2^o<<3^o<<4;s=s>>8^255&s^99,n[a]=s,r[s]=a,l=i[f=i[c=i[a]]];let u=16843009*l^65537*f^257*c^16843008*a,w=257*i[s]^16843008*s;for(let n=0;4>n;n++)t[n][a]=w=w<<24^w>>>8,e[n][s]=u=u<<24^u>>>8}for(let n=0;5>n;n++)t[n]=t[n].slice(0),e[n]=e[n].slice(0)}N(t,e){if(4!==t.length)throw new r("invalid aes block size");const n=this.M[e],i=n.length/4-2,s=[0,0,0,0],o=this.K[e],c=o[0],f=o[1],l=o[2],a=o[3],u=o[4];let w,h,d,p=t[0]^n[0],b=t[e?3:1]^n[1],y=t[2]^n[2],m=t[e?1:3]^n[3],k=4;for(let t=0;i>t;t++)w=c[p>>>24]^f[b>>16&255]^l[y>>8&255]^a[255&m]^n[k],h=c[b>>>24]^f[y>>16&255]^l[m>>8&255]^a[255&p]^n[k+1],d=c[y>>>24]^f[m>>16&255]^l[p>>8&255]^a[255&b]^n[k+2],m=c[m>>>24]^f[p>>16&255]^l[b>>8&255]^a[255&y]^n[k+3],k+=4,p=w,b=h,y=d;for(let t=0;4>t;t++)s[e?3&-t:t]=u[p>>>24]<<24^u[b>>16&255]<<16^u[y>>8&255]<<8^u[255&m]^n[k++],w=p,p=b,b=y,y=m,m=w;return s}},L=class{constructor(t,e){this.j=t,this.F=e,this.O=e}reset(){this.O=this.F}update(t){return this.q(this.j,t,this.O)}G(t){if(255==(t>>24&255)){let e=t>>16&255,n=t>>8&255,r=255&t;255===e?(e=0,255===n?(n=0,255===r?r=0:++r):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=r}else t+=1<<24;return t}J(t){0===(t[0]=this.G(t[0]))&&(t[1]=this.G(t[1]))}q(t,e,n){let r;if(!(r=e.length))return[];const i=v.l(e);for(let i=0;r>i;i+=4){this.J(n);const r=t.encrypt(n);e[i]^=r[0],e[i+1]^=r[1],e[i+2]^=r[2],e[i+3]^=r[3]}return v.u(e,i)}},N=_.T;class j extends h{constructor(n,s,o){let c;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,signed:s,Y:o-1,pending:new i})},async transform(e,n){const s=this;if(s.password){const n=s.password;s.password=null;const i=J(e,0,D[s.Y]+2);await(async(t,e,n)=>{await q(t,n,J(e,0,D[t.Y]));const i=J(e,D[t.Y]),s=t.keys.passwordVerification;if(s[0]!=i[0]||s[1]!=i[1])throw new r("Invalid password")})(s,i,n),s.Z=new L(new K(s.keys.key),t.from(T)),s.$=new N(s.keys.tt),e=J(e,D[s.Y]+2),s.X()}else await s.ready;const o=new i(e.length-10-(e.length-10)%16);n.enqueue(O(s,e,o,0,10,!0))},async flush(t){const e=this;await e.ready;const n=e.pending,r=J(n,0,n.length-10),s=J(n,n.length-10);let o=new i;if(r.length){const t=X(H,r);e.$.update(t);const n=e.Z.update(t);o=Q(H,n)}if(c.valid=!0,e.signed){const t=J(Q(H,e.$.digest()),0,10);for(let e=0;10>e;e++)t[e]!=s[e]&&(c.valid=!1)}t.enqueue(o)}}),c=this}}class F extends h{constructor(n,r){let s;super({start(){e.assign(this,{ready:new l((t=>this.X=t)),password:n,Y:r-1,pending:new i})},async transform(e,n){const r=this;let s=new i;if(r.password){const e=r.password;r.password=null,s=await(async(t,e)=>{const n=x(new i(D[t.Y]));return await q(t,e,n),G(n,t.keys.passwordVerification)})(r,e),r.Z=new L(new K(r.keys.key),t.from(T)),r.$=new N(r.keys.tt),r.X()}else await r.ready;const o=new i(s.length+e.length-e.length%16);o.set(s,0),n.enqueue(O(r,e,o,s.length,0))},async flush(t){const e=this;await e.ready;let n=new i;if(e.pending.length){const t=e.Z.update(X(H,e.pending));e.$.update(t),n=Q(H,t)}s.signature=Q(H,e.$.digest()).slice(0,10),t.enqueue(G(n,s.signature))}}),s=this}}function O(t,e,n,r,s,o){const c=e.length-s;let f;for(t.pending.length&&(e=G(t.pending,e),n=((t,e)=>{if(e&&e>t.length){const n=t;(t=new i(e)).set(n,0)}return t})(n,c-c%16)),f=0;c-16>=f;f+=16){const i=X(H,J(e,f,f+16));o&&t.$.update(i);const s=t.Z.update(i);o||t.$.update(s),n.set(Q(H,s),f+r)}return t.pending=J(e,f),n}async function q(t,n,r){const s=(t=>{if(void 0===a){const e=new i((t=unescape(encodeURIComponent(t))).length);for(let n=0;n<e.length;n++)e[n]=t.charCodeAt(n);return e}return(new a).encode(t)})(n),o=await((t,e,n,r,i)=>U?u.subtle.importKey("raw",e,n,!1,i):_.importKey(e))(0,s,V,0,B),c=await(async(t,e,n)=>W?await u.subtle.deriveBits(t,e,n):_.P(e,t.salt,M.iterations,n))(e.assign({salt:r},M),o,8*(2*E[t.Y]+2)),f=new i(c);t.keys={key:X(H,J(f,0,E[t.Y])),tt:X(H,J(f,E[t.Y],2*E[t.Y])),passwordVerification:J(f,2*E[t.Y])}}function G(t,e){let n=t;return t.length+e.length&&(n=new i(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function J(t,e,n){return t.subarray(e,n)}function Q(t,e){return t.m(e)}function X(t,e){return t.k(e)}class Y extends h{constructor(t,n){let i;super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;if(n.password){const e=$(n,t.subarray(0,12));if(n.password=null,e[11]!=n.passwordVerification)throw new r("Invalid password");t=t.subarray(12)}e.enqueue($(n,t))},flush(){i.valid=!0}}),i=this}}class Z extends h{constructor(t,n){super({start(){e.assign(this,{password:t,passwordVerification:n}),et(this,t)},transform(t,e){const n=this;let r,s;if(n.password){n.password=null;const e=x(new i(12));e[11]=n.passwordVerification,r=new i(t.length+e.length),r.set(tt(n,e),0),s=12}else r=new i(t.length),s=0;r.set(tt(n,t),s),e.enqueue(r)},flush(){}})}}function $(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,n[r]);return n}function tt(t,e){const n=new i(e.length);for(let r=0;r<e.length;r++)n[r]=rt(t)^e[r],nt(t,e[r]);return n}function et(t,e){t.keys=[305419896,591751049,878082192],t.et=new k(t.keys[0]),t.nt=new k(t.keys[2]);for(let n=0;n<e.length;n++)nt(t,e.charCodeAt(n))}function nt(t,e){t.et.append([e]),t.keys[0]=~t.et.get(),t.keys[1]=st(t.keys[1]+it(t.keys[0])),t.keys[1]=st(n.imul(t.keys[1],134775813)+1),t.nt.append([t.keys[1]>>>24]),t.keys[2]=~t.nt.get()}function rt(t){const e=2|t.keys[2];return it(n.imul(e,1^e)>>>8)}function it(t){return 255&t}function st(t){return 4294967295&t}class ot extends h{constructor(t,e){let n;super({start(){n=new t(e)},transform(t,e){t=n.append(t),e.enqueue(t)},flush(t){const e=n.flush();e&&t.enqueue(e)}})}}const ct=void 0===b,ft=void 0===y;let lt=!0,at=!0;class ut extends h{constructor(t,e,{chunkSize:n},...r){super({},...r);const{compressed:i,encrypted:s,useCompressionStream:o,password:c,passwordVerification:l,encryptionStrength:a,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=dt(super.readable);if(s&&!u||!w||([m,p]=m.tee(),p=p.pipeThrough(new g)),i)if(void 0!==o&&!o||ct&&!at)m=ht(t,m,{chunkSize:n,level:h});else try{m=m.pipeThrough(new b("deflate-raw"))}catch(e){at=!1,m=ht(t,m,{chunkSize:n,level:h})}s&&(u?m=m.pipeThrough(new Z(c,l)):(y=new F(c,a),m=m.pipeThrough(y))),pt(d,m,(async()=>{let t;s&&!u&&(t=y.signature),s&&!u||!w||(t=await p.getReader().read(),t=new f(t.value.buffer).getUint32(0)),d.signature=t}))}}class wt extends h{constructor(t,e,{chunkSize:n},...i){super({},...i);const{zipCrypto:s,encrypted:o,password:c,passwordVerification:l,signed:a,encryptionStrength:u,compressed:w,useCompressionStream:h}=e;let d,p,b=dt(super.readable);if(o&&(s?b=b.pipeThrough(new Y(c,l)):(p=new j(c,a,u),b=b.pipeThrough(p))),w)if(void 0!==h&&!h||ft&&!lt)b=ht(t,b,{chunkSize:n});else try{b=b.pipeThrough(new y("deflate-raw"))}catch(e){lt=!1,b=ht(t,b,{chunkSize:n})}o&&!s||!a||([b,d]=b.tee(),d=d.pipeThrough(new g)),pt(this,b,(async()=>{if(o&&!s&&!p.valid)throw new r("Invalid signature");if((!o||s)&&a){const t=await d.getReader().read(),n=new f(t.value.buffer);if(e.signature!=n.getUint32(0,!1))throw new r("Invalid signature")}}))}}function ht(t,e,n){return e.pipeThrough(new ot(t,n))}function dt(t){return t.pipeThrough(new h({transform(t,e){t&&t.length&&e.enqueue(t)}}))}function pt(t,n,r){n=n.pipeThrough(new h({flush:r})),e.defineProperty(t,"readable",{get:()=>n})}class bt{constructor(t,n,r,i,s){const{codecType:o}=i;let c;o.startsWith("deflate")?c=ut:o.startsWith("inflate")&&(c=wt),e.assign(this,{rt:c,it:t,readable:n,writable:r,options:i,config:s})}async st(){const{rt:t,it:e,readable:n,writable:r,options:i,config:s}=this,o=new t(e,i,s);let c=0;await n.pipeThrough(o).pipeThrough(new h({transform(t,e){t&&t.length&&(c+=t.length,e.enqueue(t))}})).pipeTo(r,{preventClose:!0,ot:!0});const{signature:f}=o;return{size:c,signature:f}}}const yt=new Map,mt=new Map;let kt,gt=0;async function vt(t){try{const{options:e,scripts:n,config:r}=t,{codecType:i}=e;let s;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),i.startsWith("deflate")?s=self.Deflate:i.startsWith("inflate")&&(s=self.Inflate);const o={highWaterMark:1,size:()=>r.chunkSize},c=t.readable||new d({async pull(t){let e=new l((t=>yt.set(gt,t)));St({type:"pull",messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await e;t.enqueue(n),r&&t.close()}},o),f=t.writable||new p({async write(t){let e;const n=new l((t=>e=t));mt.set(gt,e),St({type:"data",data:t,messageId:gt}),gt=(gt+1)%Number.MAX_SAFE_INTEGER,await n}},o);kt=new bt(s,c,f,e,r);const a=await kt.st();t.writable&&!e.preventClose&&await t.writable.close(),St({type:"close",result:a})}catch(t){Ct(t)}}function St(t){if(t.data){let{data:e}=t;if(e&&e.length)try{e=new i(e),t.data=e.buffer,w(t,[t.data])}catch(e){w(t)}else w(t)}else w(t)}function Ct(t){const{message:e,stack:n,code:r,name:i}=t;w({error:{message:e,stack:n,code:r,name:i}})}function zt(e){return _t(e.map((([e,n])=>new t(e).fill(n,0,e))))}function _t(e){return e.reduce(((e,n)=>e.concat(t.isArray(n)?_t(n):n)),[])}addEventListener("message",(async t=>{const e=t.data,{type:n,messageId:r,data:s,done:o}=e;try{if("start"==n&&vt(e),"data"==n){const t=yt.get(r);yt.delete(r),t({value:new i(s),done:o})}if("ack"==n){const t=mt.get(r);mt.delete(r),t()}}catch(t){Ct(t)}}));const It=[0,1,2,3].concat(...zt([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function xt(){const t=this;function e(t,e){let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1}t.ct=r=>{const i=t.ft,s=t.ut.lt,o=t.ut.wt;let c,f,l,a=-1;for(r.ht=0,r.dt=573,c=0;o>c;c++)0!==i[2*c]?(r.bt[++r.ht]=a=c,r.yt[c]=0):i[2*c+1]=0;for(;2>r.ht;)l=r.bt[++r.ht]=2>a?++a:0,i[2*l]=1,r.yt[l]=0,r.kt--,s&&(r.gt-=s[2*l+1]);for(t.vt=a,c=n.floor(r.ht/2);c>=1;c--)r.St(i,c);l=o;do{c=r.bt[1],r.bt[1]=r.bt[r.ht--],r.St(i,1),f=r.bt[1],r.bt[--r.dt]=c,r.bt[--r.dt]=f,i[2*l]=i[2*c]+i[2*f],r.yt[l]=n.max(r.yt[c],r.yt[f])+1,i[2*c+1]=i[2*f+1]=l,r.bt[1]=l++,r.St(i,1)}while(r.ht>=2);r.bt[--r.dt]=r.bt[1],(e=>{const n=t.ft,r=t.ut.lt,i=t.ut.Ct,s=t.ut.zt,o=t.ut._t;let c,f,l,a,u,w,h=0;for(a=0;15>=a;a++)e.It[a]=0;for(n[2*e.bt[e.dt]+1]=0,c=e.dt+1;573>c;c++)f=e.bt[c],a=n[2*n[2*f+1]+1]+1,a>o&&(a=o,h++),n[2*f+1]=a,f>t.vt||(e.It[a]++,u=0,s>f||(u=i[f-s]),w=n[2*f],e.kt+=w*(a+u),r&&(e.gt+=w*(r[2*f+1]+u)));if(0!==h){do{for(a=o-1;0===e.It[a];)a--;e.It[a]--,e.It[a+1]+=2,e.It[o]--,h-=2}while(h>0);for(a=o;0!==a;a--)for(f=e.It[a];0!==f;)l=e.bt[--c],l>t.vt||(n[2*l+1]!=a&&(e.kt+=(a-n[2*l+1])*n[2*l],n[2*l+1]=a),f--)}})(r),((t,n,r)=>{const i=[];let s,o,c,f=0;for(s=1;15>=s;s++)i[s]=f=f+r[s-1]<<1;for(o=0;n>=o;o++)c=t[2*o+1],0!==c&&(t[2*o]=e(i[c]++,c))})(i,t.vt,r.It)}}function At(t,e,n,r,i){const s=this;s.lt=t,s.Ct=e,s.zt=n,s.wt=r,s._t=i}xt.xt=[0,1,2,3,4,5,6,7].concat(...zt([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),xt.At=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],xt.Vt=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],xt.Mt=t=>256>t?It[t]:It[256+(t>>>7)],xt.Bt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],xt.Dt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],xt.Et=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xt.Tt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Vt=zt([[144,8],[112,9],[24,7],[8,8]]);At.Pt=_t([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((t,e)=>[t,Vt[e]])));const Mt=zt([[30,5]]);function Bt(t,e,n,r,i){const s=this;s.Rt=t,s.Ut=e,s.Wt=n,s.Ht=r,s.Kt=i}At.Lt=_t([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((t,e)=>[t,Mt[e]]))),At.Nt=new At(At.Pt,xt.Bt,257,286,15),At.jt=new At(At.Lt,xt.Dt,0,30,15),At.Ft=new At(null,xt.Et,0,19,7);const Dt=[new Bt(0,0,0,0,0),new Bt(4,4,8,4,1),new Bt(4,5,16,8,1),new Bt(4,6,32,32,1),new Bt(4,4,16,16,2),new Bt(8,16,32,32,2),new Bt(8,16,128,128,2),new Bt(8,32,128,256,2),new Bt(32,128,258,1024,2),new Bt(32,258,258,4096,2)],Et=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Tt(t,e,n,r){const i=t[2*e],s=t[2*n];return s>i||i==s&&r[e]<=r[n]}function Pt(){const t=this;let e,r,o,c,f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C,z,_,I,x,A,V,M,B,D,E,T,P,R;const U=new xt,W=new xt,H=new xt;let K,L,N,j,F,O;function q(){let e;for(e=0;286>e;e++)T[2*e]=0;for(e=0;30>e;e++)P[2*e]=0;for(e=0;19>e;e++)R[2*e]=0;T[512]=1,t.kt=t.gt=0,L=N=0}function G(t,e){let n,r=-1,i=t[1],s=0,o=7,c=4;0===i&&(o=138,c=3),t[2*(e+1)+1]=65535;for(let f=0;e>=f;f++)n=i,i=t[2*(f+1)+1],++s<o&&n==i||(c>s?R[2*n]+=s:0!==n?(n!=r&&R[2*n]++,R[32]++):s>10?R[36]++:R[34]++,s=0,r=n,0===i?(o=138,c=3):n==i?(o=6,c=3):(o=7,c=4))}function J(e){t.Ot[t.pending++]=e}function Q(t){J(255&t),J(t>>>8&255)}function X(t,e){let n;const r=e;O>16-r?(n=t,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=t<<O&65535,O+=r)}function Y(t,e){const n=2*t;X(65535&e[n],65535&e[n+1])}function Z(t,e){let n,r,i=-1,s=t[1],o=0,c=7,f=4;for(0===s&&(c=138,f=3),n=0;e>=n;n++)if(r=s,s=t[2*(n+1)+1],++o>=c||r!=s){if(f>o)do{Y(r,R)}while(0!=--o);else 0!==r?(r!=i&&(Y(r,R),o--),Y(16,R),X(o-3,2)):o>10?(Y(18,R),X(o-11,7)):(Y(17,R),X(o-3,3));o=0,i=r,0===s?(c=138,f=3):r==s?(c=6,f=3):(c=7,f=4)}}function $(){16==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function tt(e,r){let i,s,o;if(t.qt[L]=e,t.Gt[L]=255&r,L++,0===e?T[2*r]++:(N++,e--,T[2*(xt.xt[r]+256+1)]++,P[2*xt.Mt(e)]++),0==(8191&L)&&M>2){for(i=8*L,s=z-g,o=0;30>o;o++)i+=P[2*o]*(5+xt.Dt[o]);if(i>>>=3,N<n.floor(L/2)&&i<n.floor(s/2))return!0}return L==K-1}function et(e,n){let r,i,s,o,c=0;if(0!==L)do{r=t.qt[c],i=t.Gt[c],c++,0===r?Y(i,e):(s=xt.xt[i],Y(s+256+1,e),o=xt.Bt[s],0!==o&&(i-=xt.At[s],X(i,o)),r--,s=xt.Mt(r),Y(s,n),o=xt.Dt[s],0!==o&&(r-=xt.Vt[s],X(r,o)))}while(L>c);Y(256,e),j=e[513]}function nt(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function rt(e,n,r){X(0+(r?1:0),3),((e,n)=>{nt(),j=8,Q(n),Q(~n),t.Ot.set(u.subarray(e,e+n),t.pending),t.pending+=n})(e,n)}function it(n){((e,n,r)=>{let i,s,o=0;M>0?(U.ct(t),W.ct(t),o=(()=>{let e;for(G(T,U.vt),G(P,W.vt),H.ct(t),e=18;e>=3&&0===R[2*xt.Tt[e]+1];e--);return t.kt+=14+3*(e+1),e})(),i=t.kt+3+7>>>3,s=t.gt+3+7>>>3,s>i||(i=s)):i=s=n+5,n+4>i||-1==e?s==i?(X(2+(r?1:0),3),et(At.Pt,At.Lt)):(X(4+(r?1:0),3),((t,e,n)=>{let r;for(X(t-257,5),X(e-1,5),X(n-4,4),r=0;n>r;r++)X(R[2*xt.Tt[r]+1],3);Z(T,t-1),Z(P,e-1)})(U.vt+1,W.vt+1,o+1),et(T,P)):rt(e,n,r),q(),r&&nt()})(0>g?-1:g,z-g,n),g=z,e.Jt()}function st(){let t,n,r,i;do{if(i=w-I-z,0===i&&0===z&&0===I)i=f;else if(-1==i)i--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=f,g-=f,t=b,r=t;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--t);t=f,r=t;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--t);i+=f}if(0===e.Qt)return;t=e.Xt(u,z+I,i),I+=t,3>I||(p=255&u[z],p=(p<<k^255&u[z+1])&m)}while(262>I&&0!==e.Qt)}function ot(t){let e,n,r=A,i=z,s=x;const o=z>f-262?z-(f-262):0;let c=E;const l=a,w=z+258;let d=u[i+s-1],p=u[i+s];D>x||(r>>=2),c>I&&(c=I);do{if(e=t,u[e+s]==p&&u[e+s-1]==d&&u[e]==u[i]&&u[++e]==u[i+1]){i+=2,e++;do{}while(u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&u[++i]==u[++e]&&w>i);if(n=258-(w-i),i=w-258,n>s){if(_=t,s=n,n>=c)break;d=u[i+s-1],p=u[i+s]}}}while((t=65535&h[t&l])>o&&0!=--r);return s>I?I:s}t.yt=[],t.It=[],t.bt=[],T=[],P=[],R=[],t.St=(e,n)=>{const r=t.bt,i=r[n];let s=n<<1;for(;s<=t.ht&&(s<t.ht&&Tt(e,r[s+1],r[s],t.yt)&&s++,!Tt(e,i,r[s],t.yt));)r[n]=r[s],n=s,s<<=1;r[n]=i},t.Yt=(e,S,_,L,N,G)=>(L||(L=8),N||(N=8),G||(G=0),e.Zt=null,-1==S&&(S=6),1>N||N>9||8!=L||9>_||_>15||0>S||S>9||0>G||G>2?-2:(e.$t=t,l=_,f=1<<l,a=f-1,y=N+7,b=1<<y,m=b-1,k=n.floor((y+3-1)/3),u=new i(2*f),h=[],d=[],K=1<<N+6,t.Ot=new i(4*K),o=4*K,t.qt=new s(K),t.Gt=new i(K),M=S,B=G,(e=>(e.te=e.ee=0,e.Zt=null,t.pending=0,t.ne=0,r=113,c=0,U.ft=T,U.ut=At.Nt,W.ft=P,W.ut=At.jt,H.ft=R,H.ut=At.Ft,F=0,O=0,j=8,q(),(()=>{w=2*f,d[b-1]=0;for(let t=0;b-1>t;t++)d[t]=0;V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht,z=0,g=0,I=0,v=x=2,C=0,p=0})(),0))(e))),t.re=()=>42!=r&&113!=r&&666!=r?-2:(t.Gt=null,t.qt=null,t.Ot=null,d=null,h=null,u=null,t.$t=null,113==r?-3:0),t.ie=(t,e,n)=>{let r=0;return-1==e&&(e=6),0>e||e>9||0>n||n>2?-2:(Dt[M].Kt!=Dt[e].Kt&&0!==t.te&&(r=t.se(1)),M!=e&&(M=e,V=Dt[M].Ut,D=Dt[M].Rt,E=Dt[M].Wt,A=Dt[M].Ht),B=n,r)},t.oe=(t,e,n)=>{let i,s=n,o=0;if(!e||42!=r)return-2;if(3>s)return 0;for(s>f-262&&(s=f-262,o=n-s),u.set(e.subarray(o,o+s),0),z=s,g=s,p=255&u[0],p=(p<<k^255&u[1])&m,i=0;s-3>=i;i++)p=(p<<k^255&u[i+2])&m,h[i&a]=d[p],d[p]=i;return 0},t.se=(n,i)=>{let s,w,y,A,D;if(i>4||0>i)return-2;if(!n.ce||!n.fe&&0!==n.Qt||666==r&&4!=i)return n.Zt=Et[4],-2;if(0===n.le)return n.Zt=Et[7],-5;var E;if(e=n,A=c,c=i,42==r&&(w=8+(l-8<<4)<<8,y=(M-1&255)>>1,y>3&&(y=3),w|=y<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==t.pending){if(e.Jt(),0===e.le)return c=-1,0}else if(0===e.Qt&&A>=i&&4!=i)return e.Zt=Et[7],-5;if(666==r&&0!==e.Qt)return n.Zt=Et[7],-5;if(0!==e.Qt||0!==I||0!=i&&666!=r){switch(D=-1,Dt[M].Kt){case 0:D=(t=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(st(),0===I&&0==t)return 0;if(0===I)break}if(z+=I,I=0,n=g+r,(0===z||z>=n)&&(I=z-n,z=n,it(!1),0===e.le))return 0;if(z-g>=f-262&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 1:D=(t=>{let n,r=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=B&&(v=ot(r)),3>v)n=tt(0,255&u[z]),I--,z++;else if(n=tt(z-_,v-3),I-=v,v>V||3>I)z+=v,v=0,p=255&u[z],p=(p<<k^255&u[z+1])&m;else{v--;do{z++,p=(p<<k^255&u[z+2])&m,r=65535&d[p],h[z&a]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(it(!1),0===e.le))return 0}return it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i);break;case 2:D=(t=>{let n,r,i=0;for(;;){if(262>I){if(st(),262>I&&0==t)return 0;if(0===I)break}if(3>I||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z),x=v,S=_,v=2,0!==i&&V>x&&f-262>=(z-i&65535)&&(2!=B&&(v=ot(i)),5>=v&&(1==B||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=tt(0,255&u[z-1]),n&&it(!1),z++,I--,0===e.le)return 0}else C=1,z++,I--;else{r=z+I-3,n=tt(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<k^255&u[z+2])&m,i=65535&d[p],h[z&a]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(it(!1),0===e.le))return 0}}return 0!==C&&(n=tt(0,255&u[z-1]),C=0),it(4==t),0===e.le?4==t?2:0:4==t?3:1})(i)}if(2!=D&&3!=D||(r=666),0==D||2==D)return 0===e.le&&(c=-1),0;if(1==D){if(1==i)X(2,3),Y(256,At.Pt),$(),9>1+j+10-O&&(X(2,3),Y(256,At.Pt),$()),j=7;else if(rt(0,0,!1),3==i)for(s=0;b>s;s++)d[s]=0;if(e.Jt(),0===e.le)return c=-1,0}}return 4!=i?0:1}}function Rt(){const t=this;t.ae=0,t.ue=0,t.Qt=0,t.te=0,t.le=0,t.ee=0}function Ut(t){const e=new Rt,s=(o=t&&t.chunkSize?t.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new i(s);let f=t?t.level:-1;void 0===f&&(f=-1),e.Yt(f),e.ce=c,this.append=(t,n)=>{let o,f,l=0,a=0,u=0;const w=[];if(t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,o=e.se(0),0!=o)throw new r("deflating: "+e.Zt);e.ue&&(e.ue==s?w.push(new i(c)):w.push(c.slice(0,e.ue))),u+=e.ue,n&&e.ae>0&&e.ae!=l&&(n(e.ae),l=e.ae)}while(e.Qt>0||0===e.le);return w.length>1?(f=new i(u),w.forEach((t=>{f.set(t,a),a+=t.length}))):f=w[0]||new i,f}},this.flush=()=>{let t,n,o=0,f=0;const l=[];do{if(e.ue=0,e.le=s,t=e.se(4),1!=t&&0!=t)throw new r("deflating: "+e.Zt);s-e.le>0&&l.push(c.slice(0,e.ue)),f+=e.ue}while(e.Qt>0||0===e.le);return e.re(),n=new i(f),l.forEach((t=>{n.set(t,o),o+=t.length})),n}}Rt.prototype={Yt(t,e){const n=this;return n.$t=new Pt,e||(e=15),n.$t.Yt(n,t,e)},se(t){const e=this;return e.$t?e.$t.se(e,t):-2},re(){const t=this;if(!t.$t)return-2;const e=t.$t.re();return t.$t=null,e},ie(t,e){const n=this;return n.$t?n.$t.ie(n,t,e):-2},oe(t,e){const n=this;return n.$t?n.$t.oe(n,t,e):-2},Xt(t,e,n){const r=this;let i=r.Qt;return i>n&&(i=n),0===i?0:(r.Qt-=i,t.set(r.fe.subarray(r.ae,r.ae+i),e),r.ae+=i,r.te+=i,i)},Jt(){const t=this;let e=t.$t.pending;e>t.le&&(e=t.le),0!==e&&(t.ce.set(t.$t.Ot.subarray(t.$t.ne,t.$t.ne+e),t.ue),t.ue+=e,t.$t.ne+=e,t.ee+=e,t.le-=e,t.$t.pending-=e,0===t.$t.pending&&(t.$t.ne=0))}};const Wt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ht=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Kt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Lt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Nt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],jt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Ft=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function Ot(){let t,e,n,r,i,s;function o(t,e,o,c,f,l,a,u,w,h,d){let p,b,y,m,k,g,v,S,C,z,_,I,x,A,V;z=0,k=o;do{n[t[e+z]]++,z++,k--}while(0!==k);if(n[0]==o)return a[0]=-1,u[0]=0,0;for(S=u[0],g=1;15>=g&&0===n[g];g++);for(v=g,g>S&&(S=g),k=15;0!==k&&0===n[k];k--);for(y=k,S>k&&(S=k),u[0]=S,A=1<<g;k>g;g++,A<<=1)if(0>(A-=n[g]))return-3;if(0>(A-=n[k]))return-3;for(n[k]+=A,s[1]=g=0,z=1,x=2;0!=--k;)s[x]=g+=n[z],x++,z++;k=0,z=0;do{0!==(g=t[e+z])&&(d[s[g]++]=k),z++}while(++k<o);for(o=s[y],s[0]=k=0,z=0,m=-1,I=-S,i[0]=0,_=0,V=0;y>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(m++,I+=S,V=y-I,V=V>S?S:V,(b=1<<(g=v-I))>p+1&&(b-=p+1,x=v,V>g))for(;++g<V&&(b<<=1)>n[++x];)b-=n[x];if(V=1<<g,h[0]+V>1440)return-3;i[m]=_=h[0],h[0]+=V,0!==m?(s[m]=k,r[0]=g,r[1]=S,g=k>>>I-S,r[2]=_-i[m-1]-g,w.set(r,3*(i[m-1]+g))):a[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=l[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,b=1<<v-I,g=k>>>I;V>g;g+=b)w.set(r,3*(_+g));for(g=1<<v-1;0!=(k&g);g>>>=1)k^=g;for(k^=g,C=(1<<I)-1;(k&C)!=s[m];)m--,I-=S,C=(1<<I)-1}return 0!==A&&1!=y?-5:0}function f(o){let f;for(t||(t=[],e=[],n=new c(16),r=[],i=new c(15),s=new c(16)),e.length<o&&(e=[]),f=0;o>f;f++)e[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;i.set(n.subarray(0,15),0),s.set(n.subarray(0,16),0)}this.we=(n,r,i,s,c)=>{let l;return f(19),t[0]=0,l=o(n,0,19,19,null,null,i,r,s,t,e),-3==l?c.Zt="oversubscribed dynamic bit lengths tree":-5!=l&&0!==r[0]||(c.Zt="incomplete dynamic bit lengths tree",l=-3),l},this.he=(n,r,i,s,c,l,a,u,w)=>{let h;return f(288),t[0]=0,h=o(i,0,n,257,Lt,Nt,l,s,u,t,e),0!=h||0===s[0]?(-3==h?w.Zt="oversubscribed literal/length tree":-4!=h&&(w.Zt="incomplete literal/length tree",h=-3),h):(f(288),h=o(i,n,r,0,jt,Ft,a,c,u,t,e),0!=h||0===c[0]&&n>257?(-3==h?w.Zt="oversubscribed distance tree":-5==h?(w.Zt="incomplete distance tree",h=-3):-4!=h&&(w.Zt="empty distance tree with lengths",h=-3),h):0)}}function qt(){const t=this;let e,n,r,i,s=0,o=0,c=0,f=0,l=0,a=0,u=0,w=0,h=0,d=0;function p(t,e,n,r,i,s,o,c){let f,l,a,u,w,h,d,p,b,y,m,k,g,v,S,C;d=c.ae,p=c.Qt,w=o.de,h=o.pe,b=o.write,y=b<o.read?o.read-b-1:o.end-b,m=Wt[t],k=Wt[e];do{for(;20>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(f=w&m,l=n,a=r,C=3*(a+f),0!==(u=l[C]))for(;;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15,g=l[C+2]+(w&Wt[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.be(d++))<<h,h+=8;for(f=w&k,l=i,a=s,C=3*(a+f),u=l[C];;){if(w>>=l[C+1],h-=l[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.be(d++))<<h,h+=8;if(v=l[C+2]+(w&Wt[u]),w>>=u,h-=u,y-=g,v>b){S=b-v;do{S+=o.end}while(0>S);if(u=o.end-S,g>u){if(g-=u,b-S>0&&u>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--u);else o.ye.set(o.ye.subarray(S,S+u),b),b+=u,S+=u,u=0;S=0}}else S=b-v,b-S>0&&2>b-S?(o.ye[b++]=o.ye[S++],o.ye[b++]=o.ye[S++],g-=2):(o.ye.set(o.ye.subarray(S,S+2),b),b+=2,S+=2,g-=2);if(b-S>0&&g>b-S)do{o.ye[b++]=o.ye[S++]}while(0!=--g);else o.ye.set(o.ye.subarray(S,S+g),b),b+=g,S+=g,g=0;break}if(0!=(64&u))return c.Zt="invalid distance code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3;f+=l[C+2],f+=w&Wt[u],C=3*(a+f),u=l[C]}break}if(0!=(64&u))return 0!=(32&u)?(g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,1):(c.Zt="invalid literal/length code",g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,-3);if(f+=l[C+2],f+=w&Wt[u],C=3*(a+f),0===(u=l[C])){w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--;break}}else w>>=l[C+1],h-=l[C+1],o.ye[b++]=l[C+2],y--}while(y>=258&&p>=10);return g=c.Qt-p,g=g>h>>3?h>>3:g,p+=g,d-=g,h-=g<<3,o.de=w,o.pe=h,c.Qt=p,c.te+=d-c.ae,c.ae=d,o.write=b,0}t.init=(t,s,o,c,f,l)=>{e=0,u=t,w=s,r=o,h=c,i=f,d=l,n=null},t.me=(t,b,y)=>{let m,k,g,v,S,C,z,_=0,I=0,x=0;for(x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S;;)switch(e){case 0:if(C>=258&&v>=10&&(t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,y=p(u,w,r,h,i,d,t,b),x=b.ae,v=b.Qt,_=t.de,I=t.pe,S=t.write,C=S<t.read?t.read-S-1:t.end-S,0!=y)){e=1==y?7:9;break}c=u,n=r,o=h,e=1;case 1:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>>=n[k+1],I-=n[k+1],g=n[k],0===g){f=n[k+2],e=6;break}if(0!=(16&g)){l=15&g,s=n[k+2],e=2;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}if(0!=(32&g)){e=7;break}return e=9,b.Zt="invalid literal/length code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 2:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}s+=_&Wt[m],_>>=m,I-=m,c=w,n=i,o=d,e=3;case 3:for(m=c;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}if(k=3*(o+(_&Wt[m])),_>>=n[k+1],I-=n[k+1],g=n[k],0!=(16&g)){l=15&g,a=n[k+2],e=4;break}if(0==(64&g)){c=g,o=k/3+n[k+2];break}return e=9,b.Zt="invalid distance code",y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 4:for(m=l;m>I;){if(0===v)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,v--,_|=(255&b.be(x++))<<I,I+=8}a+=_&Wt[m],_>>=m,I-=m,e=5;case 5:for(z=S-a;0>z;)z+=t.end;for(;0!==s;){if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);t.ye[S++]=t.ye[z++],C--,z==t.end&&(z=0),s--}e=0;break;case 6:if(0===C&&(S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C&&(t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,S==t.end&&0!==t.read&&(S=0,C=S<t.read?t.read-S-1:t.end-S),0===C)))return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);y=0,t.ye[S++]=f,C--,e=0;break;case 7:if(I>7&&(I-=8,v++,x--),t.write=S,y=t.ke(b,y),S=t.write,C=S<t.read?t.read-S-1:t.end-S,t.read!=t.write)return t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);e=8;case 8:return y=1,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);case 9:return y=-3,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y);default:return y=-2,t.de=_,t.pe=I,b.Qt=v,b.te+=x-b.ae,b.ae=x,t.write=S,t.ke(b,y)}},t.ge=()=>{}}Ot.ve=(t,e,n,r)=>(t[0]=9,e[0]=5,n[0]=Ht,r[0]=Kt,0);const Gt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Jt(t,e){const n=this;let r,s=0,o=0,f=0,l=0;const a=[0],u=[0],w=new qt;let h=0,d=new c(4320);const p=new Ot;n.pe=0,n.de=0,n.ye=new i(e),n.end=e,n.read=0,n.write=0,n.reset=(t,e)=>{e&&(e[0]=0),6==s&&w.ge(t),s=0,n.pe=0,n.de=0,n.read=n.write=0},n.reset(t,null),n.ke=(t,e)=>{let r,i,s;return i=t.ue,s=n.read,r=(s>n.write?n.end:n.write)-s,r>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.subarray(s,s+r),i),i+=r,s+=r,s==n.end&&(s=0,n.write==n.end&&(n.write=0),r=n.write-s,r>t.le&&(r=t.le),0!==r&&-5==e&&(e=0),t.le-=r,t.ee+=r,t.ce.set(n.ye.subarray(s,s+r),i),i+=r,s+=r),t.ue=i,n.read=s,e},n.me=(t,e)=>{let i,c,b,y,m,k,g,v;for(y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k;;){let S,C,z,_,I,x,A,V;switch(s){case 0:for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}switch(i=7&c,h=1&i,i>>>1){case 0:c>>>=3,b-=3,i=7&b,c>>>=i,b-=i,s=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Ot.ve(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,b-=3,s=6;break;case 2:c>>>=3,b-=3,s=3;break;case 3:return c>>>=3,b-=3,s=9,t.Zt="invalid block type",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}break;case 1:for(;32>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if((~c>>>16&65535)!=(65535&c))return s=9,t.Zt="invalid stored block lengths",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);o=65535&c,c=b=0,s=0!==o?2:0!==h?7:0;break;case 2:if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(0===g&&(k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g&&(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,k==n.end&&0!==n.read&&(k=0,g=k<n.read?n.read-k-1:n.end-k),0===g)))return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(e=0,i=o,i>m&&(i=m),i>g&&(i=g),n.ye.set(t.Xt(y,i),k),y+=i,m-=i,k+=i,g-=i,0!=(o-=i))break;s=0!==h?7:0;break;case 3:for(;14>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(f=i=16383&c,(31&i)>29||(i>>5&31)>29)return s=9,t.Zt="too many length or distance symbols",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;c>>>=14,b-=14,l=0,s=4;case 4:for(;4+(f>>>10)>l;){for(;3>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}r[Gt[l++]]=7&c,c>>>=3,b-=3}for(;19>l;)r[Gt[l++]]=0;if(a[0]=7,i=p.we(r,a,u,d,t),0!=i)return-3==(e=i)&&(r=null,s=9),n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);l=0,s=5;case 5:for(;i=f,258+(31&i)+(i>>5&31)>l;){let o,w;for(i=a[0];i>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(i=d[3*(u[0]+(c&Wt[i]))+1],w=d[3*(u[0]+(c&Wt[i]))+2],16>w)c>>>=i,b-=i,r[l++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>b;){if(0===m)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);e=0,m--,c|=(255&t.be(y++))<<b,b+=8}if(c>>>=i,b-=i,o+=c&Wt[v],c>>>=v,b-=v,v=l,i=f,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=9,t.Zt="invalid bit length repeat",e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);l=v}}if(u[0]=-1,I=[],x=[],A=[],V=[],I[0]=9,x[0]=6,i=f,i=p.he(257+(31&i),1+(i>>5&31),r,I,x,A,V,d,t),0!=i)return-3==i&&(r=null,s=9),e=i,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);w.init(I[0],x[0],d,A[0],d,V[0]),s=6;case 6:if(n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,1!=(e=w.me(n,t,e)))return n.ke(t,e);if(e=0,w.ge(t),y=t.ae,m=t.Qt,c=n.de,b=n.pe,k=n.write,g=k<n.read?n.read-k-1:n.end-k,0===h){s=0;break}s=7;case 7:if(n.write=k,e=n.ke(t,e),k=n.write,g=k<n.read?n.read-k-1:n.end-k,n.read!=n.write)return n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);s=8;case 8:return e=1,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);case 9:return e=-3,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e);default:return e=-2,n.de=c,n.pe=b,t.Qt=m,t.te+=y-t.ae,t.ae=y,n.write=k,n.ke(t,e)}}},n.ge=t=>{n.reset(t,null),n.ye=null,d=null},n.Se=(t,e,r)=>{n.ye.set(t.subarray(e,e+r),0),n.read=n.write=r},n.Ce=()=>1==s?1:0}const Qt=[0,0,255,255];function Xt(){const t=this;function e(t){return t&&t.ze?(t.te=t.ee=0,t.Zt=null,t.ze.mode=7,t.ze._e.reset(t,null),0):-2}t.mode=0,t.method=0,t.Ie=[0],t.xe=0,t.marker=0,t.Ae=0,t.Ve=e=>(t._e&&t._e.ge(e),t._e=null,0),t.Me=(n,r)=>(n.Zt=null,t._e=null,8>r||r>15?(t.Ve(n),-2):(t.Ae=r,n.ze._e=new Jt(n,1<<r),e(n),0)),t.Be=(t,e)=>{let n,r;if(!t||!t.ze||!t.fe)return-2;const i=t.ze;for(e=4==e?-5:0,n=-5;;)switch(i.mode){case 0:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,8!=(15&(i.method=t.be(t.ae++)))){i.mode=13,t.Zt="unknown compression method",i.marker=5;break}if(8+(i.method>>4)>i.Ae){i.mode=13,t.Zt="invalid win size",i.marker=5;break}i.mode=1;case 1:if(0===t.Qt)return n;if(n=e,t.Qt--,t.te++,r=255&t.be(t.ae++),((i.method<<8)+r)%31!=0){i.mode=13,t.Zt="incorrect header check",i.marker=5;break}if(0==(32&r)){i.mode=7;break}i.mode=2;case 2:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe=(255&t.be(t.ae++))<<24&4278190080,i.mode=3;case 3:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<16&16711680,i.mode=4;case 4:if(0===t.Qt)return n;n=e,t.Qt--,t.te++,i.xe+=(255&t.be(t.ae++))<<8&65280,i.mode=5;case 5:return 0===t.Qt?n:(n=e,t.Qt--,t.te++,i.xe+=255&t.be(t.ae++),i.mode=6,2);case 6:return i.mode=13,t.Zt="need dictionary",i.marker=0,-2;case 7:if(n=i._e.me(t,n),-3==n){i.mode=13,i.marker=0;break}if(0==n&&(n=e),1!=n)return n;n=e,i._e.reset(t,i.Ie),i.mode=12;case 12:return t.Qt=0,1;case 13:return-3;default:return-2}},t.De=(t,e,n)=>{let r=0,i=n;if(!t||!t.ze||6!=t.ze.mode)return-2;const s=t.ze;return i<1<<s.Ae||(i=(1<<s.Ae)-1,r=n-i),s._e.Se(e,r,i),s.mode=7,0},t.Ee=t=>{let n,r,i,s,o;if(!t||!t.ze)return-2;const c=t.ze;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=t.Qt))return-5;for(r=t.ae,i=c.marker;0!==n&&4>i;)t.be(r)==Qt[i]?i++:i=0!==t.be(r)?0:4-i,r++,n--;return t.te+=r-t.ae,t.ae=r,t.Qt=n,c.marker=i,4!=i?-3:(s=t.te,o=t.ee,e(t),t.te=s,t.ee=o,c.mode=7,0)},t.Te=t=>t&&t.ze&&t.ze._e?t.ze._e.Ce():-2}function Yt(){}function Zt(t){const e=new Yt,s=t&&t.chunkSize?n.floor(2*t.chunkSize):131072,o=new i(s);let c=!1;e.Me(),e.ce=o,this.append=(t,n)=>{const f=[];let l,a,u=0,w=0,h=0;if(0!==t.length){e.ae=0,e.fe=t,e.Qt=t.length;do{if(e.ue=0,e.le=s,0!==e.Qt||c||(e.ae=0,c=!0),l=e.Be(0),c&&-5===l){if(0!==e.Qt)throw new r("inflating: bad input")}else if(0!==l&&1!==l)throw new r("inflating: "+e.Zt);if((c||1===l)&&e.Qt===t.length)throw new r("inflating: bad input");e.ue&&(e.ue===s?f.push(new i(o)):f.push(o.slice(0,e.ue))),h+=e.ue,n&&e.ae>0&&e.ae!=u&&(n(e.ae),u=e.ae)}while(e.Qt>0||0===e.le);return f.length>1?(a=new i(h),f.forEach((t=>{a.set(t,w),w+=t.length}))):a=f[0]||new i,a}},this.flush=()=>{e.Ve()}}Yt.prototype={Me(t){const e=this;return e.ze=new Xt,t||(t=15),e.ze.Me(e,t)},Be(t){const e=this;return e.ze?e.ze.Be(e,t):-2},Ve(){const t=this;if(!t.ze)return-2;const e=t.ze.Ve(t);return t.ze=null,e},Ee(){const t=this;return t.ze?t.ze.Ee(t):-2},De(t,e){const n=this;return n.ze?n.ze.De(n,t,e):-2},be(t){return this.fe[t]},Xt(t,e){return this.fe.subarray(t,t+e)}},self.initCodec=()=>{self.Deflate=Ut,self.Inflate=Zt};\n'],{type:"text/javascript"}));t({workerScripts:{inflate:[e],deflate:[e]}});}
7444
+ function e(e){const t=()=>URL.createObjectURL(new Blob(['const{Array:e,Object:t,Math:n,Error:r,Uint8Array:s,Uint16Array:i,Uint32Array:o,Int32Array:c,Map:f,DataView:a,Promise:l,TextEncoder:u,crypto:w,postMessage:h,TransformStream:d,ReadableStream:p,WritableStream:y,CompressionStream:m,DecompressionStream:b}=globalThis,g=[];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;g[e]=t}class k{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^g[255&(t^e[n])];this.t=t}get(){return~this.t}}class v extends d{constructor(){const e=new k;super({transform(t){e.append(t)},flush(t){const n=new s(4);new a(n.buffer).setUint32(0,e.get()),t.enqueue(n)}})}}const S={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=S.i(n);return 32===r?e.concat(t):S.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+S.i(n)},u(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=S.h(t,e[r-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>n.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=S.i(s);return r.push(S.h(t+i&31,t+i>32?n:r.pop(),1)),r}},C={p:{m(e){const t=S.l(e)/8,n=new s(t);let r;for(let s=0;t>s;s++)0==(3&s)&&(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},g(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3==(3&n)&&(t.push(r),r=0);return 3&n&&t.push(S.h(8*(3&n),r)),t}}},z={k:function(e){e?(this.v=e.v.slice(0),this.S=e.S.slice(0),this.C=e.C):this.reset()}};z.k.prototype={blockSize:512,reset(){const e=this;return e.v=this._.slice(0),e.S=[],e.C=0,e},update(e){const t=this;"string"==typeof e&&(e=C.I.g(e));const n=t.S=S.concat(t.S,e),s=t.C,i=t.C=s+S.l(e);if(i>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const c=new o(n);let f=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);i>=e;e+=t.blockSize)t.A(c.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t},D(){const e=this;let t=e.S;const r=e.v;t=S.concat(t,[S.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e.C/4294967296)),t.push(0|e.C);t.length;)e.A(t.splice(0,16));return e.reset(),r},_:[1732584193,4023233417,2562383102,271733878,3285377520],V:[1518500249,1859775393,2400959708,3395469782],R:(e,t,n,r)=>e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r,B:(e,t)=>t<<e|t>>>32-e,A(t){const r=this,s=r.v,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=r.B(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=r.B(5,o)+r.R(e,c,f,a)+l+i[e]+r.V[n.floor(e/20)]|0;l=a,a=f,f=r.B(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}};const _={getRandomValues(e){const t=new o(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)*(n.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=r(4294967296*(s||n.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},I={importKey:e=>new I.M(C.p.g(e)),K(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const i=1+(s>>5)<<2;let o,c,f,l,u;const w=new ArrayBuffer(i),h=new a(w);let d=0;const p=S;for(t=C.p.g(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),l=0;l<c.length;l++)o[l]^=c[l];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,s/8)},M:class{constructor(e){const t=this,n=t.N=z.k,r=[[],[]],s=n.prototype.blockSize/32;t.P=[new n,new n],e.length>s&&(e=n.hash(e));for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.P[0].update(r[0]),t.P[1].update(r[1]),t.T=new n(t.P[0])}reset(){const e=this;e.T=new e.N(e.P[0]),e.U=!1}update(e){this.U=!0,this.T.update(e)}digest(){const e=this,t=e.T.D(),n=new e.N(e.P[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.U)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},x=void 0!==w&&"function"==typeof w.getRandomValues;function A(e){return x?w.getRandomValues(e):_.getRandomValues(e)}const D={name:"PBKDF2"},V=t.assign({hash:{name:"HMAC"}},D),R=t.assign({iterations:1e3,hash:{name:"SHA-1"}},D),B=["deriveBits"],E=[8,12,16],M=[16,24,32],K=[0,0,0,0],N=void 0!==w,P=N&&w.subtle,T=N&&void 0!==P,U=N&&T&&"function"==typeof P.importKey,W=N&&T&&"function"==typeof P.deriveBits,H=C.p,L=class{constructor(e){const t=this;t.W=[[[],[],[],[],[]],[[],[],[],[],[]]],t.W[0][0][0]||t.H();const n=t.W[0][4],s=t.W[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new r("invalid aes key size");for(t.V=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this.L(e,0)}decrypt(e){return this.L(e,1)}H(){const e=this.W[0],t=this.W[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}L(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this.V[t],s=n.length/4-2,i=[0,0,0,0],o=this.W[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;s>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},j=class{constructor(e,t){this.j=e,this.F=t,this.O=t}reset(){this.O=this.F}update(e){return this.q(this.j,e,this.O)}G(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}else e+=1<<24;return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=S.l(t);for(let s=0;r>s;s+=4){this.J(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return S.u(t,s)}},F=I.M;class O extends d{constructor(e,n,i){super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,signed:n,Y:i-1,pending:new s})},async transform(e,t){const n=this,{password:i,Y:o,X:c,ready:f}=n;i?(await(async(e,t,n,s)=>{const i=await J(e,t,n,X(s,0,E[t])),o=X(s,E[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new r("Invalid password")})(n,o,i,X(e,0,E[o]+2)),e=X(e,E[o]+2),c()):await f;const a=new s(e.length-10-(e.length-10)%16);t.enqueue(G(n,e,a,0,10,!0))},async flush(e){const{signed:t,Z:n,$:i,pending:o,ready:c}=this;await c;const f=X(o,0,o.length-10),a=X(o,o.length-10);let l=new s;if(f.length){const e=Z(H,f);i.update(e);const t=n.update(e);l=Y(H,t)}if(t){const e=X(Y(H,i.digest()),0,10);for(let t=0;10>t;t++)if(e[t]!=a[t])throw new r("Invalid signature")}e.enqueue(l)}})}}class q extends d{constructor(e,n){let r;super({start(){t.assign(this,{ready:new l((e=>this.X=e)),password:e,Y:n-1,pending:new s})},async transform(e,t){const n=this,{password:r,Y:i,X:o,ready:c}=n;let f=new s;r?(f=await(async(e,t,n)=>{const r=A(new s(E[t]));return Q(r,await J(e,t,n,r))})(n,i,r),o()):await c;const a=new s(f.length+e.length-e.length%16);a.set(f,0),t.enqueue(G(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:i,ready:o}=this;await o;let c=new s;if(i.length){const e=t.update(Z(H,i));n.update(e),c=Y(H,e)}r.signature=Y(H,n.digest()).slice(0,10),e.enqueue(Q(c,r.signature))}}),r=this}}function G(e,t,n,r,i,o){const{Z:c,$:f,pending:a}=e,l=t.length-i;let u;for(a.length&&(t=Q(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new s(t)).set(n,0)}return e})(n,l-l%16)),u=0;l-16>=u;u+=16){const e=Z(H,X(t,u,u+16));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(Y(H,s),u+r)}return e.pending=X(t,u),n}async function J(n,r,i,o){n.password=null;const c=(e=>{if(void 0===u){const t=new s((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new u).encode(e)})(i),f=await((e,t,n,r,s)=>U?P.importKey("raw",t,n,!1,s):I.importKey(t))(0,c,V,0,B),a=await(async(e,t,n)=>W?await P.deriveBits(e,t,n):I.K(t,e.salt,R.iterations,n))(t.assign({salt:o},R),f,8*(2*M[r]+2)),l=new s(a),w=Z(H,X(l,0,M[r])),h=Z(H,X(l,M[r],2*M[r])),d=X(l,2*M[r]);return t.assign(n,{keys:{key:w,ee:h,passwordVerification:d},Z:new j(new L(w),e.from(K)),$:new F(h)}),d}function Q(e,t){let n=e;return e.length+t.length&&(n=new s(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function X(e,t,n){return e.subarray(t,n)}function Y(e,t){return e.m(t)}function Z(e,t){return e.g(t)}class $ extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;if(n.password){const t=te(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r("Invalid password");e=e.subarray(12)}t.enqueue(te(n,e))}})}}class ee extends d{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),re(this,e)},transform(e,t){const n=this;let r,i;if(n.password){n.password=null;const t=A(new s(12));t[11]=n.passwordVerification,r=new s(e.length+t.length),r.set(ne(n,t),0),i=12}else r=new s(e.length),i=0;r.set(ne(n,e),i),t.enqueue(r)},flush(){}})}}function te(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,n[r]);return n}function ne(e,t){const n=new s(t.length);for(let r=0;r<t.length;r++)n[r]=ie(e)^t[r],se(e,t[r]);return n}function re(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,te:new k(r[0]),ne:new k(r[2])});for(let t=0;t<n.length;t++)se(e,n.charCodeAt(t))}function se(e,t){let[r,s,i]=e.keys;e.te.append([t]),r=~e.te.get(),s=ce(n.imul(ce(s+oe(r)),134775813)+1),e.ne.append([s>>>24]),i=~e.ne.get(),e.keys=[r,s,i]}function ie(e){const t=2|e.keys[2];return oe(n.imul(t,1^t)>>>8)}function oe(e){return 255&e}function ce(e){return 4294967295&e}class fe extends d{constructor(e,{chunkSize:t,CompressionStream:n,re:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,password:c,passwordVerification:f,encryptionStrength:l,zipCrypto:u,signed:w,level:h}=e,d=this;let p,y,m=le(super.readable);i&&!u||!w||([m,p]=m.tee(),p=he(p,new v)),s&&(m=we(m,o,{level:h,chunkSize:t},r,n)),i&&(u?m=he(m,new ee(c,f)):(y=new q(c,l),m=he(m,y))),ue(d,m,(async()=>{let e;i&&!u&&(e=y.signature),i&&!u||!w||(e=await p.getReader().read(),e=new a(e.value.buffer).getUint32(0)),d.signature=e}))}}class ae extends d{constructor(e,{chunkSize:t,DecompressionStream:n,se:s}){super({});const{zipCrypto:i,encrypted:o,password:c,passwordVerification:f,signed:l,signature:u,encryptionStrength:w,compressed:h,useCompressionStream:d}=e;let p,y,m=le(super.readable);o&&(i?m=he(m,new $(c,f)):(y=new O(c,l,w),m=he(m,y))),h&&(m=we(m,d,{chunkSize:t},s,n)),o&&!i||!l||([m,p]=m.tee(),p=he(p,new v)),ue(this,m,(async()=>{if((!o||i)&&l){const e=await p.getReader().read(),t=new a(e.value.buffer);if(u!=t.getUint32(0,!1))throw new r("Invalid signature")}}))}}function le(e){return he(e,new d({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ue(e,n,r){n=he(n,new d({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function we(e,t,n,r,s){try{e=he(e,new(t&&r?r:s)("deflate-raw",n))}catch(r){if(!t)throw r;e=he(e,new s("deflate-raw",n))}return e}function he(e,t){return e.pipeThrough(t)}class de extends d{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){t.enqueue(n.append(e))},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}class pe{constructor(e,n,r,s){const{codecType:i}=r;let o;i.startsWith("deflate")?o=fe:i.startsWith("inflate")&&(o=ae),t.assign(this,{ie:o,readable:e,writable:n,options:r,config:s})}async oe(){const{ie:e,readable:t,writable:n,options:r,config:s}=this,i=new e(r,s);let o=0;await t.pipeThrough(i).pipeThrough(new d({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))}})).pipeTo(n,{preventClose:!0,ce:!0});const{signature:c}=i;return{size:o,signature:c}}}function ye(e){return class extends de{constructor(t,n){super(e,n)}}}const me=new f,be=new f;let ge,ke=0;async function ve(e){try{const{options:t,scripts:n,config:r}=e;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.re=self.CompressionStream,r.se=self.DecompressionStream,self.Deflate&&(r.CompressionStream=ye(self.Deflate)),self.Inflate&&(r.DecompressionStream=ye(self.Inflate));const s={highWaterMark:1,size:()=>r.chunkSize},i=e.readable||new p({async pull(e){let t=new l((e=>me.set(ke,e)));Se({type:"pull",messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:r}=await t;e.enqueue(n),r&&e.close()}},s),o=e.writable||new y({async write(e){let t;const n=new l((e=>t=e));be.set(ke,t),Se({type:"data",data:e,messageId:ke}),ke=(ke+1)%Number.MAX_SAFE_INTEGER,await n}},s);ge=new pe(i,o,t,r);const c=await ge.oe();e.writable&&!t.preventClose&&await e.writable.close(),Se({type:"close",result:c})}catch(e){Ce(e)}}function Se(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t=new s(t),e.data=t.buffer,h(e,[e.data])}catch(t){h(e)}else h(e)}else h(e)}function Ce(e){const{message:t,stack:n,code:r,name:s}=e;h({error:{message:t,stack:n,code:r,name:s}})}function ze(t){return _e(t.map((([t,n])=>new e(t).fill(n,0,t))))}function _e(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?_e(n):n)),[])}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:r,data:i,done:o}=t;try{if("start"==n&&ve(t),"data"==n){const e=me.get(r);me.delete(r),e({value:new s(i),done:o})}if("ack"==n){const e=be.get(r);be.delete(r),e()}}catch(e){Ce(e)}}));const Ie=[0,1,2,3].concat(...ze([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function xe(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.fe=r=>{const s=e.ae,i=e.ue.le,o=e.ue.we;let c,f,a,l=-1;for(r.he=0,r.de=573,c=0;o>c;c++)0!==s[2*c]?(r.pe[++r.he]=l=c,r.ye[c]=0):s[2*c+1]=0;for(;2>r.he;)a=r.pe[++r.he]=2>l?++l:0,s[2*a]=1,r.ye[a]=0,r.me--,i&&(r.be-=i[2*a+1]);for(e.ge=l,c=n.floor(r.he/2);c>=1;c--)r.ke(s,c);a=o;do{c=r.pe[1],r.pe[1]=r.pe[r.he--],r.ke(s,1),f=r.pe[1],r.pe[--r.de]=c,r.pe[--r.de]=f,s[2*a]=s[2*c]+s[2*f],r.ye[a]=n.max(r.ye[c],r.ye[f])+1,s[2*c+1]=s[2*f+1]=a,r.pe[1]=a++,r.ke(s,1)}while(r.he>=2);r.pe[--r.de]=r.pe[1],(t=>{const n=e.ae,r=e.ue.le,s=e.ue.ve,i=e.ue.Se,o=e.ue.Ce;let c,f,a,l,u,w,h=0;for(l=0;15>=l;l++)t.ze[l]=0;for(n[2*t.pe[t.de]+1]=0,c=t.de+1;573>c;c++)f=t.pe[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.ge||(t.ze[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.me+=w*(l+u),r&&(t.be+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ze[l];)l--;t.ze[l]--,t.ze[l+1]+=2,t.ze[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ze[l];0!==f;)a=t.pe[--c],a>e.ge||(n[2*a+1]!=l&&(t.me+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(r),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;15>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.ge,r.ze)}}function Ae(e,t,n,r,s){const i=this;i.le=e,i.ve=t,i.Se=n,i.we=r,i.Ce=s}xe._e=[0,1,2,3,4,5,6,7].concat(...ze([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),xe.Ie=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],xe.xe=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],xe.Ae=e=>256>e?Ie[e]:Ie[256+(e>>>7)],xe.De=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],xe.Ve=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],xe.Re=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],xe.Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const De=ze([[144,8],[112,9],[24,7],[8,8]]);Ae.Ee=_e([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,De[t]])));const Ve=ze([[30,5]]);function Re(e,t,n,r,s){const i=this;i.Me=e,i.Ke=t,i.Ne=n,i.Pe=r,i.Te=s}Ae.Ue=_e([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Ve[t]]))),Ae.We=new Ae(Ae.Ee,xe.De,257,286,15),Ae.He=new Ae(Ae.Ue,xe.Ve,0,30,15),Ae.Le=new Ae(null,xe.Re,0,19,7);const Be=[new Re(0,0,0,0,0),new Re(4,4,8,4,1),new Re(4,5,16,8,1),new Re(4,6,32,32,1),new Re(4,4,16,16,2),new Re(8,16,32,32,2),new Re(8,16,128,128,2),new Re(8,32,128,256,2),new Re(32,128,258,1024,2),new Re(32,258,258,4096,2)],Ee=["need dictionary","stream end","","","stream error","data error","","buffer error","",""];function Me(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function Ke(){const e=this;let t,r,o,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,C,z,_,I,x,A,D,V,R,B,E,M,K,N;const P=new xe,T=new xe,U=new xe;let W,H,L,j,F,O;function q(){let t;for(t=0;286>t;t++)M[2*t]=0;for(t=0;30>t;t++)K[2*t]=0;for(t=0;19>t;t++)N[2*t]=0;M[512]=1,e.me=e.be=0,H=L=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?N[2*n]+=i:0!==n?(n!=r&&N[2*n]++,N[32]++):i>10?N[36]++:N[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.je[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;O>16-r?(n=e,F|=n<<O&65535,Q(F),F=n>>>16-O,O+=r-16):(F|=e<<O&65535,O+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,N)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,N),o--),Y(16,N),X(o-3,2)):o>10?(Y(18,N),X(o-11,7)):(Y(17,N),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==O?(Q(F),F=0,O=0):8>O||(J(255&F),F>>>=8,O-=8)}function ee(t,r){let s,i,o;if(e.Fe[H]=t,e.Oe[H]=255&r,H++,0===t?M[2*r]++:(L++,t--,M[2*(xe._e[r]+256+1)]++,K[2*xe.Ae(t)]++),0==(8191&H)&&V>2){for(s=8*H,i=z-k,o=0;30>o;o++)s+=K[2*o]*(5+xe.Ve[o]);if(s>>>=3,L<n.floor(H/2)&&s<n.floor(i/2))return!0}return H==W-1}function te(t,n){let r,s,i,o,c=0;if(0!==H)do{r=e.Fe[c],s=e.Oe[c],c++,0===r?Y(s,t):(i=xe._e[s],Y(i+256+1,t),o=xe.De[i],0!==o&&(s-=xe.Ie[i],X(s,o)),r--,i=xe.Ae(r),Y(i,n),o=xe.Ve[i],0!==o&&(r-=xe.xe[i],X(r,o)))}while(H>c);Y(256,t),j=t[513]}function ne(){O>8?Q(F):O>0&&J(255&F),F=0,O=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),j=8,Q(n),Q(~n),e.je.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;V>0?(P.fe(e),T.fe(e),o=(()=>{let t;for(G(M,P.ge),G(K,T.ge),U.fe(e),t=18;t>=3&&0===N[2*xe.Be[t]+1];t--);return e.me+=14+3*(t+1),t})(),s=e.me+3+7>>>3,i=e.be+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(Ae.Ee,Ae.Ue)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(N[2*xe.Be[r]+1],3);Z(M,e-1),Z(K,t-1)})(P.ge+1,T.ge+1,o+1),te(M,K)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,z-k,n),k=z,t.qe()}function ie(){let e,n,r,s;do{if(s=w-I-z,0===s&&0===z&&0===I)s=f;else if(-1==s)s--;else if(z>=f+f-262){u.set(u.subarray(f,f+f),0),_-=f,z-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.Ge)return;e=t.Je(u,z+I,s),I+=e,3>I||(p=255&u[z],p=(p<<g^255&u[z+1])&b)}while(262>I&&0!==t.Ge)}function oe(e){let t,n,r=A,s=z,i=x;const o=z>f-262?z-(f-262):0;let c=E;const a=l,w=z+258;let d=u[s+i-1],p=u[s+i];B>x||(r>>=2),c>I&&(c=I);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(_=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>I?I:i}e.ye=[],e.ze=[],e.pe=[],M=[],K=[],N=[],e.ke=(t,n)=>{const r=e.pe,s=r[n];let i=n<<1;for(;i<=e.he&&(i<e.he&&Me(t,r[i+1],r[i],e.ye)&&i++,!Me(t,s,r[i],e.ye));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Qe=(t,S,_,H,L,G)=>(H||(H=8),L||(L=8),G||(G=0),t.Xe=null,-1==S&&(S=6),1>L||L>9||8!=H||9>_||_>15||0>S||S>9||0>G||G>2?-2:(t.Ye=e,a=_,f=1<<a,l=f-1,m=L+7,y=1<<m,b=y-1,g=n.floor((m+3-1)/3),u=new s(2*f),h=[],d=[],W=1<<L+6,e.je=new s(4*W),o=4*W,e.Fe=new i(W),e.Oe=new s(W),V=S,R=G,(t=>(t.Ze=t.$e=0,t.Xe=null,e.pending=0,e.et=0,r=113,c=0,P.ae=M,P.ue=Ae.We,T.ae=K,T.ue=Ae.He,U.ae=N,U.ue=Ae.Le,F=0,O=0,j=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe,z=0,k=0,I=0,v=x=2,C=0,p=0})(),0))(t))),e.tt=()=>42!=r&&113!=r&&666!=r?-2:(e.Oe=null,e.Fe=null,e.je=null,d=null,h=null,u=null,e.Ye=null,113==r?-3:0),e.nt=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?-2:(Be[V].Te!=Be[t].Te&&0!==e.Ze&&(r=e.rt(1)),V!=t&&(V=t,D=Be[V].Ke,B=Be[V].Me,E=Be[V].Ne,A=Be[V].Pe),R=n,r)},e.st=(e,t,n)=>{let s,i=n,o=0;if(!t||42!=r)return-2;if(3>i)return 0;for(i>f-262&&(i=f-262,o=n-i),u.set(t.subarray(o,o+i),0),z=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.rt=(n,s)=>{let i,w,m,A,B;if(s>4||0>s)return-2;if(!n.it||!n.ot&&0!==n.Ge||666==r&&4!=s)return n.Xe=Ee[4],-2;if(0===n.ct)return n.Xe=Ee[7],-5;var E;if(t=n,A=c,c=s,42==r&&(w=8+(a-8<<4)<<8,m=(V-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==z&&(w|=32),w+=31-w%31,r=113,J((E=w)>>8&255),J(255&E)),0!==e.pending){if(t.qe(),0===t.ct)return c=-1,0}else if(0===t.Ge&&A>=s&&4!=s)return t.Xe=Ee[7],-5;if(666==r&&0!==t.Ge)return n.Xe=Ee[7],-5;if(0!==t.Ge||0!==I||0!=s&&666!=r){switch(B=-1,Be[V].Te){case 0:B=(e=>{let n,r=65535;for(r>o-5&&(r=o-5);;){if(1>=I){if(ie(),0===I&&0==e)return 0;if(0===I)break}if(z+=I,I=0,n=k+r,(0===z||z>=n)&&(I=z-n,z=n,se(!1),0===t.ct))return 0;if(z-k>=f-262&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 1:B=(e=>{let n,r=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z),0===r||(z-r&65535)>f-262||2!=R&&(v=oe(r)),3>v)n=ee(0,255&u[z]),I--,z++;else if(n=ee(z-_,v-3),I-=v,v>D||3>I)z+=v,v=0,p=255&u[z],p=(p<<g^255&u[z+1])&b;else{v--;do{z++,p=(p<<g^255&u[z+2])&b,r=65535&d[p],h[z&l]=d[p],d[p]=z}while(0!=--v);z++}if(n&&(se(!1),0===t.ct))return 0}return se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s);break;case 2:B=(e=>{let n,r,s=0;for(;;){if(262>I){if(ie(),262>I&&0==e)return 0;if(0===I)break}if(3>I||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z),x=v,S=_,v=2,0!==s&&D>x&&f-262>=(z-s&65535)&&(2!=R&&(v=oe(s)),5>=v&&(1==R||3==v&&z-_>4096)&&(v=2)),3>x||v>x)if(0!==C){if(n=ee(0,255&u[z-1]),n&&se(!1),z++,I--,0===t.ct)return 0}else C=1,z++,I--;else{r=z+I-3,n=ee(z-1-S,x-3),I-=x-1,x-=2;do{++z>r||(p=(p<<g^255&u[z+2])&b,s=65535&d[p],h[z&l]=d[p],d[p]=z)}while(0!=--x);if(C=0,v=2,z++,n&&(se(!1),0===t.ct))return 0}}return 0!==C&&(n=ee(0,255&u[z-1]),C=0),se(4==e),0===t.ct?4==e?2:0:4==e?3:1})(s)}if(2!=B&&3!=B||(r=666),0==B||2==B)return 0===t.ct&&(c=-1),0;if(1==B){if(1==s)X(2,3),Y(256,Ae.Ee),$(),9>1+j+10-O&&(X(2,3),Y(256,Ae.Ee),$()),j=7;else if(re(0,0,!1),3==s)for(i=0;y>i;i++)d[i]=0;if(t.qe(),0===t.ct)return c=-1,0}}return 4!=s?0:1}}function Ne(){const e=this;e.ft=0,e.lt=0,e.Ge=0,e.Ze=0,e.ct=0,e.$e=0}function Pe(e){const t=new Ne,i=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(n.floor(o/16383)+1);var o;const c=new s(i);let f=e?e.level:-1;void 0===f&&(f=-1),t.Qe(f),t.it=c,this.append=(e,n)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,o=t.rt(0),0!=o)throw new r("deflating: "+t.Xe);t.lt&&(t.lt==i?w.push(new s(c)):w.push(c.slice(0,t.lt))),u+=t.lt,n&&t.ft>0&&t.ft!=a&&(n(t.ft),a=t.ft)}while(t.Ge>0||0===t.ct);return w.length>1?(f=new s(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]||new s,f}},this.flush=()=>{let e,n,o=0,f=0;const a=[];do{if(t.lt=0,t.ct=i,e=t.rt(4),1!=e&&0!=e)throw new r("deflating: "+t.Xe);i-t.ct>0&&a.push(c.slice(0,t.lt)),f+=t.lt}while(t.Ge>0||0===t.ct);return t.tt(),n=new s(f),a.forEach((e=>{n.set(e,o),o+=e.length})),n}}Ne.prototype={Qe(e,t){const n=this;return n.Ye=new Ke,t||(t=15),n.Ye.Qe(n,e,t)},rt(e){const t=this;return t.Ye?t.Ye.rt(t,e):-2},tt(){const e=this;if(!e.Ye)return-2;const t=e.Ye.tt();return e.Ye=null,t},nt(e,t){const n=this;return n.Ye?n.Ye.nt(n,e,t):-2},st(e,t){const n=this;return n.Ye?n.Ye.st(n,e,t):-2},Je(e,t,n){const r=this;let s=r.Ge;return s>n&&(s=n),0===s?0:(r.Ge-=s,e.set(r.ot.subarray(r.ft,r.ft+s),t),r.ft+=s,r.Ze+=s,s)},qe(){const e=this;let t=e.Ye.pending;t>e.ct&&(t=e.ct),0!==t&&(e.it.set(e.Ye.je.subarray(e.Ye.et,e.Ye.et+t),e.lt),e.lt+=t,e.Ye.et+=t,e.$e+=t,e.ct-=t,e.Ye.pending-=t,0===e.Ye.pending&&(e.Ye.et=0))}};const Te=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Ue=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],We=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],He=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Le=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],je=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Fe=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function Oe(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,C,z,_,I,x,A,D;z=0,g=o;do{n[e[t+z]]++,z++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,0;for(S=u[0],k=1;15>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=15;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,A=1<<k;g>k;k++,A<<=1)if(0>(A-=n[k]))return-3;if(0>(A-=n[g]))return-3;for(n[g]+=A,i[1]=k=0,z=1,x=2;0!=--g;)i[x]=k+=n[z],x++,z++;g=0,z=0;do{0!==(k=e[t+z])&&(d[i[k]++]=g),z++}while(++g<o);for(o=i[m],i[0]=g=0,z=0,b=-1,I=-S,s[0]=0,_=0,D=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>I+S;){if(b++,I+=S,D=m-I,D=D>S?S:D,(y=1<<(k=v-I))>p+1&&(y-=p+1,x=v,D>k))for(;++k<D&&(y<<=1)>n[++x];)y-=n[x];if(D=1<<k,h[0]+D>1440)return-3;s[b]=_=h[0],h[0]+=D,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>I-S,r[2]=_-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=_}for(r[1]=v-I,o>z?d[z]<c?(r[0]=256>d[z]?0:96,r[2]=d[z++]):(r[0]=a[d[z]-c]+16+64,r[2]=f[d[z++]-c]):r[0]=192,y=1<<v-I,k=g>>>I;D>k;k+=y)w.set(r,3*(_+k));for(k=1<<v-1;0!=(g&k);k>>>=1)g^=k;for(g^=k,C=(1<<I)-1;(g&C)!=i[b];)b--,I-=S,C=(1<<I)-1}return 0!==A&&1!=m?-5:0}function f(o){let f;for(e||(e=[],t=[],n=new c(16),r=[],s=new c(15),i=new c(16)),t.length<o&&(t=[]),f=0;o>f;f++)t[f]=0;for(f=0;16>f;f++)n[f]=0;for(f=0;3>f;f++)r[f]=0;s.set(n.subarray(0,15),0),i.set(n.subarray(0,16),0)}this.ut=(n,r,s,i,c)=>{let a;return f(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),-3==a?c.Xe="oversubscribed dynamic bit lengths tree":-5!=a&&0!==r[0]||(c.Xe="incomplete dynamic bit lengths tree",a=-3),a},this.wt=(n,r,s,i,c,a,l,u,w)=>{let h;return f(288),e[0]=0,h=o(s,0,n,257,He,Le,a,i,u,e,t),0!=h||0===i[0]?(-3==h?w.Xe="oversubscribed literal/length tree":-4!=h&&(w.Xe="incomplete literal/length tree",h=-3),h):(f(288),h=o(s,n,r,0,je,Fe,l,c,u,e,t),0!=h||0===c[0]&&n>257?(-3==h?w.Xe="oversubscribed distance tree":-5==h?(w.Xe="incomplete distance tree",h=-3):-4!=h&&(w.Xe="empty distance tree with lengths",h=-3),h):0)}}function qe(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,C;d=c.ft,p=c.Ge,w=o.ht,h=o.dt,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=Te[e],g=Te[t];do{for(;20>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(f=w&b,a=n,l=r,C=3*(l+f),0!==(u=a[C]))for(;;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15,k=a[C+2]+(w&Te[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;for(f=w&g,a=s,l=i,C=3*(l+f),u=a[C];;){if(w>>=a[C+1],h-=a[C+1],0!=(16&u)){for(u&=15;u>h;)p--,w|=(255&c.yt(d++))<<h,h+=8;if(v=a[C+2]+(w&Te[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.bt[y++]=o.bt[S++]}while(0!=--u);else o.bt.set(o.bt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.bt[y++]=o.bt[S++],o.bt[y++]=o.bt[S++],k-=2):(o.bt.set(o.bt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.bt[y++]=o.bt[S++]}while(0!=--k);else o.bt.set(o.bt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(0!=(64&u))return c.Xe="invalid distance code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3;f+=a[C+2],f+=w&Te[u],C=3*(l+f),u=a[C]}break}if(0!=(64&u))return 0!=(32&u)?(k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,1):(c.Xe="invalid literal/length code",k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,-3);if(f+=a[C+2],f+=w&Te[u],C=3*(l+f),0===(u=a[C])){w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--;break}}else w>>=a[C+1],h-=a[C+1],o.bt[y++]=a[C+2],m--}while(m>=258&&p>=10);return k=c.Ge-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ht=w,o.dt=h,c.Ge=p,c.Ze+=d-c.ft,c.ft=d,o.write=y,0}e.init=(e,i,o,c,f,a)=>{t=0,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.gt=(e,y,m)=>{let b,g,k,v,S,C,z,_=0,I=0,x=0;for(x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S;;)switch(t){case 0:if(C>=258&&v>=10&&(e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,m=p(u,w,r,h,s,d,e,y),x=y.ft,v=y.Ge,_=e.ht,I=e.dt,S=e.write,C=S<e.read?e.read-S-1:e.end-S,0!=m)){t=1==m?7:9;break}c=u,n=r,o=h,t=1;case 1:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>>=n[g+1],I-=n[g+1],k=n[g],0===k){f=n[g+2],t=6;break}if(0!=(16&k)){a=15&k,i=n[g+2],t=2;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}if(0!=(32&k)){t=7;break}return t=9,y.Xe="invalid literal/length code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 2:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}i+=_&Te[b],_>>=b,I-=b,c=w,n=s,o=d,t=3;case 3:for(b=c;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}if(g=3*(o+(_&Te[b])),_>>=n[g+1],I-=n[g+1],k=n[g],0!=(16&k)){a=15&k,l=n[g+2],t=4;break}if(0==(64&k)){c=k,o=g/3+n[g+2];break}return t=9,y.Xe="invalid distance code",m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 4:for(b=a;b>I;){if(0===v)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,v--,_|=(255&y.yt(x++))<<I,I+=8}l+=_&Te[b],_>>=b,I-=b,t=5;case 5:for(z=S-l;0>z;)z+=e.end;for(;0!==i;){if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);e.bt[S++]=e.bt[z++],C--,z==e.end&&(z=0),i--}t=0;break;case 6:if(0===C&&(S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C&&(e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,C=S<e.read?e.read-S-1:e.end-S),0===C)))return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);m=0,e.bt[S++]=f,C--,t=0;break;case 7:if(I>7&&(I-=8,v++,x--),e.write=S,m=e.kt(y,m),S=e.write,C=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);t=8;case 8:return m=1,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);case 9:return m=-3,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m);default:return m=-2,e.ht=_,e.dt=I,y.Ge=v,y.Ze+=x-y.ft,y.ft=x,e.write=S,e.kt(y,m)}},e.vt=()=>{}}Oe.St=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=Ue,r[0]=We,0);const Ge=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Je(e,t){const n=this;let r,i=0,o=0,f=0,a=0;const l=[0],u=[0],w=new qe;let h=0,d=new c(4320);const p=new Oe;n.dt=0,n.ht=0,n.bt=new s(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),6==i&&w.vt(e),i=0,n.dt=0,n.ht=0,n.read=n.write=0},n.reset(e,null),n.kt=(e,t)=>{let r,s,i;return s=e.lt,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.ct&&(r=e.ct),0!==r&&-5==t&&(t=0),e.ct-=r,e.$e+=r,e.it.set(n.bt.subarray(i,i+r),s),s+=r,i+=r),e.lt=s,n.read=i,t},n.gt=(e,t)=>{let s,c,y,m,b,g,k,v;for(m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,C,z,_,I,x,A,D;switch(i){case 0:for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}switch(s=7&c,h=1&s,s>>>1){case 0:c>>>=3,y-=3,s=7&y,c>>>=s,y-=s,i=1;break;case 1:S=[],C=[],z=[[]],_=[[]],Oe.St(S,C,z,_),w.init(S[0],C[0],z[0],0,_[0],0),c>>>=3,y-=3,i=6;break;case 2:c>>>=3,y-=3,i=3;break;case 3:return c>>>=3,y-=3,i=9,e.Xe="invalid block type",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}break;case 1:for(;32>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if((~c>>>16&65535)!=(65535&c))return i=9,e.Xe="invalid stored block lengths",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);o=65535&c,c=y=0,i=0!==o?2:0!==h?7:0;break;case 2:if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(t=0,s=o,s>b&&(s=b),s>k&&(s=k),n.bt.set(e.Je(m,s),g),m+=s,b-=s,g+=s,k-=s,0!=(o-=s))break;i=0!==h?7:0;break;case 3:for(;14>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(f=s=16383&c,(31&s)>29||(s>>5&31)>29)return i=9,e.Xe="too many length or distance symbols",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);if(s=258+(31&s)+(s>>5&31),!r||r.length<s)r=[];else for(v=0;s>v;v++)r[v]=0;c>>>=14,y-=14,a=0,i=4;case 4:for(;4+(f>>>10)>a;){for(;3>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}r[Ge[a++]]=7&c,c>>>=3,y-=3}for(;19>a;)r[Ge[a++]]=0;if(l[0]=7,s=p.ut(r,l,u,d,e),0!=s)return-3==(t=s)&&(r=null,i=9),n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);a=0,i=5;case 5:for(;s=f,258+(31&s)+(s>>5&31)>a;){let o,w;for(s=l[0];s>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(s=d[3*(u[0]+(c&Te[s]))+1],w=d[3*(u[0]+(c&Te[s]))+2],16>w)c>>>=s,y-=s,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;s+v>y;){if(0===b)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);t=0,b--,c|=(255&e.yt(m++))<<y,y+=8}if(c>>>=s,y-=s,o+=c&Te[v],c>>>=v,y-=v,v=a,s=f,v+o>258+(31&s)+(s>>5&31)||16==w&&1>v)return r=null,i=9,e.Xe="invalid bit length repeat",t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,I=[],x=[],A=[],D=[],I[0]=9,x[0]=6,s=f,s=p.wt(257+(31&s),1+(s>>5&31),r,I,x,A,D,d,e),0!=s)return-3==s&&(r=null,i=9),t=s,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);w.init(I[0],x[0],d,A[0],d,D[0]),i=6;case 6:if(n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,1!=(t=w.gt(n,e,t)))return n.kt(e,t);if(t=0,w.vt(e),m=e.ft,b=e.Ge,c=n.ht,y=n.dt,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){i=0;break}i=7;case 7:if(n.write=g,t=n.kt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);i=8;case 8:return t=1,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);case 9:return t=-3,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t);default:return t=-2,n.ht=c,n.dt=y,e.Ge=b,e.Ze+=m-e.ft,e.ft=m,n.write=g,n.kt(e,t)}}},n.vt=e=>{n.reset(e,null),n.bt=null,d=null},n.Ct=(e,t,r)=>{n.bt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.zt=()=>1==i?1:0}const Qe=[0,0,255,255];function Xe(){const e=this;function t(e){return e&&e._t?(e.Ze=e.$e=0,e.Xe=null,e._t.mode=7,e._t.It.reset(e,null),0):-2}e.mode=0,e.method=0,e.xt=[0],e.At=0,e.marker=0,e.Dt=0,e.Vt=t=>(e.It&&e.It.vt(t),e.It=null,0),e.Rt=(n,r)=>(n.Xe=null,e.It=null,8>r||r>15?(e.Vt(n),-2):(e.Dt=r,n._t.It=new Je(n,1<<r),t(n),0)),e.Bt=(e,t)=>{let n,r;if(!e||!e._t||!e.ot)return-2;const s=e._t;for(t=4==t?-5:0,n=-5;;)switch(s.mode){case 0:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,8!=(15&(s.method=e.yt(e.ft++)))){s.mode=13,e.Xe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Dt){s.mode=13,e.Xe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.Ge)return n;if(n=t,e.Ge--,e.Ze++,r=255&e.yt(e.ft++),((s.method<<8)+r)%31!=0){s.mode=13,e.Xe="incorrect header check",s.marker=5;break}if(0==(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At=(255&e.yt(e.ft++))<<24&4278190080,s.mode=3;case 3:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<16&16711680,s.mode=4;case 4:if(0===e.Ge)return n;n=t,e.Ge--,e.Ze++,s.At+=(255&e.yt(e.ft++))<<8&65280,s.mode=5;case 5:return 0===e.Ge?n:(n=t,e.Ge--,e.Ze++,s.At+=255&e.yt(e.ft++),s.mode=6,2);case 6:return s.mode=13,e.Xe="need dictionary",s.marker=0,-2;case 7:if(n=s.It.gt(e,n),-3==n){s.mode=13,s.marker=0;break}if(0==n&&(n=t),1!=n)return n;n=t,s.It.reset(e,s.xt),s.mode=12;case 12:return e.Ge=0,1;case 13:return-3;default:return-2}},e.Et=(e,t,n)=>{let r=0,s=n;if(!e||!e._t||6!=e._t.mode)return-2;const i=e._t;return s<1<<i.Dt||(s=(1<<i.Dt)-1,r=n-s),i.It.Ct(t,r,s),i.mode=7,0},e.Mt=e=>{let n,r,s,i,o;if(!e||!e._t)return-2;const c=e._t;if(13!=c.mode&&(c.mode=13,c.marker=0),0===(n=e.Ge))return-5;for(r=e.ft,s=c.marker;0!==n&&4>s;)e.yt(r)==Qe[s]?s++:s=0!==e.yt(r)?0:4-s,r++,n--;return e.Ze+=r-e.ft,e.ft=r,e.Ge=n,c.marker=s,4!=s?-3:(i=e.Ze,o=e.$e,t(e),e.Ze=i,e.$e=o,c.mode=7,0)},e.Kt=e=>e&&e._t&&e._t.It?e._t.It.zt():-2}function Ye(){}function Ze(e){const t=new Ye,i=e&&e.chunkSize?n.floor(2*e.chunkSize):131072,o=new s(i);let c=!1;t.Rt(),t.it=o,this.append=(e,n)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.ft=0,t.ot=e,t.Ge=e.length;do{if(t.lt=0,t.ct=i,0!==t.Ge||c||(t.ft=0,c=!0),a=t.Bt(0),c&&-5===a){if(0!==t.Ge)throw new r("inflating: bad input")}else if(0!==a&&1!==a)throw new r("inflating: "+t.Xe);if((c||1===a)&&t.Ge===e.length)throw new r("inflating: bad input");t.lt&&(t.lt===i?f.push(new s(o)):f.push(o.slice(0,t.lt))),h+=t.lt,n&&t.ft>0&&t.ft!=u&&(n(t.ft),u=t.ft)}while(t.Ge>0||0===t.ct);return f.length>1?(l=new s(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]||new s,l}},this.flush=()=>{t.Vt()}}Ye.prototype={Rt(e){const t=this;return t._t=new Xe,e||(e=15),t._t.Rt(t,e)},Bt(e){const t=this;return t._t?t._t.Bt(t,e):-2},Vt(){const e=this;if(!e._t)return-2;const t=e._t.Vt(e);return e._t=null,t},Mt(){const e=this;return e._t?e._t.Mt(e):-2},Et(e,t){const n=this;return n._t?n._t.Et(n,e,t):-2},yt(e){return this.ot[e]},Je(e,t){return this.ot.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=Pe,self.Inflate=Ze};\n'],{type:"text/javascript"}));e({workerScripts:{inflate:[t],deflate:[t]}});}
7416
7445
 
7417
7446
  function initShimAsyncCodec(library, options = {}, registerDataHandler) {
7418
7447
  return {
@@ -7563,52 +7592,6 @@
7563
7592
  }
7564
7593
  }
7565
7594
 
7566
- class TextReader extends Reader {
7567
-
7568
- constructor(text) {
7569
- super();
7570
- this.blobReader = new BlobReader(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
7571
- }
7572
-
7573
- init() {
7574
- const reader = this;
7575
- super.init();
7576
- reader.blobReader.init();
7577
- reader.size = reader.blobReader.size;
7578
- }
7579
-
7580
- readUint8Array(offset, length) {
7581
- return this.blobReader.readUint8Array(offset, length);
7582
- }
7583
- }
7584
-
7585
- class TextWriter extends Writer {
7586
-
7587
- constructor(encoding) {
7588
- super();
7589
- this.encoding = encoding;
7590
- this.blob = new Blob([], { type: CONTENT_TYPE_TEXT_PLAIN });
7591
- }
7592
-
7593
- writeUint8Array(array) {
7594
- this.blob = new Blob([this.blob, array.buffer], { type: CONTENT_TYPE_TEXT_PLAIN });
7595
- }
7596
-
7597
- getData() {
7598
- const writer = this;
7599
- if (writer.blob.text && (writer.encoding === undefined || (writer.encoding && writer.encoding.toLowerCase() == "utf-8"))) {
7600
- return writer.blob.text();
7601
- } else {
7602
- const reader = new FileReader();
7603
- return new Promise((resolve, reject) => {
7604
- reader.onload = event => resolve(event.target.result);
7605
- reader.onerror = () => reject(reader.error);
7606
- reader.readAsText(writer.blob, writer.encoding);
7607
- });
7608
- }
7609
- }
7610
- }
7611
-
7612
7595
  class Data64URIReader extends Reader {
7613
7596
 
7614
7597
  constructor(dataURI) {
@@ -7705,6 +7688,42 @@
7705
7688
  }
7706
7689
  }
7707
7690
 
7691
+ class TextReader extends BlobReader {
7692
+
7693
+ constructor(text) {
7694
+ super(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));
7695
+ }
7696
+ }
7697
+
7698
+ class TextWriter extends BlobWriter {
7699
+
7700
+ constructor(encoding) {
7701
+ super(encoding);
7702
+ Object.assign(this, {
7703
+ encoding,
7704
+ utf8: !encoding || encoding.toLowerCase() == "utf-8"
7705
+ });
7706
+ }
7707
+
7708
+ async getData() {
7709
+ const {
7710
+ encoding,
7711
+ utf8
7712
+ } = this;
7713
+ const blob = await super.getData();
7714
+ if (blob.text && utf8) {
7715
+ return blob.text();
7716
+ } else {
7717
+ const reader = new FileReader();
7718
+ return new Promise((resolve, reject) => {
7719
+ reader.onload = ({ target }) => resolve(target.result);
7720
+ reader.onerror = () => reject(reader.error);
7721
+ reader.readAsText(blob, encoding);
7722
+ });
7723
+ }
7724
+ }
7725
+ }
7726
+
7708
7727
  class FetchReader extends Reader {
7709
7728
 
7710
7729
  constructor(url, options) {
@@ -8456,8 +8475,7 @@
8456
8475
  preventClose
8457
8476
  },
8458
8477
  config,
8459
- streamOptions: { signal, size, onstart, onprogress, onend },
8460
- codecConstructor: config.Inflate
8478
+ streamOptions: { signal, size, onstart, onprogress, onend }
8461
8479
  };
8462
8480
  writable.size += (await runWorker({ readable, writable }, workerOptions)).size;
8463
8481
  if (!preventClose) {
@@ -8851,12 +8869,12 @@
8851
8869
  options.directory = name.endsWith(DIRECTORY_SIGNATURE);
8852
8870
  }
8853
8871
  const rawFilename = encodeText(name);
8854
- if (rawFilename.length > MAX_16_BITS) {
8872
+ if (getLength(rawFilename) > MAX_16_BITS) {
8855
8873
  throw new Error(ERR_INVALID_ENTRY_NAME);
8856
8874
  }
8857
8875
  const comment = options.comment || "";
8858
8876
  const rawComment = encodeText(comment);
8859
- if (rawComment.length > MAX_16_BITS) {
8877
+ if (getLength(rawComment) > MAX_16_BITS) {
8860
8878
  throw new Error(ERR_INVALID_ENTRY_COMMENT);
8861
8879
  }
8862
8880
  const version = zipWriter.options.version || options.version || 0;
@@ -8881,19 +8899,19 @@
8881
8899
  if (extraField) {
8882
8900
  let extraFieldSize = 0;
8883
8901
  let offset = 0;
8884
- extraField.forEach(data => extraFieldSize += 4 + data.length);
8902
+ extraField.forEach(data => extraFieldSize += 4 + getLength(data));
8885
8903
  rawExtraField = new Uint8Array(extraFieldSize);
8886
8904
  extraField.forEach((data, type) => {
8887
8905
  if (type > MAX_16_BITS) {
8888
8906
  throw new Error(ERR_INVALID_EXTRAFIELD_TYPE);
8889
8907
  }
8890
- if (data.length > MAX_16_BITS) {
8908
+ if (getLength(data) > MAX_16_BITS) {
8891
8909
  throw new Error(ERR_INVALID_EXTRAFIELD_DATA);
8892
8910
  }
8893
8911
  arraySet(rawExtraField, new Uint16Array([type]), offset);
8894
- arraySet(rawExtraField, new Uint16Array([data.length]), offset + 2);
8912
+ arraySet(rawExtraField, new Uint16Array([getLength(data)]), offset + 2);
8895
8913
  arraySet(rawExtraField, data, offset + 4);
8896
- offset += 4 + data.length;
8914
+ offset += 4 + getLength(data);
8897
8915
  });
8898
8916
  }
8899
8917
  let extendedTimestamp = getOptionValue(zipWriter, options, "extendedTimestamp");
@@ -8982,7 +9000,7 @@
8982
9000
  });
8983
9001
  const headerInfo = getHeaderInfo(options);
8984
9002
  const dataDescriptorInfo = getDataDescriptorInfo(options);
8985
- maximumEntrySize = headerInfo.localHeaderArray.length + maximumCompressedSize + dataDescriptorInfo.dataDescriptorArray.length;
9003
+ maximumEntrySize = getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray) + maximumCompressedSize;
8986
9004
  zipWriter.pendingEntriesSize += maximumEntrySize;
8987
9005
  let fileEntry;
8988
9006
  try {
@@ -9200,8 +9218,7 @@
9200
9218
  transferStreams: false
9201
9219
  },
9202
9220
  config,
9203
- streamOptions: { signal, size, onstart, onprogress, onend },
9204
- codecConstructor: config.Deflate
9221
+ streamOptions: { signal, size, onstart, onprogress, onend }
9205
9222
  };
9206
9223
  const result = await runWorker({ readable, writable }, workerOptions);
9207
9224
  writable.size += result.size;
@@ -9232,7 +9249,7 @@
9232
9249
  creationDate,
9233
9250
  lastAccessDate,
9234
9251
  encrypted,
9235
- length: localHeaderArray.length + compressedSize + dataDescriptorArray.length,
9252
+ length: getLength(localHeaderArray, dataDescriptorArray) + compressedSize,
9236
9253
  compressionMethod,
9237
9254
  version,
9238
9255
  headerArray,
@@ -9259,10 +9276,10 @@
9259
9276
  } = options;
9260
9277
  let version = options.version || VERSION_DEFLATE;
9261
9278
  const compressed = level !== 0 && !directory;
9262
- const encrypted = Boolean(password && password.length);
9279
+ const encrypted = Boolean(password && getLength(password));
9263
9280
  let rawExtraFieldAES;
9264
9281
  if (encrypted && !zipCrypto) {
9265
- rawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES.length + 2);
9282
+ rawExtraFieldAES = new Uint8Array(getLength(EXTRAFIELD_DATA_AES) + 2);
9266
9283
  const extraFieldAESView = getDataView(rawExtraFieldAES);
9267
9284
  setUint16(extraFieldAESView, 0, EXTRAFIELD_TYPE_AES);
9268
9285
  arraySet(rawExtraFieldAES, EXTRAFIELD_DATA_AES, 2);
@@ -9276,7 +9293,7 @@
9276
9293
  rawExtraFieldExtendedTimestamp = new Uint8Array(9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0));
9277
9294
  const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
9278
9295
  setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
9279
- setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);
9296
+ setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
9280
9297
  const extraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);
9281
9298
  setUint8(extraFieldExtendedTimestampView, 4, extraFieldExtendedTimestampFlag);
9282
9299
  setUint32(extraFieldExtendedTimestampView, 5, Math.floor(options.lastModDate.getTime() / 1000));
@@ -9343,18 +9360,18 @@
9343
9360
  setUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());
9344
9361
  const rawLastModDate = dateArray[0];
9345
9362
  setUint32(headerView, 6, rawLastModDate);
9346
- setUint16(headerView, 22, rawFilename.length);
9347
- const extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9363
+ setUint16(headerView, 22, getLength(rawFilename));
9364
+ const extraFieldLength = getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
9348
9365
  setUint16(headerView, 24, extraFieldLength);
9349
- const localHeaderArray = new Uint8Array(30 + rawFilename.length + extraFieldLength);
9366
+ const localHeaderArray = new Uint8Array(30 + getLength(rawFilename) + extraFieldLength);
9350
9367
  const localHeaderView = getDataView(localHeaderArray);
9351
9368
  setUint32(localHeaderView, 0, LOCAL_FILE_HEADER_SIGNATURE);
9352
9369
  arraySet(localHeaderArray, headerArray, 4);
9353
9370
  arraySet(localHeaderArray, rawFilename, 30);
9354
- arraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename.length);
9355
- arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename.length + rawExtraFieldAES.length);
9356
- arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);
9357
- arraySet(localHeaderArray, rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9371
+ arraySet(localHeaderArray, rawExtraFieldAES, 30 + getLength(rawFilename));
9372
+ arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + getLength(rawFilename, rawExtraFieldAES));
9373
+ arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
9374
+ arraySet(localHeaderArray, rawExtraField, 30 + getLength(rawFilename, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
9358
9375
  return {
9359
9376
  localHeaderArray,
9360
9377
  headerArray,
@@ -9452,13 +9469,14 @@
9452
9469
  let filesLength = files.size;
9453
9470
  for (const [, fileEntry] of files) {
9454
9471
  directoryDataLength += 46 +
9455
- fileEntry.rawFilename.length +
9456
- fileEntry.rawComment.length +
9457
- fileEntry.rawExtraFieldZip64.length +
9458
- fileEntry.rawExtraFieldAES.length +
9459
- fileEntry.rawExtraFieldExtendedTimestamp.length +
9460
- fileEntry.rawExtraFieldNTFS.length +
9461
- fileEntry.rawExtraField.length;
9472
+ getLength(
9473
+ fileEntry.rawFilename,
9474
+ fileEntry.rawComment,
9475
+ fileEntry.rawExtraFieldZip64,
9476
+ fileEntry.rawExtraFieldAES,
9477
+ fileEntry.rawExtraFieldExtendedTimestamp,
9478
+ fileEntry.rawExtraFieldNTFS,
9479
+ fileEntry.rawExtraField);
9462
9480
  }
9463
9481
  let zip64 = options.zip64 || zipWriter.options.zip64 || false;
9464
9482
  if (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || filesLength >= MAX_16_BITS) {
@@ -9492,18 +9510,18 @@
9492
9510
  rawExtraFieldExtendedTimestamp = new Uint8Array(9);
9493
9511
  const extraFieldExtendedTimestampView = getDataView(rawExtraFieldExtendedTimestamp);
9494
9512
  setUint16(extraFieldExtendedTimestampView, 0, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
9495
- setUint16(extraFieldExtendedTimestampView, 2, rawExtraFieldExtendedTimestamp.length - 4);
9513
+ setUint16(extraFieldExtendedTimestampView, 2, getLength(rawExtraFieldExtendedTimestamp) - 4);
9496
9514
  setUint8(extraFieldExtendedTimestampView, 4, 0x1);
9497
9515
  setUint32(extraFieldExtendedTimestampView, 5, Math.floor(fileEntry.lastModDate.getTime() / 1000));
9498
9516
  } else {
9499
9517
  rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = new Uint8Array();
9500
9518
  }
9501
- const extraFieldLength = rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9519
+ const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraField);
9502
9520
  setUint32(directoryView, offset, CENTRAL_FILE_HEADER_SIGNATURE);
9503
9521
  setUint16(directoryView, offset + 4, versionMadeBy);
9504
9522
  arraySet(directoryArray, headerArray, offset + 6);
9505
9523
  setUint16(directoryView, offset + 30, extraFieldLength);
9506
- setUint16(directoryView, offset + 32, rawComment.length);
9524
+ setUint16(directoryView, offset + 32, getLength(rawComment));
9507
9525
  setUint16(directoryView, offset + 36, internalFileAttribute);
9508
9526
  if (externalFileAttribute) {
9509
9527
  setUint32(directoryView, offset + 38, externalFileAttribute);
@@ -9516,13 +9534,13 @@
9516
9534
  setUint32(directoryView, offset + 42, fileEntry.offset);
9517
9535
  }
9518
9536
  arraySet(directoryArray, rawFilename, offset + 46);
9519
- arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + rawFilename.length);
9520
- arraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename.length + rawExtraFieldZip64.length);
9521
- arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length);
9522
- arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);
9523
- arraySet(directoryArray, rawExtraField, offset + 46 + rawFilename.length + rawExtraFieldZip64.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9524
- arraySet(directoryArray, rawComment, offset + 46 + rawFilename.length + extraFieldLength);
9525
- offset += 46 + rawFilename.length + extraFieldLength + rawComment.length;
9537
+ arraySet(directoryArray, rawExtraFieldZip64, offset + 46 + getLength(rawFilename));
9538
+ arraySet(directoryArray, rawExtraFieldAES, offset + 46 + getLength(rawFilename, rawExtraFieldZip64));
9539
+ arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES));
9540
+ arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp));
9541
+ arraySet(directoryArray, rawExtraField, offset + 46 + getLength(rawFilename, rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS));
9542
+ arraySet(directoryArray, rawComment, offset + 46 + getLength(rawFilename) + extraFieldLength);
9543
+ offset += 46 + getLength(rawFilename, rawComment) + extraFieldLength;
9526
9544
  if (options.onprogress) {
9527
9545
  try {
9528
9546
  await options.onprogress(indexFileEntry + 1, files.size, new Entry(fileEntry));
@@ -9553,9 +9571,10 @@
9553
9571
  setUint16(directoryView, offset + 10, filesLength);
9554
9572
  setUint32(directoryView, offset + 12, directoryDataLength);
9555
9573
  setUint32(directoryView, offset + 16, directoryOffset);
9556
- if (comment && comment.length) {
9557
- if (comment.length <= MAX_16_BITS) {
9558
- setUint16(directoryView, offset + 20, comment.length);
9574
+ const commentLength = getLength(comment);
9575
+ if (commentLength) {
9576
+ if (commentLength <= MAX_16_BITS) {
9577
+ setUint16(directoryView, offset + 20, commentLength);
9559
9578
  } else {
9560
9579
  throw new Error(ERR_INVALID_COMMENT);
9561
9580
  }
@@ -9563,7 +9582,7 @@
9563
9582
  const { writable } = zipWriter.writer;
9564
9583
  await initStream(zipWriter.writer);
9565
9584
  await writeData(writable, directoryArray);
9566
- if (comment && comment.length) {
9585
+ if (commentLength) {
9567
9586
  await writeData(writable, comment);
9568
9587
  }
9569
9588
  }
@@ -9579,7 +9598,7 @@
9579
9598
  async function writeData(writable, array) {
9580
9599
  const streamWriter = writable.getWriter();
9581
9600
  await streamWriter.ready;
9582
- writable.size += array.length;
9601
+ writable.size += getLength(array);
9583
9602
  await streamWriter.write(array);
9584
9603
  streamWriter.releaseLock();
9585
9604
  }
@@ -9622,6 +9641,12 @@
9622
9641
  return new DataView(array.buffer);
9623
9642
  }
9624
9643
 
9644
+ function getLength(...arrayLikes) {
9645
+ let result = 0;
9646
+ arrayLikes.forEach(arrayLike => arrayLike && (result += arrayLike.length));
9647
+ return result;
9648
+ }
9649
+
9625
9650
  /*
9626
9651
  Copyright (c) 2022 Gildas Lormeau. All rights reserved.
9627
9652
 
@@ -10269,7 +10294,7 @@
10269
10294
  // ignored
10270
10295
  }
10271
10296
  configure({ baseURL });
10272
- t(configure);
10297
+ e(configure);
10273
10298
 
10274
10299
  /// <reference types="./index.d.ts" />
10275
10300