woff2-decode 0.1.3 → 0.2.0

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.
@@ -0,0 +1,4248 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
+ key = keys[i];
13
+ if (!__hasOwnProp.call(to, key) && key !== except) {
14
+ __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ }
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
28
+ if (typeof require !== "undefined") return require.apply(this, arguments);
29
+ throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
30
+ });
31
+
32
+ //#endregion
33
+ //#region node_modules/brotli/dec/streams.js
34
+ var require_streams = /* @__PURE__ */ __commonJSMin(((exports) => {
35
+ function BrotliInput(buffer) {
36
+ this.buffer = buffer;
37
+ this.pos = 0;
38
+ }
39
+ BrotliInput.prototype.read = function(buf, i, count) {
40
+ if (this.pos + count > this.buffer.length) count = this.buffer.length - this.pos;
41
+ for (var p = 0; p < count; p++) buf[i + p] = this.buffer[this.pos + p];
42
+ this.pos += count;
43
+ return count;
44
+ };
45
+ exports.BrotliInput = BrotliInput;
46
+ function BrotliOutput(buf) {
47
+ this.buffer = buf;
48
+ this.pos = 0;
49
+ }
50
+ BrotliOutput.prototype.write = function(buf, count) {
51
+ if (this.pos + count > this.buffer.length) throw new Error("Output buffer is not large enough");
52
+ this.buffer.set(buf.subarray(0, count), this.pos);
53
+ this.pos += count;
54
+ return count;
55
+ };
56
+ exports.BrotliOutput = BrotliOutput;
57
+ }));
58
+
59
+ //#endregion
60
+ //#region node_modules/brotli/dec/bit_reader.js
61
+ var require_bit_reader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
62
+ var BROTLI_READ_SIZE = 4096;
63
+ var BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;
64
+ var BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;
65
+ var kBitMask = new Uint32Array([
66
+ 0,
67
+ 1,
68
+ 3,
69
+ 7,
70
+ 15,
71
+ 31,
72
+ 63,
73
+ 127,
74
+ 255,
75
+ 511,
76
+ 1023,
77
+ 2047,
78
+ 4095,
79
+ 8191,
80
+ 16383,
81
+ 32767,
82
+ 65535,
83
+ 131071,
84
+ 262143,
85
+ 524287,
86
+ 1048575,
87
+ 2097151,
88
+ 4194303,
89
+ 8388607,
90
+ 16777215
91
+ ]);
92
+ function BrotliBitReader(input) {
93
+ this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);
94
+ this.input_ = input;
95
+ this.reset();
96
+ }
97
+ BrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;
98
+ BrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;
99
+ BrotliBitReader.prototype.reset = function() {
100
+ this.buf_ptr_ = 0;
101
+ this.val_ = 0;
102
+ this.pos_ = 0;
103
+ this.bit_pos_ = 0;
104
+ this.bit_end_pos_ = 0;
105
+ this.eos_ = 0;
106
+ this.readMoreInput();
107
+ for (var i = 0; i < 4; i++) {
108
+ this.val_ |= this.buf_[this.pos_] << 8 * i;
109
+ ++this.pos_;
110
+ }
111
+ return this.bit_end_pos_ > 0;
112
+ };
113
+ BrotliBitReader.prototype.readMoreInput = function() {
114
+ if (this.bit_end_pos_ > 256) return;
115
+ else if (this.eos_) {
116
+ if (this.bit_pos_ > this.bit_end_pos_) throw new Error("Unexpected end of input " + this.bit_pos_ + " " + this.bit_end_pos_);
117
+ } else {
118
+ var dst = this.buf_ptr_;
119
+ var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);
120
+ if (bytes_read < 0) throw new Error("Unexpected end of input");
121
+ if (bytes_read < BROTLI_READ_SIZE) {
122
+ this.eos_ = 1;
123
+ for (var p = 0; p < 32; p++) this.buf_[dst + bytes_read + p] = 0;
124
+ }
125
+ if (dst === 0) {
126
+ for (var p = 0; p < 32; p++) this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];
127
+ this.buf_ptr_ = BROTLI_READ_SIZE;
128
+ } else this.buf_ptr_ = 0;
129
+ this.bit_end_pos_ += bytes_read << 3;
130
+ }
131
+ };
132
+ BrotliBitReader.prototype.fillBitWindow = function() {
133
+ while (this.bit_pos_ >= 8) {
134
+ this.val_ >>>= 8;
135
+ this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;
136
+ ++this.pos_;
137
+ this.bit_pos_ = this.bit_pos_ - 8 >>> 0;
138
+ this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;
139
+ }
140
+ };
141
+ BrotliBitReader.prototype.readBits = function(n_bits) {
142
+ if (32 - this.bit_pos_ < n_bits) this.fillBitWindow();
143
+ var val = this.val_ >>> this.bit_pos_ & kBitMask[n_bits];
144
+ this.bit_pos_ += n_bits;
145
+ return val;
146
+ };
147
+ module.exports = BrotliBitReader;
148
+ }));
149
+
150
+ //#endregion
151
+ //#region node_modules/base64-js/index.js
152
+ var require_base64_js = /* @__PURE__ */ __commonJSMin(((exports) => {
153
+ exports.byteLength = byteLength;
154
+ exports.toByteArray = toByteArray;
155
+ exports.fromByteArray = fromByteArray;
156
+ var lookup = [];
157
+ var revLookup = [];
158
+ var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;
159
+ var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
160
+ for (var i = 0, len = code.length; i < len; ++i) {
161
+ lookup[i] = code[i];
162
+ revLookup[code.charCodeAt(i)] = i;
163
+ }
164
+ revLookup["-".charCodeAt(0)] = 62;
165
+ revLookup["_".charCodeAt(0)] = 63;
166
+ function getLens(b64) {
167
+ var len = b64.length;
168
+ if (len % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
169
+ var validLen = b64.indexOf("=");
170
+ if (validLen === -1) validLen = len;
171
+ var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
172
+ return [validLen, placeHoldersLen];
173
+ }
174
+ function byteLength(b64) {
175
+ var lens = getLens(b64);
176
+ var validLen = lens[0];
177
+ var placeHoldersLen = lens[1];
178
+ return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
179
+ }
180
+ function _byteLength(b64, validLen, placeHoldersLen) {
181
+ return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
182
+ }
183
+ function toByteArray(b64) {
184
+ var tmp;
185
+ var lens = getLens(b64);
186
+ var validLen = lens[0];
187
+ var placeHoldersLen = lens[1];
188
+ var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
189
+ var curByte = 0;
190
+ var len = placeHoldersLen > 0 ? validLen - 4 : validLen;
191
+ var i;
192
+ for (i = 0; i < len; i += 4) {
193
+ tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
194
+ arr[curByte++] = tmp >> 16 & 255;
195
+ arr[curByte++] = tmp >> 8 & 255;
196
+ arr[curByte++] = tmp & 255;
197
+ }
198
+ if (placeHoldersLen === 2) {
199
+ tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
200
+ arr[curByte++] = tmp & 255;
201
+ }
202
+ if (placeHoldersLen === 1) {
203
+ tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
204
+ arr[curByte++] = tmp >> 8 & 255;
205
+ arr[curByte++] = tmp & 255;
206
+ }
207
+ return arr;
208
+ }
209
+ function tripletToBase64(num) {
210
+ return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];
211
+ }
212
+ function encodeChunk(uint8, start, end) {
213
+ var tmp;
214
+ var output = [];
215
+ for (var i = start; i < end; i += 3) {
216
+ tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);
217
+ output.push(tripletToBase64(tmp));
218
+ }
219
+ return output.join("");
220
+ }
221
+ function fromByteArray(uint8) {
222
+ var tmp;
223
+ var len = uint8.length;
224
+ var extraBytes = len % 3;
225
+ var parts = [];
226
+ var maxChunkLength = 16383;
227
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));
228
+ if (extraBytes === 1) {
229
+ tmp = uint8[len - 1];
230
+ parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");
231
+ } else if (extraBytes === 2) {
232
+ tmp = (uint8[len - 2] << 8) + uint8[len - 1];
233
+ parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");
234
+ }
235
+ return parts.join("");
236
+ }
237
+ }));
238
+
239
+ //#endregion
240
+ //#region node_modules/brotli/dec/dictionary.bin.js
241
+ var require_dictionary_bin = /* @__PURE__ */ __commonJSMin(((exports, module) => {
242
+ module.exports = "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";
243
+ }));
244
+
245
+ //#endregion
246
+ //#region node_modules/brotli/dec/dictionary-browser.js
247
+ var require_dictionary_browser = /* @__PURE__ */ __commonJSMin(((exports) => {
248
+ var base64 = require_base64_js();
249
+ /**
250
+ * The normal dictionary-data.js is quite large, which makes it
251
+ * unsuitable for browser usage. In order to make it smaller,
252
+ * we read dictionary.bin, which is a compressed version of
253
+ * the dictionary, and on initial load, Brotli decompresses
254
+ * it's own dictionary. 😜
255
+ */
256
+ exports.init = function() {
257
+ var BrotliDecompressBuffer = require_decode().BrotliDecompressBuffer;
258
+ return BrotliDecompressBuffer(base64.toByteArray(require_dictionary_bin()));
259
+ };
260
+ }));
261
+
262
+ //#endregion
263
+ //#region node_modules/brotli/dec/dictionary.js
264
+ var require_dictionary = /* @__PURE__ */ __commonJSMin(((exports) => {
265
+ var data = require_dictionary_browser();
266
+ exports.init = function() {
267
+ exports.dictionary = data.init();
268
+ };
269
+ exports.offsetsByLength = new Uint32Array([
270
+ 0,
271
+ 0,
272
+ 0,
273
+ 0,
274
+ 0,
275
+ 4096,
276
+ 9216,
277
+ 21504,
278
+ 35840,
279
+ 44032,
280
+ 53248,
281
+ 63488,
282
+ 74752,
283
+ 87040,
284
+ 93696,
285
+ 100864,
286
+ 104704,
287
+ 106752,
288
+ 108928,
289
+ 113536,
290
+ 115968,
291
+ 118528,
292
+ 119872,
293
+ 121280,
294
+ 122016
295
+ ]);
296
+ exports.sizeBitsByLength = new Uint8Array([
297
+ 0,
298
+ 0,
299
+ 0,
300
+ 0,
301
+ 10,
302
+ 10,
303
+ 11,
304
+ 11,
305
+ 10,
306
+ 10,
307
+ 10,
308
+ 10,
309
+ 10,
310
+ 9,
311
+ 9,
312
+ 8,
313
+ 7,
314
+ 7,
315
+ 8,
316
+ 7,
317
+ 7,
318
+ 6,
319
+ 6,
320
+ 5,
321
+ 5
322
+ ]);
323
+ exports.minDictionaryWordLength = 4;
324
+ exports.maxDictionaryWordLength = 24;
325
+ }));
326
+
327
+ //#endregion
328
+ //#region node_modules/brotli/dec/huffman.js
329
+ var require_huffman = /* @__PURE__ */ __commonJSMin(((exports) => {
330
+ function HuffmanCode(bits, value) {
331
+ this.bits = bits;
332
+ this.value = value;
333
+ }
334
+ exports.HuffmanCode = HuffmanCode;
335
+ var MAX_LENGTH = 15;
336
+ function GetNextKey(key, len) {
337
+ var step = 1 << len - 1;
338
+ while (key & step) step >>= 1;
339
+ return (key & step - 1) + step;
340
+ }
341
+ function ReplicateValue(table, i, step, end, code) {
342
+ do {
343
+ end -= step;
344
+ table[i + end] = new HuffmanCode(code.bits, code.value);
345
+ } while (end > 0);
346
+ }
347
+ function NextTableBitSize(count, len, root_bits) {
348
+ var left = 1 << len - root_bits;
349
+ while (len < MAX_LENGTH) {
350
+ left -= count[len];
351
+ if (left <= 0) break;
352
+ ++len;
353
+ left <<= 1;
354
+ }
355
+ return len - root_bits;
356
+ }
357
+ exports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {
358
+ var start_table = table;
359
+ var code;
360
+ var len;
361
+ var symbol;
362
+ var key;
363
+ var step;
364
+ var low;
365
+ var mask;
366
+ var table_bits;
367
+ var table_size;
368
+ var total_size;
369
+ var sorted;
370
+ var count = new Int32Array(MAX_LENGTH + 1);
371
+ var offset = new Int32Array(MAX_LENGTH + 1);
372
+ sorted = new Int32Array(code_lengths_size);
373
+ for (symbol = 0; symbol < code_lengths_size; symbol++) count[code_lengths[symbol]]++;
374
+ offset[1] = 0;
375
+ for (len = 1; len < MAX_LENGTH; len++) offset[len + 1] = offset[len] + count[len];
376
+ for (symbol = 0; symbol < code_lengths_size; symbol++) if (code_lengths[symbol] !== 0) sorted[offset[code_lengths[symbol]]++] = symbol;
377
+ table_bits = root_bits;
378
+ table_size = 1 << table_bits;
379
+ total_size = table_size;
380
+ if (offset[MAX_LENGTH] === 1) {
381
+ for (key = 0; key < total_size; ++key) root_table[table + key] = new HuffmanCode(0, sorted[0] & 65535);
382
+ return total_size;
383
+ }
384
+ key = 0;
385
+ symbol = 0;
386
+ for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) for (; count[len] > 0; --count[len]) {
387
+ code = new HuffmanCode(len & 255, sorted[symbol++] & 65535);
388
+ ReplicateValue(root_table, table + key, step, table_size, code);
389
+ key = GetNextKey(key, len);
390
+ }
391
+ mask = total_size - 1;
392
+ low = -1;
393
+ for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) for (; count[len] > 0; --count[len]) {
394
+ if ((key & mask) !== low) {
395
+ table += table_size;
396
+ table_bits = NextTableBitSize(count, len, root_bits);
397
+ table_size = 1 << table_bits;
398
+ total_size += table_size;
399
+ low = key & mask;
400
+ root_table[start_table + low] = new HuffmanCode(table_bits + root_bits & 255, table - start_table - low & 65535);
401
+ }
402
+ code = new HuffmanCode(len - root_bits & 255, sorted[symbol++] & 65535);
403
+ ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);
404
+ key = GetNextKey(key, len);
405
+ }
406
+ return total_size;
407
+ };
408
+ }));
409
+
410
+ //#endregion
411
+ //#region node_modules/brotli/dec/context.js
412
+ var require_context = /* @__PURE__ */ __commonJSMin(((exports) => {
413
+ exports.lookup = new Uint8Array([
414
+ 0,
415
+ 0,
416
+ 0,
417
+ 0,
418
+ 0,
419
+ 0,
420
+ 0,
421
+ 0,
422
+ 0,
423
+ 4,
424
+ 4,
425
+ 0,
426
+ 0,
427
+ 4,
428
+ 0,
429
+ 0,
430
+ 0,
431
+ 0,
432
+ 0,
433
+ 0,
434
+ 0,
435
+ 0,
436
+ 0,
437
+ 0,
438
+ 0,
439
+ 0,
440
+ 0,
441
+ 0,
442
+ 0,
443
+ 0,
444
+ 0,
445
+ 0,
446
+ 8,
447
+ 12,
448
+ 16,
449
+ 12,
450
+ 12,
451
+ 20,
452
+ 12,
453
+ 16,
454
+ 24,
455
+ 28,
456
+ 12,
457
+ 12,
458
+ 32,
459
+ 12,
460
+ 36,
461
+ 12,
462
+ 44,
463
+ 44,
464
+ 44,
465
+ 44,
466
+ 44,
467
+ 44,
468
+ 44,
469
+ 44,
470
+ 44,
471
+ 44,
472
+ 32,
473
+ 32,
474
+ 24,
475
+ 40,
476
+ 28,
477
+ 12,
478
+ 12,
479
+ 48,
480
+ 52,
481
+ 52,
482
+ 52,
483
+ 48,
484
+ 52,
485
+ 52,
486
+ 52,
487
+ 48,
488
+ 52,
489
+ 52,
490
+ 52,
491
+ 52,
492
+ 52,
493
+ 48,
494
+ 52,
495
+ 52,
496
+ 52,
497
+ 52,
498
+ 52,
499
+ 48,
500
+ 52,
501
+ 52,
502
+ 52,
503
+ 52,
504
+ 52,
505
+ 24,
506
+ 12,
507
+ 28,
508
+ 12,
509
+ 12,
510
+ 12,
511
+ 56,
512
+ 60,
513
+ 60,
514
+ 60,
515
+ 56,
516
+ 60,
517
+ 60,
518
+ 60,
519
+ 56,
520
+ 60,
521
+ 60,
522
+ 60,
523
+ 60,
524
+ 60,
525
+ 56,
526
+ 60,
527
+ 60,
528
+ 60,
529
+ 60,
530
+ 60,
531
+ 56,
532
+ 60,
533
+ 60,
534
+ 60,
535
+ 60,
536
+ 60,
537
+ 24,
538
+ 12,
539
+ 28,
540
+ 12,
541
+ 0,
542
+ 0,
543
+ 1,
544
+ 0,
545
+ 1,
546
+ 0,
547
+ 1,
548
+ 0,
549
+ 1,
550
+ 0,
551
+ 1,
552
+ 0,
553
+ 1,
554
+ 0,
555
+ 1,
556
+ 0,
557
+ 1,
558
+ 0,
559
+ 1,
560
+ 0,
561
+ 1,
562
+ 0,
563
+ 1,
564
+ 0,
565
+ 1,
566
+ 0,
567
+ 1,
568
+ 0,
569
+ 1,
570
+ 0,
571
+ 1,
572
+ 0,
573
+ 1,
574
+ 0,
575
+ 1,
576
+ 0,
577
+ 1,
578
+ 0,
579
+ 1,
580
+ 0,
581
+ 1,
582
+ 0,
583
+ 1,
584
+ 0,
585
+ 1,
586
+ 0,
587
+ 1,
588
+ 0,
589
+ 1,
590
+ 0,
591
+ 1,
592
+ 0,
593
+ 1,
594
+ 0,
595
+ 1,
596
+ 0,
597
+ 1,
598
+ 0,
599
+ 1,
600
+ 0,
601
+ 1,
602
+ 0,
603
+ 1,
604
+ 0,
605
+ 1,
606
+ 2,
607
+ 3,
608
+ 2,
609
+ 3,
610
+ 2,
611
+ 3,
612
+ 2,
613
+ 3,
614
+ 2,
615
+ 3,
616
+ 2,
617
+ 3,
618
+ 2,
619
+ 3,
620
+ 2,
621
+ 3,
622
+ 2,
623
+ 3,
624
+ 2,
625
+ 3,
626
+ 2,
627
+ 3,
628
+ 2,
629
+ 3,
630
+ 2,
631
+ 3,
632
+ 2,
633
+ 3,
634
+ 2,
635
+ 3,
636
+ 2,
637
+ 3,
638
+ 2,
639
+ 3,
640
+ 2,
641
+ 3,
642
+ 2,
643
+ 3,
644
+ 2,
645
+ 3,
646
+ 2,
647
+ 3,
648
+ 2,
649
+ 3,
650
+ 2,
651
+ 3,
652
+ 2,
653
+ 3,
654
+ 2,
655
+ 3,
656
+ 2,
657
+ 3,
658
+ 2,
659
+ 3,
660
+ 2,
661
+ 3,
662
+ 2,
663
+ 3,
664
+ 2,
665
+ 3,
666
+ 2,
667
+ 3,
668
+ 2,
669
+ 3,
670
+ 0,
671
+ 0,
672
+ 0,
673
+ 0,
674
+ 0,
675
+ 0,
676
+ 0,
677
+ 0,
678
+ 0,
679
+ 0,
680
+ 0,
681
+ 0,
682
+ 0,
683
+ 0,
684
+ 0,
685
+ 0,
686
+ 0,
687
+ 0,
688
+ 0,
689
+ 0,
690
+ 0,
691
+ 0,
692
+ 0,
693
+ 0,
694
+ 0,
695
+ 0,
696
+ 0,
697
+ 0,
698
+ 0,
699
+ 0,
700
+ 0,
701
+ 0,
702
+ 0,
703
+ 1,
704
+ 1,
705
+ 1,
706
+ 1,
707
+ 1,
708
+ 1,
709
+ 1,
710
+ 1,
711
+ 1,
712
+ 1,
713
+ 1,
714
+ 1,
715
+ 1,
716
+ 1,
717
+ 1,
718
+ 2,
719
+ 2,
720
+ 2,
721
+ 2,
722
+ 2,
723
+ 2,
724
+ 2,
725
+ 2,
726
+ 2,
727
+ 2,
728
+ 1,
729
+ 1,
730
+ 1,
731
+ 1,
732
+ 1,
733
+ 1,
734
+ 1,
735
+ 2,
736
+ 2,
737
+ 2,
738
+ 2,
739
+ 2,
740
+ 2,
741
+ 2,
742
+ 2,
743
+ 2,
744
+ 2,
745
+ 2,
746
+ 2,
747
+ 2,
748
+ 2,
749
+ 2,
750
+ 2,
751
+ 2,
752
+ 2,
753
+ 2,
754
+ 2,
755
+ 2,
756
+ 2,
757
+ 2,
758
+ 2,
759
+ 2,
760
+ 2,
761
+ 1,
762
+ 1,
763
+ 1,
764
+ 1,
765
+ 1,
766
+ 1,
767
+ 3,
768
+ 3,
769
+ 3,
770
+ 3,
771
+ 3,
772
+ 3,
773
+ 3,
774
+ 3,
775
+ 3,
776
+ 3,
777
+ 3,
778
+ 3,
779
+ 3,
780
+ 3,
781
+ 3,
782
+ 3,
783
+ 3,
784
+ 3,
785
+ 3,
786
+ 3,
787
+ 3,
788
+ 3,
789
+ 3,
790
+ 3,
791
+ 3,
792
+ 3,
793
+ 1,
794
+ 1,
795
+ 1,
796
+ 1,
797
+ 0,
798
+ 0,
799
+ 0,
800
+ 0,
801
+ 0,
802
+ 0,
803
+ 0,
804
+ 0,
805
+ 0,
806
+ 0,
807
+ 0,
808
+ 0,
809
+ 0,
810
+ 0,
811
+ 0,
812
+ 0,
813
+ 0,
814
+ 0,
815
+ 0,
816
+ 0,
817
+ 0,
818
+ 0,
819
+ 0,
820
+ 0,
821
+ 0,
822
+ 0,
823
+ 0,
824
+ 0,
825
+ 0,
826
+ 0,
827
+ 0,
828
+ 0,
829
+ 0,
830
+ 0,
831
+ 0,
832
+ 0,
833
+ 0,
834
+ 0,
835
+ 0,
836
+ 0,
837
+ 0,
838
+ 0,
839
+ 0,
840
+ 0,
841
+ 0,
842
+ 0,
843
+ 0,
844
+ 0,
845
+ 0,
846
+ 0,
847
+ 0,
848
+ 0,
849
+ 0,
850
+ 0,
851
+ 0,
852
+ 0,
853
+ 0,
854
+ 0,
855
+ 0,
856
+ 0,
857
+ 0,
858
+ 0,
859
+ 0,
860
+ 0,
861
+ 0,
862
+ 0,
863
+ 0,
864
+ 0,
865
+ 0,
866
+ 0,
867
+ 0,
868
+ 0,
869
+ 0,
870
+ 0,
871
+ 0,
872
+ 0,
873
+ 0,
874
+ 0,
875
+ 0,
876
+ 0,
877
+ 0,
878
+ 0,
879
+ 0,
880
+ 0,
881
+ 0,
882
+ 0,
883
+ 0,
884
+ 0,
885
+ 0,
886
+ 0,
887
+ 0,
888
+ 0,
889
+ 0,
890
+ 0,
891
+ 0,
892
+ 0,
893
+ 0,
894
+ 2,
895
+ 2,
896
+ 2,
897
+ 2,
898
+ 2,
899
+ 2,
900
+ 2,
901
+ 2,
902
+ 2,
903
+ 2,
904
+ 2,
905
+ 2,
906
+ 2,
907
+ 2,
908
+ 2,
909
+ 2,
910
+ 2,
911
+ 2,
912
+ 2,
913
+ 2,
914
+ 2,
915
+ 2,
916
+ 2,
917
+ 2,
918
+ 2,
919
+ 2,
920
+ 2,
921
+ 2,
922
+ 2,
923
+ 2,
924
+ 2,
925
+ 2,
926
+ 0,
927
+ 1,
928
+ 1,
929
+ 1,
930
+ 1,
931
+ 1,
932
+ 1,
933
+ 1,
934
+ 1,
935
+ 1,
936
+ 1,
937
+ 1,
938
+ 1,
939
+ 1,
940
+ 1,
941
+ 1,
942
+ 2,
943
+ 2,
944
+ 2,
945
+ 2,
946
+ 2,
947
+ 2,
948
+ 2,
949
+ 2,
950
+ 2,
951
+ 2,
952
+ 2,
953
+ 2,
954
+ 2,
955
+ 2,
956
+ 2,
957
+ 2,
958
+ 2,
959
+ 2,
960
+ 2,
961
+ 2,
962
+ 2,
963
+ 2,
964
+ 2,
965
+ 2,
966
+ 2,
967
+ 2,
968
+ 2,
969
+ 2,
970
+ 2,
971
+ 2,
972
+ 2,
973
+ 2,
974
+ 2,
975
+ 2,
976
+ 2,
977
+ 2,
978
+ 2,
979
+ 2,
980
+ 2,
981
+ 2,
982
+ 2,
983
+ 2,
984
+ 2,
985
+ 2,
986
+ 2,
987
+ 2,
988
+ 2,
989
+ 2,
990
+ 3,
991
+ 3,
992
+ 3,
993
+ 3,
994
+ 3,
995
+ 3,
996
+ 3,
997
+ 3,
998
+ 3,
999
+ 3,
1000
+ 3,
1001
+ 3,
1002
+ 3,
1003
+ 3,
1004
+ 3,
1005
+ 3,
1006
+ 3,
1007
+ 3,
1008
+ 3,
1009
+ 3,
1010
+ 3,
1011
+ 3,
1012
+ 3,
1013
+ 3,
1014
+ 3,
1015
+ 3,
1016
+ 3,
1017
+ 3,
1018
+ 3,
1019
+ 3,
1020
+ 3,
1021
+ 3,
1022
+ 3,
1023
+ 3,
1024
+ 3,
1025
+ 3,
1026
+ 3,
1027
+ 3,
1028
+ 3,
1029
+ 3,
1030
+ 3,
1031
+ 3,
1032
+ 3,
1033
+ 3,
1034
+ 3,
1035
+ 3,
1036
+ 3,
1037
+ 3,
1038
+ 3,
1039
+ 3,
1040
+ 3,
1041
+ 3,
1042
+ 3,
1043
+ 3,
1044
+ 3,
1045
+ 3,
1046
+ 3,
1047
+ 3,
1048
+ 3,
1049
+ 3,
1050
+ 3,
1051
+ 3,
1052
+ 3,
1053
+ 3,
1054
+ 4,
1055
+ 4,
1056
+ 4,
1057
+ 4,
1058
+ 4,
1059
+ 4,
1060
+ 4,
1061
+ 4,
1062
+ 4,
1063
+ 4,
1064
+ 4,
1065
+ 4,
1066
+ 4,
1067
+ 4,
1068
+ 4,
1069
+ 4,
1070
+ 4,
1071
+ 4,
1072
+ 4,
1073
+ 4,
1074
+ 4,
1075
+ 4,
1076
+ 4,
1077
+ 4,
1078
+ 4,
1079
+ 4,
1080
+ 4,
1081
+ 4,
1082
+ 4,
1083
+ 4,
1084
+ 4,
1085
+ 4,
1086
+ 4,
1087
+ 4,
1088
+ 4,
1089
+ 4,
1090
+ 4,
1091
+ 4,
1092
+ 4,
1093
+ 4,
1094
+ 4,
1095
+ 4,
1096
+ 4,
1097
+ 4,
1098
+ 4,
1099
+ 4,
1100
+ 4,
1101
+ 4,
1102
+ 4,
1103
+ 4,
1104
+ 4,
1105
+ 4,
1106
+ 4,
1107
+ 4,
1108
+ 4,
1109
+ 4,
1110
+ 4,
1111
+ 4,
1112
+ 4,
1113
+ 4,
1114
+ 4,
1115
+ 4,
1116
+ 4,
1117
+ 4,
1118
+ 5,
1119
+ 5,
1120
+ 5,
1121
+ 5,
1122
+ 5,
1123
+ 5,
1124
+ 5,
1125
+ 5,
1126
+ 5,
1127
+ 5,
1128
+ 5,
1129
+ 5,
1130
+ 5,
1131
+ 5,
1132
+ 5,
1133
+ 5,
1134
+ 5,
1135
+ 5,
1136
+ 5,
1137
+ 5,
1138
+ 5,
1139
+ 5,
1140
+ 5,
1141
+ 5,
1142
+ 5,
1143
+ 5,
1144
+ 5,
1145
+ 5,
1146
+ 5,
1147
+ 5,
1148
+ 5,
1149
+ 5,
1150
+ 5,
1151
+ 5,
1152
+ 5,
1153
+ 5,
1154
+ 5,
1155
+ 5,
1156
+ 5,
1157
+ 5,
1158
+ 5,
1159
+ 5,
1160
+ 5,
1161
+ 5,
1162
+ 5,
1163
+ 5,
1164
+ 5,
1165
+ 5,
1166
+ 6,
1167
+ 6,
1168
+ 6,
1169
+ 6,
1170
+ 6,
1171
+ 6,
1172
+ 6,
1173
+ 6,
1174
+ 6,
1175
+ 6,
1176
+ 6,
1177
+ 6,
1178
+ 6,
1179
+ 6,
1180
+ 6,
1181
+ 7,
1182
+ 0,
1183
+ 8,
1184
+ 8,
1185
+ 8,
1186
+ 8,
1187
+ 8,
1188
+ 8,
1189
+ 8,
1190
+ 8,
1191
+ 8,
1192
+ 8,
1193
+ 8,
1194
+ 8,
1195
+ 8,
1196
+ 8,
1197
+ 8,
1198
+ 16,
1199
+ 16,
1200
+ 16,
1201
+ 16,
1202
+ 16,
1203
+ 16,
1204
+ 16,
1205
+ 16,
1206
+ 16,
1207
+ 16,
1208
+ 16,
1209
+ 16,
1210
+ 16,
1211
+ 16,
1212
+ 16,
1213
+ 16,
1214
+ 16,
1215
+ 16,
1216
+ 16,
1217
+ 16,
1218
+ 16,
1219
+ 16,
1220
+ 16,
1221
+ 16,
1222
+ 16,
1223
+ 16,
1224
+ 16,
1225
+ 16,
1226
+ 16,
1227
+ 16,
1228
+ 16,
1229
+ 16,
1230
+ 16,
1231
+ 16,
1232
+ 16,
1233
+ 16,
1234
+ 16,
1235
+ 16,
1236
+ 16,
1237
+ 16,
1238
+ 16,
1239
+ 16,
1240
+ 16,
1241
+ 16,
1242
+ 16,
1243
+ 16,
1244
+ 16,
1245
+ 16,
1246
+ 24,
1247
+ 24,
1248
+ 24,
1249
+ 24,
1250
+ 24,
1251
+ 24,
1252
+ 24,
1253
+ 24,
1254
+ 24,
1255
+ 24,
1256
+ 24,
1257
+ 24,
1258
+ 24,
1259
+ 24,
1260
+ 24,
1261
+ 24,
1262
+ 24,
1263
+ 24,
1264
+ 24,
1265
+ 24,
1266
+ 24,
1267
+ 24,
1268
+ 24,
1269
+ 24,
1270
+ 24,
1271
+ 24,
1272
+ 24,
1273
+ 24,
1274
+ 24,
1275
+ 24,
1276
+ 24,
1277
+ 24,
1278
+ 24,
1279
+ 24,
1280
+ 24,
1281
+ 24,
1282
+ 24,
1283
+ 24,
1284
+ 24,
1285
+ 24,
1286
+ 24,
1287
+ 24,
1288
+ 24,
1289
+ 24,
1290
+ 24,
1291
+ 24,
1292
+ 24,
1293
+ 24,
1294
+ 24,
1295
+ 24,
1296
+ 24,
1297
+ 24,
1298
+ 24,
1299
+ 24,
1300
+ 24,
1301
+ 24,
1302
+ 24,
1303
+ 24,
1304
+ 24,
1305
+ 24,
1306
+ 24,
1307
+ 24,
1308
+ 24,
1309
+ 24,
1310
+ 32,
1311
+ 32,
1312
+ 32,
1313
+ 32,
1314
+ 32,
1315
+ 32,
1316
+ 32,
1317
+ 32,
1318
+ 32,
1319
+ 32,
1320
+ 32,
1321
+ 32,
1322
+ 32,
1323
+ 32,
1324
+ 32,
1325
+ 32,
1326
+ 32,
1327
+ 32,
1328
+ 32,
1329
+ 32,
1330
+ 32,
1331
+ 32,
1332
+ 32,
1333
+ 32,
1334
+ 32,
1335
+ 32,
1336
+ 32,
1337
+ 32,
1338
+ 32,
1339
+ 32,
1340
+ 32,
1341
+ 32,
1342
+ 32,
1343
+ 32,
1344
+ 32,
1345
+ 32,
1346
+ 32,
1347
+ 32,
1348
+ 32,
1349
+ 32,
1350
+ 32,
1351
+ 32,
1352
+ 32,
1353
+ 32,
1354
+ 32,
1355
+ 32,
1356
+ 32,
1357
+ 32,
1358
+ 32,
1359
+ 32,
1360
+ 32,
1361
+ 32,
1362
+ 32,
1363
+ 32,
1364
+ 32,
1365
+ 32,
1366
+ 32,
1367
+ 32,
1368
+ 32,
1369
+ 32,
1370
+ 32,
1371
+ 32,
1372
+ 32,
1373
+ 32,
1374
+ 40,
1375
+ 40,
1376
+ 40,
1377
+ 40,
1378
+ 40,
1379
+ 40,
1380
+ 40,
1381
+ 40,
1382
+ 40,
1383
+ 40,
1384
+ 40,
1385
+ 40,
1386
+ 40,
1387
+ 40,
1388
+ 40,
1389
+ 40,
1390
+ 40,
1391
+ 40,
1392
+ 40,
1393
+ 40,
1394
+ 40,
1395
+ 40,
1396
+ 40,
1397
+ 40,
1398
+ 40,
1399
+ 40,
1400
+ 40,
1401
+ 40,
1402
+ 40,
1403
+ 40,
1404
+ 40,
1405
+ 40,
1406
+ 40,
1407
+ 40,
1408
+ 40,
1409
+ 40,
1410
+ 40,
1411
+ 40,
1412
+ 40,
1413
+ 40,
1414
+ 40,
1415
+ 40,
1416
+ 40,
1417
+ 40,
1418
+ 40,
1419
+ 40,
1420
+ 40,
1421
+ 40,
1422
+ 48,
1423
+ 48,
1424
+ 48,
1425
+ 48,
1426
+ 48,
1427
+ 48,
1428
+ 48,
1429
+ 48,
1430
+ 48,
1431
+ 48,
1432
+ 48,
1433
+ 48,
1434
+ 48,
1435
+ 48,
1436
+ 48,
1437
+ 56,
1438
+ 0,
1439
+ 1,
1440
+ 2,
1441
+ 3,
1442
+ 4,
1443
+ 5,
1444
+ 6,
1445
+ 7,
1446
+ 8,
1447
+ 9,
1448
+ 10,
1449
+ 11,
1450
+ 12,
1451
+ 13,
1452
+ 14,
1453
+ 15,
1454
+ 16,
1455
+ 17,
1456
+ 18,
1457
+ 19,
1458
+ 20,
1459
+ 21,
1460
+ 22,
1461
+ 23,
1462
+ 24,
1463
+ 25,
1464
+ 26,
1465
+ 27,
1466
+ 28,
1467
+ 29,
1468
+ 30,
1469
+ 31,
1470
+ 32,
1471
+ 33,
1472
+ 34,
1473
+ 35,
1474
+ 36,
1475
+ 37,
1476
+ 38,
1477
+ 39,
1478
+ 40,
1479
+ 41,
1480
+ 42,
1481
+ 43,
1482
+ 44,
1483
+ 45,
1484
+ 46,
1485
+ 47,
1486
+ 48,
1487
+ 49,
1488
+ 50,
1489
+ 51,
1490
+ 52,
1491
+ 53,
1492
+ 54,
1493
+ 55,
1494
+ 56,
1495
+ 57,
1496
+ 58,
1497
+ 59,
1498
+ 60,
1499
+ 61,
1500
+ 62,
1501
+ 63,
1502
+ 0,
1503
+ 1,
1504
+ 2,
1505
+ 3,
1506
+ 4,
1507
+ 5,
1508
+ 6,
1509
+ 7,
1510
+ 8,
1511
+ 9,
1512
+ 10,
1513
+ 11,
1514
+ 12,
1515
+ 13,
1516
+ 14,
1517
+ 15,
1518
+ 16,
1519
+ 17,
1520
+ 18,
1521
+ 19,
1522
+ 20,
1523
+ 21,
1524
+ 22,
1525
+ 23,
1526
+ 24,
1527
+ 25,
1528
+ 26,
1529
+ 27,
1530
+ 28,
1531
+ 29,
1532
+ 30,
1533
+ 31,
1534
+ 32,
1535
+ 33,
1536
+ 34,
1537
+ 35,
1538
+ 36,
1539
+ 37,
1540
+ 38,
1541
+ 39,
1542
+ 40,
1543
+ 41,
1544
+ 42,
1545
+ 43,
1546
+ 44,
1547
+ 45,
1548
+ 46,
1549
+ 47,
1550
+ 48,
1551
+ 49,
1552
+ 50,
1553
+ 51,
1554
+ 52,
1555
+ 53,
1556
+ 54,
1557
+ 55,
1558
+ 56,
1559
+ 57,
1560
+ 58,
1561
+ 59,
1562
+ 60,
1563
+ 61,
1564
+ 62,
1565
+ 63,
1566
+ 0,
1567
+ 1,
1568
+ 2,
1569
+ 3,
1570
+ 4,
1571
+ 5,
1572
+ 6,
1573
+ 7,
1574
+ 8,
1575
+ 9,
1576
+ 10,
1577
+ 11,
1578
+ 12,
1579
+ 13,
1580
+ 14,
1581
+ 15,
1582
+ 16,
1583
+ 17,
1584
+ 18,
1585
+ 19,
1586
+ 20,
1587
+ 21,
1588
+ 22,
1589
+ 23,
1590
+ 24,
1591
+ 25,
1592
+ 26,
1593
+ 27,
1594
+ 28,
1595
+ 29,
1596
+ 30,
1597
+ 31,
1598
+ 32,
1599
+ 33,
1600
+ 34,
1601
+ 35,
1602
+ 36,
1603
+ 37,
1604
+ 38,
1605
+ 39,
1606
+ 40,
1607
+ 41,
1608
+ 42,
1609
+ 43,
1610
+ 44,
1611
+ 45,
1612
+ 46,
1613
+ 47,
1614
+ 48,
1615
+ 49,
1616
+ 50,
1617
+ 51,
1618
+ 52,
1619
+ 53,
1620
+ 54,
1621
+ 55,
1622
+ 56,
1623
+ 57,
1624
+ 58,
1625
+ 59,
1626
+ 60,
1627
+ 61,
1628
+ 62,
1629
+ 63,
1630
+ 0,
1631
+ 1,
1632
+ 2,
1633
+ 3,
1634
+ 4,
1635
+ 5,
1636
+ 6,
1637
+ 7,
1638
+ 8,
1639
+ 9,
1640
+ 10,
1641
+ 11,
1642
+ 12,
1643
+ 13,
1644
+ 14,
1645
+ 15,
1646
+ 16,
1647
+ 17,
1648
+ 18,
1649
+ 19,
1650
+ 20,
1651
+ 21,
1652
+ 22,
1653
+ 23,
1654
+ 24,
1655
+ 25,
1656
+ 26,
1657
+ 27,
1658
+ 28,
1659
+ 29,
1660
+ 30,
1661
+ 31,
1662
+ 32,
1663
+ 33,
1664
+ 34,
1665
+ 35,
1666
+ 36,
1667
+ 37,
1668
+ 38,
1669
+ 39,
1670
+ 40,
1671
+ 41,
1672
+ 42,
1673
+ 43,
1674
+ 44,
1675
+ 45,
1676
+ 46,
1677
+ 47,
1678
+ 48,
1679
+ 49,
1680
+ 50,
1681
+ 51,
1682
+ 52,
1683
+ 53,
1684
+ 54,
1685
+ 55,
1686
+ 56,
1687
+ 57,
1688
+ 58,
1689
+ 59,
1690
+ 60,
1691
+ 61,
1692
+ 62,
1693
+ 63,
1694
+ 0,
1695
+ 0,
1696
+ 0,
1697
+ 0,
1698
+ 1,
1699
+ 1,
1700
+ 1,
1701
+ 1,
1702
+ 2,
1703
+ 2,
1704
+ 2,
1705
+ 2,
1706
+ 3,
1707
+ 3,
1708
+ 3,
1709
+ 3,
1710
+ 4,
1711
+ 4,
1712
+ 4,
1713
+ 4,
1714
+ 5,
1715
+ 5,
1716
+ 5,
1717
+ 5,
1718
+ 6,
1719
+ 6,
1720
+ 6,
1721
+ 6,
1722
+ 7,
1723
+ 7,
1724
+ 7,
1725
+ 7,
1726
+ 8,
1727
+ 8,
1728
+ 8,
1729
+ 8,
1730
+ 9,
1731
+ 9,
1732
+ 9,
1733
+ 9,
1734
+ 10,
1735
+ 10,
1736
+ 10,
1737
+ 10,
1738
+ 11,
1739
+ 11,
1740
+ 11,
1741
+ 11,
1742
+ 12,
1743
+ 12,
1744
+ 12,
1745
+ 12,
1746
+ 13,
1747
+ 13,
1748
+ 13,
1749
+ 13,
1750
+ 14,
1751
+ 14,
1752
+ 14,
1753
+ 14,
1754
+ 15,
1755
+ 15,
1756
+ 15,
1757
+ 15,
1758
+ 16,
1759
+ 16,
1760
+ 16,
1761
+ 16,
1762
+ 17,
1763
+ 17,
1764
+ 17,
1765
+ 17,
1766
+ 18,
1767
+ 18,
1768
+ 18,
1769
+ 18,
1770
+ 19,
1771
+ 19,
1772
+ 19,
1773
+ 19,
1774
+ 20,
1775
+ 20,
1776
+ 20,
1777
+ 20,
1778
+ 21,
1779
+ 21,
1780
+ 21,
1781
+ 21,
1782
+ 22,
1783
+ 22,
1784
+ 22,
1785
+ 22,
1786
+ 23,
1787
+ 23,
1788
+ 23,
1789
+ 23,
1790
+ 24,
1791
+ 24,
1792
+ 24,
1793
+ 24,
1794
+ 25,
1795
+ 25,
1796
+ 25,
1797
+ 25,
1798
+ 26,
1799
+ 26,
1800
+ 26,
1801
+ 26,
1802
+ 27,
1803
+ 27,
1804
+ 27,
1805
+ 27,
1806
+ 28,
1807
+ 28,
1808
+ 28,
1809
+ 28,
1810
+ 29,
1811
+ 29,
1812
+ 29,
1813
+ 29,
1814
+ 30,
1815
+ 30,
1816
+ 30,
1817
+ 30,
1818
+ 31,
1819
+ 31,
1820
+ 31,
1821
+ 31,
1822
+ 32,
1823
+ 32,
1824
+ 32,
1825
+ 32,
1826
+ 33,
1827
+ 33,
1828
+ 33,
1829
+ 33,
1830
+ 34,
1831
+ 34,
1832
+ 34,
1833
+ 34,
1834
+ 35,
1835
+ 35,
1836
+ 35,
1837
+ 35,
1838
+ 36,
1839
+ 36,
1840
+ 36,
1841
+ 36,
1842
+ 37,
1843
+ 37,
1844
+ 37,
1845
+ 37,
1846
+ 38,
1847
+ 38,
1848
+ 38,
1849
+ 38,
1850
+ 39,
1851
+ 39,
1852
+ 39,
1853
+ 39,
1854
+ 40,
1855
+ 40,
1856
+ 40,
1857
+ 40,
1858
+ 41,
1859
+ 41,
1860
+ 41,
1861
+ 41,
1862
+ 42,
1863
+ 42,
1864
+ 42,
1865
+ 42,
1866
+ 43,
1867
+ 43,
1868
+ 43,
1869
+ 43,
1870
+ 44,
1871
+ 44,
1872
+ 44,
1873
+ 44,
1874
+ 45,
1875
+ 45,
1876
+ 45,
1877
+ 45,
1878
+ 46,
1879
+ 46,
1880
+ 46,
1881
+ 46,
1882
+ 47,
1883
+ 47,
1884
+ 47,
1885
+ 47,
1886
+ 48,
1887
+ 48,
1888
+ 48,
1889
+ 48,
1890
+ 49,
1891
+ 49,
1892
+ 49,
1893
+ 49,
1894
+ 50,
1895
+ 50,
1896
+ 50,
1897
+ 50,
1898
+ 51,
1899
+ 51,
1900
+ 51,
1901
+ 51,
1902
+ 52,
1903
+ 52,
1904
+ 52,
1905
+ 52,
1906
+ 53,
1907
+ 53,
1908
+ 53,
1909
+ 53,
1910
+ 54,
1911
+ 54,
1912
+ 54,
1913
+ 54,
1914
+ 55,
1915
+ 55,
1916
+ 55,
1917
+ 55,
1918
+ 56,
1919
+ 56,
1920
+ 56,
1921
+ 56,
1922
+ 57,
1923
+ 57,
1924
+ 57,
1925
+ 57,
1926
+ 58,
1927
+ 58,
1928
+ 58,
1929
+ 58,
1930
+ 59,
1931
+ 59,
1932
+ 59,
1933
+ 59,
1934
+ 60,
1935
+ 60,
1936
+ 60,
1937
+ 60,
1938
+ 61,
1939
+ 61,
1940
+ 61,
1941
+ 61,
1942
+ 62,
1943
+ 62,
1944
+ 62,
1945
+ 62,
1946
+ 63,
1947
+ 63,
1948
+ 63,
1949
+ 63,
1950
+ 0,
1951
+ 0,
1952
+ 0,
1953
+ 0,
1954
+ 0,
1955
+ 0,
1956
+ 0,
1957
+ 0,
1958
+ 0,
1959
+ 0,
1960
+ 0,
1961
+ 0,
1962
+ 0,
1963
+ 0,
1964
+ 0,
1965
+ 0,
1966
+ 0,
1967
+ 0,
1968
+ 0,
1969
+ 0,
1970
+ 0,
1971
+ 0,
1972
+ 0,
1973
+ 0,
1974
+ 0,
1975
+ 0,
1976
+ 0,
1977
+ 0,
1978
+ 0,
1979
+ 0,
1980
+ 0,
1981
+ 0,
1982
+ 0,
1983
+ 0,
1984
+ 0,
1985
+ 0,
1986
+ 0,
1987
+ 0,
1988
+ 0,
1989
+ 0,
1990
+ 0,
1991
+ 0,
1992
+ 0,
1993
+ 0,
1994
+ 0,
1995
+ 0,
1996
+ 0,
1997
+ 0,
1998
+ 0,
1999
+ 0,
2000
+ 0,
2001
+ 0,
2002
+ 0,
2003
+ 0,
2004
+ 0,
2005
+ 0,
2006
+ 0,
2007
+ 0,
2008
+ 0,
2009
+ 0,
2010
+ 0,
2011
+ 0,
2012
+ 0,
2013
+ 0,
2014
+ 0,
2015
+ 0,
2016
+ 0,
2017
+ 0,
2018
+ 0,
2019
+ 0,
2020
+ 0,
2021
+ 0,
2022
+ 0,
2023
+ 0,
2024
+ 0,
2025
+ 0,
2026
+ 0,
2027
+ 0,
2028
+ 0,
2029
+ 0,
2030
+ 0,
2031
+ 0,
2032
+ 0,
2033
+ 0,
2034
+ 0,
2035
+ 0,
2036
+ 0,
2037
+ 0,
2038
+ 0,
2039
+ 0,
2040
+ 0,
2041
+ 0,
2042
+ 0,
2043
+ 0,
2044
+ 0,
2045
+ 0,
2046
+ 0,
2047
+ 0,
2048
+ 0,
2049
+ 0,
2050
+ 0,
2051
+ 0,
2052
+ 0,
2053
+ 0,
2054
+ 0,
2055
+ 0,
2056
+ 0,
2057
+ 0,
2058
+ 0,
2059
+ 0,
2060
+ 0,
2061
+ 0,
2062
+ 0,
2063
+ 0,
2064
+ 0,
2065
+ 0,
2066
+ 0,
2067
+ 0,
2068
+ 0,
2069
+ 0,
2070
+ 0,
2071
+ 0,
2072
+ 0,
2073
+ 0,
2074
+ 0,
2075
+ 0,
2076
+ 0,
2077
+ 0,
2078
+ 0,
2079
+ 0,
2080
+ 0,
2081
+ 0,
2082
+ 0,
2083
+ 0,
2084
+ 0,
2085
+ 0,
2086
+ 0,
2087
+ 0,
2088
+ 0,
2089
+ 0,
2090
+ 0,
2091
+ 0,
2092
+ 0,
2093
+ 0,
2094
+ 0,
2095
+ 0,
2096
+ 0,
2097
+ 0,
2098
+ 0,
2099
+ 0,
2100
+ 0,
2101
+ 0,
2102
+ 0,
2103
+ 0,
2104
+ 0,
2105
+ 0,
2106
+ 0,
2107
+ 0,
2108
+ 0,
2109
+ 0,
2110
+ 0,
2111
+ 0,
2112
+ 0,
2113
+ 0,
2114
+ 0,
2115
+ 0,
2116
+ 0,
2117
+ 0,
2118
+ 0,
2119
+ 0,
2120
+ 0,
2121
+ 0,
2122
+ 0,
2123
+ 0,
2124
+ 0,
2125
+ 0,
2126
+ 0,
2127
+ 0,
2128
+ 0,
2129
+ 0,
2130
+ 0,
2131
+ 0,
2132
+ 0,
2133
+ 0,
2134
+ 0,
2135
+ 0,
2136
+ 0,
2137
+ 0,
2138
+ 0,
2139
+ 0,
2140
+ 0,
2141
+ 0,
2142
+ 0,
2143
+ 0,
2144
+ 0,
2145
+ 0,
2146
+ 0,
2147
+ 0,
2148
+ 0,
2149
+ 0,
2150
+ 0,
2151
+ 0,
2152
+ 0,
2153
+ 0,
2154
+ 0,
2155
+ 0,
2156
+ 0,
2157
+ 0,
2158
+ 0,
2159
+ 0,
2160
+ 0,
2161
+ 0,
2162
+ 0,
2163
+ 0,
2164
+ 0,
2165
+ 0,
2166
+ 0,
2167
+ 0,
2168
+ 0,
2169
+ 0,
2170
+ 0,
2171
+ 0,
2172
+ 0,
2173
+ 0,
2174
+ 0,
2175
+ 0,
2176
+ 0,
2177
+ 0,
2178
+ 0,
2179
+ 0,
2180
+ 0,
2181
+ 0,
2182
+ 0,
2183
+ 0,
2184
+ 0,
2185
+ 0,
2186
+ 0,
2187
+ 0,
2188
+ 0,
2189
+ 0,
2190
+ 0,
2191
+ 0,
2192
+ 0,
2193
+ 0,
2194
+ 0,
2195
+ 0,
2196
+ 0,
2197
+ 0,
2198
+ 0,
2199
+ 0,
2200
+ 0,
2201
+ 0,
2202
+ 0,
2203
+ 0,
2204
+ 0,
2205
+ 0
2206
+ ]);
2207
+ exports.lookupOffsets = new Uint16Array([
2208
+ 1024,
2209
+ 1536,
2210
+ 1280,
2211
+ 1536,
2212
+ 0,
2213
+ 256,
2214
+ 768,
2215
+ 512
2216
+ ]);
2217
+ }));
2218
+
2219
+ //#endregion
2220
+ //#region node_modules/brotli/dec/prefix.js
2221
+ var require_prefix = /* @__PURE__ */ __commonJSMin(((exports) => {
2222
+ function PrefixCodeRange(offset, nbits) {
2223
+ this.offset = offset;
2224
+ this.nbits = nbits;
2225
+ }
2226
+ exports.kBlockLengthPrefixCode = [
2227
+ new PrefixCodeRange(1, 2),
2228
+ new PrefixCodeRange(5, 2),
2229
+ new PrefixCodeRange(9, 2),
2230
+ new PrefixCodeRange(13, 2),
2231
+ new PrefixCodeRange(17, 3),
2232
+ new PrefixCodeRange(25, 3),
2233
+ new PrefixCodeRange(33, 3),
2234
+ new PrefixCodeRange(41, 3),
2235
+ new PrefixCodeRange(49, 4),
2236
+ new PrefixCodeRange(65, 4),
2237
+ new PrefixCodeRange(81, 4),
2238
+ new PrefixCodeRange(97, 4),
2239
+ new PrefixCodeRange(113, 5),
2240
+ new PrefixCodeRange(145, 5),
2241
+ new PrefixCodeRange(177, 5),
2242
+ new PrefixCodeRange(209, 5),
2243
+ new PrefixCodeRange(241, 6),
2244
+ new PrefixCodeRange(305, 6),
2245
+ new PrefixCodeRange(369, 7),
2246
+ new PrefixCodeRange(497, 8),
2247
+ new PrefixCodeRange(753, 9),
2248
+ new PrefixCodeRange(1265, 10),
2249
+ new PrefixCodeRange(2289, 11),
2250
+ new PrefixCodeRange(4337, 12),
2251
+ new PrefixCodeRange(8433, 13),
2252
+ new PrefixCodeRange(16625, 24)
2253
+ ];
2254
+ exports.kInsertLengthPrefixCode = [
2255
+ new PrefixCodeRange(0, 0),
2256
+ new PrefixCodeRange(1, 0),
2257
+ new PrefixCodeRange(2, 0),
2258
+ new PrefixCodeRange(3, 0),
2259
+ new PrefixCodeRange(4, 0),
2260
+ new PrefixCodeRange(5, 0),
2261
+ new PrefixCodeRange(6, 1),
2262
+ new PrefixCodeRange(8, 1),
2263
+ new PrefixCodeRange(10, 2),
2264
+ new PrefixCodeRange(14, 2),
2265
+ new PrefixCodeRange(18, 3),
2266
+ new PrefixCodeRange(26, 3),
2267
+ new PrefixCodeRange(34, 4),
2268
+ new PrefixCodeRange(50, 4),
2269
+ new PrefixCodeRange(66, 5),
2270
+ new PrefixCodeRange(98, 5),
2271
+ new PrefixCodeRange(130, 6),
2272
+ new PrefixCodeRange(194, 7),
2273
+ new PrefixCodeRange(322, 8),
2274
+ new PrefixCodeRange(578, 9),
2275
+ new PrefixCodeRange(1090, 10),
2276
+ new PrefixCodeRange(2114, 12),
2277
+ new PrefixCodeRange(6210, 14),
2278
+ new PrefixCodeRange(22594, 24)
2279
+ ];
2280
+ exports.kCopyLengthPrefixCode = [
2281
+ new PrefixCodeRange(2, 0),
2282
+ new PrefixCodeRange(3, 0),
2283
+ new PrefixCodeRange(4, 0),
2284
+ new PrefixCodeRange(5, 0),
2285
+ new PrefixCodeRange(6, 0),
2286
+ new PrefixCodeRange(7, 0),
2287
+ new PrefixCodeRange(8, 0),
2288
+ new PrefixCodeRange(9, 0),
2289
+ new PrefixCodeRange(10, 1),
2290
+ new PrefixCodeRange(12, 1),
2291
+ new PrefixCodeRange(14, 2),
2292
+ new PrefixCodeRange(18, 2),
2293
+ new PrefixCodeRange(22, 3),
2294
+ new PrefixCodeRange(30, 3),
2295
+ new PrefixCodeRange(38, 4),
2296
+ new PrefixCodeRange(54, 4),
2297
+ new PrefixCodeRange(70, 5),
2298
+ new PrefixCodeRange(102, 5),
2299
+ new PrefixCodeRange(134, 6),
2300
+ new PrefixCodeRange(198, 7),
2301
+ new PrefixCodeRange(326, 8),
2302
+ new PrefixCodeRange(582, 9),
2303
+ new PrefixCodeRange(1094, 10),
2304
+ new PrefixCodeRange(2118, 24)
2305
+ ];
2306
+ exports.kInsertRangeLut = [
2307
+ 0,
2308
+ 0,
2309
+ 8,
2310
+ 8,
2311
+ 0,
2312
+ 16,
2313
+ 8,
2314
+ 16,
2315
+ 16
2316
+ ];
2317
+ exports.kCopyRangeLut = [
2318
+ 0,
2319
+ 8,
2320
+ 0,
2321
+ 8,
2322
+ 16,
2323
+ 0,
2324
+ 16,
2325
+ 8,
2326
+ 16
2327
+ ];
2328
+ }));
2329
+
2330
+ //#endregion
2331
+ //#region node_modules/brotli/dec/transform.js
2332
+ var require_transform = /* @__PURE__ */ __commonJSMin(((exports) => {
2333
+ var BrotliDictionary = require_dictionary();
2334
+ var kIdentity = 0;
2335
+ var kOmitLast1 = 1;
2336
+ var kOmitLast2 = 2;
2337
+ var kOmitLast3 = 3;
2338
+ var kOmitLast4 = 4;
2339
+ var kOmitLast5 = 5;
2340
+ var kOmitLast6 = 6;
2341
+ var kOmitLast7 = 7;
2342
+ var kOmitLast8 = 8;
2343
+ var kOmitLast9 = 9;
2344
+ var kUppercaseFirst = 10;
2345
+ var kUppercaseAll = 11;
2346
+ var kOmitFirst1 = 12;
2347
+ var kOmitFirst2 = 13;
2348
+ var kOmitFirst3 = 14;
2349
+ var kOmitFirst4 = 15;
2350
+ var kOmitFirst5 = 16;
2351
+ var kOmitFirst6 = 17;
2352
+ var kOmitFirst7 = 18;
2353
+ var kOmitFirst9 = 20;
2354
+ function Transform(prefix, transform, suffix) {
2355
+ this.prefix = new Uint8Array(prefix.length);
2356
+ this.transform = transform;
2357
+ this.suffix = new Uint8Array(suffix.length);
2358
+ for (var i = 0; i < prefix.length; i++) this.prefix[i] = prefix.charCodeAt(i);
2359
+ for (var i = 0; i < suffix.length; i++) this.suffix[i] = suffix.charCodeAt(i);
2360
+ }
2361
+ var kTransforms = [
2362
+ new Transform("", kIdentity, ""),
2363
+ new Transform("", kIdentity, " "),
2364
+ new Transform(" ", kIdentity, " "),
2365
+ new Transform("", kOmitFirst1, ""),
2366
+ new Transform("", kUppercaseFirst, " "),
2367
+ new Transform("", kIdentity, " the "),
2368
+ new Transform(" ", kIdentity, ""),
2369
+ new Transform("s ", kIdentity, " "),
2370
+ new Transform("", kIdentity, " of "),
2371
+ new Transform("", kUppercaseFirst, ""),
2372
+ new Transform("", kIdentity, " and "),
2373
+ new Transform("", kOmitFirst2, ""),
2374
+ new Transform("", kOmitLast1, ""),
2375
+ new Transform(", ", kIdentity, " "),
2376
+ new Transform("", kIdentity, ", "),
2377
+ new Transform(" ", kUppercaseFirst, " "),
2378
+ new Transform("", kIdentity, " in "),
2379
+ new Transform("", kIdentity, " to "),
2380
+ new Transform("e ", kIdentity, " "),
2381
+ new Transform("", kIdentity, "\""),
2382
+ new Transform("", kIdentity, "."),
2383
+ new Transform("", kIdentity, "\">"),
2384
+ new Transform("", kIdentity, "\n"),
2385
+ new Transform("", kOmitLast3, ""),
2386
+ new Transform("", kIdentity, "]"),
2387
+ new Transform("", kIdentity, " for "),
2388
+ new Transform("", kOmitFirst3, ""),
2389
+ new Transform("", kOmitLast2, ""),
2390
+ new Transform("", kIdentity, " a "),
2391
+ new Transform("", kIdentity, " that "),
2392
+ new Transform(" ", kUppercaseFirst, ""),
2393
+ new Transform("", kIdentity, ". "),
2394
+ new Transform(".", kIdentity, ""),
2395
+ new Transform(" ", kIdentity, ", "),
2396
+ new Transform("", kOmitFirst4, ""),
2397
+ new Transform("", kIdentity, " with "),
2398
+ new Transform("", kIdentity, "'"),
2399
+ new Transform("", kIdentity, " from "),
2400
+ new Transform("", kIdentity, " by "),
2401
+ new Transform("", kOmitFirst5, ""),
2402
+ new Transform("", kOmitFirst6, ""),
2403
+ new Transform(" the ", kIdentity, ""),
2404
+ new Transform("", kOmitLast4, ""),
2405
+ new Transform("", kIdentity, ". The "),
2406
+ new Transform("", kUppercaseAll, ""),
2407
+ new Transform("", kIdentity, " on "),
2408
+ new Transform("", kIdentity, " as "),
2409
+ new Transform("", kIdentity, " is "),
2410
+ new Transform("", kOmitLast7, ""),
2411
+ new Transform("", kOmitLast1, "ing "),
2412
+ new Transform("", kIdentity, "\n "),
2413
+ new Transform("", kIdentity, ":"),
2414
+ new Transform(" ", kIdentity, ". "),
2415
+ new Transform("", kIdentity, "ed "),
2416
+ new Transform("", kOmitFirst9, ""),
2417
+ new Transform("", kOmitFirst7, ""),
2418
+ new Transform("", kOmitLast6, ""),
2419
+ new Transform("", kIdentity, "("),
2420
+ new Transform("", kUppercaseFirst, ", "),
2421
+ new Transform("", kOmitLast8, ""),
2422
+ new Transform("", kIdentity, " at "),
2423
+ new Transform("", kIdentity, "ly "),
2424
+ new Transform(" the ", kIdentity, " of "),
2425
+ new Transform("", kOmitLast5, ""),
2426
+ new Transform("", kOmitLast9, ""),
2427
+ new Transform(" ", kUppercaseFirst, ", "),
2428
+ new Transform("", kUppercaseFirst, "\""),
2429
+ new Transform(".", kIdentity, "("),
2430
+ new Transform("", kUppercaseAll, " "),
2431
+ new Transform("", kUppercaseFirst, "\">"),
2432
+ new Transform("", kIdentity, "=\""),
2433
+ new Transform(" ", kIdentity, "."),
2434
+ new Transform(".com/", kIdentity, ""),
2435
+ new Transform(" the ", kIdentity, " of the "),
2436
+ new Transform("", kUppercaseFirst, "'"),
2437
+ new Transform("", kIdentity, ". This "),
2438
+ new Transform("", kIdentity, ","),
2439
+ new Transform(".", kIdentity, " "),
2440
+ new Transform("", kUppercaseFirst, "("),
2441
+ new Transform("", kUppercaseFirst, "."),
2442
+ new Transform("", kIdentity, " not "),
2443
+ new Transform(" ", kIdentity, "=\""),
2444
+ new Transform("", kIdentity, "er "),
2445
+ new Transform(" ", kUppercaseAll, " "),
2446
+ new Transform("", kIdentity, "al "),
2447
+ new Transform(" ", kUppercaseAll, ""),
2448
+ new Transform("", kIdentity, "='"),
2449
+ new Transform("", kUppercaseAll, "\""),
2450
+ new Transform("", kUppercaseFirst, ". "),
2451
+ new Transform(" ", kIdentity, "("),
2452
+ new Transform("", kIdentity, "ful "),
2453
+ new Transform(" ", kUppercaseFirst, ". "),
2454
+ new Transform("", kIdentity, "ive "),
2455
+ new Transform("", kIdentity, "less "),
2456
+ new Transform("", kUppercaseAll, "'"),
2457
+ new Transform("", kIdentity, "est "),
2458
+ new Transform(" ", kUppercaseFirst, "."),
2459
+ new Transform("", kUppercaseAll, "\">"),
2460
+ new Transform(" ", kIdentity, "='"),
2461
+ new Transform("", kUppercaseFirst, ","),
2462
+ new Transform("", kIdentity, "ize "),
2463
+ new Transform("", kUppercaseAll, "."),
2464
+ new Transform("Â\xA0", kIdentity, ""),
2465
+ new Transform(" ", kIdentity, ","),
2466
+ new Transform("", kUppercaseFirst, "=\""),
2467
+ new Transform("", kUppercaseAll, "=\""),
2468
+ new Transform("", kIdentity, "ous "),
2469
+ new Transform("", kUppercaseAll, ", "),
2470
+ new Transform("", kUppercaseFirst, "='"),
2471
+ new Transform(" ", kUppercaseFirst, ","),
2472
+ new Transform(" ", kUppercaseAll, "=\""),
2473
+ new Transform(" ", kUppercaseAll, ", "),
2474
+ new Transform("", kUppercaseAll, ","),
2475
+ new Transform("", kUppercaseAll, "("),
2476
+ new Transform("", kUppercaseAll, ". "),
2477
+ new Transform(" ", kUppercaseAll, "."),
2478
+ new Transform("", kUppercaseAll, "='"),
2479
+ new Transform(" ", kUppercaseAll, ". "),
2480
+ new Transform(" ", kUppercaseFirst, "=\""),
2481
+ new Transform(" ", kUppercaseAll, "='"),
2482
+ new Transform(" ", kUppercaseFirst, "='")
2483
+ ];
2484
+ exports.kTransforms = kTransforms;
2485
+ exports.kNumTransforms = kTransforms.length;
2486
+ function ToUpperCase(p, i) {
2487
+ if (p[i] < 192) {
2488
+ if (p[i] >= 97 && p[i] <= 122) p[i] ^= 32;
2489
+ return 1;
2490
+ }
2491
+ if (p[i] < 224) {
2492
+ p[i + 1] ^= 32;
2493
+ return 2;
2494
+ }
2495
+ p[i + 2] ^= 5;
2496
+ return 3;
2497
+ }
2498
+ exports.transformDictionaryWord = function(dst, idx, word, len, transform) {
2499
+ var prefix = kTransforms[transform].prefix;
2500
+ var suffix = kTransforms[transform].suffix;
2501
+ var t = kTransforms[transform].transform;
2502
+ var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);
2503
+ var i = 0;
2504
+ var start_idx = idx;
2505
+ var uppercase;
2506
+ if (skip > len) skip = len;
2507
+ var prefix_pos = 0;
2508
+ while (prefix_pos < prefix.length) dst[idx++] = prefix[prefix_pos++];
2509
+ word += skip;
2510
+ len -= skip;
2511
+ if (t <= kOmitLast9) len -= t;
2512
+ for (i = 0; i < len; i++) dst[idx++] = BrotliDictionary.dictionary[word + i];
2513
+ uppercase = idx - len;
2514
+ if (t === kUppercaseFirst) ToUpperCase(dst, uppercase);
2515
+ else if (t === kUppercaseAll) while (len > 0) {
2516
+ var step = ToUpperCase(dst, uppercase);
2517
+ uppercase += step;
2518
+ len -= step;
2519
+ }
2520
+ var suffix_pos = 0;
2521
+ while (suffix_pos < suffix.length) dst[idx++] = suffix[suffix_pos++];
2522
+ return idx - start_idx;
2523
+ };
2524
+ }));
2525
+
2526
+ //#endregion
2527
+ //#region node_modules/brotli/dec/decode.js
2528
+ var require_decode = /* @__PURE__ */ __commonJSMin(((exports) => {
2529
+ var BrotliInput = require_streams().BrotliInput;
2530
+ var BrotliOutput = require_streams().BrotliOutput;
2531
+ var BrotliBitReader = require_bit_reader();
2532
+ var BrotliDictionary = require_dictionary();
2533
+ var HuffmanCode = require_huffman().HuffmanCode;
2534
+ var BrotliBuildHuffmanTable = require_huffman().BrotliBuildHuffmanTable;
2535
+ var Context = require_context();
2536
+ var Prefix = require_prefix();
2537
+ var Transform = require_transform();
2538
+ var kDefaultCodeLength = 8;
2539
+ var kCodeLengthRepeatCode = 16;
2540
+ var kNumLiteralCodes = 256;
2541
+ var kNumInsertAndCopyCodes = 704;
2542
+ var kNumBlockLengthCodes = 26;
2543
+ var kLiteralContextBits = 6;
2544
+ var kDistanceContextBits = 2;
2545
+ var HUFFMAN_TABLE_BITS = 8;
2546
+ var HUFFMAN_TABLE_MASK = 255;
2547
+ var HUFFMAN_MAX_TABLE_SIZE = 1080;
2548
+ var CODE_LENGTH_CODES = 18;
2549
+ var kCodeLengthCodeOrder = new Uint8Array([
2550
+ 1,
2551
+ 2,
2552
+ 3,
2553
+ 4,
2554
+ 0,
2555
+ 5,
2556
+ 17,
2557
+ 6,
2558
+ 16,
2559
+ 7,
2560
+ 8,
2561
+ 9,
2562
+ 10,
2563
+ 11,
2564
+ 12,
2565
+ 13,
2566
+ 14,
2567
+ 15
2568
+ ]);
2569
+ var NUM_DISTANCE_SHORT_CODES = 16;
2570
+ var kDistanceShortCodeIndexOffset = new Uint8Array([
2571
+ 3,
2572
+ 2,
2573
+ 1,
2574
+ 0,
2575
+ 3,
2576
+ 3,
2577
+ 3,
2578
+ 3,
2579
+ 3,
2580
+ 3,
2581
+ 2,
2582
+ 2,
2583
+ 2,
2584
+ 2,
2585
+ 2,
2586
+ 2
2587
+ ]);
2588
+ var kDistanceShortCodeValueOffset = new Int8Array([
2589
+ 0,
2590
+ 0,
2591
+ 0,
2592
+ 0,
2593
+ -1,
2594
+ 1,
2595
+ -2,
2596
+ 2,
2597
+ -3,
2598
+ 3,
2599
+ -1,
2600
+ 1,
2601
+ -2,
2602
+ 2,
2603
+ -3,
2604
+ 3
2605
+ ]);
2606
+ var kMaxHuffmanTableSize = new Uint16Array([
2607
+ 256,
2608
+ 402,
2609
+ 436,
2610
+ 468,
2611
+ 500,
2612
+ 534,
2613
+ 566,
2614
+ 598,
2615
+ 630,
2616
+ 662,
2617
+ 694,
2618
+ 726,
2619
+ 758,
2620
+ 790,
2621
+ 822,
2622
+ 854,
2623
+ 886,
2624
+ 920,
2625
+ 952,
2626
+ 984,
2627
+ 1016,
2628
+ 1048,
2629
+ 1080
2630
+ ]);
2631
+ function DecodeWindowBits(br) {
2632
+ var n;
2633
+ if (br.readBits(1) === 0) return 16;
2634
+ n = br.readBits(3);
2635
+ if (n > 0) return 17 + n;
2636
+ n = br.readBits(3);
2637
+ if (n > 0) return 8 + n;
2638
+ return 17;
2639
+ }
2640
+ function DecodeVarLenUint8(br) {
2641
+ if (br.readBits(1)) {
2642
+ var nbits = br.readBits(3);
2643
+ if (nbits === 0) return 1;
2644
+ else return br.readBits(nbits) + (1 << nbits);
2645
+ }
2646
+ return 0;
2647
+ }
2648
+ function MetaBlockLength() {
2649
+ this.meta_block_length = 0;
2650
+ this.input_end = 0;
2651
+ this.is_uncompressed = 0;
2652
+ this.is_metadata = false;
2653
+ }
2654
+ function DecodeMetaBlockLength(br) {
2655
+ var out = new MetaBlockLength();
2656
+ var size_nibbles;
2657
+ var size_bytes;
2658
+ var i;
2659
+ out.input_end = br.readBits(1);
2660
+ if (out.input_end && br.readBits(1)) return out;
2661
+ size_nibbles = br.readBits(2) + 4;
2662
+ if (size_nibbles === 7) {
2663
+ out.is_metadata = true;
2664
+ if (br.readBits(1) !== 0) throw new Error("Invalid reserved bit");
2665
+ size_bytes = br.readBits(2);
2666
+ if (size_bytes === 0) return out;
2667
+ for (i = 0; i < size_bytes; i++) {
2668
+ var next_byte = br.readBits(8);
2669
+ if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0) throw new Error("Invalid size byte");
2670
+ out.meta_block_length |= next_byte << i * 8;
2671
+ }
2672
+ } else for (i = 0; i < size_nibbles; ++i) {
2673
+ var next_nibble = br.readBits(4);
2674
+ if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0) throw new Error("Invalid size nibble");
2675
+ out.meta_block_length |= next_nibble << i * 4;
2676
+ }
2677
+ ++out.meta_block_length;
2678
+ if (!out.input_end && !out.is_metadata) out.is_uncompressed = br.readBits(1);
2679
+ return out;
2680
+ }
2681
+ function ReadSymbol(table, index, br) {
2682
+ var nbits;
2683
+ br.fillBitWindow();
2684
+ index += br.val_ >>> br.bit_pos_ & HUFFMAN_TABLE_MASK;
2685
+ nbits = table[index].bits - HUFFMAN_TABLE_BITS;
2686
+ if (nbits > 0) {
2687
+ br.bit_pos_ += HUFFMAN_TABLE_BITS;
2688
+ index += table[index].value;
2689
+ index += br.val_ >>> br.bit_pos_ & (1 << nbits) - 1;
2690
+ }
2691
+ br.bit_pos_ += table[index].bits;
2692
+ return table[index].value;
2693
+ }
2694
+ function ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {
2695
+ var symbol = 0;
2696
+ var prev_code_len = kDefaultCodeLength;
2697
+ var repeat = 0;
2698
+ var repeat_code_len = 0;
2699
+ var space = 32768;
2700
+ var table = [];
2701
+ for (var i = 0; i < 32; i++) table.push(new HuffmanCode(0, 0));
2702
+ BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);
2703
+ while (symbol < num_symbols && space > 0) {
2704
+ var p = 0;
2705
+ var code_len;
2706
+ br.readMoreInput();
2707
+ br.fillBitWindow();
2708
+ p += br.val_ >>> br.bit_pos_ & 31;
2709
+ br.bit_pos_ += table[p].bits;
2710
+ code_len = table[p].value & 255;
2711
+ if (code_len < kCodeLengthRepeatCode) {
2712
+ repeat = 0;
2713
+ code_lengths[symbol++] = code_len;
2714
+ if (code_len !== 0) {
2715
+ prev_code_len = code_len;
2716
+ space -= 32768 >> code_len;
2717
+ }
2718
+ } else {
2719
+ var extra_bits = code_len - 14;
2720
+ var old_repeat;
2721
+ var repeat_delta;
2722
+ var new_len = 0;
2723
+ if (code_len === kCodeLengthRepeatCode) new_len = prev_code_len;
2724
+ if (repeat_code_len !== new_len) {
2725
+ repeat = 0;
2726
+ repeat_code_len = new_len;
2727
+ }
2728
+ old_repeat = repeat;
2729
+ if (repeat > 0) {
2730
+ repeat -= 2;
2731
+ repeat <<= extra_bits;
2732
+ }
2733
+ repeat += br.readBits(extra_bits) + 3;
2734
+ repeat_delta = repeat - old_repeat;
2735
+ if (symbol + repeat_delta > num_symbols) throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");
2736
+ for (var x = 0; x < repeat_delta; x++) code_lengths[symbol + x] = repeat_code_len;
2737
+ symbol += repeat_delta;
2738
+ if (repeat_code_len !== 0) space -= repeat_delta << 15 - repeat_code_len;
2739
+ }
2740
+ }
2741
+ if (space !== 0) throw new Error("[ReadHuffmanCodeLengths] space = " + space);
2742
+ for (; symbol < num_symbols; symbol++) code_lengths[symbol] = 0;
2743
+ }
2744
+ function ReadHuffmanCode(alphabet_size, tables, table, br) {
2745
+ var table_size = 0;
2746
+ var simple_code_or_skip;
2747
+ var code_lengths = new Uint8Array(alphabet_size);
2748
+ br.readMoreInput();
2749
+ simple_code_or_skip = br.readBits(2);
2750
+ if (simple_code_or_skip === 1) {
2751
+ var i;
2752
+ var max_bits_counter = alphabet_size - 1;
2753
+ var max_bits = 0;
2754
+ var symbols = new Int32Array(4);
2755
+ var num_symbols = br.readBits(2) + 1;
2756
+ while (max_bits_counter) {
2757
+ max_bits_counter >>= 1;
2758
+ ++max_bits;
2759
+ }
2760
+ for (i = 0; i < num_symbols; ++i) {
2761
+ symbols[i] = br.readBits(max_bits) % alphabet_size;
2762
+ code_lengths[symbols[i]] = 2;
2763
+ }
2764
+ code_lengths[symbols[0]] = 1;
2765
+ switch (num_symbols) {
2766
+ case 1: break;
2767
+ case 3:
2768
+ if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[1] === symbols[2]) throw new Error("[ReadHuffmanCode] invalid symbols");
2769
+ break;
2770
+ case 2:
2771
+ if (symbols[0] === symbols[1]) throw new Error("[ReadHuffmanCode] invalid symbols");
2772
+ code_lengths[symbols[1]] = 1;
2773
+ break;
2774
+ case 4:
2775
+ if (symbols[0] === symbols[1] || symbols[0] === symbols[2] || symbols[0] === symbols[3] || symbols[1] === symbols[2] || symbols[1] === symbols[3] || symbols[2] === symbols[3]) throw new Error("[ReadHuffmanCode] invalid symbols");
2776
+ if (br.readBits(1)) {
2777
+ code_lengths[symbols[2]] = 3;
2778
+ code_lengths[symbols[3]] = 3;
2779
+ } else code_lengths[symbols[0]] = 2;
2780
+ break;
2781
+ }
2782
+ } else {
2783
+ var i;
2784
+ var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);
2785
+ var space = 32;
2786
+ var num_codes = 0;
2787
+ var huff = [
2788
+ new HuffmanCode(2, 0),
2789
+ new HuffmanCode(2, 4),
2790
+ new HuffmanCode(2, 3),
2791
+ new HuffmanCode(3, 2),
2792
+ new HuffmanCode(2, 0),
2793
+ new HuffmanCode(2, 4),
2794
+ new HuffmanCode(2, 3),
2795
+ new HuffmanCode(4, 1),
2796
+ new HuffmanCode(2, 0),
2797
+ new HuffmanCode(2, 4),
2798
+ new HuffmanCode(2, 3),
2799
+ new HuffmanCode(3, 2),
2800
+ new HuffmanCode(2, 0),
2801
+ new HuffmanCode(2, 4),
2802
+ new HuffmanCode(2, 3),
2803
+ new HuffmanCode(4, 5)
2804
+ ];
2805
+ for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {
2806
+ var code_len_idx = kCodeLengthCodeOrder[i];
2807
+ var p = 0;
2808
+ var v;
2809
+ br.fillBitWindow();
2810
+ p += br.val_ >>> br.bit_pos_ & 15;
2811
+ br.bit_pos_ += huff[p].bits;
2812
+ v = huff[p].value;
2813
+ code_length_code_lengths[code_len_idx] = v;
2814
+ if (v !== 0) {
2815
+ space -= 32 >> v;
2816
+ ++num_codes;
2817
+ }
2818
+ }
2819
+ if (!(num_codes === 1 || space === 0)) throw new Error("[ReadHuffmanCode] invalid num_codes or space");
2820
+ ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);
2821
+ }
2822
+ table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);
2823
+ if (table_size === 0) throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");
2824
+ return table_size;
2825
+ }
2826
+ function ReadBlockLength(table, index, br) {
2827
+ var code;
2828
+ var nbits;
2829
+ code = ReadSymbol(table, index, br);
2830
+ nbits = Prefix.kBlockLengthPrefixCode[code].nbits;
2831
+ return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);
2832
+ }
2833
+ function TranslateShortCodes(code, ringbuffer, index) {
2834
+ var val;
2835
+ if (code < NUM_DISTANCE_SHORT_CODES) {
2836
+ index += kDistanceShortCodeIndexOffset[code];
2837
+ index &= 3;
2838
+ val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];
2839
+ } else val = code - NUM_DISTANCE_SHORT_CODES + 1;
2840
+ return val;
2841
+ }
2842
+ function MoveToFront(v, index) {
2843
+ var value = v[index];
2844
+ var i = index;
2845
+ for (; i; --i) v[i] = v[i - 1];
2846
+ v[0] = value;
2847
+ }
2848
+ function InverseMoveToFrontTransform(v, v_len) {
2849
+ var mtf = new Uint8Array(256);
2850
+ var i;
2851
+ for (i = 0; i < 256; ++i) mtf[i] = i;
2852
+ for (i = 0; i < v_len; ++i) {
2853
+ var index = v[i];
2854
+ v[i] = mtf[index];
2855
+ if (index) MoveToFront(mtf, index);
2856
+ }
2857
+ }
2858
+ function HuffmanTreeGroup(alphabet_size, num_htrees) {
2859
+ this.alphabet_size = alphabet_size;
2860
+ this.num_htrees = num_htrees;
2861
+ this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[alphabet_size + 31 >>> 5]);
2862
+ this.htrees = new Uint32Array(num_htrees);
2863
+ }
2864
+ HuffmanTreeGroup.prototype.decode = function(br) {
2865
+ var i;
2866
+ var table_size;
2867
+ var next = 0;
2868
+ for (i = 0; i < this.num_htrees; ++i) {
2869
+ this.htrees[i] = next;
2870
+ table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);
2871
+ next += table_size;
2872
+ }
2873
+ };
2874
+ function DecodeContextMap(context_map_size, br) {
2875
+ var out = {
2876
+ num_htrees: null,
2877
+ context_map: null
2878
+ };
2879
+ var use_rle_for_zeros;
2880
+ var max_run_length_prefix = 0;
2881
+ var table;
2882
+ var i;
2883
+ br.readMoreInput();
2884
+ var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;
2885
+ var context_map = out.context_map = new Uint8Array(context_map_size);
2886
+ if (num_htrees <= 1) return out;
2887
+ use_rle_for_zeros = br.readBits(1);
2888
+ if (use_rle_for_zeros) max_run_length_prefix = br.readBits(4) + 1;
2889
+ table = [];
2890
+ for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) table[i] = new HuffmanCode(0, 0);
2891
+ ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);
2892
+ for (i = 0; i < context_map_size;) {
2893
+ var code;
2894
+ br.readMoreInput();
2895
+ code = ReadSymbol(table, 0, br);
2896
+ if (code === 0) {
2897
+ context_map[i] = 0;
2898
+ ++i;
2899
+ } else if (code <= max_run_length_prefix) {
2900
+ var reps = 1 + (1 << code) + br.readBits(code);
2901
+ while (--reps) {
2902
+ if (i >= context_map_size) throw new Error("[DecodeContextMap] i >= context_map_size");
2903
+ context_map[i] = 0;
2904
+ ++i;
2905
+ }
2906
+ } else {
2907
+ context_map[i] = code - max_run_length_prefix;
2908
+ ++i;
2909
+ }
2910
+ }
2911
+ if (br.readBits(1)) InverseMoveToFrontTransform(context_map, context_map_size);
2912
+ return out;
2913
+ }
2914
+ function DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {
2915
+ var ringbuffer = tree_type * 2;
2916
+ var index = tree_type;
2917
+ var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);
2918
+ var block_type;
2919
+ if (type_code === 0) block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];
2920
+ else if (type_code === 1) block_type = ringbuffers[ringbuffer + (indexes[index] - 1 & 1)] + 1;
2921
+ else block_type = type_code - 2;
2922
+ if (block_type >= max_block_type) block_type -= max_block_type;
2923
+ block_types[tree_type] = block_type;
2924
+ ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;
2925
+ ++indexes[index];
2926
+ }
2927
+ function CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {
2928
+ var rb_size = ringbuffer_mask + 1;
2929
+ var rb_pos = pos & ringbuffer_mask;
2930
+ var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;
2931
+ var nbytes;
2932
+ if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {
2933
+ while (len-- > 0) {
2934
+ br.readMoreInput();
2935
+ ringbuffer[rb_pos++] = br.readBits(8);
2936
+ if (rb_pos === rb_size) {
2937
+ output.write(ringbuffer, rb_size);
2938
+ rb_pos = 0;
2939
+ }
2940
+ }
2941
+ return;
2942
+ }
2943
+ if (br.bit_end_pos_ < 32) throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");
2944
+ while (br.bit_pos_ < 32) {
2945
+ ringbuffer[rb_pos] = br.val_ >>> br.bit_pos_;
2946
+ br.bit_pos_ += 8;
2947
+ ++rb_pos;
2948
+ --len;
2949
+ }
2950
+ nbytes = br.bit_end_pos_ - br.bit_pos_ >> 3;
2951
+ if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {
2952
+ var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;
2953
+ for (var x = 0; x < tail; x++) ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
2954
+ nbytes -= tail;
2955
+ rb_pos += tail;
2956
+ len -= tail;
2957
+ br_pos = 0;
2958
+ }
2959
+ for (var x = 0; x < nbytes; x++) ringbuffer[rb_pos + x] = br.buf_[br_pos + x];
2960
+ rb_pos += nbytes;
2961
+ len -= nbytes;
2962
+ if (rb_pos >= rb_size) {
2963
+ output.write(ringbuffer, rb_size);
2964
+ rb_pos -= rb_size;
2965
+ for (var x = 0; x < rb_pos; x++) ringbuffer[x] = ringbuffer[rb_size + x];
2966
+ }
2967
+ while (rb_pos + len >= rb_size) {
2968
+ nbytes = rb_size - rb_pos;
2969
+ if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");
2970
+ output.write(ringbuffer, rb_size);
2971
+ len -= nbytes;
2972
+ rb_pos = 0;
2973
+ }
2974
+ if (br.input_.read(ringbuffer, rb_pos, len) < len) throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");
2975
+ br.reset();
2976
+ }
2977
+ function JumpToByteBoundary(br) {
2978
+ var new_bit_pos = br.bit_pos_ + 7 & -8;
2979
+ return br.readBits(new_bit_pos - br.bit_pos_) == 0;
2980
+ }
2981
+ function BrotliDecompressedSize(buffer) {
2982
+ var br = new BrotliBitReader(new BrotliInput(buffer));
2983
+ DecodeWindowBits(br);
2984
+ return DecodeMetaBlockLength(br).meta_block_length;
2985
+ }
2986
+ exports.BrotliDecompressedSize = BrotliDecompressedSize;
2987
+ function BrotliDecompressBuffer(buffer, output_size) {
2988
+ var input = new BrotliInput(buffer);
2989
+ if (output_size == null) output_size = BrotliDecompressedSize(buffer);
2990
+ var output = new BrotliOutput(new Uint8Array(output_size));
2991
+ BrotliDecompress(input, output);
2992
+ if (output.pos < output.buffer.length) output.buffer = output.buffer.subarray(0, output.pos);
2993
+ return output.buffer;
2994
+ }
2995
+ exports.BrotliDecompressBuffer = BrotliDecompressBuffer;
2996
+ function BrotliDecompress(input, output) {
2997
+ var i;
2998
+ var pos = 0;
2999
+ var input_end = 0;
3000
+ var window_bits = 0;
3001
+ var max_backward_distance;
3002
+ var max_distance = 0;
3003
+ var ringbuffer_size;
3004
+ var ringbuffer_mask;
3005
+ var ringbuffer;
3006
+ var ringbuffer_end;
3007
+ var dist_rb = [
3008
+ 16,
3009
+ 15,
3010
+ 11,
3011
+ 4
3012
+ ];
3013
+ var dist_rb_idx = 0;
3014
+ var prev_byte1 = 0;
3015
+ var prev_byte2 = 0;
3016
+ var hgroup = [
3017
+ new HuffmanTreeGroup(0, 0),
3018
+ new HuffmanTreeGroup(0, 0),
3019
+ new HuffmanTreeGroup(0, 0)
3020
+ ];
3021
+ var block_type_trees;
3022
+ var block_len_trees;
3023
+ var br;
3024
+ var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;
3025
+ br = new BrotliBitReader(input);
3026
+ window_bits = DecodeWindowBits(br);
3027
+ max_backward_distance = (1 << window_bits) - 16;
3028
+ ringbuffer_size = 1 << window_bits;
3029
+ ringbuffer_mask = ringbuffer_size - 1;
3030
+ ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);
3031
+ ringbuffer_end = ringbuffer_size;
3032
+ block_type_trees = [];
3033
+ block_len_trees = [];
3034
+ for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {
3035
+ block_type_trees[x] = new HuffmanCode(0, 0);
3036
+ block_len_trees[x] = new HuffmanCode(0, 0);
3037
+ }
3038
+ while (!input_end) {
3039
+ var meta_block_remaining_len = 0;
3040
+ var is_uncompressed;
3041
+ var block_length = [
3042
+ 1 << 28,
3043
+ 1 << 28,
3044
+ 1 << 28
3045
+ ];
3046
+ var block_type = [0];
3047
+ var num_block_types = [
3048
+ 1,
3049
+ 1,
3050
+ 1
3051
+ ];
3052
+ var block_type_rb = [
3053
+ 0,
3054
+ 1,
3055
+ 0,
3056
+ 1,
3057
+ 0,
3058
+ 1
3059
+ ];
3060
+ var block_type_rb_index = [0];
3061
+ var distance_postfix_bits;
3062
+ var num_direct_distance_codes;
3063
+ var distance_postfix_mask;
3064
+ var num_distance_codes;
3065
+ var context_map = null;
3066
+ var context_modes = null;
3067
+ var num_literal_htrees;
3068
+ var dist_context_map = null;
3069
+ var num_dist_htrees;
3070
+ var context_offset = 0;
3071
+ var context_map_slice = null;
3072
+ var literal_htree_index = 0;
3073
+ var dist_context_offset = 0;
3074
+ var dist_context_map_slice = null;
3075
+ var dist_htree_index = 0;
3076
+ var context_lookup_offset1 = 0;
3077
+ var context_lookup_offset2 = 0;
3078
+ var context_mode;
3079
+ var htree_command;
3080
+ for (i = 0; i < 3; ++i) {
3081
+ hgroup[i].codes = null;
3082
+ hgroup[i].htrees = null;
3083
+ }
3084
+ br.readMoreInput();
3085
+ var _out = DecodeMetaBlockLength(br);
3086
+ meta_block_remaining_len = _out.meta_block_length;
3087
+ if (pos + meta_block_remaining_len > output.buffer.length) {
3088
+ var tmp = new Uint8Array(pos + meta_block_remaining_len);
3089
+ tmp.set(output.buffer);
3090
+ output.buffer = tmp;
3091
+ }
3092
+ input_end = _out.input_end;
3093
+ is_uncompressed = _out.is_uncompressed;
3094
+ if (_out.is_metadata) {
3095
+ JumpToByteBoundary(br);
3096
+ for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {
3097
+ br.readMoreInput();
3098
+ br.readBits(8);
3099
+ }
3100
+ continue;
3101
+ }
3102
+ if (meta_block_remaining_len === 0) continue;
3103
+ if (is_uncompressed) {
3104
+ br.bit_pos_ = br.bit_pos_ + 7 & -8;
3105
+ CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos, ringbuffer, ringbuffer_mask, br);
3106
+ pos += meta_block_remaining_len;
3107
+ continue;
3108
+ }
3109
+ for (i = 0; i < 3; ++i) {
3110
+ num_block_types[i] = DecodeVarLenUint8(br) + 1;
3111
+ if (num_block_types[i] >= 2) {
3112
+ ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
3113
+ ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
3114
+ block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);
3115
+ block_type_rb_index[i] = 1;
3116
+ }
3117
+ }
3118
+ br.readMoreInput();
3119
+ distance_postfix_bits = br.readBits(2);
3120
+ num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);
3121
+ distance_postfix_mask = (1 << distance_postfix_bits) - 1;
3122
+ num_distance_codes = num_direct_distance_codes + (48 << distance_postfix_bits);
3123
+ context_modes = new Uint8Array(num_block_types[0]);
3124
+ for (i = 0; i < num_block_types[0]; ++i) {
3125
+ br.readMoreInput();
3126
+ context_modes[i] = br.readBits(2) << 1;
3127
+ }
3128
+ var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);
3129
+ num_literal_htrees = _o1.num_htrees;
3130
+ context_map = _o1.context_map;
3131
+ var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);
3132
+ num_dist_htrees = _o2.num_htrees;
3133
+ dist_context_map = _o2.context_map;
3134
+ hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);
3135
+ hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);
3136
+ hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);
3137
+ for (i = 0; i < 3; ++i) hgroup[i].decode(br);
3138
+ context_map_slice = 0;
3139
+ dist_context_map_slice = 0;
3140
+ context_mode = context_modes[block_type[0]];
3141
+ context_lookup_offset1 = Context.lookupOffsets[context_mode];
3142
+ context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
3143
+ htree_command = hgroup[1].htrees[0];
3144
+ while (meta_block_remaining_len > 0) {
3145
+ var cmd_code;
3146
+ var range_idx;
3147
+ var insert_code;
3148
+ var copy_code;
3149
+ var insert_length;
3150
+ var copy_length;
3151
+ var distance_code;
3152
+ var distance;
3153
+ var context;
3154
+ var j;
3155
+ var copy_dst;
3156
+ br.readMoreInput();
3157
+ if (block_length[1] === 0) {
3158
+ DecodeBlockType(num_block_types[1], block_type_trees, 1, block_type, block_type_rb, block_type_rb_index, br);
3159
+ block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);
3160
+ htree_command = hgroup[1].htrees[block_type[1]];
3161
+ }
3162
+ --block_length[1];
3163
+ cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);
3164
+ range_idx = cmd_code >> 6;
3165
+ if (range_idx >= 2) {
3166
+ range_idx -= 2;
3167
+ distance_code = -1;
3168
+ } else distance_code = 0;
3169
+ insert_code = Prefix.kInsertRangeLut[range_idx] + (cmd_code >> 3 & 7);
3170
+ copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);
3171
+ insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset + br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);
3172
+ copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset + br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);
3173
+ prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
3174
+ prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
3175
+ for (j = 0; j < insert_length; ++j) {
3176
+ br.readMoreInput();
3177
+ if (block_length[0] === 0) {
3178
+ DecodeBlockType(num_block_types[0], block_type_trees, 0, block_type, block_type_rb, block_type_rb_index, br);
3179
+ block_length[0] = ReadBlockLength(block_len_trees, 0, br);
3180
+ context_offset = block_type[0] << kLiteralContextBits;
3181
+ context_map_slice = context_offset;
3182
+ context_mode = context_modes[block_type[0]];
3183
+ context_lookup_offset1 = Context.lookupOffsets[context_mode];
3184
+ context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];
3185
+ }
3186
+ context = Context.lookup[context_lookup_offset1 + prev_byte1] | Context.lookup[context_lookup_offset2 + prev_byte2];
3187
+ literal_htree_index = context_map[context_map_slice + context];
3188
+ --block_length[0];
3189
+ prev_byte2 = prev_byte1;
3190
+ prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);
3191
+ ringbuffer[pos & ringbuffer_mask] = prev_byte1;
3192
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) output.write(ringbuffer, ringbuffer_size);
3193
+ ++pos;
3194
+ }
3195
+ meta_block_remaining_len -= insert_length;
3196
+ if (meta_block_remaining_len <= 0) break;
3197
+ if (distance_code < 0) {
3198
+ var context;
3199
+ br.readMoreInput();
3200
+ if (block_length[2] === 0) {
3201
+ DecodeBlockType(num_block_types[2], block_type_trees, 2, block_type, block_type_rb, block_type_rb_index, br);
3202
+ block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);
3203
+ dist_context_offset = block_type[2] << kDistanceContextBits;
3204
+ dist_context_map_slice = dist_context_offset;
3205
+ }
3206
+ --block_length[2];
3207
+ context = (copy_length > 4 ? 3 : copy_length - 2) & 255;
3208
+ dist_htree_index = dist_context_map[dist_context_map_slice + context];
3209
+ distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);
3210
+ if (distance_code >= num_direct_distance_codes) {
3211
+ var nbits;
3212
+ var postfix;
3213
+ var offset;
3214
+ distance_code -= num_direct_distance_codes;
3215
+ postfix = distance_code & distance_postfix_mask;
3216
+ distance_code >>= distance_postfix_bits;
3217
+ nbits = (distance_code >> 1) + 1;
3218
+ offset = (2 + (distance_code & 1) << nbits) - 4;
3219
+ distance_code = num_direct_distance_codes + (offset + br.readBits(nbits) << distance_postfix_bits) + postfix;
3220
+ }
3221
+ }
3222
+ distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);
3223
+ if (distance < 0) throw new Error("[BrotliDecompress] invalid distance");
3224
+ if (pos < max_backward_distance && max_distance !== max_backward_distance) max_distance = pos;
3225
+ else max_distance = max_backward_distance;
3226
+ copy_dst = pos & ringbuffer_mask;
3227
+ if (distance > max_distance) if (copy_length >= BrotliDictionary.minDictionaryWordLength && copy_length <= BrotliDictionary.maxDictionaryWordLength) {
3228
+ var offset = BrotliDictionary.offsetsByLength[copy_length];
3229
+ var word_id = distance - max_distance - 1;
3230
+ var shift = BrotliDictionary.sizeBitsByLength[copy_length];
3231
+ var word_idx = word_id & (1 << shift) - 1;
3232
+ var transform_idx = word_id >> shift;
3233
+ offset += word_idx * copy_length;
3234
+ if (transform_idx < Transform.kNumTransforms) {
3235
+ var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);
3236
+ copy_dst += len;
3237
+ pos += len;
3238
+ meta_block_remaining_len -= len;
3239
+ if (copy_dst >= ringbuffer_end) {
3240
+ output.write(ringbuffer, ringbuffer_size);
3241
+ for (var _x = 0; _x < copy_dst - ringbuffer_end; _x++) ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];
3242
+ }
3243
+ } else throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
3244
+ } else throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
3245
+ else {
3246
+ if (distance_code > 0) {
3247
+ dist_rb[dist_rb_idx & 3] = distance;
3248
+ ++dist_rb_idx;
3249
+ }
3250
+ if (copy_length > meta_block_remaining_len) throw new Error("Invalid backward reference. pos: " + pos + " distance: " + distance + " len: " + copy_length + " bytes left: " + meta_block_remaining_len);
3251
+ for (j = 0; j < copy_length; ++j) {
3252
+ ringbuffer[pos & ringbuffer_mask] = ringbuffer[pos - distance & ringbuffer_mask];
3253
+ if ((pos & ringbuffer_mask) === ringbuffer_mask) output.write(ringbuffer, ringbuffer_size);
3254
+ ++pos;
3255
+ --meta_block_remaining_len;
3256
+ }
3257
+ }
3258
+ prev_byte1 = ringbuffer[pos - 1 & ringbuffer_mask];
3259
+ prev_byte2 = ringbuffer[pos - 2 & ringbuffer_mask];
3260
+ }
3261
+ pos &= 1073741823;
3262
+ }
3263
+ output.write(ringbuffer, pos & ringbuffer_mask);
3264
+ }
3265
+ exports.BrotliDecompress = BrotliDecompress;
3266
+ BrotliDictionary.init();
3267
+ }));
3268
+
3269
+ //#endregion
3270
+ //#region node_modules/brotli/decompress.js
3271
+ var require_decompress = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3272
+ module.exports = require_decode().BrotliDecompressBuffer;
3273
+ }));
3274
+
3275
+ //#endregion
3276
+ //#region src/brotli.ts
3277
+ var import_decompress = /* @__PURE__ */ __toESM(require_decompress(), 1);
3278
+ let nativeBrotli = null;
3279
+ let browserBrotli = null;
3280
+ function tryLoadNative() {
3281
+ try {
3282
+ if (typeof process !== "undefined" && process.versions?.node) {
3283
+ const zlib = __require("node:zlib");
3284
+ if (typeof zlib.brotliDecompressSync === "function") return (buf) => {
3285
+ const result = zlib.brotliDecompressSync(buf);
3286
+ return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
3287
+ };
3288
+ }
3289
+ } catch {}
3290
+ return null;
3291
+ }
3292
+ function tryLoadBrowserBrotli() {
3293
+ try {
3294
+ if (typeof DecompressionStream !== "undefined") {
3295
+ new DecompressionStream("brotli");
3296
+ return async (buf) => {
3297
+ const arrayBuf = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
3298
+ const decompressed = new Blob([arrayBuf]).stream().pipeThrough(new DecompressionStream("brotli"));
3299
+ return new Uint8Array(await new Response(decompressed).arrayBuffer());
3300
+ };
3301
+ }
3302
+ } catch {}
3303
+ return null;
3304
+ }
3305
+ nativeBrotli = tryLoadNative();
3306
+ browserBrotli = tryLoadBrowserBrotli();
3307
+ async function decompress(data) {
3308
+ if (nativeBrotli) return nativeBrotli(data);
3309
+ if (browserBrotli) return browserBrotli(data);
3310
+ return (0, import_decompress.default)(data);
3311
+ }
3312
+ function decompressPure(data) {
3313
+ return (0, import_decompress.default)(data);
3314
+ }
3315
+ const hasNative = nativeBrotli !== null;
3316
+
3317
+ //#endregion
3318
+ //#region src/buffer.ts
3319
+ var Buffer$1 = class {
3320
+ constructor(data, offset = 0, length) {
3321
+ this.pos = 0;
3322
+ if (data instanceof Uint8Array) {
3323
+ const len = length ?? data.byteLength - offset;
3324
+ this.u8 = data.subarray(offset, offset + len);
3325
+ this.view = new DataView(data.buffer, data.byteOffset + offset, len);
3326
+ } else {
3327
+ const len = length ?? data.byteLength - offset;
3328
+ this.u8 = new Uint8Array(data, offset, len);
3329
+ this.view = new DataView(data, offset, len);
3330
+ }
3331
+ }
3332
+ get offset() {
3333
+ return this.pos;
3334
+ }
3335
+ get length() {
3336
+ return this.u8.byteLength;
3337
+ }
3338
+ get remaining() {
3339
+ return this.u8.byteLength - this.pos;
3340
+ }
3341
+ get buffer() {
3342
+ return this.view;
3343
+ }
3344
+ skip(n) {
3345
+ if (this.pos + n > this.u8.byteLength || this.pos + n < this.pos) return false;
3346
+ this.pos += n;
3347
+ return true;
3348
+ }
3349
+ seek(offset) {
3350
+ if (offset > this.u8.byteLength || offset < 0) return false;
3351
+ this.pos = offset;
3352
+ return true;
3353
+ }
3354
+ readU8() {
3355
+ if (this.pos + 1 > this.u8.byteLength) return null;
3356
+ return this.u8[this.pos++];
3357
+ }
3358
+ readU16() {
3359
+ if (this.pos + 2 > this.u8.byteLength) return null;
3360
+ const idx = this.pos;
3361
+ this.pos = idx + 2;
3362
+ return this.u8[idx] << 8 | this.u8[idx + 1];
3363
+ }
3364
+ readS16() {
3365
+ if (this.pos + 2 > this.u8.byteLength) return null;
3366
+ const idx = this.pos;
3367
+ this.pos = idx + 2;
3368
+ const val = this.u8[idx] << 8 | this.u8[idx + 1];
3369
+ return (val & 32768) !== 0 ? val - 65536 : val;
3370
+ }
3371
+ readU32() {
3372
+ if (this.pos + 4 > this.u8.byteLength) return null;
3373
+ const idx = this.pos;
3374
+ this.pos = idx + 4;
3375
+ return this.u8[idx] * 16777216 + (this.u8[idx + 1] << 16 | this.u8[idx + 2] << 8 | this.u8[idx + 3]) >>> 0;
3376
+ }
3377
+ readS32() {
3378
+ if (this.pos + 4 > this.u8.byteLength) return null;
3379
+ const idx = this.pos;
3380
+ this.pos = idx + 4;
3381
+ return this.u8[idx] << 24 | this.u8[idx + 1] << 16 | this.u8[idx + 2] << 8 | this.u8[idx + 3];
3382
+ }
3383
+ readBytes(n) {
3384
+ if (this.pos + n > this.u8.byteLength || n < 0) return null;
3385
+ const result = this.u8.subarray(this.pos, this.pos + n);
3386
+ this.pos += n;
3387
+ return result;
3388
+ }
3389
+ peekU8(offset = 0) {
3390
+ const idx = this.pos + offset;
3391
+ if (idx >= this.u8.byteLength || idx < 0) return null;
3392
+ return this.u8[idx];
3393
+ }
3394
+ subarray(offset, length) {
3395
+ if (offset + length > this.u8.byteLength || offset < 0 || length < 0) return null;
3396
+ return this.u8.subarray(offset, offset + length);
3397
+ }
3398
+ };
3399
+
3400
+ //#endregion
3401
+ //#region src/known-tags.ts
3402
+ const KNOWN_TAGS = [
3403
+ 1668112752,
3404
+ 1751474532,
3405
+ 1751672161,
3406
+ 1752003704,
3407
+ 1835104368,
3408
+ 1851878757,
3409
+ 1330851634,
3410
+ 1886352244,
3411
+ 1668707360,
3412
+ 1718642541,
3413
+ 1735162214,
3414
+ 1819239265,
3415
+ 1886545264,
3416
+ 1128678944,
3417
+ 1448038983,
3418
+ 1161970772,
3419
+ 1161972803,
3420
+ 1734439792,
3421
+ 1751412088,
3422
+ 1801810542,
3423
+ 1280594760,
3424
+ 1346587732,
3425
+ 1447316824,
3426
+ 1986553185,
3427
+ 1986884728,
3428
+ 1111577413,
3429
+ 1195656518,
3430
+ 1196445523,
3431
+ 1196643650,
3432
+ 1161974595,
3433
+ 1246975046,
3434
+ 1296127048,
3435
+ 1128416340,
3436
+ 1128418371,
3437
+ 1129270354,
3438
+ 1129333068,
3439
+ 1398163232,
3440
+ 1935829368,
3441
+ 1633906292,
3442
+ 1635148146,
3443
+ 1650745716,
3444
+ 1651273571,
3445
+ 1651731566,
3446
+ 1668702578,
3447
+ 1717859171,
3448
+ 1717920116,
3449
+ 1718449272,
3450
+ 1719034226,
3451
+ 1735811442,
3452
+ 1752396921,
3453
+ 1786082164,
3454
+ 1818452338,
3455
+ 1836020340,
3456
+ 1836020344,
3457
+ 1869636196,
3458
+ 1886547824,
3459
+ 1953653099,
3460
+ 1516335206,
3461
+ 1399417958,
3462
+ 1198285172,
3463
+ 1198288739,
3464
+ 1181049204,
3465
+ 1399417964
3466
+ ];
3467
+ const TAG_GLYF = 1735162214;
3468
+ const TAG_LOCA = 1819239265;
3469
+ const TAG_HMTX = 1752003704;
3470
+ const TAG_HHEA = 1751672161;
3471
+ const TAG_HEAD = 1751474532;
3472
+ const TTC_FLAVOR = 1953784678;
3473
+ const WOFF2_SIGNATURE = 2001684018;
3474
+ const WOFF2_FLAGS_TRANSFORM = 32;
3475
+ function tagToString(tag) {
3476
+ return String.fromCharCode(tag >> 24 & 255, tag >> 16 & 255, tag >> 8 & 255, tag & 255);
3477
+ }
3478
+
3479
+ //#endregion
3480
+ //#region src/variable-length.ts
3481
+ function read255UShort(buf) {
3482
+ const code = buf.readU8();
3483
+ if (code === null) return null;
3484
+ if (code === 253) return buf.readU16();
3485
+ else if (code === 255) {
3486
+ const next = buf.readU8();
3487
+ if (next === null) return null;
3488
+ return 253 + next;
3489
+ } else if (code === 254) {
3490
+ const next = buf.readU8();
3491
+ if (next === null) return null;
3492
+ return 506 + next;
3493
+ } else return code;
3494
+ }
3495
+ function readBase128(buf) {
3496
+ let result = 0;
3497
+ for (let i = 0; i < 5; i++) {
3498
+ const code = buf.readU8();
3499
+ if (code === null) return null;
3500
+ if (i === 0 && code === 128) return null;
3501
+ if ((result & 4261412864) !== 0) return null;
3502
+ result = result << 7 | code & 127;
3503
+ if ((code & 128) === 0) return result;
3504
+ }
3505
+ return null;
3506
+ }
3507
+
3508
+ //#endregion
3509
+ //#region src/decode.ts
3510
+ const SFNT_HEADER_SIZE = 12;
3511
+ const SFNT_ENTRY_SIZE = 16;
3512
+ const FLAG_ON_CURVE = 1;
3513
+ const FLAG_X_SHORT = 2;
3514
+ const FLAG_Y_SHORT = 4;
3515
+ const FLAG_REPEAT = 8;
3516
+ const FLAG_X_SAME = 16;
3517
+ const FLAG_Y_SAME = 32;
3518
+ const FLAG_OVERLAP_SIMPLE = 64;
3519
+ async function decode(data, options) {
3520
+ const input = data instanceof Uint8Array ? data : new Uint8Array(data);
3521
+ const header = readHeader(new Buffer$1(input), input.byteLength);
3522
+ if (!header) throw new Error("Failed to read WOFF2 header");
3523
+ const compressedData = input.subarray(header.compressedOffset, header.compressedOffset + header.compressedLength);
3524
+ const decompressed = options?.forcePureBrotli ? decompressPure(compressedData) : await decompress(compressedData);
3525
+ if (!decompressed || decompressed.byteLength !== header.uncompressedSize) throw new Error(`Brotli decompression failed: expected ${header.uncompressedSize} bytes, got ${decompressed?.byteLength ?? 0}`);
3526
+ let outputSize = computeOffsetToFirstTable(header);
3527
+ for (const table of header.tables) {
3528
+ outputSize += table.origLength;
3529
+ outputSize += (4 - table.origLength % 4) % 4;
3530
+ }
3531
+ const output = new Uint8Array(outputSize);
3532
+ const outView = new DataView(output.buffer);
3533
+ const fontInfos = writeHeaders(header, output, outView);
3534
+ const writtenTables = /* @__PURE__ */ new Map();
3535
+ let nextTableOffset = computeOffsetToFirstTable(header);
3536
+ if (header.ttcFonts.length > 0) for (let i = 0; i < header.ttcFonts.length; i++) nextTableOffset = reconstructFont(decompressed, header, i, fontInfos[i], output, outView, writtenTables, nextTableOffset);
3537
+ else reconstructFont(decompressed, header, 0, fontInfos[0], output, outView, writtenTables, nextTableOffset);
3538
+ return output;
3539
+ }
3540
+ function readHeader(buf, totalLength) {
3541
+ if (buf.readU32() !== WOFF2_SIGNATURE) return null;
3542
+ const flavor = buf.readU32();
3543
+ if (flavor === null) return null;
3544
+ const length = buf.readU32();
3545
+ if (length === null || length !== totalLength) return null;
3546
+ const numTables = buf.readU16();
3547
+ if (numTables === null || numTables === 0) return null;
3548
+ if (!buf.skip(2)) return null;
3549
+ if (!buf.skip(4)) return null;
3550
+ const compressedLength = buf.readU32();
3551
+ if (compressedLength === null) return null;
3552
+ if (!buf.skip(4)) return null;
3553
+ const metaOffset = buf.readU32();
3554
+ const metaLength = buf.readU32();
3555
+ const metaOrigLength = buf.readU32();
3556
+ if (metaOffset === null || metaLength === null || metaOrigLength === null) return null;
3557
+ if (metaOffset !== 0) {
3558
+ if (metaOffset >= totalLength || totalLength - metaOffset < metaLength) return null;
3559
+ }
3560
+ const privOffset = buf.readU32();
3561
+ const privLength = buf.readU32();
3562
+ if (privOffset === null || privLength === null) return null;
3563
+ if (privOffset !== 0) {
3564
+ if (privOffset >= totalLength || totalLength - privOffset < privLength) return null;
3565
+ }
3566
+ const tables = readTableDirectory(buf, numTables);
3567
+ if (!tables) return null;
3568
+ const lastTable = tables[tables.length - 1];
3569
+ const uncompressedSize = lastTable.srcOffset + lastTable.srcLength;
3570
+ let headerVersion = 0;
3571
+ const ttcFonts = [];
3572
+ if (flavor === TTC_FLAVOR) {
3573
+ headerVersion = buf.readU32() ?? 0;
3574
+ if (headerVersion !== 65536 && headerVersion !== 131072) return null;
3575
+ const numFonts = read255UShort(buf);
3576
+ if (numFonts === null || numFonts === 0) return null;
3577
+ for (let i = 0; i < numFonts; i++) {
3578
+ const fontNumTables = read255UShort(buf);
3579
+ if (fontNumTables === null || fontNumTables === 0) return null;
3580
+ const fontFlavor = buf.readU32();
3581
+ if (fontFlavor === null) return null;
3582
+ const tableIndices = [];
3583
+ for (let j = 0; j < fontNumTables; j++) {
3584
+ const idx = read255UShort(buf);
3585
+ if (idx === null || idx >= tables.length) return null;
3586
+ tableIndices.push(idx);
3587
+ }
3588
+ ttcFonts.push({
3589
+ flavor: fontFlavor,
3590
+ dstOffset: 0,
3591
+ headerChecksum: 0,
3592
+ tableIndices
3593
+ });
3594
+ }
3595
+ }
3596
+ return {
3597
+ flavor,
3598
+ headerVersion,
3599
+ numTables,
3600
+ compressedOffset: buf.offset,
3601
+ compressedLength,
3602
+ uncompressedSize,
3603
+ tables,
3604
+ ttcFonts
3605
+ };
3606
+ }
3607
+ function readTableDirectory(buf, numTables) {
3608
+ const tables = [];
3609
+ let srcOffset = 0;
3610
+ for (let i = 0; i < numTables; i++) {
3611
+ const flagByte = buf.readU8();
3612
+ if (flagByte === null) return null;
3613
+ let tag;
3614
+ if ((flagByte & 63) === 63) {
3615
+ tag = buf.readU32() ?? 0;
3616
+ if (tag === 0) return null;
3617
+ } else tag = KNOWN_TAGS[flagByte & 63];
3618
+ const xformVersion = flagByte >> 6 & 3;
3619
+ let flags = 0;
3620
+ if (tag === TAG_GLYF || tag === TAG_LOCA) {
3621
+ if (xformVersion === 0) flags |= WOFF2_FLAGS_TRANSFORM;
3622
+ } else if (xformVersion !== 0) flags |= WOFF2_FLAGS_TRANSFORM;
3623
+ flags |= xformVersion;
3624
+ const origLength = readBase128(buf);
3625
+ if (origLength === null) return null;
3626
+ let transformLength = origLength;
3627
+ if ((flags & WOFF2_FLAGS_TRANSFORM) !== 0) {
3628
+ transformLength = readBase128(buf) ?? 0;
3629
+ if (transformLength === 0 && tag !== TAG_LOCA) return null;
3630
+ if (tag === TAG_LOCA && transformLength !== 0) return null;
3631
+ }
3632
+ tables.push({
3633
+ tag,
3634
+ flags,
3635
+ origLength,
3636
+ transformLength,
3637
+ srcOffset,
3638
+ srcLength: transformLength,
3639
+ dstOffset: 0,
3640
+ dstLength: origLength,
3641
+ key: `${tag}:${srcOffset}`
3642
+ });
3643
+ srcOffset += transformLength;
3644
+ }
3645
+ return tables;
3646
+ }
3647
+ function computeOffsetToFirstTable(header) {
3648
+ if (header.ttcFonts.length === 0) return SFNT_HEADER_SIZE + SFNT_ENTRY_SIZE * header.numTables;
3649
+ let offset = 12;
3650
+ offset += 4 * header.ttcFonts.length;
3651
+ if (header.headerVersion === 131072) offset += 12;
3652
+ for (const ttcFont of header.ttcFonts) {
3653
+ offset += SFNT_HEADER_SIZE;
3654
+ offset += SFNT_ENTRY_SIZE * ttcFont.tableIndices.length;
3655
+ }
3656
+ return offset;
3657
+ }
3658
+ function writeHeaders(header, output, outView) {
3659
+ const fontInfos = [];
3660
+ let offset = 0;
3661
+ if (header.ttcFonts.length > 0) {
3662
+ outView.setUint32(offset, header.flavor);
3663
+ offset += 4;
3664
+ outView.setUint32(offset, header.headerVersion);
3665
+ offset += 4;
3666
+ outView.setUint32(offset, header.ttcFonts.length);
3667
+ offset += 4;
3668
+ const offsetTableStart = offset;
3669
+ offset += 4 * header.ttcFonts.length;
3670
+ if (header.headerVersion === 131072) offset += 12;
3671
+ for (let i = 0; i < header.ttcFonts.length; i++) {
3672
+ const ttcFont = header.ttcFonts[i];
3673
+ outView.setUint32(offsetTableStart + i * 4, offset);
3674
+ ttcFont.dstOffset = offset;
3675
+ const numTables = ttcFont.tableIndices.length;
3676
+ offset = writeOffsetTable(outView, offset, ttcFont.flavor, numTables);
3677
+ const sortedIndices = [...ttcFont.tableIndices].sort((a, b) => header.tables[a].tag - header.tables[b].tag);
3678
+ const tableEntryByTag = /* @__PURE__ */ new Map();
3679
+ for (const tableIdx of sortedIndices) {
3680
+ const table = header.tables[tableIdx];
3681
+ tableEntryByTag.set(table.tag, offset);
3682
+ offset = writeTableEntry(outView, offset, table.tag);
3683
+ }
3684
+ ttcFont.tableIndices = sortedIndices;
3685
+ ttcFont.headerChecksum = computeChecksum(output, ttcFont.dstOffset, offset - ttcFont.dstOffset);
3686
+ fontInfos.push({
3687
+ numGlyphs: 0,
3688
+ indexFormat: 0,
3689
+ numHMetrics: 0,
3690
+ xMins: new Int16Array(0),
3691
+ tableEntryByTag
3692
+ });
3693
+ }
3694
+ } else {
3695
+ offset = writeOffsetTable(outView, offset, header.flavor, header.numTables);
3696
+ const sortedTables = [...header.tables].sort((a, b) => a.tag - b.tag);
3697
+ const tableEntryByTag = /* @__PURE__ */ new Map();
3698
+ for (const table of sortedTables) {
3699
+ tableEntryByTag.set(table.tag, offset);
3700
+ offset = writeTableEntry(outView, offset, table.tag);
3701
+ }
3702
+ fontInfos.push({
3703
+ numGlyphs: 0,
3704
+ indexFormat: 0,
3705
+ numHMetrics: 0,
3706
+ xMins: new Int16Array(0),
3707
+ tableEntryByTag
3708
+ });
3709
+ }
3710
+ return fontInfos;
3711
+ }
3712
+ function writeOffsetTable(view, offset, flavor, numTables) {
3713
+ view.setUint32(offset, flavor);
3714
+ view.setUint16(offset + 4, numTables);
3715
+ let maxPow2 = 0;
3716
+ while (1 << maxPow2 + 1 <= numTables) maxPow2++;
3717
+ const searchRange = (1 << maxPow2) * 16;
3718
+ view.setUint16(offset + 6, searchRange);
3719
+ view.setUint16(offset + 8, maxPow2);
3720
+ view.setUint16(offset + 10, numTables * 16 - searchRange);
3721
+ return offset + SFNT_HEADER_SIZE;
3722
+ }
3723
+ function writeTableEntry(view, offset, tag) {
3724
+ view.setUint32(offset, tag);
3725
+ view.setUint32(offset + 4, 0);
3726
+ view.setUint32(offset + 8, 0);
3727
+ view.setUint32(offset + 12, 0);
3728
+ return offset + SFNT_ENTRY_SIZE;
3729
+ }
3730
+ function reconstructFont(decompressed, header, fontIndex, fontInfo, output, outView, writtenTables, dstOffset) {
3731
+ const sortedTables = [...header.ttcFonts.length > 0 ? header.ttcFonts[fontIndex].tableIndices.map((i) => header.tables[i]) : header.tables].sort((a, b) => a.tag - b.tag);
3732
+ const glyfTable = sortedTables.find((t) => t.tag === TAG_GLYF);
3733
+ const locaTable = sortedTables.find((t) => t.tag === TAG_LOCA);
3734
+ const hheaTable = sortedTables.find((t) => t.tag === TAG_HHEA);
3735
+ if (hheaTable) {
3736
+ const hheaData = decompressed.subarray(hheaTable.srcOffset, hheaTable.srcOffset + hheaTable.srcLength);
3737
+ if (hheaData.byteLength >= 36) fontInfo.numHMetrics = new DataView(hheaData.buffer, hheaData.byteOffset).getUint16(34);
3738
+ }
3739
+ let fontChecksum = header.ttcFonts.length > 0 ? header.ttcFonts[fontIndex].headerChecksum : 0;
3740
+ const isTTC = header.ttcFonts.length > 0;
3741
+ for (const table of sortedTables) {
3742
+ const entryOffset = fontInfo.tableEntryByTag.get(table.tag);
3743
+ if (entryOffset === void 0) continue;
3744
+ const tKey = table.key;
3745
+ const existing = writtenTables.get(tKey);
3746
+ if (existing) {
3747
+ updateTableEntry(outView, entryOffset, existing.checksum, existing.dstOffset, existing.dstLength);
3748
+ if (isTTC) {
3749
+ fontChecksum = fontChecksum + existing.checksum >>> 0;
3750
+ fontChecksum = fontChecksum + computeTableEntryChecksum(existing.checksum, existing.dstOffset, existing.dstLength) >>> 0;
3751
+ }
3752
+ continue;
3753
+ }
3754
+ table.dstOffset = dstOffset;
3755
+ let tableData;
3756
+ let checksum;
3757
+ if ((table.flags & WOFF2_FLAGS_TRANSFORM) !== 0) if (table.tag === TAG_GLYF && glyfTable && locaTable) {
3758
+ const result = reconstructGlyf(decompressed, glyfTable, locaTable, fontInfo);
3759
+ tableData = result.glyfData;
3760
+ glyfTable.dstLength = result.glyfData.byteLength;
3761
+ locaTable.dstOffset = dstOffset + pad4(result.glyfData.byteLength);
3762
+ locaTable.dstLength = result.locaData.byteLength;
3763
+ output.set(tableData, dstOffset);
3764
+ checksum = computeChecksum(output, dstOffset, tableData.byteLength);
3765
+ updateTableEntry(outView, entryOffset, checksum, dstOffset, tableData.byteLength);
3766
+ if (isTTC) {
3767
+ fontChecksum = fontChecksum + checksum >>> 0;
3768
+ fontChecksum = fontChecksum + computeTableEntryChecksum(checksum, dstOffset, tableData.byteLength) >>> 0;
3769
+ }
3770
+ writtenTables.set(tKey, {
3771
+ dstOffset,
3772
+ dstLength: tableData.byteLength,
3773
+ checksum
3774
+ });
3775
+ dstOffset += pad4(tableData.byteLength);
3776
+ const locaEntryOffset = fontInfo.tableEntryByTag.get(TAG_LOCA);
3777
+ if (locaEntryOffset !== void 0) {
3778
+ output.set(result.locaData, dstOffset);
3779
+ const locaChecksum = computeChecksum(output, dstOffset, result.locaData.byteLength);
3780
+ updateTableEntry(outView, locaEntryOffset, locaChecksum, dstOffset, result.locaData.byteLength);
3781
+ if (isTTC) {
3782
+ fontChecksum = fontChecksum + locaChecksum >>> 0;
3783
+ fontChecksum = fontChecksum + computeTableEntryChecksum(locaChecksum, dstOffset, result.locaData.byteLength) >>> 0;
3784
+ }
3785
+ writtenTables.set(locaTable.key, {
3786
+ dstOffset,
3787
+ dstLength: result.locaData.byteLength,
3788
+ checksum: locaChecksum
3789
+ });
3790
+ dstOffset += pad4(result.locaData.byteLength);
3791
+ }
3792
+ continue;
3793
+ } else if (table.tag === TAG_LOCA) continue;
3794
+ else if (table.tag === TAG_HMTX) tableData = reconstructHmtx(decompressed, table, fontInfo.numGlyphs, fontInfo.numHMetrics, fontInfo.xMins);
3795
+ else throw new Error(`Unknown transform for table ${tagToString(table.tag)}`);
3796
+ else {
3797
+ tableData = decompressed.subarray(table.srcOffset, table.srcOffset + table.srcLength);
3798
+ if (table.tag === TAG_HEAD && tableData.byteLength >= 12) {
3799
+ tableData = new Uint8Array(tableData);
3800
+ new DataView(tableData.buffer, tableData.byteOffset).setUint32(8, 0);
3801
+ }
3802
+ }
3803
+ output.set(tableData, dstOffset);
3804
+ checksum = computeChecksum(output, dstOffset, tableData.byteLength);
3805
+ table.dstLength = tableData.byteLength;
3806
+ updateTableEntry(outView, entryOffset, checksum, dstOffset, tableData.byteLength);
3807
+ if (isTTC) {
3808
+ fontChecksum = fontChecksum + checksum >>> 0;
3809
+ fontChecksum = fontChecksum + computeTableEntryChecksum(checksum, dstOffset, tableData.byteLength) >>> 0;
3810
+ }
3811
+ writtenTables.set(tKey, {
3812
+ dstOffset,
3813
+ dstLength: tableData.byteLength,
3814
+ checksum
3815
+ });
3816
+ dstOffset += pad4(tableData.byteLength);
3817
+ }
3818
+ const headTable = sortedTables.find((t) => t.tag === TAG_HEAD);
3819
+ if (headTable) {
3820
+ const headEntry = writtenTables.get(headTable.key);
3821
+ if (headEntry && headEntry.dstLength >= 12) {
3822
+ const finalChecksum = isTTC ? fontChecksum : computeChecksum(output, 0, dstOffset);
3823
+ outView.setUint32(headEntry.dstOffset + 8, 2981146554 - finalChecksum >>> 0);
3824
+ }
3825
+ }
3826
+ return dstOffset;
3827
+ }
3828
+ function computeTableEntryChecksum(checksum, offset, length) {
3829
+ return checksum + offset + length >>> 0;
3830
+ }
3831
+ function makeByteStream(data, start, length) {
3832
+ return {
3833
+ data,
3834
+ pos: start,
3835
+ end: start + length
3836
+ };
3837
+ }
3838
+ function bsReadU8(stream) {
3839
+ if (stream.pos >= stream.end) throw new Error("Stream overflow");
3840
+ return stream.data[stream.pos++];
3841
+ }
3842
+ function bsReadU16(stream) {
3843
+ if (stream.pos + 2 > stream.end) throw new Error("Stream overflow");
3844
+ const idx = stream.pos;
3845
+ stream.pos = idx + 2;
3846
+ return stream.data[idx] << 8 | stream.data[idx + 1];
3847
+ }
3848
+ function bsReadS16(stream) {
3849
+ if (stream.pos + 2 > stream.end) throw new Error("Stream overflow");
3850
+ const idx = stream.pos;
3851
+ stream.pos = idx + 2;
3852
+ const val = stream.data[idx] << 8 | stream.data[idx + 1];
3853
+ return (val & 32768) !== 0 ? val - 65536 : val;
3854
+ }
3855
+ function fsReadU32(stream) {
3856
+ if (stream.pos + 4 > stream.end) throw new Error("Stream overflow");
3857
+ const idx = stream.pos;
3858
+ stream.pos = idx + 4;
3859
+ return stream.data[idx] * 16777216 + (stream.data[idx + 1] << 16 | stream.data[idx + 2] << 8 | stream.data[idx + 3]) >>> 0;
3860
+ }
3861
+ function bsSkip(stream, n) {
3862
+ if (stream.pos + n > stream.end || n < 0) throw new Error("Stream overflow");
3863
+ stream.pos += n;
3864
+ }
3865
+ function fsReadBytes(stream, n) {
3866
+ if (stream.pos + n > stream.end || n < 0) throw new Error("Stream overflow");
3867
+ const start = stream.pos;
3868
+ stream.pos += n;
3869
+ return stream.data.subarray(start, start + n);
3870
+ }
3871
+ function bsRead255UShort(stream) {
3872
+ const code = bsReadU8(stream);
3873
+ if (code === 253) return bsReadU16(stream);
3874
+ else if (code === 255) return 253 + bsReadU8(stream);
3875
+ else if (code === 254) return 506 + bsReadU8(stream);
3876
+ return code;
3877
+ }
3878
+ function reconstructGlyf(data, glyfTable, locaTable, fontInfo) {
3879
+ const headerStream = makeByteStream(data, glyfTable.srcOffset, glyfTable.transformLength);
3880
+ bsReadU16(headerStream);
3881
+ const optionFlags = bsReadU16(headerStream);
3882
+ const numGlyphs = bsReadU16(headerStream);
3883
+ const indexFormat = bsReadU16(headerStream);
3884
+ fontInfo.numGlyphs = numGlyphs;
3885
+ fontInfo.indexFormat = indexFormat;
3886
+ const nContourStreamSize = fsReadU32(headerStream);
3887
+ const nPointsStreamSize = fsReadU32(headerStream);
3888
+ const flagStreamSize = fsReadU32(headerStream);
3889
+ const glyphStreamSize = fsReadU32(headerStream);
3890
+ const compositeStreamSize = fsReadU32(headerStream);
3891
+ const bboxStreamSize = fsReadU32(headerStream);
3892
+ const instructionStreamSize = fsReadU32(headerStream);
3893
+ let offset = headerStream.pos;
3894
+ const nContourStream = makeByteStream(data, offset, nContourStreamSize);
3895
+ offset += nContourStreamSize;
3896
+ const nPointsStream = makeByteStream(data, offset, nPointsStreamSize);
3897
+ offset += nPointsStreamSize;
3898
+ const flagStream = makeByteStream(data, offset, flagStreamSize);
3899
+ offset += flagStreamSize;
3900
+ const glyphStream = makeByteStream(data, offset, glyphStreamSize);
3901
+ offset += glyphStreamSize;
3902
+ const compositeStream = makeByteStream(data, offset, compositeStreamSize);
3903
+ offset += compositeStreamSize;
3904
+ const bboxStream = makeByteStream(data, offset, bboxStreamSize);
3905
+ offset += bboxStreamSize;
3906
+ const instructionStream = makeByteStream(data, offset, instructionStreamSize);
3907
+ const hasOverlapBitmap = (optionFlags & 1) !== 0;
3908
+ let overlapBitmap = null;
3909
+ if (hasOverlapBitmap) {
3910
+ const overlapBitmapLength = numGlyphs + 7 >> 3;
3911
+ overlapBitmap = data.subarray(offset + instructionStreamSize, offset + instructionStreamSize + overlapBitmapLength);
3912
+ }
3913
+ const bboxBitmap = fsReadBytes(bboxStream, numGlyphs + 31 >> 5 << 2);
3914
+ let glyfOutput = new Uint8Array(glyfTable.origLength * 2);
3915
+ let glyfOffset = 0;
3916
+ const locaValues = new Uint32Array(numGlyphs + 1);
3917
+ fontInfo.xMins = new Int16Array(numGlyphs);
3918
+ let contourEndsScratch = new Uint16Array(128);
3919
+ let flagsScratch = new Uint8Array(512);
3920
+ let xScratch = new Uint8Array(512);
3921
+ let yScratch = new Uint8Array(512);
3922
+ for (let glyphId = 0; glyphId < numGlyphs; glyphId++) {
3923
+ locaValues[glyphId] = glyfOffset;
3924
+ const nContours = bsReadS16(nContourStream);
3925
+ const haveBbox = (bboxBitmap[glyphId >> 3] & 128 >> (glyphId & 7)) !== 0;
3926
+ if (nContours === 0) {
3927
+ if (haveBbox) throw new Error(`Empty glyph ${glyphId} has bbox`);
3928
+ continue;
3929
+ }
3930
+ if (nContours === -1) {
3931
+ if (!haveBbox) throw new Error(`Composite glyph ${glyphId} missing bbox`);
3932
+ const { compositeData, haveInstructions } = readCompositeGlyph(compositeStream);
3933
+ let instructionSize = 0;
3934
+ if (haveInstructions) instructionSize = bsRead255UShort(glyphStream);
3935
+ const glyphSize = 10 + compositeData.byteLength + (haveInstructions ? 2 + instructionSize : 0);
3936
+ ensureCapacity(glyphSize);
3937
+ writeInt16BE(glyfOutput, glyfOffset, -1);
3938
+ const bbox = fsReadBytes(bboxStream, 8);
3939
+ glyfOutput.set(bbox, glyfOffset + 2);
3940
+ fontInfo.xMins[glyphId] = readInt16BE(bbox, 0);
3941
+ glyfOutput.set(compositeData, glyfOffset + 10);
3942
+ if (haveInstructions) {
3943
+ const instrOffset = glyfOffset + 10 + compositeData.byteLength;
3944
+ writeUint16BE(glyfOutput, instrOffset, instructionSize);
3945
+ const instructions = fsReadBytes(instructionStream, instructionSize);
3946
+ glyfOutput.set(instructions, instrOffset + 2);
3947
+ }
3948
+ glyfOffset += glyphSize;
3949
+ glyfOffset = pad4(glyfOffset);
3950
+ } else {
3951
+ if (nContours > contourEndsScratch.length) contourEndsScratch = new Uint16Array(nContours * 2);
3952
+ let totalPoints = 0;
3953
+ let endPoint = -1;
3954
+ for (let i = 0; i < nContours; i++) {
3955
+ const n = bsRead255UShort(nPointsStream);
3956
+ totalPoints += n;
3957
+ endPoint += n;
3958
+ contourEndsScratch[i] = endPoint;
3959
+ }
3960
+ const scratchSize = totalPoints * 2;
3961
+ if (scratchSize > flagsScratch.length) flagsScratch = new Uint8Array(scratchSize);
3962
+ if (scratchSize > xScratch.length) xScratch = new Uint8Array(scratchSize);
3963
+ if (scratchSize > yScratch.length) yScratch = new Uint8Array(scratchSize);
3964
+ const encoded = encodeTripletsToScratch(flagStream, glyphStream, totalPoints, ((overlapBitmap?.[glyphId >> 3] ?? 0) & 128 >> (glyphId & 7)) !== 0, flagsScratch, xScratch, yScratch);
3965
+ const instructionSize = bsRead255UShort(glyphStream);
3966
+ const glyphSize = 10 + 2 * nContours + 2 + instructionSize + encoded.flagsLen + encoded.xLen + encoded.yLen;
3967
+ ensureCapacity(glyphSize);
3968
+ writeInt16BE(glyfOutput, glyfOffset, nContours);
3969
+ let xMin = 0;
3970
+ if (haveBbox) {
3971
+ const bbox = fsReadBytes(bboxStream, 8);
3972
+ glyfOutput.set(bbox, glyfOffset + 2);
3973
+ xMin = readInt16BE(bbox, 0);
3974
+ } else {
3975
+ writeInt16BE(glyfOutput, glyfOffset + 2, encoded.xMin);
3976
+ writeInt16BE(glyfOutput, glyfOffset + 4, encoded.yMin);
3977
+ writeInt16BE(glyfOutput, glyfOffset + 6, encoded.xMax);
3978
+ writeInt16BE(glyfOutput, glyfOffset + 8, encoded.yMax);
3979
+ xMin = encoded.xMin;
3980
+ }
3981
+ let writeOffset = glyfOffset + 10;
3982
+ for (let i = 0; i < nContours; i++) {
3983
+ writeUint16BE(glyfOutput, writeOffset, contourEndsScratch[i]);
3984
+ writeOffset += 2;
3985
+ }
3986
+ writeUint16BE(glyfOutput, writeOffset, instructionSize);
3987
+ writeOffset += 2;
3988
+ if (instructionSize > 0) {
3989
+ const instructions = fsReadBytes(instructionStream, instructionSize);
3990
+ glyfOutput.set(instructions, writeOffset);
3991
+ writeOffset += instructionSize;
3992
+ }
3993
+ glyfOutput.set(flagsScratch.subarray(0, encoded.flagsLen), writeOffset);
3994
+ writeOffset += encoded.flagsLen;
3995
+ glyfOutput.set(xScratch.subarray(0, encoded.xLen), writeOffset);
3996
+ writeOffset += encoded.xLen;
3997
+ glyfOutput.set(yScratch.subarray(0, encoded.yLen), writeOffset);
3998
+ fontInfo.xMins[glyphId] = xMin;
3999
+ glyfOffset += glyphSize;
4000
+ glyfOffset = pad4(glyfOffset);
4001
+ }
4002
+ }
4003
+ locaValues[numGlyphs] = glyfOffset;
4004
+ const locaSize = indexFormat ? (numGlyphs + 1) * 4 : (numGlyphs + 1) * 2;
4005
+ const locaData = new Uint8Array(locaSize);
4006
+ const locaView = new DataView(locaData.buffer);
4007
+ for (let i = 0; i <= numGlyphs; i++) if (indexFormat) locaView.setUint32(i * 4, locaValues[i]);
4008
+ else locaView.setUint16(i * 2, locaValues[i] >> 1);
4009
+ return {
4010
+ glyfData: glyfOutput.subarray(0, glyfOffset),
4011
+ locaData
4012
+ };
4013
+ function ensureCapacity(needed) {
4014
+ if (glyfOffset + needed > glyfOutput.byteLength) {
4015
+ const newOutput = new Uint8Array((glyfOffset + needed) * 2);
4016
+ newOutput.set(glyfOutput);
4017
+ glyfOutput = newOutput;
4018
+ }
4019
+ }
4020
+ }
4021
+ function readCompositeGlyph(stream) {
4022
+ const FLAG_ARG_1_AND_2_ARE_WORDS = 1;
4023
+ const FLAG_WE_HAVE_A_SCALE = 8;
4024
+ const FLAG_MORE_COMPONENTS = 32;
4025
+ const FLAG_WE_HAVE_AN_X_AND_Y_SCALE = 64;
4026
+ const FLAG_WE_HAVE_A_TWO_BY_TWO = 128;
4027
+ const FLAG_WE_HAVE_INSTRUCTIONS = 256;
4028
+ const startOffset = stream.pos;
4029
+ let haveInstructions = false;
4030
+ let flags = FLAG_MORE_COMPONENTS;
4031
+ while (flags & FLAG_MORE_COMPONENTS) {
4032
+ flags = bsReadU16(stream);
4033
+ haveInstructions = haveInstructions || (flags & FLAG_WE_HAVE_INSTRUCTIONS) !== 0;
4034
+ let argSize = 2;
4035
+ if (flags & FLAG_ARG_1_AND_2_ARE_WORDS) argSize += 4;
4036
+ else argSize += 2;
4037
+ if (flags & FLAG_WE_HAVE_A_SCALE) argSize += 2;
4038
+ else if (flags & FLAG_WE_HAVE_AN_X_AND_Y_SCALE) argSize += 4;
4039
+ else if (flags & FLAG_WE_HAVE_A_TWO_BY_TWO) argSize += 8;
4040
+ bsSkip(stream, argSize);
4041
+ }
4042
+ return {
4043
+ compositeData: stream.data.subarray(startOffset, stream.pos),
4044
+ haveInstructions
4045
+ };
4046
+ }
4047
+ function encodeTripletsToScratch(flagStream, glyphStream, nPoints, hasOverlapBit, flagsOut, xOut, yOut) {
4048
+ if (nPoints === 0) return {
4049
+ flagsLen: 0,
4050
+ xLen: 0,
4051
+ yLen: 0,
4052
+ xMin: 0,
4053
+ yMin: 0,
4054
+ xMax: 0,
4055
+ yMax: 0
4056
+ };
4057
+ let flagsLen = 0;
4058
+ let xLen = 0;
4059
+ let yLen = 0;
4060
+ let x = 0;
4061
+ let y = 0;
4062
+ let xMin = 0;
4063
+ let yMin = 0;
4064
+ let xMax = 0;
4065
+ let yMax = 0;
4066
+ let lastFlag = -1;
4067
+ let repeatCount = 0;
4068
+ const flagData = flagStream.data;
4069
+ let flagPos = flagStream.pos;
4070
+ const flagEnd = flagStream.end;
4071
+ const glyphData = glyphStream.data;
4072
+ let glyphPos = glyphStream.pos;
4073
+ const glyphEnd = glyphStream.end;
4074
+ for (let i = 0; i < nPoints; i++) {
4075
+ if (flagPos >= flagEnd) throw new Error("Stream overflow");
4076
+ const flag = flagData[flagPos++];
4077
+ const onCurve = (flag & 128) === 0;
4078
+ const flagLow = flag & 127;
4079
+ let dx;
4080
+ let dy;
4081
+ if (flagLow < 10) {
4082
+ dx = 0;
4083
+ if (glyphPos >= glyphEnd) throw new Error("Stream overflow");
4084
+ const b = glyphData[glyphPos++];
4085
+ dy = ((flagLow & 14) << 7) + b;
4086
+ if ((flagLow & 1) === 0) dy = -dy;
4087
+ } else if (flagLow < 20) {
4088
+ if (glyphPos >= glyphEnd) throw new Error("Stream overflow");
4089
+ const b = glyphData[glyphPos++];
4090
+ dx = ((flagLow - 10 & 14) << 7) + b;
4091
+ if ((flagLow & 1) === 0) dx = -dx;
4092
+ dy = 0;
4093
+ } else if (flagLow < 84) {
4094
+ if (glyphPos >= glyphEnd) throw new Error("Stream overflow");
4095
+ const b = glyphData[glyphPos++];
4096
+ const b0 = flagLow - 20;
4097
+ dx = 1 + (b0 & 48) + (b >> 4);
4098
+ dy = 1 + ((b0 & 12) << 2) + (b & 15);
4099
+ if ((flagLow & 1) === 0) dx = -dx;
4100
+ if ((flagLow & 2) === 0) dy = -dy;
4101
+ } else if (flagLow < 120) {
4102
+ if (glyphPos + 1 >= glyphEnd) throw new Error("Stream overflow");
4103
+ const b0 = glyphData[glyphPos++];
4104
+ const b1 = glyphData[glyphPos++];
4105
+ const idx = flagLow - 84;
4106
+ dx = 1 + ((idx / 12 | 0) << 8) + b0;
4107
+ dy = 1 + (idx % 12 >> 2 << 8) + b1;
4108
+ if ((flagLow & 1) === 0) dx = -dx;
4109
+ if ((flagLow & 2) === 0) dy = -dy;
4110
+ } else if (flagLow < 124) {
4111
+ if (glyphPos + 2 >= glyphEnd) throw new Error("Stream overflow");
4112
+ const b0 = glyphData[glyphPos++];
4113
+ const b1 = glyphData[glyphPos++];
4114
+ const b2 = glyphData[glyphPos++];
4115
+ dx = (b0 << 4) + (b1 >> 4);
4116
+ dy = ((b1 & 15) << 8) + b2;
4117
+ if ((flagLow & 1) === 0) dx = -dx;
4118
+ if ((flagLow & 2) === 0) dy = -dy;
4119
+ } else {
4120
+ if (glyphPos + 3 >= glyphEnd) throw new Error("Stream overflow");
4121
+ const b0 = glyphData[glyphPos++];
4122
+ const b1 = glyphData[glyphPos++];
4123
+ const b2 = glyphData[glyphPos++];
4124
+ const b3 = glyphData[glyphPos++];
4125
+ dx = (b0 << 8) + b1;
4126
+ dy = (b2 << 8) + b3;
4127
+ if ((flagLow & 1) === 0) dx = -dx;
4128
+ if ((flagLow & 2) === 0) dy = -dy;
4129
+ }
4130
+ x += dx;
4131
+ y += dy;
4132
+ if (i === 0) {
4133
+ xMin = xMax = x;
4134
+ yMin = yMax = y;
4135
+ } else {
4136
+ if (x < xMin) xMin = x;
4137
+ if (x > xMax) xMax = x;
4138
+ if (y < yMin) yMin = y;
4139
+ if (y > yMax) yMax = y;
4140
+ }
4141
+ let outFlag = onCurve ? FLAG_ON_CURVE : 0;
4142
+ if (hasOverlapBit && i === 0) outFlag |= FLAG_OVERLAP_SIMPLE;
4143
+ if (dx === 0) outFlag |= FLAG_X_SAME;
4144
+ else if (dx >= -255 && dx <= 255) {
4145
+ outFlag |= FLAG_X_SHORT;
4146
+ if (dx > 0) outFlag |= FLAG_X_SAME;
4147
+ xOut[xLen++] = dx > 0 ? dx : -dx;
4148
+ } else {
4149
+ xOut[xLen++] = dx >> 8 & 255;
4150
+ xOut[xLen++] = dx & 255;
4151
+ }
4152
+ if (dy === 0) outFlag |= FLAG_Y_SAME;
4153
+ else if (dy >= -255 && dy <= 255) {
4154
+ outFlag |= FLAG_Y_SHORT;
4155
+ if (dy > 0) outFlag |= FLAG_Y_SAME;
4156
+ yOut[yLen++] = dy > 0 ? dy : -dy;
4157
+ } else {
4158
+ yOut[yLen++] = dy >> 8 & 255;
4159
+ yOut[yLen++] = dy & 255;
4160
+ }
4161
+ if (outFlag === lastFlag && repeatCount < 255) {
4162
+ flagsOut[flagsLen - 1] |= FLAG_REPEAT;
4163
+ repeatCount++;
4164
+ } else {
4165
+ if (repeatCount > 0) {
4166
+ flagsOut[flagsLen++] = repeatCount;
4167
+ repeatCount = 0;
4168
+ }
4169
+ flagsOut[flagsLen++] = outFlag;
4170
+ lastFlag = outFlag;
4171
+ }
4172
+ }
4173
+ if (repeatCount > 0) flagsOut[flagsLen++] = repeatCount;
4174
+ flagStream.pos = flagPos;
4175
+ glyphStream.pos = glyphPos;
4176
+ return {
4177
+ flagsLen,
4178
+ xLen,
4179
+ yLen,
4180
+ xMin,
4181
+ yMin,
4182
+ xMax,
4183
+ yMax
4184
+ };
4185
+ }
4186
+ function reconstructHmtx(data, table, numGlyphs, numHMetrics, xMins) {
4187
+ const hmtxStream = makeByteStream(data, table.srcOffset, table.srcLength);
4188
+ const hmtxFlags = bsReadU8(hmtxStream);
4189
+ const hasProportionalLsbs = (hmtxFlags & 1) === 0;
4190
+ const hasMonospaceLsbs = (hmtxFlags & 2) === 0;
4191
+ const advanceWidths = new Uint16Array(numHMetrics);
4192
+ for (let i = 0; i < numHMetrics; i++) advanceWidths[i] = bsReadU16(hmtxStream);
4193
+ const lsbs = new Int16Array(numGlyphs);
4194
+ for (let i = 0; i < numHMetrics; i++) if (hasProportionalLsbs) lsbs[i] = bsReadS16(hmtxStream);
4195
+ else lsbs[i] = xMins[i];
4196
+ for (let i = numHMetrics; i < numGlyphs; i++) if (hasMonospaceLsbs) lsbs[i] = bsReadS16(hmtxStream);
4197
+ else lsbs[i] = xMins[i];
4198
+ const outputSize = numHMetrics * 4 + (numGlyphs - numHMetrics) * 2;
4199
+ const output = new Uint8Array(outputSize);
4200
+ let offset = 0;
4201
+ for (let i = 0; i < numGlyphs; i++) {
4202
+ if (i < numHMetrics) {
4203
+ writeUint16BE(output, offset, advanceWidths[i]);
4204
+ offset += 2;
4205
+ }
4206
+ writeInt16BE(output, offset, lsbs[i]);
4207
+ offset += 2;
4208
+ }
4209
+ return output;
4210
+ }
4211
+ function updateTableEntry(view, entryOffset, checksum, offset, length) {
4212
+ view.setUint32(entryOffset + 4, checksum);
4213
+ view.setUint32(entryOffset + 8, offset);
4214
+ view.setUint32(entryOffset + 12, length);
4215
+ }
4216
+ function readInt16BE(data, offset) {
4217
+ const val = data[offset] << 8 | data[offset + 1];
4218
+ return (val & 32768) !== 0 ? val - 65536 : val;
4219
+ }
4220
+ function writeInt16BE(data, offset, value) {
4221
+ data[offset] = value >> 8 & 255;
4222
+ data[offset + 1] = value & 255;
4223
+ }
4224
+ function writeUint16BE(data, offset, value) {
4225
+ data[offset] = value >> 8 & 255;
4226
+ data[offset + 1] = value & 255;
4227
+ }
4228
+ function computeChecksum(data, offset, length) {
4229
+ let sum = 0;
4230
+ const end = offset + length;
4231
+ const dataView = new DataView(data.buffer, data.byteOffset);
4232
+ const alignedEnd = offset + (length & -4);
4233
+ for (let i = offset; i < alignedEnd; i += 4) sum = sum + dataView.getUint32(i) >>> 0;
4234
+ if (end > alignedEnd) {
4235
+ let last = 0;
4236
+ for (let i = alignedEnd; i < end; i++) last = last << 8 | data[i];
4237
+ last <<= (4 - (end - alignedEnd)) * 8;
4238
+ sum = sum + last >>> 0;
4239
+ }
4240
+ return sum;
4241
+ }
4242
+ function pad4(n) {
4243
+ return n + 3 & -4;
4244
+ }
4245
+
4246
+ //#endregion
4247
+ export { decode, hasNative as hasNativeBrotli };
4248
+ //# sourceMappingURL=index.browser.js.map