@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.
- package/README.md +1 -1
- package/dist/z-worker-fflate.js +1 -1
- package/dist/z-worker-pako.js +1 -1
- package/dist/z-worker.js +1 -1
- package/dist/zip-fs-full.js +1709 -1684
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +509 -484
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +509 -484
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +509 -484
- package/dist/zip.min.js +1 -1
- package/index.d.ts +42 -19
- package/lib/core/codec-interface.js +17 -9
- package/lib/core/codec-pool-worker.js +2 -3
- package/lib/core/codec-pool.js +1 -1
- package/lib/core/configuration.js +29 -8
- package/lib/core/io.js +36 -46
- package/lib/core/streams/aes-crypto-stream.js +86 -61
- package/lib/core/streams/codec-stream.js +1 -2
- package/lib/core/streams/common-crypto.js +3 -1
- package/lib/core/streams/zip-crypto-stream.js +12 -13
- package/lib/core/streams/zip-entry-stream.js +41 -57
- package/lib/core/z-worker-core.js +9 -9
- package/lib/core/zip-reader.js +1 -2
- package/lib/core/zip-writer.js +49 -42
- package/lib/z-worker-inline.js +1 -1
- package/package.json +5 -2
- package/rollup-fflate.config.dev.js +2 -2
- package/rollup-fflate.config.js +2 -2
- package/rollup.config.dev.js +2 -2
- package/rollup.config.js +2 -2
package/dist/zip-fs-full.js
CHANGED
|
@@ -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
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
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
|
-
|
|
4279
|
-
return Math.max(config.chunkSize, MINIMUM_CHUNK_SIZE);
|
|
4280
|
-
}
|
|
4273
|
+
class Crc32 {
|
|
4281
4274
|
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
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
|
-
|
|
4325
|
-
|
|
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
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
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
|
|
5284
|
+
const UNDEFINED_TYPE = "undefined";
|
|
6415
5285
|
const FUNCTION_TYPE = "function";
|
|
6416
|
-
const CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE
|
|
6417
|
-
const
|
|
6418
|
-
const
|
|
6419
|
-
const
|
|
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
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
|
|
6448
|
-
|
|
6449
|
-
|
|
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
|
|
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
|
|
6458
|
-
|
|
6459
|
-
|
|
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
|
-
|
|
6466
|
-
const decryptedChunk =
|
|
5341
|
+
hmac.update(encryptedChunk);
|
|
5342
|
+
const decryptedChunk = ctr.update(encryptedChunk);
|
|
6467
5343
|
decryptedChunkArray = fromBits(codecBytes, decryptedChunk);
|
|
6468
5344
|
}
|
|
6469
|
-
|
|
6470
|
-
|
|
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
|
-
|
|
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 (
|
|
6502
|
-
|
|
6503
|
-
|
|
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
|
|
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
|
|
6517
|
-
|
|
5392
|
+
const {
|
|
5393
|
+
ctr,
|
|
5394
|
+
hmac,
|
|
5395
|
+
pending,
|
|
5396
|
+
ready
|
|
5397
|
+
} = this;
|
|
5398
|
+
await ready;
|
|
6518
5399
|
let encryptedChunkArray = new Uint8Array();
|
|
6519
|
-
if (
|
|
6520
|
-
const encryptedChunk =
|
|
6521
|
-
|
|
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,
|
|
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 (
|
|
6535
|
-
input = concat(
|
|
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
|
-
|
|
5428
|
+
hmac.update(inputChunk);
|
|
6543
5429
|
}
|
|
6544
|
-
const outputChunk =
|
|
5430
|
+
const outputChunk = ctr.update(inputChunk);
|
|
6545
5431
|
if (!verifySignature) {
|
|
6546
|
-
|
|
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,
|
|
6555
|
-
await createKeys$1(decrypt, password, subarray(
|
|
6556
|
-
const passwordVerification = subarray(
|
|
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[
|
|
6565
|
-
await createKeys$1(encrypt, password, salt);
|
|
6566
|
-
return concat(salt,
|
|
6567
|
-
}
|
|
6568
|
-
|
|
6569
|
-
async function createKeys$1(
|
|
6570
|
-
|
|
6571
|
-
const
|
|
6572
|
-
const
|
|
6573
|
-
const
|
|
6574
|
-
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
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
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
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
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
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
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
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
|
|
6608
|
-
|
|
6609
|
-
const
|
|
6610
|
-
|
|
6611
|
-
|
|
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
|
|
5797
|
+
return readable;
|
|
6614
5798
|
}
|
|
6615
5799
|
|
|
6616
|
-
function
|
|
6617
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
5839
|
+
/* global TransformStream */
|
|
6658
5840
|
|
|
6659
|
-
|
|
6660
|
-
|
|
5841
|
+
class CodecStream extends TransformStream {
|
|
5842
|
+
|
|
5843
|
+
constructor(Codec, options) {
|
|
5844
|
+
let codec;
|
|
6661
5845
|
super({
|
|
6662
5846
|
start() {
|
|
6663
|
-
|
|
6664
|
-
password,
|
|
6665
|
-
passwordVerification
|
|
6666
|
-
});
|
|
6667
|
-
createKeys(this, password);
|
|
5847
|
+
codec = new Codec(options);
|
|
6668
5848
|
},
|
|
6669
5849
|
transform(chunk, controller) {
|
|
6670
|
-
|
|
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
|
-
|
|
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
|
-
|
|
5862
|
+
/*
|
|
5863
|
+
Copyright (c) 2022 Gildas Lormeau. All rights reserved.
|
|
6690
5864
|
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
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
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
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
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
6752
|
-
|
|
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
|
|
6761
|
-
|
|
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
|
|
6766
|
-
|
|
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
|
|
6770
|
-
|
|
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
|
-
|
|
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
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6872
|
-
|
|
6873
|
-
|
|
6874
|
-
|
|
6875
|
-
|
|
6876
|
-
|
|
6877
|
-
|
|
6878
|
-
|
|
6879
|
-
|
|
6880
|
-
|
|
6881
|
-
|
|
6882
|
-
|
|
6883
|
-
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6889
|
-
|
|
6890
|
-
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
|
|
6900
|
-
|
|
6901
|
-
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
|
|
6909
|
-
|
|
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
|
-
|
|
6917
|
-
|
|
6918
|
-
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
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
|
-
|
|
7044
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
8912
|
+
arraySet(rawExtraField, new Uint16Array([getLength(data)]), offset + 2);
|
|
8895
8913
|
arraySet(rawExtraField, data, offset + 4);
|
|
8896
|
-
offset += 4 + data
|
|
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.
|
|
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
|
|
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
|
|
9279
|
+
const encrypted = Boolean(password && getLength(password));
|
|
9263
9280
|
let rawExtraFieldAES;
|
|
9264
9281
|
if (encrypted && !zipCrypto) {
|
|
9265
|
-
rawExtraFieldAES = new Uint8Array(EXTRAFIELD_DATA_AES
|
|
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
|
|
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
|
|
9347
|
-
const extraFieldLength = rawExtraFieldAES
|
|
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
|
|
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
|
|
9355
|
-
arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename
|
|
9356
|
-
arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename
|
|
9357
|
-
arraySet(localHeaderArray, rawExtraField, 30 + rawFilename
|
|
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
|
-
|
|
9456
|
-
|
|
9457
|
-
|
|
9458
|
-
|
|
9459
|
-
|
|
9460
|
-
|
|
9461
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
9520
|
-
arraySet(directoryArray, rawExtraFieldAES, offset + 46 + rawFilename
|
|
9521
|
-
arraySet(directoryArray, rawExtraFieldExtendedTimestamp, offset + 46 + rawFilename
|
|
9522
|
-
arraySet(directoryArray, rawExtraFieldNTFS, offset + 46 + rawFilename
|
|
9523
|
-
arraySet(directoryArray, rawExtraField, offset + 46 + rawFilename
|
|
9524
|
-
arraySet(directoryArray, rawComment, offset + 46 + rawFilename
|
|
9525
|
-
offset += 46 + rawFilename
|
|
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
|
-
|
|
9557
|
-
|
|
9558
|
-
|
|
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 (
|
|
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
|
|
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
|
-
|
|
10297
|
+
e(configure);
|
|
10273
10298
|
|
|
10274
10299
|
/// <reference types="./index.d.ts" />
|
|
10275
10300
|
|