ns-auth-sdk 1.14.0 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
- package/dist/browser-index.cjs.map +1 -0
- package/dist/browser-index.d.cts +1998 -0
- package/dist/browser-index.d.cts.map +1 -0
- package/dist/browser-index.d.mts +1998 -0
- package/dist/browser-index.d.mts.map +1 -0
- package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
- package/dist/browser-index.mjs.map +1 -0
- package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
- package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
- package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
- package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
- package/dist/index.cjs +8899 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.mjs +9072 -213
- package/dist/index.mjs.map +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
- package/dist/prf-handler-CRMgzJG2.cjs +3 -0
- package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
- package/dist/zkm.service-Bv88tVS5.mjs +3 -0
- package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
- package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
- package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
- package/package.json +19 -6
- package/dist/_esm-C7FRLTj2.cjs +0 -9030
- package/dist/_esm-C7FRLTj2.cjs.map +0 -1
- package/dist/_esm-D_oMW5T5.mjs +0 -9028
- package/dist/_esm-D_oMW5T5.mjs.map +0 -1
- package/dist/base64-js-B8y7dH5k.mjs +0 -93
- package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
- package/dist/base64-js-Tm-kCeud.cjs +0 -98
- package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
- package/dist/ccip-157tdxqP.cjs +0 -7947
- package/dist/ccip-157tdxqP.cjs.map +0 -1
- package/dist/ccip-BEMMdVyd.cjs +0 -4
- package/dist/ccip-BSmCdJ3K.mjs +0 -3
- package/dist/ccip-okqXkslP.mjs +0 -6567
- package/dist/ccip-okqXkslP.mjs.map +0 -1
- package/dist/chains-CTeD2UcS.mjs +0 -33
- package/dist/chains-CTeD2UcS.mjs.map +0 -1
- package/dist/chains-Du-lv_5i.cjs +0 -33
- package/dist/chains-Du-lv_5i.cjs.map +0 -1
- package/dist/chunk-Bnu9O96Y.cjs +0 -60
- package/dist/chunk-CVYhg9ik.mjs +0 -45
- package/dist/cjs-CSUAVztq.cjs.map +0 -1
- package/dist/cjs-sm5h7qxv.mjs.map +0 -1
- package/dist/defineChain-7QG67hYU.cjs +0 -30
- package/dist/defineChain-7QG67hYU.cjs.map +0 -1
- package/dist/defineChain-DBem8ZQY.mjs +0 -24
- package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
- package/dist/dist-BPmSxkxc.cjs +0 -10676
- package/dist/dist-BPmSxkxc.cjs.map +0 -1
- package/dist/dist-BSjH4t6s.cjs +0 -12932
- package/dist/dist-BSjH4t6s.cjs.map +0 -1
- package/dist/dist-C-KjTK4Q.cjs +0 -447
- package/dist/dist-C-KjTK4Q.cjs.map +0 -1
- package/dist/dist-C2h97xM-.mjs +0 -355
- package/dist/dist-C2h97xM-.mjs.map +0 -1
- package/dist/dist-CT7grDWb.mjs +0 -12920
- package/dist/dist-CT7grDWb.mjs.map +0 -1
- package/dist/dist-D7fRmK6G.mjs +0 -10632
- package/dist/dist-D7fRmK6G.mjs.map +0 -1
- package/dist/dist-DlmcyFmM.mjs +0 -16951
- package/dist/dist-DlmcyFmM.mjs.map +0 -1
- package/dist/dist-O0uZr5OF.cjs +0 -17122
- package/dist/dist-O0uZr5OF.cjs.map +0 -1
- package/dist/echo-BB-JgAYZ.cjs +0 -339
- package/dist/echo-BB-JgAYZ.cjs.map +0 -1
- package/dist/echo-Bwy4_Cvh.mjs +0 -316
- package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
- package/dist/echo-D6X2IuNW.cjs +0 -9
- package/dist/echo-DvfG_heb.mjs +0 -8
- package/dist/esm-BcHKCX5i.mjs +0 -569
- package/dist/esm-BcHKCX5i.mjs.map +0 -1
- package/dist/esm-Bh_YwFIz.cjs +0 -599
- package/dist/esm-Bh_YwFIz.cjs.map +0 -1
- package/dist/esm-C0XO9TQm.cjs +0 -30449
- package/dist/esm-C0XO9TQm.cjs.map +0 -1
- package/dist/esm-vMUVj9k4.mjs +0 -30440
- package/dist/esm-vMUVj9k4.mjs.map +0 -1
- package/dist/keyset-CKMQXvsb.mjs +0 -172
- package/dist/keyset-CKMQXvsb.mjs.map +0 -1
- package/dist/keyset-Cxdgu110.cjs +0 -237
- package/dist/keyset-Cxdgu110.cjs.map +0 -1
- package/dist/keyset-DLxpGhdu.cjs +0 -6
- package/dist/keyset-IKjlhvqF.mjs +0 -4
- package/dist/node-3EUJ4ga9.cjs +0 -9
- package/dist/node-C2UpE11T.cjs +0 -444
- package/dist/node-C2UpE11T.cjs.map +0 -1
- package/dist/node-CHdpTQdN.mjs +0 -8679
- package/dist/node-CHdpTQdN.mjs.map +0 -1
- package/dist/node-DQt1CVGl.mjs +0 -6
- package/dist/node-Dy8ww1LG.cjs +0 -8680
- package/dist/node-Dy8ww1LG.cjs.map +0 -1
- package/dist/node-IX55IH6z.mjs +0 -397
- package/dist/node-IX55IH6z.mjs.map +0 -1
- package/dist/nostr-BTOpBN_5.cjs +0 -11
- package/dist/nostr-D4E52XRU.mjs +0 -224
- package/dist/nostr-D4E52XRU.mjs.map +0 -1
- package/dist/nostr-Hv2tsnuI.cjs +0 -272
- package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
- package/dist/nostr-ZwJe_DlZ.mjs +0 -4
- package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
- package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
- package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
- package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
- package/dist/peer-B9g3OQ5D.cjs +0 -18
- package/dist/peer-CptDj7zu.mjs +0 -745
- package/dist/peer-CptDj7zu.mjs.map +0 -1
- package/dist/peer-CtqL0yiE.mjs +0 -9
- package/dist/peer-XrPL0O6z.cjs +0 -822
- package/dist/peer-XrPL0O6z.cjs.map +0 -1
- package/dist/ping-BXKREIdI.mjs +0 -7
- package/dist/ping-BtVhKocl.cjs +0 -379
- package/dist/ping-BtVhKocl.cjs.map +0 -1
- package/dist/ping-D5fpMhGC.cjs +0 -11
- package/dist/ping-DOD50kW_.mjs +0 -332
- package/dist/ping-DOD50kW_.mjs.map +0 -1
- package/dist/policy-8HcjulLD.cjs +0 -293
- package/dist/policy-8HcjulLD.cjs.map +0 -1
- package/dist/policy-BA6MEOBY.mjs +0 -5
- package/dist/policy-BFNdXvmM.cjs +0 -11
- package/dist/policy-D_nFHHjo.mjs +0 -228
- package/dist/policy-D_nFHHjo.mjs.map +0 -1
- package/dist/prf-handler-BNiyCQMt.cjs +0 -3
- package/dist/src-CVfTUJQl.mjs +0 -822
- package/dist/src-CVfTUJQl.mjs.map +0 -1
- package/dist/src-D5S86Xpf.cjs +0 -827
- package/dist/src-D5S86Xpf.cjs.map +0 -1
- package/dist/types-B-TLIS13.cjs +0 -212
- package/dist/types-B-TLIS13.cjs.map +0 -1
- package/dist/types-CTm_FHYD.mjs +0 -111
- package/dist/types-CTm_FHYD.mjs.map +0 -1
- package/dist/validation-1xwWVXqE.mjs +0 -3
- package/dist/validation-DnpurN79.cjs +0 -405
- package/dist/validation-DnpurN79.cjs.map +0 -1
- package/dist/validation-IsAUvsvy.mjs +0 -334
- package/dist/validation-IsAUvsvy.mjs.map +0 -1
- package/dist/validation-yCvZCqIs.cjs +0 -6
- package/dist/wrapper-C5NpyacC.cjs +0 -3552
- package/dist/wrapper-C5NpyacC.cjs.map +0 -1
- package/dist/wrapper-CHq_CV4J.mjs +0 -3552
- package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
- package/dist/zkm.service-BrXyI4BS.mjs +0 -3
- package/dist/zkm.service-BvQ01wSH.cjs +0 -3
|
@@ -1,3838 +0,0 @@
|
|
|
1
|
-
//#region node_modules/pako/dist/pako.esm.mjs
|
|
2
|
-
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
|
|
3
|
-
const Z_FIXED$1 = 4;
|
|
4
|
-
const Z_BINARY = 0;
|
|
5
|
-
const Z_TEXT = 1;
|
|
6
|
-
const Z_UNKNOWN$1 = 2;
|
|
7
|
-
function zero$1(buf) {
|
|
8
|
-
let len = buf.length;
|
|
9
|
-
while (--len >= 0) buf[len] = 0;
|
|
10
|
-
}
|
|
11
|
-
const STORED_BLOCK = 0;
|
|
12
|
-
const STATIC_TREES = 1;
|
|
13
|
-
const DYN_TREES = 2;
|
|
14
|
-
const MIN_MATCH$1 = 3;
|
|
15
|
-
const MAX_MATCH$1 = 258;
|
|
16
|
-
const LENGTH_CODES$1 = 29;
|
|
17
|
-
const LITERALS$1 = 256;
|
|
18
|
-
const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
|
|
19
|
-
const D_CODES$1 = 30;
|
|
20
|
-
const BL_CODES$1 = 19;
|
|
21
|
-
const HEAP_SIZE$1 = 2 * L_CODES$1 + 1;
|
|
22
|
-
const MAX_BITS$1 = 15;
|
|
23
|
-
const Buf_size = 16;
|
|
24
|
-
const MAX_BL_BITS = 7;
|
|
25
|
-
const END_BLOCK = 256;
|
|
26
|
-
const REP_3_6 = 16;
|
|
27
|
-
const REPZ_3_10 = 17;
|
|
28
|
-
const REPZ_11_138 = 18;
|
|
29
|
-
const extra_lbits = new Uint8Array([
|
|
30
|
-
0,
|
|
31
|
-
0,
|
|
32
|
-
0,
|
|
33
|
-
0,
|
|
34
|
-
0,
|
|
35
|
-
0,
|
|
36
|
-
0,
|
|
37
|
-
0,
|
|
38
|
-
1,
|
|
39
|
-
1,
|
|
40
|
-
1,
|
|
41
|
-
1,
|
|
42
|
-
2,
|
|
43
|
-
2,
|
|
44
|
-
2,
|
|
45
|
-
2,
|
|
46
|
-
3,
|
|
47
|
-
3,
|
|
48
|
-
3,
|
|
49
|
-
3,
|
|
50
|
-
4,
|
|
51
|
-
4,
|
|
52
|
-
4,
|
|
53
|
-
4,
|
|
54
|
-
5,
|
|
55
|
-
5,
|
|
56
|
-
5,
|
|
57
|
-
5,
|
|
58
|
-
0
|
|
59
|
-
]);
|
|
60
|
-
const extra_dbits = new Uint8Array([
|
|
61
|
-
0,
|
|
62
|
-
0,
|
|
63
|
-
0,
|
|
64
|
-
0,
|
|
65
|
-
1,
|
|
66
|
-
1,
|
|
67
|
-
2,
|
|
68
|
-
2,
|
|
69
|
-
3,
|
|
70
|
-
3,
|
|
71
|
-
4,
|
|
72
|
-
4,
|
|
73
|
-
5,
|
|
74
|
-
5,
|
|
75
|
-
6,
|
|
76
|
-
6,
|
|
77
|
-
7,
|
|
78
|
-
7,
|
|
79
|
-
8,
|
|
80
|
-
8,
|
|
81
|
-
9,
|
|
82
|
-
9,
|
|
83
|
-
10,
|
|
84
|
-
10,
|
|
85
|
-
11,
|
|
86
|
-
11,
|
|
87
|
-
12,
|
|
88
|
-
12,
|
|
89
|
-
13,
|
|
90
|
-
13
|
|
91
|
-
]);
|
|
92
|
-
const extra_blbits = new Uint8Array([
|
|
93
|
-
0,
|
|
94
|
-
0,
|
|
95
|
-
0,
|
|
96
|
-
0,
|
|
97
|
-
0,
|
|
98
|
-
0,
|
|
99
|
-
0,
|
|
100
|
-
0,
|
|
101
|
-
0,
|
|
102
|
-
0,
|
|
103
|
-
0,
|
|
104
|
-
0,
|
|
105
|
-
0,
|
|
106
|
-
0,
|
|
107
|
-
0,
|
|
108
|
-
0,
|
|
109
|
-
2,
|
|
110
|
-
3,
|
|
111
|
-
7
|
|
112
|
-
]);
|
|
113
|
-
const bl_order = new Uint8Array([
|
|
114
|
-
16,
|
|
115
|
-
17,
|
|
116
|
-
18,
|
|
117
|
-
0,
|
|
118
|
-
8,
|
|
119
|
-
7,
|
|
120
|
-
9,
|
|
121
|
-
6,
|
|
122
|
-
10,
|
|
123
|
-
5,
|
|
124
|
-
11,
|
|
125
|
-
4,
|
|
126
|
-
12,
|
|
127
|
-
3,
|
|
128
|
-
13,
|
|
129
|
-
2,
|
|
130
|
-
14,
|
|
131
|
-
1,
|
|
132
|
-
15
|
|
133
|
-
]);
|
|
134
|
-
const DIST_CODE_LEN = 512;
|
|
135
|
-
const static_ltree = new Array((L_CODES$1 + 2) * 2);
|
|
136
|
-
zero$1(static_ltree);
|
|
137
|
-
const static_dtree = new Array(D_CODES$1 * 2);
|
|
138
|
-
zero$1(static_dtree);
|
|
139
|
-
const _dist_code = new Array(DIST_CODE_LEN);
|
|
140
|
-
zero$1(_dist_code);
|
|
141
|
-
const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
|
|
142
|
-
zero$1(_length_code);
|
|
143
|
-
const base_length = new Array(LENGTH_CODES$1);
|
|
144
|
-
zero$1(base_length);
|
|
145
|
-
const base_dist = new Array(D_CODES$1);
|
|
146
|
-
zero$1(base_dist);
|
|
147
|
-
function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
|
|
148
|
-
this.static_tree = static_tree;
|
|
149
|
-
this.extra_bits = extra_bits;
|
|
150
|
-
this.extra_base = extra_base;
|
|
151
|
-
this.elems = elems;
|
|
152
|
-
this.max_length = max_length;
|
|
153
|
-
this.has_stree = static_tree && static_tree.length;
|
|
154
|
-
}
|
|
155
|
-
let static_l_desc;
|
|
156
|
-
let static_d_desc;
|
|
157
|
-
let static_bl_desc;
|
|
158
|
-
function TreeDesc(dyn_tree, stat_desc) {
|
|
159
|
-
this.dyn_tree = dyn_tree;
|
|
160
|
-
this.max_code = 0;
|
|
161
|
-
this.stat_desc = stat_desc;
|
|
162
|
-
}
|
|
163
|
-
const d_code = (dist) => {
|
|
164
|
-
return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
|
|
165
|
-
};
|
|
166
|
-
const put_short = (s, w) => {
|
|
167
|
-
s.pending_buf[s.pending++] = w & 255;
|
|
168
|
-
s.pending_buf[s.pending++] = w >>> 8 & 255;
|
|
169
|
-
};
|
|
170
|
-
const send_bits = (s, value, length) => {
|
|
171
|
-
if (s.bi_valid > Buf_size - length) {
|
|
172
|
-
s.bi_buf |= value << s.bi_valid & 65535;
|
|
173
|
-
put_short(s, s.bi_buf);
|
|
174
|
-
s.bi_buf = value >> Buf_size - s.bi_valid;
|
|
175
|
-
s.bi_valid += length - Buf_size;
|
|
176
|
-
} else {
|
|
177
|
-
s.bi_buf |= value << s.bi_valid & 65535;
|
|
178
|
-
s.bi_valid += length;
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
const send_code = (s, c, tree) => {
|
|
182
|
-
send_bits(s, tree[c * 2], tree[c * 2 + 1]);
|
|
183
|
-
};
|
|
184
|
-
const bi_reverse = (code, len) => {
|
|
185
|
-
let res = 0;
|
|
186
|
-
do {
|
|
187
|
-
res |= code & 1;
|
|
188
|
-
code >>>= 1;
|
|
189
|
-
res <<= 1;
|
|
190
|
-
} while (--len > 0);
|
|
191
|
-
return res >>> 1;
|
|
192
|
-
};
|
|
193
|
-
const bi_flush = (s) => {
|
|
194
|
-
if (s.bi_valid === 16) {
|
|
195
|
-
put_short(s, s.bi_buf);
|
|
196
|
-
s.bi_buf = 0;
|
|
197
|
-
s.bi_valid = 0;
|
|
198
|
-
} else if (s.bi_valid >= 8) {
|
|
199
|
-
s.pending_buf[s.pending++] = s.bi_buf & 255;
|
|
200
|
-
s.bi_buf >>= 8;
|
|
201
|
-
s.bi_valid -= 8;
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
const gen_bitlen = (s, desc) => {
|
|
205
|
-
const tree = desc.dyn_tree;
|
|
206
|
-
const max_code = desc.max_code;
|
|
207
|
-
const stree = desc.stat_desc.static_tree;
|
|
208
|
-
const has_stree = desc.stat_desc.has_stree;
|
|
209
|
-
const extra = desc.stat_desc.extra_bits;
|
|
210
|
-
const base = desc.stat_desc.extra_base;
|
|
211
|
-
const max_length = desc.stat_desc.max_length;
|
|
212
|
-
let h;
|
|
213
|
-
let n, m;
|
|
214
|
-
let bits;
|
|
215
|
-
let xbits;
|
|
216
|
-
let f;
|
|
217
|
-
let overflow = 0;
|
|
218
|
-
for (bits = 0; bits <= MAX_BITS$1; bits++) s.bl_count[bits] = 0;
|
|
219
|
-
tree[s.heap[s.heap_max] * 2 + 1] = 0;
|
|
220
|
-
for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {
|
|
221
|
-
n = s.heap[h];
|
|
222
|
-
bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
|
|
223
|
-
if (bits > max_length) {
|
|
224
|
-
bits = max_length;
|
|
225
|
-
overflow++;
|
|
226
|
-
}
|
|
227
|
-
tree[n * 2 + 1] = bits;
|
|
228
|
-
if (n > max_code) continue;
|
|
229
|
-
s.bl_count[bits]++;
|
|
230
|
-
xbits = 0;
|
|
231
|
-
if (n >= base) xbits = extra[n - base];
|
|
232
|
-
f = tree[n * 2];
|
|
233
|
-
s.opt_len += f * (bits + xbits);
|
|
234
|
-
if (has_stree) s.static_len += f * (stree[n * 2 + 1] + xbits);
|
|
235
|
-
}
|
|
236
|
-
if (overflow === 0) return;
|
|
237
|
-
do {
|
|
238
|
-
bits = max_length - 1;
|
|
239
|
-
while (s.bl_count[bits] === 0) bits--;
|
|
240
|
-
s.bl_count[bits]--;
|
|
241
|
-
s.bl_count[bits + 1] += 2;
|
|
242
|
-
s.bl_count[max_length]--;
|
|
243
|
-
overflow -= 2;
|
|
244
|
-
} while (overflow > 0);
|
|
245
|
-
for (bits = max_length; bits !== 0; bits--) {
|
|
246
|
-
n = s.bl_count[bits];
|
|
247
|
-
while (n !== 0) {
|
|
248
|
-
m = s.heap[--h];
|
|
249
|
-
if (m > max_code) continue;
|
|
250
|
-
if (tree[m * 2 + 1] !== bits) {
|
|
251
|
-
s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
|
|
252
|
-
tree[m * 2 + 1] = bits;
|
|
253
|
-
}
|
|
254
|
-
n--;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
const gen_codes = (tree, max_code, bl_count) => {
|
|
259
|
-
const next_code = new Array(MAX_BITS$1 + 1);
|
|
260
|
-
let code = 0;
|
|
261
|
-
let bits;
|
|
262
|
-
let n;
|
|
263
|
-
for (bits = 1; bits <= MAX_BITS$1; bits++) {
|
|
264
|
-
code = code + bl_count[bits - 1] << 1;
|
|
265
|
-
next_code[bits] = code;
|
|
266
|
-
}
|
|
267
|
-
for (n = 0; n <= max_code; n++) {
|
|
268
|
-
let len = tree[n * 2 + 1];
|
|
269
|
-
if (len === 0) continue;
|
|
270
|
-
tree[n * 2] = bi_reverse(next_code[len]++, len);
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
const tr_static_init = () => {
|
|
274
|
-
let n;
|
|
275
|
-
let bits;
|
|
276
|
-
let length;
|
|
277
|
-
let code;
|
|
278
|
-
let dist;
|
|
279
|
-
const bl_count = new Array(MAX_BITS$1 + 1);
|
|
280
|
-
length = 0;
|
|
281
|
-
for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
|
|
282
|
-
base_length[code] = length;
|
|
283
|
-
for (n = 0; n < 1 << extra_lbits[code]; n++) _length_code[length++] = code;
|
|
284
|
-
}
|
|
285
|
-
_length_code[length - 1] = code;
|
|
286
|
-
dist = 0;
|
|
287
|
-
for (code = 0; code < 16; code++) {
|
|
288
|
-
base_dist[code] = dist;
|
|
289
|
-
for (n = 0; n < 1 << extra_dbits[code]; n++) _dist_code[dist++] = code;
|
|
290
|
-
}
|
|
291
|
-
dist >>= 7;
|
|
292
|
-
for (; code < D_CODES$1; code++) {
|
|
293
|
-
base_dist[code] = dist << 7;
|
|
294
|
-
for (n = 0; n < 1 << extra_dbits[code] - 7; n++) _dist_code[256 + dist++] = code;
|
|
295
|
-
}
|
|
296
|
-
for (bits = 0; bits <= MAX_BITS$1; bits++) bl_count[bits] = 0;
|
|
297
|
-
n = 0;
|
|
298
|
-
while (n <= 143) {
|
|
299
|
-
static_ltree[n * 2 + 1] = 8;
|
|
300
|
-
n++;
|
|
301
|
-
bl_count[8]++;
|
|
302
|
-
}
|
|
303
|
-
while (n <= 255) {
|
|
304
|
-
static_ltree[n * 2 + 1] = 9;
|
|
305
|
-
n++;
|
|
306
|
-
bl_count[9]++;
|
|
307
|
-
}
|
|
308
|
-
while (n <= 279) {
|
|
309
|
-
static_ltree[n * 2 + 1] = 7;
|
|
310
|
-
n++;
|
|
311
|
-
bl_count[7]++;
|
|
312
|
-
}
|
|
313
|
-
while (n <= 287) {
|
|
314
|
-
static_ltree[n * 2 + 1] = 8;
|
|
315
|
-
n++;
|
|
316
|
-
bl_count[8]++;
|
|
317
|
-
}
|
|
318
|
-
gen_codes(static_ltree, L_CODES$1 + 1, bl_count);
|
|
319
|
-
for (n = 0; n < D_CODES$1; n++) {
|
|
320
|
-
static_dtree[n * 2 + 1] = 5;
|
|
321
|
-
static_dtree[n * 2] = bi_reverse(n, 5);
|
|
322
|
-
}
|
|
323
|
-
static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);
|
|
324
|
-
static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);
|
|
325
|
-
static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);
|
|
326
|
-
};
|
|
327
|
-
const init_block = (s) => {
|
|
328
|
-
let n;
|
|
329
|
-
for (n = 0; n < L_CODES$1; n++) s.dyn_ltree[n * 2] = 0;
|
|
330
|
-
for (n = 0; n < D_CODES$1; n++) s.dyn_dtree[n * 2] = 0;
|
|
331
|
-
for (n = 0; n < BL_CODES$1; n++) s.bl_tree[n * 2] = 0;
|
|
332
|
-
s.dyn_ltree[END_BLOCK * 2] = 1;
|
|
333
|
-
s.opt_len = s.static_len = 0;
|
|
334
|
-
s.sym_next = s.matches = 0;
|
|
335
|
-
};
|
|
336
|
-
const bi_windup = (s) => {
|
|
337
|
-
if (s.bi_valid > 8) put_short(s, s.bi_buf);
|
|
338
|
-
else if (s.bi_valid > 0) s.pending_buf[s.pending++] = s.bi_buf;
|
|
339
|
-
s.bi_buf = 0;
|
|
340
|
-
s.bi_valid = 0;
|
|
341
|
-
};
|
|
342
|
-
const smaller = (tree, n, m, depth) => {
|
|
343
|
-
const _n2 = n * 2;
|
|
344
|
-
const _m2 = m * 2;
|
|
345
|
-
return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
|
|
346
|
-
};
|
|
347
|
-
const pqdownheap = (s, tree, k) => {
|
|
348
|
-
const v = s.heap[k];
|
|
349
|
-
let j = k << 1;
|
|
350
|
-
while (j <= s.heap_len) {
|
|
351
|
-
if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) j++;
|
|
352
|
-
if (smaller(tree, v, s.heap[j], s.depth)) break;
|
|
353
|
-
s.heap[k] = s.heap[j];
|
|
354
|
-
k = j;
|
|
355
|
-
j <<= 1;
|
|
356
|
-
}
|
|
357
|
-
s.heap[k] = v;
|
|
358
|
-
};
|
|
359
|
-
const compress_block = (s, ltree, dtree) => {
|
|
360
|
-
let dist;
|
|
361
|
-
let lc;
|
|
362
|
-
let sx = 0;
|
|
363
|
-
let code;
|
|
364
|
-
let extra;
|
|
365
|
-
if (s.sym_next !== 0) do {
|
|
366
|
-
dist = s.pending_buf[s.sym_buf + sx++] & 255;
|
|
367
|
-
dist += (s.pending_buf[s.sym_buf + sx++] & 255) << 8;
|
|
368
|
-
lc = s.pending_buf[s.sym_buf + sx++];
|
|
369
|
-
if (dist === 0) send_code(s, lc, ltree);
|
|
370
|
-
else {
|
|
371
|
-
code = _length_code[lc];
|
|
372
|
-
send_code(s, code + LITERALS$1 + 1, ltree);
|
|
373
|
-
extra = extra_lbits[code];
|
|
374
|
-
if (extra !== 0) {
|
|
375
|
-
lc -= base_length[code];
|
|
376
|
-
send_bits(s, lc, extra);
|
|
377
|
-
}
|
|
378
|
-
dist--;
|
|
379
|
-
code = d_code(dist);
|
|
380
|
-
send_code(s, code, dtree);
|
|
381
|
-
extra = extra_dbits[code];
|
|
382
|
-
if (extra !== 0) {
|
|
383
|
-
dist -= base_dist[code];
|
|
384
|
-
send_bits(s, dist, extra);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
} while (sx < s.sym_next);
|
|
388
|
-
send_code(s, END_BLOCK, ltree);
|
|
389
|
-
};
|
|
390
|
-
const build_tree = (s, desc) => {
|
|
391
|
-
const tree = desc.dyn_tree;
|
|
392
|
-
const stree = desc.stat_desc.static_tree;
|
|
393
|
-
const has_stree = desc.stat_desc.has_stree;
|
|
394
|
-
const elems = desc.stat_desc.elems;
|
|
395
|
-
let n, m;
|
|
396
|
-
let max_code = -1;
|
|
397
|
-
let node;
|
|
398
|
-
s.heap_len = 0;
|
|
399
|
-
s.heap_max = HEAP_SIZE$1;
|
|
400
|
-
for (n = 0; n < elems; n++) if (tree[n * 2] !== 0) {
|
|
401
|
-
s.heap[++s.heap_len] = max_code = n;
|
|
402
|
-
s.depth[n] = 0;
|
|
403
|
-
} else tree[n * 2 + 1] = 0;
|
|
404
|
-
while (s.heap_len < 2) {
|
|
405
|
-
node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
|
|
406
|
-
tree[node * 2] = 1;
|
|
407
|
-
s.depth[node] = 0;
|
|
408
|
-
s.opt_len--;
|
|
409
|
-
if (has_stree) s.static_len -= stree[node * 2 + 1];
|
|
410
|
-
}
|
|
411
|
-
desc.max_code = max_code;
|
|
412
|
-
for (n = s.heap_len >> 1; n >= 1; n--) pqdownheap(s, tree, n);
|
|
413
|
-
node = elems;
|
|
414
|
-
do {
|
|
415
|
-
/*** pqremove ***/
|
|
416
|
-
n = s.heap[1];
|
|
417
|
-
s.heap[1] = s.heap[s.heap_len--];
|
|
418
|
-
pqdownheap(s, tree, 1);
|
|
419
|
-
m = s.heap[1];
|
|
420
|
-
s.heap[--s.heap_max] = n;
|
|
421
|
-
s.heap[--s.heap_max] = m;
|
|
422
|
-
tree[node * 2] = tree[n * 2] + tree[m * 2];
|
|
423
|
-
s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
|
|
424
|
-
tree[n * 2 + 1] = tree[m * 2 + 1] = node;
|
|
425
|
-
s.heap[1] = node++;
|
|
426
|
-
pqdownheap(s, tree, 1);
|
|
427
|
-
} while (s.heap_len >= 2);
|
|
428
|
-
s.heap[--s.heap_max] = s.heap[1];
|
|
429
|
-
gen_bitlen(s, desc);
|
|
430
|
-
gen_codes(tree, max_code, s.bl_count);
|
|
431
|
-
};
|
|
432
|
-
const scan_tree = (s, tree, max_code) => {
|
|
433
|
-
let n;
|
|
434
|
-
let prevlen = -1;
|
|
435
|
-
let curlen;
|
|
436
|
-
let nextlen = tree[1];
|
|
437
|
-
let count = 0;
|
|
438
|
-
let max_count = 7;
|
|
439
|
-
let min_count = 4;
|
|
440
|
-
if (nextlen === 0) {
|
|
441
|
-
max_count = 138;
|
|
442
|
-
min_count = 3;
|
|
443
|
-
}
|
|
444
|
-
tree[(max_code + 1) * 2 + 1] = 65535;
|
|
445
|
-
for (n = 0; n <= max_code; n++) {
|
|
446
|
-
curlen = nextlen;
|
|
447
|
-
nextlen = tree[(n + 1) * 2 + 1];
|
|
448
|
-
if (++count < max_count && curlen === nextlen) continue;
|
|
449
|
-
else if (count < min_count) s.bl_tree[curlen * 2] += count;
|
|
450
|
-
else if (curlen !== 0) {
|
|
451
|
-
if (curlen !== prevlen) s.bl_tree[curlen * 2]++;
|
|
452
|
-
s.bl_tree[REP_3_6 * 2]++;
|
|
453
|
-
} else if (count <= 10) s.bl_tree[REPZ_3_10 * 2]++;
|
|
454
|
-
else s.bl_tree[REPZ_11_138 * 2]++;
|
|
455
|
-
count = 0;
|
|
456
|
-
prevlen = curlen;
|
|
457
|
-
if (nextlen === 0) {
|
|
458
|
-
max_count = 138;
|
|
459
|
-
min_count = 3;
|
|
460
|
-
} else if (curlen === nextlen) {
|
|
461
|
-
max_count = 6;
|
|
462
|
-
min_count = 3;
|
|
463
|
-
} else {
|
|
464
|
-
max_count = 7;
|
|
465
|
-
min_count = 4;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
const send_tree = (s, tree, max_code) => {
|
|
470
|
-
let n;
|
|
471
|
-
let prevlen = -1;
|
|
472
|
-
let curlen;
|
|
473
|
-
let nextlen = tree[1];
|
|
474
|
-
let count = 0;
|
|
475
|
-
let max_count = 7;
|
|
476
|
-
let min_count = 4;
|
|
477
|
-
if (nextlen === 0) {
|
|
478
|
-
max_count = 138;
|
|
479
|
-
min_count = 3;
|
|
480
|
-
}
|
|
481
|
-
for (n = 0; n <= max_code; n++) {
|
|
482
|
-
curlen = nextlen;
|
|
483
|
-
nextlen = tree[(n + 1) * 2 + 1];
|
|
484
|
-
if (++count < max_count && curlen === nextlen) continue;
|
|
485
|
-
else if (count < min_count) do
|
|
486
|
-
send_code(s, curlen, s.bl_tree);
|
|
487
|
-
while (--count !== 0);
|
|
488
|
-
else if (curlen !== 0) {
|
|
489
|
-
if (curlen !== prevlen) {
|
|
490
|
-
send_code(s, curlen, s.bl_tree);
|
|
491
|
-
count--;
|
|
492
|
-
}
|
|
493
|
-
send_code(s, REP_3_6, s.bl_tree);
|
|
494
|
-
send_bits(s, count - 3, 2);
|
|
495
|
-
} else if (count <= 10) {
|
|
496
|
-
send_code(s, REPZ_3_10, s.bl_tree);
|
|
497
|
-
send_bits(s, count - 3, 3);
|
|
498
|
-
} else {
|
|
499
|
-
send_code(s, REPZ_11_138, s.bl_tree);
|
|
500
|
-
send_bits(s, count - 11, 7);
|
|
501
|
-
}
|
|
502
|
-
count = 0;
|
|
503
|
-
prevlen = curlen;
|
|
504
|
-
if (nextlen === 0) {
|
|
505
|
-
max_count = 138;
|
|
506
|
-
min_count = 3;
|
|
507
|
-
} else if (curlen === nextlen) {
|
|
508
|
-
max_count = 6;
|
|
509
|
-
min_count = 3;
|
|
510
|
-
} else {
|
|
511
|
-
max_count = 7;
|
|
512
|
-
min_count = 4;
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
};
|
|
516
|
-
const build_bl_tree = (s) => {
|
|
517
|
-
let max_blindex;
|
|
518
|
-
scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
|
|
519
|
-
scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
|
|
520
|
-
build_tree(s, s.bl_desc);
|
|
521
|
-
for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) break;
|
|
522
|
-
s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
|
|
523
|
-
return max_blindex;
|
|
524
|
-
};
|
|
525
|
-
const send_all_trees = (s, lcodes, dcodes, blcodes) => {
|
|
526
|
-
let rank$1;
|
|
527
|
-
send_bits(s, lcodes - 257, 5);
|
|
528
|
-
send_bits(s, dcodes - 1, 5);
|
|
529
|
-
send_bits(s, blcodes - 4, 4);
|
|
530
|
-
for (rank$1 = 0; rank$1 < blcodes; rank$1++) send_bits(s, s.bl_tree[bl_order[rank$1] * 2 + 1], 3);
|
|
531
|
-
send_tree(s, s.dyn_ltree, lcodes - 1);
|
|
532
|
-
send_tree(s, s.dyn_dtree, dcodes - 1);
|
|
533
|
-
};
|
|
534
|
-
const detect_data_type = (s) => {
|
|
535
|
-
let block_mask = 4093624447;
|
|
536
|
-
let n;
|
|
537
|
-
for (n = 0; n <= 31; n++, block_mask >>>= 1) if (block_mask & 1 && s.dyn_ltree[n * 2] !== 0) return Z_BINARY;
|
|
538
|
-
if (s.dyn_ltree[18] !== 0 || s.dyn_ltree[20] !== 0 || s.dyn_ltree[26] !== 0) return Z_TEXT;
|
|
539
|
-
for (n = 32; n < LITERALS$1; n++) if (s.dyn_ltree[n * 2] !== 0) return Z_TEXT;
|
|
540
|
-
return Z_BINARY;
|
|
541
|
-
};
|
|
542
|
-
let static_init_done = false;
|
|
543
|
-
const _tr_init$1 = (s) => {
|
|
544
|
-
if (!static_init_done) {
|
|
545
|
-
tr_static_init();
|
|
546
|
-
static_init_done = true;
|
|
547
|
-
}
|
|
548
|
-
s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
|
|
549
|
-
s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
|
|
550
|
-
s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
|
|
551
|
-
s.bi_buf = 0;
|
|
552
|
-
s.bi_valid = 0;
|
|
553
|
-
init_block(s);
|
|
554
|
-
};
|
|
555
|
-
const _tr_stored_block$1 = (s, buf, stored_len, last) => {
|
|
556
|
-
send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
|
|
557
|
-
bi_windup(s);
|
|
558
|
-
put_short(s, stored_len);
|
|
559
|
-
put_short(s, ~stored_len);
|
|
560
|
-
if (stored_len) s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);
|
|
561
|
-
s.pending += stored_len;
|
|
562
|
-
};
|
|
563
|
-
const _tr_align$1 = (s) => {
|
|
564
|
-
send_bits(s, STATIC_TREES << 1, 3);
|
|
565
|
-
send_code(s, END_BLOCK, static_ltree);
|
|
566
|
-
bi_flush(s);
|
|
567
|
-
};
|
|
568
|
-
const _tr_flush_block$1 = (s, buf, stored_len, last) => {
|
|
569
|
-
let opt_lenb, static_lenb;
|
|
570
|
-
let max_blindex = 0;
|
|
571
|
-
if (s.level > 0) {
|
|
572
|
-
if (s.strm.data_type === Z_UNKNOWN$1) s.strm.data_type = detect_data_type(s);
|
|
573
|
-
build_tree(s, s.l_desc);
|
|
574
|
-
build_tree(s, s.d_desc);
|
|
575
|
-
max_blindex = build_bl_tree(s);
|
|
576
|
-
opt_lenb = s.opt_len + 3 + 7 >>> 3;
|
|
577
|
-
static_lenb = s.static_len + 3 + 7 >>> 3;
|
|
578
|
-
if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
|
|
579
|
-
} else opt_lenb = static_lenb = stored_len + 5;
|
|
580
|
-
if (stored_len + 4 <= opt_lenb && buf !== -1) _tr_stored_block$1(s, buf, stored_len, last);
|
|
581
|
-
else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {
|
|
582
|
-
send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
|
|
583
|
-
compress_block(s, static_ltree, static_dtree);
|
|
584
|
-
} else {
|
|
585
|
-
send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
|
|
586
|
-
send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
|
|
587
|
-
compress_block(s, s.dyn_ltree, s.dyn_dtree);
|
|
588
|
-
}
|
|
589
|
-
init_block(s);
|
|
590
|
-
if (last) bi_windup(s);
|
|
591
|
-
};
|
|
592
|
-
const _tr_tally$1 = (s, dist, lc) => {
|
|
593
|
-
s.pending_buf[s.sym_buf + s.sym_next++] = dist;
|
|
594
|
-
s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;
|
|
595
|
-
s.pending_buf[s.sym_buf + s.sym_next++] = lc;
|
|
596
|
-
if (dist === 0) s.dyn_ltree[lc * 2]++;
|
|
597
|
-
else {
|
|
598
|
-
s.matches++;
|
|
599
|
-
dist--;
|
|
600
|
-
s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]++;
|
|
601
|
-
s.dyn_dtree[d_code(dist) * 2]++;
|
|
602
|
-
}
|
|
603
|
-
return s.sym_next === s.sym_end;
|
|
604
|
-
};
|
|
605
|
-
var trees = {
|
|
606
|
-
_tr_init: _tr_init$1,
|
|
607
|
-
_tr_stored_block: _tr_stored_block$1,
|
|
608
|
-
_tr_flush_block: _tr_flush_block$1,
|
|
609
|
-
_tr_tally: _tr_tally$1,
|
|
610
|
-
_tr_align: _tr_align$1
|
|
611
|
-
};
|
|
612
|
-
const adler32 = (adler, buf, len, pos) => {
|
|
613
|
-
let s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
|
|
614
|
-
while (len !== 0) {
|
|
615
|
-
n = len > 2e3 ? 2e3 : len;
|
|
616
|
-
len -= n;
|
|
617
|
-
do {
|
|
618
|
-
s1 = s1 + buf[pos++] | 0;
|
|
619
|
-
s2 = s2 + s1 | 0;
|
|
620
|
-
} while (--n);
|
|
621
|
-
s1 %= 65521;
|
|
622
|
-
s2 %= 65521;
|
|
623
|
-
}
|
|
624
|
-
return s1 | s2 << 16 | 0;
|
|
625
|
-
};
|
|
626
|
-
var adler32_1 = adler32;
|
|
627
|
-
const makeTable = () => {
|
|
628
|
-
let c, table = [];
|
|
629
|
-
for (var n = 0; n < 256; n++) {
|
|
630
|
-
c = n;
|
|
631
|
-
for (var k = 0; k < 8; k++) c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
|
|
632
|
-
table[n] = c;
|
|
633
|
-
}
|
|
634
|
-
return table;
|
|
635
|
-
};
|
|
636
|
-
const crcTable = new Uint32Array(makeTable());
|
|
637
|
-
const crc32 = (crc, buf, len, pos) => {
|
|
638
|
-
const t = crcTable;
|
|
639
|
-
const end = pos + len;
|
|
640
|
-
crc ^= -1;
|
|
641
|
-
for (let i = pos; i < end; i++) crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
|
|
642
|
-
return crc ^ -1;
|
|
643
|
-
};
|
|
644
|
-
var crc32_1 = crc32;
|
|
645
|
-
var messages = {
|
|
646
|
-
2: "need dictionary",
|
|
647
|
-
1: "stream end",
|
|
648
|
-
0: "",
|
|
649
|
-
"-1": "file error",
|
|
650
|
-
"-2": "stream error",
|
|
651
|
-
"-3": "data error",
|
|
652
|
-
"-4": "insufficient memory",
|
|
653
|
-
"-5": "buffer error",
|
|
654
|
-
"-6": "incompatible version"
|
|
655
|
-
};
|
|
656
|
-
var constants$2 = {
|
|
657
|
-
Z_NO_FLUSH: 0,
|
|
658
|
-
Z_PARTIAL_FLUSH: 1,
|
|
659
|
-
Z_SYNC_FLUSH: 2,
|
|
660
|
-
Z_FULL_FLUSH: 3,
|
|
661
|
-
Z_FINISH: 4,
|
|
662
|
-
Z_BLOCK: 5,
|
|
663
|
-
Z_TREES: 6,
|
|
664
|
-
Z_OK: 0,
|
|
665
|
-
Z_STREAM_END: 1,
|
|
666
|
-
Z_NEED_DICT: 2,
|
|
667
|
-
Z_ERRNO: -1,
|
|
668
|
-
Z_STREAM_ERROR: -2,
|
|
669
|
-
Z_DATA_ERROR: -3,
|
|
670
|
-
Z_MEM_ERROR: -4,
|
|
671
|
-
Z_BUF_ERROR: -5,
|
|
672
|
-
Z_NO_COMPRESSION: 0,
|
|
673
|
-
Z_BEST_SPEED: 1,
|
|
674
|
-
Z_BEST_COMPRESSION: 9,
|
|
675
|
-
Z_DEFAULT_COMPRESSION: -1,
|
|
676
|
-
Z_FILTERED: 1,
|
|
677
|
-
Z_HUFFMAN_ONLY: 2,
|
|
678
|
-
Z_RLE: 3,
|
|
679
|
-
Z_FIXED: 4,
|
|
680
|
-
Z_DEFAULT_STRATEGY: 0,
|
|
681
|
-
Z_BINARY: 0,
|
|
682
|
-
Z_TEXT: 1,
|
|
683
|
-
Z_UNKNOWN: 2,
|
|
684
|
-
Z_DEFLATED: 8
|
|
685
|
-
};
|
|
686
|
-
const { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;
|
|
687
|
-
const { Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1, Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1, Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1, Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1, Z_UNKNOWN, Z_DEFLATED: Z_DEFLATED$2 } = constants$2;
|
|
688
|
-
const MAX_MEM_LEVEL = 9;
|
|
689
|
-
const MAX_WBITS$1 = 15;
|
|
690
|
-
const DEF_MEM_LEVEL = 8;
|
|
691
|
-
const L_CODES = 286;
|
|
692
|
-
const D_CODES = 30;
|
|
693
|
-
const BL_CODES = 19;
|
|
694
|
-
const HEAP_SIZE = 2 * L_CODES + 1;
|
|
695
|
-
const MAX_BITS = 15;
|
|
696
|
-
const MIN_MATCH = 3;
|
|
697
|
-
const MAX_MATCH = 258;
|
|
698
|
-
const MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
|
|
699
|
-
const PRESET_DICT = 32;
|
|
700
|
-
const INIT_STATE = 42;
|
|
701
|
-
const GZIP_STATE = 57;
|
|
702
|
-
const EXTRA_STATE = 69;
|
|
703
|
-
const NAME_STATE = 73;
|
|
704
|
-
const COMMENT_STATE = 91;
|
|
705
|
-
const HCRC_STATE = 103;
|
|
706
|
-
const BUSY_STATE = 113;
|
|
707
|
-
const FINISH_STATE = 666;
|
|
708
|
-
const BS_NEED_MORE = 1;
|
|
709
|
-
const BS_BLOCK_DONE = 2;
|
|
710
|
-
const BS_FINISH_STARTED = 3;
|
|
711
|
-
const BS_FINISH_DONE = 4;
|
|
712
|
-
const OS_CODE = 3;
|
|
713
|
-
const err = (strm, errorCode) => {
|
|
714
|
-
strm.msg = messages[errorCode];
|
|
715
|
-
return errorCode;
|
|
716
|
-
};
|
|
717
|
-
const rank = (f) => {
|
|
718
|
-
return f * 2 - (f > 4 ? 9 : 0);
|
|
719
|
-
};
|
|
720
|
-
const zero = (buf) => {
|
|
721
|
-
let len = buf.length;
|
|
722
|
-
while (--len >= 0) buf[len] = 0;
|
|
723
|
-
};
|
|
724
|
-
const slide_hash = (s) => {
|
|
725
|
-
let n, m;
|
|
726
|
-
let p;
|
|
727
|
-
let wsize = s.w_size;
|
|
728
|
-
n = s.hash_size;
|
|
729
|
-
p = n;
|
|
730
|
-
do {
|
|
731
|
-
m = s.head[--p];
|
|
732
|
-
s.head[p] = m >= wsize ? m - wsize : 0;
|
|
733
|
-
} while (--n);
|
|
734
|
-
n = wsize;
|
|
735
|
-
p = n;
|
|
736
|
-
do {
|
|
737
|
-
m = s.prev[--p];
|
|
738
|
-
s.prev[p] = m >= wsize ? m - wsize : 0;
|
|
739
|
-
} while (--n);
|
|
740
|
-
};
|
|
741
|
-
let HASH_ZLIB = (s, prev, data) => (prev << s.hash_shift ^ data) & s.hash_mask;
|
|
742
|
-
let HASH = HASH_ZLIB;
|
|
743
|
-
const flush_pending = (strm) => {
|
|
744
|
-
const s = strm.state;
|
|
745
|
-
let len = s.pending;
|
|
746
|
-
if (len > strm.avail_out) len = strm.avail_out;
|
|
747
|
-
if (len === 0) return;
|
|
748
|
-
strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);
|
|
749
|
-
strm.next_out += len;
|
|
750
|
-
s.pending_out += len;
|
|
751
|
-
strm.total_out += len;
|
|
752
|
-
strm.avail_out -= len;
|
|
753
|
-
s.pending -= len;
|
|
754
|
-
if (s.pending === 0) s.pending_out = 0;
|
|
755
|
-
};
|
|
756
|
-
const flush_block_only = (s, last) => {
|
|
757
|
-
_tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
|
|
758
|
-
s.block_start = s.strstart;
|
|
759
|
-
flush_pending(s.strm);
|
|
760
|
-
};
|
|
761
|
-
const put_byte = (s, b) => {
|
|
762
|
-
s.pending_buf[s.pending++] = b;
|
|
763
|
-
};
|
|
764
|
-
const putShortMSB = (s, b) => {
|
|
765
|
-
s.pending_buf[s.pending++] = b >>> 8 & 255;
|
|
766
|
-
s.pending_buf[s.pending++] = b & 255;
|
|
767
|
-
};
|
|
768
|
-
const read_buf = (strm, buf, start, size) => {
|
|
769
|
-
let len = strm.avail_in;
|
|
770
|
-
if (len > size) len = size;
|
|
771
|
-
if (len === 0) return 0;
|
|
772
|
-
strm.avail_in -= len;
|
|
773
|
-
buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);
|
|
774
|
-
if (strm.state.wrap === 1) strm.adler = adler32_1(strm.adler, buf, len, start);
|
|
775
|
-
else if (strm.state.wrap === 2) strm.adler = crc32_1(strm.adler, buf, len, start);
|
|
776
|
-
strm.next_in += len;
|
|
777
|
-
strm.total_in += len;
|
|
778
|
-
return len;
|
|
779
|
-
};
|
|
780
|
-
const longest_match = (s, cur_match) => {
|
|
781
|
-
let chain_length = s.max_chain_length;
|
|
782
|
-
let scan = s.strstart;
|
|
783
|
-
let match;
|
|
784
|
-
let len;
|
|
785
|
-
let best_len = s.prev_length;
|
|
786
|
-
let nice_match = s.nice_match;
|
|
787
|
-
const limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
|
|
788
|
-
const _win = s.window;
|
|
789
|
-
const wmask = s.w_mask;
|
|
790
|
-
const prev = s.prev;
|
|
791
|
-
const strend = s.strstart + MAX_MATCH;
|
|
792
|
-
let scan_end1 = _win[scan + best_len - 1];
|
|
793
|
-
let scan_end = _win[scan + best_len];
|
|
794
|
-
if (s.prev_length >= s.good_match) chain_length >>= 2;
|
|
795
|
-
if (nice_match > s.lookahead) nice_match = s.lookahead;
|
|
796
|
-
do {
|
|
797
|
-
match = cur_match;
|
|
798
|
-
if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) continue;
|
|
799
|
-
scan += 2;
|
|
800
|
-
match++;
|
|
801
|
-
do ;
|
|
802
|
-
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);
|
|
803
|
-
len = MAX_MATCH - (strend - scan);
|
|
804
|
-
scan = strend - MAX_MATCH;
|
|
805
|
-
if (len > best_len) {
|
|
806
|
-
s.match_start = cur_match;
|
|
807
|
-
best_len = len;
|
|
808
|
-
if (len >= nice_match) break;
|
|
809
|
-
scan_end1 = _win[scan + best_len - 1];
|
|
810
|
-
scan_end = _win[scan + best_len];
|
|
811
|
-
}
|
|
812
|
-
} while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
|
|
813
|
-
if (best_len <= s.lookahead) return best_len;
|
|
814
|
-
return s.lookahead;
|
|
815
|
-
};
|
|
816
|
-
const fill_window = (s) => {
|
|
817
|
-
const _w_size = s.w_size;
|
|
818
|
-
let n, more, str;
|
|
819
|
-
do {
|
|
820
|
-
more = s.window_size - s.lookahead - s.strstart;
|
|
821
|
-
if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
|
|
822
|
-
s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);
|
|
823
|
-
s.match_start -= _w_size;
|
|
824
|
-
s.strstart -= _w_size;
|
|
825
|
-
s.block_start -= _w_size;
|
|
826
|
-
if (s.insert > s.strstart) s.insert = s.strstart;
|
|
827
|
-
slide_hash(s);
|
|
828
|
-
more += _w_size;
|
|
829
|
-
}
|
|
830
|
-
if (s.strm.avail_in === 0) break;
|
|
831
|
-
n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
|
|
832
|
-
s.lookahead += n;
|
|
833
|
-
if (s.lookahead + s.insert >= MIN_MATCH) {
|
|
834
|
-
str = s.strstart - s.insert;
|
|
835
|
-
s.ins_h = s.window[str];
|
|
836
|
-
s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);
|
|
837
|
-
while (s.insert) {
|
|
838
|
-
s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
|
|
839
|
-
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
840
|
-
s.head[s.ins_h] = str;
|
|
841
|
-
str++;
|
|
842
|
-
s.insert--;
|
|
843
|
-
if (s.lookahead + s.insert < MIN_MATCH) break;
|
|
844
|
-
}
|
|
845
|
-
}
|
|
846
|
-
} while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
|
|
847
|
-
};
|
|
848
|
-
const deflate_stored = (s, flush) => {
|
|
849
|
-
let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;
|
|
850
|
-
let len, left, have, last = 0;
|
|
851
|
-
let used = s.strm.avail_in;
|
|
852
|
-
do {
|
|
853
|
-
len = 65535;
|
|
854
|
-
have = s.bi_valid + 42 >> 3;
|
|
855
|
-
if (s.strm.avail_out < have) break;
|
|
856
|
-
have = s.strm.avail_out - have;
|
|
857
|
-
left = s.strstart - s.block_start;
|
|
858
|
-
if (len > left + s.strm.avail_in) len = left + s.strm.avail_in;
|
|
859
|
-
if (len > have) len = have;
|
|
860
|
-
if (len < min_block && (len === 0 && flush !== Z_FINISH$3 || flush === Z_NO_FLUSH$2 || len !== left + s.strm.avail_in)) break;
|
|
861
|
-
last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;
|
|
862
|
-
_tr_stored_block(s, 0, 0, last);
|
|
863
|
-
s.pending_buf[s.pending - 4] = len;
|
|
864
|
-
s.pending_buf[s.pending - 3] = len >> 8;
|
|
865
|
-
s.pending_buf[s.pending - 2] = ~len;
|
|
866
|
-
s.pending_buf[s.pending - 1] = ~len >> 8;
|
|
867
|
-
flush_pending(s.strm);
|
|
868
|
-
if (left) {
|
|
869
|
-
if (left > len) left = len;
|
|
870
|
-
s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);
|
|
871
|
-
s.strm.next_out += left;
|
|
872
|
-
s.strm.avail_out -= left;
|
|
873
|
-
s.strm.total_out += left;
|
|
874
|
-
s.block_start += left;
|
|
875
|
-
len -= left;
|
|
876
|
-
}
|
|
877
|
-
if (len) {
|
|
878
|
-
read_buf(s.strm, s.strm.output, s.strm.next_out, len);
|
|
879
|
-
s.strm.next_out += len;
|
|
880
|
-
s.strm.avail_out -= len;
|
|
881
|
-
s.strm.total_out += len;
|
|
882
|
-
}
|
|
883
|
-
} while (last === 0);
|
|
884
|
-
used -= s.strm.avail_in;
|
|
885
|
-
if (used) {
|
|
886
|
-
if (used >= s.w_size) {
|
|
887
|
-
s.matches = 2;
|
|
888
|
-
s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);
|
|
889
|
-
s.strstart = s.w_size;
|
|
890
|
-
s.insert = s.strstart;
|
|
891
|
-
} else {
|
|
892
|
-
if (s.window_size - s.strstart <= used) {
|
|
893
|
-
s.strstart -= s.w_size;
|
|
894
|
-
s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
|
|
895
|
-
if (s.matches < 2) s.matches++;
|
|
896
|
-
if (s.insert > s.strstart) s.insert = s.strstart;
|
|
897
|
-
}
|
|
898
|
-
s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);
|
|
899
|
-
s.strstart += used;
|
|
900
|
-
s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;
|
|
901
|
-
}
|
|
902
|
-
s.block_start = s.strstart;
|
|
903
|
-
}
|
|
904
|
-
if (s.high_water < s.strstart) s.high_water = s.strstart;
|
|
905
|
-
if (last) return BS_FINISH_DONE;
|
|
906
|
-
if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 && s.strm.avail_in === 0 && s.strstart === s.block_start) return BS_BLOCK_DONE;
|
|
907
|
-
have = s.window_size - s.strstart;
|
|
908
|
-
if (s.strm.avail_in > have && s.block_start >= s.w_size) {
|
|
909
|
-
s.block_start -= s.w_size;
|
|
910
|
-
s.strstart -= s.w_size;
|
|
911
|
-
s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
|
|
912
|
-
if (s.matches < 2) s.matches++;
|
|
913
|
-
have += s.w_size;
|
|
914
|
-
if (s.insert > s.strstart) s.insert = s.strstart;
|
|
915
|
-
}
|
|
916
|
-
if (have > s.strm.avail_in) have = s.strm.avail_in;
|
|
917
|
-
if (have) {
|
|
918
|
-
read_buf(s.strm, s.window, s.strstart, have);
|
|
919
|
-
s.strstart += have;
|
|
920
|
-
s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;
|
|
921
|
-
}
|
|
922
|
-
if (s.high_water < s.strstart) s.high_water = s.strstart;
|
|
923
|
-
have = s.bi_valid + 42 >> 3;
|
|
924
|
-
have = s.pending_buf_size - have > 65535 ? 65535 : s.pending_buf_size - have;
|
|
925
|
-
min_block = have > s.w_size ? s.w_size : have;
|
|
926
|
-
left = s.strstart - s.block_start;
|
|
927
|
-
if (left >= min_block || (left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 && s.strm.avail_in === 0 && left <= have) {
|
|
928
|
-
len = left > have ? have : left;
|
|
929
|
-
last = flush === Z_FINISH$3 && s.strm.avail_in === 0 && len === left ? 1 : 0;
|
|
930
|
-
_tr_stored_block(s, s.block_start, len, last);
|
|
931
|
-
s.block_start += len;
|
|
932
|
-
flush_pending(s.strm);
|
|
933
|
-
}
|
|
934
|
-
return last ? BS_FINISH_STARTED : BS_NEED_MORE;
|
|
935
|
-
};
|
|
936
|
-
const deflate_fast = (s, flush) => {
|
|
937
|
-
let hash_head;
|
|
938
|
-
let bflush;
|
|
939
|
-
for (;;) {
|
|
940
|
-
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
941
|
-
fill_window(s);
|
|
942
|
-
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) return BS_NEED_MORE;
|
|
943
|
-
if (s.lookahead === 0) break;
|
|
944
|
-
}
|
|
945
|
-
hash_head = 0;
|
|
946
|
-
if (s.lookahead >= MIN_MATCH) {
|
|
947
|
-
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
|
948
|
-
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
949
|
-
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
950
|
-
s.head[s.ins_h] = s.strstart;
|
|
951
|
-
}
|
|
952
|
-
if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) s.match_length = longest_match(s, hash_head);
|
|
953
|
-
if (s.match_length >= MIN_MATCH) {
|
|
954
|
-
/*** _tr_tally_dist(s, s.strstart - s.match_start,
|
|
955
|
-
s.match_length - MIN_MATCH, bflush); ***/
|
|
956
|
-
bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
|
|
957
|
-
s.lookahead -= s.match_length;
|
|
958
|
-
if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
|
|
959
|
-
s.match_length--;
|
|
960
|
-
do {
|
|
961
|
-
s.strstart++;
|
|
962
|
-
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
|
963
|
-
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
964
|
-
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
965
|
-
s.head[s.ins_h] = s.strstart;
|
|
966
|
-
} while (--s.match_length !== 0);
|
|
967
|
-
s.strstart++;
|
|
968
|
-
} else {
|
|
969
|
-
s.strstart += s.match_length;
|
|
970
|
-
s.match_length = 0;
|
|
971
|
-
s.ins_h = s.window[s.strstart];
|
|
972
|
-
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);
|
|
973
|
-
}
|
|
974
|
-
} else {
|
|
975
|
-
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
|
976
|
-
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
977
|
-
s.lookahead--;
|
|
978
|
-
s.strstart++;
|
|
979
|
-
}
|
|
980
|
-
if (bflush) {
|
|
981
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
982
|
-
flush_block_only(s, false);
|
|
983
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
984
|
-
}
|
|
985
|
-
}
|
|
986
|
-
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
987
|
-
if (flush === Z_FINISH$3) {
|
|
988
|
-
/*** FLUSH_BLOCK(s, 1); ***/
|
|
989
|
-
flush_block_only(s, true);
|
|
990
|
-
if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
|
|
991
|
-
return BS_FINISH_DONE;
|
|
992
|
-
}
|
|
993
|
-
if (s.sym_next) {
|
|
994
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
995
|
-
flush_block_only(s, false);
|
|
996
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
997
|
-
}
|
|
998
|
-
return BS_BLOCK_DONE;
|
|
999
|
-
};
|
|
1000
|
-
const deflate_slow = (s, flush) => {
|
|
1001
|
-
let hash_head;
|
|
1002
|
-
let bflush;
|
|
1003
|
-
let max_insert;
|
|
1004
|
-
for (;;) {
|
|
1005
|
-
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
1006
|
-
fill_window(s);
|
|
1007
|
-
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) return BS_NEED_MORE;
|
|
1008
|
-
if (s.lookahead === 0) break;
|
|
1009
|
-
}
|
|
1010
|
-
hash_head = 0;
|
|
1011
|
-
if (s.lookahead >= MIN_MATCH) {
|
|
1012
|
-
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
|
1013
|
-
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
1014
|
-
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1015
|
-
s.head[s.ins_h] = s.strstart;
|
|
1016
|
-
}
|
|
1017
|
-
s.prev_length = s.match_length;
|
|
1018
|
-
s.prev_match = s.match_start;
|
|
1019
|
-
s.match_length = MIN_MATCH - 1;
|
|
1020
|
-
if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
|
|
1021
|
-
s.match_length = longest_match(s, hash_head);
|
|
1022
|
-
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;
|
|
1023
|
-
}
|
|
1024
|
-
if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
|
|
1025
|
-
max_insert = s.strstart + s.lookahead - MIN_MATCH;
|
|
1026
|
-
/***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
|
|
1027
|
-
s.prev_length - MIN_MATCH, bflush);***/
|
|
1028
|
-
bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
|
|
1029
|
-
s.lookahead -= s.prev_length - 1;
|
|
1030
|
-
s.prev_length -= 2;
|
|
1031
|
-
do
|
|
1032
|
-
if (++s.strstart <= max_insert) {
|
|
1033
|
-
/*** INSERT_STRING(s, s.strstart, hash_head); ***/
|
|
1034
|
-
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
1035
|
-
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1036
|
-
s.head[s.ins_h] = s.strstart;
|
|
1037
|
-
}
|
|
1038
|
-
while (--s.prev_length !== 0);
|
|
1039
|
-
s.match_available = 0;
|
|
1040
|
-
s.match_length = MIN_MATCH - 1;
|
|
1041
|
-
s.strstart++;
|
|
1042
|
-
if (bflush) {
|
|
1043
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1044
|
-
flush_block_only(s, false);
|
|
1045
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1046
|
-
}
|
|
1047
|
-
} else if (s.match_available) {
|
|
1048
|
-
/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
|
|
1049
|
-
bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
1050
|
-
if (bflush)
|
|
1051
|
-
/*** FLUSH_BLOCK_ONLY(s, 0) ***/
|
|
1052
|
-
flush_block_only(s, false);
|
|
1053
|
-
s.strstart++;
|
|
1054
|
-
s.lookahead--;
|
|
1055
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1056
|
-
} else {
|
|
1057
|
-
s.match_available = 1;
|
|
1058
|
-
s.strstart++;
|
|
1059
|
-
s.lookahead--;
|
|
1060
|
-
}
|
|
1061
|
-
}
|
|
1062
|
-
if (s.match_available) {
|
|
1063
|
-
/*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
|
|
1064
|
-
bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
1065
|
-
s.match_available = 0;
|
|
1066
|
-
}
|
|
1067
|
-
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
1068
|
-
if (flush === Z_FINISH$3) {
|
|
1069
|
-
/*** FLUSH_BLOCK(s, 1); ***/
|
|
1070
|
-
flush_block_only(s, true);
|
|
1071
|
-
if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
|
|
1072
|
-
return BS_FINISH_DONE;
|
|
1073
|
-
}
|
|
1074
|
-
if (s.sym_next) {
|
|
1075
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1076
|
-
flush_block_only(s, false);
|
|
1077
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1078
|
-
}
|
|
1079
|
-
return BS_BLOCK_DONE;
|
|
1080
|
-
};
|
|
1081
|
-
const deflate_rle = (s, flush) => {
|
|
1082
|
-
let bflush;
|
|
1083
|
-
let prev;
|
|
1084
|
-
let scan, strend;
|
|
1085
|
-
const _win = s.window;
|
|
1086
|
-
for (;;) {
|
|
1087
|
-
if (s.lookahead <= MAX_MATCH) {
|
|
1088
|
-
fill_window(s);
|
|
1089
|
-
if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) return BS_NEED_MORE;
|
|
1090
|
-
if (s.lookahead === 0) break;
|
|
1091
|
-
}
|
|
1092
|
-
s.match_length = 0;
|
|
1093
|
-
if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
|
|
1094
|
-
scan = s.strstart - 1;
|
|
1095
|
-
prev = _win[scan];
|
|
1096
|
-
if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
|
|
1097
|
-
strend = s.strstart + MAX_MATCH;
|
|
1098
|
-
do ;
|
|
1099
|
-
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);
|
|
1100
|
-
s.match_length = MAX_MATCH - (strend - scan);
|
|
1101
|
-
if (s.match_length > s.lookahead) s.match_length = s.lookahead;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
if (s.match_length >= MIN_MATCH) {
|
|
1105
|
-
/*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
|
|
1106
|
-
bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);
|
|
1107
|
-
s.lookahead -= s.match_length;
|
|
1108
|
-
s.strstart += s.match_length;
|
|
1109
|
-
s.match_length = 0;
|
|
1110
|
-
} else {
|
|
1111
|
-
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
|
1112
|
-
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
1113
|
-
s.lookahead--;
|
|
1114
|
-
s.strstart++;
|
|
1115
|
-
}
|
|
1116
|
-
if (bflush) {
|
|
1117
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1118
|
-
flush_block_only(s, false);
|
|
1119
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1120
|
-
}
|
|
1121
|
-
}
|
|
1122
|
-
s.insert = 0;
|
|
1123
|
-
if (flush === Z_FINISH$3) {
|
|
1124
|
-
/*** FLUSH_BLOCK(s, 1); ***/
|
|
1125
|
-
flush_block_only(s, true);
|
|
1126
|
-
if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
|
|
1127
|
-
return BS_FINISH_DONE;
|
|
1128
|
-
}
|
|
1129
|
-
if (s.sym_next) {
|
|
1130
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1131
|
-
flush_block_only(s, false);
|
|
1132
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1133
|
-
}
|
|
1134
|
-
return BS_BLOCK_DONE;
|
|
1135
|
-
};
|
|
1136
|
-
const deflate_huff = (s, flush) => {
|
|
1137
|
-
let bflush;
|
|
1138
|
-
for (;;) {
|
|
1139
|
-
if (s.lookahead === 0) {
|
|
1140
|
-
fill_window(s);
|
|
1141
|
-
if (s.lookahead === 0) {
|
|
1142
|
-
if (flush === Z_NO_FLUSH$2) return BS_NEED_MORE;
|
|
1143
|
-
break;
|
|
1144
|
-
}
|
|
1145
|
-
}
|
|
1146
|
-
s.match_length = 0;
|
|
1147
|
-
/*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
|
|
1148
|
-
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
1149
|
-
s.lookahead--;
|
|
1150
|
-
s.strstart++;
|
|
1151
|
-
if (bflush) {
|
|
1152
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1153
|
-
flush_block_only(s, false);
|
|
1154
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1155
|
-
}
|
|
1156
|
-
}
|
|
1157
|
-
s.insert = 0;
|
|
1158
|
-
if (flush === Z_FINISH$3) {
|
|
1159
|
-
/*** FLUSH_BLOCK(s, 1); ***/
|
|
1160
|
-
flush_block_only(s, true);
|
|
1161
|
-
if (s.strm.avail_out === 0) return BS_FINISH_STARTED;
|
|
1162
|
-
return BS_FINISH_DONE;
|
|
1163
|
-
}
|
|
1164
|
-
if (s.sym_next) {
|
|
1165
|
-
/*** FLUSH_BLOCK(s, 0); ***/
|
|
1166
|
-
flush_block_only(s, false);
|
|
1167
|
-
if (s.strm.avail_out === 0) return BS_NEED_MORE;
|
|
1168
|
-
}
|
|
1169
|
-
return BS_BLOCK_DONE;
|
|
1170
|
-
};
|
|
1171
|
-
function Config(good_length, max_lazy, nice_length, max_chain, func) {
|
|
1172
|
-
this.good_length = good_length;
|
|
1173
|
-
this.max_lazy = max_lazy;
|
|
1174
|
-
this.nice_length = nice_length;
|
|
1175
|
-
this.max_chain = max_chain;
|
|
1176
|
-
this.func = func;
|
|
1177
|
-
}
|
|
1178
|
-
const configuration_table = [
|
|
1179
|
-
new Config(0, 0, 0, 0, deflate_stored),
|
|
1180
|
-
new Config(4, 4, 8, 4, deflate_fast),
|
|
1181
|
-
new Config(4, 5, 16, 8, deflate_fast),
|
|
1182
|
-
new Config(4, 6, 32, 32, deflate_fast),
|
|
1183
|
-
new Config(4, 4, 16, 16, deflate_slow),
|
|
1184
|
-
new Config(8, 16, 32, 32, deflate_slow),
|
|
1185
|
-
new Config(8, 16, 128, 128, deflate_slow),
|
|
1186
|
-
new Config(8, 32, 128, 256, deflate_slow),
|
|
1187
|
-
new Config(32, 128, 258, 1024, deflate_slow),
|
|
1188
|
-
new Config(32, 258, 258, 4096, deflate_slow)
|
|
1189
|
-
];
|
|
1190
|
-
const lm_init = (s) => {
|
|
1191
|
-
s.window_size = 2 * s.w_size;
|
|
1192
|
-
/*** CLEAR_HASH(s); ***/
|
|
1193
|
-
zero(s.head);
|
|
1194
|
-
s.max_lazy_match = configuration_table[s.level].max_lazy;
|
|
1195
|
-
s.good_match = configuration_table[s.level].good_length;
|
|
1196
|
-
s.nice_match = configuration_table[s.level].nice_length;
|
|
1197
|
-
s.max_chain_length = configuration_table[s.level].max_chain;
|
|
1198
|
-
s.strstart = 0;
|
|
1199
|
-
s.block_start = 0;
|
|
1200
|
-
s.lookahead = 0;
|
|
1201
|
-
s.insert = 0;
|
|
1202
|
-
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
1203
|
-
s.match_available = 0;
|
|
1204
|
-
s.ins_h = 0;
|
|
1205
|
-
};
|
|
1206
|
-
function DeflateState() {
|
|
1207
|
-
this.strm = null;
|
|
1208
|
-
this.status = 0;
|
|
1209
|
-
this.pending_buf = null;
|
|
1210
|
-
this.pending_buf_size = 0;
|
|
1211
|
-
this.pending_out = 0;
|
|
1212
|
-
this.pending = 0;
|
|
1213
|
-
this.wrap = 0;
|
|
1214
|
-
this.gzhead = null;
|
|
1215
|
-
this.gzindex = 0;
|
|
1216
|
-
this.method = Z_DEFLATED$2;
|
|
1217
|
-
this.last_flush = -1;
|
|
1218
|
-
this.w_size = 0;
|
|
1219
|
-
this.w_bits = 0;
|
|
1220
|
-
this.w_mask = 0;
|
|
1221
|
-
this.window = null;
|
|
1222
|
-
this.window_size = 0;
|
|
1223
|
-
this.prev = null;
|
|
1224
|
-
this.head = null;
|
|
1225
|
-
this.ins_h = 0;
|
|
1226
|
-
this.hash_size = 0;
|
|
1227
|
-
this.hash_bits = 0;
|
|
1228
|
-
this.hash_mask = 0;
|
|
1229
|
-
this.hash_shift = 0;
|
|
1230
|
-
this.block_start = 0;
|
|
1231
|
-
this.match_length = 0;
|
|
1232
|
-
this.prev_match = 0;
|
|
1233
|
-
this.match_available = 0;
|
|
1234
|
-
this.strstart = 0;
|
|
1235
|
-
this.match_start = 0;
|
|
1236
|
-
this.lookahead = 0;
|
|
1237
|
-
this.prev_length = 0;
|
|
1238
|
-
this.max_chain_length = 0;
|
|
1239
|
-
this.max_lazy_match = 0;
|
|
1240
|
-
this.level = 0;
|
|
1241
|
-
this.strategy = 0;
|
|
1242
|
-
this.good_match = 0;
|
|
1243
|
-
this.nice_match = 0;
|
|
1244
|
-
this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);
|
|
1245
|
-
this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);
|
|
1246
|
-
this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);
|
|
1247
|
-
zero(this.dyn_ltree);
|
|
1248
|
-
zero(this.dyn_dtree);
|
|
1249
|
-
zero(this.bl_tree);
|
|
1250
|
-
this.l_desc = null;
|
|
1251
|
-
this.d_desc = null;
|
|
1252
|
-
this.bl_desc = null;
|
|
1253
|
-
this.bl_count = new Uint16Array(MAX_BITS + 1);
|
|
1254
|
-
this.heap = new Uint16Array(2 * L_CODES + 1);
|
|
1255
|
-
zero(this.heap);
|
|
1256
|
-
this.heap_len = 0;
|
|
1257
|
-
this.heap_max = 0;
|
|
1258
|
-
this.depth = new Uint16Array(2 * L_CODES + 1);
|
|
1259
|
-
zero(this.depth);
|
|
1260
|
-
this.sym_buf = 0;
|
|
1261
|
-
this.lit_bufsize = 0;
|
|
1262
|
-
this.sym_next = 0;
|
|
1263
|
-
this.sym_end = 0;
|
|
1264
|
-
this.opt_len = 0;
|
|
1265
|
-
this.static_len = 0;
|
|
1266
|
-
this.matches = 0;
|
|
1267
|
-
this.insert = 0;
|
|
1268
|
-
this.bi_buf = 0;
|
|
1269
|
-
this.bi_valid = 0;
|
|
1270
|
-
}
|
|
1271
|
-
const deflateStateCheck = (strm) => {
|
|
1272
|
-
if (!strm) return 1;
|
|
1273
|
-
const s = strm.state;
|
|
1274
|
-
if (!s || s.strm !== strm || s.status !== INIT_STATE && s.status !== GZIP_STATE && s.status !== EXTRA_STATE && s.status !== NAME_STATE && s.status !== COMMENT_STATE && s.status !== HCRC_STATE && s.status !== BUSY_STATE && s.status !== FINISH_STATE) return 1;
|
|
1275
|
-
return 0;
|
|
1276
|
-
};
|
|
1277
|
-
const deflateResetKeep = (strm) => {
|
|
1278
|
-
if (deflateStateCheck(strm)) return err(strm, Z_STREAM_ERROR$2);
|
|
1279
|
-
strm.total_in = strm.total_out = 0;
|
|
1280
|
-
strm.data_type = Z_UNKNOWN;
|
|
1281
|
-
const s = strm.state;
|
|
1282
|
-
s.pending = 0;
|
|
1283
|
-
s.pending_out = 0;
|
|
1284
|
-
if (s.wrap < 0) s.wrap = -s.wrap;
|
|
1285
|
-
s.status = s.wrap === 2 ? GZIP_STATE : s.wrap ? INIT_STATE : BUSY_STATE;
|
|
1286
|
-
strm.adler = s.wrap === 2 ? 0 : 1;
|
|
1287
|
-
s.last_flush = -2;
|
|
1288
|
-
_tr_init(s);
|
|
1289
|
-
return Z_OK$3;
|
|
1290
|
-
};
|
|
1291
|
-
const deflateReset = (strm) => {
|
|
1292
|
-
const ret = deflateResetKeep(strm);
|
|
1293
|
-
if (ret === Z_OK$3) lm_init(strm.state);
|
|
1294
|
-
return ret;
|
|
1295
|
-
};
|
|
1296
|
-
const deflateSetHeader = (strm, head) => {
|
|
1297
|
-
if (deflateStateCheck(strm) || strm.state.wrap !== 2) return Z_STREAM_ERROR$2;
|
|
1298
|
-
strm.state.gzhead = head;
|
|
1299
|
-
return Z_OK$3;
|
|
1300
|
-
};
|
|
1301
|
-
const deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {
|
|
1302
|
-
if (!strm) return Z_STREAM_ERROR$2;
|
|
1303
|
-
let wrap = 1;
|
|
1304
|
-
if (level === Z_DEFAULT_COMPRESSION$1) level = 6;
|
|
1305
|
-
if (windowBits < 0) {
|
|
1306
|
-
wrap = 0;
|
|
1307
|
-
windowBits = -windowBits;
|
|
1308
|
-
} else if (windowBits > 15) {
|
|
1309
|
-
wrap = 2;
|
|
1310
|
-
windowBits -= 16;
|
|
1311
|
-
}
|
|
1312
|
-
if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED || windowBits === 8 && wrap !== 1) return err(strm, Z_STREAM_ERROR$2);
|
|
1313
|
-
if (windowBits === 8) windowBits = 9;
|
|
1314
|
-
const s = new DeflateState();
|
|
1315
|
-
strm.state = s;
|
|
1316
|
-
s.strm = strm;
|
|
1317
|
-
s.status = INIT_STATE;
|
|
1318
|
-
s.wrap = wrap;
|
|
1319
|
-
s.gzhead = null;
|
|
1320
|
-
s.w_bits = windowBits;
|
|
1321
|
-
s.w_size = 1 << s.w_bits;
|
|
1322
|
-
s.w_mask = s.w_size - 1;
|
|
1323
|
-
s.hash_bits = memLevel + 7;
|
|
1324
|
-
s.hash_size = 1 << s.hash_bits;
|
|
1325
|
-
s.hash_mask = s.hash_size - 1;
|
|
1326
|
-
s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
|
|
1327
|
-
s.window = new Uint8Array(s.w_size * 2);
|
|
1328
|
-
s.head = new Uint16Array(s.hash_size);
|
|
1329
|
-
s.prev = new Uint16Array(s.w_size);
|
|
1330
|
-
s.lit_bufsize = 1 << memLevel + 6;
|
|
1331
|
-
s.pending_buf_size = s.lit_bufsize * 4;
|
|
1332
|
-
s.pending_buf = new Uint8Array(s.pending_buf_size);
|
|
1333
|
-
s.sym_buf = s.lit_bufsize;
|
|
1334
|
-
s.sym_end = (s.lit_bufsize - 1) * 3;
|
|
1335
|
-
s.level = level;
|
|
1336
|
-
s.strategy = strategy;
|
|
1337
|
-
s.method = method;
|
|
1338
|
-
return deflateReset(strm);
|
|
1339
|
-
};
|
|
1340
|
-
const deflateInit = (strm, level) => {
|
|
1341
|
-
return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);
|
|
1342
|
-
};
|
|
1343
|
-
const deflate$2 = (strm, flush) => {
|
|
1344
|
-
if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;
|
|
1345
|
-
const s = strm.state;
|
|
1346
|
-
if (!strm.output || strm.avail_in !== 0 && !strm.input || s.status === FINISH_STATE && flush !== Z_FINISH$3) return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);
|
|
1347
|
-
const old_flush = s.last_flush;
|
|
1348
|
-
s.last_flush = flush;
|
|
1349
|
-
if (s.pending !== 0) {
|
|
1350
|
-
flush_pending(strm);
|
|
1351
|
-
if (strm.avail_out === 0) {
|
|
1352
|
-
s.last_flush = -1;
|
|
1353
|
-
return Z_OK$3;
|
|
1354
|
-
}
|
|
1355
|
-
} else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH$3) return err(strm, Z_BUF_ERROR$1);
|
|
1356
|
-
if (s.status === FINISH_STATE && strm.avail_in !== 0) return err(strm, Z_BUF_ERROR$1);
|
|
1357
|
-
if (s.status === INIT_STATE && s.wrap === 0) s.status = BUSY_STATE;
|
|
1358
|
-
if (s.status === INIT_STATE) {
|
|
1359
|
-
let header = Z_DEFLATED$2 + (s.w_bits - 8 << 4) << 8;
|
|
1360
|
-
let level_flags = -1;
|
|
1361
|
-
if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) level_flags = 0;
|
|
1362
|
-
else if (s.level < 6) level_flags = 1;
|
|
1363
|
-
else if (s.level === 6) level_flags = 2;
|
|
1364
|
-
else level_flags = 3;
|
|
1365
|
-
header |= level_flags << 6;
|
|
1366
|
-
if (s.strstart !== 0) header |= PRESET_DICT;
|
|
1367
|
-
header += 31 - header % 31;
|
|
1368
|
-
putShortMSB(s, header);
|
|
1369
|
-
if (s.strstart !== 0) {
|
|
1370
|
-
putShortMSB(s, strm.adler >>> 16);
|
|
1371
|
-
putShortMSB(s, strm.adler & 65535);
|
|
1372
|
-
}
|
|
1373
|
-
strm.adler = 1;
|
|
1374
|
-
s.status = BUSY_STATE;
|
|
1375
|
-
flush_pending(strm);
|
|
1376
|
-
if (s.pending !== 0) {
|
|
1377
|
-
s.last_flush = -1;
|
|
1378
|
-
return Z_OK$3;
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
if (s.status === GZIP_STATE) {
|
|
1382
|
-
strm.adler = 0;
|
|
1383
|
-
put_byte(s, 31);
|
|
1384
|
-
put_byte(s, 139);
|
|
1385
|
-
put_byte(s, 8);
|
|
1386
|
-
if (!s.gzhead) {
|
|
1387
|
-
put_byte(s, 0);
|
|
1388
|
-
put_byte(s, 0);
|
|
1389
|
-
put_byte(s, 0);
|
|
1390
|
-
put_byte(s, 0);
|
|
1391
|
-
put_byte(s, 0);
|
|
1392
|
-
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
1393
|
-
put_byte(s, OS_CODE);
|
|
1394
|
-
s.status = BUSY_STATE;
|
|
1395
|
-
flush_pending(strm);
|
|
1396
|
-
if (s.pending !== 0) {
|
|
1397
|
-
s.last_flush = -1;
|
|
1398
|
-
return Z_OK$3;
|
|
1399
|
-
}
|
|
1400
|
-
} else {
|
|
1401
|
-
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));
|
|
1402
|
-
put_byte(s, s.gzhead.time & 255);
|
|
1403
|
-
put_byte(s, s.gzhead.time >> 8 & 255);
|
|
1404
|
-
put_byte(s, s.gzhead.time >> 16 & 255);
|
|
1405
|
-
put_byte(s, s.gzhead.time >> 24 & 255);
|
|
1406
|
-
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
1407
|
-
put_byte(s, s.gzhead.os & 255);
|
|
1408
|
-
if (s.gzhead.extra && s.gzhead.extra.length) {
|
|
1409
|
-
put_byte(s, s.gzhead.extra.length & 255);
|
|
1410
|
-
put_byte(s, s.gzhead.extra.length >> 8 & 255);
|
|
1411
|
-
}
|
|
1412
|
-
if (s.gzhead.hcrc) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);
|
|
1413
|
-
s.gzindex = 0;
|
|
1414
|
-
s.status = EXTRA_STATE;
|
|
1415
|
-
}
|
|
1416
|
-
}
|
|
1417
|
-
if (s.status === EXTRA_STATE) {
|
|
1418
|
-
if (s.gzhead.extra) {
|
|
1419
|
-
let beg = s.pending;
|
|
1420
|
-
let left = (s.gzhead.extra.length & 65535) - s.gzindex;
|
|
1421
|
-
while (s.pending + left > s.pending_buf_size) {
|
|
1422
|
-
let copy = s.pending_buf_size - s.pending;
|
|
1423
|
-
s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);
|
|
1424
|
-
s.pending = s.pending_buf_size;
|
|
1425
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1426
|
-
s.gzindex += copy;
|
|
1427
|
-
flush_pending(strm);
|
|
1428
|
-
if (s.pending !== 0) {
|
|
1429
|
-
s.last_flush = -1;
|
|
1430
|
-
return Z_OK$3;
|
|
1431
|
-
}
|
|
1432
|
-
beg = 0;
|
|
1433
|
-
left -= copy;
|
|
1434
|
-
}
|
|
1435
|
-
let gzhead_extra = new Uint8Array(s.gzhead.extra);
|
|
1436
|
-
s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);
|
|
1437
|
-
s.pending += left;
|
|
1438
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1439
|
-
s.gzindex = 0;
|
|
1440
|
-
}
|
|
1441
|
-
s.status = NAME_STATE;
|
|
1442
|
-
}
|
|
1443
|
-
if (s.status === NAME_STATE) {
|
|
1444
|
-
if (s.gzhead.name) {
|
|
1445
|
-
let beg = s.pending;
|
|
1446
|
-
let val;
|
|
1447
|
-
do {
|
|
1448
|
-
if (s.pending === s.pending_buf_size) {
|
|
1449
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1450
|
-
flush_pending(strm);
|
|
1451
|
-
if (s.pending !== 0) {
|
|
1452
|
-
s.last_flush = -1;
|
|
1453
|
-
return Z_OK$3;
|
|
1454
|
-
}
|
|
1455
|
-
beg = 0;
|
|
1456
|
-
}
|
|
1457
|
-
if (s.gzindex < s.gzhead.name.length) val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
|
|
1458
|
-
else val = 0;
|
|
1459
|
-
put_byte(s, val);
|
|
1460
|
-
} while (val !== 0);
|
|
1461
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1462
|
-
s.gzindex = 0;
|
|
1463
|
-
}
|
|
1464
|
-
s.status = COMMENT_STATE;
|
|
1465
|
-
}
|
|
1466
|
-
if (s.status === COMMENT_STATE) {
|
|
1467
|
-
if (s.gzhead.comment) {
|
|
1468
|
-
let beg = s.pending;
|
|
1469
|
-
let val;
|
|
1470
|
-
do {
|
|
1471
|
-
if (s.pending === s.pending_buf_size) {
|
|
1472
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1473
|
-
flush_pending(strm);
|
|
1474
|
-
if (s.pending !== 0) {
|
|
1475
|
-
s.last_flush = -1;
|
|
1476
|
-
return Z_OK$3;
|
|
1477
|
-
}
|
|
1478
|
-
beg = 0;
|
|
1479
|
-
}
|
|
1480
|
-
if (s.gzindex < s.gzhead.comment.length) val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
|
|
1481
|
-
else val = 0;
|
|
1482
|
-
put_byte(s, val);
|
|
1483
|
-
} while (val !== 0);
|
|
1484
|
-
if (s.gzhead.hcrc && s.pending > beg) strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1485
|
-
}
|
|
1486
|
-
s.status = HCRC_STATE;
|
|
1487
|
-
}
|
|
1488
|
-
if (s.status === HCRC_STATE) {
|
|
1489
|
-
if (s.gzhead.hcrc) {
|
|
1490
|
-
if (s.pending + 2 > s.pending_buf_size) {
|
|
1491
|
-
flush_pending(strm);
|
|
1492
|
-
if (s.pending !== 0) {
|
|
1493
|
-
s.last_flush = -1;
|
|
1494
|
-
return Z_OK$3;
|
|
1495
|
-
}
|
|
1496
|
-
}
|
|
1497
|
-
put_byte(s, strm.adler & 255);
|
|
1498
|
-
put_byte(s, strm.adler >> 8 & 255);
|
|
1499
|
-
strm.adler = 0;
|
|
1500
|
-
}
|
|
1501
|
-
s.status = BUSY_STATE;
|
|
1502
|
-
flush_pending(strm);
|
|
1503
|
-
if (s.pending !== 0) {
|
|
1504
|
-
s.last_flush = -1;
|
|
1505
|
-
return Z_OK$3;
|
|
1506
|
-
}
|
|
1507
|
-
}
|
|
1508
|
-
if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE) {
|
|
1509
|
-
let bstate = s.level === 0 ? deflate_stored(s, flush) : s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);
|
|
1510
|
-
if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) s.status = FINISH_STATE;
|
|
1511
|
-
if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
|
|
1512
|
-
if (strm.avail_out === 0) s.last_flush = -1;
|
|
1513
|
-
return Z_OK$3;
|
|
1514
|
-
}
|
|
1515
|
-
if (bstate === BS_BLOCK_DONE) {
|
|
1516
|
-
if (flush === Z_PARTIAL_FLUSH) _tr_align(s);
|
|
1517
|
-
else if (flush !== Z_BLOCK$1) {
|
|
1518
|
-
_tr_stored_block(s, 0, 0, false);
|
|
1519
|
-
if (flush === Z_FULL_FLUSH$1) {
|
|
1520
|
-
/*** CLEAR_HASH(s); ***/ zero(s.head);
|
|
1521
|
-
if (s.lookahead === 0) {
|
|
1522
|
-
s.strstart = 0;
|
|
1523
|
-
s.block_start = 0;
|
|
1524
|
-
s.insert = 0;
|
|
1525
|
-
}
|
|
1526
|
-
}
|
|
1527
|
-
}
|
|
1528
|
-
flush_pending(strm);
|
|
1529
|
-
if (strm.avail_out === 0) {
|
|
1530
|
-
s.last_flush = -1;
|
|
1531
|
-
return Z_OK$3;
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
if (flush !== Z_FINISH$3) return Z_OK$3;
|
|
1536
|
-
if (s.wrap <= 0) return Z_STREAM_END$3;
|
|
1537
|
-
if (s.wrap === 2) {
|
|
1538
|
-
put_byte(s, strm.adler & 255);
|
|
1539
|
-
put_byte(s, strm.adler >> 8 & 255);
|
|
1540
|
-
put_byte(s, strm.adler >> 16 & 255);
|
|
1541
|
-
put_byte(s, strm.adler >> 24 & 255);
|
|
1542
|
-
put_byte(s, strm.total_in & 255);
|
|
1543
|
-
put_byte(s, strm.total_in >> 8 & 255);
|
|
1544
|
-
put_byte(s, strm.total_in >> 16 & 255);
|
|
1545
|
-
put_byte(s, strm.total_in >> 24 & 255);
|
|
1546
|
-
} else {
|
|
1547
|
-
putShortMSB(s, strm.adler >>> 16);
|
|
1548
|
-
putShortMSB(s, strm.adler & 65535);
|
|
1549
|
-
}
|
|
1550
|
-
flush_pending(strm);
|
|
1551
|
-
if (s.wrap > 0) s.wrap = -s.wrap;
|
|
1552
|
-
return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;
|
|
1553
|
-
};
|
|
1554
|
-
const deflateEnd = (strm) => {
|
|
1555
|
-
if (deflateStateCheck(strm)) return Z_STREAM_ERROR$2;
|
|
1556
|
-
const status = strm.state.status;
|
|
1557
|
-
strm.state = null;
|
|
1558
|
-
return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;
|
|
1559
|
-
};
|
|
1560
|
-
const deflateSetDictionary = (strm, dictionary) => {
|
|
1561
|
-
let dictLength = dictionary.length;
|
|
1562
|
-
if (deflateStateCheck(strm)) return Z_STREAM_ERROR$2;
|
|
1563
|
-
const s = strm.state;
|
|
1564
|
-
const wrap = s.wrap;
|
|
1565
|
-
if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) return Z_STREAM_ERROR$2;
|
|
1566
|
-
if (wrap === 1) strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);
|
|
1567
|
-
s.wrap = 0;
|
|
1568
|
-
if (dictLength >= s.w_size) {
|
|
1569
|
-
if (wrap === 0) {
|
|
1570
|
-
/*** CLEAR_HASH(s); ***/
|
|
1571
|
-
zero(s.head);
|
|
1572
|
-
s.strstart = 0;
|
|
1573
|
-
s.block_start = 0;
|
|
1574
|
-
s.insert = 0;
|
|
1575
|
-
}
|
|
1576
|
-
let tmpDict = new Uint8Array(s.w_size);
|
|
1577
|
-
tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);
|
|
1578
|
-
dictionary = tmpDict;
|
|
1579
|
-
dictLength = s.w_size;
|
|
1580
|
-
}
|
|
1581
|
-
const avail = strm.avail_in;
|
|
1582
|
-
const next = strm.next_in;
|
|
1583
|
-
const input = strm.input;
|
|
1584
|
-
strm.avail_in = dictLength;
|
|
1585
|
-
strm.next_in = 0;
|
|
1586
|
-
strm.input = dictionary;
|
|
1587
|
-
fill_window(s);
|
|
1588
|
-
while (s.lookahead >= MIN_MATCH) {
|
|
1589
|
-
let str = s.strstart;
|
|
1590
|
-
let n = s.lookahead - (MIN_MATCH - 1);
|
|
1591
|
-
do {
|
|
1592
|
-
s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
|
|
1593
|
-
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
1594
|
-
s.head[s.ins_h] = str;
|
|
1595
|
-
str++;
|
|
1596
|
-
} while (--n);
|
|
1597
|
-
s.strstart = str;
|
|
1598
|
-
s.lookahead = MIN_MATCH - 1;
|
|
1599
|
-
fill_window(s);
|
|
1600
|
-
}
|
|
1601
|
-
s.strstart += s.lookahead;
|
|
1602
|
-
s.block_start = s.strstart;
|
|
1603
|
-
s.insert = s.lookahead;
|
|
1604
|
-
s.lookahead = 0;
|
|
1605
|
-
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
1606
|
-
s.match_available = 0;
|
|
1607
|
-
strm.next_in = next;
|
|
1608
|
-
strm.input = input;
|
|
1609
|
-
strm.avail_in = avail;
|
|
1610
|
-
s.wrap = wrap;
|
|
1611
|
-
return Z_OK$3;
|
|
1612
|
-
};
|
|
1613
|
-
var deflate_1$2 = {
|
|
1614
|
-
deflateInit,
|
|
1615
|
-
deflateInit2,
|
|
1616
|
-
deflateReset,
|
|
1617
|
-
deflateResetKeep,
|
|
1618
|
-
deflateSetHeader,
|
|
1619
|
-
deflate: deflate$2,
|
|
1620
|
-
deflateEnd,
|
|
1621
|
-
deflateSetDictionary,
|
|
1622
|
-
deflateInfo: "pako deflate (from Nodeca project)"
|
|
1623
|
-
};
|
|
1624
|
-
const _has = (obj, key) => {
|
|
1625
|
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
1626
|
-
};
|
|
1627
|
-
var assign = function(obj) {
|
|
1628
|
-
const sources = Array.prototype.slice.call(arguments, 1);
|
|
1629
|
-
while (sources.length) {
|
|
1630
|
-
const source = sources.shift();
|
|
1631
|
-
if (!source) continue;
|
|
1632
|
-
if (typeof source !== "object") throw new TypeError(source + "must be non-object");
|
|
1633
|
-
for (const p in source) if (_has(source, p)) obj[p] = source[p];
|
|
1634
|
-
}
|
|
1635
|
-
return obj;
|
|
1636
|
-
};
|
|
1637
|
-
var flattenChunks = (chunks) => {
|
|
1638
|
-
let len = 0;
|
|
1639
|
-
for (let i = 0, l = chunks.length; i < l; i++) len += chunks[i].length;
|
|
1640
|
-
const result = new Uint8Array(len);
|
|
1641
|
-
for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {
|
|
1642
|
-
let chunk = chunks[i];
|
|
1643
|
-
result.set(chunk, pos);
|
|
1644
|
-
pos += chunk.length;
|
|
1645
|
-
}
|
|
1646
|
-
return result;
|
|
1647
|
-
};
|
|
1648
|
-
var common = {
|
|
1649
|
-
assign,
|
|
1650
|
-
flattenChunks
|
|
1651
|
-
};
|
|
1652
|
-
let STR_APPLY_UIA_OK = true;
|
|
1653
|
-
try {
|
|
1654
|
-
String.fromCharCode.apply(null, new Uint8Array(1));
|
|
1655
|
-
} catch (__) {
|
|
1656
|
-
STR_APPLY_UIA_OK = false;
|
|
1657
|
-
}
|
|
1658
|
-
const _utf8len = new Uint8Array(256);
|
|
1659
|
-
for (let q = 0; q < 256; q++) _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
|
|
1660
|
-
_utf8len[254] = _utf8len[254] = 1;
|
|
1661
|
-
var string2buf = (str) => {
|
|
1662
|
-
if (typeof TextEncoder === "function" && TextEncoder.prototype.encode) return new TextEncoder().encode(str);
|
|
1663
|
-
let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
|
|
1664
|
-
for (m_pos = 0; m_pos < str_len; m_pos++) {
|
|
1665
|
-
c = str.charCodeAt(m_pos);
|
|
1666
|
-
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
1667
|
-
c2 = str.charCodeAt(m_pos + 1);
|
|
1668
|
-
if ((c2 & 64512) === 56320) {
|
|
1669
|
-
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
1670
|
-
m_pos++;
|
|
1671
|
-
}
|
|
1672
|
-
}
|
|
1673
|
-
buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4;
|
|
1674
|
-
}
|
|
1675
|
-
buf = new Uint8Array(buf_len);
|
|
1676
|
-
for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
|
|
1677
|
-
c = str.charCodeAt(m_pos);
|
|
1678
|
-
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
1679
|
-
c2 = str.charCodeAt(m_pos + 1);
|
|
1680
|
-
if ((c2 & 64512) === 56320) {
|
|
1681
|
-
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
1682
|
-
m_pos++;
|
|
1683
|
-
}
|
|
1684
|
-
}
|
|
1685
|
-
if (c < 128) buf[i++] = c;
|
|
1686
|
-
else if (c < 2048) {
|
|
1687
|
-
buf[i++] = 192 | c >>> 6;
|
|
1688
|
-
buf[i++] = 128 | c & 63;
|
|
1689
|
-
} else if (c < 65536) {
|
|
1690
|
-
buf[i++] = 224 | c >>> 12;
|
|
1691
|
-
buf[i++] = 128 | c >>> 6 & 63;
|
|
1692
|
-
buf[i++] = 128 | c & 63;
|
|
1693
|
-
} else {
|
|
1694
|
-
buf[i++] = 240 | c >>> 18;
|
|
1695
|
-
buf[i++] = 128 | c >>> 12 & 63;
|
|
1696
|
-
buf[i++] = 128 | c >>> 6 & 63;
|
|
1697
|
-
buf[i++] = 128 | c & 63;
|
|
1698
|
-
}
|
|
1699
|
-
}
|
|
1700
|
-
return buf;
|
|
1701
|
-
};
|
|
1702
|
-
const buf2binstring = (buf, len) => {
|
|
1703
|
-
if (len < 65534) {
|
|
1704
|
-
if (buf.subarray && STR_APPLY_UIA_OK) return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));
|
|
1705
|
-
}
|
|
1706
|
-
let result = "";
|
|
1707
|
-
for (let i = 0; i < len; i++) result += String.fromCharCode(buf[i]);
|
|
1708
|
-
return result;
|
|
1709
|
-
};
|
|
1710
|
-
var buf2string = (buf, max) => {
|
|
1711
|
-
const len = max || buf.length;
|
|
1712
|
-
if (typeof TextDecoder === "function" && TextDecoder.prototype.decode) return new TextDecoder().decode(buf.subarray(0, max));
|
|
1713
|
-
let i, out;
|
|
1714
|
-
const utf16buf = new Array(len * 2);
|
|
1715
|
-
for (out = 0, i = 0; i < len;) {
|
|
1716
|
-
let c = buf[i++];
|
|
1717
|
-
if (c < 128) {
|
|
1718
|
-
utf16buf[out++] = c;
|
|
1719
|
-
continue;
|
|
1720
|
-
}
|
|
1721
|
-
let c_len = _utf8len[c];
|
|
1722
|
-
if (c_len > 4) {
|
|
1723
|
-
utf16buf[out++] = 65533;
|
|
1724
|
-
i += c_len - 1;
|
|
1725
|
-
continue;
|
|
1726
|
-
}
|
|
1727
|
-
c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
|
|
1728
|
-
while (c_len > 1 && i < len) {
|
|
1729
|
-
c = c << 6 | buf[i++] & 63;
|
|
1730
|
-
c_len--;
|
|
1731
|
-
}
|
|
1732
|
-
if (c_len > 1) {
|
|
1733
|
-
utf16buf[out++] = 65533;
|
|
1734
|
-
continue;
|
|
1735
|
-
}
|
|
1736
|
-
if (c < 65536) utf16buf[out++] = c;
|
|
1737
|
-
else {
|
|
1738
|
-
c -= 65536;
|
|
1739
|
-
utf16buf[out++] = 55296 | c >> 10 & 1023;
|
|
1740
|
-
utf16buf[out++] = 56320 | c & 1023;
|
|
1741
|
-
}
|
|
1742
|
-
}
|
|
1743
|
-
return buf2binstring(utf16buf, out);
|
|
1744
|
-
};
|
|
1745
|
-
var utf8border = (buf, max) => {
|
|
1746
|
-
max = max || buf.length;
|
|
1747
|
-
if (max > buf.length) max = buf.length;
|
|
1748
|
-
let pos = max - 1;
|
|
1749
|
-
while (pos >= 0 && (buf[pos] & 192) === 128) pos--;
|
|
1750
|
-
if (pos < 0) return max;
|
|
1751
|
-
if (pos === 0) return max;
|
|
1752
|
-
return pos + _utf8len[buf[pos]] > max ? pos : max;
|
|
1753
|
-
};
|
|
1754
|
-
var strings = {
|
|
1755
|
-
string2buf,
|
|
1756
|
-
buf2string,
|
|
1757
|
-
utf8border
|
|
1758
|
-
};
|
|
1759
|
-
function ZStream() {
|
|
1760
|
-
this.input = null;
|
|
1761
|
-
this.next_in = 0;
|
|
1762
|
-
this.avail_in = 0;
|
|
1763
|
-
this.total_in = 0;
|
|
1764
|
-
this.output = null;
|
|
1765
|
-
this.next_out = 0;
|
|
1766
|
-
this.avail_out = 0;
|
|
1767
|
-
this.total_out = 0;
|
|
1768
|
-
this.msg = "";
|
|
1769
|
-
this.state = null;
|
|
1770
|
-
this.data_type = 2;
|
|
1771
|
-
this.adler = 0;
|
|
1772
|
-
}
|
|
1773
|
-
var zstream = ZStream;
|
|
1774
|
-
const toString$1 = Object.prototype.toString;
|
|
1775
|
-
const { Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2, Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2, Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY, Z_DEFLATED: Z_DEFLATED$1 } = constants$2;
|
|
1776
|
-
/**
|
|
1777
|
-
* class Deflate
|
|
1778
|
-
*
|
|
1779
|
-
* Generic JS-style wrapper for zlib calls. If you don't need
|
|
1780
|
-
* streaming behaviour - use more simple functions: [[deflate]],
|
|
1781
|
-
* [[deflateRaw]] and [[gzip]].
|
|
1782
|
-
**/
|
|
1783
|
-
/**
|
|
1784
|
-
* Deflate.result -> Uint8Array
|
|
1785
|
-
*
|
|
1786
|
-
* Compressed result, generated by default [[Deflate#onData]]
|
|
1787
|
-
* and [[Deflate#onEnd]] handlers. Filled after you push last chunk
|
|
1788
|
-
* (call [[Deflate#push]] with `Z_FINISH` / `true` param).
|
|
1789
|
-
**/
|
|
1790
|
-
/**
|
|
1791
|
-
* Deflate.err -> Number
|
|
1792
|
-
*
|
|
1793
|
-
* Error code after deflate finished. 0 (Z_OK) on success.
|
|
1794
|
-
* You will not need it in real life, because deflate errors
|
|
1795
|
-
* are possible only on wrong options or bad `onData` / `onEnd`
|
|
1796
|
-
* custom handlers.
|
|
1797
|
-
**/
|
|
1798
|
-
/**
|
|
1799
|
-
* Deflate.msg -> String
|
|
1800
|
-
*
|
|
1801
|
-
* Error message, if [[Deflate.err]] != 0
|
|
1802
|
-
**/
|
|
1803
|
-
/**
|
|
1804
|
-
* new Deflate(options)
|
|
1805
|
-
* - options (Object): zlib deflate options.
|
|
1806
|
-
*
|
|
1807
|
-
* Creates new deflator instance with specified params. Throws exception
|
|
1808
|
-
* on bad params. Supported options:
|
|
1809
|
-
*
|
|
1810
|
-
* - `level`
|
|
1811
|
-
* - `windowBits`
|
|
1812
|
-
* - `memLevel`
|
|
1813
|
-
* - `strategy`
|
|
1814
|
-
* - `dictionary`
|
|
1815
|
-
*
|
|
1816
|
-
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
|
1817
|
-
* for more information on these.
|
|
1818
|
-
*
|
|
1819
|
-
* Additional options, for internal needs:
|
|
1820
|
-
*
|
|
1821
|
-
* - `chunkSize` - size of generated data chunks (16K by default)
|
|
1822
|
-
* - `raw` (Boolean) - do raw deflate
|
|
1823
|
-
* - `gzip` (Boolean) - create gzip wrapper
|
|
1824
|
-
* - `header` (Object) - custom header for gzip
|
|
1825
|
-
* - `text` (Boolean) - true if compressed data believed to be text
|
|
1826
|
-
* - `time` (Number) - modification time, unix timestamp
|
|
1827
|
-
* - `os` (Number) - operation system code
|
|
1828
|
-
* - `extra` (Array) - array of bytes with extra data (max 65536)
|
|
1829
|
-
* - `name` (String) - file name (binary string)
|
|
1830
|
-
* - `comment` (String) - comment (binary string)
|
|
1831
|
-
* - `hcrc` (Boolean) - true if header crc should be added
|
|
1832
|
-
*
|
|
1833
|
-
* ##### Example:
|
|
1834
|
-
*
|
|
1835
|
-
* ```javascript
|
|
1836
|
-
* const pako = require('pako')
|
|
1837
|
-
* , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])
|
|
1838
|
-
* , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);
|
|
1839
|
-
*
|
|
1840
|
-
* const deflate = new pako.Deflate({ level: 3});
|
|
1841
|
-
*
|
|
1842
|
-
* deflate.push(chunk1, false);
|
|
1843
|
-
* deflate.push(chunk2, true); // true -> last chunk
|
|
1844
|
-
*
|
|
1845
|
-
* if (deflate.err) { throw new Error(deflate.err); }
|
|
1846
|
-
*
|
|
1847
|
-
* console.log(deflate.result);
|
|
1848
|
-
* ```
|
|
1849
|
-
**/
|
|
1850
|
-
function Deflate$1(options) {
|
|
1851
|
-
this.options = common.assign({
|
|
1852
|
-
level: Z_DEFAULT_COMPRESSION,
|
|
1853
|
-
method: Z_DEFLATED$1,
|
|
1854
|
-
chunkSize: 16384,
|
|
1855
|
-
windowBits: 15,
|
|
1856
|
-
memLevel: 8,
|
|
1857
|
-
strategy: Z_DEFAULT_STRATEGY
|
|
1858
|
-
}, options || {});
|
|
1859
|
-
let opt = this.options;
|
|
1860
|
-
if (opt.raw && opt.windowBits > 0) opt.windowBits = -opt.windowBits;
|
|
1861
|
-
else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) opt.windowBits += 16;
|
|
1862
|
-
this.err = 0;
|
|
1863
|
-
this.msg = "";
|
|
1864
|
-
this.ended = false;
|
|
1865
|
-
this.chunks = [];
|
|
1866
|
-
this.strm = new zstream();
|
|
1867
|
-
this.strm.avail_out = 0;
|
|
1868
|
-
let status = deflate_1$2.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy);
|
|
1869
|
-
if (status !== Z_OK$2) throw new Error(messages[status]);
|
|
1870
|
-
if (opt.header) deflate_1$2.deflateSetHeader(this.strm, opt.header);
|
|
1871
|
-
if (opt.dictionary) {
|
|
1872
|
-
let dict;
|
|
1873
|
-
if (typeof opt.dictionary === "string") dict = strings.string2buf(opt.dictionary);
|
|
1874
|
-
else if (toString$1.call(opt.dictionary) === "[object ArrayBuffer]") dict = new Uint8Array(opt.dictionary);
|
|
1875
|
-
else dict = opt.dictionary;
|
|
1876
|
-
status = deflate_1$2.deflateSetDictionary(this.strm, dict);
|
|
1877
|
-
if (status !== Z_OK$2) throw new Error(messages[status]);
|
|
1878
|
-
this._dict_set = true;
|
|
1879
|
-
}
|
|
1880
|
-
}
|
|
1881
|
-
/**
|
|
1882
|
-
* Deflate#push(data[, flush_mode]) -> Boolean
|
|
1883
|
-
* - data (Uint8Array|ArrayBuffer|String): input data. Strings will be
|
|
1884
|
-
* converted to utf8 byte sequence.
|
|
1885
|
-
* - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
|
|
1886
|
-
* See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.
|
|
1887
|
-
*
|
|
1888
|
-
* Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
|
|
1889
|
-
* new compressed chunks. Returns `true` on success. The last data block must
|
|
1890
|
-
* have `flush_mode` Z_FINISH (or `true`). That will flush internal pending
|
|
1891
|
-
* buffers and call [[Deflate#onEnd]].
|
|
1892
|
-
*
|
|
1893
|
-
* On fail call [[Deflate#onEnd]] with error code and return false.
|
|
1894
|
-
*
|
|
1895
|
-
* ##### Example
|
|
1896
|
-
*
|
|
1897
|
-
* ```javascript
|
|
1898
|
-
* push(chunk, false); // push one of data chunks
|
|
1899
|
-
* ...
|
|
1900
|
-
* push(chunk, true); // push last chunk
|
|
1901
|
-
* ```
|
|
1902
|
-
**/
|
|
1903
|
-
Deflate$1.prototype.push = function(data, flush_mode) {
|
|
1904
|
-
const strm = this.strm;
|
|
1905
|
-
const chunkSize = this.options.chunkSize;
|
|
1906
|
-
let status, _flush_mode;
|
|
1907
|
-
if (this.ended) return false;
|
|
1908
|
-
if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;
|
|
1909
|
-
else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;
|
|
1910
|
-
if (typeof data === "string") strm.input = strings.string2buf(data);
|
|
1911
|
-
else if (toString$1.call(data) === "[object ArrayBuffer]") strm.input = new Uint8Array(data);
|
|
1912
|
-
else strm.input = data;
|
|
1913
|
-
strm.next_in = 0;
|
|
1914
|
-
strm.avail_in = strm.input.length;
|
|
1915
|
-
for (;;) {
|
|
1916
|
-
if (strm.avail_out === 0) {
|
|
1917
|
-
strm.output = new Uint8Array(chunkSize);
|
|
1918
|
-
strm.next_out = 0;
|
|
1919
|
-
strm.avail_out = chunkSize;
|
|
1920
|
-
}
|
|
1921
|
-
if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {
|
|
1922
|
-
this.onData(strm.output.subarray(0, strm.next_out));
|
|
1923
|
-
strm.avail_out = 0;
|
|
1924
|
-
continue;
|
|
1925
|
-
}
|
|
1926
|
-
status = deflate_1$2.deflate(strm, _flush_mode);
|
|
1927
|
-
if (status === Z_STREAM_END$2) {
|
|
1928
|
-
if (strm.next_out > 0) this.onData(strm.output.subarray(0, strm.next_out));
|
|
1929
|
-
status = deflate_1$2.deflateEnd(this.strm);
|
|
1930
|
-
this.onEnd(status);
|
|
1931
|
-
this.ended = true;
|
|
1932
|
-
return status === Z_OK$2;
|
|
1933
|
-
}
|
|
1934
|
-
if (strm.avail_out === 0) {
|
|
1935
|
-
this.onData(strm.output);
|
|
1936
|
-
continue;
|
|
1937
|
-
}
|
|
1938
|
-
if (_flush_mode > 0 && strm.next_out > 0) {
|
|
1939
|
-
this.onData(strm.output.subarray(0, strm.next_out));
|
|
1940
|
-
strm.avail_out = 0;
|
|
1941
|
-
continue;
|
|
1942
|
-
}
|
|
1943
|
-
if (strm.avail_in === 0) break;
|
|
1944
|
-
}
|
|
1945
|
-
return true;
|
|
1946
|
-
};
|
|
1947
|
-
/**
|
|
1948
|
-
* Deflate#onData(chunk) -> Void
|
|
1949
|
-
* - chunk (Uint8Array): output data.
|
|
1950
|
-
*
|
|
1951
|
-
* By default, stores data blocks in `chunks[]` property and glue
|
|
1952
|
-
* those in `onEnd`. Override this handler, if you need another behaviour.
|
|
1953
|
-
**/
|
|
1954
|
-
Deflate$1.prototype.onData = function(chunk) {
|
|
1955
|
-
this.chunks.push(chunk);
|
|
1956
|
-
};
|
|
1957
|
-
/**
|
|
1958
|
-
* Deflate#onEnd(status) -> Void
|
|
1959
|
-
* - status (Number): deflate status. 0 (Z_OK) on success,
|
|
1960
|
-
* other if not.
|
|
1961
|
-
*
|
|
1962
|
-
* Called once after you tell deflate that the input stream is
|
|
1963
|
-
* complete (Z_FINISH). By default - join collected chunks,
|
|
1964
|
-
* free memory and fill `results` / `err` properties.
|
|
1965
|
-
**/
|
|
1966
|
-
Deflate$1.prototype.onEnd = function(status) {
|
|
1967
|
-
if (status === Z_OK$2) this.result = common.flattenChunks(this.chunks);
|
|
1968
|
-
this.chunks = [];
|
|
1969
|
-
this.err = status;
|
|
1970
|
-
this.msg = this.strm.msg;
|
|
1971
|
-
};
|
|
1972
|
-
/**
|
|
1973
|
-
* deflate(data[, options]) -> Uint8Array
|
|
1974
|
-
* - data (Uint8Array|ArrayBuffer|String): input data to compress.
|
|
1975
|
-
* - options (Object): zlib deflate options.
|
|
1976
|
-
*
|
|
1977
|
-
* Compress `data` with deflate algorithm and `options`.
|
|
1978
|
-
*
|
|
1979
|
-
* Supported options are:
|
|
1980
|
-
*
|
|
1981
|
-
* - level
|
|
1982
|
-
* - windowBits
|
|
1983
|
-
* - memLevel
|
|
1984
|
-
* - strategy
|
|
1985
|
-
* - dictionary
|
|
1986
|
-
*
|
|
1987
|
-
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
|
1988
|
-
* for more information on these.
|
|
1989
|
-
*
|
|
1990
|
-
* Sugar (options):
|
|
1991
|
-
*
|
|
1992
|
-
* - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
|
|
1993
|
-
* negative windowBits implicitly.
|
|
1994
|
-
*
|
|
1995
|
-
* ##### Example:
|
|
1996
|
-
*
|
|
1997
|
-
* ```javascript
|
|
1998
|
-
* const pako = require('pako')
|
|
1999
|
-
* const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);
|
|
2000
|
-
*
|
|
2001
|
-
* console.log(pako.deflate(data));
|
|
2002
|
-
* ```
|
|
2003
|
-
**/
|
|
2004
|
-
function deflate$1(input, options) {
|
|
2005
|
-
const deflator = new Deflate$1(options);
|
|
2006
|
-
deflator.push(input, true);
|
|
2007
|
-
if (deflator.err) throw deflator.msg || messages[deflator.err];
|
|
2008
|
-
return deflator.result;
|
|
2009
|
-
}
|
|
2010
|
-
/**
|
|
2011
|
-
* deflateRaw(data[, options]) -> Uint8Array
|
|
2012
|
-
* - data (Uint8Array|ArrayBuffer|String): input data to compress.
|
|
2013
|
-
* - options (Object): zlib deflate options.
|
|
2014
|
-
*
|
|
2015
|
-
* The same as [[deflate]], but creates raw data, without wrapper
|
|
2016
|
-
* (header and adler32 crc).
|
|
2017
|
-
**/
|
|
2018
|
-
function deflateRaw$1(input, options) {
|
|
2019
|
-
options = options || {};
|
|
2020
|
-
options.raw = true;
|
|
2021
|
-
return deflate$1(input, options);
|
|
2022
|
-
}
|
|
2023
|
-
/**
|
|
2024
|
-
* gzip(data[, options]) -> Uint8Array
|
|
2025
|
-
* - data (Uint8Array|ArrayBuffer|String): input data to compress.
|
|
2026
|
-
* - options (Object): zlib deflate options.
|
|
2027
|
-
*
|
|
2028
|
-
* The same as [[deflate]], but create gzip wrapper instead of
|
|
2029
|
-
* deflate one.
|
|
2030
|
-
**/
|
|
2031
|
-
function gzip$1(input, options) {
|
|
2032
|
-
options = options || {};
|
|
2033
|
-
options.gzip = true;
|
|
2034
|
-
return deflate$1(input, options);
|
|
2035
|
-
}
|
|
2036
|
-
var deflate_1$1 = {
|
|
2037
|
-
Deflate: Deflate$1,
|
|
2038
|
-
deflate: deflate$1,
|
|
2039
|
-
deflateRaw: deflateRaw$1,
|
|
2040
|
-
gzip: gzip$1,
|
|
2041
|
-
constants: constants$2
|
|
2042
|
-
};
|
|
2043
|
-
const BAD$1 = 16209;
|
|
2044
|
-
const TYPE$1 = 16191;
|
|
2045
|
-
var inffast = function inflate_fast(strm, start) {
|
|
2046
|
-
let _in;
|
|
2047
|
-
let last;
|
|
2048
|
-
let _out;
|
|
2049
|
-
let beg;
|
|
2050
|
-
let end;
|
|
2051
|
-
let dmax;
|
|
2052
|
-
let wsize;
|
|
2053
|
-
let whave;
|
|
2054
|
-
let wnext;
|
|
2055
|
-
let s_window;
|
|
2056
|
-
let hold;
|
|
2057
|
-
let bits;
|
|
2058
|
-
let lcode;
|
|
2059
|
-
let dcode;
|
|
2060
|
-
let lmask;
|
|
2061
|
-
let dmask;
|
|
2062
|
-
let here;
|
|
2063
|
-
let op;
|
|
2064
|
-
let len;
|
|
2065
|
-
let dist;
|
|
2066
|
-
let from;
|
|
2067
|
-
let from_source;
|
|
2068
|
-
let input, output;
|
|
2069
|
-
const state = strm.state;
|
|
2070
|
-
_in = strm.next_in;
|
|
2071
|
-
input = strm.input;
|
|
2072
|
-
last = _in + (strm.avail_in - 5);
|
|
2073
|
-
_out = strm.next_out;
|
|
2074
|
-
output = strm.output;
|
|
2075
|
-
beg = _out - (start - strm.avail_out);
|
|
2076
|
-
end = _out + (strm.avail_out - 257);
|
|
2077
|
-
dmax = state.dmax;
|
|
2078
|
-
wsize = state.wsize;
|
|
2079
|
-
whave = state.whave;
|
|
2080
|
-
wnext = state.wnext;
|
|
2081
|
-
s_window = state.window;
|
|
2082
|
-
hold = state.hold;
|
|
2083
|
-
bits = state.bits;
|
|
2084
|
-
lcode = state.lencode;
|
|
2085
|
-
dcode = state.distcode;
|
|
2086
|
-
lmask = (1 << state.lenbits) - 1;
|
|
2087
|
-
dmask = (1 << state.distbits) - 1;
|
|
2088
|
-
top: do {
|
|
2089
|
-
if (bits < 15) {
|
|
2090
|
-
hold += input[_in++] << bits;
|
|
2091
|
-
bits += 8;
|
|
2092
|
-
hold += input[_in++] << bits;
|
|
2093
|
-
bits += 8;
|
|
2094
|
-
}
|
|
2095
|
-
here = lcode[hold & lmask];
|
|
2096
|
-
dolen: for (;;) {
|
|
2097
|
-
op = here >>> 24;
|
|
2098
|
-
hold >>>= op;
|
|
2099
|
-
bits -= op;
|
|
2100
|
-
op = here >>> 16 & 255;
|
|
2101
|
-
if (op === 0) output[_out++] = here & 65535;
|
|
2102
|
-
else if (op & 16) {
|
|
2103
|
-
len = here & 65535;
|
|
2104
|
-
op &= 15;
|
|
2105
|
-
if (op) {
|
|
2106
|
-
if (bits < op) {
|
|
2107
|
-
hold += input[_in++] << bits;
|
|
2108
|
-
bits += 8;
|
|
2109
|
-
}
|
|
2110
|
-
len += hold & (1 << op) - 1;
|
|
2111
|
-
hold >>>= op;
|
|
2112
|
-
bits -= op;
|
|
2113
|
-
}
|
|
2114
|
-
if (bits < 15) {
|
|
2115
|
-
hold += input[_in++] << bits;
|
|
2116
|
-
bits += 8;
|
|
2117
|
-
hold += input[_in++] << bits;
|
|
2118
|
-
bits += 8;
|
|
2119
|
-
}
|
|
2120
|
-
here = dcode[hold & dmask];
|
|
2121
|
-
dodist: for (;;) {
|
|
2122
|
-
op = here >>> 24;
|
|
2123
|
-
hold >>>= op;
|
|
2124
|
-
bits -= op;
|
|
2125
|
-
op = here >>> 16 & 255;
|
|
2126
|
-
if (op & 16) {
|
|
2127
|
-
dist = here & 65535;
|
|
2128
|
-
op &= 15;
|
|
2129
|
-
if (bits < op) {
|
|
2130
|
-
hold += input[_in++] << bits;
|
|
2131
|
-
bits += 8;
|
|
2132
|
-
if (bits < op) {
|
|
2133
|
-
hold += input[_in++] << bits;
|
|
2134
|
-
bits += 8;
|
|
2135
|
-
}
|
|
2136
|
-
}
|
|
2137
|
-
dist += hold & (1 << op) - 1;
|
|
2138
|
-
if (dist > dmax) {
|
|
2139
|
-
strm.msg = "invalid distance too far back";
|
|
2140
|
-
state.mode = BAD$1;
|
|
2141
|
-
break top;
|
|
2142
|
-
}
|
|
2143
|
-
hold >>>= op;
|
|
2144
|
-
bits -= op;
|
|
2145
|
-
op = _out - beg;
|
|
2146
|
-
if (dist > op) {
|
|
2147
|
-
op = dist - op;
|
|
2148
|
-
if (op > whave) {
|
|
2149
|
-
if (state.sane) {
|
|
2150
|
-
strm.msg = "invalid distance too far back";
|
|
2151
|
-
state.mode = BAD$1;
|
|
2152
|
-
break top;
|
|
2153
|
-
}
|
|
2154
|
-
}
|
|
2155
|
-
from = 0;
|
|
2156
|
-
from_source = s_window;
|
|
2157
|
-
if (wnext === 0) {
|
|
2158
|
-
from += wsize - op;
|
|
2159
|
-
if (op < len) {
|
|
2160
|
-
len -= op;
|
|
2161
|
-
do
|
|
2162
|
-
output[_out++] = s_window[from++];
|
|
2163
|
-
while (--op);
|
|
2164
|
-
from = _out - dist;
|
|
2165
|
-
from_source = output;
|
|
2166
|
-
}
|
|
2167
|
-
} else if (wnext < op) {
|
|
2168
|
-
from += wsize + wnext - op;
|
|
2169
|
-
op -= wnext;
|
|
2170
|
-
if (op < len) {
|
|
2171
|
-
len -= op;
|
|
2172
|
-
do
|
|
2173
|
-
output[_out++] = s_window[from++];
|
|
2174
|
-
while (--op);
|
|
2175
|
-
from = 0;
|
|
2176
|
-
if (wnext < len) {
|
|
2177
|
-
op = wnext;
|
|
2178
|
-
len -= op;
|
|
2179
|
-
do
|
|
2180
|
-
output[_out++] = s_window[from++];
|
|
2181
|
-
while (--op);
|
|
2182
|
-
from = _out - dist;
|
|
2183
|
-
from_source = output;
|
|
2184
|
-
}
|
|
2185
|
-
}
|
|
2186
|
-
} else {
|
|
2187
|
-
from += wnext - op;
|
|
2188
|
-
if (op < len) {
|
|
2189
|
-
len -= op;
|
|
2190
|
-
do
|
|
2191
|
-
output[_out++] = s_window[from++];
|
|
2192
|
-
while (--op);
|
|
2193
|
-
from = _out - dist;
|
|
2194
|
-
from_source = output;
|
|
2195
|
-
}
|
|
2196
|
-
}
|
|
2197
|
-
while (len > 2) {
|
|
2198
|
-
output[_out++] = from_source[from++];
|
|
2199
|
-
output[_out++] = from_source[from++];
|
|
2200
|
-
output[_out++] = from_source[from++];
|
|
2201
|
-
len -= 3;
|
|
2202
|
-
}
|
|
2203
|
-
if (len) {
|
|
2204
|
-
output[_out++] = from_source[from++];
|
|
2205
|
-
if (len > 1) output[_out++] = from_source[from++];
|
|
2206
|
-
}
|
|
2207
|
-
} else {
|
|
2208
|
-
from = _out - dist;
|
|
2209
|
-
do {
|
|
2210
|
-
output[_out++] = output[from++];
|
|
2211
|
-
output[_out++] = output[from++];
|
|
2212
|
-
output[_out++] = output[from++];
|
|
2213
|
-
len -= 3;
|
|
2214
|
-
} while (len > 2);
|
|
2215
|
-
if (len) {
|
|
2216
|
-
output[_out++] = output[from++];
|
|
2217
|
-
if (len > 1) output[_out++] = output[from++];
|
|
2218
|
-
}
|
|
2219
|
-
}
|
|
2220
|
-
} else if ((op & 64) === 0) {
|
|
2221
|
-
here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
2222
|
-
continue dodist;
|
|
2223
|
-
} else {
|
|
2224
|
-
strm.msg = "invalid distance code";
|
|
2225
|
-
state.mode = BAD$1;
|
|
2226
|
-
break top;
|
|
2227
|
-
}
|
|
2228
|
-
break;
|
|
2229
|
-
}
|
|
2230
|
-
} else if ((op & 64) === 0) {
|
|
2231
|
-
here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
2232
|
-
continue dolen;
|
|
2233
|
-
} else if (op & 32) {
|
|
2234
|
-
state.mode = TYPE$1;
|
|
2235
|
-
break top;
|
|
2236
|
-
} else {
|
|
2237
|
-
strm.msg = "invalid literal/length code";
|
|
2238
|
-
state.mode = BAD$1;
|
|
2239
|
-
break top;
|
|
2240
|
-
}
|
|
2241
|
-
break;
|
|
2242
|
-
}
|
|
2243
|
-
} while (_in < last && _out < end);
|
|
2244
|
-
len = bits >> 3;
|
|
2245
|
-
_in -= len;
|
|
2246
|
-
bits -= len << 3;
|
|
2247
|
-
hold &= (1 << bits) - 1;
|
|
2248
|
-
strm.next_in = _in;
|
|
2249
|
-
strm.next_out = _out;
|
|
2250
|
-
strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
|
|
2251
|
-
strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
|
|
2252
|
-
state.hold = hold;
|
|
2253
|
-
state.bits = bits;
|
|
2254
|
-
};
|
|
2255
|
-
const MAXBITS = 15;
|
|
2256
|
-
const ENOUGH_LENS$1 = 852;
|
|
2257
|
-
const ENOUGH_DISTS$1 = 592;
|
|
2258
|
-
const CODES$1 = 0;
|
|
2259
|
-
const LENS$1 = 1;
|
|
2260
|
-
const DISTS$1 = 2;
|
|
2261
|
-
const lbase = new Uint16Array([
|
|
2262
|
-
3,
|
|
2263
|
-
4,
|
|
2264
|
-
5,
|
|
2265
|
-
6,
|
|
2266
|
-
7,
|
|
2267
|
-
8,
|
|
2268
|
-
9,
|
|
2269
|
-
10,
|
|
2270
|
-
11,
|
|
2271
|
-
13,
|
|
2272
|
-
15,
|
|
2273
|
-
17,
|
|
2274
|
-
19,
|
|
2275
|
-
23,
|
|
2276
|
-
27,
|
|
2277
|
-
31,
|
|
2278
|
-
35,
|
|
2279
|
-
43,
|
|
2280
|
-
51,
|
|
2281
|
-
59,
|
|
2282
|
-
67,
|
|
2283
|
-
83,
|
|
2284
|
-
99,
|
|
2285
|
-
115,
|
|
2286
|
-
131,
|
|
2287
|
-
163,
|
|
2288
|
-
195,
|
|
2289
|
-
227,
|
|
2290
|
-
258,
|
|
2291
|
-
0,
|
|
2292
|
-
0
|
|
2293
|
-
]);
|
|
2294
|
-
const lext = new Uint8Array([
|
|
2295
|
-
16,
|
|
2296
|
-
16,
|
|
2297
|
-
16,
|
|
2298
|
-
16,
|
|
2299
|
-
16,
|
|
2300
|
-
16,
|
|
2301
|
-
16,
|
|
2302
|
-
16,
|
|
2303
|
-
17,
|
|
2304
|
-
17,
|
|
2305
|
-
17,
|
|
2306
|
-
17,
|
|
2307
|
-
18,
|
|
2308
|
-
18,
|
|
2309
|
-
18,
|
|
2310
|
-
18,
|
|
2311
|
-
19,
|
|
2312
|
-
19,
|
|
2313
|
-
19,
|
|
2314
|
-
19,
|
|
2315
|
-
20,
|
|
2316
|
-
20,
|
|
2317
|
-
20,
|
|
2318
|
-
20,
|
|
2319
|
-
21,
|
|
2320
|
-
21,
|
|
2321
|
-
21,
|
|
2322
|
-
21,
|
|
2323
|
-
16,
|
|
2324
|
-
72,
|
|
2325
|
-
78
|
|
2326
|
-
]);
|
|
2327
|
-
const dbase = new Uint16Array([
|
|
2328
|
-
1,
|
|
2329
|
-
2,
|
|
2330
|
-
3,
|
|
2331
|
-
4,
|
|
2332
|
-
5,
|
|
2333
|
-
7,
|
|
2334
|
-
9,
|
|
2335
|
-
13,
|
|
2336
|
-
17,
|
|
2337
|
-
25,
|
|
2338
|
-
33,
|
|
2339
|
-
49,
|
|
2340
|
-
65,
|
|
2341
|
-
97,
|
|
2342
|
-
129,
|
|
2343
|
-
193,
|
|
2344
|
-
257,
|
|
2345
|
-
385,
|
|
2346
|
-
513,
|
|
2347
|
-
769,
|
|
2348
|
-
1025,
|
|
2349
|
-
1537,
|
|
2350
|
-
2049,
|
|
2351
|
-
3073,
|
|
2352
|
-
4097,
|
|
2353
|
-
6145,
|
|
2354
|
-
8193,
|
|
2355
|
-
12289,
|
|
2356
|
-
16385,
|
|
2357
|
-
24577,
|
|
2358
|
-
0,
|
|
2359
|
-
0
|
|
2360
|
-
]);
|
|
2361
|
-
const dext = new Uint8Array([
|
|
2362
|
-
16,
|
|
2363
|
-
16,
|
|
2364
|
-
16,
|
|
2365
|
-
16,
|
|
2366
|
-
17,
|
|
2367
|
-
17,
|
|
2368
|
-
18,
|
|
2369
|
-
18,
|
|
2370
|
-
19,
|
|
2371
|
-
19,
|
|
2372
|
-
20,
|
|
2373
|
-
20,
|
|
2374
|
-
21,
|
|
2375
|
-
21,
|
|
2376
|
-
22,
|
|
2377
|
-
22,
|
|
2378
|
-
23,
|
|
2379
|
-
23,
|
|
2380
|
-
24,
|
|
2381
|
-
24,
|
|
2382
|
-
25,
|
|
2383
|
-
25,
|
|
2384
|
-
26,
|
|
2385
|
-
26,
|
|
2386
|
-
27,
|
|
2387
|
-
27,
|
|
2388
|
-
28,
|
|
2389
|
-
28,
|
|
2390
|
-
29,
|
|
2391
|
-
29,
|
|
2392
|
-
64,
|
|
2393
|
-
64
|
|
2394
|
-
]);
|
|
2395
|
-
const inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => {
|
|
2396
|
-
const bits = opts.bits;
|
|
2397
|
-
let len = 0;
|
|
2398
|
-
let sym = 0;
|
|
2399
|
-
let min = 0, max = 0;
|
|
2400
|
-
let root = 0;
|
|
2401
|
-
let curr = 0;
|
|
2402
|
-
let drop = 0;
|
|
2403
|
-
let left = 0;
|
|
2404
|
-
let used = 0;
|
|
2405
|
-
let huff = 0;
|
|
2406
|
-
let incr;
|
|
2407
|
-
let fill;
|
|
2408
|
-
let low;
|
|
2409
|
-
let mask;
|
|
2410
|
-
let next;
|
|
2411
|
-
let base = null;
|
|
2412
|
-
let match;
|
|
2413
|
-
const count = new Uint16Array(MAXBITS + 1);
|
|
2414
|
-
const offs = new Uint16Array(MAXBITS + 1);
|
|
2415
|
-
let extra = null;
|
|
2416
|
-
let here_bits, here_op, here_val;
|
|
2417
|
-
for (len = 0; len <= MAXBITS; len++) count[len] = 0;
|
|
2418
|
-
for (sym = 0; sym < codes; sym++) count[lens[lens_index + sym]]++;
|
|
2419
|
-
root = bits;
|
|
2420
|
-
for (max = MAXBITS; max >= 1; max--) if (count[max] !== 0) break;
|
|
2421
|
-
if (root > max) root = max;
|
|
2422
|
-
if (max === 0) {
|
|
2423
|
-
table[table_index++] = 20971520;
|
|
2424
|
-
table[table_index++] = 20971520;
|
|
2425
|
-
opts.bits = 1;
|
|
2426
|
-
return 0;
|
|
2427
|
-
}
|
|
2428
|
-
for (min = 1; min < max; min++) if (count[min] !== 0) break;
|
|
2429
|
-
if (root < min) root = min;
|
|
2430
|
-
left = 1;
|
|
2431
|
-
for (len = 1; len <= MAXBITS; len++) {
|
|
2432
|
-
left <<= 1;
|
|
2433
|
-
left -= count[len];
|
|
2434
|
-
if (left < 0) return -1;
|
|
2435
|
-
}
|
|
2436
|
-
if (left > 0 && (type === CODES$1 || max !== 1)) return -1;
|
|
2437
|
-
offs[1] = 0;
|
|
2438
|
-
for (len = 1; len < MAXBITS; len++) offs[len + 1] = offs[len] + count[len];
|
|
2439
|
-
for (sym = 0; sym < codes; sym++) if (lens[lens_index + sym] !== 0) work[offs[lens[lens_index + sym]]++] = sym;
|
|
2440
|
-
if (type === CODES$1) {
|
|
2441
|
-
base = extra = work;
|
|
2442
|
-
match = 20;
|
|
2443
|
-
} else if (type === LENS$1) {
|
|
2444
|
-
base = lbase;
|
|
2445
|
-
extra = lext;
|
|
2446
|
-
match = 257;
|
|
2447
|
-
} else {
|
|
2448
|
-
base = dbase;
|
|
2449
|
-
extra = dext;
|
|
2450
|
-
match = 0;
|
|
2451
|
-
}
|
|
2452
|
-
huff = 0;
|
|
2453
|
-
sym = 0;
|
|
2454
|
-
len = min;
|
|
2455
|
-
next = table_index;
|
|
2456
|
-
curr = root;
|
|
2457
|
-
drop = 0;
|
|
2458
|
-
low = -1;
|
|
2459
|
-
used = 1 << root;
|
|
2460
|
-
mask = used - 1;
|
|
2461
|
-
if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) return 1;
|
|
2462
|
-
for (;;) {
|
|
2463
|
-
here_bits = len - drop;
|
|
2464
|
-
if (work[sym] + 1 < match) {
|
|
2465
|
-
here_op = 0;
|
|
2466
|
-
here_val = work[sym];
|
|
2467
|
-
} else if (work[sym] >= match) {
|
|
2468
|
-
here_op = extra[work[sym] - match];
|
|
2469
|
-
here_val = base[work[sym] - match];
|
|
2470
|
-
} else {
|
|
2471
|
-
here_op = 96;
|
|
2472
|
-
here_val = 0;
|
|
2473
|
-
}
|
|
2474
|
-
incr = 1 << len - drop;
|
|
2475
|
-
fill = 1 << curr;
|
|
2476
|
-
min = fill;
|
|
2477
|
-
do {
|
|
2478
|
-
fill -= incr;
|
|
2479
|
-
table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
|
|
2480
|
-
} while (fill !== 0);
|
|
2481
|
-
incr = 1 << len - 1;
|
|
2482
|
-
while (huff & incr) incr >>= 1;
|
|
2483
|
-
if (incr !== 0) {
|
|
2484
|
-
huff &= incr - 1;
|
|
2485
|
-
huff += incr;
|
|
2486
|
-
} else huff = 0;
|
|
2487
|
-
sym++;
|
|
2488
|
-
if (--count[len] === 0) {
|
|
2489
|
-
if (len === max) break;
|
|
2490
|
-
len = lens[lens_index + work[sym]];
|
|
2491
|
-
}
|
|
2492
|
-
if (len > root && (huff & mask) !== low) {
|
|
2493
|
-
if (drop === 0) drop = root;
|
|
2494
|
-
next += min;
|
|
2495
|
-
curr = len - drop;
|
|
2496
|
-
left = 1 << curr;
|
|
2497
|
-
while (curr + drop < max) {
|
|
2498
|
-
left -= count[curr + drop];
|
|
2499
|
-
if (left <= 0) break;
|
|
2500
|
-
curr++;
|
|
2501
|
-
left <<= 1;
|
|
2502
|
-
}
|
|
2503
|
-
used += 1 << curr;
|
|
2504
|
-
if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) return 1;
|
|
2505
|
-
low = huff & mask;
|
|
2506
|
-
table[low] = root << 24 | curr << 16 | next - table_index | 0;
|
|
2507
|
-
}
|
|
2508
|
-
}
|
|
2509
|
-
if (huff !== 0) table[next + huff] = len - drop << 24 | 4194304;
|
|
2510
|
-
opts.bits = root;
|
|
2511
|
-
return 0;
|
|
2512
|
-
};
|
|
2513
|
-
var inftrees = inflate_table;
|
|
2514
|
-
const CODES = 0;
|
|
2515
|
-
const LENS = 1;
|
|
2516
|
-
const DISTS = 2;
|
|
2517
|
-
const { Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES, Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR, Z_DEFLATED } = constants$2;
|
|
2518
|
-
const HEAD = 16180;
|
|
2519
|
-
const FLAGS = 16181;
|
|
2520
|
-
const TIME = 16182;
|
|
2521
|
-
const OS = 16183;
|
|
2522
|
-
const EXLEN = 16184;
|
|
2523
|
-
const EXTRA = 16185;
|
|
2524
|
-
const NAME = 16186;
|
|
2525
|
-
const COMMENT = 16187;
|
|
2526
|
-
const HCRC = 16188;
|
|
2527
|
-
const DICTID = 16189;
|
|
2528
|
-
const DICT = 16190;
|
|
2529
|
-
const TYPE = 16191;
|
|
2530
|
-
const TYPEDO = 16192;
|
|
2531
|
-
const STORED = 16193;
|
|
2532
|
-
const COPY_ = 16194;
|
|
2533
|
-
const COPY = 16195;
|
|
2534
|
-
const TABLE = 16196;
|
|
2535
|
-
const LENLENS = 16197;
|
|
2536
|
-
const CODELENS = 16198;
|
|
2537
|
-
const LEN_ = 16199;
|
|
2538
|
-
const LEN = 16200;
|
|
2539
|
-
const LENEXT = 16201;
|
|
2540
|
-
const DIST = 16202;
|
|
2541
|
-
const DISTEXT = 16203;
|
|
2542
|
-
const MATCH = 16204;
|
|
2543
|
-
const LIT = 16205;
|
|
2544
|
-
const CHECK = 16206;
|
|
2545
|
-
const LENGTH = 16207;
|
|
2546
|
-
const DONE = 16208;
|
|
2547
|
-
const BAD = 16209;
|
|
2548
|
-
const MEM = 16210;
|
|
2549
|
-
const SYNC = 16211;
|
|
2550
|
-
const ENOUGH_LENS = 852;
|
|
2551
|
-
const ENOUGH_DISTS = 592;
|
|
2552
|
-
const DEF_WBITS = 15;
|
|
2553
|
-
const zswap32 = (q) => {
|
|
2554
|
-
return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
|
|
2555
|
-
};
|
|
2556
|
-
function InflateState() {
|
|
2557
|
-
this.strm = null;
|
|
2558
|
-
this.mode = 0;
|
|
2559
|
-
this.last = false;
|
|
2560
|
-
this.wrap = 0;
|
|
2561
|
-
this.havedict = false;
|
|
2562
|
-
this.flags = 0;
|
|
2563
|
-
this.dmax = 0;
|
|
2564
|
-
this.check = 0;
|
|
2565
|
-
this.total = 0;
|
|
2566
|
-
this.head = null;
|
|
2567
|
-
this.wbits = 0;
|
|
2568
|
-
this.wsize = 0;
|
|
2569
|
-
this.whave = 0;
|
|
2570
|
-
this.wnext = 0;
|
|
2571
|
-
this.window = null;
|
|
2572
|
-
this.hold = 0;
|
|
2573
|
-
this.bits = 0;
|
|
2574
|
-
this.length = 0;
|
|
2575
|
-
this.offset = 0;
|
|
2576
|
-
this.extra = 0;
|
|
2577
|
-
this.lencode = null;
|
|
2578
|
-
this.distcode = null;
|
|
2579
|
-
this.lenbits = 0;
|
|
2580
|
-
this.distbits = 0;
|
|
2581
|
-
this.ncode = 0;
|
|
2582
|
-
this.nlen = 0;
|
|
2583
|
-
this.ndist = 0;
|
|
2584
|
-
this.have = 0;
|
|
2585
|
-
this.next = null;
|
|
2586
|
-
this.lens = new Uint16Array(320);
|
|
2587
|
-
this.work = new Uint16Array(288);
|
|
2588
|
-
this.lendyn = null;
|
|
2589
|
-
this.distdyn = null;
|
|
2590
|
-
this.sane = 0;
|
|
2591
|
-
this.back = 0;
|
|
2592
|
-
this.was = 0;
|
|
2593
|
-
}
|
|
2594
|
-
const inflateStateCheck = (strm) => {
|
|
2595
|
-
if (!strm) return 1;
|
|
2596
|
-
const state = strm.state;
|
|
2597
|
-
if (!state || state.strm !== strm || state.mode < HEAD || state.mode > SYNC) return 1;
|
|
2598
|
-
return 0;
|
|
2599
|
-
};
|
|
2600
|
-
const inflateResetKeep = (strm) => {
|
|
2601
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
2602
|
-
const state = strm.state;
|
|
2603
|
-
strm.total_in = strm.total_out = state.total = 0;
|
|
2604
|
-
strm.msg = "";
|
|
2605
|
-
if (state.wrap) strm.adler = state.wrap & 1;
|
|
2606
|
-
state.mode = HEAD;
|
|
2607
|
-
state.last = 0;
|
|
2608
|
-
state.havedict = 0;
|
|
2609
|
-
state.flags = -1;
|
|
2610
|
-
state.dmax = 32768;
|
|
2611
|
-
state.head = null;
|
|
2612
|
-
state.hold = 0;
|
|
2613
|
-
state.bits = 0;
|
|
2614
|
-
state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);
|
|
2615
|
-
state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);
|
|
2616
|
-
state.sane = 1;
|
|
2617
|
-
state.back = -1;
|
|
2618
|
-
return Z_OK$1;
|
|
2619
|
-
};
|
|
2620
|
-
const inflateReset = (strm) => {
|
|
2621
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
2622
|
-
const state = strm.state;
|
|
2623
|
-
state.wsize = 0;
|
|
2624
|
-
state.whave = 0;
|
|
2625
|
-
state.wnext = 0;
|
|
2626
|
-
return inflateResetKeep(strm);
|
|
2627
|
-
};
|
|
2628
|
-
const inflateReset2 = (strm, windowBits) => {
|
|
2629
|
-
let wrap;
|
|
2630
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
2631
|
-
const state = strm.state;
|
|
2632
|
-
if (windowBits < 0) {
|
|
2633
|
-
wrap = 0;
|
|
2634
|
-
windowBits = -windowBits;
|
|
2635
|
-
} else {
|
|
2636
|
-
wrap = (windowBits >> 4) + 5;
|
|
2637
|
-
if (windowBits < 48) windowBits &= 15;
|
|
2638
|
-
}
|
|
2639
|
-
if (windowBits && (windowBits < 8 || windowBits > 15)) return Z_STREAM_ERROR$1;
|
|
2640
|
-
if (state.window !== null && state.wbits !== windowBits) state.window = null;
|
|
2641
|
-
state.wrap = wrap;
|
|
2642
|
-
state.wbits = windowBits;
|
|
2643
|
-
return inflateReset(strm);
|
|
2644
|
-
};
|
|
2645
|
-
const inflateInit2 = (strm, windowBits) => {
|
|
2646
|
-
if (!strm) return Z_STREAM_ERROR$1;
|
|
2647
|
-
const state = new InflateState();
|
|
2648
|
-
strm.state = state;
|
|
2649
|
-
state.strm = strm;
|
|
2650
|
-
state.window = null;
|
|
2651
|
-
state.mode = HEAD;
|
|
2652
|
-
const ret = inflateReset2(strm, windowBits);
|
|
2653
|
-
if (ret !== Z_OK$1) strm.state = null;
|
|
2654
|
-
return ret;
|
|
2655
|
-
};
|
|
2656
|
-
const inflateInit = (strm) => {
|
|
2657
|
-
return inflateInit2(strm, DEF_WBITS);
|
|
2658
|
-
};
|
|
2659
|
-
let virgin = true;
|
|
2660
|
-
let lenfix, distfix;
|
|
2661
|
-
const fixedtables = (state) => {
|
|
2662
|
-
if (virgin) {
|
|
2663
|
-
lenfix = new Int32Array(512);
|
|
2664
|
-
distfix = new Int32Array(32);
|
|
2665
|
-
let sym = 0;
|
|
2666
|
-
while (sym < 144) state.lens[sym++] = 8;
|
|
2667
|
-
while (sym < 256) state.lens[sym++] = 9;
|
|
2668
|
-
while (sym < 280) state.lens[sym++] = 7;
|
|
2669
|
-
while (sym < 288) state.lens[sym++] = 8;
|
|
2670
|
-
inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
|
|
2671
|
-
sym = 0;
|
|
2672
|
-
while (sym < 32) state.lens[sym++] = 5;
|
|
2673
|
-
inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
|
|
2674
|
-
virgin = false;
|
|
2675
|
-
}
|
|
2676
|
-
state.lencode = lenfix;
|
|
2677
|
-
state.lenbits = 9;
|
|
2678
|
-
state.distcode = distfix;
|
|
2679
|
-
state.distbits = 5;
|
|
2680
|
-
};
|
|
2681
|
-
const updatewindow = (strm, src, end, copy) => {
|
|
2682
|
-
let dist;
|
|
2683
|
-
const state = strm.state;
|
|
2684
|
-
if (state.window === null) {
|
|
2685
|
-
state.wsize = 1 << state.wbits;
|
|
2686
|
-
state.wnext = 0;
|
|
2687
|
-
state.whave = 0;
|
|
2688
|
-
state.window = new Uint8Array(state.wsize);
|
|
2689
|
-
}
|
|
2690
|
-
if (copy >= state.wsize) {
|
|
2691
|
-
state.window.set(src.subarray(end - state.wsize, end), 0);
|
|
2692
|
-
state.wnext = 0;
|
|
2693
|
-
state.whave = state.wsize;
|
|
2694
|
-
} else {
|
|
2695
|
-
dist = state.wsize - state.wnext;
|
|
2696
|
-
if (dist > copy) dist = copy;
|
|
2697
|
-
state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);
|
|
2698
|
-
copy -= dist;
|
|
2699
|
-
if (copy) {
|
|
2700
|
-
state.window.set(src.subarray(end - copy, end), 0);
|
|
2701
|
-
state.wnext = copy;
|
|
2702
|
-
state.whave = state.wsize;
|
|
2703
|
-
} else {
|
|
2704
|
-
state.wnext += dist;
|
|
2705
|
-
if (state.wnext === state.wsize) state.wnext = 0;
|
|
2706
|
-
if (state.whave < state.wsize) state.whave += dist;
|
|
2707
|
-
}
|
|
2708
|
-
}
|
|
2709
|
-
return 0;
|
|
2710
|
-
};
|
|
2711
|
-
const inflate$2 = (strm, flush) => {
|
|
2712
|
-
let state;
|
|
2713
|
-
let input, output;
|
|
2714
|
-
let next;
|
|
2715
|
-
let put;
|
|
2716
|
-
let have, left;
|
|
2717
|
-
let hold;
|
|
2718
|
-
let bits;
|
|
2719
|
-
let _in, _out;
|
|
2720
|
-
let copy;
|
|
2721
|
-
let from;
|
|
2722
|
-
let from_source;
|
|
2723
|
-
let here = 0;
|
|
2724
|
-
let here_bits, here_op, here_val;
|
|
2725
|
-
let last_bits, last_op, last_val;
|
|
2726
|
-
let len;
|
|
2727
|
-
let ret;
|
|
2728
|
-
const hbuf = new Uint8Array(4);
|
|
2729
|
-
let opts;
|
|
2730
|
-
let n;
|
|
2731
|
-
const order = new Uint8Array([
|
|
2732
|
-
16,
|
|
2733
|
-
17,
|
|
2734
|
-
18,
|
|
2735
|
-
0,
|
|
2736
|
-
8,
|
|
2737
|
-
7,
|
|
2738
|
-
9,
|
|
2739
|
-
6,
|
|
2740
|
-
10,
|
|
2741
|
-
5,
|
|
2742
|
-
11,
|
|
2743
|
-
4,
|
|
2744
|
-
12,
|
|
2745
|
-
3,
|
|
2746
|
-
13,
|
|
2747
|
-
2,
|
|
2748
|
-
14,
|
|
2749
|
-
1,
|
|
2750
|
-
15
|
|
2751
|
-
]);
|
|
2752
|
-
if (inflateStateCheck(strm) || !strm.output || !strm.input && strm.avail_in !== 0) return Z_STREAM_ERROR$1;
|
|
2753
|
-
state = strm.state;
|
|
2754
|
-
if (state.mode === TYPE) state.mode = TYPEDO;
|
|
2755
|
-
put = strm.next_out;
|
|
2756
|
-
output = strm.output;
|
|
2757
|
-
left = strm.avail_out;
|
|
2758
|
-
next = strm.next_in;
|
|
2759
|
-
input = strm.input;
|
|
2760
|
-
have = strm.avail_in;
|
|
2761
|
-
hold = state.hold;
|
|
2762
|
-
bits = state.bits;
|
|
2763
|
-
_in = have;
|
|
2764
|
-
_out = left;
|
|
2765
|
-
ret = Z_OK$1;
|
|
2766
|
-
inf_leave: for (;;) switch (state.mode) {
|
|
2767
|
-
case HEAD:
|
|
2768
|
-
if (state.wrap === 0) {
|
|
2769
|
-
state.mode = TYPEDO;
|
|
2770
|
-
break;
|
|
2771
|
-
}
|
|
2772
|
-
while (bits < 16) {
|
|
2773
|
-
if (have === 0) break inf_leave;
|
|
2774
|
-
have--;
|
|
2775
|
-
hold += input[next++] << bits;
|
|
2776
|
-
bits += 8;
|
|
2777
|
-
}
|
|
2778
|
-
if (state.wrap & 2 && hold === 35615) {
|
|
2779
|
-
if (state.wbits === 0) state.wbits = 15;
|
|
2780
|
-
state.check = 0;
|
|
2781
|
-
hbuf[0] = hold & 255;
|
|
2782
|
-
hbuf[1] = hold >>> 8 & 255;
|
|
2783
|
-
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
2784
|
-
hold = 0;
|
|
2785
|
-
bits = 0;
|
|
2786
|
-
state.mode = FLAGS;
|
|
2787
|
-
break;
|
|
2788
|
-
}
|
|
2789
|
-
if (state.head) state.head.done = false;
|
|
2790
|
-
if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) {
|
|
2791
|
-
strm.msg = "incorrect header check";
|
|
2792
|
-
state.mode = BAD;
|
|
2793
|
-
break;
|
|
2794
|
-
}
|
|
2795
|
-
if ((hold & 15) !== Z_DEFLATED) {
|
|
2796
|
-
strm.msg = "unknown compression method";
|
|
2797
|
-
state.mode = BAD;
|
|
2798
|
-
break;
|
|
2799
|
-
}
|
|
2800
|
-
hold >>>= 4;
|
|
2801
|
-
bits -= 4;
|
|
2802
|
-
len = (hold & 15) + 8;
|
|
2803
|
-
if (state.wbits === 0) state.wbits = len;
|
|
2804
|
-
if (len > 15 || len > state.wbits) {
|
|
2805
|
-
strm.msg = "invalid window size";
|
|
2806
|
-
state.mode = BAD;
|
|
2807
|
-
break;
|
|
2808
|
-
}
|
|
2809
|
-
state.dmax = 1 << state.wbits;
|
|
2810
|
-
state.flags = 0;
|
|
2811
|
-
strm.adler = state.check = 1;
|
|
2812
|
-
state.mode = hold & 512 ? DICTID : TYPE;
|
|
2813
|
-
hold = 0;
|
|
2814
|
-
bits = 0;
|
|
2815
|
-
break;
|
|
2816
|
-
case FLAGS:
|
|
2817
|
-
while (bits < 16) {
|
|
2818
|
-
if (have === 0) break inf_leave;
|
|
2819
|
-
have--;
|
|
2820
|
-
hold += input[next++] << bits;
|
|
2821
|
-
bits += 8;
|
|
2822
|
-
}
|
|
2823
|
-
state.flags = hold;
|
|
2824
|
-
if ((state.flags & 255) !== Z_DEFLATED) {
|
|
2825
|
-
strm.msg = "unknown compression method";
|
|
2826
|
-
state.mode = BAD;
|
|
2827
|
-
break;
|
|
2828
|
-
}
|
|
2829
|
-
if (state.flags & 57344) {
|
|
2830
|
-
strm.msg = "unknown header flags set";
|
|
2831
|
-
state.mode = BAD;
|
|
2832
|
-
break;
|
|
2833
|
-
}
|
|
2834
|
-
if (state.head) state.head.text = hold >> 8 & 1;
|
|
2835
|
-
if (state.flags & 512 && state.wrap & 4) {
|
|
2836
|
-
hbuf[0] = hold & 255;
|
|
2837
|
-
hbuf[1] = hold >>> 8 & 255;
|
|
2838
|
-
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
2839
|
-
}
|
|
2840
|
-
hold = 0;
|
|
2841
|
-
bits = 0;
|
|
2842
|
-
state.mode = TIME;
|
|
2843
|
-
case TIME:
|
|
2844
|
-
while (bits < 32) {
|
|
2845
|
-
if (have === 0) break inf_leave;
|
|
2846
|
-
have--;
|
|
2847
|
-
hold += input[next++] << bits;
|
|
2848
|
-
bits += 8;
|
|
2849
|
-
}
|
|
2850
|
-
if (state.head) state.head.time = hold;
|
|
2851
|
-
if (state.flags & 512 && state.wrap & 4) {
|
|
2852
|
-
hbuf[0] = hold & 255;
|
|
2853
|
-
hbuf[1] = hold >>> 8 & 255;
|
|
2854
|
-
hbuf[2] = hold >>> 16 & 255;
|
|
2855
|
-
hbuf[3] = hold >>> 24 & 255;
|
|
2856
|
-
state.check = crc32_1(state.check, hbuf, 4, 0);
|
|
2857
|
-
}
|
|
2858
|
-
hold = 0;
|
|
2859
|
-
bits = 0;
|
|
2860
|
-
state.mode = OS;
|
|
2861
|
-
case OS:
|
|
2862
|
-
while (bits < 16) {
|
|
2863
|
-
if (have === 0) break inf_leave;
|
|
2864
|
-
have--;
|
|
2865
|
-
hold += input[next++] << bits;
|
|
2866
|
-
bits += 8;
|
|
2867
|
-
}
|
|
2868
|
-
if (state.head) {
|
|
2869
|
-
state.head.xflags = hold & 255;
|
|
2870
|
-
state.head.os = hold >> 8;
|
|
2871
|
-
}
|
|
2872
|
-
if (state.flags & 512 && state.wrap & 4) {
|
|
2873
|
-
hbuf[0] = hold & 255;
|
|
2874
|
-
hbuf[1] = hold >>> 8 & 255;
|
|
2875
|
-
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
2876
|
-
}
|
|
2877
|
-
hold = 0;
|
|
2878
|
-
bits = 0;
|
|
2879
|
-
state.mode = EXLEN;
|
|
2880
|
-
case EXLEN:
|
|
2881
|
-
if (state.flags & 1024) {
|
|
2882
|
-
while (bits < 16) {
|
|
2883
|
-
if (have === 0) break inf_leave;
|
|
2884
|
-
have--;
|
|
2885
|
-
hold += input[next++] << bits;
|
|
2886
|
-
bits += 8;
|
|
2887
|
-
}
|
|
2888
|
-
state.length = hold;
|
|
2889
|
-
if (state.head) state.head.extra_len = hold;
|
|
2890
|
-
if (state.flags & 512 && state.wrap & 4) {
|
|
2891
|
-
hbuf[0] = hold & 255;
|
|
2892
|
-
hbuf[1] = hold >>> 8 & 255;
|
|
2893
|
-
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
2894
|
-
}
|
|
2895
|
-
hold = 0;
|
|
2896
|
-
bits = 0;
|
|
2897
|
-
} else if (state.head) state.head.extra = null;
|
|
2898
|
-
state.mode = EXTRA;
|
|
2899
|
-
case EXTRA:
|
|
2900
|
-
if (state.flags & 1024) {
|
|
2901
|
-
copy = state.length;
|
|
2902
|
-
if (copy > have) copy = have;
|
|
2903
|
-
if (copy) {
|
|
2904
|
-
if (state.head) {
|
|
2905
|
-
len = state.head.extra_len - state.length;
|
|
2906
|
-
if (!state.head.extra) state.head.extra = new Uint8Array(state.head.extra_len);
|
|
2907
|
-
state.head.extra.set(input.subarray(next, next + copy), len);
|
|
2908
|
-
}
|
|
2909
|
-
if (state.flags & 512 && state.wrap & 4) state.check = crc32_1(state.check, input, copy, next);
|
|
2910
|
-
have -= copy;
|
|
2911
|
-
next += copy;
|
|
2912
|
-
state.length -= copy;
|
|
2913
|
-
}
|
|
2914
|
-
if (state.length) break inf_leave;
|
|
2915
|
-
}
|
|
2916
|
-
state.length = 0;
|
|
2917
|
-
state.mode = NAME;
|
|
2918
|
-
case NAME:
|
|
2919
|
-
if (state.flags & 2048) {
|
|
2920
|
-
if (have === 0) break inf_leave;
|
|
2921
|
-
copy = 0;
|
|
2922
|
-
do {
|
|
2923
|
-
len = input[next + copy++];
|
|
2924
|
-
if (state.head && len && state.length < 65536) state.head.name += String.fromCharCode(len);
|
|
2925
|
-
} while (len && copy < have);
|
|
2926
|
-
if (state.flags & 512 && state.wrap & 4) state.check = crc32_1(state.check, input, copy, next);
|
|
2927
|
-
have -= copy;
|
|
2928
|
-
next += copy;
|
|
2929
|
-
if (len) break inf_leave;
|
|
2930
|
-
} else if (state.head) state.head.name = null;
|
|
2931
|
-
state.length = 0;
|
|
2932
|
-
state.mode = COMMENT;
|
|
2933
|
-
case COMMENT:
|
|
2934
|
-
if (state.flags & 4096) {
|
|
2935
|
-
if (have === 0) break inf_leave;
|
|
2936
|
-
copy = 0;
|
|
2937
|
-
do {
|
|
2938
|
-
len = input[next + copy++];
|
|
2939
|
-
if (state.head && len && state.length < 65536) state.head.comment += String.fromCharCode(len);
|
|
2940
|
-
} while (len && copy < have);
|
|
2941
|
-
if (state.flags & 512 && state.wrap & 4) state.check = crc32_1(state.check, input, copy, next);
|
|
2942
|
-
have -= copy;
|
|
2943
|
-
next += copy;
|
|
2944
|
-
if (len) break inf_leave;
|
|
2945
|
-
} else if (state.head) state.head.comment = null;
|
|
2946
|
-
state.mode = HCRC;
|
|
2947
|
-
case HCRC:
|
|
2948
|
-
if (state.flags & 512) {
|
|
2949
|
-
while (bits < 16) {
|
|
2950
|
-
if (have === 0) break inf_leave;
|
|
2951
|
-
have--;
|
|
2952
|
-
hold += input[next++] << bits;
|
|
2953
|
-
bits += 8;
|
|
2954
|
-
}
|
|
2955
|
-
if (state.wrap & 4 && hold !== (state.check & 65535)) {
|
|
2956
|
-
strm.msg = "header crc mismatch";
|
|
2957
|
-
state.mode = BAD;
|
|
2958
|
-
break;
|
|
2959
|
-
}
|
|
2960
|
-
hold = 0;
|
|
2961
|
-
bits = 0;
|
|
2962
|
-
}
|
|
2963
|
-
if (state.head) {
|
|
2964
|
-
state.head.hcrc = state.flags >> 9 & 1;
|
|
2965
|
-
state.head.done = true;
|
|
2966
|
-
}
|
|
2967
|
-
strm.adler = state.check = 0;
|
|
2968
|
-
state.mode = TYPE;
|
|
2969
|
-
break;
|
|
2970
|
-
case DICTID:
|
|
2971
|
-
while (bits < 32) {
|
|
2972
|
-
if (have === 0) break inf_leave;
|
|
2973
|
-
have--;
|
|
2974
|
-
hold += input[next++] << bits;
|
|
2975
|
-
bits += 8;
|
|
2976
|
-
}
|
|
2977
|
-
strm.adler = state.check = zswap32(hold);
|
|
2978
|
-
hold = 0;
|
|
2979
|
-
bits = 0;
|
|
2980
|
-
state.mode = DICT;
|
|
2981
|
-
case DICT:
|
|
2982
|
-
if (state.havedict === 0) {
|
|
2983
|
-
strm.next_out = put;
|
|
2984
|
-
strm.avail_out = left;
|
|
2985
|
-
strm.next_in = next;
|
|
2986
|
-
strm.avail_in = have;
|
|
2987
|
-
state.hold = hold;
|
|
2988
|
-
state.bits = bits;
|
|
2989
|
-
return Z_NEED_DICT$1;
|
|
2990
|
-
}
|
|
2991
|
-
strm.adler = state.check = 1;
|
|
2992
|
-
state.mode = TYPE;
|
|
2993
|
-
case TYPE: if (flush === Z_BLOCK || flush === Z_TREES) break inf_leave;
|
|
2994
|
-
case TYPEDO:
|
|
2995
|
-
if (state.last) {
|
|
2996
|
-
hold >>>= bits & 7;
|
|
2997
|
-
bits -= bits & 7;
|
|
2998
|
-
state.mode = CHECK;
|
|
2999
|
-
break;
|
|
3000
|
-
}
|
|
3001
|
-
while (bits < 3) {
|
|
3002
|
-
if (have === 0) break inf_leave;
|
|
3003
|
-
have--;
|
|
3004
|
-
hold += input[next++] << bits;
|
|
3005
|
-
bits += 8;
|
|
3006
|
-
}
|
|
3007
|
-
state.last = hold & 1;
|
|
3008
|
-
hold >>>= 1;
|
|
3009
|
-
bits -= 1;
|
|
3010
|
-
switch (hold & 3) {
|
|
3011
|
-
case 0:
|
|
3012
|
-
state.mode = STORED;
|
|
3013
|
-
break;
|
|
3014
|
-
case 1:
|
|
3015
|
-
fixedtables(state);
|
|
3016
|
-
state.mode = LEN_;
|
|
3017
|
-
if (flush === Z_TREES) {
|
|
3018
|
-
hold >>>= 2;
|
|
3019
|
-
bits -= 2;
|
|
3020
|
-
break inf_leave;
|
|
3021
|
-
}
|
|
3022
|
-
break;
|
|
3023
|
-
case 2:
|
|
3024
|
-
state.mode = TABLE;
|
|
3025
|
-
break;
|
|
3026
|
-
case 3:
|
|
3027
|
-
strm.msg = "invalid block type";
|
|
3028
|
-
state.mode = BAD;
|
|
3029
|
-
}
|
|
3030
|
-
hold >>>= 2;
|
|
3031
|
-
bits -= 2;
|
|
3032
|
-
break;
|
|
3033
|
-
case STORED:
|
|
3034
|
-
hold >>>= bits & 7;
|
|
3035
|
-
bits -= bits & 7;
|
|
3036
|
-
while (bits < 32) {
|
|
3037
|
-
if (have === 0) break inf_leave;
|
|
3038
|
-
have--;
|
|
3039
|
-
hold += input[next++] << bits;
|
|
3040
|
-
bits += 8;
|
|
3041
|
-
}
|
|
3042
|
-
if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
|
|
3043
|
-
strm.msg = "invalid stored block lengths";
|
|
3044
|
-
state.mode = BAD;
|
|
3045
|
-
break;
|
|
3046
|
-
}
|
|
3047
|
-
state.length = hold & 65535;
|
|
3048
|
-
hold = 0;
|
|
3049
|
-
bits = 0;
|
|
3050
|
-
state.mode = COPY_;
|
|
3051
|
-
if (flush === Z_TREES) break inf_leave;
|
|
3052
|
-
case COPY_: state.mode = COPY;
|
|
3053
|
-
case COPY:
|
|
3054
|
-
copy = state.length;
|
|
3055
|
-
if (copy) {
|
|
3056
|
-
if (copy > have) copy = have;
|
|
3057
|
-
if (copy > left) copy = left;
|
|
3058
|
-
if (copy === 0) break inf_leave;
|
|
3059
|
-
output.set(input.subarray(next, next + copy), put);
|
|
3060
|
-
have -= copy;
|
|
3061
|
-
next += copy;
|
|
3062
|
-
left -= copy;
|
|
3063
|
-
put += copy;
|
|
3064
|
-
state.length -= copy;
|
|
3065
|
-
break;
|
|
3066
|
-
}
|
|
3067
|
-
state.mode = TYPE;
|
|
3068
|
-
break;
|
|
3069
|
-
case TABLE:
|
|
3070
|
-
while (bits < 14) {
|
|
3071
|
-
if (have === 0) break inf_leave;
|
|
3072
|
-
have--;
|
|
3073
|
-
hold += input[next++] << bits;
|
|
3074
|
-
bits += 8;
|
|
3075
|
-
}
|
|
3076
|
-
state.nlen = (hold & 31) + 257;
|
|
3077
|
-
hold >>>= 5;
|
|
3078
|
-
bits -= 5;
|
|
3079
|
-
state.ndist = (hold & 31) + 1;
|
|
3080
|
-
hold >>>= 5;
|
|
3081
|
-
bits -= 5;
|
|
3082
|
-
state.ncode = (hold & 15) + 4;
|
|
3083
|
-
hold >>>= 4;
|
|
3084
|
-
bits -= 4;
|
|
3085
|
-
if (state.nlen > 286 || state.ndist > 30) {
|
|
3086
|
-
strm.msg = "too many length or distance symbols";
|
|
3087
|
-
state.mode = BAD;
|
|
3088
|
-
break;
|
|
3089
|
-
}
|
|
3090
|
-
state.have = 0;
|
|
3091
|
-
state.mode = LENLENS;
|
|
3092
|
-
case LENLENS:
|
|
3093
|
-
while (state.have < state.ncode) {
|
|
3094
|
-
while (bits < 3) {
|
|
3095
|
-
if (have === 0) break inf_leave;
|
|
3096
|
-
have--;
|
|
3097
|
-
hold += input[next++] << bits;
|
|
3098
|
-
bits += 8;
|
|
3099
|
-
}
|
|
3100
|
-
state.lens[order[state.have++]] = hold & 7;
|
|
3101
|
-
hold >>>= 3;
|
|
3102
|
-
bits -= 3;
|
|
3103
|
-
}
|
|
3104
|
-
while (state.have < 19) state.lens[order[state.have++]] = 0;
|
|
3105
|
-
state.lencode = state.lendyn;
|
|
3106
|
-
state.lenbits = 7;
|
|
3107
|
-
opts = { bits: state.lenbits };
|
|
3108
|
-
ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
|
|
3109
|
-
state.lenbits = opts.bits;
|
|
3110
|
-
if (ret) {
|
|
3111
|
-
strm.msg = "invalid code lengths set";
|
|
3112
|
-
state.mode = BAD;
|
|
3113
|
-
break;
|
|
3114
|
-
}
|
|
3115
|
-
state.have = 0;
|
|
3116
|
-
state.mode = CODELENS;
|
|
3117
|
-
case CODELENS:
|
|
3118
|
-
while (state.have < state.nlen + state.ndist) {
|
|
3119
|
-
for (;;) {
|
|
3120
|
-
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
3121
|
-
here_bits = here >>> 24;
|
|
3122
|
-
here_op = here >>> 16 & 255;
|
|
3123
|
-
here_val = here & 65535;
|
|
3124
|
-
if (here_bits <= bits) break;
|
|
3125
|
-
if (have === 0) break inf_leave;
|
|
3126
|
-
have--;
|
|
3127
|
-
hold += input[next++] << bits;
|
|
3128
|
-
bits += 8;
|
|
3129
|
-
}
|
|
3130
|
-
if (here_val < 16) {
|
|
3131
|
-
hold >>>= here_bits;
|
|
3132
|
-
bits -= here_bits;
|
|
3133
|
-
state.lens[state.have++] = here_val;
|
|
3134
|
-
} else {
|
|
3135
|
-
if (here_val === 16) {
|
|
3136
|
-
n = here_bits + 2;
|
|
3137
|
-
while (bits < n) {
|
|
3138
|
-
if (have === 0) break inf_leave;
|
|
3139
|
-
have--;
|
|
3140
|
-
hold += input[next++] << bits;
|
|
3141
|
-
bits += 8;
|
|
3142
|
-
}
|
|
3143
|
-
hold >>>= here_bits;
|
|
3144
|
-
bits -= here_bits;
|
|
3145
|
-
if (state.have === 0) {
|
|
3146
|
-
strm.msg = "invalid bit length repeat";
|
|
3147
|
-
state.mode = BAD;
|
|
3148
|
-
break;
|
|
3149
|
-
}
|
|
3150
|
-
len = state.lens[state.have - 1];
|
|
3151
|
-
copy = 3 + (hold & 3);
|
|
3152
|
-
hold >>>= 2;
|
|
3153
|
-
bits -= 2;
|
|
3154
|
-
} else if (here_val === 17) {
|
|
3155
|
-
n = here_bits + 3;
|
|
3156
|
-
while (bits < n) {
|
|
3157
|
-
if (have === 0) break inf_leave;
|
|
3158
|
-
have--;
|
|
3159
|
-
hold += input[next++] << bits;
|
|
3160
|
-
bits += 8;
|
|
3161
|
-
}
|
|
3162
|
-
hold >>>= here_bits;
|
|
3163
|
-
bits -= here_bits;
|
|
3164
|
-
len = 0;
|
|
3165
|
-
copy = 3 + (hold & 7);
|
|
3166
|
-
hold >>>= 3;
|
|
3167
|
-
bits -= 3;
|
|
3168
|
-
} else {
|
|
3169
|
-
n = here_bits + 7;
|
|
3170
|
-
while (bits < n) {
|
|
3171
|
-
if (have === 0) break inf_leave;
|
|
3172
|
-
have--;
|
|
3173
|
-
hold += input[next++] << bits;
|
|
3174
|
-
bits += 8;
|
|
3175
|
-
}
|
|
3176
|
-
hold >>>= here_bits;
|
|
3177
|
-
bits -= here_bits;
|
|
3178
|
-
len = 0;
|
|
3179
|
-
copy = 11 + (hold & 127);
|
|
3180
|
-
hold >>>= 7;
|
|
3181
|
-
bits -= 7;
|
|
3182
|
-
}
|
|
3183
|
-
if (state.have + copy > state.nlen + state.ndist) {
|
|
3184
|
-
strm.msg = "invalid bit length repeat";
|
|
3185
|
-
state.mode = BAD;
|
|
3186
|
-
break;
|
|
3187
|
-
}
|
|
3188
|
-
while (copy--) state.lens[state.have++] = len;
|
|
3189
|
-
}
|
|
3190
|
-
}
|
|
3191
|
-
if (state.mode === BAD) break;
|
|
3192
|
-
if (state.lens[256] === 0) {
|
|
3193
|
-
strm.msg = "invalid code -- missing end-of-block";
|
|
3194
|
-
state.mode = BAD;
|
|
3195
|
-
break;
|
|
3196
|
-
}
|
|
3197
|
-
state.lenbits = 9;
|
|
3198
|
-
opts = { bits: state.lenbits };
|
|
3199
|
-
ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
|
|
3200
|
-
state.lenbits = opts.bits;
|
|
3201
|
-
if (ret) {
|
|
3202
|
-
strm.msg = "invalid literal/lengths set";
|
|
3203
|
-
state.mode = BAD;
|
|
3204
|
-
break;
|
|
3205
|
-
}
|
|
3206
|
-
state.distbits = 6;
|
|
3207
|
-
state.distcode = state.distdyn;
|
|
3208
|
-
opts = { bits: state.distbits };
|
|
3209
|
-
ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
|
|
3210
|
-
state.distbits = opts.bits;
|
|
3211
|
-
if (ret) {
|
|
3212
|
-
strm.msg = "invalid distances set";
|
|
3213
|
-
state.mode = BAD;
|
|
3214
|
-
break;
|
|
3215
|
-
}
|
|
3216
|
-
state.mode = LEN_;
|
|
3217
|
-
if (flush === Z_TREES) break inf_leave;
|
|
3218
|
-
case LEN_: state.mode = LEN;
|
|
3219
|
-
case LEN:
|
|
3220
|
-
if (have >= 6 && left >= 258) {
|
|
3221
|
-
strm.next_out = put;
|
|
3222
|
-
strm.avail_out = left;
|
|
3223
|
-
strm.next_in = next;
|
|
3224
|
-
strm.avail_in = have;
|
|
3225
|
-
state.hold = hold;
|
|
3226
|
-
state.bits = bits;
|
|
3227
|
-
inffast(strm, _out);
|
|
3228
|
-
put = strm.next_out;
|
|
3229
|
-
output = strm.output;
|
|
3230
|
-
left = strm.avail_out;
|
|
3231
|
-
next = strm.next_in;
|
|
3232
|
-
input = strm.input;
|
|
3233
|
-
have = strm.avail_in;
|
|
3234
|
-
hold = state.hold;
|
|
3235
|
-
bits = state.bits;
|
|
3236
|
-
if (state.mode === TYPE) state.back = -1;
|
|
3237
|
-
break;
|
|
3238
|
-
}
|
|
3239
|
-
state.back = 0;
|
|
3240
|
-
for (;;) {
|
|
3241
|
-
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
3242
|
-
here_bits = here >>> 24;
|
|
3243
|
-
here_op = here >>> 16 & 255;
|
|
3244
|
-
here_val = here & 65535;
|
|
3245
|
-
if (here_bits <= bits) break;
|
|
3246
|
-
if (have === 0) break inf_leave;
|
|
3247
|
-
have--;
|
|
3248
|
-
hold += input[next++] << bits;
|
|
3249
|
-
bits += 8;
|
|
3250
|
-
}
|
|
3251
|
-
if (here_op && (here_op & 240) === 0) {
|
|
3252
|
-
last_bits = here_bits;
|
|
3253
|
-
last_op = here_op;
|
|
3254
|
-
last_val = here_val;
|
|
3255
|
-
for (;;) {
|
|
3256
|
-
here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
3257
|
-
here_bits = here >>> 24;
|
|
3258
|
-
here_op = here >>> 16 & 255;
|
|
3259
|
-
here_val = here & 65535;
|
|
3260
|
-
if (last_bits + here_bits <= bits) break;
|
|
3261
|
-
if (have === 0) break inf_leave;
|
|
3262
|
-
have--;
|
|
3263
|
-
hold += input[next++] << bits;
|
|
3264
|
-
bits += 8;
|
|
3265
|
-
}
|
|
3266
|
-
hold >>>= last_bits;
|
|
3267
|
-
bits -= last_bits;
|
|
3268
|
-
state.back += last_bits;
|
|
3269
|
-
}
|
|
3270
|
-
hold >>>= here_bits;
|
|
3271
|
-
bits -= here_bits;
|
|
3272
|
-
state.back += here_bits;
|
|
3273
|
-
state.length = here_val;
|
|
3274
|
-
if (here_op === 0) {
|
|
3275
|
-
state.mode = LIT;
|
|
3276
|
-
break;
|
|
3277
|
-
}
|
|
3278
|
-
if (here_op & 32) {
|
|
3279
|
-
state.back = -1;
|
|
3280
|
-
state.mode = TYPE;
|
|
3281
|
-
break;
|
|
3282
|
-
}
|
|
3283
|
-
if (here_op & 64) {
|
|
3284
|
-
strm.msg = "invalid literal/length code";
|
|
3285
|
-
state.mode = BAD;
|
|
3286
|
-
break;
|
|
3287
|
-
}
|
|
3288
|
-
state.extra = here_op & 15;
|
|
3289
|
-
state.mode = LENEXT;
|
|
3290
|
-
case LENEXT:
|
|
3291
|
-
if (state.extra) {
|
|
3292
|
-
n = state.extra;
|
|
3293
|
-
while (bits < n) {
|
|
3294
|
-
if (have === 0) break inf_leave;
|
|
3295
|
-
have--;
|
|
3296
|
-
hold += input[next++] << bits;
|
|
3297
|
-
bits += 8;
|
|
3298
|
-
}
|
|
3299
|
-
state.length += hold & (1 << state.extra) - 1;
|
|
3300
|
-
hold >>>= state.extra;
|
|
3301
|
-
bits -= state.extra;
|
|
3302
|
-
state.back += state.extra;
|
|
3303
|
-
}
|
|
3304
|
-
state.was = state.length;
|
|
3305
|
-
state.mode = DIST;
|
|
3306
|
-
case DIST:
|
|
3307
|
-
for (;;) {
|
|
3308
|
-
here = state.distcode[hold & (1 << state.distbits) - 1];
|
|
3309
|
-
here_bits = here >>> 24;
|
|
3310
|
-
here_op = here >>> 16 & 255;
|
|
3311
|
-
here_val = here & 65535;
|
|
3312
|
-
if (here_bits <= bits) break;
|
|
3313
|
-
if (have === 0) break inf_leave;
|
|
3314
|
-
have--;
|
|
3315
|
-
hold += input[next++] << bits;
|
|
3316
|
-
bits += 8;
|
|
3317
|
-
}
|
|
3318
|
-
if ((here_op & 240) === 0) {
|
|
3319
|
-
last_bits = here_bits;
|
|
3320
|
-
last_op = here_op;
|
|
3321
|
-
last_val = here_val;
|
|
3322
|
-
for (;;) {
|
|
3323
|
-
here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
3324
|
-
here_bits = here >>> 24;
|
|
3325
|
-
here_op = here >>> 16 & 255;
|
|
3326
|
-
here_val = here & 65535;
|
|
3327
|
-
if (last_bits + here_bits <= bits) break;
|
|
3328
|
-
if (have === 0) break inf_leave;
|
|
3329
|
-
have--;
|
|
3330
|
-
hold += input[next++] << bits;
|
|
3331
|
-
bits += 8;
|
|
3332
|
-
}
|
|
3333
|
-
hold >>>= last_bits;
|
|
3334
|
-
bits -= last_bits;
|
|
3335
|
-
state.back += last_bits;
|
|
3336
|
-
}
|
|
3337
|
-
hold >>>= here_bits;
|
|
3338
|
-
bits -= here_bits;
|
|
3339
|
-
state.back += here_bits;
|
|
3340
|
-
if (here_op & 64) {
|
|
3341
|
-
strm.msg = "invalid distance code";
|
|
3342
|
-
state.mode = BAD;
|
|
3343
|
-
break;
|
|
3344
|
-
}
|
|
3345
|
-
state.offset = here_val;
|
|
3346
|
-
state.extra = here_op & 15;
|
|
3347
|
-
state.mode = DISTEXT;
|
|
3348
|
-
case DISTEXT:
|
|
3349
|
-
if (state.extra) {
|
|
3350
|
-
n = state.extra;
|
|
3351
|
-
while (bits < n) {
|
|
3352
|
-
if (have === 0) break inf_leave;
|
|
3353
|
-
have--;
|
|
3354
|
-
hold += input[next++] << bits;
|
|
3355
|
-
bits += 8;
|
|
3356
|
-
}
|
|
3357
|
-
state.offset += hold & (1 << state.extra) - 1;
|
|
3358
|
-
hold >>>= state.extra;
|
|
3359
|
-
bits -= state.extra;
|
|
3360
|
-
state.back += state.extra;
|
|
3361
|
-
}
|
|
3362
|
-
if (state.offset > state.dmax) {
|
|
3363
|
-
strm.msg = "invalid distance too far back";
|
|
3364
|
-
state.mode = BAD;
|
|
3365
|
-
break;
|
|
3366
|
-
}
|
|
3367
|
-
state.mode = MATCH;
|
|
3368
|
-
case MATCH:
|
|
3369
|
-
if (left === 0) break inf_leave;
|
|
3370
|
-
copy = _out - left;
|
|
3371
|
-
if (state.offset > copy) {
|
|
3372
|
-
copy = state.offset - copy;
|
|
3373
|
-
if (copy > state.whave) {
|
|
3374
|
-
if (state.sane) {
|
|
3375
|
-
strm.msg = "invalid distance too far back";
|
|
3376
|
-
state.mode = BAD;
|
|
3377
|
-
break;
|
|
3378
|
-
}
|
|
3379
|
-
}
|
|
3380
|
-
if (copy > state.wnext) {
|
|
3381
|
-
copy -= state.wnext;
|
|
3382
|
-
from = state.wsize - copy;
|
|
3383
|
-
} else from = state.wnext - copy;
|
|
3384
|
-
if (copy > state.length) copy = state.length;
|
|
3385
|
-
from_source = state.window;
|
|
3386
|
-
} else {
|
|
3387
|
-
from_source = output;
|
|
3388
|
-
from = put - state.offset;
|
|
3389
|
-
copy = state.length;
|
|
3390
|
-
}
|
|
3391
|
-
if (copy > left) copy = left;
|
|
3392
|
-
left -= copy;
|
|
3393
|
-
state.length -= copy;
|
|
3394
|
-
do
|
|
3395
|
-
output[put++] = from_source[from++];
|
|
3396
|
-
while (--copy);
|
|
3397
|
-
if (state.length === 0) state.mode = LEN;
|
|
3398
|
-
break;
|
|
3399
|
-
case LIT:
|
|
3400
|
-
if (left === 0) break inf_leave;
|
|
3401
|
-
output[put++] = state.length;
|
|
3402
|
-
left--;
|
|
3403
|
-
state.mode = LEN;
|
|
3404
|
-
break;
|
|
3405
|
-
case CHECK:
|
|
3406
|
-
if (state.wrap) {
|
|
3407
|
-
while (bits < 32) {
|
|
3408
|
-
if (have === 0) break inf_leave;
|
|
3409
|
-
have--;
|
|
3410
|
-
hold |= input[next++] << bits;
|
|
3411
|
-
bits += 8;
|
|
3412
|
-
}
|
|
3413
|
-
_out -= left;
|
|
3414
|
-
strm.total_out += _out;
|
|
3415
|
-
state.total += _out;
|
|
3416
|
-
if (state.wrap & 4 && _out) strm.adler = state.check = state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out);
|
|
3417
|
-
_out = left;
|
|
3418
|
-
if (state.wrap & 4 && (state.flags ? hold : zswap32(hold)) !== state.check) {
|
|
3419
|
-
strm.msg = "incorrect data check";
|
|
3420
|
-
state.mode = BAD;
|
|
3421
|
-
break;
|
|
3422
|
-
}
|
|
3423
|
-
hold = 0;
|
|
3424
|
-
bits = 0;
|
|
3425
|
-
}
|
|
3426
|
-
state.mode = LENGTH;
|
|
3427
|
-
case LENGTH:
|
|
3428
|
-
if (state.wrap && state.flags) {
|
|
3429
|
-
while (bits < 32) {
|
|
3430
|
-
if (have === 0) break inf_leave;
|
|
3431
|
-
have--;
|
|
3432
|
-
hold += input[next++] << bits;
|
|
3433
|
-
bits += 8;
|
|
3434
|
-
}
|
|
3435
|
-
if (state.wrap & 4 && hold !== (state.total & 4294967295)) {
|
|
3436
|
-
strm.msg = "incorrect length check";
|
|
3437
|
-
state.mode = BAD;
|
|
3438
|
-
break;
|
|
3439
|
-
}
|
|
3440
|
-
hold = 0;
|
|
3441
|
-
bits = 0;
|
|
3442
|
-
}
|
|
3443
|
-
state.mode = DONE;
|
|
3444
|
-
case DONE:
|
|
3445
|
-
ret = Z_STREAM_END$1;
|
|
3446
|
-
break inf_leave;
|
|
3447
|
-
case BAD:
|
|
3448
|
-
ret = Z_DATA_ERROR$1;
|
|
3449
|
-
break inf_leave;
|
|
3450
|
-
case MEM: return Z_MEM_ERROR$1;
|
|
3451
|
-
case SYNC:
|
|
3452
|
-
default: return Z_STREAM_ERROR$1;
|
|
3453
|
-
}
|
|
3454
|
-
strm.next_out = put;
|
|
3455
|
-
strm.avail_out = left;
|
|
3456
|
-
strm.next_in = next;
|
|
3457
|
-
strm.avail_in = have;
|
|
3458
|
-
state.hold = hold;
|
|
3459
|
-
state.bits = bits;
|
|
3460
|
-
if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH$1)) {
|
|
3461
|
-
if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out));
|
|
3462
|
-
}
|
|
3463
|
-
_in -= strm.avail_in;
|
|
3464
|
-
_out -= strm.avail_out;
|
|
3465
|
-
strm.total_in += _in;
|
|
3466
|
-
strm.total_out += _out;
|
|
3467
|
-
state.total += _out;
|
|
3468
|
-
if (state.wrap & 4 && _out) strm.adler = state.check = state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out);
|
|
3469
|
-
strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
|
|
3470
|
-
if ((_in === 0 && _out === 0 || flush === Z_FINISH$1) && ret === Z_OK$1) ret = Z_BUF_ERROR;
|
|
3471
|
-
return ret;
|
|
3472
|
-
};
|
|
3473
|
-
const inflateEnd = (strm) => {
|
|
3474
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
3475
|
-
let state = strm.state;
|
|
3476
|
-
if (state.window) state.window = null;
|
|
3477
|
-
strm.state = null;
|
|
3478
|
-
return Z_OK$1;
|
|
3479
|
-
};
|
|
3480
|
-
const inflateGetHeader = (strm, head) => {
|
|
3481
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
3482
|
-
const state = strm.state;
|
|
3483
|
-
if ((state.wrap & 2) === 0) return Z_STREAM_ERROR$1;
|
|
3484
|
-
state.head = head;
|
|
3485
|
-
head.done = false;
|
|
3486
|
-
return Z_OK$1;
|
|
3487
|
-
};
|
|
3488
|
-
const inflateSetDictionary = (strm, dictionary) => {
|
|
3489
|
-
const dictLength = dictionary.length;
|
|
3490
|
-
let state;
|
|
3491
|
-
let dictid;
|
|
3492
|
-
let ret;
|
|
3493
|
-
if (inflateStateCheck(strm)) return Z_STREAM_ERROR$1;
|
|
3494
|
-
state = strm.state;
|
|
3495
|
-
if (state.wrap !== 0 && state.mode !== DICT) return Z_STREAM_ERROR$1;
|
|
3496
|
-
if (state.mode === DICT) {
|
|
3497
|
-
dictid = 1;
|
|
3498
|
-
dictid = adler32_1(dictid, dictionary, dictLength, 0);
|
|
3499
|
-
if (dictid !== state.check) return Z_DATA_ERROR$1;
|
|
3500
|
-
}
|
|
3501
|
-
ret = updatewindow(strm, dictionary, dictLength, dictLength);
|
|
3502
|
-
if (ret) {
|
|
3503
|
-
state.mode = MEM;
|
|
3504
|
-
return Z_MEM_ERROR$1;
|
|
3505
|
-
}
|
|
3506
|
-
state.havedict = 1;
|
|
3507
|
-
return Z_OK$1;
|
|
3508
|
-
};
|
|
3509
|
-
var inflate_1$2 = {
|
|
3510
|
-
inflateReset,
|
|
3511
|
-
inflateReset2,
|
|
3512
|
-
inflateResetKeep,
|
|
3513
|
-
inflateInit,
|
|
3514
|
-
inflateInit2,
|
|
3515
|
-
inflate: inflate$2,
|
|
3516
|
-
inflateEnd,
|
|
3517
|
-
inflateGetHeader,
|
|
3518
|
-
inflateSetDictionary,
|
|
3519
|
-
inflateInfo: "pako inflate (from Nodeca project)"
|
|
3520
|
-
};
|
|
3521
|
-
function GZheader() {
|
|
3522
|
-
this.text = 0;
|
|
3523
|
-
this.time = 0;
|
|
3524
|
-
this.xflags = 0;
|
|
3525
|
-
this.os = 0;
|
|
3526
|
-
this.extra = null;
|
|
3527
|
-
this.extra_len = 0;
|
|
3528
|
-
this.name = "";
|
|
3529
|
-
this.comment = "";
|
|
3530
|
-
this.hcrc = 0;
|
|
3531
|
-
this.done = false;
|
|
3532
|
-
}
|
|
3533
|
-
var gzheader = GZheader;
|
|
3534
|
-
const toString = Object.prototype.toString;
|
|
3535
|
-
const { Z_NO_FLUSH, Z_FINISH, Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR } = constants$2;
|
|
3536
|
-
/**
|
|
3537
|
-
* class Inflate
|
|
3538
|
-
*
|
|
3539
|
-
* Generic JS-style wrapper for zlib calls. If you don't need
|
|
3540
|
-
* streaming behaviour - use more simple functions: [[inflate]]
|
|
3541
|
-
* and [[inflateRaw]].
|
|
3542
|
-
**/
|
|
3543
|
-
/**
|
|
3544
|
-
* Inflate.result -> Uint8Array|String
|
|
3545
|
-
*
|
|
3546
|
-
* Uncompressed result, generated by default [[Inflate#onData]]
|
|
3547
|
-
* and [[Inflate#onEnd]] handlers. Filled after you push last chunk
|
|
3548
|
-
* (call [[Inflate#push]] with `Z_FINISH` / `true` param).
|
|
3549
|
-
**/
|
|
3550
|
-
/**
|
|
3551
|
-
* Inflate.err -> Number
|
|
3552
|
-
*
|
|
3553
|
-
* Error code after inflate finished. 0 (Z_OK) on success.
|
|
3554
|
-
* Should be checked if broken data possible.
|
|
3555
|
-
**/
|
|
3556
|
-
/**
|
|
3557
|
-
* Inflate.msg -> String
|
|
3558
|
-
*
|
|
3559
|
-
* Error message, if [[Inflate.err]] != 0
|
|
3560
|
-
**/
|
|
3561
|
-
/**
|
|
3562
|
-
* new Inflate(options)
|
|
3563
|
-
* - options (Object): zlib inflate options.
|
|
3564
|
-
*
|
|
3565
|
-
* Creates new inflator instance with specified params. Throws exception
|
|
3566
|
-
* on bad params. Supported options:
|
|
3567
|
-
*
|
|
3568
|
-
* - `windowBits`
|
|
3569
|
-
* - `dictionary`
|
|
3570
|
-
*
|
|
3571
|
-
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
|
3572
|
-
* for more information on these.
|
|
3573
|
-
*
|
|
3574
|
-
* Additional options, for internal needs:
|
|
3575
|
-
*
|
|
3576
|
-
* - `chunkSize` - size of generated data chunks (16K by default)
|
|
3577
|
-
* - `raw` (Boolean) - do raw inflate
|
|
3578
|
-
* - `to` (String) - if equal to 'string', then result will be converted
|
|
3579
|
-
* from utf8 to utf16 (javascript) string. When string output requested,
|
|
3580
|
-
* chunk length can differ from `chunkSize`, depending on content.
|
|
3581
|
-
*
|
|
3582
|
-
* By default, when no options set, autodetect deflate/gzip data format via
|
|
3583
|
-
* wrapper header.
|
|
3584
|
-
*
|
|
3585
|
-
* ##### Example:
|
|
3586
|
-
*
|
|
3587
|
-
* ```javascript
|
|
3588
|
-
* const pako = require('pako')
|
|
3589
|
-
* const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])
|
|
3590
|
-
* const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);
|
|
3591
|
-
*
|
|
3592
|
-
* const inflate = new pako.Inflate({ level: 3});
|
|
3593
|
-
*
|
|
3594
|
-
* inflate.push(chunk1, false);
|
|
3595
|
-
* inflate.push(chunk2, true); // true -> last chunk
|
|
3596
|
-
*
|
|
3597
|
-
* if (inflate.err) { throw new Error(inflate.err); }
|
|
3598
|
-
*
|
|
3599
|
-
* console.log(inflate.result);
|
|
3600
|
-
* ```
|
|
3601
|
-
**/
|
|
3602
|
-
function Inflate$1(options) {
|
|
3603
|
-
this.options = common.assign({
|
|
3604
|
-
chunkSize: 1024 * 64,
|
|
3605
|
-
windowBits: 15,
|
|
3606
|
-
to: ""
|
|
3607
|
-
}, options || {});
|
|
3608
|
-
const opt = this.options;
|
|
3609
|
-
if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
|
|
3610
|
-
opt.windowBits = -opt.windowBits;
|
|
3611
|
-
if (opt.windowBits === 0) opt.windowBits = -15;
|
|
3612
|
-
}
|
|
3613
|
-
if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) opt.windowBits += 32;
|
|
3614
|
-
if (opt.windowBits > 15 && opt.windowBits < 48) {
|
|
3615
|
-
if ((opt.windowBits & 15) === 0) opt.windowBits |= 15;
|
|
3616
|
-
}
|
|
3617
|
-
this.err = 0;
|
|
3618
|
-
this.msg = "";
|
|
3619
|
-
this.ended = false;
|
|
3620
|
-
this.chunks = [];
|
|
3621
|
-
this.strm = new zstream();
|
|
3622
|
-
this.strm.avail_out = 0;
|
|
3623
|
-
let status = inflate_1$2.inflateInit2(this.strm, opt.windowBits);
|
|
3624
|
-
if (status !== Z_OK) throw new Error(messages[status]);
|
|
3625
|
-
this.header = new gzheader();
|
|
3626
|
-
inflate_1$2.inflateGetHeader(this.strm, this.header);
|
|
3627
|
-
if (opt.dictionary) {
|
|
3628
|
-
if (typeof opt.dictionary === "string") opt.dictionary = strings.string2buf(opt.dictionary);
|
|
3629
|
-
else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") opt.dictionary = new Uint8Array(opt.dictionary);
|
|
3630
|
-
if (opt.raw) {
|
|
3631
|
-
status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);
|
|
3632
|
-
if (status !== Z_OK) throw new Error(messages[status]);
|
|
3633
|
-
}
|
|
3634
|
-
}
|
|
3635
|
-
}
|
|
3636
|
-
/**
|
|
3637
|
-
* Inflate#push(data[, flush_mode]) -> Boolean
|
|
3638
|
-
* - data (Uint8Array|ArrayBuffer): input data
|
|
3639
|
-
* - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE
|
|
3640
|
-
* flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,
|
|
3641
|
-
* `true` means Z_FINISH.
|
|
3642
|
-
*
|
|
3643
|
-
* Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
|
|
3644
|
-
* new output chunks. Returns `true` on success. If end of stream detected,
|
|
3645
|
-
* [[Inflate#onEnd]] will be called.
|
|
3646
|
-
*
|
|
3647
|
-
* `flush_mode` is not needed for normal operation, because end of stream
|
|
3648
|
-
* detected automatically. You may try to use it for advanced things, but
|
|
3649
|
-
* this functionality was not tested.
|
|
3650
|
-
*
|
|
3651
|
-
* On fail call [[Inflate#onEnd]] with error code and return false.
|
|
3652
|
-
*
|
|
3653
|
-
* ##### Example
|
|
3654
|
-
*
|
|
3655
|
-
* ```javascript
|
|
3656
|
-
* push(chunk, false); // push one of data chunks
|
|
3657
|
-
* ...
|
|
3658
|
-
* push(chunk, true); // push last chunk
|
|
3659
|
-
* ```
|
|
3660
|
-
**/
|
|
3661
|
-
Inflate$1.prototype.push = function(data, flush_mode) {
|
|
3662
|
-
const strm = this.strm;
|
|
3663
|
-
const chunkSize = this.options.chunkSize;
|
|
3664
|
-
const dictionary = this.options.dictionary;
|
|
3665
|
-
let status, _flush_mode, last_avail_out;
|
|
3666
|
-
if (this.ended) return false;
|
|
3667
|
-
if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;
|
|
3668
|
-
else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;
|
|
3669
|
-
if (toString.call(data) === "[object ArrayBuffer]") strm.input = new Uint8Array(data);
|
|
3670
|
-
else strm.input = data;
|
|
3671
|
-
strm.next_in = 0;
|
|
3672
|
-
strm.avail_in = strm.input.length;
|
|
3673
|
-
for (;;) {
|
|
3674
|
-
if (strm.avail_out === 0) {
|
|
3675
|
-
strm.output = new Uint8Array(chunkSize);
|
|
3676
|
-
strm.next_out = 0;
|
|
3677
|
-
strm.avail_out = chunkSize;
|
|
3678
|
-
}
|
|
3679
|
-
status = inflate_1$2.inflate(strm, _flush_mode);
|
|
3680
|
-
if (status === Z_NEED_DICT && dictionary) {
|
|
3681
|
-
status = inflate_1$2.inflateSetDictionary(strm, dictionary);
|
|
3682
|
-
if (status === Z_OK) status = inflate_1$2.inflate(strm, _flush_mode);
|
|
3683
|
-
else if (status === Z_DATA_ERROR) status = Z_NEED_DICT;
|
|
3684
|
-
}
|
|
3685
|
-
while (strm.avail_in > 0 && status === Z_STREAM_END && strm.state.wrap > 0 && data[strm.next_in] !== 0) {
|
|
3686
|
-
inflate_1$2.inflateReset(strm);
|
|
3687
|
-
status = inflate_1$2.inflate(strm, _flush_mode);
|
|
3688
|
-
}
|
|
3689
|
-
switch (status) {
|
|
3690
|
-
case Z_STREAM_ERROR:
|
|
3691
|
-
case Z_DATA_ERROR:
|
|
3692
|
-
case Z_NEED_DICT:
|
|
3693
|
-
case Z_MEM_ERROR:
|
|
3694
|
-
this.onEnd(status);
|
|
3695
|
-
this.ended = true;
|
|
3696
|
-
return false;
|
|
3697
|
-
}
|
|
3698
|
-
last_avail_out = strm.avail_out;
|
|
3699
|
-
if (strm.next_out) {
|
|
3700
|
-
if (strm.avail_out === 0 || status === Z_STREAM_END) if (this.options.to === "string") {
|
|
3701
|
-
let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
|
|
3702
|
-
let tail = strm.next_out - next_out_utf8;
|
|
3703
|
-
let utf8str = strings.buf2string(strm.output, next_out_utf8);
|
|
3704
|
-
strm.next_out = tail;
|
|
3705
|
-
strm.avail_out = chunkSize - tail;
|
|
3706
|
-
if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);
|
|
3707
|
-
this.onData(utf8str);
|
|
3708
|
-
} else this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));
|
|
3709
|
-
}
|
|
3710
|
-
if (status === Z_OK && last_avail_out === 0) continue;
|
|
3711
|
-
if (status === Z_STREAM_END) {
|
|
3712
|
-
status = inflate_1$2.inflateEnd(this.strm);
|
|
3713
|
-
this.onEnd(status);
|
|
3714
|
-
this.ended = true;
|
|
3715
|
-
return true;
|
|
3716
|
-
}
|
|
3717
|
-
if (strm.avail_in === 0) break;
|
|
3718
|
-
}
|
|
3719
|
-
return true;
|
|
3720
|
-
};
|
|
3721
|
-
/**
|
|
3722
|
-
* Inflate#onData(chunk) -> Void
|
|
3723
|
-
* - chunk (Uint8Array|String): output data. When string output requested,
|
|
3724
|
-
* each chunk will be string.
|
|
3725
|
-
*
|
|
3726
|
-
* By default, stores data blocks in `chunks[]` property and glue
|
|
3727
|
-
* those in `onEnd`. Override this handler, if you need another behaviour.
|
|
3728
|
-
**/
|
|
3729
|
-
Inflate$1.prototype.onData = function(chunk) {
|
|
3730
|
-
this.chunks.push(chunk);
|
|
3731
|
-
};
|
|
3732
|
-
/**
|
|
3733
|
-
* Inflate#onEnd(status) -> Void
|
|
3734
|
-
* - status (Number): inflate status. 0 (Z_OK) on success,
|
|
3735
|
-
* other if not.
|
|
3736
|
-
*
|
|
3737
|
-
* Called either after you tell inflate that the input stream is
|
|
3738
|
-
* complete (Z_FINISH). By default - join collected chunks,
|
|
3739
|
-
* free memory and fill `results` / `err` properties.
|
|
3740
|
-
**/
|
|
3741
|
-
Inflate$1.prototype.onEnd = function(status) {
|
|
3742
|
-
if (status === Z_OK) if (this.options.to === "string") this.result = this.chunks.join("");
|
|
3743
|
-
else this.result = common.flattenChunks(this.chunks);
|
|
3744
|
-
this.chunks = [];
|
|
3745
|
-
this.err = status;
|
|
3746
|
-
this.msg = this.strm.msg;
|
|
3747
|
-
};
|
|
3748
|
-
/**
|
|
3749
|
-
* inflate(data[, options]) -> Uint8Array|String
|
|
3750
|
-
* - data (Uint8Array|ArrayBuffer): input data to decompress.
|
|
3751
|
-
* - options (Object): zlib inflate options.
|
|
3752
|
-
*
|
|
3753
|
-
* Decompress `data` with inflate/ungzip and `options`. Autodetect
|
|
3754
|
-
* format via wrapper header by default. That's why we don't provide
|
|
3755
|
-
* separate `ungzip` method.
|
|
3756
|
-
*
|
|
3757
|
-
* Supported options are:
|
|
3758
|
-
*
|
|
3759
|
-
* - windowBits
|
|
3760
|
-
*
|
|
3761
|
-
* [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
|
|
3762
|
-
* for more information.
|
|
3763
|
-
*
|
|
3764
|
-
* Sugar (options):
|
|
3765
|
-
*
|
|
3766
|
-
* - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
|
|
3767
|
-
* negative windowBits implicitly.
|
|
3768
|
-
* - `to` (String) - if equal to 'string', then result will be converted
|
|
3769
|
-
* from utf8 to utf16 (javascript) string. When string output requested,
|
|
3770
|
-
* chunk length can differ from `chunkSize`, depending on content.
|
|
3771
|
-
*
|
|
3772
|
-
*
|
|
3773
|
-
* ##### Example:
|
|
3774
|
-
*
|
|
3775
|
-
* ```javascript
|
|
3776
|
-
* const pako = require('pako');
|
|
3777
|
-
* const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));
|
|
3778
|
-
* let output;
|
|
3779
|
-
*
|
|
3780
|
-
* try {
|
|
3781
|
-
* output = pako.inflate(input);
|
|
3782
|
-
* } catch (err) {
|
|
3783
|
-
* console.log(err);
|
|
3784
|
-
* }
|
|
3785
|
-
* ```
|
|
3786
|
-
**/
|
|
3787
|
-
function inflate$1(input, options) {
|
|
3788
|
-
const inflator = new Inflate$1(options);
|
|
3789
|
-
inflator.push(input);
|
|
3790
|
-
if (inflator.err) throw inflator.msg || messages[inflator.err];
|
|
3791
|
-
return inflator.result;
|
|
3792
|
-
}
|
|
3793
|
-
/**
|
|
3794
|
-
* inflateRaw(data[, options]) -> Uint8Array|String
|
|
3795
|
-
* - data (Uint8Array|ArrayBuffer): input data to decompress.
|
|
3796
|
-
* - options (Object): zlib inflate options.
|
|
3797
|
-
*
|
|
3798
|
-
* The same as [[inflate]], but creates raw data, without wrapper
|
|
3799
|
-
* (header and adler32 crc).
|
|
3800
|
-
**/
|
|
3801
|
-
function inflateRaw$1(input, options) {
|
|
3802
|
-
options = options || {};
|
|
3803
|
-
options.raw = true;
|
|
3804
|
-
return inflate$1(input, options);
|
|
3805
|
-
}
|
|
3806
|
-
var inflate_1$1 = {
|
|
3807
|
-
Inflate: Inflate$1,
|
|
3808
|
-
inflate: inflate$1,
|
|
3809
|
-
inflateRaw: inflateRaw$1,
|
|
3810
|
-
ungzip: inflate$1,
|
|
3811
|
-
constants: constants$2
|
|
3812
|
-
};
|
|
3813
|
-
const { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;
|
|
3814
|
-
const { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;
|
|
3815
|
-
var Deflate_1 = Deflate;
|
|
3816
|
-
var deflate_1 = deflate;
|
|
3817
|
-
var deflateRaw_1 = deflateRaw;
|
|
3818
|
-
var gzip_1 = gzip;
|
|
3819
|
-
var Inflate_1 = Inflate;
|
|
3820
|
-
var inflate_1 = inflate;
|
|
3821
|
-
var inflateRaw_1 = inflateRaw;
|
|
3822
|
-
var ungzip_1 = ungzip;
|
|
3823
|
-
var constants_1 = constants$2;
|
|
3824
|
-
var pako = {
|
|
3825
|
-
Deflate: Deflate_1,
|
|
3826
|
-
deflate: deflate_1,
|
|
3827
|
-
deflateRaw: deflateRaw_1,
|
|
3828
|
-
gzip: gzip_1,
|
|
3829
|
-
Inflate: Inflate_1,
|
|
3830
|
-
inflate: inflate_1,
|
|
3831
|
-
inflateRaw: inflateRaw_1,
|
|
3832
|
-
ungzip: ungzip_1,
|
|
3833
|
-
constants: constants_1
|
|
3834
|
-
};
|
|
3835
|
-
|
|
3836
|
-
//#endregion
|
|
3837
|
-
export { inflate_1 as n, pako as r, deflate_1 as t };
|
|
3838
|
-
//# sourceMappingURL=pako.esm-ORhkEHM2.mjs.map
|