@silvery/examples 0.5.6 → 0.17.4

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.
Files changed (112) hide show
  1. package/dist/UPNG-Cy7ViL8f.mjs +5074 -0
  2. package/dist/__vite-browser-external-2447137e-BML7CYau.mjs +4 -0
  3. package/dist/_banner-DLPxCqVy.mjs +44 -0
  4. package/dist/ansi-CCE2pVS0.mjs +16397 -0
  5. package/dist/apng-HhhBjRGt.mjs +68 -0
  6. package/dist/apng-mwUQbTTF.mjs +3 -0
  7. package/dist/apps/aichat/index.mjs +1299 -0
  8. package/dist/apps/app-todo.mjs +139 -0
  9. package/dist/apps/async-data.mjs +204 -0
  10. package/dist/apps/cli-wizard.mjs +339 -0
  11. package/dist/apps/clipboard.mjs +198 -0
  12. package/dist/apps/components.mjs +864 -0
  13. package/dist/apps/data-explorer.mjs +483 -0
  14. package/dist/apps/dev-tools.mjs +397 -0
  15. package/dist/apps/explorer.mjs +698 -0
  16. package/dist/apps/gallery.mjs +766 -0
  17. package/dist/apps/inline-bench.mjs +115 -0
  18. package/dist/apps/kanban.mjs +280 -0
  19. package/dist/apps/layout-ref.mjs +187 -0
  20. package/dist/apps/outline.mjs +203 -0
  21. package/dist/apps/paste-demo.mjs +189 -0
  22. package/dist/apps/scroll.mjs +86 -0
  23. package/dist/apps/search-filter.mjs +287 -0
  24. package/dist/apps/selection.mjs +355 -0
  25. package/dist/apps/spatial-focus-demo.mjs +388 -0
  26. package/dist/apps/task-list.mjs +258 -0
  27. package/dist/apps/terminal-caps-demo.mjs +315 -0
  28. package/dist/apps/terminal.mjs +872 -0
  29. package/dist/apps/text-selection-demo.mjs +254 -0
  30. package/dist/apps/textarea.mjs +178 -0
  31. package/dist/apps/theme.mjs +661 -0
  32. package/dist/apps/transform.mjs +215 -0
  33. package/dist/apps/virtual-10k.mjs +422 -0
  34. package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
  35. package/dist/backends-Bahh9mKN.mjs +1179 -0
  36. package/dist/backends-CCtCDQ94.mjs +3 -0
  37. package/dist/{cli.mjs → bin/cli.mjs} +21 -25
  38. package/dist/chunk-BSw8zbkd.mjs +37 -0
  39. package/dist/components/counter.mjs +48 -0
  40. package/dist/components/hello.mjs +31 -0
  41. package/dist/components/progress-bar.mjs +59 -0
  42. package/dist/components/select-list.mjs +85 -0
  43. package/dist/components/spinner.mjs +57 -0
  44. package/dist/components/text-input.mjs +62 -0
  45. package/dist/components/virtual-list.mjs +51 -0
  46. package/dist/flexily-zero-adapter-UB-ra8fR.mjs +3374 -0
  47. package/dist/gif-BZaqPPVX.mjs +3 -0
  48. package/dist/gif-BtnXuxLF.mjs +71 -0
  49. package/dist/gifenc-CLRW41dk.mjs +728 -0
  50. package/dist/jsx-runtime-dMs_8fNu.mjs +241 -0
  51. package/dist/key-mapping-5oYQdAQE.mjs +3 -0
  52. package/dist/key-mapping-D4LR1go6.mjs +130 -0
  53. package/dist/layout/dashboard.mjs +1204 -0
  54. package/dist/layout/live-resize.mjs +303 -0
  55. package/dist/layout/overflow.mjs +70 -0
  56. package/dist/layout/text-layout.mjs +335 -0
  57. package/dist/node-NuJ94BWl.mjs +1083 -0
  58. package/dist/plugins-D1KtkT4a.mjs +3057 -0
  59. package/dist/resvg-js-C_8Wps1F.mjs +201 -0
  60. package/dist/src-BTEVGpd9.mjs +23538 -0
  61. package/dist/src-CUUOuRH6.mjs +5322 -0
  62. package/dist/src-CzfRafCQ.mjs +814 -0
  63. package/dist/usingCtx-CsEf0xO3.mjs +57 -0
  64. package/dist/yoga-adapter-BVtQ5OJR.mjs +237 -0
  65. package/package.json +19 -14
  66. package/_banner.tsx +0 -60
  67. package/apps/aichat/components.tsx +0 -469
  68. package/apps/aichat/index.tsx +0 -220
  69. package/apps/aichat/script.ts +0 -460
  70. package/apps/aichat/state.ts +0 -325
  71. package/apps/aichat/types.ts +0 -19
  72. package/apps/app-todo.tsx +0 -201
  73. package/apps/async-data.tsx +0 -196
  74. package/apps/cli-wizard.tsx +0 -332
  75. package/apps/clipboard.tsx +0 -183
  76. package/apps/components.tsx +0 -658
  77. package/apps/data-explorer.tsx +0 -490
  78. package/apps/dev-tools.tsx +0 -395
  79. package/apps/explorer.tsx +0 -731
  80. package/apps/gallery.tsx +0 -653
  81. package/apps/inline-bench.tsx +0 -138
  82. package/apps/kanban.tsx +0 -265
  83. package/apps/layout-ref.tsx +0 -173
  84. package/apps/outline.tsx +0 -160
  85. package/apps/panes/index.tsx +0 -203
  86. package/apps/paste-demo.tsx +0 -185
  87. package/apps/scroll.tsx +0 -77
  88. package/apps/search-filter.tsx +0 -240
  89. package/apps/selection.tsx +0 -342
  90. package/apps/spatial-focus-demo.tsx +0 -368
  91. package/apps/task-list.tsx +0 -271
  92. package/apps/terminal-caps-demo.tsx +0 -334
  93. package/apps/terminal.tsx +0 -800
  94. package/apps/text-selection-demo.tsx +0 -189
  95. package/apps/textarea.tsx +0 -155
  96. package/apps/theme.tsx +0 -515
  97. package/apps/transform.tsx +0 -229
  98. package/apps/virtual-10k.tsx +0 -405
  99. package/apps/vterm-demo/index.tsx +0 -216
  100. package/components/counter.tsx +0 -45
  101. package/components/hello.tsx +0 -34
  102. package/components/progress-bar.tsx +0 -48
  103. package/components/select-list.tsx +0 -50
  104. package/components/spinner.tsx +0 -40
  105. package/components/text-input.tsx +0 -57
  106. package/components/virtual-list.tsx +0 -52
  107. package/dist/cli.d.mts +0 -1
  108. package/dist/cli.mjs.map +0 -1
  109. package/layout/dashboard.tsx +0 -953
  110. package/layout/live-resize.tsx +0 -282
  111. package/layout/overflow.tsx +0 -51
  112. package/layout/text-layout.tsx +0 -283
@@ -0,0 +1,5074 @@
1
+ import { i as __require, t as __commonJSMin } from "./chunk-BSw8zbkd.mjs";
2
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/utils/common.js
3
+ var require_common = /* @__PURE__ */ __commonJSMin(((exports) => {
4
+ var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined";
5
+ function _has(obj, key) {
6
+ return Object.prototype.hasOwnProperty.call(obj, key);
7
+ }
8
+ exports.assign = function(obj) {
9
+ var sources = Array.prototype.slice.call(arguments, 1);
10
+ while (sources.length) {
11
+ var source = sources.shift();
12
+ if (!source) continue;
13
+ if (typeof source !== "object") throw new TypeError(source + "must be non-object");
14
+ for (var p in source) if (_has(source, p)) obj[p] = source[p];
15
+ }
16
+ return obj;
17
+ };
18
+ exports.shrinkBuf = function(buf, size) {
19
+ if (buf.length === size) return buf;
20
+ if (buf.subarray) return buf.subarray(0, size);
21
+ buf.length = size;
22
+ return buf;
23
+ };
24
+ var fnTyped = {
25
+ arraySet: function(dest, src, src_offs, len, dest_offs) {
26
+ if (src.subarray && dest.subarray) {
27
+ dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
28
+ return;
29
+ }
30
+ for (var i = 0; i < len; i++) dest[dest_offs + i] = src[src_offs + i];
31
+ },
32
+ flattenChunks: function(chunks) {
33
+ var i, l, len = 0, pos, chunk, result;
34
+ for (i = 0, l = chunks.length; i < l; i++) len += chunks[i].length;
35
+ result = new Uint8Array(len);
36
+ pos = 0;
37
+ for (i = 0, l = chunks.length; i < l; i++) {
38
+ chunk = chunks[i];
39
+ result.set(chunk, pos);
40
+ pos += chunk.length;
41
+ }
42
+ return result;
43
+ }
44
+ };
45
+ var fnUntyped = {
46
+ arraySet: function(dest, src, src_offs, len, dest_offs) {
47
+ for (var i = 0; i < len; i++) dest[dest_offs + i] = src[src_offs + i];
48
+ },
49
+ flattenChunks: function(chunks) {
50
+ return [].concat.apply([], chunks);
51
+ }
52
+ };
53
+ exports.setTyped = function(on) {
54
+ if (on) {
55
+ exports.Buf8 = Uint8Array;
56
+ exports.Buf16 = Uint16Array;
57
+ exports.Buf32 = Int32Array;
58
+ exports.assign(exports, fnTyped);
59
+ } else {
60
+ exports.Buf8 = Array;
61
+ exports.Buf16 = Array;
62
+ exports.Buf32 = Array;
63
+ exports.assign(exports, fnUntyped);
64
+ }
65
+ };
66
+ exports.setTyped(TYPED_OK);
67
+ }));
68
+ //#endregion
69
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/trees.js
70
+ var require_trees = /* @__PURE__ */ __commonJSMin(((exports) => {
71
+ var utils = require_common();
72
+ var Z_FIXED = 4;
73
+ var Z_BINARY = 0;
74
+ var Z_TEXT = 1;
75
+ var Z_UNKNOWN = 2;
76
+ function zero(buf) {
77
+ var len = buf.length;
78
+ while (--len >= 0) buf[len] = 0;
79
+ }
80
+ var STORED_BLOCK = 0;
81
+ var STATIC_TREES = 1;
82
+ var DYN_TREES = 2;
83
+ var MIN_MATCH = 3;
84
+ var MAX_MATCH = 258;
85
+ var LENGTH_CODES = 29;
86
+ var LITERALS = 256;
87
+ var L_CODES = LITERALS + 1 + LENGTH_CODES;
88
+ var D_CODES = 30;
89
+ var BL_CODES = 19;
90
+ var HEAP_SIZE = 2 * L_CODES + 1;
91
+ var MAX_BITS = 15;
92
+ var Buf_size = 16;
93
+ var MAX_BL_BITS = 7;
94
+ var END_BLOCK = 256;
95
+ var REP_3_6 = 16;
96
+ var REPZ_3_10 = 17;
97
+ var REPZ_11_138 = 18;
98
+ var extra_lbits = [
99
+ 0,
100
+ 0,
101
+ 0,
102
+ 0,
103
+ 0,
104
+ 0,
105
+ 0,
106
+ 0,
107
+ 1,
108
+ 1,
109
+ 1,
110
+ 1,
111
+ 2,
112
+ 2,
113
+ 2,
114
+ 2,
115
+ 3,
116
+ 3,
117
+ 3,
118
+ 3,
119
+ 4,
120
+ 4,
121
+ 4,
122
+ 4,
123
+ 5,
124
+ 5,
125
+ 5,
126
+ 5,
127
+ 0
128
+ ];
129
+ var extra_dbits = [
130
+ 0,
131
+ 0,
132
+ 0,
133
+ 0,
134
+ 1,
135
+ 1,
136
+ 2,
137
+ 2,
138
+ 3,
139
+ 3,
140
+ 4,
141
+ 4,
142
+ 5,
143
+ 5,
144
+ 6,
145
+ 6,
146
+ 7,
147
+ 7,
148
+ 8,
149
+ 8,
150
+ 9,
151
+ 9,
152
+ 10,
153
+ 10,
154
+ 11,
155
+ 11,
156
+ 12,
157
+ 12,
158
+ 13,
159
+ 13
160
+ ];
161
+ var extra_blbits = [
162
+ 0,
163
+ 0,
164
+ 0,
165
+ 0,
166
+ 0,
167
+ 0,
168
+ 0,
169
+ 0,
170
+ 0,
171
+ 0,
172
+ 0,
173
+ 0,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0,
178
+ 2,
179
+ 3,
180
+ 7
181
+ ];
182
+ var bl_order = [
183
+ 16,
184
+ 17,
185
+ 18,
186
+ 0,
187
+ 8,
188
+ 7,
189
+ 9,
190
+ 6,
191
+ 10,
192
+ 5,
193
+ 11,
194
+ 4,
195
+ 12,
196
+ 3,
197
+ 13,
198
+ 2,
199
+ 14,
200
+ 1,
201
+ 15
202
+ ];
203
+ var DIST_CODE_LEN = 512;
204
+ var static_ltree = new Array((L_CODES + 2) * 2);
205
+ zero(static_ltree);
206
+ var static_dtree = new Array(D_CODES * 2);
207
+ zero(static_dtree);
208
+ var _dist_code = new Array(DIST_CODE_LEN);
209
+ zero(_dist_code);
210
+ var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
211
+ zero(_length_code);
212
+ var base_length = new Array(LENGTH_CODES);
213
+ zero(base_length);
214
+ var base_dist = new Array(D_CODES);
215
+ zero(base_dist);
216
+ function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
217
+ this.static_tree = static_tree;
218
+ this.extra_bits = extra_bits;
219
+ this.extra_base = extra_base;
220
+ this.elems = elems;
221
+ this.max_length = max_length;
222
+ this.has_stree = static_tree && static_tree.length;
223
+ }
224
+ var static_l_desc;
225
+ var static_d_desc;
226
+ var static_bl_desc;
227
+ function TreeDesc(dyn_tree, stat_desc) {
228
+ this.dyn_tree = dyn_tree;
229
+ this.max_code = 0;
230
+ this.stat_desc = stat_desc;
231
+ }
232
+ function d_code(dist) {
233
+ return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
234
+ }
235
+ function put_short(s, w) {
236
+ s.pending_buf[s.pending++] = w & 255;
237
+ s.pending_buf[s.pending++] = w >>> 8 & 255;
238
+ }
239
+ function send_bits(s, value, length) {
240
+ if (s.bi_valid > Buf_size - length) {
241
+ s.bi_buf |= value << s.bi_valid & 65535;
242
+ put_short(s, s.bi_buf);
243
+ s.bi_buf = value >> Buf_size - s.bi_valid;
244
+ s.bi_valid += length - Buf_size;
245
+ } else {
246
+ s.bi_buf |= value << s.bi_valid & 65535;
247
+ s.bi_valid += length;
248
+ }
249
+ }
250
+ function send_code(s, c, tree) {
251
+ send_bits(s, tree[c * 2], tree[c * 2 + 1]);
252
+ }
253
+ function bi_reverse(code, len) {
254
+ var res = 0;
255
+ do {
256
+ res |= code & 1;
257
+ code >>>= 1;
258
+ res <<= 1;
259
+ } while (--len > 0);
260
+ return res >>> 1;
261
+ }
262
+ function bi_flush(s) {
263
+ if (s.bi_valid === 16) {
264
+ put_short(s, s.bi_buf);
265
+ s.bi_buf = 0;
266
+ s.bi_valid = 0;
267
+ } else if (s.bi_valid >= 8) {
268
+ s.pending_buf[s.pending++] = s.bi_buf & 255;
269
+ s.bi_buf >>= 8;
270
+ s.bi_valid -= 8;
271
+ }
272
+ }
273
+ function gen_bitlen(s, desc) {
274
+ var tree = desc.dyn_tree;
275
+ var max_code = desc.max_code;
276
+ var stree = desc.stat_desc.static_tree;
277
+ var has_stree = desc.stat_desc.has_stree;
278
+ var extra = desc.stat_desc.extra_bits;
279
+ var base = desc.stat_desc.extra_base;
280
+ var max_length = desc.stat_desc.max_length;
281
+ var h;
282
+ var n, m;
283
+ var bits;
284
+ var xbits;
285
+ var f;
286
+ var overflow = 0;
287
+ for (bits = 0; bits <= MAX_BITS; bits++) s.bl_count[bits] = 0;
288
+ tree[s.heap[s.heap_max] * 2 + 1] = 0;
289
+ for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
290
+ n = s.heap[h];
291
+ bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
292
+ if (bits > max_length) {
293
+ bits = max_length;
294
+ overflow++;
295
+ }
296
+ tree[n * 2 + 1] = bits;
297
+ if (n > max_code) continue;
298
+ s.bl_count[bits]++;
299
+ xbits = 0;
300
+ if (n >= base) xbits = extra[n - base];
301
+ f = tree[n * 2];
302
+ s.opt_len += f * (bits + xbits);
303
+ if (has_stree) s.static_len += f * (stree[n * 2 + 1] + xbits);
304
+ }
305
+ if (overflow === 0) return;
306
+ do {
307
+ bits = max_length - 1;
308
+ while (s.bl_count[bits] === 0) bits--;
309
+ s.bl_count[bits]--;
310
+ s.bl_count[bits + 1] += 2;
311
+ s.bl_count[max_length]--;
312
+ overflow -= 2;
313
+ } while (overflow > 0);
314
+ for (bits = max_length; bits !== 0; bits--) {
315
+ n = s.bl_count[bits];
316
+ while (n !== 0) {
317
+ m = s.heap[--h];
318
+ if (m > max_code) continue;
319
+ if (tree[m * 2 + 1] !== bits) {
320
+ s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
321
+ tree[m * 2 + 1] = bits;
322
+ }
323
+ n--;
324
+ }
325
+ }
326
+ }
327
+ function gen_codes(tree, max_code, bl_count) {
328
+ var next_code = new Array(MAX_BITS + 1);
329
+ var code = 0;
330
+ var bits;
331
+ var n;
332
+ for (bits = 1; bits <= MAX_BITS; bits++) next_code[bits] = code = code + bl_count[bits - 1] << 1;
333
+ for (n = 0; n <= max_code; n++) {
334
+ var len = tree[n * 2 + 1];
335
+ if (len === 0) continue;
336
+ tree[n * 2] = bi_reverse(next_code[len]++, len);
337
+ }
338
+ }
339
+ function tr_static_init() {
340
+ var n;
341
+ var bits;
342
+ var length;
343
+ var code;
344
+ var dist;
345
+ var bl_count = new Array(MAX_BITS + 1);
346
+ length = 0;
347
+ for (code = 0; code < LENGTH_CODES - 1; code++) {
348
+ base_length[code] = length;
349
+ for (n = 0; n < 1 << extra_lbits[code]; n++) _length_code[length++] = code;
350
+ }
351
+ _length_code[length - 1] = code;
352
+ dist = 0;
353
+ for (code = 0; code < 16; code++) {
354
+ base_dist[code] = dist;
355
+ for (n = 0; n < 1 << extra_dbits[code]; n++) _dist_code[dist++] = code;
356
+ }
357
+ dist >>= 7;
358
+ for (; code < D_CODES; code++) {
359
+ base_dist[code] = dist << 7;
360
+ for (n = 0; n < 1 << extra_dbits[code] - 7; n++) _dist_code[256 + dist++] = code;
361
+ }
362
+ for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
363
+ n = 0;
364
+ while (n <= 143) {
365
+ static_ltree[n * 2 + 1] = 8;
366
+ n++;
367
+ bl_count[8]++;
368
+ }
369
+ while (n <= 255) {
370
+ static_ltree[n * 2 + 1] = 9;
371
+ n++;
372
+ bl_count[9]++;
373
+ }
374
+ while (n <= 279) {
375
+ static_ltree[n * 2 + 1] = 7;
376
+ n++;
377
+ bl_count[7]++;
378
+ }
379
+ while (n <= 287) {
380
+ static_ltree[n * 2 + 1] = 8;
381
+ n++;
382
+ bl_count[8]++;
383
+ }
384
+ gen_codes(static_ltree, L_CODES + 1, bl_count);
385
+ for (n = 0; n < D_CODES; n++) {
386
+ static_dtree[n * 2 + 1] = 5;
387
+ static_dtree[n * 2] = bi_reverse(n, 5);
388
+ }
389
+ static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
390
+ static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);
391
+ static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);
392
+ }
393
+ function init_block(s) {
394
+ var n;
395
+ for (n = 0; n < L_CODES; n++) s.dyn_ltree[n * 2] = 0;
396
+ for (n = 0; n < D_CODES; n++) s.dyn_dtree[n * 2] = 0;
397
+ for (n = 0; n < BL_CODES; n++) s.bl_tree[n * 2] = 0;
398
+ s.dyn_ltree[END_BLOCK * 2] = 1;
399
+ s.opt_len = s.static_len = 0;
400
+ s.last_lit = s.matches = 0;
401
+ }
402
+ function bi_windup(s) {
403
+ if (s.bi_valid > 8) put_short(s, s.bi_buf);
404
+ else if (s.bi_valid > 0) s.pending_buf[s.pending++] = s.bi_buf;
405
+ s.bi_buf = 0;
406
+ s.bi_valid = 0;
407
+ }
408
+ function copy_block(s, buf, len, header) {
409
+ bi_windup(s);
410
+ if (header) {
411
+ put_short(s, len);
412
+ put_short(s, ~len);
413
+ }
414
+ utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
415
+ s.pending += len;
416
+ }
417
+ function smaller(tree, n, m, depth) {
418
+ var _n2 = n * 2;
419
+ var _m2 = m * 2;
420
+ return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
421
+ }
422
+ function pqdownheap(s, tree, k) {
423
+ var v = s.heap[k];
424
+ var j = k << 1;
425
+ while (j <= s.heap_len) {
426
+ if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) j++;
427
+ if (smaller(tree, v, s.heap[j], s.depth)) break;
428
+ s.heap[k] = s.heap[j];
429
+ k = j;
430
+ j <<= 1;
431
+ }
432
+ s.heap[k] = v;
433
+ }
434
+ function compress_block(s, ltree, dtree) {
435
+ var dist;
436
+ var lc;
437
+ var lx = 0;
438
+ var code;
439
+ var extra;
440
+ if (s.last_lit !== 0) do {
441
+ dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];
442
+ lc = s.pending_buf[s.l_buf + lx];
443
+ lx++;
444
+ if (dist === 0) send_code(s, lc, ltree);
445
+ else {
446
+ code = _length_code[lc];
447
+ send_code(s, code + LITERALS + 1, ltree);
448
+ extra = extra_lbits[code];
449
+ if (extra !== 0) {
450
+ lc -= base_length[code];
451
+ send_bits(s, lc, extra);
452
+ }
453
+ dist--;
454
+ code = d_code(dist);
455
+ send_code(s, code, dtree);
456
+ extra = extra_dbits[code];
457
+ if (extra !== 0) {
458
+ dist -= base_dist[code];
459
+ send_bits(s, dist, extra);
460
+ }
461
+ }
462
+ } while (lx < s.last_lit);
463
+ send_code(s, END_BLOCK, ltree);
464
+ }
465
+ function build_tree(s, desc) {
466
+ var tree = desc.dyn_tree;
467
+ var stree = desc.stat_desc.static_tree;
468
+ var has_stree = desc.stat_desc.has_stree;
469
+ var elems = desc.stat_desc.elems;
470
+ var n, m;
471
+ var max_code = -1;
472
+ var node;
473
+ s.heap_len = 0;
474
+ s.heap_max = HEAP_SIZE;
475
+ for (n = 0; n < elems; n++) if (tree[n * 2] !== 0) {
476
+ s.heap[++s.heap_len] = max_code = n;
477
+ s.depth[n] = 0;
478
+ } else tree[n * 2 + 1] = 0;
479
+ while (s.heap_len < 2) {
480
+ node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
481
+ tree[node * 2] = 1;
482
+ s.depth[node] = 0;
483
+ s.opt_len--;
484
+ if (has_stree) s.static_len -= stree[node * 2 + 1];
485
+ }
486
+ desc.max_code = max_code;
487
+ for (n = s.heap_len >> 1; n >= 1; n--) pqdownheap(s, tree, n);
488
+ node = elems;
489
+ do {
490
+ /*** pqremove ***/
491
+ n = s.heap[1];
492
+ s.heap[1] = s.heap[s.heap_len--];
493
+ pqdownheap(s, tree, 1);
494
+ m = s.heap[1];
495
+ s.heap[--s.heap_max] = n;
496
+ s.heap[--s.heap_max] = m;
497
+ tree[node * 2] = tree[n * 2] + tree[m * 2];
498
+ s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
499
+ tree[n * 2 + 1] = tree[m * 2 + 1] = node;
500
+ s.heap[1] = node++;
501
+ pqdownheap(s, tree, 1);
502
+ } while (s.heap_len >= 2);
503
+ s.heap[--s.heap_max] = s.heap[1];
504
+ gen_bitlen(s, desc);
505
+ gen_codes(tree, max_code, s.bl_count);
506
+ }
507
+ function scan_tree(s, tree, max_code) {
508
+ var n;
509
+ var prevlen = -1;
510
+ var curlen;
511
+ var nextlen = tree[1];
512
+ var count = 0;
513
+ var max_count = 7;
514
+ var min_count = 4;
515
+ if (nextlen === 0) {
516
+ max_count = 138;
517
+ min_count = 3;
518
+ }
519
+ tree[(max_code + 1) * 2 + 1] = 65535;
520
+ for (n = 0; n <= max_code; n++) {
521
+ curlen = nextlen;
522
+ nextlen = tree[(n + 1) * 2 + 1];
523
+ if (++count < max_count && curlen === nextlen) continue;
524
+ else if (count < min_count) s.bl_tree[curlen * 2] += count;
525
+ else if (curlen !== 0) {
526
+ if (curlen !== prevlen) s.bl_tree[curlen * 2]++;
527
+ s.bl_tree[REP_3_6 * 2]++;
528
+ } else if (count <= 10) s.bl_tree[REPZ_3_10 * 2]++;
529
+ else s.bl_tree[REPZ_11_138 * 2]++;
530
+ count = 0;
531
+ prevlen = curlen;
532
+ if (nextlen === 0) {
533
+ max_count = 138;
534
+ min_count = 3;
535
+ } else if (curlen === nextlen) {
536
+ max_count = 6;
537
+ min_count = 3;
538
+ } else {
539
+ max_count = 7;
540
+ min_count = 4;
541
+ }
542
+ }
543
+ }
544
+ function send_tree(s, tree, max_code) {
545
+ var n;
546
+ var prevlen = -1;
547
+ var curlen;
548
+ var nextlen = tree[1];
549
+ var count = 0;
550
+ var max_count = 7;
551
+ var min_count = 4;
552
+ if (nextlen === 0) {
553
+ max_count = 138;
554
+ min_count = 3;
555
+ }
556
+ for (n = 0; n <= max_code; n++) {
557
+ curlen = nextlen;
558
+ nextlen = tree[(n + 1) * 2 + 1];
559
+ if (++count < max_count && curlen === nextlen) continue;
560
+ else if (count < min_count) do
561
+ send_code(s, curlen, s.bl_tree);
562
+ while (--count !== 0);
563
+ else if (curlen !== 0) {
564
+ if (curlen !== prevlen) {
565
+ send_code(s, curlen, s.bl_tree);
566
+ count--;
567
+ }
568
+ send_code(s, REP_3_6, s.bl_tree);
569
+ send_bits(s, count - 3, 2);
570
+ } else if (count <= 10) {
571
+ send_code(s, REPZ_3_10, s.bl_tree);
572
+ send_bits(s, count - 3, 3);
573
+ } else {
574
+ send_code(s, REPZ_11_138, s.bl_tree);
575
+ send_bits(s, count - 11, 7);
576
+ }
577
+ count = 0;
578
+ prevlen = curlen;
579
+ if (nextlen === 0) {
580
+ max_count = 138;
581
+ min_count = 3;
582
+ } else if (curlen === nextlen) {
583
+ max_count = 6;
584
+ min_count = 3;
585
+ } else {
586
+ max_count = 7;
587
+ min_count = 4;
588
+ }
589
+ }
590
+ }
591
+ function build_bl_tree(s) {
592
+ var max_blindex;
593
+ scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
594
+ scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
595
+ build_tree(s, s.bl_desc);
596
+ for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) break;
597
+ s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
598
+ return max_blindex;
599
+ }
600
+ function send_all_trees(s, lcodes, dcodes, blcodes) {
601
+ var rank;
602
+ send_bits(s, lcodes - 257, 5);
603
+ send_bits(s, dcodes - 1, 5);
604
+ send_bits(s, blcodes - 4, 4);
605
+ for (rank = 0; rank < blcodes; rank++) send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3);
606
+ send_tree(s, s.dyn_ltree, lcodes - 1);
607
+ send_tree(s, s.dyn_dtree, dcodes - 1);
608
+ }
609
+ function detect_data_type(s) {
610
+ var black_mask = 4093624447;
611
+ var n;
612
+ for (n = 0; n <= 31; n++, black_mask >>>= 1) if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) return Z_BINARY;
613
+ if (s.dyn_ltree[18] !== 0 || s.dyn_ltree[20] !== 0 || s.dyn_ltree[26] !== 0) return Z_TEXT;
614
+ for (n = 32; n < LITERALS; n++) if (s.dyn_ltree[n * 2] !== 0) return Z_TEXT;
615
+ return Z_BINARY;
616
+ }
617
+ var static_init_done = false;
618
+ function _tr_init(s) {
619
+ if (!static_init_done) {
620
+ tr_static_init();
621
+ static_init_done = true;
622
+ }
623
+ s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
624
+ s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
625
+ s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
626
+ s.bi_buf = 0;
627
+ s.bi_valid = 0;
628
+ init_block(s);
629
+ }
630
+ function _tr_stored_block(s, buf, stored_len, last) {
631
+ send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
632
+ copy_block(s, buf, stored_len, true);
633
+ }
634
+ function _tr_align(s) {
635
+ send_bits(s, STATIC_TREES << 1, 3);
636
+ send_code(s, END_BLOCK, static_ltree);
637
+ bi_flush(s);
638
+ }
639
+ function _tr_flush_block(s, buf, stored_len, last) {
640
+ var opt_lenb, static_lenb;
641
+ var max_blindex = 0;
642
+ if (s.level > 0) {
643
+ if (s.strm.data_type === Z_UNKNOWN) s.strm.data_type = detect_data_type(s);
644
+ build_tree(s, s.l_desc);
645
+ build_tree(s, s.d_desc);
646
+ max_blindex = build_bl_tree(s);
647
+ opt_lenb = s.opt_len + 3 + 7 >>> 3;
648
+ static_lenb = s.static_len + 3 + 7 >>> 3;
649
+ if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
650
+ } else opt_lenb = static_lenb = stored_len + 5;
651
+ if (stored_len + 4 <= opt_lenb && buf !== -1) _tr_stored_block(s, buf, stored_len, last);
652
+ else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
653
+ send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
654
+ compress_block(s, static_ltree, static_dtree);
655
+ } else {
656
+ send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
657
+ send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
658
+ compress_block(s, s.dyn_ltree, s.dyn_dtree);
659
+ }
660
+ init_block(s);
661
+ if (last) bi_windup(s);
662
+ }
663
+ function _tr_tally(s, dist, lc) {
664
+ s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255;
665
+ s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255;
666
+ s.pending_buf[s.l_buf + s.last_lit] = lc & 255;
667
+ s.last_lit++;
668
+ if (dist === 0) s.dyn_ltree[lc * 2]++;
669
+ else {
670
+ s.matches++;
671
+ dist--;
672
+ s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++;
673
+ s.dyn_dtree[d_code(dist) * 2]++;
674
+ }
675
+ return s.last_lit === s.lit_bufsize - 1;
676
+ }
677
+ exports._tr_init = _tr_init;
678
+ exports._tr_stored_block = _tr_stored_block;
679
+ exports._tr_flush_block = _tr_flush_block;
680
+ exports._tr_tally = _tr_tally;
681
+ exports._tr_align = _tr_align;
682
+ }));
683
+ //#endregion
684
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js
685
+ var require_adler32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
686
+ function adler32(adler, buf, len, pos) {
687
+ var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
688
+ while (len !== 0) {
689
+ n = len > 2e3 ? 2e3 : len;
690
+ len -= n;
691
+ do {
692
+ s1 = s1 + buf[pos++] | 0;
693
+ s2 = s2 + s1 | 0;
694
+ } while (--n);
695
+ s1 %= 65521;
696
+ s2 %= 65521;
697
+ }
698
+ return s1 | s2 << 16 | 0;
699
+ }
700
+ module.exports = adler32;
701
+ }));
702
+ //#endregion
703
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js
704
+ var require_crc32 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
705
+ function makeTable() {
706
+ var c, table = [];
707
+ for (var n = 0; n < 256; n++) {
708
+ c = n;
709
+ for (var k = 0; k < 8; k++) c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
710
+ table[n] = c;
711
+ }
712
+ return table;
713
+ }
714
+ var crcTable = makeTable();
715
+ function crc32(crc, buf, len, pos) {
716
+ var t = crcTable, end = pos + len;
717
+ crc ^= -1;
718
+ for (var i = pos; i < end; i++) crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
719
+ return crc ^ -1;
720
+ }
721
+ module.exports = crc32;
722
+ }));
723
+ //#endregion
724
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/messages.js
725
+ var require_messages = /* @__PURE__ */ __commonJSMin(((exports, module) => {
726
+ module.exports = {
727
+ 2: "need dictionary",
728
+ 1: "stream end",
729
+ 0: "",
730
+ "-1": "file error",
731
+ "-2": "stream error",
732
+ "-3": "data error",
733
+ "-4": "insufficient memory",
734
+ "-5": "buffer error",
735
+ "-6": "incompatible version"
736
+ };
737
+ }));
738
+ //#endregion
739
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js
740
+ var require_deflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
741
+ var utils = require_common();
742
+ var trees = require_trees();
743
+ var adler32 = require_adler32();
744
+ var crc32 = require_crc32();
745
+ var msg = require_messages();
746
+ var Z_NO_FLUSH = 0;
747
+ var Z_PARTIAL_FLUSH = 1;
748
+ var Z_FULL_FLUSH = 3;
749
+ var Z_FINISH = 4;
750
+ var Z_BLOCK = 5;
751
+ var Z_OK = 0;
752
+ var Z_STREAM_END = 1;
753
+ var Z_STREAM_ERROR = -2;
754
+ var Z_DATA_ERROR = -3;
755
+ var Z_BUF_ERROR = -5;
756
+ var Z_DEFAULT_COMPRESSION = -1;
757
+ var Z_FILTERED = 1;
758
+ var Z_HUFFMAN_ONLY = 2;
759
+ var Z_RLE = 3;
760
+ var Z_FIXED = 4;
761
+ var Z_DEFAULT_STRATEGY = 0;
762
+ var Z_UNKNOWN = 2;
763
+ var Z_DEFLATED = 8;
764
+ var MAX_MEM_LEVEL = 9;
765
+ var MAX_WBITS = 15;
766
+ var DEF_MEM_LEVEL = 8;
767
+ var L_CODES = 286;
768
+ var D_CODES = 30;
769
+ var BL_CODES = 19;
770
+ var HEAP_SIZE = 2 * L_CODES + 1;
771
+ var MAX_BITS = 15;
772
+ var MIN_MATCH = 3;
773
+ var MAX_MATCH = 258;
774
+ var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
775
+ var PRESET_DICT = 32;
776
+ var INIT_STATE = 42;
777
+ var EXTRA_STATE = 69;
778
+ var NAME_STATE = 73;
779
+ var COMMENT_STATE = 91;
780
+ var HCRC_STATE = 103;
781
+ var BUSY_STATE = 113;
782
+ var FINISH_STATE = 666;
783
+ var BS_NEED_MORE = 1;
784
+ var BS_BLOCK_DONE = 2;
785
+ var BS_FINISH_STARTED = 3;
786
+ var BS_FINISH_DONE = 4;
787
+ var OS_CODE = 3;
788
+ function err(strm, errorCode) {
789
+ strm.msg = msg[errorCode];
790
+ return errorCode;
791
+ }
792
+ function rank(f) {
793
+ return (f << 1) - (f > 4 ? 9 : 0);
794
+ }
795
+ function zero(buf) {
796
+ var len = buf.length;
797
+ while (--len >= 0) buf[len] = 0;
798
+ }
799
+ function flush_pending(strm) {
800
+ var s = strm.state;
801
+ var len = s.pending;
802
+ if (len > strm.avail_out) len = strm.avail_out;
803
+ if (len === 0) return;
804
+ utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
805
+ strm.next_out += len;
806
+ s.pending_out += len;
807
+ strm.total_out += len;
808
+ strm.avail_out -= len;
809
+ s.pending -= len;
810
+ if (s.pending === 0) s.pending_out = 0;
811
+ }
812
+ function flush_block_only(s, last) {
813
+ trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
814
+ s.block_start = s.strstart;
815
+ flush_pending(s.strm);
816
+ }
817
+ function put_byte(s, b) {
818
+ s.pending_buf[s.pending++] = b;
819
+ }
820
+ function putShortMSB(s, b) {
821
+ s.pending_buf[s.pending++] = b >>> 8 & 255;
822
+ s.pending_buf[s.pending++] = b & 255;
823
+ }
824
+ function read_buf(strm, buf, start, size) {
825
+ var len = strm.avail_in;
826
+ if (len > size) len = size;
827
+ if (len === 0) return 0;
828
+ strm.avail_in -= len;
829
+ utils.arraySet(buf, strm.input, strm.next_in, len, start);
830
+ if (strm.state.wrap === 1) strm.adler = adler32(strm.adler, buf, len, start);
831
+ else if (strm.state.wrap === 2) strm.adler = crc32(strm.adler, buf, len, start);
832
+ strm.next_in += len;
833
+ strm.total_in += len;
834
+ return len;
835
+ }
836
+ function longest_match(s, cur_match) {
837
+ var chain_length = s.max_chain_length;
838
+ var scan = s.strstart;
839
+ var match;
840
+ var len;
841
+ var best_len = s.prev_length;
842
+ var nice_match = s.nice_match;
843
+ var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
844
+ var _win = s.window;
845
+ var wmask = s.w_mask;
846
+ var prev = s.prev;
847
+ var strend = s.strstart + MAX_MATCH;
848
+ var scan_end1 = _win[scan + best_len - 1];
849
+ var scan_end = _win[scan + best_len];
850
+ if (s.prev_length >= s.good_match) chain_length >>= 2;
851
+ if (nice_match > s.lookahead) nice_match = s.lookahead;
852
+ do {
853
+ match = cur_match;
854
+ if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) continue;
855
+ scan += 2;
856
+ match++;
857
+ do ;
858
+ while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);
859
+ len = MAX_MATCH - (strend - scan);
860
+ scan = strend - MAX_MATCH;
861
+ if (len > best_len) {
862
+ s.match_start = cur_match;
863
+ best_len = len;
864
+ if (len >= nice_match) break;
865
+ scan_end1 = _win[scan + best_len - 1];
866
+ scan_end = _win[scan + best_len];
867
+ }
868
+ } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
869
+ if (best_len <= s.lookahead) return best_len;
870
+ return s.lookahead;
871
+ }
872
+ function fill_window(s) {
873
+ var _w_size = s.w_size;
874
+ var p, n, m, more, str;
875
+ do {
876
+ more = s.window_size - s.lookahead - s.strstart;
877
+ if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
878
+ utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
879
+ s.match_start -= _w_size;
880
+ s.strstart -= _w_size;
881
+ s.block_start -= _w_size;
882
+ n = s.hash_size;
883
+ p = n;
884
+ do {
885
+ m = s.head[--p];
886
+ s.head[p] = m >= _w_size ? m - _w_size : 0;
887
+ } while (--n);
888
+ n = _w_size;
889
+ p = n;
890
+ do {
891
+ m = s.prev[--p];
892
+ s.prev[p] = m >= _w_size ? m - _w_size : 0;
893
+ } while (--n);
894
+ more += _w_size;
895
+ }
896
+ if (s.strm.avail_in === 0) break;
897
+ n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
898
+ s.lookahead += n;
899
+ if (s.lookahead + s.insert >= MIN_MATCH) {
900
+ str = s.strstart - s.insert;
901
+ s.ins_h = s.window[str];
902
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask;
903
+ while (s.insert) {
904
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
905
+ s.prev[str & s.w_mask] = s.head[s.ins_h];
906
+ s.head[s.ins_h] = str;
907
+ str++;
908
+ s.insert--;
909
+ if (s.lookahead + s.insert < MIN_MATCH) break;
910
+ }
911
+ }
912
+ } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
913
+ }
914
+ function deflate_stored(s, flush) {
915
+ var max_block_size = 65535;
916
+ if (max_block_size > s.pending_buf_size - 5) max_block_size = s.pending_buf_size - 5;
917
+ for (;;) {
918
+ if (s.lookahead <= 1) {
919
+ fill_window(s);
920
+ if (s.lookahead === 0 && flush === Z_NO_FLUSH) return BS_NEED_MORE;
921
+ if (s.lookahead === 0) break;
922
+ }
923
+ s.strstart += s.lookahead;
924
+ s.lookahead = 0;
925
+ var max_start = s.block_start + max_block_size;
926
+ if (s.strstart === 0 || s.strstart >= max_start) {
927
+ s.lookahead = s.strstart - max_start;
928
+ s.strstart = max_start;
929
+ /*** FLUSH_BLOCK(s, 0); ***/
930
+ flush_block_only(s, false);
931
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
932
+ }
933
+ if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {
934
+ /*** FLUSH_BLOCK(s, 0); ***/
935
+ flush_block_only(s, false);
936
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
937
+ }
938
+ }
939
+ s.insert = 0;
940
+ if (flush === Z_FINISH) {
941
+ /*** FLUSH_BLOCK(s, 1); ***/
942
+ flush_block_only(s, true);
943
+ if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
944
+ return BS_FINISH_DONE;
945
+ }
946
+ if (s.strstart > s.block_start) {
947
+ /*** FLUSH_BLOCK(s, 0); ***/
948
+ flush_block_only(s, false);
949
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
950
+ }
951
+ return BS_NEED_MORE;
952
+ }
953
+ function deflate_fast(s, flush) {
954
+ var hash_head;
955
+ var bflush;
956
+ for (;;) {
957
+ if (s.lookahead < MIN_LOOKAHEAD) {
958
+ fill_window(s);
959
+ if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) return BS_NEED_MORE;
960
+ if (s.lookahead === 0) break;
961
+ }
962
+ hash_head = 0;
963
+ if (s.lookahead >= MIN_MATCH) {
964
+ /*** INSERT_STRING(s, s.strstart, hash_head); ***/
965
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
966
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
967
+ s.head[s.ins_h] = s.strstart;
968
+ }
969
+ if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) s.match_length = longest_match(s, hash_head);
970
+ if (s.match_length >= MIN_MATCH) {
971
+ /*** _tr_tally_dist(s, s.strstart - s.match_start,
972
+ s.match_length - MIN_MATCH, bflush); ***/
973
+ bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
974
+ s.lookahead -= s.match_length;
975
+ if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
976
+ s.match_length--;
977
+ do {
978
+ s.strstart++;
979
+ /*** INSERT_STRING(s, s.strstart, hash_head); ***/
980
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
981
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
982
+ s.head[s.ins_h] = s.strstart;
983
+ } while (--s.match_length !== 0);
984
+ s.strstart++;
985
+ } else {
986
+ s.strstart += s.match_length;
987
+ s.match_length = 0;
988
+ s.ins_h = s.window[s.strstart];
989
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask;
990
+ }
991
+ } else {
992
+ /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
993
+ bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
994
+ s.lookahead--;
995
+ s.strstart++;
996
+ }
997
+ if (bflush) {
998
+ /*** FLUSH_BLOCK(s, 0); ***/
999
+ flush_block_only(s, false);
1000
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1001
+ }
1002
+ }
1003
+ s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
1004
+ if (flush === Z_FINISH) {
1005
+ /*** FLUSH_BLOCK(s, 1); ***/
1006
+ flush_block_only(s, true);
1007
+ if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
1008
+ return BS_FINISH_DONE;
1009
+ }
1010
+ if (s.last_lit) {
1011
+ /*** FLUSH_BLOCK(s, 0); ***/
1012
+ flush_block_only(s, false);
1013
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1014
+ }
1015
+ return BS_BLOCK_DONE;
1016
+ }
1017
+ function deflate_slow(s, flush) {
1018
+ var hash_head;
1019
+ var bflush;
1020
+ var max_insert;
1021
+ for (;;) {
1022
+ if (s.lookahead < MIN_LOOKAHEAD) {
1023
+ fill_window(s);
1024
+ if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) return BS_NEED_MORE;
1025
+ if (s.lookahead === 0) break;
1026
+ }
1027
+ hash_head = 0;
1028
+ if (s.lookahead >= MIN_MATCH) {
1029
+ /*** INSERT_STRING(s, s.strstart, hash_head); ***/
1030
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
1031
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
1032
+ s.head[s.ins_h] = s.strstart;
1033
+ }
1034
+ s.prev_length = s.match_length;
1035
+ s.prev_match = s.match_start;
1036
+ s.match_length = MIN_MATCH - 1;
1037
+ if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
1038
+ s.match_length = longest_match(s, hash_head);
1039
+ if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) s.match_length = MIN_MATCH - 1;
1040
+ }
1041
+ if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
1042
+ max_insert = s.strstart + s.lookahead - MIN_MATCH;
1043
+ /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
1044
+ s.prev_length - MIN_MATCH, bflush);***/
1045
+ bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
1046
+ s.lookahead -= s.prev_length - 1;
1047
+ s.prev_length -= 2;
1048
+ do
1049
+ if (++s.strstart <= max_insert) {
1050
+ /*** INSERT_STRING(s, s.strstart, hash_head); ***/
1051
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
1052
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
1053
+ s.head[s.ins_h] = s.strstart;
1054
+ }
1055
+ while (--s.prev_length !== 0);
1056
+ s.match_available = 0;
1057
+ s.match_length = MIN_MATCH - 1;
1058
+ s.strstart++;
1059
+ if (bflush) {
1060
+ /*** FLUSH_BLOCK(s, 0); ***/
1061
+ flush_block_only(s, false);
1062
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1063
+ }
1064
+ } else if (s.match_available) {
1065
+ /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
1066
+ bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
1067
+ if (bflush)
1068
+ /*** FLUSH_BLOCK_ONLY(s, 0) ***/
1069
+ flush_block_only(s, false);
1070
+ s.strstart++;
1071
+ s.lookahead--;
1072
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1073
+ } else {
1074
+ s.match_available = 1;
1075
+ s.strstart++;
1076
+ s.lookahead--;
1077
+ }
1078
+ }
1079
+ if (s.match_available) {
1080
+ /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
1081
+ bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
1082
+ s.match_available = 0;
1083
+ }
1084
+ s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
1085
+ if (flush === Z_FINISH) {
1086
+ /*** FLUSH_BLOCK(s, 1); ***/
1087
+ flush_block_only(s, true);
1088
+ if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
1089
+ return BS_FINISH_DONE;
1090
+ }
1091
+ if (s.last_lit) {
1092
+ /*** FLUSH_BLOCK(s, 0); ***/
1093
+ flush_block_only(s, false);
1094
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1095
+ }
1096
+ return BS_BLOCK_DONE;
1097
+ }
1098
+ function deflate_rle(s, flush) {
1099
+ var bflush;
1100
+ var prev;
1101
+ var scan, strend;
1102
+ var _win = s.window;
1103
+ for (;;) {
1104
+ if (s.lookahead <= MAX_MATCH) {
1105
+ fill_window(s);
1106
+ if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) return BS_NEED_MORE;
1107
+ if (s.lookahead === 0) break;
1108
+ }
1109
+ s.match_length = 0;
1110
+ if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
1111
+ scan = s.strstart - 1;
1112
+ prev = _win[scan];
1113
+ if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
1114
+ strend = s.strstart + MAX_MATCH;
1115
+ do ;
1116
+ while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);
1117
+ s.match_length = MAX_MATCH - (strend - scan);
1118
+ if (s.match_length > s.lookahead) s.match_length = s.lookahead;
1119
+ }
1120
+ }
1121
+ if (s.match_length >= MIN_MATCH) {
1122
+ /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
1123
+ bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
1124
+ s.lookahead -= s.match_length;
1125
+ s.strstart += s.match_length;
1126
+ s.match_length = 0;
1127
+ } else {
1128
+ /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
1129
+ bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
1130
+ s.lookahead--;
1131
+ s.strstart++;
1132
+ }
1133
+ if (bflush) {
1134
+ /*** FLUSH_BLOCK(s, 0); ***/
1135
+ flush_block_only(s, false);
1136
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1137
+ }
1138
+ }
1139
+ s.insert = 0;
1140
+ if (flush === Z_FINISH) {
1141
+ /*** FLUSH_BLOCK(s, 1); ***/
1142
+ flush_block_only(s, true);
1143
+ if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
1144
+ return BS_FINISH_DONE;
1145
+ }
1146
+ if (s.last_lit) {
1147
+ /*** FLUSH_BLOCK(s, 0); ***/
1148
+ flush_block_only(s, false);
1149
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1150
+ }
1151
+ return BS_BLOCK_DONE;
1152
+ }
1153
+ function deflate_huff(s, flush) {
1154
+ var bflush;
1155
+ for (;;) {
1156
+ if (s.lookahead === 0) {
1157
+ fill_window(s);
1158
+ if (s.lookahead === 0) {
1159
+ if (flush === Z_NO_FLUSH) return BS_NEED_MORE;
1160
+ break;
1161
+ }
1162
+ }
1163
+ s.match_length = 0;
1164
+ /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
1165
+ bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
1166
+ s.lookahead--;
1167
+ s.strstart++;
1168
+ if (bflush) {
1169
+ /*** FLUSH_BLOCK(s, 0); ***/
1170
+ flush_block_only(s, false);
1171
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1172
+ }
1173
+ }
1174
+ s.insert = 0;
1175
+ if (flush === Z_FINISH) {
1176
+ /*** FLUSH_BLOCK(s, 1); ***/
1177
+ flush_block_only(s, true);
1178
+ if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
1179
+ return BS_FINISH_DONE;
1180
+ }
1181
+ if (s.last_lit) {
1182
+ /*** FLUSH_BLOCK(s, 0); ***/
1183
+ flush_block_only(s, false);
1184
+ if (s.strm.avail_out === 0) return BS_NEED_MORE;
1185
+ }
1186
+ return BS_BLOCK_DONE;
1187
+ }
1188
+ function Config(good_length, max_lazy, nice_length, max_chain, func) {
1189
+ this.good_length = good_length;
1190
+ this.max_lazy = max_lazy;
1191
+ this.nice_length = nice_length;
1192
+ this.max_chain = max_chain;
1193
+ this.func = func;
1194
+ }
1195
+ var configuration_table = [
1196
+ new Config(0, 0, 0, 0, deflate_stored),
1197
+ new Config(4, 4, 8, 4, deflate_fast),
1198
+ new Config(4, 5, 16, 8, deflate_fast),
1199
+ new Config(4, 6, 32, 32, deflate_fast),
1200
+ new Config(4, 4, 16, 16, deflate_slow),
1201
+ new Config(8, 16, 32, 32, deflate_slow),
1202
+ new Config(8, 16, 128, 128, deflate_slow),
1203
+ new Config(8, 32, 128, 256, deflate_slow),
1204
+ new Config(32, 128, 258, 1024, deflate_slow),
1205
+ new Config(32, 258, 258, 4096, deflate_slow)
1206
+ ];
1207
+ function lm_init(s) {
1208
+ s.window_size = 2 * s.w_size;
1209
+ /*** CLEAR_HASH(s); ***/
1210
+ zero(s.head);
1211
+ s.max_lazy_match = configuration_table[s.level].max_lazy;
1212
+ s.good_match = configuration_table[s.level].good_length;
1213
+ s.nice_match = configuration_table[s.level].nice_length;
1214
+ s.max_chain_length = configuration_table[s.level].max_chain;
1215
+ s.strstart = 0;
1216
+ s.block_start = 0;
1217
+ s.lookahead = 0;
1218
+ s.insert = 0;
1219
+ s.match_length = s.prev_length = MIN_MATCH - 1;
1220
+ s.match_available = 0;
1221
+ s.ins_h = 0;
1222
+ }
1223
+ function DeflateState() {
1224
+ this.strm = null;
1225
+ this.status = 0;
1226
+ this.pending_buf = null;
1227
+ this.pending_buf_size = 0;
1228
+ this.pending_out = 0;
1229
+ this.pending = 0;
1230
+ this.wrap = 0;
1231
+ this.gzhead = null;
1232
+ this.gzindex = 0;
1233
+ this.method = Z_DEFLATED;
1234
+ this.last_flush = -1;
1235
+ this.w_size = 0;
1236
+ this.w_bits = 0;
1237
+ this.w_mask = 0;
1238
+ this.window = null;
1239
+ this.window_size = 0;
1240
+ this.prev = null;
1241
+ this.head = null;
1242
+ this.ins_h = 0;
1243
+ this.hash_size = 0;
1244
+ this.hash_bits = 0;
1245
+ this.hash_mask = 0;
1246
+ this.hash_shift = 0;
1247
+ this.block_start = 0;
1248
+ this.match_length = 0;
1249
+ this.prev_match = 0;
1250
+ this.match_available = 0;
1251
+ this.strstart = 0;
1252
+ this.match_start = 0;
1253
+ this.lookahead = 0;
1254
+ this.prev_length = 0;
1255
+ this.max_chain_length = 0;
1256
+ this.max_lazy_match = 0;
1257
+ this.level = 0;
1258
+ this.strategy = 0;
1259
+ this.good_match = 0;
1260
+ this.nice_match = 0;
1261
+ this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);
1262
+ this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);
1263
+ this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);
1264
+ zero(this.dyn_ltree);
1265
+ zero(this.dyn_dtree);
1266
+ zero(this.bl_tree);
1267
+ this.l_desc = null;
1268
+ this.d_desc = null;
1269
+ this.bl_desc = null;
1270
+ this.bl_count = new utils.Buf16(MAX_BITS + 1);
1271
+ this.heap = new utils.Buf16(2 * L_CODES + 1);
1272
+ zero(this.heap);
1273
+ this.heap_len = 0;
1274
+ this.heap_max = 0;
1275
+ this.depth = new utils.Buf16(2 * L_CODES + 1);
1276
+ zero(this.depth);
1277
+ this.l_buf = 0;
1278
+ this.lit_bufsize = 0;
1279
+ this.last_lit = 0;
1280
+ this.d_buf = 0;
1281
+ this.opt_len = 0;
1282
+ this.static_len = 0;
1283
+ this.matches = 0;
1284
+ this.insert = 0;
1285
+ this.bi_buf = 0;
1286
+ this.bi_valid = 0;
1287
+ }
1288
+ function deflateResetKeep(strm) {
1289
+ var s;
1290
+ if (!strm || !strm.state) return err(strm, Z_STREAM_ERROR);
1291
+ strm.total_in = strm.total_out = 0;
1292
+ strm.data_type = Z_UNKNOWN;
1293
+ s = strm.state;
1294
+ s.pending = 0;
1295
+ s.pending_out = 0;
1296
+ if (s.wrap < 0) s.wrap = -s.wrap;
1297
+ s.status = s.wrap ? INIT_STATE : BUSY_STATE;
1298
+ strm.adler = s.wrap === 2 ? 0 : 1;
1299
+ s.last_flush = Z_NO_FLUSH;
1300
+ trees._tr_init(s);
1301
+ return Z_OK;
1302
+ }
1303
+ function deflateReset(strm) {
1304
+ var ret = deflateResetKeep(strm);
1305
+ if (ret === Z_OK) lm_init(strm.state);
1306
+ return ret;
1307
+ }
1308
+ function deflateSetHeader(strm, head) {
1309
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
1310
+ if (strm.state.wrap !== 2) return Z_STREAM_ERROR;
1311
+ strm.state.gzhead = head;
1312
+ return Z_OK;
1313
+ }
1314
+ function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
1315
+ if (!strm) return Z_STREAM_ERROR;
1316
+ var wrap = 1;
1317
+ if (level === Z_DEFAULT_COMPRESSION) level = 6;
1318
+ if (windowBits < 0) {
1319
+ wrap = 0;
1320
+ windowBits = -windowBits;
1321
+ } else if (windowBits > 15) {
1322
+ wrap = 2;
1323
+ windowBits -= 16;
1324
+ }
1325
+ if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) return err(strm, Z_STREAM_ERROR);
1326
+ if (windowBits === 8) windowBits = 9;
1327
+ var s = new DeflateState();
1328
+ strm.state = s;
1329
+ s.strm = strm;
1330
+ s.wrap = wrap;
1331
+ s.gzhead = null;
1332
+ s.w_bits = windowBits;
1333
+ s.w_size = 1 << s.w_bits;
1334
+ s.w_mask = s.w_size - 1;
1335
+ s.hash_bits = memLevel + 7;
1336
+ s.hash_size = 1 << s.hash_bits;
1337
+ s.hash_mask = s.hash_size - 1;
1338
+ s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
1339
+ s.window = new utils.Buf8(s.w_size * 2);
1340
+ s.head = new utils.Buf16(s.hash_size);
1341
+ s.prev = new utils.Buf16(s.w_size);
1342
+ s.lit_bufsize = 1 << memLevel + 6;
1343
+ s.pending_buf_size = s.lit_bufsize * 4;
1344
+ s.pending_buf = new utils.Buf8(s.pending_buf_size);
1345
+ s.d_buf = 1 * s.lit_bufsize;
1346
+ s.l_buf = 3 * s.lit_bufsize;
1347
+ s.level = level;
1348
+ s.strategy = strategy;
1349
+ s.method = method;
1350
+ return deflateReset(strm);
1351
+ }
1352
+ function deflateInit(strm, level) {
1353
+ return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
1354
+ }
1355
+ function deflate(strm, flush) {
1356
+ var old_flush, s;
1357
+ var beg, val;
1358
+ if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
1359
+ s = strm.state;
1360
+ if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);
1361
+ s.strm = strm;
1362
+ old_flush = s.last_flush;
1363
+ s.last_flush = flush;
1364
+ if (s.status === INIT_STATE) if (s.wrap === 2) {
1365
+ strm.adler = 0;
1366
+ put_byte(s, 31);
1367
+ put_byte(s, 139);
1368
+ put_byte(s, 8);
1369
+ if (!s.gzhead) {
1370
+ put_byte(s, 0);
1371
+ put_byte(s, 0);
1372
+ put_byte(s, 0);
1373
+ put_byte(s, 0);
1374
+ put_byte(s, 0);
1375
+ put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
1376
+ put_byte(s, OS_CODE);
1377
+ s.status = BUSY_STATE;
1378
+ } else {
1379
+ put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));
1380
+ put_byte(s, s.gzhead.time & 255);
1381
+ put_byte(s, s.gzhead.time >> 8 & 255);
1382
+ put_byte(s, s.gzhead.time >> 16 & 255);
1383
+ put_byte(s, s.gzhead.time >> 24 & 255);
1384
+ put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
1385
+ put_byte(s, s.gzhead.os & 255);
1386
+ if (s.gzhead.extra && s.gzhead.extra.length) {
1387
+ put_byte(s, s.gzhead.extra.length & 255);
1388
+ put_byte(s, s.gzhead.extra.length >> 8 & 255);
1389
+ }
1390
+ if (s.gzhead.hcrc) strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
1391
+ s.gzindex = 0;
1392
+ s.status = EXTRA_STATE;
1393
+ }
1394
+ } else {
1395
+ var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;
1396
+ var level_flags = -1;
1397
+ if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) level_flags = 0;
1398
+ else if (s.level < 6) level_flags = 1;
1399
+ else if (s.level === 6) level_flags = 2;
1400
+ else level_flags = 3;
1401
+ header |= level_flags << 6;
1402
+ if (s.strstart !== 0) header |= PRESET_DICT;
1403
+ header += 31 - header % 31;
1404
+ s.status = BUSY_STATE;
1405
+ putShortMSB(s, header);
1406
+ if (s.strstart !== 0) {
1407
+ putShortMSB(s, strm.adler >>> 16);
1408
+ putShortMSB(s, strm.adler & 65535);
1409
+ }
1410
+ strm.adler = 1;
1411
+ }
1412
+ if (s.status === EXTRA_STATE) if (s.gzhead.extra) {
1413
+ beg = s.pending;
1414
+ while (s.gzindex < (s.gzhead.extra.length & 65535)) {
1415
+ if (s.pending === s.pending_buf_size) {
1416
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1417
+ flush_pending(strm);
1418
+ beg = s.pending;
1419
+ if (s.pending === s.pending_buf_size) break;
1420
+ }
1421
+ put_byte(s, s.gzhead.extra[s.gzindex] & 255);
1422
+ s.gzindex++;
1423
+ }
1424
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1425
+ if (s.gzindex === s.gzhead.extra.length) {
1426
+ s.gzindex = 0;
1427
+ s.status = NAME_STATE;
1428
+ }
1429
+ } else s.status = NAME_STATE;
1430
+ if (s.status === NAME_STATE) if (s.gzhead.name) {
1431
+ beg = s.pending;
1432
+ do {
1433
+ if (s.pending === s.pending_buf_size) {
1434
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1435
+ flush_pending(strm);
1436
+ beg = s.pending;
1437
+ if (s.pending === s.pending_buf_size) {
1438
+ val = 1;
1439
+ break;
1440
+ }
1441
+ }
1442
+ if (s.gzindex < s.gzhead.name.length) val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
1443
+ else val = 0;
1444
+ put_byte(s, val);
1445
+ } while (val !== 0);
1446
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1447
+ if (val === 0) {
1448
+ s.gzindex = 0;
1449
+ s.status = COMMENT_STATE;
1450
+ }
1451
+ } else s.status = COMMENT_STATE;
1452
+ if (s.status === COMMENT_STATE) if (s.gzhead.comment) {
1453
+ beg = s.pending;
1454
+ do {
1455
+ if (s.pending === s.pending_buf_size) {
1456
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1457
+ flush_pending(strm);
1458
+ beg = s.pending;
1459
+ if (s.pending === s.pending_buf_size) {
1460
+ val = 1;
1461
+ break;
1462
+ }
1463
+ }
1464
+ if (s.gzindex < s.gzhead.comment.length) val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
1465
+ else val = 0;
1466
+ put_byte(s, val);
1467
+ } while (val !== 0);
1468
+ if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
1469
+ if (val === 0) s.status = HCRC_STATE;
1470
+ } else s.status = HCRC_STATE;
1471
+ if (s.status === HCRC_STATE) if (s.gzhead.hcrc) {
1472
+ if (s.pending + 2 > s.pending_buf_size) flush_pending(strm);
1473
+ if (s.pending + 2 <= s.pending_buf_size) {
1474
+ put_byte(s, strm.adler & 255);
1475
+ put_byte(s, strm.adler >> 8 & 255);
1476
+ strm.adler = 0;
1477
+ s.status = BUSY_STATE;
1478
+ }
1479
+ } else s.status = BUSY_STATE;
1480
+ if (s.pending !== 0) {
1481
+ flush_pending(strm);
1482
+ if (strm.avail_out === 0) {
1483
+ s.last_flush = -1;
1484
+ return Z_OK;
1485
+ }
1486
+ } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) return err(strm, Z_BUF_ERROR);
1487
+ if (s.status === FINISH_STATE && strm.avail_in !== 0) return err(strm, Z_BUF_ERROR);
1488
+ if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {
1489
+ var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);
1490
+ if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) s.status = FINISH_STATE;
1491
+ if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
1492
+ if (strm.avail_out === 0) s.last_flush = -1;
1493
+ return Z_OK;
1494
+ }
1495
+ if (bstate === BS_BLOCK_DONE) {
1496
+ if (flush === Z_PARTIAL_FLUSH) trees._tr_align(s);
1497
+ else if (flush !== Z_BLOCK) {
1498
+ trees._tr_stored_block(s, 0, 0, false);
1499
+ if (flush === Z_FULL_FLUSH) {
1500
+ /*** CLEAR_HASH(s); ***/ zero(s.head);
1501
+ if (s.lookahead === 0) {
1502
+ s.strstart = 0;
1503
+ s.block_start = 0;
1504
+ s.insert = 0;
1505
+ }
1506
+ }
1507
+ }
1508
+ flush_pending(strm);
1509
+ if (strm.avail_out === 0) {
1510
+ s.last_flush = -1;
1511
+ return Z_OK;
1512
+ }
1513
+ }
1514
+ }
1515
+ if (flush !== Z_FINISH) return Z_OK;
1516
+ if (s.wrap <= 0) return Z_STREAM_END;
1517
+ if (s.wrap === 2) {
1518
+ put_byte(s, strm.adler & 255);
1519
+ put_byte(s, strm.adler >> 8 & 255);
1520
+ put_byte(s, strm.adler >> 16 & 255);
1521
+ put_byte(s, strm.adler >> 24 & 255);
1522
+ put_byte(s, strm.total_in & 255);
1523
+ put_byte(s, strm.total_in >> 8 & 255);
1524
+ put_byte(s, strm.total_in >> 16 & 255);
1525
+ put_byte(s, strm.total_in >> 24 & 255);
1526
+ } else {
1527
+ putShortMSB(s, strm.adler >>> 16);
1528
+ putShortMSB(s, strm.adler & 65535);
1529
+ }
1530
+ flush_pending(strm);
1531
+ if (s.wrap > 0) s.wrap = -s.wrap;
1532
+ return s.pending !== 0 ? Z_OK : Z_STREAM_END;
1533
+ }
1534
+ function deflateEnd(strm) {
1535
+ var status;
1536
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
1537
+ status = strm.state.status;
1538
+ if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) return err(strm, Z_STREAM_ERROR);
1539
+ strm.state = null;
1540
+ return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
1541
+ }
1542
+ function deflateSetDictionary(strm, dictionary) {
1543
+ var dictLength = dictionary.length;
1544
+ var s;
1545
+ var str, n;
1546
+ var wrap;
1547
+ var avail;
1548
+ var next;
1549
+ var input;
1550
+ var tmpDict;
1551
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
1552
+ s = strm.state;
1553
+ wrap = s.wrap;
1554
+ if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) return Z_STREAM_ERROR;
1555
+ if (wrap === 1) strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
1556
+ s.wrap = 0;
1557
+ if (dictLength >= s.w_size) {
1558
+ if (wrap === 0) {
1559
+ /*** CLEAR_HASH(s); ***/
1560
+ zero(s.head);
1561
+ s.strstart = 0;
1562
+ s.block_start = 0;
1563
+ s.insert = 0;
1564
+ }
1565
+ tmpDict = new utils.Buf8(s.w_size);
1566
+ utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
1567
+ dictionary = tmpDict;
1568
+ dictLength = s.w_size;
1569
+ }
1570
+ avail = strm.avail_in;
1571
+ next = strm.next_in;
1572
+ input = strm.input;
1573
+ strm.avail_in = dictLength;
1574
+ strm.next_in = 0;
1575
+ strm.input = dictionary;
1576
+ fill_window(s);
1577
+ while (s.lookahead >= MIN_MATCH) {
1578
+ str = s.strstart;
1579
+ n = s.lookahead - (MIN_MATCH - 1);
1580
+ do {
1581
+ s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
1582
+ s.prev[str & s.w_mask] = s.head[s.ins_h];
1583
+ s.head[s.ins_h] = str;
1584
+ str++;
1585
+ } while (--n);
1586
+ s.strstart = str;
1587
+ s.lookahead = MIN_MATCH - 1;
1588
+ fill_window(s);
1589
+ }
1590
+ s.strstart += s.lookahead;
1591
+ s.block_start = s.strstart;
1592
+ s.insert = s.lookahead;
1593
+ s.lookahead = 0;
1594
+ s.match_length = s.prev_length = MIN_MATCH - 1;
1595
+ s.match_available = 0;
1596
+ strm.next_in = next;
1597
+ strm.input = input;
1598
+ strm.avail_in = avail;
1599
+ s.wrap = wrap;
1600
+ return Z_OK;
1601
+ }
1602
+ exports.deflateInit = deflateInit;
1603
+ exports.deflateInit2 = deflateInit2;
1604
+ exports.deflateReset = deflateReset;
1605
+ exports.deflateResetKeep = deflateResetKeep;
1606
+ exports.deflateSetHeader = deflateSetHeader;
1607
+ exports.deflate = deflate;
1608
+ exports.deflateEnd = deflateEnd;
1609
+ exports.deflateSetDictionary = deflateSetDictionary;
1610
+ exports.deflateInfo = "pako deflate (from Nodeca project)";
1611
+ }));
1612
+ //#endregion
1613
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/utils/strings.js
1614
+ var require_strings = /* @__PURE__ */ __commonJSMin(((exports) => {
1615
+ var utils = require_common();
1616
+ var STR_APPLY_OK = true;
1617
+ var STR_APPLY_UIA_OK = true;
1618
+ try {
1619
+ String.fromCharCode.apply(null, [0]);
1620
+ } catch (__) {
1621
+ STR_APPLY_OK = false;
1622
+ }
1623
+ try {
1624
+ String.fromCharCode.apply(null, new Uint8Array(1));
1625
+ } catch (__) {
1626
+ STR_APPLY_UIA_OK = false;
1627
+ }
1628
+ var _utf8len = new utils.Buf8(256);
1629
+ for (var q = 0; q < 256; q++) _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
1630
+ _utf8len[254] = _utf8len[254] = 1;
1631
+ exports.string2buf = function(str) {
1632
+ var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
1633
+ for (m_pos = 0; m_pos < str_len; m_pos++) {
1634
+ c = str.charCodeAt(m_pos);
1635
+ if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
1636
+ c2 = str.charCodeAt(m_pos + 1);
1637
+ if ((c2 & 64512) === 56320) {
1638
+ c = 65536 + (c - 55296 << 10) + (c2 - 56320);
1639
+ m_pos++;
1640
+ }
1641
+ }
1642
+ buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4;
1643
+ }
1644
+ buf = new utils.Buf8(buf_len);
1645
+ for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
1646
+ c = str.charCodeAt(m_pos);
1647
+ if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
1648
+ c2 = str.charCodeAt(m_pos + 1);
1649
+ if ((c2 & 64512) === 56320) {
1650
+ c = 65536 + (c - 55296 << 10) + (c2 - 56320);
1651
+ m_pos++;
1652
+ }
1653
+ }
1654
+ if (c < 128) buf[i++] = c;
1655
+ else if (c < 2048) {
1656
+ buf[i++] = 192 | c >>> 6;
1657
+ buf[i++] = 128 | c & 63;
1658
+ } else if (c < 65536) {
1659
+ buf[i++] = 224 | c >>> 12;
1660
+ buf[i++] = 128 | c >>> 6 & 63;
1661
+ buf[i++] = 128 | c & 63;
1662
+ } else {
1663
+ buf[i++] = 240 | c >>> 18;
1664
+ buf[i++] = 128 | c >>> 12 & 63;
1665
+ buf[i++] = 128 | c >>> 6 & 63;
1666
+ buf[i++] = 128 | c & 63;
1667
+ }
1668
+ }
1669
+ return buf;
1670
+ };
1671
+ function buf2binstring(buf, len) {
1672
+ if (len < 65534) {
1673
+ if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
1674
+ }
1675
+ var result = "";
1676
+ for (var i = 0; i < len; i++) result += String.fromCharCode(buf[i]);
1677
+ return result;
1678
+ }
1679
+ exports.buf2binstring = function(buf) {
1680
+ return buf2binstring(buf, buf.length);
1681
+ };
1682
+ exports.binstring2buf = function(str) {
1683
+ var buf = new utils.Buf8(str.length);
1684
+ for (var i = 0, len = buf.length; i < len; i++) buf[i] = str.charCodeAt(i);
1685
+ return buf;
1686
+ };
1687
+ exports.buf2string = function(buf, max) {
1688
+ var i, out, c, c_len;
1689
+ var len = max || buf.length;
1690
+ var utf16buf = new Array(len * 2);
1691
+ for (out = 0, i = 0; i < len;) {
1692
+ c = buf[i++];
1693
+ if (c < 128) {
1694
+ utf16buf[out++] = c;
1695
+ continue;
1696
+ }
1697
+ c_len = _utf8len[c];
1698
+ if (c_len > 4) {
1699
+ utf16buf[out++] = 65533;
1700
+ i += c_len - 1;
1701
+ continue;
1702
+ }
1703
+ c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
1704
+ while (c_len > 1 && i < len) {
1705
+ c = c << 6 | buf[i++] & 63;
1706
+ c_len--;
1707
+ }
1708
+ if (c_len > 1) {
1709
+ utf16buf[out++] = 65533;
1710
+ continue;
1711
+ }
1712
+ if (c < 65536) utf16buf[out++] = c;
1713
+ else {
1714
+ c -= 65536;
1715
+ utf16buf[out++] = 55296 | c >> 10 & 1023;
1716
+ utf16buf[out++] = 56320 | c & 1023;
1717
+ }
1718
+ }
1719
+ return buf2binstring(utf16buf, out);
1720
+ };
1721
+ exports.utf8border = function(buf, max) {
1722
+ var pos;
1723
+ max = max || buf.length;
1724
+ if (max > buf.length) max = buf.length;
1725
+ pos = max - 1;
1726
+ while (pos >= 0 && (buf[pos] & 192) === 128) pos--;
1727
+ if (pos < 0) return max;
1728
+ if (pos === 0) return max;
1729
+ return pos + _utf8len[buf[pos]] > max ? pos : max;
1730
+ };
1731
+ }));
1732
+ //#endregion
1733
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js
1734
+ var require_zstream = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1735
+ function ZStream() {
1736
+ this.input = null;
1737
+ this.next_in = 0;
1738
+ this.avail_in = 0;
1739
+ this.total_in = 0;
1740
+ this.output = null;
1741
+ this.next_out = 0;
1742
+ this.avail_out = 0;
1743
+ this.total_out = 0;
1744
+ this.msg = "";
1745
+ this.state = null;
1746
+ this.data_type = 2;
1747
+ this.adler = 0;
1748
+ }
1749
+ module.exports = ZStream;
1750
+ }));
1751
+ //#endregion
1752
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/deflate.js
1753
+ var require_deflate = /* @__PURE__ */ __commonJSMin(((exports) => {
1754
+ var zlib_deflate = require_deflate$1();
1755
+ var utils = require_common();
1756
+ var strings = require_strings();
1757
+ var msg = require_messages();
1758
+ var ZStream = require_zstream();
1759
+ var toString = Object.prototype.toString;
1760
+ var Z_NO_FLUSH = 0;
1761
+ var Z_FINISH = 4;
1762
+ var Z_OK = 0;
1763
+ var Z_STREAM_END = 1;
1764
+ var Z_SYNC_FLUSH = 2;
1765
+ var Z_DEFAULT_COMPRESSION = -1;
1766
+ var Z_DEFAULT_STRATEGY = 0;
1767
+ var Z_DEFLATED = 8;
1768
+ /**
1769
+ * class Deflate
1770
+ *
1771
+ * Generic JS-style wrapper for zlib calls. If you don't need
1772
+ * streaming behaviour - use more simple functions: [[deflate]],
1773
+ * [[deflateRaw]] and [[gzip]].
1774
+ **/
1775
+ /**
1776
+ * Deflate.result -> Uint8Array|Array
1777
+ *
1778
+ * Compressed result, generated by default [[Deflate#onData]]
1779
+ * and [[Deflate#onEnd]] handlers. Filled after you push last chunk
1780
+ * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you
1781
+ * push a chunk with explicit flush (call [[Deflate#push]] with
1782
+ * `Z_SYNC_FLUSH` param).
1783
+ **/
1784
+ /**
1785
+ * Deflate.err -> Number
1786
+ *
1787
+ * Error code after deflate finished. 0 (Z_OK) on success.
1788
+ * You will not need it in real life, because deflate errors
1789
+ * are possible only on wrong options or bad `onData` / `onEnd`
1790
+ * custom handlers.
1791
+ **/
1792
+ /**
1793
+ * Deflate.msg -> String
1794
+ *
1795
+ * Error message, if [[Deflate.err]] != 0
1796
+ **/
1797
+ /**
1798
+ * new Deflate(options)
1799
+ * - options (Object): zlib deflate options.
1800
+ *
1801
+ * Creates new deflator instance with specified params. Throws exception
1802
+ * on bad params. Supported options:
1803
+ *
1804
+ * - `level`
1805
+ * - `windowBits`
1806
+ * - `memLevel`
1807
+ * - `strategy`
1808
+ * - `dictionary`
1809
+ *
1810
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
1811
+ * for more information on these.
1812
+ *
1813
+ * Additional options, for internal needs:
1814
+ *
1815
+ * - `chunkSize` - size of generated data chunks (16K by default)
1816
+ * - `raw` (Boolean) - do raw deflate
1817
+ * - `gzip` (Boolean) - create gzip wrapper
1818
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
1819
+ * (each char code [0..255])
1820
+ * - `header` (Object) - custom header for gzip
1821
+ * - `text` (Boolean) - true if compressed data believed to be text
1822
+ * - `time` (Number) - modification time, unix timestamp
1823
+ * - `os` (Number) - operation system code
1824
+ * - `extra` (Array) - array of bytes with extra data (max 65536)
1825
+ * - `name` (String) - file name (binary string)
1826
+ * - `comment` (String) - comment (binary string)
1827
+ * - `hcrc` (Boolean) - true if header crc should be added
1828
+ *
1829
+ * ##### Example:
1830
+ *
1831
+ * ```javascript
1832
+ * var pako = require('pako')
1833
+ * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
1834
+ * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
1835
+ *
1836
+ * var deflate = new pako.Deflate({ level: 3});
1837
+ *
1838
+ * deflate.push(chunk1, false);
1839
+ * deflate.push(chunk2, true); // true -> last chunk
1840
+ *
1841
+ * if (deflate.err) { throw new Error(deflate.err); }
1842
+ *
1843
+ * console.log(deflate.result);
1844
+ * ```
1845
+ **/
1846
+ function Deflate(options) {
1847
+ if (!(this instanceof Deflate)) return new Deflate(options);
1848
+ this.options = utils.assign({
1849
+ level: Z_DEFAULT_COMPRESSION,
1850
+ method: Z_DEFLATED,
1851
+ chunkSize: 16384,
1852
+ windowBits: 15,
1853
+ memLevel: 8,
1854
+ strategy: Z_DEFAULT_STRATEGY,
1855
+ to: ""
1856
+ }, options || {});
1857
+ var opt = this.options;
1858
+ if (opt.raw && opt.windowBits > 0) opt.windowBits = -opt.windowBits;
1859
+ else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) opt.windowBits += 16;
1860
+ this.err = 0;
1861
+ this.msg = "";
1862
+ this.ended = false;
1863
+ this.chunks = [];
1864
+ this.strm = new ZStream();
1865
+ this.strm.avail_out = 0;
1866
+ var status = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy);
1867
+ if (status !== Z_OK) throw new Error(msg[status]);
1868
+ if (opt.header) zlib_deflate.deflateSetHeader(this.strm, opt.header);
1869
+ if (opt.dictionary) {
1870
+ var dict;
1871
+ if (typeof opt.dictionary === "string") dict = strings.string2buf(opt.dictionary);
1872
+ else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") dict = new Uint8Array(opt.dictionary);
1873
+ else dict = opt.dictionary;
1874
+ status = zlib_deflate.deflateSetDictionary(this.strm, dict);
1875
+ if (status !== Z_OK) throw new Error(msg[status]);
1876
+ this._dict_set = true;
1877
+ }
1878
+ }
1879
+ /**
1880
+ * Deflate#push(data[, mode]) -> Boolean
1881
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
1882
+ * converted to utf8 byte sequence.
1883
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
1884
+ * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
1885
+ *
1886
+ * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
1887
+ * new compressed chunks. Returns `true` on success. The last data block must have
1888
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
1889
+ * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
1890
+ * can use mode Z_SYNC_FLUSH, keeping the compression context.
1891
+ *
1892
+ * On fail call [[Deflate#onEnd]] with error code and return false.
1893
+ *
1894
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
1895
+ * array format is detected automatically). Also, don't skip last param and always
1896
+ * use the same type in your code (boolean or number). That will improve JS speed.
1897
+ *
1898
+ * For regular `Array`-s make sure all elements are [0..255].
1899
+ *
1900
+ * ##### Example
1901
+ *
1902
+ * ```javascript
1903
+ * push(chunk, false); // push one of data chunks
1904
+ * ...
1905
+ * push(chunk, true); // push last chunk
1906
+ * ```
1907
+ **/
1908
+ Deflate.prototype.push = function(data, mode) {
1909
+ var strm = this.strm;
1910
+ var chunkSize = this.options.chunkSize;
1911
+ var status, _mode;
1912
+ if (this.ended) return false;
1913
+ _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH;
1914
+ if (typeof data === "string") strm.input = strings.string2buf(data);
1915
+ else if (toString.call(data) === "[object ArrayBuffer]") strm.input = new Uint8Array(data);
1916
+ else strm.input = data;
1917
+ strm.next_in = 0;
1918
+ strm.avail_in = strm.input.length;
1919
+ do {
1920
+ if (strm.avail_out === 0) {
1921
+ strm.output = new utils.Buf8(chunkSize);
1922
+ strm.next_out = 0;
1923
+ strm.avail_out = chunkSize;
1924
+ }
1925
+ status = zlib_deflate.deflate(strm, _mode);
1926
+ if (status !== Z_STREAM_END && status !== Z_OK) {
1927
+ this.onEnd(status);
1928
+ this.ended = true;
1929
+ return false;
1930
+ }
1931
+ if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) if (this.options.to === "string") this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
1932
+ else this.onData(utils.shrinkBuf(strm.output, strm.next_out));
1933
+ } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
1934
+ if (_mode === Z_FINISH) {
1935
+ status = zlib_deflate.deflateEnd(this.strm);
1936
+ this.onEnd(status);
1937
+ this.ended = true;
1938
+ return status === Z_OK;
1939
+ }
1940
+ if (_mode === Z_SYNC_FLUSH) {
1941
+ this.onEnd(Z_OK);
1942
+ strm.avail_out = 0;
1943
+ return true;
1944
+ }
1945
+ return true;
1946
+ };
1947
+ /**
1948
+ * Deflate#onData(chunk) -> Void
1949
+ * - chunk (Uint8Array|Array|String): output data. Type of array depends
1950
+ * on js engine support. When string output requested, each chunk
1951
+ * will be string.
1952
+ *
1953
+ * By default, stores data blocks in `chunks[]` property and glue
1954
+ * those in `onEnd`. Override this handler, if you need another behaviour.
1955
+ **/
1956
+ Deflate.prototype.onData = function(chunk) {
1957
+ this.chunks.push(chunk);
1958
+ };
1959
+ /**
1960
+ * Deflate#onEnd(status) -> Void
1961
+ * - status (Number): deflate status. 0 (Z_OK) on success,
1962
+ * other if not.
1963
+ *
1964
+ * Called once after you tell deflate that the input stream is
1965
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
1966
+ * or if an error happened. By default - join collected chunks,
1967
+ * free memory and fill `results` / `err` properties.
1968
+ **/
1969
+ Deflate.prototype.onEnd = function(status) {
1970
+ if (status === Z_OK) if (this.options.to === "string") this.result = this.chunks.join("");
1971
+ else this.result = utils.flattenChunks(this.chunks);
1972
+ this.chunks = [];
1973
+ this.err = status;
1974
+ this.msg = this.strm.msg;
1975
+ };
1976
+ /**
1977
+ * deflate(data[, options]) -> Uint8Array|Array|String
1978
+ * - data (Uint8Array|Array|String): input data to compress.
1979
+ * - options (Object): zlib deflate options.
1980
+ *
1981
+ * Compress `data` with deflate algorithm and `options`.
1982
+ *
1983
+ * Supported options are:
1984
+ *
1985
+ * - level
1986
+ * - windowBits
1987
+ * - memLevel
1988
+ * - strategy
1989
+ * - dictionary
1990
+ *
1991
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
1992
+ * for more information on these.
1993
+ *
1994
+ * Sugar (options):
1995
+ *
1996
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
1997
+ * negative windowBits implicitly.
1998
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
1999
+ * (each char code [0..255])
2000
+ *
2001
+ * ##### Example:
2002
+ *
2003
+ * ```javascript
2004
+ * var pako = require('pako')
2005
+ * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
2006
+ *
2007
+ * console.log(pako.deflate(data));
2008
+ * ```
2009
+ **/
2010
+ function deflate(input, options) {
2011
+ var deflator = new Deflate(options);
2012
+ deflator.push(input, true);
2013
+ if (deflator.err) throw deflator.msg || msg[deflator.err];
2014
+ return deflator.result;
2015
+ }
2016
+ /**
2017
+ * deflateRaw(data[, options]) -> Uint8Array|Array|String
2018
+ * - data (Uint8Array|Array|String): input data to compress.
2019
+ * - options (Object): zlib deflate options.
2020
+ *
2021
+ * The same as [[deflate]], but creates raw data, without wrapper
2022
+ * (header and adler32 crc).
2023
+ **/
2024
+ function deflateRaw(input, options) {
2025
+ options = options || {};
2026
+ options.raw = true;
2027
+ return deflate(input, options);
2028
+ }
2029
+ /**
2030
+ * gzip(data[, options]) -> Uint8Array|Array|String
2031
+ * - data (Uint8Array|Array|String): input data to compress.
2032
+ * - options (Object): zlib deflate options.
2033
+ *
2034
+ * The same as [[deflate]], but create gzip wrapper instead of
2035
+ * deflate one.
2036
+ **/
2037
+ function gzip(input, options) {
2038
+ options = options || {};
2039
+ options.gzip = true;
2040
+ return deflate(input, options);
2041
+ }
2042
+ exports.Deflate = Deflate;
2043
+ exports.deflate = deflate;
2044
+ exports.deflateRaw = deflateRaw;
2045
+ exports.gzip = gzip;
2046
+ }));
2047
+ //#endregion
2048
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js
2049
+ var require_inffast = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2050
+ var BAD = 30;
2051
+ var TYPE = 12;
2052
+ module.exports = function inflate_fast(strm, start) {
2053
+ var state;
2054
+ var _in;
2055
+ var last;
2056
+ var _out;
2057
+ var beg;
2058
+ var end;
2059
+ var dmax;
2060
+ var wsize;
2061
+ var whave;
2062
+ var wnext;
2063
+ var s_window;
2064
+ var hold;
2065
+ var bits;
2066
+ var lcode;
2067
+ var dcode;
2068
+ var lmask;
2069
+ var dmask;
2070
+ var here;
2071
+ var op;
2072
+ var len;
2073
+ var dist;
2074
+ var from;
2075
+ var from_source;
2076
+ var input, output;
2077
+ state = strm.state;
2078
+ _in = strm.next_in;
2079
+ input = strm.input;
2080
+ last = _in + (strm.avail_in - 5);
2081
+ _out = strm.next_out;
2082
+ output = strm.output;
2083
+ beg = _out - (start - strm.avail_out);
2084
+ end = _out + (strm.avail_out - 257);
2085
+ dmax = state.dmax;
2086
+ wsize = state.wsize;
2087
+ whave = state.whave;
2088
+ wnext = state.wnext;
2089
+ s_window = state.window;
2090
+ hold = state.hold;
2091
+ bits = state.bits;
2092
+ lcode = state.lencode;
2093
+ dcode = state.distcode;
2094
+ lmask = (1 << state.lenbits) - 1;
2095
+ dmask = (1 << state.distbits) - 1;
2096
+ top: do {
2097
+ if (bits < 15) {
2098
+ hold += input[_in++] << bits;
2099
+ bits += 8;
2100
+ hold += input[_in++] << bits;
2101
+ bits += 8;
2102
+ }
2103
+ here = lcode[hold & lmask];
2104
+ dolen: for (;;) {
2105
+ op = here >>> 24;
2106
+ hold >>>= op;
2107
+ bits -= op;
2108
+ op = here >>> 16 & 255;
2109
+ if (op === 0) output[_out++] = here & 65535;
2110
+ else if (op & 16) {
2111
+ len = here & 65535;
2112
+ op &= 15;
2113
+ if (op) {
2114
+ if (bits < op) {
2115
+ hold += input[_in++] << bits;
2116
+ bits += 8;
2117
+ }
2118
+ len += hold & (1 << op) - 1;
2119
+ hold >>>= op;
2120
+ bits -= op;
2121
+ }
2122
+ if (bits < 15) {
2123
+ hold += input[_in++] << bits;
2124
+ bits += 8;
2125
+ hold += input[_in++] << bits;
2126
+ bits += 8;
2127
+ }
2128
+ here = dcode[hold & dmask];
2129
+ dodist: for (;;) {
2130
+ op = here >>> 24;
2131
+ hold >>>= op;
2132
+ bits -= op;
2133
+ op = here >>> 16 & 255;
2134
+ if (op & 16) {
2135
+ dist = here & 65535;
2136
+ op &= 15;
2137
+ if (bits < op) {
2138
+ hold += input[_in++] << bits;
2139
+ bits += 8;
2140
+ if (bits < op) {
2141
+ hold += input[_in++] << bits;
2142
+ bits += 8;
2143
+ }
2144
+ }
2145
+ dist += hold & (1 << op) - 1;
2146
+ if (dist > dmax) {
2147
+ strm.msg = "invalid distance too far back";
2148
+ state.mode = BAD;
2149
+ break top;
2150
+ }
2151
+ hold >>>= op;
2152
+ bits -= op;
2153
+ op = _out - beg;
2154
+ if (dist > op) {
2155
+ op = dist - op;
2156
+ if (op > whave) {
2157
+ if (state.sane) {
2158
+ strm.msg = "invalid distance too far back";
2159
+ state.mode = BAD;
2160
+ break top;
2161
+ }
2162
+ }
2163
+ from = 0;
2164
+ from_source = s_window;
2165
+ if (wnext === 0) {
2166
+ from += wsize - op;
2167
+ if (op < len) {
2168
+ len -= op;
2169
+ do
2170
+ output[_out++] = s_window[from++];
2171
+ while (--op);
2172
+ from = _out - dist;
2173
+ from_source = output;
2174
+ }
2175
+ } else if (wnext < op) {
2176
+ from += wsize + wnext - op;
2177
+ op -= wnext;
2178
+ if (op < len) {
2179
+ len -= op;
2180
+ do
2181
+ output[_out++] = s_window[from++];
2182
+ while (--op);
2183
+ from = 0;
2184
+ if (wnext < len) {
2185
+ op = wnext;
2186
+ len -= op;
2187
+ do
2188
+ output[_out++] = s_window[from++];
2189
+ while (--op);
2190
+ from = _out - dist;
2191
+ from_source = output;
2192
+ }
2193
+ }
2194
+ } else {
2195
+ from += wnext - op;
2196
+ if (op < len) {
2197
+ len -= op;
2198
+ do
2199
+ output[_out++] = s_window[from++];
2200
+ while (--op);
2201
+ from = _out - dist;
2202
+ from_source = output;
2203
+ }
2204
+ }
2205
+ while (len > 2) {
2206
+ output[_out++] = from_source[from++];
2207
+ output[_out++] = from_source[from++];
2208
+ output[_out++] = from_source[from++];
2209
+ len -= 3;
2210
+ }
2211
+ if (len) {
2212
+ output[_out++] = from_source[from++];
2213
+ if (len > 1) output[_out++] = from_source[from++];
2214
+ }
2215
+ } else {
2216
+ from = _out - dist;
2217
+ do {
2218
+ output[_out++] = output[from++];
2219
+ output[_out++] = output[from++];
2220
+ output[_out++] = output[from++];
2221
+ len -= 3;
2222
+ } while (len > 2);
2223
+ if (len) {
2224
+ output[_out++] = output[from++];
2225
+ if (len > 1) output[_out++] = output[from++];
2226
+ }
2227
+ }
2228
+ } else if ((op & 64) === 0) {
2229
+ here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
2230
+ continue dodist;
2231
+ } else {
2232
+ strm.msg = "invalid distance code";
2233
+ state.mode = BAD;
2234
+ break top;
2235
+ }
2236
+ break;
2237
+ }
2238
+ } else if ((op & 64) === 0) {
2239
+ here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
2240
+ continue dolen;
2241
+ } else if (op & 32) {
2242
+ state.mode = TYPE;
2243
+ break top;
2244
+ } else {
2245
+ strm.msg = "invalid literal/length code";
2246
+ state.mode = BAD;
2247
+ break top;
2248
+ }
2249
+ break;
2250
+ }
2251
+ } while (_in < last && _out < end);
2252
+ len = bits >> 3;
2253
+ _in -= len;
2254
+ bits -= len << 3;
2255
+ hold &= (1 << bits) - 1;
2256
+ strm.next_in = _in;
2257
+ strm.next_out = _out;
2258
+ strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
2259
+ strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
2260
+ state.hold = hold;
2261
+ state.bits = bits;
2262
+ };
2263
+ }));
2264
+ //#endregion
2265
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js
2266
+ var require_inftrees = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2267
+ var utils = require_common();
2268
+ var MAXBITS = 15;
2269
+ var ENOUGH_LENS = 852;
2270
+ var ENOUGH_DISTS = 592;
2271
+ var CODES = 0;
2272
+ var LENS = 1;
2273
+ var DISTS = 2;
2274
+ var lbase = [
2275
+ 3,
2276
+ 4,
2277
+ 5,
2278
+ 6,
2279
+ 7,
2280
+ 8,
2281
+ 9,
2282
+ 10,
2283
+ 11,
2284
+ 13,
2285
+ 15,
2286
+ 17,
2287
+ 19,
2288
+ 23,
2289
+ 27,
2290
+ 31,
2291
+ 35,
2292
+ 43,
2293
+ 51,
2294
+ 59,
2295
+ 67,
2296
+ 83,
2297
+ 99,
2298
+ 115,
2299
+ 131,
2300
+ 163,
2301
+ 195,
2302
+ 227,
2303
+ 258,
2304
+ 0,
2305
+ 0
2306
+ ];
2307
+ var lext = [
2308
+ 16,
2309
+ 16,
2310
+ 16,
2311
+ 16,
2312
+ 16,
2313
+ 16,
2314
+ 16,
2315
+ 16,
2316
+ 17,
2317
+ 17,
2318
+ 17,
2319
+ 17,
2320
+ 18,
2321
+ 18,
2322
+ 18,
2323
+ 18,
2324
+ 19,
2325
+ 19,
2326
+ 19,
2327
+ 19,
2328
+ 20,
2329
+ 20,
2330
+ 20,
2331
+ 20,
2332
+ 21,
2333
+ 21,
2334
+ 21,
2335
+ 21,
2336
+ 16,
2337
+ 72,
2338
+ 78
2339
+ ];
2340
+ var dbase = [
2341
+ 1,
2342
+ 2,
2343
+ 3,
2344
+ 4,
2345
+ 5,
2346
+ 7,
2347
+ 9,
2348
+ 13,
2349
+ 17,
2350
+ 25,
2351
+ 33,
2352
+ 49,
2353
+ 65,
2354
+ 97,
2355
+ 129,
2356
+ 193,
2357
+ 257,
2358
+ 385,
2359
+ 513,
2360
+ 769,
2361
+ 1025,
2362
+ 1537,
2363
+ 2049,
2364
+ 3073,
2365
+ 4097,
2366
+ 6145,
2367
+ 8193,
2368
+ 12289,
2369
+ 16385,
2370
+ 24577,
2371
+ 0,
2372
+ 0
2373
+ ];
2374
+ var dext = [
2375
+ 16,
2376
+ 16,
2377
+ 16,
2378
+ 16,
2379
+ 17,
2380
+ 17,
2381
+ 18,
2382
+ 18,
2383
+ 19,
2384
+ 19,
2385
+ 20,
2386
+ 20,
2387
+ 21,
2388
+ 21,
2389
+ 22,
2390
+ 22,
2391
+ 23,
2392
+ 23,
2393
+ 24,
2394
+ 24,
2395
+ 25,
2396
+ 25,
2397
+ 26,
2398
+ 26,
2399
+ 27,
2400
+ 27,
2401
+ 28,
2402
+ 28,
2403
+ 29,
2404
+ 29,
2405
+ 64,
2406
+ 64
2407
+ ];
2408
+ module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {
2409
+ var bits = opts.bits;
2410
+ var len = 0;
2411
+ var sym = 0;
2412
+ var min = 0, max = 0;
2413
+ var root = 0;
2414
+ var curr = 0;
2415
+ var drop = 0;
2416
+ var left = 0;
2417
+ var used = 0;
2418
+ var huff = 0;
2419
+ var incr;
2420
+ var fill;
2421
+ var low;
2422
+ var mask;
2423
+ var next;
2424
+ var base = null;
2425
+ var base_index = 0;
2426
+ var end;
2427
+ var count = new utils.Buf16(MAXBITS + 1);
2428
+ var offs = new utils.Buf16(MAXBITS + 1);
2429
+ var extra = null;
2430
+ var extra_index = 0;
2431
+ var here_bits, here_op, here_val;
2432
+ for (len = 0; len <= MAXBITS; len++) count[len] = 0;
2433
+ for (sym = 0; sym < codes; sym++) count[lens[lens_index + sym]]++;
2434
+ root = bits;
2435
+ for (max = MAXBITS; max >= 1; max--) if (count[max] !== 0) break;
2436
+ if (root > max) root = max;
2437
+ if (max === 0) {
2438
+ table[table_index++] = 20971520;
2439
+ table[table_index++] = 20971520;
2440
+ opts.bits = 1;
2441
+ return 0;
2442
+ }
2443
+ for (min = 1; min < max; min++) if (count[min] !== 0) break;
2444
+ if (root < min) root = min;
2445
+ left = 1;
2446
+ for (len = 1; len <= MAXBITS; len++) {
2447
+ left <<= 1;
2448
+ left -= count[len];
2449
+ if (left < 0) return -1;
2450
+ }
2451
+ if (left > 0 && (type === CODES || max !== 1)) return -1;
2452
+ offs[1] = 0;
2453
+ for (len = 1; len < MAXBITS; len++) offs[len + 1] = offs[len] + count[len];
2454
+ for (sym = 0; sym < codes; sym++) if (lens[lens_index + sym] !== 0) work[offs[lens[lens_index + sym]]++] = sym;
2455
+ if (type === CODES) {
2456
+ base = extra = work;
2457
+ end = 19;
2458
+ } else if (type === LENS) {
2459
+ base = lbase;
2460
+ base_index -= 257;
2461
+ extra = lext;
2462
+ extra_index -= 257;
2463
+ end = 256;
2464
+ } else {
2465
+ base = dbase;
2466
+ extra = dext;
2467
+ end = -1;
2468
+ }
2469
+ huff = 0;
2470
+ sym = 0;
2471
+ len = min;
2472
+ next = table_index;
2473
+ curr = root;
2474
+ drop = 0;
2475
+ low = -1;
2476
+ used = 1 << root;
2477
+ mask = used - 1;
2478
+ if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) return 1;
2479
+ for (;;) {
2480
+ here_bits = len - drop;
2481
+ if (work[sym] < end) {
2482
+ here_op = 0;
2483
+ here_val = work[sym];
2484
+ } else if (work[sym] > end) {
2485
+ here_op = extra[extra_index + work[sym]];
2486
+ here_val = base[base_index + work[sym]];
2487
+ } else {
2488
+ here_op = 96;
2489
+ here_val = 0;
2490
+ }
2491
+ incr = 1 << len - drop;
2492
+ fill = 1 << curr;
2493
+ min = fill;
2494
+ do {
2495
+ fill -= incr;
2496
+ table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
2497
+ } while (fill !== 0);
2498
+ incr = 1 << len - 1;
2499
+ while (huff & incr) incr >>= 1;
2500
+ if (incr !== 0) {
2501
+ huff &= incr - 1;
2502
+ huff += incr;
2503
+ } else huff = 0;
2504
+ sym++;
2505
+ if (--count[len] === 0) {
2506
+ if (len === max) break;
2507
+ len = lens[lens_index + work[sym]];
2508
+ }
2509
+ if (len > root && (huff & mask) !== low) {
2510
+ if (drop === 0) drop = root;
2511
+ next += min;
2512
+ curr = len - drop;
2513
+ left = 1 << curr;
2514
+ while (curr + drop < max) {
2515
+ left -= count[curr + drop];
2516
+ if (left <= 0) break;
2517
+ curr++;
2518
+ left <<= 1;
2519
+ }
2520
+ used += 1 << curr;
2521
+ if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) return 1;
2522
+ low = huff & mask;
2523
+ table[low] = root << 24 | curr << 16 | next - table_index | 0;
2524
+ }
2525
+ }
2526
+ if (huff !== 0) table[next + huff] = len - drop << 24 | 4194304;
2527
+ opts.bits = root;
2528
+ return 0;
2529
+ };
2530
+ }));
2531
+ //#endregion
2532
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js
2533
+ var require_inflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
2534
+ var utils = require_common();
2535
+ var adler32 = require_adler32();
2536
+ var crc32 = require_crc32();
2537
+ var inflate_fast = require_inffast();
2538
+ var inflate_table = require_inftrees();
2539
+ var CODES = 0;
2540
+ var LENS = 1;
2541
+ var DISTS = 2;
2542
+ var Z_FINISH = 4;
2543
+ var Z_BLOCK = 5;
2544
+ var Z_TREES = 6;
2545
+ var Z_OK = 0;
2546
+ var Z_STREAM_END = 1;
2547
+ var Z_NEED_DICT = 2;
2548
+ var Z_STREAM_ERROR = -2;
2549
+ var Z_DATA_ERROR = -3;
2550
+ var Z_MEM_ERROR = -4;
2551
+ var Z_BUF_ERROR = -5;
2552
+ var Z_DEFLATED = 8;
2553
+ var HEAD = 1;
2554
+ var FLAGS = 2;
2555
+ var TIME = 3;
2556
+ var OS = 4;
2557
+ var EXLEN = 5;
2558
+ var EXTRA = 6;
2559
+ var NAME = 7;
2560
+ var COMMENT = 8;
2561
+ var HCRC = 9;
2562
+ var DICTID = 10;
2563
+ var DICT = 11;
2564
+ var TYPE = 12;
2565
+ var TYPEDO = 13;
2566
+ var STORED = 14;
2567
+ var COPY_ = 15;
2568
+ var COPY = 16;
2569
+ var TABLE = 17;
2570
+ var LENLENS = 18;
2571
+ var CODELENS = 19;
2572
+ var LEN_ = 20;
2573
+ var LEN = 21;
2574
+ var LENEXT = 22;
2575
+ var DIST = 23;
2576
+ var DISTEXT = 24;
2577
+ var MATCH = 25;
2578
+ var LIT = 26;
2579
+ var CHECK = 27;
2580
+ var LENGTH = 28;
2581
+ var DONE = 29;
2582
+ var BAD = 30;
2583
+ var MEM = 31;
2584
+ var SYNC = 32;
2585
+ var ENOUGH_LENS = 852;
2586
+ var ENOUGH_DISTS = 592;
2587
+ var DEF_WBITS = 15;
2588
+ function zswap32(q) {
2589
+ return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
2590
+ }
2591
+ function InflateState() {
2592
+ this.mode = 0;
2593
+ this.last = false;
2594
+ this.wrap = 0;
2595
+ this.havedict = false;
2596
+ this.flags = 0;
2597
+ this.dmax = 0;
2598
+ this.check = 0;
2599
+ this.total = 0;
2600
+ this.head = null;
2601
+ this.wbits = 0;
2602
+ this.wsize = 0;
2603
+ this.whave = 0;
2604
+ this.wnext = 0;
2605
+ this.window = null;
2606
+ this.hold = 0;
2607
+ this.bits = 0;
2608
+ this.length = 0;
2609
+ this.offset = 0;
2610
+ this.extra = 0;
2611
+ this.lencode = null;
2612
+ this.distcode = null;
2613
+ this.lenbits = 0;
2614
+ this.distbits = 0;
2615
+ this.ncode = 0;
2616
+ this.nlen = 0;
2617
+ this.ndist = 0;
2618
+ this.have = 0;
2619
+ this.next = null;
2620
+ this.lens = new utils.Buf16(320);
2621
+ this.work = new utils.Buf16(288);
2622
+ this.lendyn = null;
2623
+ this.distdyn = null;
2624
+ this.sane = 0;
2625
+ this.back = 0;
2626
+ this.was = 0;
2627
+ }
2628
+ function inflateResetKeep(strm) {
2629
+ var state;
2630
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
2631
+ state = strm.state;
2632
+ strm.total_in = strm.total_out = state.total = 0;
2633
+ strm.msg = "";
2634
+ if (state.wrap) strm.adler = state.wrap & 1;
2635
+ state.mode = HEAD;
2636
+ state.last = 0;
2637
+ state.havedict = 0;
2638
+ state.dmax = 32768;
2639
+ state.head = null;
2640
+ state.hold = 0;
2641
+ state.bits = 0;
2642
+ state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
2643
+ state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
2644
+ state.sane = 1;
2645
+ state.back = -1;
2646
+ return Z_OK;
2647
+ }
2648
+ function inflateReset(strm) {
2649
+ var state;
2650
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
2651
+ state = strm.state;
2652
+ state.wsize = 0;
2653
+ state.whave = 0;
2654
+ state.wnext = 0;
2655
+ return inflateResetKeep(strm);
2656
+ }
2657
+ function inflateReset2(strm, windowBits) {
2658
+ var wrap;
2659
+ var state;
2660
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
2661
+ state = strm.state;
2662
+ if (windowBits < 0) {
2663
+ wrap = 0;
2664
+ windowBits = -windowBits;
2665
+ } else {
2666
+ wrap = (windowBits >> 4) + 1;
2667
+ if (windowBits < 48) windowBits &= 15;
2668
+ }
2669
+ if (windowBits && (windowBits < 8 || windowBits > 15)) return Z_STREAM_ERROR;
2670
+ if (state.window !== null && state.wbits !== windowBits) state.window = null;
2671
+ state.wrap = wrap;
2672
+ state.wbits = windowBits;
2673
+ return inflateReset(strm);
2674
+ }
2675
+ function inflateInit2(strm, windowBits) {
2676
+ var ret;
2677
+ var state;
2678
+ if (!strm) return Z_STREAM_ERROR;
2679
+ state = new InflateState();
2680
+ strm.state = state;
2681
+ state.window = null;
2682
+ ret = inflateReset2(strm, windowBits);
2683
+ if (ret !== Z_OK) strm.state = null;
2684
+ return ret;
2685
+ }
2686
+ function inflateInit(strm) {
2687
+ return inflateInit2(strm, DEF_WBITS);
2688
+ }
2689
+ var virgin = true;
2690
+ var lenfix, distfix;
2691
+ function fixedtables(state) {
2692
+ if (virgin) {
2693
+ var sym;
2694
+ lenfix = new utils.Buf32(512);
2695
+ distfix = new utils.Buf32(32);
2696
+ sym = 0;
2697
+ while (sym < 144) state.lens[sym++] = 8;
2698
+ while (sym < 256) state.lens[sym++] = 9;
2699
+ while (sym < 280) state.lens[sym++] = 7;
2700
+ while (sym < 288) state.lens[sym++] = 8;
2701
+ inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
2702
+ sym = 0;
2703
+ while (sym < 32) state.lens[sym++] = 5;
2704
+ inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
2705
+ virgin = false;
2706
+ }
2707
+ state.lencode = lenfix;
2708
+ state.lenbits = 9;
2709
+ state.distcode = distfix;
2710
+ state.distbits = 5;
2711
+ }
2712
+ function updatewindow(strm, src, end, copy) {
2713
+ var dist;
2714
+ var state = strm.state;
2715
+ if (state.window === null) {
2716
+ state.wsize = 1 << state.wbits;
2717
+ state.wnext = 0;
2718
+ state.whave = 0;
2719
+ state.window = new utils.Buf8(state.wsize);
2720
+ }
2721
+ if (copy >= state.wsize) {
2722
+ utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
2723
+ state.wnext = 0;
2724
+ state.whave = state.wsize;
2725
+ } else {
2726
+ dist = state.wsize - state.wnext;
2727
+ if (dist > copy) dist = copy;
2728
+ utils.arraySet(state.window, src, end - copy, dist, state.wnext);
2729
+ copy -= dist;
2730
+ if (copy) {
2731
+ utils.arraySet(state.window, src, end - copy, copy, 0);
2732
+ state.wnext = copy;
2733
+ state.whave = state.wsize;
2734
+ } else {
2735
+ state.wnext += dist;
2736
+ if (state.wnext === state.wsize) state.wnext = 0;
2737
+ if (state.whave < state.wsize) state.whave += dist;
2738
+ }
2739
+ }
2740
+ return 0;
2741
+ }
2742
+ function inflate(strm, flush) {
2743
+ var state;
2744
+ var input, output;
2745
+ var next;
2746
+ var put;
2747
+ var have, left;
2748
+ var hold;
2749
+ var bits;
2750
+ var _in, _out;
2751
+ var copy;
2752
+ var from;
2753
+ var from_source;
2754
+ var here = 0;
2755
+ var here_bits, here_op, here_val;
2756
+ var last_bits, last_op, last_val;
2757
+ var len;
2758
+ var ret;
2759
+ var hbuf = new utils.Buf8(4);
2760
+ var opts;
2761
+ var n;
2762
+ var order = [
2763
+ 16,
2764
+ 17,
2765
+ 18,
2766
+ 0,
2767
+ 8,
2768
+ 7,
2769
+ 9,
2770
+ 6,
2771
+ 10,
2772
+ 5,
2773
+ 11,
2774
+ 4,
2775
+ 12,
2776
+ 3,
2777
+ 13,
2778
+ 2,
2779
+ 14,
2780
+ 1,
2781
+ 15
2782
+ ];
2783
+ if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) return Z_STREAM_ERROR;
2784
+ state = strm.state;
2785
+ if (state.mode === TYPE) state.mode = TYPEDO;
2786
+ put = strm.next_out;
2787
+ output = strm.output;
2788
+ left = strm.avail_out;
2789
+ next = strm.next_in;
2790
+ input = strm.input;
2791
+ have = strm.avail_in;
2792
+ hold = state.hold;
2793
+ bits = state.bits;
2794
+ _in = have;
2795
+ _out = left;
2796
+ ret = Z_OK;
2797
+ inf_leave: for (;;) switch (state.mode) {
2798
+ case HEAD:
2799
+ if (state.wrap === 0) {
2800
+ state.mode = TYPEDO;
2801
+ break;
2802
+ }
2803
+ while (bits < 16) {
2804
+ if (have === 0) break inf_leave;
2805
+ have--;
2806
+ hold += input[next++] << bits;
2807
+ bits += 8;
2808
+ }
2809
+ if (state.wrap & 2 && hold === 35615) {
2810
+ state.check = 0;
2811
+ hbuf[0] = hold & 255;
2812
+ hbuf[1] = hold >>> 8 & 255;
2813
+ state.check = crc32(state.check, hbuf, 2, 0);
2814
+ hold = 0;
2815
+ bits = 0;
2816
+ state.mode = FLAGS;
2817
+ break;
2818
+ }
2819
+ state.flags = 0;
2820
+ if (state.head) state.head.done = false;
2821
+ if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) {
2822
+ strm.msg = "incorrect header check";
2823
+ state.mode = BAD;
2824
+ break;
2825
+ }
2826
+ if ((hold & 15) !== Z_DEFLATED) {
2827
+ strm.msg = "unknown compression method";
2828
+ state.mode = BAD;
2829
+ break;
2830
+ }
2831
+ hold >>>= 4;
2832
+ bits -= 4;
2833
+ len = (hold & 15) + 8;
2834
+ if (state.wbits === 0) state.wbits = len;
2835
+ else if (len > state.wbits) {
2836
+ strm.msg = "invalid window size";
2837
+ state.mode = BAD;
2838
+ break;
2839
+ }
2840
+ state.dmax = 1 << len;
2841
+ strm.adler = state.check = 1;
2842
+ state.mode = hold & 512 ? DICTID : TYPE;
2843
+ hold = 0;
2844
+ bits = 0;
2845
+ break;
2846
+ case FLAGS:
2847
+ while (bits < 16) {
2848
+ if (have === 0) break inf_leave;
2849
+ have--;
2850
+ hold += input[next++] << bits;
2851
+ bits += 8;
2852
+ }
2853
+ state.flags = hold;
2854
+ if ((state.flags & 255) !== Z_DEFLATED) {
2855
+ strm.msg = "unknown compression method";
2856
+ state.mode = BAD;
2857
+ break;
2858
+ }
2859
+ if (state.flags & 57344) {
2860
+ strm.msg = "unknown header flags set";
2861
+ state.mode = BAD;
2862
+ break;
2863
+ }
2864
+ if (state.head) state.head.text = hold >> 8 & 1;
2865
+ if (state.flags & 512) {
2866
+ hbuf[0] = hold & 255;
2867
+ hbuf[1] = hold >>> 8 & 255;
2868
+ state.check = crc32(state.check, hbuf, 2, 0);
2869
+ }
2870
+ hold = 0;
2871
+ bits = 0;
2872
+ state.mode = TIME;
2873
+ case TIME:
2874
+ while (bits < 32) {
2875
+ if (have === 0) break inf_leave;
2876
+ have--;
2877
+ hold += input[next++] << bits;
2878
+ bits += 8;
2879
+ }
2880
+ if (state.head) state.head.time = hold;
2881
+ if (state.flags & 512) {
2882
+ hbuf[0] = hold & 255;
2883
+ hbuf[1] = hold >>> 8 & 255;
2884
+ hbuf[2] = hold >>> 16 & 255;
2885
+ hbuf[3] = hold >>> 24 & 255;
2886
+ state.check = crc32(state.check, hbuf, 4, 0);
2887
+ }
2888
+ hold = 0;
2889
+ bits = 0;
2890
+ state.mode = OS;
2891
+ case OS:
2892
+ while (bits < 16) {
2893
+ if (have === 0) break inf_leave;
2894
+ have--;
2895
+ hold += input[next++] << bits;
2896
+ bits += 8;
2897
+ }
2898
+ if (state.head) {
2899
+ state.head.xflags = hold & 255;
2900
+ state.head.os = hold >> 8;
2901
+ }
2902
+ if (state.flags & 512) {
2903
+ hbuf[0] = hold & 255;
2904
+ hbuf[1] = hold >>> 8 & 255;
2905
+ state.check = crc32(state.check, hbuf, 2, 0);
2906
+ }
2907
+ hold = 0;
2908
+ bits = 0;
2909
+ state.mode = EXLEN;
2910
+ case EXLEN:
2911
+ if (state.flags & 1024) {
2912
+ while (bits < 16) {
2913
+ if (have === 0) break inf_leave;
2914
+ have--;
2915
+ hold += input[next++] << bits;
2916
+ bits += 8;
2917
+ }
2918
+ state.length = hold;
2919
+ if (state.head) state.head.extra_len = hold;
2920
+ if (state.flags & 512) {
2921
+ hbuf[0] = hold & 255;
2922
+ hbuf[1] = hold >>> 8 & 255;
2923
+ state.check = crc32(state.check, hbuf, 2, 0);
2924
+ }
2925
+ hold = 0;
2926
+ bits = 0;
2927
+ } else if (state.head) state.head.extra = null;
2928
+ state.mode = EXTRA;
2929
+ case EXTRA:
2930
+ if (state.flags & 1024) {
2931
+ copy = state.length;
2932
+ if (copy > have) copy = have;
2933
+ if (copy) {
2934
+ if (state.head) {
2935
+ len = state.head.extra_len - state.length;
2936
+ if (!state.head.extra) state.head.extra = new Array(state.head.extra_len);
2937
+ utils.arraySet(state.head.extra, input, next, copy, len);
2938
+ }
2939
+ if (state.flags & 512) state.check = crc32(state.check, input, copy, next);
2940
+ have -= copy;
2941
+ next += copy;
2942
+ state.length -= copy;
2943
+ }
2944
+ if (state.length) break inf_leave;
2945
+ }
2946
+ state.length = 0;
2947
+ state.mode = NAME;
2948
+ case NAME:
2949
+ if (state.flags & 2048) {
2950
+ if (have === 0) break inf_leave;
2951
+ copy = 0;
2952
+ do {
2953
+ len = input[next + copy++];
2954
+ if (state.head && len && state.length < 65536) state.head.name += String.fromCharCode(len);
2955
+ } while (len && copy < have);
2956
+ if (state.flags & 512) state.check = crc32(state.check, input, copy, next);
2957
+ have -= copy;
2958
+ next += copy;
2959
+ if (len) break inf_leave;
2960
+ } else if (state.head) state.head.name = null;
2961
+ state.length = 0;
2962
+ state.mode = COMMENT;
2963
+ case COMMENT:
2964
+ if (state.flags & 4096) {
2965
+ if (have === 0) break inf_leave;
2966
+ copy = 0;
2967
+ do {
2968
+ len = input[next + copy++];
2969
+ if (state.head && len && state.length < 65536) state.head.comment += String.fromCharCode(len);
2970
+ } while (len && copy < have);
2971
+ if (state.flags & 512) state.check = crc32(state.check, input, copy, next);
2972
+ have -= copy;
2973
+ next += copy;
2974
+ if (len) break inf_leave;
2975
+ } else if (state.head) state.head.comment = null;
2976
+ state.mode = HCRC;
2977
+ case HCRC:
2978
+ if (state.flags & 512) {
2979
+ while (bits < 16) {
2980
+ if (have === 0) break inf_leave;
2981
+ have--;
2982
+ hold += input[next++] << bits;
2983
+ bits += 8;
2984
+ }
2985
+ if (hold !== (state.check & 65535)) {
2986
+ strm.msg = "header crc mismatch";
2987
+ state.mode = BAD;
2988
+ break;
2989
+ }
2990
+ hold = 0;
2991
+ bits = 0;
2992
+ }
2993
+ if (state.head) {
2994
+ state.head.hcrc = state.flags >> 9 & 1;
2995
+ state.head.done = true;
2996
+ }
2997
+ strm.adler = state.check = 0;
2998
+ state.mode = TYPE;
2999
+ break;
3000
+ case DICTID:
3001
+ while (bits < 32) {
3002
+ if (have === 0) break inf_leave;
3003
+ have--;
3004
+ hold += input[next++] << bits;
3005
+ bits += 8;
3006
+ }
3007
+ strm.adler = state.check = zswap32(hold);
3008
+ hold = 0;
3009
+ bits = 0;
3010
+ state.mode = DICT;
3011
+ case DICT:
3012
+ if (state.havedict === 0) {
3013
+ strm.next_out = put;
3014
+ strm.avail_out = left;
3015
+ strm.next_in = next;
3016
+ strm.avail_in = have;
3017
+ state.hold = hold;
3018
+ state.bits = bits;
3019
+ return Z_NEED_DICT;
3020
+ }
3021
+ strm.adler = state.check = 1;
3022
+ state.mode = TYPE;
3023
+ case TYPE: if (flush === Z_BLOCK || flush === Z_TREES) break inf_leave;
3024
+ case TYPEDO:
3025
+ if (state.last) {
3026
+ hold >>>= bits & 7;
3027
+ bits -= bits & 7;
3028
+ state.mode = CHECK;
3029
+ break;
3030
+ }
3031
+ while (bits < 3) {
3032
+ if (have === 0) break inf_leave;
3033
+ have--;
3034
+ hold += input[next++] << bits;
3035
+ bits += 8;
3036
+ }
3037
+ state.last = hold & 1;
3038
+ hold >>>= 1;
3039
+ bits -= 1;
3040
+ switch (hold & 3) {
3041
+ case 0:
3042
+ state.mode = STORED;
3043
+ break;
3044
+ case 1:
3045
+ fixedtables(state);
3046
+ state.mode = LEN_;
3047
+ if (flush === Z_TREES) {
3048
+ hold >>>= 2;
3049
+ bits -= 2;
3050
+ break inf_leave;
3051
+ }
3052
+ break;
3053
+ case 2:
3054
+ state.mode = TABLE;
3055
+ break;
3056
+ case 3:
3057
+ strm.msg = "invalid block type";
3058
+ state.mode = BAD;
3059
+ }
3060
+ hold >>>= 2;
3061
+ bits -= 2;
3062
+ break;
3063
+ case STORED:
3064
+ hold >>>= bits & 7;
3065
+ bits -= bits & 7;
3066
+ while (bits < 32) {
3067
+ if (have === 0) break inf_leave;
3068
+ have--;
3069
+ hold += input[next++] << bits;
3070
+ bits += 8;
3071
+ }
3072
+ if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
3073
+ strm.msg = "invalid stored block lengths";
3074
+ state.mode = BAD;
3075
+ break;
3076
+ }
3077
+ state.length = hold & 65535;
3078
+ hold = 0;
3079
+ bits = 0;
3080
+ state.mode = COPY_;
3081
+ if (flush === Z_TREES) break inf_leave;
3082
+ case COPY_: state.mode = COPY;
3083
+ case COPY:
3084
+ copy = state.length;
3085
+ if (copy) {
3086
+ if (copy > have) copy = have;
3087
+ if (copy > left) copy = left;
3088
+ if (copy === 0) break inf_leave;
3089
+ utils.arraySet(output, input, next, copy, put);
3090
+ have -= copy;
3091
+ next += copy;
3092
+ left -= copy;
3093
+ put += copy;
3094
+ state.length -= copy;
3095
+ break;
3096
+ }
3097
+ state.mode = TYPE;
3098
+ break;
3099
+ case TABLE:
3100
+ while (bits < 14) {
3101
+ if (have === 0) break inf_leave;
3102
+ have--;
3103
+ hold += input[next++] << bits;
3104
+ bits += 8;
3105
+ }
3106
+ state.nlen = (hold & 31) + 257;
3107
+ hold >>>= 5;
3108
+ bits -= 5;
3109
+ state.ndist = (hold & 31) + 1;
3110
+ hold >>>= 5;
3111
+ bits -= 5;
3112
+ state.ncode = (hold & 15) + 4;
3113
+ hold >>>= 4;
3114
+ bits -= 4;
3115
+ if (state.nlen > 286 || state.ndist > 30) {
3116
+ strm.msg = "too many length or distance symbols";
3117
+ state.mode = BAD;
3118
+ break;
3119
+ }
3120
+ state.have = 0;
3121
+ state.mode = LENLENS;
3122
+ case LENLENS:
3123
+ while (state.have < state.ncode) {
3124
+ while (bits < 3) {
3125
+ if (have === 0) break inf_leave;
3126
+ have--;
3127
+ hold += input[next++] << bits;
3128
+ bits += 8;
3129
+ }
3130
+ state.lens[order[state.have++]] = hold & 7;
3131
+ hold >>>= 3;
3132
+ bits -= 3;
3133
+ }
3134
+ while (state.have < 19) state.lens[order[state.have++]] = 0;
3135
+ state.lencode = state.lendyn;
3136
+ state.lenbits = 7;
3137
+ opts = { bits: state.lenbits };
3138
+ ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
3139
+ state.lenbits = opts.bits;
3140
+ if (ret) {
3141
+ strm.msg = "invalid code lengths set";
3142
+ state.mode = BAD;
3143
+ break;
3144
+ }
3145
+ state.have = 0;
3146
+ state.mode = CODELENS;
3147
+ case CODELENS:
3148
+ while (state.have < state.nlen + state.ndist) {
3149
+ for (;;) {
3150
+ here = state.lencode[hold & (1 << state.lenbits) - 1];
3151
+ here_bits = here >>> 24;
3152
+ here_op = here >>> 16 & 255;
3153
+ here_val = here & 65535;
3154
+ if (here_bits <= bits) break;
3155
+ if (have === 0) break inf_leave;
3156
+ have--;
3157
+ hold += input[next++] << bits;
3158
+ bits += 8;
3159
+ }
3160
+ if (here_val < 16) {
3161
+ hold >>>= here_bits;
3162
+ bits -= here_bits;
3163
+ state.lens[state.have++] = here_val;
3164
+ } else {
3165
+ if (here_val === 16) {
3166
+ n = here_bits + 2;
3167
+ while (bits < n) {
3168
+ if (have === 0) break inf_leave;
3169
+ have--;
3170
+ hold += input[next++] << bits;
3171
+ bits += 8;
3172
+ }
3173
+ hold >>>= here_bits;
3174
+ bits -= here_bits;
3175
+ if (state.have === 0) {
3176
+ strm.msg = "invalid bit length repeat";
3177
+ state.mode = BAD;
3178
+ break;
3179
+ }
3180
+ len = state.lens[state.have - 1];
3181
+ copy = 3 + (hold & 3);
3182
+ hold >>>= 2;
3183
+ bits -= 2;
3184
+ } else if (here_val === 17) {
3185
+ n = here_bits + 3;
3186
+ while (bits < n) {
3187
+ if (have === 0) break inf_leave;
3188
+ have--;
3189
+ hold += input[next++] << bits;
3190
+ bits += 8;
3191
+ }
3192
+ hold >>>= here_bits;
3193
+ bits -= here_bits;
3194
+ len = 0;
3195
+ copy = 3 + (hold & 7);
3196
+ hold >>>= 3;
3197
+ bits -= 3;
3198
+ } else {
3199
+ n = here_bits + 7;
3200
+ while (bits < n) {
3201
+ if (have === 0) break inf_leave;
3202
+ have--;
3203
+ hold += input[next++] << bits;
3204
+ bits += 8;
3205
+ }
3206
+ hold >>>= here_bits;
3207
+ bits -= here_bits;
3208
+ len = 0;
3209
+ copy = 11 + (hold & 127);
3210
+ hold >>>= 7;
3211
+ bits -= 7;
3212
+ }
3213
+ if (state.have + copy > state.nlen + state.ndist) {
3214
+ strm.msg = "invalid bit length repeat";
3215
+ state.mode = BAD;
3216
+ break;
3217
+ }
3218
+ while (copy--) state.lens[state.have++] = len;
3219
+ }
3220
+ }
3221
+ if (state.mode === BAD) break;
3222
+ if (state.lens[256] === 0) {
3223
+ strm.msg = "invalid code -- missing end-of-block";
3224
+ state.mode = BAD;
3225
+ break;
3226
+ }
3227
+ state.lenbits = 9;
3228
+ opts = { bits: state.lenbits };
3229
+ ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
3230
+ state.lenbits = opts.bits;
3231
+ if (ret) {
3232
+ strm.msg = "invalid literal/lengths set";
3233
+ state.mode = BAD;
3234
+ break;
3235
+ }
3236
+ state.distbits = 6;
3237
+ state.distcode = state.distdyn;
3238
+ opts = { bits: state.distbits };
3239
+ ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
3240
+ state.distbits = opts.bits;
3241
+ if (ret) {
3242
+ strm.msg = "invalid distances set";
3243
+ state.mode = BAD;
3244
+ break;
3245
+ }
3246
+ state.mode = LEN_;
3247
+ if (flush === Z_TREES) break inf_leave;
3248
+ case LEN_: state.mode = LEN;
3249
+ case LEN:
3250
+ if (have >= 6 && left >= 258) {
3251
+ strm.next_out = put;
3252
+ strm.avail_out = left;
3253
+ strm.next_in = next;
3254
+ strm.avail_in = have;
3255
+ state.hold = hold;
3256
+ state.bits = bits;
3257
+ inflate_fast(strm, _out);
3258
+ put = strm.next_out;
3259
+ output = strm.output;
3260
+ left = strm.avail_out;
3261
+ next = strm.next_in;
3262
+ input = strm.input;
3263
+ have = strm.avail_in;
3264
+ hold = state.hold;
3265
+ bits = state.bits;
3266
+ if (state.mode === TYPE) state.back = -1;
3267
+ break;
3268
+ }
3269
+ state.back = 0;
3270
+ for (;;) {
3271
+ here = state.lencode[hold & (1 << state.lenbits) - 1];
3272
+ here_bits = here >>> 24;
3273
+ here_op = here >>> 16 & 255;
3274
+ here_val = here & 65535;
3275
+ if (here_bits <= bits) break;
3276
+ if (have === 0) break inf_leave;
3277
+ have--;
3278
+ hold += input[next++] << bits;
3279
+ bits += 8;
3280
+ }
3281
+ if (here_op && (here_op & 240) === 0) {
3282
+ last_bits = here_bits;
3283
+ last_op = here_op;
3284
+ last_val = here_val;
3285
+ for (;;) {
3286
+ here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
3287
+ here_bits = here >>> 24;
3288
+ here_op = here >>> 16 & 255;
3289
+ here_val = here & 65535;
3290
+ if (last_bits + here_bits <= bits) break;
3291
+ if (have === 0) break inf_leave;
3292
+ have--;
3293
+ hold += input[next++] << bits;
3294
+ bits += 8;
3295
+ }
3296
+ hold >>>= last_bits;
3297
+ bits -= last_bits;
3298
+ state.back += last_bits;
3299
+ }
3300
+ hold >>>= here_bits;
3301
+ bits -= here_bits;
3302
+ state.back += here_bits;
3303
+ state.length = here_val;
3304
+ if (here_op === 0) {
3305
+ state.mode = LIT;
3306
+ break;
3307
+ }
3308
+ if (here_op & 32) {
3309
+ state.back = -1;
3310
+ state.mode = TYPE;
3311
+ break;
3312
+ }
3313
+ if (here_op & 64) {
3314
+ strm.msg = "invalid literal/length code";
3315
+ state.mode = BAD;
3316
+ break;
3317
+ }
3318
+ state.extra = here_op & 15;
3319
+ state.mode = LENEXT;
3320
+ case LENEXT:
3321
+ if (state.extra) {
3322
+ n = state.extra;
3323
+ while (bits < n) {
3324
+ if (have === 0) break inf_leave;
3325
+ have--;
3326
+ hold += input[next++] << bits;
3327
+ bits += 8;
3328
+ }
3329
+ state.length += hold & (1 << state.extra) - 1;
3330
+ hold >>>= state.extra;
3331
+ bits -= state.extra;
3332
+ state.back += state.extra;
3333
+ }
3334
+ state.was = state.length;
3335
+ state.mode = DIST;
3336
+ case DIST:
3337
+ for (;;) {
3338
+ here = state.distcode[hold & (1 << state.distbits) - 1];
3339
+ here_bits = here >>> 24;
3340
+ here_op = here >>> 16 & 255;
3341
+ here_val = here & 65535;
3342
+ if (here_bits <= bits) break;
3343
+ if (have === 0) break inf_leave;
3344
+ have--;
3345
+ hold += input[next++] << bits;
3346
+ bits += 8;
3347
+ }
3348
+ if ((here_op & 240) === 0) {
3349
+ last_bits = here_bits;
3350
+ last_op = here_op;
3351
+ last_val = here_val;
3352
+ for (;;) {
3353
+ here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
3354
+ here_bits = here >>> 24;
3355
+ here_op = here >>> 16 & 255;
3356
+ here_val = here & 65535;
3357
+ if (last_bits + here_bits <= bits) break;
3358
+ if (have === 0) break inf_leave;
3359
+ have--;
3360
+ hold += input[next++] << bits;
3361
+ bits += 8;
3362
+ }
3363
+ hold >>>= last_bits;
3364
+ bits -= last_bits;
3365
+ state.back += last_bits;
3366
+ }
3367
+ hold >>>= here_bits;
3368
+ bits -= here_bits;
3369
+ state.back += here_bits;
3370
+ if (here_op & 64) {
3371
+ strm.msg = "invalid distance code";
3372
+ state.mode = BAD;
3373
+ break;
3374
+ }
3375
+ state.offset = here_val;
3376
+ state.extra = here_op & 15;
3377
+ state.mode = DISTEXT;
3378
+ case DISTEXT:
3379
+ if (state.extra) {
3380
+ n = state.extra;
3381
+ while (bits < n) {
3382
+ if (have === 0) break inf_leave;
3383
+ have--;
3384
+ hold += input[next++] << bits;
3385
+ bits += 8;
3386
+ }
3387
+ state.offset += hold & (1 << state.extra) - 1;
3388
+ hold >>>= state.extra;
3389
+ bits -= state.extra;
3390
+ state.back += state.extra;
3391
+ }
3392
+ if (state.offset > state.dmax) {
3393
+ strm.msg = "invalid distance too far back";
3394
+ state.mode = BAD;
3395
+ break;
3396
+ }
3397
+ state.mode = MATCH;
3398
+ case MATCH:
3399
+ if (left === 0) break inf_leave;
3400
+ copy = _out - left;
3401
+ if (state.offset > copy) {
3402
+ copy = state.offset - copy;
3403
+ if (copy > state.whave) {
3404
+ if (state.sane) {
3405
+ strm.msg = "invalid distance too far back";
3406
+ state.mode = BAD;
3407
+ break;
3408
+ }
3409
+ }
3410
+ if (copy > state.wnext) {
3411
+ copy -= state.wnext;
3412
+ from = state.wsize - copy;
3413
+ } else from = state.wnext - copy;
3414
+ if (copy > state.length) copy = state.length;
3415
+ from_source = state.window;
3416
+ } else {
3417
+ from_source = output;
3418
+ from = put - state.offset;
3419
+ copy = state.length;
3420
+ }
3421
+ if (copy > left) copy = left;
3422
+ left -= copy;
3423
+ state.length -= copy;
3424
+ do
3425
+ output[put++] = from_source[from++];
3426
+ while (--copy);
3427
+ if (state.length === 0) state.mode = LEN;
3428
+ break;
3429
+ case LIT:
3430
+ if (left === 0) break inf_leave;
3431
+ output[put++] = state.length;
3432
+ left--;
3433
+ state.mode = LEN;
3434
+ break;
3435
+ case CHECK:
3436
+ if (state.wrap) {
3437
+ while (bits < 32) {
3438
+ if (have === 0) break inf_leave;
3439
+ have--;
3440
+ hold |= input[next++] << bits;
3441
+ bits += 8;
3442
+ }
3443
+ _out -= left;
3444
+ strm.total_out += _out;
3445
+ state.total += _out;
3446
+ if (_out) strm.adler = state.check = state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);
3447
+ _out = left;
3448
+ if ((state.flags ? hold : zswap32(hold)) !== state.check) {
3449
+ strm.msg = "incorrect data check";
3450
+ state.mode = BAD;
3451
+ break;
3452
+ }
3453
+ hold = 0;
3454
+ bits = 0;
3455
+ }
3456
+ state.mode = LENGTH;
3457
+ case LENGTH:
3458
+ if (state.wrap && state.flags) {
3459
+ while (bits < 32) {
3460
+ if (have === 0) break inf_leave;
3461
+ have--;
3462
+ hold += input[next++] << bits;
3463
+ bits += 8;
3464
+ }
3465
+ if (hold !== (state.total & 4294967295)) {
3466
+ strm.msg = "incorrect length check";
3467
+ state.mode = BAD;
3468
+ break;
3469
+ }
3470
+ hold = 0;
3471
+ bits = 0;
3472
+ }
3473
+ state.mode = DONE;
3474
+ case DONE:
3475
+ ret = Z_STREAM_END;
3476
+ break inf_leave;
3477
+ case BAD:
3478
+ ret = Z_DATA_ERROR;
3479
+ break inf_leave;
3480
+ case MEM: return Z_MEM_ERROR;
3481
+ case SYNC:
3482
+ default: return Z_STREAM_ERROR;
3483
+ }
3484
+ strm.next_out = put;
3485
+ strm.avail_out = left;
3486
+ strm.next_in = next;
3487
+ strm.avail_in = have;
3488
+ state.hold = hold;
3489
+ state.bits = bits;
3490
+ if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {
3491
+ if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
3492
+ state.mode = MEM;
3493
+ return Z_MEM_ERROR;
3494
+ }
3495
+ }
3496
+ _in -= strm.avail_in;
3497
+ _out -= strm.avail_out;
3498
+ strm.total_in += _in;
3499
+ strm.total_out += _out;
3500
+ state.total += _out;
3501
+ if (state.wrap && _out) strm.adler = state.check = state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);
3502
+ strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
3503
+ if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) ret = Z_BUF_ERROR;
3504
+ return ret;
3505
+ }
3506
+ function inflateEnd(strm) {
3507
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
3508
+ var state = strm.state;
3509
+ if (state.window) state.window = null;
3510
+ strm.state = null;
3511
+ return Z_OK;
3512
+ }
3513
+ function inflateGetHeader(strm, head) {
3514
+ var state;
3515
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
3516
+ state = strm.state;
3517
+ if ((state.wrap & 2) === 0) return Z_STREAM_ERROR;
3518
+ state.head = head;
3519
+ head.done = false;
3520
+ return Z_OK;
3521
+ }
3522
+ function inflateSetDictionary(strm, dictionary) {
3523
+ var dictLength = dictionary.length;
3524
+ var state;
3525
+ var dictid;
3526
+ var ret;
3527
+ if (!strm || !strm.state) return Z_STREAM_ERROR;
3528
+ state = strm.state;
3529
+ if (state.wrap !== 0 && state.mode !== DICT) return Z_STREAM_ERROR;
3530
+ if (state.mode === DICT) {
3531
+ dictid = 1;
3532
+ dictid = adler32(dictid, dictionary, dictLength, 0);
3533
+ if (dictid !== state.check) return Z_DATA_ERROR;
3534
+ }
3535
+ ret = updatewindow(strm, dictionary, dictLength, dictLength);
3536
+ if (ret) {
3537
+ state.mode = MEM;
3538
+ return Z_MEM_ERROR;
3539
+ }
3540
+ state.havedict = 1;
3541
+ return Z_OK;
3542
+ }
3543
+ exports.inflateReset = inflateReset;
3544
+ exports.inflateReset2 = inflateReset2;
3545
+ exports.inflateResetKeep = inflateResetKeep;
3546
+ exports.inflateInit = inflateInit;
3547
+ exports.inflateInit2 = inflateInit2;
3548
+ exports.inflate = inflate;
3549
+ exports.inflateEnd = inflateEnd;
3550
+ exports.inflateGetHeader = inflateGetHeader;
3551
+ exports.inflateSetDictionary = inflateSetDictionary;
3552
+ exports.inflateInfo = "pako inflate (from Nodeca project)";
3553
+ }));
3554
+ //#endregion
3555
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/constants.js
3556
+ var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3557
+ module.exports = {
3558
+ Z_NO_FLUSH: 0,
3559
+ Z_PARTIAL_FLUSH: 1,
3560
+ Z_SYNC_FLUSH: 2,
3561
+ Z_FULL_FLUSH: 3,
3562
+ Z_FINISH: 4,
3563
+ Z_BLOCK: 5,
3564
+ Z_TREES: 6,
3565
+ Z_OK: 0,
3566
+ Z_STREAM_END: 1,
3567
+ Z_NEED_DICT: 2,
3568
+ Z_ERRNO: -1,
3569
+ Z_STREAM_ERROR: -2,
3570
+ Z_DATA_ERROR: -3,
3571
+ Z_BUF_ERROR: -5,
3572
+ Z_NO_COMPRESSION: 0,
3573
+ Z_BEST_SPEED: 1,
3574
+ Z_BEST_COMPRESSION: 9,
3575
+ Z_DEFAULT_COMPRESSION: -1,
3576
+ Z_FILTERED: 1,
3577
+ Z_HUFFMAN_ONLY: 2,
3578
+ Z_RLE: 3,
3579
+ Z_FIXED: 4,
3580
+ Z_DEFAULT_STRATEGY: 0,
3581
+ Z_BINARY: 0,
3582
+ Z_TEXT: 1,
3583
+ Z_UNKNOWN: 2,
3584
+ Z_DEFLATED: 8
3585
+ };
3586
+ }));
3587
+ //#endregion
3588
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js
3589
+ var require_gzheader = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3590
+ function GZheader() {
3591
+ this.text = 0;
3592
+ this.time = 0;
3593
+ this.xflags = 0;
3594
+ this.os = 0;
3595
+ this.extra = null;
3596
+ this.extra_len = 0;
3597
+ this.name = "";
3598
+ this.comment = "";
3599
+ this.hcrc = 0;
3600
+ this.done = false;
3601
+ }
3602
+ module.exports = GZheader;
3603
+ }));
3604
+ //#endregion
3605
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/lib/inflate.js
3606
+ var require_inflate = /* @__PURE__ */ __commonJSMin(((exports) => {
3607
+ var zlib_inflate = require_inflate$1();
3608
+ var utils = require_common();
3609
+ var strings = require_strings();
3610
+ var c = require_constants();
3611
+ var msg = require_messages();
3612
+ var ZStream = require_zstream();
3613
+ var GZheader = require_gzheader();
3614
+ var toString = Object.prototype.toString;
3615
+ /**
3616
+ * class Inflate
3617
+ *
3618
+ * Generic JS-style wrapper for zlib calls. If you don't need
3619
+ * streaming behaviour - use more simple functions: [[inflate]]
3620
+ * and [[inflateRaw]].
3621
+ **/
3622
+ /**
3623
+ * Inflate.result -> Uint8Array|Array|String
3624
+ *
3625
+ * Uncompressed result, generated by default [[Inflate#onData]]
3626
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
3627
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
3628
+ * push a chunk with explicit flush (call [[Inflate#push]] with
3629
+ * `Z_SYNC_FLUSH` param).
3630
+ **/
3631
+ /**
3632
+ * Inflate.err -> Number
3633
+ *
3634
+ * Error code after inflate finished. 0 (Z_OK) on success.
3635
+ * Should be checked if broken data possible.
3636
+ **/
3637
+ /**
3638
+ * Inflate.msg -> String
3639
+ *
3640
+ * Error message, if [[Inflate.err]] != 0
3641
+ **/
3642
+ /**
3643
+ * new Inflate(options)
3644
+ * - options (Object): zlib inflate options.
3645
+ *
3646
+ * Creates new inflator instance with specified params. Throws exception
3647
+ * on bad params. Supported options:
3648
+ *
3649
+ * - `windowBits`
3650
+ * - `dictionary`
3651
+ *
3652
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
3653
+ * for more information on these.
3654
+ *
3655
+ * Additional options, for internal needs:
3656
+ *
3657
+ * - `chunkSize` - size of generated data chunks (16K by default)
3658
+ * - `raw` (Boolean) - do raw inflate
3659
+ * - `to` (String) - if equal to 'string', then result will be converted
3660
+ * from utf8 to utf16 (javascript) string. When string output requested,
3661
+ * chunk length can differ from `chunkSize`, depending on content.
3662
+ *
3663
+ * By default, when no options set, autodetect deflate/gzip data format via
3664
+ * wrapper header.
3665
+ *
3666
+ * ##### Example:
3667
+ *
3668
+ * ```javascript
3669
+ * var pako = require('pako')
3670
+ * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
3671
+ * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
3672
+ *
3673
+ * var inflate = new pako.Inflate({ level: 3});
3674
+ *
3675
+ * inflate.push(chunk1, false);
3676
+ * inflate.push(chunk2, true); // true -> last chunk
3677
+ *
3678
+ * if (inflate.err) { throw new Error(inflate.err); }
3679
+ *
3680
+ * console.log(inflate.result);
3681
+ * ```
3682
+ **/
3683
+ function Inflate(options) {
3684
+ if (!(this instanceof Inflate)) return new Inflate(options);
3685
+ this.options = utils.assign({
3686
+ chunkSize: 16384,
3687
+ windowBits: 0,
3688
+ to: ""
3689
+ }, options || {});
3690
+ var opt = this.options;
3691
+ if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
3692
+ opt.windowBits = -opt.windowBits;
3693
+ if (opt.windowBits === 0) opt.windowBits = -15;
3694
+ }
3695
+ if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) opt.windowBits += 32;
3696
+ if (opt.windowBits > 15 && opt.windowBits < 48) {
3697
+ if ((opt.windowBits & 15) === 0) opt.windowBits |= 15;
3698
+ }
3699
+ this.err = 0;
3700
+ this.msg = "";
3701
+ this.ended = false;
3702
+ this.chunks = [];
3703
+ this.strm = new ZStream();
3704
+ this.strm.avail_out = 0;
3705
+ var status = zlib_inflate.inflateInit2(this.strm, opt.windowBits);
3706
+ if (status !== c.Z_OK) throw new Error(msg[status]);
3707
+ this.header = new GZheader();
3708
+ zlib_inflate.inflateGetHeader(this.strm, this.header);
3709
+ if (opt.dictionary) {
3710
+ if (typeof opt.dictionary === "string") opt.dictionary = strings.string2buf(opt.dictionary);
3711
+ else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") opt.dictionary = new Uint8Array(opt.dictionary);
3712
+ if (opt.raw) {
3713
+ status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
3714
+ if (status !== c.Z_OK) throw new Error(msg[status]);
3715
+ }
3716
+ }
3717
+ }
3718
+ /**
3719
+ * Inflate#push(data[, mode]) -> Boolean
3720
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
3721
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
3722
+ * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
3723
+ *
3724
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
3725
+ * new output chunks. Returns `true` on success. The last data block must have
3726
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
3727
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
3728
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
3729
+ *
3730
+ * On fail call [[Inflate#onEnd]] with error code and return false.
3731
+ *
3732
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
3733
+ * format is detected automatically). Also, don't skip last param and always
3734
+ * use the same type in your code (boolean or number). That will improve JS speed.
3735
+ *
3736
+ * For regular `Array`-s make sure all elements are [0..255].
3737
+ *
3738
+ * ##### Example
3739
+ *
3740
+ * ```javascript
3741
+ * push(chunk, false); // push one of data chunks
3742
+ * ...
3743
+ * push(chunk, true); // push last chunk
3744
+ * ```
3745
+ **/
3746
+ Inflate.prototype.push = function(data, mode) {
3747
+ var strm = this.strm;
3748
+ var chunkSize = this.options.chunkSize;
3749
+ var dictionary = this.options.dictionary;
3750
+ var status, _mode;
3751
+ var next_out_utf8, tail, utf8str;
3752
+ var allowBufError = false;
3753
+ if (this.ended) return false;
3754
+ _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH;
3755
+ if (typeof data === "string") strm.input = strings.binstring2buf(data);
3756
+ else if (toString.call(data) === "[object ArrayBuffer]") strm.input = new Uint8Array(data);
3757
+ else strm.input = data;
3758
+ strm.next_in = 0;
3759
+ strm.avail_in = strm.input.length;
3760
+ do {
3761
+ if (strm.avail_out === 0) {
3762
+ strm.output = new utils.Buf8(chunkSize);
3763
+ strm.next_out = 0;
3764
+ strm.avail_out = chunkSize;
3765
+ }
3766
+ status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);
3767
+ if (status === c.Z_NEED_DICT && dictionary) status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);
3768
+ if (status === c.Z_BUF_ERROR && allowBufError === true) {
3769
+ status = c.Z_OK;
3770
+ allowBufError = false;
3771
+ }
3772
+ if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
3773
+ this.onEnd(status);
3774
+ this.ended = true;
3775
+ return false;
3776
+ }
3777
+ if (strm.next_out) {
3778
+ if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) if (this.options.to === "string") {
3779
+ next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
3780
+ tail = strm.next_out - next_out_utf8;
3781
+ utf8str = strings.buf2string(strm.output, next_out_utf8);
3782
+ strm.next_out = tail;
3783
+ strm.avail_out = chunkSize - tail;
3784
+ if (tail) utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0);
3785
+ this.onData(utf8str);
3786
+ } else this.onData(utils.shrinkBuf(strm.output, strm.next_out));
3787
+ }
3788
+ if (strm.avail_in === 0 && strm.avail_out === 0) allowBufError = true;
3789
+ } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
3790
+ if (status === c.Z_STREAM_END) _mode = c.Z_FINISH;
3791
+ if (_mode === c.Z_FINISH) {
3792
+ status = zlib_inflate.inflateEnd(this.strm);
3793
+ this.onEnd(status);
3794
+ this.ended = true;
3795
+ return status === c.Z_OK;
3796
+ }
3797
+ if (_mode === c.Z_SYNC_FLUSH) {
3798
+ this.onEnd(c.Z_OK);
3799
+ strm.avail_out = 0;
3800
+ return true;
3801
+ }
3802
+ return true;
3803
+ };
3804
+ /**
3805
+ * Inflate#onData(chunk) -> Void
3806
+ * - chunk (Uint8Array|Array|String): output data. Type of array depends
3807
+ * on js engine support. When string output requested, each chunk
3808
+ * will be string.
3809
+ *
3810
+ * By default, stores data blocks in `chunks[]` property and glue
3811
+ * those in `onEnd`. Override this handler, if you need another behaviour.
3812
+ **/
3813
+ Inflate.prototype.onData = function(chunk) {
3814
+ this.chunks.push(chunk);
3815
+ };
3816
+ /**
3817
+ * Inflate#onEnd(status) -> Void
3818
+ * - status (Number): inflate status. 0 (Z_OK) on success,
3819
+ * other if not.
3820
+ *
3821
+ * Called either after you tell inflate that the input stream is
3822
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
3823
+ * or if an error happened. By default - join collected chunks,
3824
+ * free memory and fill `results` / `err` properties.
3825
+ **/
3826
+ Inflate.prototype.onEnd = function(status) {
3827
+ if (status === c.Z_OK) if (this.options.to === "string") this.result = this.chunks.join("");
3828
+ else this.result = utils.flattenChunks(this.chunks);
3829
+ this.chunks = [];
3830
+ this.err = status;
3831
+ this.msg = this.strm.msg;
3832
+ };
3833
+ /**
3834
+ * inflate(data[, options]) -> Uint8Array|Array|String
3835
+ * - data (Uint8Array|Array|String): input data to decompress.
3836
+ * - options (Object): zlib inflate options.
3837
+ *
3838
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
3839
+ * format via wrapper header by default. That's why we don't provide
3840
+ * separate `ungzip` method.
3841
+ *
3842
+ * Supported options are:
3843
+ *
3844
+ * - windowBits
3845
+ *
3846
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
3847
+ * for more information.
3848
+ *
3849
+ * Sugar (options):
3850
+ *
3851
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
3852
+ * negative windowBits implicitly.
3853
+ * - `to` (String) - if equal to 'string', then result will be converted
3854
+ * from utf8 to utf16 (javascript) string. When string output requested,
3855
+ * chunk length can differ from `chunkSize`, depending on content.
3856
+ *
3857
+ *
3858
+ * ##### Example:
3859
+ *
3860
+ * ```javascript
3861
+ * var pako = require('pako')
3862
+ * , input = pako.deflate([1,2,3,4,5,6,7,8,9])
3863
+ * , output;
3864
+ *
3865
+ * try {
3866
+ * output = pako.inflate(input);
3867
+ * } catch (err)
3868
+ * console.log(err);
3869
+ * }
3870
+ * ```
3871
+ **/
3872
+ function inflate(input, options) {
3873
+ var inflator = new Inflate(options);
3874
+ inflator.push(input, true);
3875
+ if (inflator.err) throw inflator.msg || msg[inflator.err];
3876
+ return inflator.result;
3877
+ }
3878
+ /**
3879
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
3880
+ * - data (Uint8Array|Array|String): input data to decompress.
3881
+ * - options (Object): zlib inflate options.
3882
+ *
3883
+ * The same as [[inflate]], but creates raw data, without wrapper
3884
+ * (header and adler32 crc).
3885
+ **/
3886
+ function inflateRaw(input, options) {
3887
+ options = options || {};
3888
+ options.raw = true;
3889
+ return inflate(input, options);
3890
+ }
3891
+ /**
3892
+ * ungzip(data[, options]) -> Uint8Array|Array|String
3893
+ * - data (Uint8Array|Array|String): input data to decompress.
3894
+ * - options (Object): zlib inflate options.
3895
+ *
3896
+ * Just shortcut to [[inflate]], because it autodetects format
3897
+ * by header.content. Done for convenience.
3898
+ **/
3899
+ exports.Inflate = Inflate;
3900
+ exports.inflate = inflate;
3901
+ exports.inflateRaw = inflateRaw;
3902
+ exports.ungzip = inflate;
3903
+ }));
3904
+ //#endregion
3905
+ //#region ../../../node_modules/.bun/pako@1.0.11/node_modules/pako/index.js
3906
+ var require_pako = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3907
+ var assign = require_common().assign;
3908
+ var deflate = require_deflate();
3909
+ var inflate = require_inflate();
3910
+ var constants = require_constants();
3911
+ var pako = {};
3912
+ assign(pako, deflate, inflate, constants);
3913
+ module.exports = pako;
3914
+ }));
3915
+ //#endregion
3916
+ //#region ../../../node_modules/.bun/upng-js@2.1.0/node_modules/upng-js/UPNG.js
3917
+ var require_UPNG = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3918
+ (function() {
3919
+ var UPNG = {};
3920
+ var pako;
3921
+ if (typeof module == "object") module.exports = UPNG;
3922
+ else window.UPNG = UPNG;
3923
+ if (typeof __require == "function") pako = require_pako();
3924
+ else pako = window.pako;
3925
+ (function(UPNG, pako) {
3926
+ UPNG.toRGBA8 = function(out) {
3927
+ var w = out.width, h = out.height;
3928
+ if (out.tabs.acTL == null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];
3929
+ var frms = [];
3930
+ if (out.frames[0].data == null) out.frames[0].data = out.data;
3931
+ var img, empty = new Uint8Array(w * h * 4);
3932
+ for (var i = 0; i < out.frames.length; i++) {
3933
+ var frm = out.frames[i];
3934
+ var fx = frm.rect.x, fy = frm.rect.y, fw = frm.rect.width, fh = frm.rect.height;
3935
+ var fdata = UPNG.toRGBA8.decodeImage(frm.data, fw, fh, out);
3936
+ if (i == 0) img = fdata;
3937
+ else if (frm.blend == 0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);
3938
+ else if (frm.blend == 1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);
3939
+ frms.push(img.buffer);
3940
+ img = img.slice(0);
3941
+ if (frm.dispose == 0) {} else if (frm.dispose == 1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);
3942
+ else if (frm.dispose == 2) {
3943
+ var pi = i - 1;
3944
+ while (out.frames[pi].dispose == 2) pi--;
3945
+ img = new Uint8Array(frms[pi]).slice(0);
3946
+ }
3947
+ }
3948
+ return frms;
3949
+ };
3950
+ UPNG.toRGBA8.decodeImage = function(data, w, h, out) {
3951
+ var area = w * h, bpp = UPNG.decode._getBPP(out);
3952
+ var bpl = Math.ceil(w * bpp / 8);
3953
+ var bf = new Uint8Array(area * 4), bf32 = new Uint32Array(bf.buffer);
3954
+ var ctype = out.ctype, depth = out.depth;
3955
+ var rs = UPNG._bin.readUshort;
3956
+ if (ctype == 6) {
3957
+ var qarea = area << 2;
3958
+ if (depth == 8) for (var i = 0; i < qarea; i++) bf[i] = data[i];
3959
+ if (depth == 16) for (var i = 0; i < qarea; i++) bf[i] = data[i << 1];
3960
+ } else if (ctype == 2) {
3961
+ var ts = out.tabs["tRNS"], tr = -1, tg = -1, tb = -1;
3962
+ if (ts) {
3963
+ tr = ts[0];
3964
+ tg = ts[1];
3965
+ tb = ts[2];
3966
+ }
3967
+ if (depth == 8) for (var i = 0; i < area; i++) {
3968
+ var qi = i << 2, ti = i * 3;
3969
+ bf[qi] = data[ti];
3970
+ bf[qi + 1] = data[ti + 1];
3971
+ bf[qi + 2] = data[ti + 2];
3972
+ bf[qi + 3] = 255;
3973
+ if (tr != -1 && data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
3974
+ }
3975
+ if (depth == 16) for (var i = 0; i < area; i++) {
3976
+ var qi = i << 2, ti = i * 6;
3977
+ bf[qi] = data[ti];
3978
+ bf[qi + 1] = data[ti + 2];
3979
+ bf[qi + 2] = data[ti + 4];
3980
+ bf[qi + 3] = 255;
3981
+ if (tr != -1 && rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
3982
+ }
3983
+ } else if (ctype == 3) {
3984
+ var p = out.tabs["PLTE"], ap = out.tabs["tRNS"], tl = ap ? ap.length : 0;
3985
+ if (depth == 1) for (var y = 0; y < h; y++) {
3986
+ var s0 = y * bpl, t0 = y * w;
3987
+ for (var i = 0; i < w; i++) {
3988
+ var qi = t0 + i << 2, j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1, cj = 3 * j;
3989
+ bf[qi] = p[cj];
3990
+ bf[qi + 1] = p[cj + 1];
3991
+ bf[qi + 2] = p[cj + 2];
3992
+ bf[qi + 3] = j < tl ? ap[j] : 255;
3993
+ }
3994
+ }
3995
+ if (depth == 2) for (var y = 0; y < h; y++) {
3996
+ var s0 = y * bpl, t0 = y * w;
3997
+ for (var i = 0; i < w; i++) {
3998
+ var qi = t0 + i << 2, j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3, cj = 3 * j;
3999
+ bf[qi] = p[cj];
4000
+ bf[qi + 1] = p[cj + 1];
4001
+ bf[qi + 2] = p[cj + 2];
4002
+ bf[qi + 3] = j < tl ? ap[j] : 255;
4003
+ }
4004
+ }
4005
+ if (depth == 4) for (var y = 0; y < h; y++) {
4006
+ var s0 = y * bpl, t0 = y * w;
4007
+ for (var i = 0; i < w; i++) {
4008
+ var qi = t0 + i << 2, j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15, cj = 3 * j;
4009
+ bf[qi] = p[cj];
4010
+ bf[qi + 1] = p[cj + 1];
4011
+ bf[qi + 2] = p[cj + 2];
4012
+ bf[qi + 3] = j < tl ? ap[j] : 255;
4013
+ }
4014
+ }
4015
+ if (depth == 8) for (var i = 0; i < area; i++) {
4016
+ var qi = i << 2, j = data[i], cj = 3 * j;
4017
+ bf[qi] = p[cj];
4018
+ bf[qi + 1] = p[cj + 1];
4019
+ bf[qi + 2] = p[cj + 2];
4020
+ bf[qi + 3] = j < tl ? ap[j] : 255;
4021
+ }
4022
+ } else if (ctype == 4) {
4023
+ if (depth == 8) for (var i = 0; i < area; i++) {
4024
+ var qi = i << 2, di = i << 1, gr = data[di];
4025
+ bf[qi] = gr;
4026
+ bf[qi + 1] = gr;
4027
+ bf[qi + 2] = gr;
4028
+ bf[qi + 3] = data[di + 1];
4029
+ }
4030
+ if (depth == 16) for (var i = 0; i < area; i++) {
4031
+ var qi = i << 2, di = i << 2, gr = data[di];
4032
+ bf[qi] = gr;
4033
+ bf[qi + 1] = gr;
4034
+ bf[qi + 2] = gr;
4035
+ bf[qi + 3] = data[di + 2];
4036
+ }
4037
+ } else if (ctype == 0) {
4038
+ var tr = out.tabs["tRNS"] ? out.tabs["tRNS"] : -1;
4039
+ if (depth == 1) for (var i = 0; i < area; i++) {
4040
+ var gr = 255 * (data[i >> 3] >> 7 - (i & 7) & 1), al = gr == tr * 255 ? 0 : 255;
4041
+ bf32[i] = al << 24 | gr << 16 | gr << 8 | gr;
4042
+ }
4043
+ if (depth == 2) for (var i = 0; i < area; i++) {
4044
+ var gr = 85 * (data[i >> 2] >> 6 - ((i & 3) << 1) & 3), al = gr == tr * 85 ? 0 : 255;
4045
+ bf32[i] = al << 24 | gr << 16 | gr << 8 | gr;
4046
+ }
4047
+ if (depth == 4) for (var i = 0; i < area; i++) {
4048
+ var gr = 17 * (data[i >> 1] >> 4 - ((i & 1) << 2) & 15), al = gr == tr * 17 ? 0 : 255;
4049
+ bf32[i] = al << 24 | gr << 16 | gr << 8 | gr;
4050
+ }
4051
+ if (depth == 8) for (var i = 0; i < area; i++) {
4052
+ var gr = data[i], al = gr == tr ? 0 : 255;
4053
+ bf32[i] = al << 24 | gr << 16 | gr << 8 | gr;
4054
+ }
4055
+ if (depth == 16) for (var i = 0; i < area; i++) {
4056
+ var gr = data[i << 1], al = rs(data, i << 1) == tr ? 0 : 255;
4057
+ bf32[i] = al << 24 | gr << 16 | gr << 8 | gr;
4058
+ }
4059
+ }
4060
+ return bf;
4061
+ };
4062
+ UPNG.decode = function(buff) {
4063
+ var data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort, rUi = bin.readUint;
4064
+ var out = {
4065
+ tabs: {},
4066
+ frames: []
4067
+ };
4068
+ var dd = new Uint8Array(data.length), doff = 0;
4069
+ var fd, foff = 0;
4070
+ var mgck = [
4071
+ 137,
4072
+ 80,
4073
+ 78,
4074
+ 71,
4075
+ 13,
4076
+ 10,
4077
+ 26,
4078
+ 10
4079
+ ];
4080
+ for (var i = 0; i < 8; i++) if (data[i] != mgck[i]) throw "The input is not a PNG file!";
4081
+ while (offset < data.length) {
4082
+ var len = bin.readUint(data, offset);
4083
+ offset += 4;
4084
+ var type = bin.readASCII(data, offset, 4);
4085
+ offset += 4;
4086
+ if (type == "IHDR") UPNG.decode._IHDR(data, offset, out);
4087
+ else if (type == "IDAT") {
4088
+ for (var i = 0; i < len; i++) dd[doff + i] = data[offset + i];
4089
+ doff += len;
4090
+ } else if (type == "acTL") {
4091
+ out.tabs[type] = {
4092
+ num_frames: rUi(data, offset),
4093
+ num_plays: rUi(data, offset + 4)
4094
+ };
4095
+ fd = new Uint8Array(data.length);
4096
+ } else if (type == "fcTL") {
4097
+ if (foff != 0) {
4098
+ var fr = out.frames[out.frames.length - 1];
4099
+ fr.data = UPNG.decode._decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);
4100
+ foff = 0;
4101
+ }
4102
+ var rct = {
4103
+ x: rUi(data, offset + 12),
4104
+ y: rUi(data, offset + 16),
4105
+ width: rUi(data, offset + 4),
4106
+ height: rUi(data, offset + 8)
4107
+ };
4108
+ var del = rUs(data, offset + 22);
4109
+ del = rUs(data, offset + 20) / (del == 0 ? 100 : del);
4110
+ var frm = {
4111
+ rect: rct,
4112
+ delay: Math.round(del * 1e3),
4113
+ dispose: data[offset + 24],
4114
+ blend: data[offset + 25]
4115
+ };
4116
+ out.frames.push(frm);
4117
+ } else if (type == "fdAT") {
4118
+ for (var i = 0; i < len - 4; i++) fd[foff + i] = data[offset + i + 4];
4119
+ foff += len - 4;
4120
+ } else if (type == "pHYs") out.tabs[type] = [
4121
+ bin.readUint(data, offset),
4122
+ bin.readUint(data, offset + 4),
4123
+ data[offset + 8]
4124
+ ];
4125
+ else if (type == "cHRM") {
4126
+ out.tabs[type] = [];
4127
+ for (var i = 0; i < 8; i++) out.tabs[type].push(bin.readUint(data, offset + i * 4));
4128
+ } else if (type == "tEXt") {
4129
+ if (out.tabs[type] == null) out.tabs[type] = {};
4130
+ var nz = bin.nextZero(data, offset);
4131
+ var keyw = bin.readASCII(data, offset, nz - offset);
4132
+ var text = bin.readASCII(data, nz + 1, offset + len - nz - 1);
4133
+ out.tabs[type][keyw] = text;
4134
+ } else if (type == "iTXt") {
4135
+ if (out.tabs[type] == null) out.tabs[type] = {};
4136
+ var nz = 0, off = offset;
4137
+ nz = bin.nextZero(data, off);
4138
+ var keyw = bin.readASCII(data, off, nz - off);
4139
+ off = nz + 1;
4140
+ data[off];
4141
+ data[off + 1];
4142
+ off += 2;
4143
+ nz = bin.nextZero(data, off);
4144
+ bin.readASCII(data, off, nz - off);
4145
+ off = nz + 1;
4146
+ nz = bin.nextZero(data, off);
4147
+ bin.readUTF8(data, off, nz - off);
4148
+ off = nz + 1;
4149
+ var text = bin.readUTF8(data, off, len - (off - offset));
4150
+ out.tabs[type][keyw] = text;
4151
+ } else if (type == "PLTE") out.tabs[type] = bin.readBytes(data, offset, len);
4152
+ else if (type == "hIST") {
4153
+ var pl = out.tabs["PLTE"].length / 3;
4154
+ out.tabs[type] = [];
4155
+ for (var i = 0; i < pl; i++) out.tabs[type].push(rUs(data, offset + i * 2));
4156
+ } else if (type == "tRNS") {
4157
+ if (out.ctype == 3) out.tabs[type] = bin.readBytes(data, offset, len);
4158
+ else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);
4159
+ else if (out.ctype == 2) out.tabs[type] = [
4160
+ rUs(data, offset),
4161
+ rUs(data, offset + 2),
4162
+ rUs(data, offset + 4)
4163
+ ];
4164
+ } else if (type == "gAMA") out.tabs[type] = bin.readUint(data, offset) / 1e5;
4165
+ else if (type == "sRGB") out.tabs[type] = data[offset];
4166
+ else if (type == "bKGD") {
4167
+ if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];
4168
+ else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [
4169
+ rUs(data, offset),
4170
+ rUs(data, offset + 2),
4171
+ rUs(data, offset + 4)
4172
+ ];
4173
+ else if (out.ctype == 3) out.tabs[type] = data[offset];
4174
+ } else if (type == "IEND") {
4175
+ if (foff != 0) {
4176
+ var fr = out.frames[out.frames.length - 1];
4177
+ fr.data = UPNG.decode._decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);
4178
+ foff = 0;
4179
+ }
4180
+ out.data = UPNG.decode._decompress(out, dd, out.width, out.height);
4181
+ break;
4182
+ }
4183
+ offset += len;
4184
+ bin.readUint(data, offset);
4185
+ offset += 4;
4186
+ }
4187
+ delete out.compress;
4188
+ delete out.interlace;
4189
+ delete out.filter;
4190
+ return out;
4191
+ };
4192
+ UPNG.decode._decompress = function(out, dd, w, h) {
4193
+ if (out.compress == 0) dd = UPNG.decode._inflate(dd);
4194
+ if (out.interlace == 0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);
4195
+ else if (out.interlace == 1) dd = UPNG.decode._readInterlace(dd, out);
4196
+ return dd;
4197
+ };
4198
+ UPNG.decode._inflate = function(data) {
4199
+ return pako["inflate"](data);
4200
+ };
4201
+ UPNG.decode._readInterlace = function(data, out) {
4202
+ var w = out.width, h = out.height;
4203
+ var bpp = UPNG.decode._getBPP(out), cbpp = bpp >> 3, bpl = Math.ceil(w * bpp / 8);
4204
+ var img = new Uint8Array(h * bpl);
4205
+ var di = 0;
4206
+ var starting_row = [
4207
+ 0,
4208
+ 0,
4209
+ 4,
4210
+ 0,
4211
+ 2,
4212
+ 0,
4213
+ 1
4214
+ ];
4215
+ var starting_col = [
4216
+ 0,
4217
+ 4,
4218
+ 0,
4219
+ 2,
4220
+ 0,
4221
+ 1,
4222
+ 0
4223
+ ];
4224
+ var row_increment = [
4225
+ 8,
4226
+ 8,
4227
+ 8,
4228
+ 4,
4229
+ 4,
4230
+ 2,
4231
+ 2
4232
+ ];
4233
+ var col_increment = [
4234
+ 8,
4235
+ 8,
4236
+ 4,
4237
+ 4,
4238
+ 2,
4239
+ 2,
4240
+ 1
4241
+ ];
4242
+ var pass = 0;
4243
+ while (pass < 7) {
4244
+ var ri = row_increment[pass], ci = col_increment[pass];
4245
+ var sw = 0, sh = 0;
4246
+ var cr = starting_row[pass];
4247
+ while (cr < h) {
4248
+ cr += ri;
4249
+ sh++;
4250
+ }
4251
+ var cc = starting_col[pass];
4252
+ while (cc < w) {
4253
+ cc += ci;
4254
+ sw++;
4255
+ }
4256
+ var bpll = Math.ceil(sw * bpp / 8);
4257
+ UPNG.decode._filterZero(data, out, di, sw, sh);
4258
+ var y = 0, row = starting_row[pass];
4259
+ while (row < h) {
4260
+ var col = starting_col[pass];
4261
+ var cdi = di + y * bpll << 3;
4262
+ while (col < w) {
4263
+ if (bpp == 1) {
4264
+ var val = data[cdi >> 3];
4265
+ val = val >> 7 - (cdi & 7) & 1;
4266
+ img[row * bpl + (col >> 3)] |= val << 7 - ((col & 3) << 0);
4267
+ }
4268
+ if (bpp == 2) {
4269
+ var val = data[cdi >> 3];
4270
+ val = val >> 6 - (cdi & 7) & 3;
4271
+ img[row * bpl + (col >> 2)] |= val << 6 - ((col & 3) << 1);
4272
+ }
4273
+ if (bpp == 4) {
4274
+ var val = data[cdi >> 3];
4275
+ val = val >> 4 - (cdi & 7) & 15;
4276
+ img[row * bpl + (col >> 1)] |= val << 4 - ((col & 1) << 2);
4277
+ }
4278
+ if (bpp >= 8) {
4279
+ var ii = row * bpl + col * cbpp;
4280
+ for (var j = 0; j < cbpp; j++) img[ii + j] = data[(cdi >> 3) + j];
4281
+ }
4282
+ cdi += bpp;
4283
+ col += ci;
4284
+ }
4285
+ y++;
4286
+ row += ri;
4287
+ }
4288
+ if (sw * sh != 0) di += sh * (1 + bpll);
4289
+ pass = pass + 1;
4290
+ }
4291
+ return img;
4292
+ };
4293
+ UPNG.decode._getBPP = function(out) {
4294
+ return [
4295
+ 1,
4296
+ null,
4297
+ 3,
4298
+ 1,
4299
+ 2,
4300
+ null,
4301
+ 4
4302
+ ][out.ctype] * out.depth;
4303
+ };
4304
+ UPNG.decode._filterZero = function(data, out, off, w, h) {
4305
+ var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w * bpp / 8), paeth = UPNG.decode._paeth;
4306
+ bpp = Math.ceil(bpp / 8);
4307
+ for (var y = 0; y < h; y++) {
4308
+ var i = off + y * bpl, di = i + y + 1;
4309
+ var type = data[di - 1];
4310
+ if (type == 0) for (var x = 0; x < bpl; x++) data[i + x] = data[di + x];
4311
+ else if (type == 1) {
4312
+ for (var x = 0; x < bpp; x++) data[i + x] = data[di + x];
4313
+ for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpp] & 255;
4314
+ } else if (y == 0) {
4315
+ for (var x = 0; x < bpp; x++) data[i + x] = data[di + x];
4316
+ if (type == 2) for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] & 255;
4317
+ if (type == 3) for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] + (data[i + x - bpp] >> 1) & 255;
4318
+ if (type == 4) for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] + paeth(data[i + x - bpp], 0, 0) & 255;
4319
+ } else {
4320
+ if (type == 2) for (var x = 0; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpl] & 255;
4321
+ if (type == 3) {
4322
+ for (var x = 0; x < bpp; x++) data[i + x] = data[di + x] + (data[i + x - bpl] >> 1) & 255;
4323
+ for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] + (data[i + x - bpl] + data[i + x - bpp] >> 1) & 255;
4324
+ }
4325
+ if (type == 4) {
4326
+ for (var x = 0; x < bpp; x++) data[i + x] = data[di + x] + paeth(0, data[i + x - bpl], 0) & 255;
4327
+ for (var x = bpp; x < bpl; x++) data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]) & 255;
4328
+ }
4329
+ }
4330
+ }
4331
+ return data;
4332
+ };
4333
+ UPNG.decode._paeth = function(a, b, c) {
4334
+ var p = a + b - c, pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c);
4335
+ if (pa <= pb && pa <= pc) return a;
4336
+ else if (pb <= pc) return b;
4337
+ return c;
4338
+ };
4339
+ UPNG.decode._IHDR = function(data, offset, out) {
4340
+ var bin = UPNG._bin;
4341
+ out.width = bin.readUint(data, offset);
4342
+ offset += 4;
4343
+ out.height = bin.readUint(data, offset);
4344
+ offset += 4;
4345
+ out.depth = data[offset];
4346
+ offset++;
4347
+ out.ctype = data[offset];
4348
+ offset++;
4349
+ out.compress = data[offset];
4350
+ offset++;
4351
+ out.filter = data[offset];
4352
+ offset++;
4353
+ out.interlace = data[offset];
4354
+ offset++;
4355
+ };
4356
+ UPNG._bin = {
4357
+ nextZero: function(data, p) {
4358
+ while (data[p] != 0) p++;
4359
+ return p;
4360
+ },
4361
+ readUshort: function(buff, p) {
4362
+ return buff[p] << 8 | buff[p + 1];
4363
+ },
4364
+ writeUshort: function(buff, p, n) {
4365
+ buff[p] = n >> 8 & 255;
4366
+ buff[p + 1] = n & 255;
4367
+ },
4368
+ readUint: function(buff, p) {
4369
+ return buff[p] * (256 * 256 * 256) + (buff[p + 1] << 16 | buff[p + 2] << 8 | buff[p + 3]);
4370
+ },
4371
+ writeUint: function(buff, p, n) {
4372
+ buff[p] = n >> 24 & 255;
4373
+ buff[p + 1] = n >> 16 & 255;
4374
+ buff[p + 2] = n >> 8 & 255;
4375
+ buff[p + 3] = n & 255;
4376
+ },
4377
+ readASCII: function(buff, p, l) {
4378
+ var s = "";
4379
+ for (var i = 0; i < l; i++) s += String.fromCharCode(buff[p + i]);
4380
+ return s;
4381
+ },
4382
+ writeASCII: function(data, p, s) {
4383
+ for (var i = 0; i < s.length; i++) data[p + i] = s.charCodeAt(i);
4384
+ },
4385
+ readBytes: function(buff, p, l) {
4386
+ var arr = [];
4387
+ for (var i = 0; i < l; i++) arr.push(buff[p + i]);
4388
+ return arr;
4389
+ },
4390
+ pad: function(n) {
4391
+ return n.length < 2 ? "0" + n : n;
4392
+ },
4393
+ readUTF8: function(buff, p, l) {
4394
+ var s = "", ns;
4395
+ for (var i = 0; i < l; i++) s += "%" + UPNG._bin.pad(buff[p + i].toString(16));
4396
+ try {
4397
+ ns = decodeURIComponent(s);
4398
+ } catch (e) {
4399
+ return UPNG._bin.readASCII(buff, p, l);
4400
+ }
4401
+ return ns;
4402
+ }
4403
+ };
4404
+ UPNG._copyTile = function(sb, sw, sh, tb, tw, th, xoff, yoff, mode) {
4405
+ var w = Math.min(sw, tw), h = Math.min(sh, th);
4406
+ var si = 0, ti = 0;
4407
+ for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {
4408
+ if (xoff >= 0 && yoff >= 0) {
4409
+ si = y * sw + x << 2;
4410
+ ti = (yoff + y) * tw + xoff + x << 2;
4411
+ } else {
4412
+ si = (-yoff + y) * sw - xoff + x << 2;
4413
+ ti = y * tw + x << 2;
4414
+ }
4415
+ if (mode == 0) {
4416
+ tb[ti] = sb[si];
4417
+ tb[ti + 1] = sb[si + 1];
4418
+ tb[ti + 2] = sb[si + 2];
4419
+ tb[ti + 3] = sb[si + 3];
4420
+ } else if (mode == 1) {
4421
+ var fa = sb[si + 3] * (1 / 255), fr = sb[si] * fa, fg = sb[si + 1] * fa, fb = sb[si + 2] * fa;
4422
+ var ba = tb[ti + 3] * (1 / 255), br = tb[ti] * ba, bg = tb[ti + 1] * ba, bb = tb[ti + 2] * ba;
4423
+ var ifa = 1 - fa, oa = fa + ba * ifa, ioa = oa == 0 ? 0 : 1 / oa;
4424
+ tb[ti + 3] = 255 * oa;
4425
+ tb[ti + 0] = (fr + br * ifa) * ioa;
4426
+ tb[ti + 1] = (fg + bg * ifa) * ioa;
4427
+ tb[ti + 2] = (fb + bb * ifa) * ioa;
4428
+ } else if (mode == 2) {
4429
+ var fa = sb[si + 3], fr = sb[si], fg = sb[si + 1], fb = sb[si + 2];
4430
+ var ba = tb[ti + 3], br = tb[ti], bg = tb[ti + 1], bb = tb[ti + 2];
4431
+ if (fa == ba && fr == br && fg == bg && fb == bb) {
4432
+ tb[ti] = 0;
4433
+ tb[ti + 1] = 0;
4434
+ tb[ti + 2] = 0;
4435
+ tb[ti + 3] = 0;
4436
+ } else {
4437
+ tb[ti] = fr;
4438
+ tb[ti + 1] = fg;
4439
+ tb[ti + 2] = fb;
4440
+ tb[ti + 3] = fa;
4441
+ }
4442
+ } else if (mode == 3) {
4443
+ var fa = sb[si + 3], fr = sb[si], fg = sb[si + 1], fb = sb[si + 2];
4444
+ var ba = tb[ti + 3], br = tb[ti], bg = tb[ti + 1], bb = tb[ti + 2];
4445
+ if (fa == ba && fr == br && fg == bg && fb == bb) continue;
4446
+ if (fa < 220 && ba > 20) return false;
4447
+ }
4448
+ }
4449
+ return true;
4450
+ };
4451
+ UPNG.encode = function(bufs, w, h, ps, dels, forbidPlte) {
4452
+ if (ps == null) ps = 0;
4453
+ if (forbidPlte == null) forbidPlte = false;
4454
+ var data = new Uint8Array(bufs[0].byteLength * bufs.length + 100);
4455
+ var wr = [
4456
+ 137,
4457
+ 80,
4458
+ 78,
4459
+ 71,
4460
+ 13,
4461
+ 10,
4462
+ 26,
4463
+ 10
4464
+ ];
4465
+ for (var i = 0; i < 8; i++) data[i] = wr[i];
4466
+ var offset = 8, bin = UPNG._bin, crc = UPNG.crc.crc, wUi = bin.writeUint, wUs = bin.writeUshort, wAs = bin.writeASCII;
4467
+ var nimg = UPNG.encode.compressPNG(bufs, w, h, ps, forbidPlte);
4468
+ wUi(data, offset, 13);
4469
+ offset += 4;
4470
+ wAs(data, offset, "IHDR");
4471
+ offset += 4;
4472
+ wUi(data, offset, w);
4473
+ offset += 4;
4474
+ wUi(data, offset, h);
4475
+ offset += 4;
4476
+ data[offset] = nimg.depth;
4477
+ offset++;
4478
+ data[offset] = nimg.ctype;
4479
+ offset++;
4480
+ data[offset] = 0;
4481
+ offset++;
4482
+ data[offset] = 0;
4483
+ offset++;
4484
+ data[offset] = 0;
4485
+ offset++;
4486
+ wUi(data, offset, crc(data, offset - 17, 17));
4487
+ offset += 4;
4488
+ wUi(data, offset, 1);
4489
+ offset += 4;
4490
+ wAs(data, offset, "sRGB");
4491
+ offset += 4;
4492
+ data[offset] = 1;
4493
+ offset++;
4494
+ wUi(data, offset, crc(data, offset - 5, 5));
4495
+ offset += 4;
4496
+ var anim = bufs.length > 1;
4497
+ if (anim) {
4498
+ wUi(data, offset, 8);
4499
+ offset += 4;
4500
+ wAs(data, offset, "acTL");
4501
+ offset += 4;
4502
+ wUi(data, offset, bufs.length);
4503
+ offset += 4;
4504
+ wUi(data, offset, 0);
4505
+ offset += 4;
4506
+ wUi(data, offset, crc(data, offset - 12, 12));
4507
+ offset += 4;
4508
+ }
4509
+ if (nimg.ctype == 3) {
4510
+ var dl = nimg.plte.length;
4511
+ wUi(data, offset, dl * 3);
4512
+ offset += 4;
4513
+ wAs(data, offset, "PLTE");
4514
+ offset += 4;
4515
+ for (var i = 0; i < dl; i++) {
4516
+ var ti = i * 3, c = nimg.plte[i], r = c & 255, g = c >> 8 & 255, b = c >> 16 & 255;
4517
+ data[offset + ti + 0] = r;
4518
+ data[offset + ti + 1] = g;
4519
+ data[offset + ti + 2] = b;
4520
+ }
4521
+ offset += dl * 3;
4522
+ wUi(data, offset, crc(data, offset - dl * 3 - 4, dl * 3 + 4));
4523
+ offset += 4;
4524
+ if (nimg.gotAlpha) {
4525
+ wUi(data, offset, dl);
4526
+ offset += 4;
4527
+ wAs(data, offset, "tRNS");
4528
+ offset += 4;
4529
+ for (var i = 0; i < dl; i++) data[offset + i] = nimg.plte[i] >> 24 & 255;
4530
+ offset += dl;
4531
+ wUi(data, offset, crc(data, offset - dl - 4, dl + 4));
4532
+ offset += 4;
4533
+ }
4534
+ }
4535
+ var fi = 0;
4536
+ for (var j = 0; j < nimg.frames.length; j++) {
4537
+ var fr = nimg.frames[j];
4538
+ if (anim) {
4539
+ wUi(data, offset, 26);
4540
+ offset += 4;
4541
+ wAs(data, offset, "fcTL");
4542
+ offset += 4;
4543
+ wUi(data, offset, fi++);
4544
+ offset += 4;
4545
+ wUi(data, offset, fr.rect.width);
4546
+ offset += 4;
4547
+ wUi(data, offset, fr.rect.height);
4548
+ offset += 4;
4549
+ wUi(data, offset, fr.rect.x);
4550
+ offset += 4;
4551
+ wUi(data, offset, fr.rect.y);
4552
+ offset += 4;
4553
+ wUs(data, offset, dels[j]);
4554
+ offset += 2;
4555
+ wUs(data, offset, 1e3);
4556
+ offset += 2;
4557
+ data[offset] = fr.dispose;
4558
+ offset++;
4559
+ data[offset] = fr.blend;
4560
+ offset++;
4561
+ wUi(data, offset, crc(data, offset - 30, 30));
4562
+ offset += 4;
4563
+ }
4564
+ var imgd = fr.cimg, dl = imgd.length;
4565
+ wUi(data, offset, dl + (j == 0 ? 0 : 4));
4566
+ offset += 4;
4567
+ var ioff = offset;
4568
+ wAs(data, offset, j == 0 ? "IDAT" : "fdAT");
4569
+ offset += 4;
4570
+ if (j != 0) {
4571
+ wUi(data, offset, fi++);
4572
+ offset += 4;
4573
+ }
4574
+ for (var i = 0; i < dl; i++) data[offset + i] = imgd[i];
4575
+ offset += dl;
4576
+ wUi(data, offset, crc(data, ioff, offset - ioff));
4577
+ offset += 4;
4578
+ }
4579
+ wUi(data, offset, 0);
4580
+ offset += 4;
4581
+ wAs(data, offset, "IEND");
4582
+ offset += 4;
4583
+ wUi(data, offset, crc(data, offset - 4, 4));
4584
+ offset += 4;
4585
+ return data.buffer.slice(0, offset);
4586
+ };
4587
+ UPNG.encode.compressPNG = function(bufs, w, h, ps, forbidPlte) {
4588
+ var out = UPNG.encode.compress(bufs, w, h, ps, false, forbidPlte);
4589
+ for (var i = 0; i < bufs.length; i++) {
4590
+ var frm = out.frames[i];
4591
+ frm.rect.width;
4592
+ var nh = frm.rect.height, bpl = frm.bpl, bpp = frm.bpp;
4593
+ var fdata = new Uint8Array(nh * bpl + nh);
4594
+ frm.cimg = UPNG.encode._filterZero(frm.img, nh, bpp, bpl, fdata);
4595
+ }
4596
+ return out;
4597
+ };
4598
+ UPNG.encode.compress = function(bufs, w, h, ps, forGIF, forbidPlte) {
4599
+ if (forbidPlte == null) forbidPlte = false;
4600
+ var ctype = 6, depth = 8, bpp = 4, alphaAnd = 255;
4601
+ for (var j = 0; j < bufs.length; j++) {
4602
+ var img = new Uint8Array(bufs[j]), ilen = img.length;
4603
+ for (var i = 0; i < ilen; i += 4) alphaAnd &= img[i + 3];
4604
+ }
4605
+ var gotAlpha = alphaAnd != 255;
4606
+ var cmap = {}, plte = [];
4607
+ if (bufs.length != 0) {
4608
+ cmap[0] = 0;
4609
+ plte.push(0);
4610
+ if (ps != 0) ps--;
4611
+ }
4612
+ if (ps != 0) {
4613
+ var qres = UPNG.quantize(bufs, ps, forGIF);
4614
+ bufs = qres.bufs;
4615
+ for (var i = 0; i < qres.plte.length; i++) {
4616
+ var c = qres.plte[i].est.rgba;
4617
+ if (cmap[c] == null) {
4618
+ cmap[c] = plte.length;
4619
+ plte.push(c);
4620
+ }
4621
+ }
4622
+ } else for (var j = 0; j < bufs.length; j++) {
4623
+ var img32 = new Uint32Array(bufs[j]), ilen = img32.length;
4624
+ for (var i = 0; i < ilen; i++) {
4625
+ var c = img32[i];
4626
+ if ((i < w || c != img32[i - 1] && c != img32[i - w]) && cmap[c] == null) {
4627
+ cmap[c] = plte.length;
4628
+ plte.push(c);
4629
+ if (plte.length >= 300) break;
4630
+ }
4631
+ }
4632
+ }
4633
+ var brute = gotAlpha ? forGIF : false;
4634
+ var cc = plte.length;
4635
+ if (cc <= 256 && forbidPlte == false) {
4636
+ if (cc <= 2) depth = 1;
4637
+ else if (cc <= 4) depth = 2;
4638
+ else if (cc <= 16) depth = 4;
4639
+ else depth = 8;
4640
+ if (forGIF) depth = 8;
4641
+ gotAlpha = true;
4642
+ }
4643
+ var frms = [];
4644
+ for (var j = 0; j < bufs.length; j++) {
4645
+ var cimg = new Uint8Array(bufs[j]), cimg32 = new Uint32Array(cimg.buffer);
4646
+ var nx = 0, ny = 0, nw = w, nh = h, blend = 0;
4647
+ if (j != 0 && !brute) {
4648
+ var tlim = forGIF || j == 1 || frms[frms.length - 2].dispose == 2 ? 1 : 2, tstp = 0, tarea = 1e9;
4649
+ for (var it = 0; it < tlim; it++) {
4650
+ var pimg = new Uint8Array(bufs[j - 1 - it]), p32 = new Uint32Array(bufs[j - 1 - it]);
4651
+ var mix = w, miy = h, max = -1, may = -1;
4652
+ for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {
4653
+ var i = y * w + x;
4654
+ if (cimg32[i] != p32[i]) {
4655
+ if (x < mix) mix = x;
4656
+ if (x > max) max = x;
4657
+ if (y < miy) miy = y;
4658
+ if (y > may) may = y;
4659
+ }
4660
+ }
4661
+ var sarea = max == -1 ? 1 : (max - mix + 1) * (may - miy + 1);
4662
+ if (sarea < tarea) {
4663
+ tarea = sarea;
4664
+ tstp = it;
4665
+ if (max == -1) {
4666
+ nx = ny = 0;
4667
+ nw = nh = 1;
4668
+ } else {
4669
+ nx = mix;
4670
+ ny = miy;
4671
+ nw = max - mix + 1;
4672
+ nh = may - miy + 1;
4673
+ }
4674
+ }
4675
+ }
4676
+ var pimg = new Uint8Array(bufs[j - 1 - tstp]);
4677
+ if (tstp == 1) frms[frms.length - 1].dispose = 2;
4678
+ var nimg = new Uint8Array(nw * nh * 4);
4679
+ new Uint32Array(nimg.buffer);
4680
+ UPNG._copyTile(pimg, w, h, nimg, nw, nh, -nx, -ny, 0);
4681
+ if (UPNG._copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 3)) {
4682
+ UPNG._copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 2);
4683
+ blend = 1;
4684
+ } else {
4685
+ UPNG._copyTile(cimg, w, h, nimg, nw, nh, -nx, -ny, 0);
4686
+ blend = 0;
4687
+ }
4688
+ cimg = nimg;
4689
+ cimg32 = new Uint32Array(cimg.buffer);
4690
+ }
4691
+ var bpl = 4 * nw;
4692
+ if (cc <= 256 && forbidPlte == false) {
4693
+ bpl = Math.ceil(depth * nw / 8);
4694
+ var nimg = new Uint8Array(bpl * nh);
4695
+ for (var y = 0; y < nh; y++) {
4696
+ var i = y * bpl, ii = y * nw;
4697
+ if (depth == 8) for (var x = 0; x < nw; x++) nimg[i + x] = cmap[cimg32[ii + x]];
4698
+ else if (depth == 4) for (var x = 0; x < nw; x++) nimg[i + (x >> 1)] |= cmap[cimg32[ii + x]] << 4 - (x & 1) * 4;
4699
+ else if (depth == 2) for (var x = 0; x < nw; x++) nimg[i + (x >> 2)] |= cmap[cimg32[ii + x]] << 6 - (x & 3) * 2;
4700
+ else if (depth == 1) for (var x = 0; x < nw; x++) nimg[i + (x >> 3)] |= cmap[cimg32[ii + x]] << 7 - (x & 7) * 1;
4701
+ }
4702
+ cimg = nimg;
4703
+ ctype = 3;
4704
+ bpp = 1;
4705
+ } else if (gotAlpha == false && bufs.length == 1) {
4706
+ var nimg = new Uint8Array(nw * nh * 3), area = nw * nh;
4707
+ for (var i = 0; i < area; i++) {
4708
+ var ti = i * 3, qi = i * 4;
4709
+ nimg[ti] = cimg[qi];
4710
+ nimg[ti + 1] = cimg[qi + 1];
4711
+ nimg[ti + 2] = cimg[qi + 2];
4712
+ }
4713
+ cimg = nimg;
4714
+ ctype = 2;
4715
+ bpp = 3;
4716
+ bpl = 3 * nw;
4717
+ }
4718
+ frms.push({
4719
+ rect: {
4720
+ x: nx,
4721
+ y: ny,
4722
+ width: nw,
4723
+ height: nh
4724
+ },
4725
+ img: cimg,
4726
+ bpl,
4727
+ bpp,
4728
+ blend,
4729
+ dispose: brute ? 1 : 0
4730
+ });
4731
+ }
4732
+ return {
4733
+ ctype,
4734
+ depth,
4735
+ plte,
4736
+ gotAlpha,
4737
+ frames: frms
4738
+ };
4739
+ };
4740
+ UPNG.encode._filterZero = function(img, h, bpp, bpl, data) {
4741
+ var fls = [];
4742
+ for (var t = 0; t < 5; t++) {
4743
+ if (h * bpl > 5e5 && (t == 2 || t == 3 || t == 4)) continue;
4744
+ for (var y = 0; y < h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, t);
4745
+ fls.push(pako["deflate"](data));
4746
+ if (bpp == 1) break;
4747
+ }
4748
+ var ti, tsize = 1e9;
4749
+ for (var i = 0; i < fls.length; i++) if (fls[i].length < tsize) {
4750
+ ti = i;
4751
+ tsize = fls[i].length;
4752
+ }
4753
+ return fls[ti];
4754
+ };
4755
+ UPNG.encode._filterLine = function(data, img, y, bpl, bpp, type) {
4756
+ var i = y * bpl, di = i + y, paeth = UPNG.decode._paeth;
4757
+ data[di] = type;
4758
+ di++;
4759
+ if (type == 0) for (var x = 0; x < bpl; x++) data[di + x] = img[i + x];
4760
+ else if (type == 1) {
4761
+ for (var x = 0; x < bpp; x++) data[di + x] = img[i + x];
4762
+ for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x] - img[i + x - bpp] + 256 & 255;
4763
+ } else if (y == 0) {
4764
+ for (var x = 0; x < bpp; x++) data[di + x] = img[i + x];
4765
+ if (type == 2) for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x];
4766
+ if (type == 3) for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x] - (img[i + x - bpp] >> 1) + 256 & 255;
4767
+ if (type == 4) for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x] - paeth(img[i + x - bpp], 0, 0) + 256 & 255;
4768
+ } else {
4769
+ if (type == 2) for (var x = 0; x < bpl; x++) data[di + x] = img[i + x] + 256 - img[i + x - bpl] & 255;
4770
+ if (type == 3) {
4771
+ for (var x = 0; x < bpp; x++) data[di + x] = img[i + x] + 256 - (img[i + x - bpl] >> 1) & 255;
4772
+ for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x] + 256 - (img[i + x - bpl] + img[i + x - bpp] >> 1) & 255;
4773
+ }
4774
+ if (type == 4) {
4775
+ for (var x = 0; x < bpp; x++) data[di + x] = img[i + x] + 256 - paeth(0, img[i + x - bpl], 0) & 255;
4776
+ for (var x = bpp; x < bpl; x++) data[di + x] = img[i + x] + 256 - paeth(img[i + x - bpp], img[i + x - bpl], img[i + x - bpp - bpl]) & 255;
4777
+ }
4778
+ }
4779
+ };
4780
+ UPNG.crc = {
4781
+ table: (function() {
4782
+ var tab = new Uint32Array(256);
4783
+ for (var n = 0; n < 256; n++) {
4784
+ var c = n;
4785
+ for (var k = 0; k < 8; k++) if (c & 1) c = 3988292384 ^ c >>> 1;
4786
+ else c = c >>> 1;
4787
+ tab[n] = c;
4788
+ }
4789
+ return tab;
4790
+ })(),
4791
+ update: function(c, buf, off, len) {
4792
+ for (var i = 0; i < len; i++) c = UPNG.crc.table[(c ^ buf[off + i]) & 255] ^ c >>> 8;
4793
+ return c;
4794
+ },
4795
+ crc: function(b, o, l) {
4796
+ return UPNG.crc.update(4294967295, b, o, l) ^ 4294967295;
4797
+ }
4798
+ };
4799
+ UPNG.quantize = function(bufs, ps, roundAlpha) {
4800
+ var imgs = [], totl = 0;
4801
+ for (var i = 0; i < bufs.length; i++) {
4802
+ imgs.push(UPNG.encode.alphaMul(new Uint8Array(bufs[i]), roundAlpha));
4803
+ totl += bufs[i].byteLength;
4804
+ }
4805
+ var nimg = new Uint8Array(totl), nimg32 = new Uint32Array(nimg.buffer), noff = 0;
4806
+ for (var i = 0; i < imgs.length; i++) {
4807
+ var img = imgs[i], il = img.length;
4808
+ for (var j = 0; j < il; j++) nimg[noff + j] = img[j];
4809
+ noff += il;
4810
+ }
4811
+ var root = {
4812
+ i0: 0,
4813
+ i1: nimg.length,
4814
+ bst: null,
4815
+ est: null,
4816
+ tdst: 0,
4817
+ left: null,
4818
+ right: null
4819
+ };
4820
+ root.bst = UPNG.quantize.stats(nimg, root.i0, root.i1);
4821
+ root.est = UPNG.quantize.estats(root.bst);
4822
+ var leafs = [root];
4823
+ while (leafs.length < ps) {
4824
+ var maxL = 0, mi = 0;
4825
+ for (var i = 0; i < leafs.length; i++) if (leafs[i].est.L > maxL) {
4826
+ maxL = leafs[i].est.L;
4827
+ mi = i;
4828
+ }
4829
+ if (maxL < .001) break;
4830
+ var node = leafs[mi];
4831
+ var s0 = UPNG.quantize.splitPixels(nimg, nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);
4832
+ var ln = {
4833
+ i0: node.i0,
4834
+ i1: s0,
4835
+ bst: null,
4836
+ est: null,
4837
+ tdst: 0,
4838
+ left: null,
4839
+ right: null
4840
+ };
4841
+ ln.bst = UPNG.quantize.stats(nimg, ln.i0, ln.i1);
4842
+ ln.est = UPNG.quantize.estats(ln.bst);
4843
+ var rn = {
4844
+ i0: s0,
4845
+ i1: node.i1,
4846
+ bst: null,
4847
+ est: null,
4848
+ tdst: 0,
4849
+ left: null,
4850
+ right: null
4851
+ };
4852
+ rn.bst = {
4853
+ R: [],
4854
+ m: [],
4855
+ N: node.bst.N - ln.bst.N
4856
+ };
4857
+ for (var i = 0; i < 16; i++) rn.bst.R[i] = node.bst.R[i] - ln.bst.R[i];
4858
+ for (var i = 0; i < 4; i++) rn.bst.m[i] = node.bst.m[i] - ln.bst.m[i];
4859
+ rn.est = UPNG.quantize.estats(rn.bst);
4860
+ node.left = ln;
4861
+ node.right = rn;
4862
+ leafs[mi] = ln;
4863
+ leafs.push(rn);
4864
+ }
4865
+ leafs.sort(function(a, b) {
4866
+ return b.bst.N - a.bst.N;
4867
+ });
4868
+ for (var ii = 0; ii < imgs.length; ii++) {
4869
+ var planeDst = UPNG.quantize.planeDst;
4870
+ var sb = new Uint8Array(imgs[ii].buffer), tb = new Uint32Array(imgs[ii].buffer), len = sb.length;
4871
+ for (var i = 0; i < len; i += 4) {
4872
+ var r = sb[i] * (1 / 255), g = sb[i + 1] * (1 / 255), b = sb[i + 2] * (1 / 255), a = sb[i + 3] * (1 / 255);
4873
+ var nd = root;
4874
+ while (nd.left) nd = planeDst(nd.est, r, g, b, a) <= 0 ? nd.left : nd.right;
4875
+ tb[i >> 2] = nd.est.rgba;
4876
+ }
4877
+ imgs[ii] = tb.buffer;
4878
+ }
4879
+ return {
4880
+ bufs: imgs,
4881
+ plte: leafs
4882
+ };
4883
+ };
4884
+ UPNG.quantize.getNearest = function(nd, r, g, b, a) {
4885
+ if (nd.left == null) {
4886
+ nd.tdst = UPNG.quantize.dist(nd.est.q, r, g, b, a);
4887
+ return nd;
4888
+ }
4889
+ var planeDst = UPNG.quantize.planeDst(nd.est, r, g, b, a);
4890
+ var node0 = nd.left, node1 = nd.right;
4891
+ if (planeDst > 0) {
4892
+ node0 = nd.right;
4893
+ node1 = nd.left;
4894
+ }
4895
+ var ln = UPNG.quantize.getNearest(node0, r, g, b, a);
4896
+ if (ln.tdst <= planeDst * planeDst) return ln;
4897
+ var rn = UPNG.quantize.getNearest(node1, r, g, b, a);
4898
+ return rn.tdst < ln.tdst ? rn : ln;
4899
+ };
4900
+ UPNG.quantize.planeDst = function(est, r, g, b, a) {
4901
+ var e = est.e;
4902
+ return e[0] * r + e[1] * g + e[2] * b + e[3] * a - est.eMq;
4903
+ };
4904
+ UPNG.quantize.dist = function(q, r, g, b, a) {
4905
+ var d0 = r - q[0], d1 = g - q[1], d2 = b - q[2], d3 = a - q[3];
4906
+ return d0 * d0 + d1 * d1 + d2 * d2 + d3 * d3;
4907
+ };
4908
+ UPNG.quantize.splitPixels = function(nimg, nimg32, i0, i1, e, eMq) {
4909
+ var vecDot = UPNG.quantize.vecDot;
4910
+ i1 -= 4;
4911
+ while (i0 < i1) {
4912
+ while (vecDot(nimg, i0, e) <= eMq) i0 += 4;
4913
+ while (vecDot(nimg, i1, e) > eMq) i1 -= 4;
4914
+ if (i0 >= i1) break;
4915
+ var t = nimg32[i0 >> 2];
4916
+ nimg32[i0 >> 2] = nimg32[i1 >> 2];
4917
+ nimg32[i1 >> 2] = t;
4918
+ i0 += 4;
4919
+ i1 -= 4;
4920
+ }
4921
+ while (vecDot(nimg, i0, e) > eMq) i0 -= 4;
4922
+ return i0 + 4;
4923
+ };
4924
+ UPNG.quantize.vecDot = function(nimg, i, e) {
4925
+ return nimg[i] * e[0] + nimg[i + 1] * e[1] + nimg[i + 2] * e[2] + nimg[i + 3] * e[3];
4926
+ };
4927
+ UPNG.quantize.stats = function(nimg, i0, i1) {
4928
+ var R = [
4929
+ 0,
4930
+ 0,
4931
+ 0,
4932
+ 0,
4933
+ 0,
4934
+ 0,
4935
+ 0,
4936
+ 0,
4937
+ 0,
4938
+ 0,
4939
+ 0,
4940
+ 0,
4941
+ 0,
4942
+ 0,
4943
+ 0,
4944
+ 0
4945
+ ];
4946
+ var m = [
4947
+ 0,
4948
+ 0,
4949
+ 0,
4950
+ 0
4951
+ ];
4952
+ var N = i1 - i0 >> 2;
4953
+ for (var i = i0; i < i1; i += 4) {
4954
+ var r = nimg[i] * (1 / 255), g = nimg[i + 1] * (1 / 255), b = nimg[i + 2] * (1 / 255), a = nimg[i + 3] * (1 / 255);
4955
+ m[0] += r;
4956
+ m[1] += g;
4957
+ m[2] += b;
4958
+ m[3] += a;
4959
+ R[0] += r * r;
4960
+ R[1] += r * g;
4961
+ R[2] += r * b;
4962
+ R[3] += r * a;
4963
+ R[5] += g * g;
4964
+ R[6] += g * b;
4965
+ R[7] += g * a;
4966
+ R[10] += b * b;
4967
+ R[11] += b * a;
4968
+ R[15] += a * a;
4969
+ }
4970
+ R[4] = R[1];
4971
+ R[8] = R[2];
4972
+ R[12] = R[3];
4973
+ R[9] = R[6];
4974
+ R[13] = R[7];
4975
+ R[14] = R[11];
4976
+ return {
4977
+ R,
4978
+ m,
4979
+ N
4980
+ };
4981
+ };
4982
+ UPNG.quantize.estats = function(stats) {
4983
+ var R = stats.R, m = stats.m, N = stats.N;
4984
+ var m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], iN = N == 0 ? 0 : 1 / N;
4985
+ var Rj = [
4986
+ R[0] - m0 * m0 * iN,
4987
+ R[1] - m0 * m1 * iN,
4988
+ R[2] - m0 * m2 * iN,
4989
+ R[3] - m0 * m3 * iN,
4990
+ R[4] - m1 * m0 * iN,
4991
+ R[5] - m1 * m1 * iN,
4992
+ R[6] - m1 * m2 * iN,
4993
+ R[7] - m1 * m3 * iN,
4994
+ R[8] - m2 * m0 * iN,
4995
+ R[9] - m2 * m1 * iN,
4996
+ R[10] - m2 * m2 * iN,
4997
+ R[11] - m2 * m3 * iN,
4998
+ R[12] - m3 * m0 * iN,
4999
+ R[13] - m3 * m1 * iN,
5000
+ R[14] - m3 * m2 * iN,
5001
+ R[15] - m3 * m3 * iN
5002
+ ];
5003
+ var A = Rj, M = UPNG.M4;
5004
+ var b = [
5005
+ .5,
5006
+ .5,
5007
+ .5,
5008
+ .5
5009
+ ], mi = 0, tmi = 0;
5010
+ if (N != 0) for (var i = 0; i < 10; i++) {
5011
+ b = M.multVec(A, b);
5012
+ tmi = Math.sqrt(M.dot(b, b));
5013
+ b = M.sml(1 / tmi, b);
5014
+ if (Math.abs(tmi - mi) < 1e-9) break;
5015
+ mi = tmi;
5016
+ }
5017
+ var q = [
5018
+ m0 * iN,
5019
+ m1 * iN,
5020
+ m2 * iN,
5021
+ m3 * iN
5022
+ ];
5023
+ var eMq255 = M.dot(M.sml(255, q), b);
5024
+ var ia = q[3] < .001 ? 0 : 1 / q[3];
5025
+ return {
5026
+ Cov: Rj,
5027
+ q,
5028
+ e: b,
5029
+ L: mi,
5030
+ eMq255,
5031
+ eMq: M.dot(b, q),
5032
+ rgba: (Math.round(255 * q[3]) << 24 | Math.round(255 * q[2] * ia) << 16 | Math.round(255 * q[1] * ia) << 8 | Math.round(255 * q[0] * ia) << 0) >>> 0
5033
+ };
5034
+ };
5035
+ UPNG.M4 = {
5036
+ multVec: function(m, v) {
5037
+ return [
5038
+ m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * v[3],
5039
+ m[4] * v[0] + m[5] * v[1] + m[6] * v[2] + m[7] * v[3],
5040
+ m[8] * v[0] + m[9] * v[1] + m[10] * v[2] + m[11] * v[3],
5041
+ m[12] * v[0] + m[13] * v[1] + m[14] * v[2] + m[15] * v[3]
5042
+ ];
5043
+ },
5044
+ dot: function(x, y) {
5045
+ return x[0] * y[0] + x[1] * y[1] + x[2] * y[2] + x[3] * y[3];
5046
+ },
5047
+ sml: function(a, y) {
5048
+ return [
5049
+ a * y[0],
5050
+ a * y[1],
5051
+ a * y[2],
5052
+ a * y[3]
5053
+ ];
5054
+ }
5055
+ };
5056
+ UPNG.encode.alphaMul = function(img, roundA) {
5057
+ var nimg = new Uint8Array(img.length), area = img.length >> 2;
5058
+ for (var i = 0; i < area; i++) {
5059
+ var qi = i << 2, ia = img[qi + 3];
5060
+ if (roundA) ia = ia < 128 ? 0 : 255;
5061
+ var a = ia * (1 / 255);
5062
+ nimg[qi + 0] = img[qi + 0] * a;
5063
+ nimg[qi + 1] = img[qi + 1] * a;
5064
+ nimg[qi + 2] = img[qi + 2] * a;
5065
+ nimg[qi + 3] = ia;
5066
+ }
5067
+ return nimg;
5068
+ };
5069
+ })(UPNG, pako);
5070
+ })();
5071
+ }));
5072
+ //#endregion
5073
+ export default require_UPNG();
5074
+ export {};