quake2ts 0.0.233 → 0.0.235
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/package.json +4 -2
- package/packages/client/dist/browser/index.global.js +49 -16
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +4469 -131
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +4469 -131
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +56 -20
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +4584 -237
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +4584 -237
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/parser.d.ts +12 -3
- package/packages/engine/dist/types/demo/parser.d.ts.map +1 -1
- package/packages/engine/dist/types/render/bsp/geometry.d.ts +1 -0
- package/packages/engine/dist/types/render/bsp/geometry.d.ts.map +1 -1
- package/packages/engine/dist/types/render/bsp/renderer.d.ts.map +1 -1
- package/packages/engine/dist/types/render/bsp/surface.d.ts.map +1 -1
- package/packages/engine/dist/types/render/bspPipeline.d.ts +4 -2
- package/packages/engine/dist/types/render/bspPipeline.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +10 -0
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +10 -0
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/io/binaryStream.d.ts +2 -0
- package/packages/shared/dist/types/io/binaryStream.d.ts.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -697,11 +697,21 @@ var BinaryStream = class {
|
|
|
697
697
|
this.offset += 2;
|
|
698
698
|
return value;
|
|
699
699
|
}
|
|
700
|
+
readUShort() {
|
|
701
|
+
const value = this.view.getUint16(this.offset, true);
|
|
702
|
+
this.offset += 2;
|
|
703
|
+
return value;
|
|
704
|
+
}
|
|
700
705
|
readLong() {
|
|
701
706
|
const value = this.view.getInt32(this.offset, true);
|
|
702
707
|
this.offset += 4;
|
|
703
708
|
return value;
|
|
704
709
|
}
|
|
710
|
+
readULong() {
|
|
711
|
+
const value = this.view.getUint32(this.offset, true);
|
|
712
|
+
this.offset += 4;
|
|
713
|
+
return value;
|
|
714
|
+
}
|
|
705
715
|
readFloat() {
|
|
706
716
|
const value = this.view.getFloat32(this.offset, true);
|
|
707
717
|
this.offset += 4;
|
|
@@ -3235,7 +3245,7 @@ async function decodeOgg(buffer, decoder = new OggVorbisDecoder()) {
|
|
|
3235
3245
|
const result = await decoder.decode(new Uint8Array(buffer));
|
|
3236
3246
|
const errors = result.errors;
|
|
3237
3247
|
if (errors && errors.length > 0) {
|
|
3238
|
-
throw new OggDecodeError(errors.map((
|
|
3248
|
+
throw new OggDecodeError(errors.map((err2) => err2.message).join("; "));
|
|
3239
3249
|
}
|
|
3240
3250
|
return {
|
|
3241
3251
|
sampleRate: result.sampleRate,
|
|
@@ -3768,8 +3778,8 @@ var SoundPrecache = class {
|
|
|
3768
3778
|
this.registry.register(path, buffer);
|
|
3769
3779
|
report.loaded.push(path);
|
|
3770
3780
|
} catch (error) {
|
|
3771
|
-
const
|
|
3772
|
-
report.errors[path] =
|
|
3781
|
+
const err2 = error instanceof Error ? error : new Error(String(error));
|
|
3782
|
+
report.errors[path] = err2;
|
|
3773
3783
|
}
|
|
3774
3784
|
}
|
|
3775
3785
|
return report;
|
|
@@ -4922,6 +4932,7 @@ precision highp float;
|
|
|
4922
4932
|
layout(location = 0) in vec3 a_position;
|
|
4923
4933
|
layout(location = 1) in vec2 a_texCoord;
|
|
4924
4934
|
layout(location = 2) in vec2 a_lightmapCoord;
|
|
4935
|
+
layout(location = 3) in float a_lightmapStep;
|
|
4925
4936
|
|
|
4926
4937
|
uniform mat4 u_modelViewProjection;
|
|
4927
4938
|
uniform vec2 u_texScroll;
|
|
@@ -4929,6 +4940,7 @@ uniform vec2 u_lightmapScroll;
|
|
|
4929
4940
|
|
|
4930
4941
|
out vec2 v_texCoord;
|
|
4931
4942
|
out vec2 v_lightmapCoord;
|
|
4943
|
+
out float v_lightmapStep;
|
|
4932
4944
|
out vec3 v_position;
|
|
4933
4945
|
|
|
4934
4946
|
vec2 applyScroll(vec2 uv, vec2 scroll) {
|
|
@@ -4938,6 +4950,7 @@ vec2 applyScroll(vec2 uv, vec2 scroll) {
|
|
|
4938
4950
|
void main() {
|
|
4939
4951
|
v_texCoord = applyScroll(a_texCoord, u_texScroll);
|
|
4940
4952
|
v_lightmapCoord = applyScroll(a_lightmapCoord, u_lightmapScroll);
|
|
4953
|
+
v_lightmapStep = a_lightmapStep;
|
|
4941
4954
|
v_position = a_position;
|
|
4942
4955
|
gl_Position = u_modelViewProjection * vec4(a_position, 1.0);
|
|
4943
4956
|
}`;
|
|
@@ -4954,11 +4967,13 @@ const int MAX_DLIGHTS = ${MAX_DLIGHTS};
|
|
|
4954
4967
|
|
|
4955
4968
|
in vec2 v_texCoord;
|
|
4956
4969
|
in vec2 v_lightmapCoord;
|
|
4970
|
+
in float v_lightmapStep;
|
|
4957
4971
|
in vec3 v_position;
|
|
4958
4972
|
|
|
4959
4973
|
uniform sampler2D u_diffuseMap;
|
|
4960
4974
|
uniform sampler2D u_lightmapAtlas;
|
|
4961
4975
|
uniform vec4 u_lightStyleFactors;
|
|
4976
|
+
uniform vec4 u_styleLayerMapping; // 0, 1, 2... or -1 if invalid
|
|
4962
4977
|
uniform float u_alpha;
|
|
4963
4978
|
uniform bool u_applyLightmap;
|
|
4964
4979
|
uniform bool u_warp;
|
|
@@ -4992,9 +5007,35 @@ void main() {
|
|
|
4992
5007
|
vec3 totalLight = vec3(1.0);
|
|
4993
5008
|
|
|
4994
5009
|
if (u_applyLightmap) {
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
5010
|
+
// Multi-style lightmap accumulation
|
|
5011
|
+
vec3 light = vec3(0.0);
|
|
5012
|
+
bool hasLight = false;
|
|
5013
|
+
|
|
5014
|
+
vec2 lmBase = warpCoords(v_lightmapCoord);
|
|
5015
|
+
|
|
5016
|
+
// Loop unrolled-ish
|
|
5017
|
+
for (int i = 0; i < 4; i++) {
|
|
5018
|
+
// We can access vec4 components by index in newer GLSL ES, or use direct access
|
|
5019
|
+
float layer = u_styleLayerMapping[i];
|
|
5020
|
+
float factor = u_lightStyleFactors[i];
|
|
5021
|
+
|
|
5022
|
+
if (layer >= -0.5) { // Valid layer (check >= 0 approx)
|
|
5023
|
+
// Offset V by layer * step
|
|
5024
|
+
// Since we packed vertically
|
|
5025
|
+
vec2 offset = vec2(0.0, layer * v_lightmapStep);
|
|
5026
|
+
light += texture(u_lightmapAtlas, lmBase + offset).rgb * factor;
|
|
5027
|
+
hasLight = true;
|
|
5028
|
+
}
|
|
5029
|
+
}
|
|
5030
|
+
|
|
5031
|
+
// If no valid lightmaps found (e.g. unlit surface?), default to full bright?
|
|
5032
|
+
// Or if u_applyLightmap is true, there should be at least one style.
|
|
5033
|
+
// Fallback to 1.0 if accumulator is empty?
|
|
5034
|
+
// In Q2, unlit surfs are fullbright (or use minlight).
|
|
5035
|
+
// If hasLight is false, it means no styles are active.
|
|
5036
|
+
if (!hasLight) light = vec3(1.0);
|
|
5037
|
+
|
|
5038
|
+
totalLight = light; // Dynamic lights add on top or multiply? Q2 adds.
|
|
4998
5039
|
|
|
4999
5040
|
// Add dynamic lights
|
|
5000
5041
|
for (int i = 0; i < MAX_DLIGHTS; i++) {
|
|
@@ -5031,6 +5072,7 @@ void main() {
|
|
|
5031
5072
|
o_color = finalColor;
|
|
5032
5073
|
}`;
|
|
5033
5074
|
var DEFAULT_STYLE_INDICES = [0, 255, 255, 255];
|
|
5075
|
+
var DEFAULT_STYLE_LAYERS = [0, -1, -1, -1];
|
|
5034
5076
|
function resolveLightStyles(styleIndices = DEFAULT_STYLE_INDICES, styleValues = []) {
|
|
5035
5077
|
const factors = new Float32Array(4);
|
|
5036
5078
|
for (let i = 0; i < 4; i += 1) {
|
|
@@ -5074,12 +5116,13 @@ var BspSurfacePipeline = class {
|
|
|
5074
5116
|
this.program = ShaderProgram.create(
|
|
5075
5117
|
gl,
|
|
5076
5118
|
{ vertex: BSP_SURFACE_VERTEX_SOURCE, fragment: BSP_SURFACE_FRAGMENT_SOURCE },
|
|
5077
|
-
{ a_position: 0, a_texCoord: 1, a_lightmapCoord: 2 }
|
|
5119
|
+
{ a_position: 0, a_texCoord: 1, a_lightmapCoord: 2, a_lightmapStep: 3 }
|
|
5078
5120
|
);
|
|
5079
5121
|
this.uniformMvp = this.program.getUniformLocation("u_modelViewProjection");
|
|
5080
5122
|
this.uniformTexScroll = this.program.getUniformLocation("u_texScroll");
|
|
5081
5123
|
this.uniformLmScroll = this.program.getUniformLocation("u_lightmapScroll");
|
|
5082
5124
|
this.uniformLightStyles = this.program.getUniformLocation("u_lightStyleFactors");
|
|
5125
|
+
this.uniformStyleLayerMapping = this.program.getUniformLocation("u_styleLayerMapping");
|
|
5083
5126
|
this.uniformAlpha = this.program.getUniformLocation("u_alpha");
|
|
5084
5127
|
this.uniformApplyLightmap = this.program.getUniformLocation("u_applyLightmap");
|
|
5085
5128
|
this.uniformWarp = this.program.getUniformLocation("u_warp");
|
|
@@ -5101,6 +5144,7 @@ var BspSurfacePipeline = class {
|
|
|
5101
5144
|
const {
|
|
5102
5145
|
modelViewProjection,
|
|
5103
5146
|
styleIndices = DEFAULT_STYLE_INDICES,
|
|
5147
|
+
styleLayers = DEFAULT_STYLE_LAYERS,
|
|
5104
5148
|
styleValues = [],
|
|
5105
5149
|
diffuseSampler = 0,
|
|
5106
5150
|
lightmapSampler,
|
|
@@ -5123,6 +5167,7 @@ var BspSurfacePipeline = class {
|
|
|
5123
5167
|
this.gl.uniform2f(this.uniformTexScroll, finalScrollX, finalScrollY);
|
|
5124
5168
|
this.gl.uniform2f(this.uniformLmScroll, state.flowOffset[0], state.flowOffset[1]);
|
|
5125
5169
|
this.gl.uniform4fv(this.uniformLightStyles, styles);
|
|
5170
|
+
this.gl.uniform4fv(this.uniformStyleLayerMapping, styleLayers);
|
|
5126
5171
|
this.gl.uniform1f(this.uniformAlpha, finalAlpha);
|
|
5127
5172
|
const applyLightmap = !state.sky && lightmapSampler !== void 0;
|
|
5128
5173
|
this.gl.uniform1i(this.uniformApplyLightmap, applyLightmap ? 1 : 0);
|
|
@@ -6660,249 +6705,4450 @@ var DemoReader = class {
|
|
|
6660
6705
|
}
|
|
6661
6706
|
};
|
|
6662
6707
|
|
|
6663
|
-
//
|
|
6664
|
-
var
|
|
6665
|
-
var
|
|
6666
|
-
var
|
|
6667
|
-
var
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
|
|
6672
|
-
|
|
6673
|
-
|
|
6674
|
-
var
|
|
6675
|
-
var
|
|
6676
|
-
var
|
|
6677
|
-
var
|
|
6678
|
-
var
|
|
6679
|
-
var
|
|
6680
|
-
var
|
|
6681
|
-
var
|
|
6682
|
-
var
|
|
6683
|
-
var
|
|
6684
|
-
var
|
|
6685
|
-
var
|
|
6686
|
-
var
|
|
6687
|
-
var
|
|
6688
|
-
var
|
|
6689
|
-
var
|
|
6690
|
-
var
|
|
6691
|
-
var
|
|
6692
|
-
var
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
var
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6700
|
-
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
this.stream = stream;
|
|
6751
|
-
this.handler = handler;
|
|
6708
|
+
// ../../node_modules/.pnpm/pako@2.1.0/node_modules/pako/dist/pako.esm.mjs
|
|
6709
|
+
var Z_FIXED$1 = 4;
|
|
6710
|
+
var Z_BINARY = 0;
|
|
6711
|
+
var Z_TEXT = 1;
|
|
6712
|
+
var Z_UNKNOWN$1 = 2;
|
|
6713
|
+
function zero$1(buf) {
|
|
6714
|
+
let len = buf.length;
|
|
6715
|
+
while (--len >= 0) {
|
|
6716
|
+
buf[len] = 0;
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6719
|
+
var STORED_BLOCK = 0;
|
|
6720
|
+
var STATIC_TREES = 1;
|
|
6721
|
+
var DYN_TREES = 2;
|
|
6722
|
+
var MIN_MATCH$1 = 3;
|
|
6723
|
+
var MAX_MATCH$1 = 258;
|
|
6724
|
+
var LENGTH_CODES$1 = 29;
|
|
6725
|
+
var LITERALS$1 = 256;
|
|
6726
|
+
var L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
|
|
6727
|
+
var D_CODES$1 = 30;
|
|
6728
|
+
var BL_CODES$1 = 19;
|
|
6729
|
+
var HEAP_SIZE$1 = 2 * L_CODES$1 + 1;
|
|
6730
|
+
var MAX_BITS$1 = 15;
|
|
6731
|
+
var Buf_size = 16;
|
|
6732
|
+
var MAX_BL_BITS = 7;
|
|
6733
|
+
var END_BLOCK = 256;
|
|
6734
|
+
var REP_3_6 = 16;
|
|
6735
|
+
var REPZ_3_10 = 17;
|
|
6736
|
+
var REPZ_11_138 = 18;
|
|
6737
|
+
var extra_lbits = (
|
|
6738
|
+
/* extra bits for each length code */
|
|
6739
|
+
new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0])
|
|
6740
|
+
);
|
|
6741
|
+
var extra_dbits = (
|
|
6742
|
+
/* extra bits for each distance code */
|
|
6743
|
+
new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13])
|
|
6744
|
+
);
|
|
6745
|
+
var extra_blbits = (
|
|
6746
|
+
/* extra bits for each bit length code */
|
|
6747
|
+
new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7])
|
|
6748
|
+
);
|
|
6749
|
+
var bl_order = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
6750
|
+
var DIST_CODE_LEN = 512;
|
|
6751
|
+
var static_ltree = new Array((L_CODES$1 + 2) * 2);
|
|
6752
|
+
zero$1(static_ltree);
|
|
6753
|
+
var static_dtree = new Array(D_CODES$1 * 2);
|
|
6754
|
+
zero$1(static_dtree);
|
|
6755
|
+
var _dist_code = new Array(DIST_CODE_LEN);
|
|
6756
|
+
zero$1(_dist_code);
|
|
6757
|
+
var _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
|
|
6758
|
+
zero$1(_length_code);
|
|
6759
|
+
var base_length = new Array(LENGTH_CODES$1);
|
|
6760
|
+
zero$1(base_length);
|
|
6761
|
+
var base_dist = new Array(D_CODES$1);
|
|
6762
|
+
zero$1(base_dist);
|
|
6763
|
+
function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
|
|
6764
|
+
this.static_tree = static_tree;
|
|
6765
|
+
this.extra_bits = extra_bits;
|
|
6766
|
+
this.extra_base = extra_base;
|
|
6767
|
+
this.elems = elems;
|
|
6768
|
+
this.max_length = max_length;
|
|
6769
|
+
this.has_stree = static_tree && static_tree.length;
|
|
6770
|
+
}
|
|
6771
|
+
var static_l_desc;
|
|
6772
|
+
var static_d_desc;
|
|
6773
|
+
var static_bl_desc;
|
|
6774
|
+
function TreeDesc(dyn_tree, stat_desc) {
|
|
6775
|
+
this.dyn_tree = dyn_tree;
|
|
6776
|
+
this.max_code = 0;
|
|
6777
|
+
this.stat_desc = stat_desc;
|
|
6778
|
+
}
|
|
6779
|
+
var d_code = (dist) => {
|
|
6780
|
+
return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
|
|
6781
|
+
};
|
|
6782
|
+
var put_short = (s, w) => {
|
|
6783
|
+
s.pending_buf[s.pending++] = w & 255;
|
|
6784
|
+
s.pending_buf[s.pending++] = w >>> 8 & 255;
|
|
6785
|
+
};
|
|
6786
|
+
var send_bits = (s, value, length) => {
|
|
6787
|
+
if (s.bi_valid > Buf_size - length) {
|
|
6788
|
+
s.bi_buf |= value << s.bi_valid & 65535;
|
|
6789
|
+
put_short(s, s.bi_buf);
|
|
6790
|
+
s.bi_buf = value >> Buf_size - s.bi_valid;
|
|
6791
|
+
s.bi_valid += length - Buf_size;
|
|
6792
|
+
} else {
|
|
6793
|
+
s.bi_buf |= value << s.bi_valid & 65535;
|
|
6794
|
+
s.bi_valid += length;
|
|
6752
6795
|
}
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6796
|
+
};
|
|
6797
|
+
var send_code = (s, c, tree) => {
|
|
6798
|
+
send_bits(
|
|
6799
|
+
s,
|
|
6800
|
+
tree[c * 2],
|
|
6801
|
+
tree[c * 2 + 1]
|
|
6802
|
+
/*.Len*/
|
|
6803
|
+
);
|
|
6804
|
+
};
|
|
6805
|
+
var bi_reverse = (code, len) => {
|
|
6806
|
+
let res = 0;
|
|
6807
|
+
do {
|
|
6808
|
+
res |= code & 1;
|
|
6809
|
+
code >>>= 1;
|
|
6810
|
+
res <<= 1;
|
|
6811
|
+
} while (--len > 0);
|
|
6812
|
+
return res >>> 1;
|
|
6813
|
+
};
|
|
6814
|
+
var bi_flush = (s) => {
|
|
6815
|
+
if (s.bi_valid === 16) {
|
|
6816
|
+
put_short(s, s.bi_buf);
|
|
6817
|
+
s.bi_buf = 0;
|
|
6818
|
+
s.bi_valid = 0;
|
|
6819
|
+
} else if (s.bi_valid >= 8) {
|
|
6820
|
+
s.pending_buf[s.pending++] = s.bi_buf & 255;
|
|
6821
|
+
s.bi_buf >>= 8;
|
|
6822
|
+
s.bi_valid -= 8;
|
|
6823
|
+
}
|
|
6824
|
+
};
|
|
6825
|
+
var gen_bitlen = (s, desc) => {
|
|
6826
|
+
const tree = desc.dyn_tree;
|
|
6827
|
+
const max_code = desc.max_code;
|
|
6828
|
+
const stree = desc.stat_desc.static_tree;
|
|
6829
|
+
const has_stree = desc.stat_desc.has_stree;
|
|
6830
|
+
const extra = desc.stat_desc.extra_bits;
|
|
6831
|
+
const base = desc.stat_desc.extra_base;
|
|
6832
|
+
const max_length = desc.stat_desc.max_length;
|
|
6833
|
+
let h;
|
|
6834
|
+
let n, m;
|
|
6835
|
+
let bits;
|
|
6836
|
+
let xbits;
|
|
6837
|
+
let f;
|
|
6838
|
+
let overflow = 0;
|
|
6839
|
+
for (bits = 0; bits <= MAX_BITS$1; bits++) {
|
|
6840
|
+
s.bl_count[bits] = 0;
|
|
6841
|
+
}
|
|
6842
|
+
tree[s.heap[s.heap_max] * 2 + 1] = 0;
|
|
6843
|
+
for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {
|
|
6844
|
+
n = s.heap[h];
|
|
6845
|
+
bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
|
|
6846
|
+
if (bits > max_length) {
|
|
6847
|
+
bits = max_length;
|
|
6848
|
+
overflow++;
|
|
6849
|
+
}
|
|
6850
|
+
tree[n * 2 + 1] = bits;
|
|
6851
|
+
if (n > max_code) {
|
|
6852
|
+
continue;
|
|
6757
6853
|
}
|
|
6758
|
-
|
|
6759
|
-
|
|
6760
|
-
|
|
6761
|
-
|
|
6762
|
-
if (cmd === 3) return ServerCommand.sound;
|
|
6763
|
-
if (cmd === 4) return ServerCommand.nop;
|
|
6764
|
-
if (cmd === 5) return ServerCommand.disconnect;
|
|
6765
|
-
if (cmd === 6) return ServerCommand.reconnect;
|
|
6766
|
-
if (cmd === 16) return ServerCommand.temp_entity;
|
|
6854
|
+
s.bl_count[bits]++;
|
|
6855
|
+
xbits = 0;
|
|
6856
|
+
if (n >= base) {
|
|
6857
|
+
xbits = extra[n - base];
|
|
6767
6858
|
}
|
|
6768
|
-
|
|
6769
|
-
|
|
6859
|
+
f = tree[n * 2];
|
|
6860
|
+
s.opt_len += f * (bits + xbits);
|
|
6861
|
+
if (has_stree) {
|
|
6862
|
+
s.static_len += f * (stree[n * 2 + 1] + xbits);
|
|
6770
6863
|
}
|
|
6771
|
-
return cmd;
|
|
6772
6864
|
}
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
|
|
6865
|
+
if (overflow === 0) {
|
|
6866
|
+
return;
|
|
6867
|
+
}
|
|
6868
|
+
do {
|
|
6869
|
+
bits = max_length - 1;
|
|
6870
|
+
while (s.bl_count[bits] === 0) {
|
|
6871
|
+
bits--;
|
|
6872
|
+
}
|
|
6873
|
+
s.bl_count[bits]--;
|
|
6874
|
+
s.bl_count[bits + 1] += 2;
|
|
6875
|
+
s.bl_count[max_length]--;
|
|
6876
|
+
overflow -= 2;
|
|
6877
|
+
} while (overflow > 0);
|
|
6878
|
+
for (bits = max_length; bits !== 0; bits--) {
|
|
6879
|
+
n = s.bl_count[bits];
|
|
6880
|
+
while (n !== 0) {
|
|
6881
|
+
m = s.heap[--h];
|
|
6882
|
+
if (m > max_code) {
|
|
6883
|
+
continue;
|
|
6778
6884
|
}
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
switch (cmd) {
|
|
6783
|
-
case ServerCommand.nop:
|
|
6784
|
-
break;
|
|
6785
|
-
case ServerCommand.disconnect:
|
|
6786
|
-
if (this.handler && this.handler.onDisconnect) this.handler.onDisconnect();
|
|
6787
|
-
break;
|
|
6788
|
-
case ServerCommand.reconnect:
|
|
6789
|
-
if (this.handler && this.handler.onReconnect) this.handler.onReconnect();
|
|
6790
|
-
break;
|
|
6791
|
-
case ServerCommand.print:
|
|
6792
|
-
this.parsePrint();
|
|
6793
|
-
break;
|
|
6794
|
-
case ServerCommand.serverdata:
|
|
6795
|
-
this.parseServerData();
|
|
6796
|
-
break;
|
|
6797
|
-
case ServerCommand.configstring:
|
|
6798
|
-
this.parseConfigString();
|
|
6799
|
-
break;
|
|
6800
|
-
case ServerCommand.spawnbaseline:
|
|
6801
|
-
this.parseSpawnBaseline();
|
|
6802
|
-
break;
|
|
6803
|
-
case ServerCommand.centerprint:
|
|
6804
|
-
this.parseCenterPrint();
|
|
6805
|
-
break;
|
|
6806
|
-
case ServerCommand.download:
|
|
6807
|
-
this.parseDownload();
|
|
6808
|
-
break;
|
|
6809
|
-
case ServerCommand.frame:
|
|
6810
|
-
this.parseFrame();
|
|
6811
|
-
break;
|
|
6812
|
-
case ServerCommand.packetentities:
|
|
6813
|
-
this.parsePacketEntities(false);
|
|
6814
|
-
break;
|
|
6815
|
-
case ServerCommand.deltapacketentities:
|
|
6816
|
-
this.parsePacketEntities(true);
|
|
6817
|
-
break;
|
|
6818
|
-
case ServerCommand.playerinfo:
|
|
6819
|
-
this.parsePlayerState();
|
|
6820
|
-
break;
|
|
6821
|
-
case ServerCommand.stufftext:
|
|
6822
|
-
this.parseStuffText();
|
|
6823
|
-
break;
|
|
6824
|
-
case ServerCommand.layout:
|
|
6825
|
-
this.parseLayout();
|
|
6826
|
-
break;
|
|
6827
|
-
case ServerCommand.inventory:
|
|
6828
|
-
this.parseInventory();
|
|
6829
|
-
break;
|
|
6830
|
-
case ServerCommand.sound:
|
|
6831
|
-
this.parseSound();
|
|
6832
|
-
break;
|
|
6833
|
-
case ServerCommand.muzzleflash:
|
|
6834
|
-
this.parseMuzzleFlash();
|
|
6835
|
-
break;
|
|
6836
|
-
case ServerCommand.muzzleflash2:
|
|
6837
|
-
this.parseMuzzleFlash2();
|
|
6838
|
-
break;
|
|
6839
|
-
case ServerCommand.temp_entity:
|
|
6840
|
-
this.parseTempEntity();
|
|
6841
|
-
break;
|
|
6842
|
-
// New Rerelease Commands
|
|
6843
|
-
case ServerCommand.splitclient:
|
|
6844
|
-
break;
|
|
6845
|
-
case ServerCommand.configblast:
|
|
6846
|
-
break;
|
|
6847
|
-
case ServerCommand.spawnbaselineblast:
|
|
6848
|
-
break;
|
|
6849
|
-
case ServerCommand.level_restart:
|
|
6850
|
-
if (this.handler && this.handler.onLevelRestart) this.handler.onLevelRestart();
|
|
6851
|
-
break;
|
|
6852
|
-
case ServerCommand.damage:
|
|
6853
|
-
this.parseDamage();
|
|
6854
|
-
break;
|
|
6855
|
-
case ServerCommand.locprint:
|
|
6856
|
-
break;
|
|
6857
|
-
case ServerCommand.fog:
|
|
6858
|
-
this.parseFog();
|
|
6859
|
-
break;
|
|
6860
|
-
case ServerCommand.waitingforplayers:
|
|
6861
|
-
if (this.handler && this.handler.onWaitingForPlayers) this.handler.onWaitingForPlayers();
|
|
6862
|
-
break;
|
|
6863
|
-
case ServerCommand.bot_chat:
|
|
6864
|
-
break;
|
|
6865
|
-
case ServerCommand.poi:
|
|
6866
|
-
break;
|
|
6867
|
-
case ServerCommand.help_path:
|
|
6868
|
-
break;
|
|
6869
|
-
case ServerCommand.muzzleflash3:
|
|
6870
|
-
this.parseMuzzleFlash3();
|
|
6871
|
-
break;
|
|
6872
|
-
case ServerCommand.achievement:
|
|
6873
|
-
break;
|
|
6874
|
-
default:
|
|
6875
|
-
console.warn(`Unknown server command: ${originalCmd} (translated: ${cmd}) at offset ${this.stream.getPosition() - 1}`);
|
|
6876
|
-
return;
|
|
6877
|
-
}
|
|
6878
|
-
} catch (e) {
|
|
6879
|
-
console.warn(`Error parsing command ${cmd}: ${e.message}`);
|
|
6880
|
-
return;
|
|
6885
|
+
if (tree[m * 2 + 1] !== bits) {
|
|
6886
|
+
s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
|
|
6887
|
+
tree[m * 2 + 1] = bits;
|
|
6881
6888
|
}
|
|
6889
|
+
n--;
|
|
6882
6890
|
}
|
|
6883
6891
|
}
|
|
6884
|
-
|
|
6885
|
-
|
|
6886
|
-
|
|
6887
|
-
|
|
6888
|
-
|
|
6892
|
+
};
|
|
6893
|
+
var gen_codes = (tree, max_code, bl_count) => {
|
|
6894
|
+
const next_code = new Array(MAX_BITS$1 + 1);
|
|
6895
|
+
let code = 0;
|
|
6896
|
+
let bits;
|
|
6897
|
+
let n;
|
|
6898
|
+
for (bits = 1; bits <= MAX_BITS$1; bits++) {
|
|
6899
|
+
code = code + bl_count[bits - 1] << 1;
|
|
6900
|
+
next_code[bits] = code;
|
|
6901
|
+
}
|
|
6902
|
+
for (n = 0; n <= max_code; n++) {
|
|
6903
|
+
let len = tree[n * 2 + 1];
|
|
6904
|
+
if (len === 0) {
|
|
6905
|
+
continue;
|
|
6889
6906
|
}
|
|
6907
|
+
tree[n * 2] = bi_reverse(next_code[len]++, len);
|
|
6890
6908
|
}
|
|
6891
|
-
|
|
6892
|
-
|
|
6893
|
-
|
|
6894
|
-
|
|
6895
|
-
|
|
6909
|
+
};
|
|
6910
|
+
var tr_static_init = () => {
|
|
6911
|
+
let n;
|
|
6912
|
+
let bits;
|
|
6913
|
+
let length;
|
|
6914
|
+
let code;
|
|
6915
|
+
let dist;
|
|
6916
|
+
const bl_count = new Array(MAX_BITS$1 + 1);
|
|
6917
|
+
length = 0;
|
|
6918
|
+
for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
|
|
6919
|
+
base_length[code] = length;
|
|
6920
|
+
for (n = 0; n < 1 << extra_lbits[code]; n++) {
|
|
6921
|
+
_length_code[length++] = code;
|
|
6922
|
+
}
|
|
6923
|
+
}
|
|
6924
|
+
_length_code[length - 1] = code;
|
|
6925
|
+
dist = 0;
|
|
6926
|
+
for (code = 0; code < 16; code++) {
|
|
6927
|
+
base_dist[code] = dist;
|
|
6928
|
+
for (n = 0; n < 1 << extra_dbits[code]; n++) {
|
|
6929
|
+
_dist_code[dist++] = code;
|
|
6930
|
+
}
|
|
6931
|
+
}
|
|
6932
|
+
dist >>= 7;
|
|
6933
|
+
for (; code < D_CODES$1; code++) {
|
|
6934
|
+
base_dist[code] = dist << 7;
|
|
6935
|
+
for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
|
|
6936
|
+
_dist_code[256 + dist++] = code;
|
|
6937
|
+
}
|
|
6938
|
+
}
|
|
6939
|
+
for (bits = 0; bits <= MAX_BITS$1; bits++) {
|
|
6940
|
+
bl_count[bits] = 0;
|
|
6941
|
+
}
|
|
6942
|
+
n = 0;
|
|
6943
|
+
while (n <= 143) {
|
|
6944
|
+
static_ltree[n * 2 + 1] = 8;
|
|
6945
|
+
n++;
|
|
6946
|
+
bl_count[8]++;
|
|
6947
|
+
}
|
|
6948
|
+
while (n <= 255) {
|
|
6949
|
+
static_ltree[n * 2 + 1] = 9;
|
|
6950
|
+
n++;
|
|
6951
|
+
bl_count[9]++;
|
|
6952
|
+
}
|
|
6953
|
+
while (n <= 279) {
|
|
6954
|
+
static_ltree[n * 2 + 1] = 7;
|
|
6955
|
+
n++;
|
|
6956
|
+
bl_count[7]++;
|
|
6957
|
+
}
|
|
6958
|
+
while (n <= 287) {
|
|
6959
|
+
static_ltree[n * 2 + 1] = 8;
|
|
6960
|
+
n++;
|
|
6961
|
+
bl_count[8]++;
|
|
6962
|
+
}
|
|
6963
|
+
gen_codes(static_ltree, L_CODES$1 + 1, bl_count);
|
|
6964
|
+
for (n = 0; n < D_CODES$1; n++) {
|
|
6965
|
+
static_dtree[n * 2 + 1] = 5;
|
|
6966
|
+
static_dtree[n * 2] = bi_reverse(n, 5);
|
|
6967
|
+
}
|
|
6968
|
+
static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);
|
|
6969
|
+
static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);
|
|
6970
|
+
static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);
|
|
6971
|
+
};
|
|
6972
|
+
var init_block = (s) => {
|
|
6973
|
+
let n;
|
|
6974
|
+
for (n = 0; n < L_CODES$1; n++) {
|
|
6975
|
+
s.dyn_ltree[n * 2] = 0;
|
|
6896
6976
|
}
|
|
6897
|
-
|
|
6898
|
-
|
|
6899
|
-
if (this.handler) {
|
|
6900
|
-
this.handler.onLayout(layout);
|
|
6901
|
-
}
|
|
6977
|
+
for (n = 0; n < D_CODES$1; n++) {
|
|
6978
|
+
s.dyn_dtree[n * 2] = 0;
|
|
6902
6979
|
}
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
|
|
6980
|
+
for (n = 0; n < BL_CODES$1; n++) {
|
|
6981
|
+
s.bl_tree[n * 2] = 0;
|
|
6982
|
+
}
|
|
6983
|
+
s.dyn_ltree[END_BLOCK * 2] = 1;
|
|
6984
|
+
s.opt_len = s.static_len = 0;
|
|
6985
|
+
s.sym_next = s.matches = 0;
|
|
6986
|
+
};
|
|
6987
|
+
var bi_windup = (s) => {
|
|
6988
|
+
if (s.bi_valid > 8) {
|
|
6989
|
+
put_short(s, s.bi_buf);
|
|
6990
|
+
} else if (s.bi_valid > 0) {
|
|
6991
|
+
s.pending_buf[s.pending++] = s.bi_buf;
|
|
6992
|
+
}
|
|
6993
|
+
s.bi_buf = 0;
|
|
6994
|
+
s.bi_valid = 0;
|
|
6995
|
+
};
|
|
6996
|
+
var smaller = (tree, n, m, depth) => {
|
|
6997
|
+
const _n2 = n * 2;
|
|
6998
|
+
const _m2 = m * 2;
|
|
6999
|
+
return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
|
|
7000
|
+
};
|
|
7001
|
+
var pqdownheap = (s, tree, k) => {
|
|
7002
|
+
const v = s.heap[k];
|
|
7003
|
+
let j = k << 1;
|
|
7004
|
+
while (j <= s.heap_len) {
|
|
7005
|
+
if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
|
|
7006
|
+
j++;
|
|
7007
|
+
}
|
|
7008
|
+
if (smaller(tree, v, s.heap[j], s.depth)) {
|
|
7009
|
+
break;
|
|
7010
|
+
}
|
|
7011
|
+
s.heap[k] = s.heap[j];
|
|
7012
|
+
k = j;
|
|
7013
|
+
j <<= 1;
|
|
7014
|
+
}
|
|
7015
|
+
s.heap[k] = v;
|
|
7016
|
+
};
|
|
7017
|
+
var compress_block = (s, ltree, dtree) => {
|
|
7018
|
+
let dist;
|
|
7019
|
+
let lc;
|
|
7020
|
+
let sx = 0;
|
|
7021
|
+
let code;
|
|
7022
|
+
let extra;
|
|
7023
|
+
if (s.sym_next !== 0) {
|
|
7024
|
+
do {
|
|
7025
|
+
dist = s.pending_buf[s.sym_buf + sx++] & 255;
|
|
7026
|
+
dist += (s.pending_buf[s.sym_buf + sx++] & 255) << 8;
|
|
7027
|
+
lc = s.pending_buf[s.sym_buf + sx++];
|
|
7028
|
+
if (dist === 0) {
|
|
7029
|
+
send_code(s, lc, ltree);
|
|
7030
|
+
} else {
|
|
7031
|
+
code = _length_code[lc];
|
|
7032
|
+
send_code(s, code + LITERALS$1 + 1, ltree);
|
|
7033
|
+
extra = extra_lbits[code];
|
|
7034
|
+
if (extra !== 0) {
|
|
7035
|
+
lc -= base_length[code];
|
|
7036
|
+
send_bits(s, lc, extra);
|
|
7037
|
+
}
|
|
7038
|
+
dist--;
|
|
7039
|
+
code = d_code(dist);
|
|
7040
|
+
send_code(s, code, dtree);
|
|
7041
|
+
extra = extra_dbits[code];
|
|
7042
|
+
if (extra !== 0) {
|
|
7043
|
+
dist -= base_dist[code];
|
|
7044
|
+
send_bits(s, dist, extra);
|
|
7045
|
+
}
|
|
7046
|
+
}
|
|
7047
|
+
} while (sx < s.sym_next);
|
|
7048
|
+
}
|
|
7049
|
+
send_code(s, END_BLOCK, ltree);
|
|
7050
|
+
};
|
|
7051
|
+
var build_tree = (s, desc) => {
|
|
7052
|
+
const tree = desc.dyn_tree;
|
|
7053
|
+
const stree = desc.stat_desc.static_tree;
|
|
7054
|
+
const has_stree = desc.stat_desc.has_stree;
|
|
7055
|
+
const elems = desc.stat_desc.elems;
|
|
7056
|
+
let n, m;
|
|
7057
|
+
let max_code = -1;
|
|
7058
|
+
let node;
|
|
7059
|
+
s.heap_len = 0;
|
|
7060
|
+
s.heap_max = HEAP_SIZE$1;
|
|
7061
|
+
for (n = 0; n < elems; n++) {
|
|
7062
|
+
if (tree[n * 2] !== 0) {
|
|
7063
|
+
s.heap[++s.heap_len] = max_code = n;
|
|
7064
|
+
s.depth[n] = 0;
|
|
7065
|
+
} else {
|
|
7066
|
+
tree[n * 2 + 1] = 0;
|
|
7067
|
+
}
|
|
7068
|
+
}
|
|
7069
|
+
while (s.heap_len < 2) {
|
|
7070
|
+
node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
|
|
7071
|
+
tree[node * 2] = 1;
|
|
7072
|
+
s.depth[node] = 0;
|
|
7073
|
+
s.opt_len--;
|
|
7074
|
+
if (has_stree) {
|
|
7075
|
+
s.static_len -= stree[node * 2 + 1];
|
|
7076
|
+
}
|
|
7077
|
+
}
|
|
7078
|
+
desc.max_code = max_code;
|
|
7079
|
+
for (n = s.heap_len >> 1; n >= 1; n--) {
|
|
7080
|
+
pqdownheap(s, tree, n);
|
|
7081
|
+
}
|
|
7082
|
+
node = elems;
|
|
7083
|
+
do {
|
|
7084
|
+
n = s.heap[
|
|
7085
|
+
1
|
|
7086
|
+
/*SMALLEST*/
|
|
7087
|
+
];
|
|
7088
|
+
s.heap[
|
|
7089
|
+
1
|
|
7090
|
+
/*SMALLEST*/
|
|
7091
|
+
] = s.heap[s.heap_len--];
|
|
7092
|
+
pqdownheap(
|
|
7093
|
+
s,
|
|
7094
|
+
tree,
|
|
7095
|
+
1
|
|
7096
|
+
/*SMALLEST*/
|
|
7097
|
+
);
|
|
7098
|
+
m = s.heap[
|
|
7099
|
+
1
|
|
7100
|
+
/*SMALLEST*/
|
|
7101
|
+
];
|
|
7102
|
+
s.heap[--s.heap_max] = n;
|
|
7103
|
+
s.heap[--s.heap_max] = m;
|
|
7104
|
+
tree[node * 2] = tree[n * 2] + tree[m * 2];
|
|
7105
|
+
s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
|
|
7106
|
+
tree[n * 2 + 1] = tree[m * 2 + 1] = node;
|
|
7107
|
+
s.heap[
|
|
7108
|
+
1
|
|
7109
|
+
/*SMALLEST*/
|
|
7110
|
+
] = node++;
|
|
7111
|
+
pqdownheap(
|
|
7112
|
+
s,
|
|
7113
|
+
tree,
|
|
7114
|
+
1
|
|
7115
|
+
/*SMALLEST*/
|
|
7116
|
+
);
|
|
7117
|
+
} while (s.heap_len >= 2);
|
|
7118
|
+
s.heap[--s.heap_max] = s.heap[
|
|
7119
|
+
1
|
|
7120
|
+
/*SMALLEST*/
|
|
7121
|
+
];
|
|
7122
|
+
gen_bitlen(s, desc);
|
|
7123
|
+
gen_codes(tree, max_code, s.bl_count);
|
|
7124
|
+
};
|
|
7125
|
+
var scan_tree = (s, tree, max_code) => {
|
|
7126
|
+
let n;
|
|
7127
|
+
let prevlen = -1;
|
|
7128
|
+
let curlen;
|
|
7129
|
+
let nextlen = tree[0 * 2 + 1];
|
|
7130
|
+
let count = 0;
|
|
7131
|
+
let max_count = 7;
|
|
7132
|
+
let min_count = 4;
|
|
7133
|
+
if (nextlen === 0) {
|
|
7134
|
+
max_count = 138;
|
|
7135
|
+
min_count = 3;
|
|
7136
|
+
}
|
|
7137
|
+
tree[(max_code + 1) * 2 + 1] = 65535;
|
|
7138
|
+
for (n = 0; n <= max_code; n++) {
|
|
7139
|
+
curlen = nextlen;
|
|
7140
|
+
nextlen = tree[(n + 1) * 2 + 1];
|
|
7141
|
+
if (++count < max_count && curlen === nextlen) {
|
|
7142
|
+
continue;
|
|
7143
|
+
} else if (count < min_count) {
|
|
7144
|
+
s.bl_tree[curlen * 2] += count;
|
|
7145
|
+
} else if (curlen !== 0) {
|
|
7146
|
+
if (curlen !== prevlen) {
|
|
7147
|
+
s.bl_tree[curlen * 2]++;
|
|
7148
|
+
}
|
|
7149
|
+
s.bl_tree[REP_3_6 * 2]++;
|
|
7150
|
+
} else if (count <= 10) {
|
|
7151
|
+
s.bl_tree[REPZ_3_10 * 2]++;
|
|
7152
|
+
} else {
|
|
7153
|
+
s.bl_tree[REPZ_11_138 * 2]++;
|
|
7154
|
+
}
|
|
7155
|
+
count = 0;
|
|
7156
|
+
prevlen = curlen;
|
|
7157
|
+
if (nextlen === 0) {
|
|
7158
|
+
max_count = 138;
|
|
7159
|
+
min_count = 3;
|
|
7160
|
+
} else if (curlen === nextlen) {
|
|
7161
|
+
max_count = 6;
|
|
7162
|
+
min_count = 3;
|
|
7163
|
+
} else {
|
|
7164
|
+
max_count = 7;
|
|
7165
|
+
min_count = 4;
|
|
7166
|
+
}
|
|
7167
|
+
}
|
|
7168
|
+
};
|
|
7169
|
+
var send_tree = (s, tree, max_code) => {
|
|
7170
|
+
let n;
|
|
7171
|
+
let prevlen = -1;
|
|
7172
|
+
let curlen;
|
|
7173
|
+
let nextlen = tree[0 * 2 + 1];
|
|
7174
|
+
let count = 0;
|
|
7175
|
+
let max_count = 7;
|
|
7176
|
+
let min_count = 4;
|
|
7177
|
+
if (nextlen === 0) {
|
|
7178
|
+
max_count = 138;
|
|
7179
|
+
min_count = 3;
|
|
7180
|
+
}
|
|
7181
|
+
for (n = 0; n <= max_code; n++) {
|
|
7182
|
+
curlen = nextlen;
|
|
7183
|
+
nextlen = tree[(n + 1) * 2 + 1];
|
|
7184
|
+
if (++count < max_count && curlen === nextlen) {
|
|
7185
|
+
continue;
|
|
7186
|
+
} else if (count < min_count) {
|
|
7187
|
+
do {
|
|
7188
|
+
send_code(s, curlen, s.bl_tree);
|
|
7189
|
+
} while (--count !== 0);
|
|
7190
|
+
} else if (curlen !== 0) {
|
|
7191
|
+
if (curlen !== prevlen) {
|
|
7192
|
+
send_code(s, curlen, s.bl_tree);
|
|
7193
|
+
count--;
|
|
7194
|
+
}
|
|
7195
|
+
send_code(s, REP_3_6, s.bl_tree);
|
|
7196
|
+
send_bits(s, count - 3, 2);
|
|
7197
|
+
} else if (count <= 10) {
|
|
7198
|
+
send_code(s, REPZ_3_10, s.bl_tree);
|
|
7199
|
+
send_bits(s, count - 3, 3);
|
|
7200
|
+
} else {
|
|
7201
|
+
send_code(s, REPZ_11_138, s.bl_tree);
|
|
7202
|
+
send_bits(s, count - 11, 7);
|
|
7203
|
+
}
|
|
7204
|
+
count = 0;
|
|
7205
|
+
prevlen = curlen;
|
|
7206
|
+
if (nextlen === 0) {
|
|
7207
|
+
max_count = 138;
|
|
7208
|
+
min_count = 3;
|
|
7209
|
+
} else if (curlen === nextlen) {
|
|
7210
|
+
max_count = 6;
|
|
7211
|
+
min_count = 3;
|
|
7212
|
+
} else {
|
|
7213
|
+
max_count = 7;
|
|
7214
|
+
min_count = 4;
|
|
7215
|
+
}
|
|
7216
|
+
}
|
|
7217
|
+
};
|
|
7218
|
+
var build_bl_tree = (s) => {
|
|
7219
|
+
let max_blindex;
|
|
7220
|
+
scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
|
|
7221
|
+
scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
|
|
7222
|
+
build_tree(s, s.bl_desc);
|
|
7223
|
+
for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {
|
|
7224
|
+
if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) {
|
|
7225
|
+
break;
|
|
7226
|
+
}
|
|
7227
|
+
}
|
|
7228
|
+
s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
|
|
7229
|
+
return max_blindex;
|
|
7230
|
+
};
|
|
7231
|
+
var send_all_trees = (s, lcodes, dcodes, blcodes) => {
|
|
7232
|
+
let rank2;
|
|
7233
|
+
send_bits(s, lcodes - 257, 5);
|
|
7234
|
+
send_bits(s, dcodes - 1, 5);
|
|
7235
|
+
send_bits(s, blcodes - 4, 4);
|
|
7236
|
+
for (rank2 = 0; rank2 < blcodes; rank2++) {
|
|
7237
|
+
send_bits(s, s.bl_tree[bl_order[rank2] * 2 + 1], 3);
|
|
7238
|
+
}
|
|
7239
|
+
send_tree(s, s.dyn_ltree, lcodes - 1);
|
|
7240
|
+
send_tree(s, s.dyn_dtree, dcodes - 1);
|
|
7241
|
+
};
|
|
7242
|
+
var detect_data_type = (s) => {
|
|
7243
|
+
let block_mask = 4093624447;
|
|
7244
|
+
let n;
|
|
7245
|
+
for (n = 0; n <= 31; n++, block_mask >>>= 1) {
|
|
7246
|
+
if (block_mask & 1 && s.dyn_ltree[n * 2] !== 0) {
|
|
7247
|
+
return Z_BINARY;
|
|
7248
|
+
}
|
|
7249
|
+
}
|
|
7250
|
+
if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) {
|
|
7251
|
+
return Z_TEXT;
|
|
7252
|
+
}
|
|
7253
|
+
for (n = 32; n < LITERALS$1; n++) {
|
|
7254
|
+
if (s.dyn_ltree[n * 2] !== 0) {
|
|
7255
|
+
return Z_TEXT;
|
|
7256
|
+
}
|
|
7257
|
+
}
|
|
7258
|
+
return Z_BINARY;
|
|
7259
|
+
};
|
|
7260
|
+
var static_init_done = false;
|
|
7261
|
+
var _tr_init$1 = (s) => {
|
|
7262
|
+
if (!static_init_done) {
|
|
7263
|
+
tr_static_init();
|
|
7264
|
+
static_init_done = true;
|
|
7265
|
+
}
|
|
7266
|
+
s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
|
|
7267
|
+
s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
|
|
7268
|
+
s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
|
|
7269
|
+
s.bi_buf = 0;
|
|
7270
|
+
s.bi_valid = 0;
|
|
7271
|
+
init_block(s);
|
|
7272
|
+
};
|
|
7273
|
+
var _tr_stored_block$1 = (s, buf, stored_len, last) => {
|
|
7274
|
+
send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
|
|
7275
|
+
bi_windup(s);
|
|
7276
|
+
put_short(s, stored_len);
|
|
7277
|
+
put_short(s, ~stored_len);
|
|
7278
|
+
if (stored_len) {
|
|
7279
|
+
s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);
|
|
7280
|
+
}
|
|
7281
|
+
s.pending += stored_len;
|
|
7282
|
+
};
|
|
7283
|
+
var _tr_align$1 = (s) => {
|
|
7284
|
+
send_bits(s, STATIC_TREES << 1, 3);
|
|
7285
|
+
send_code(s, END_BLOCK, static_ltree);
|
|
7286
|
+
bi_flush(s);
|
|
7287
|
+
};
|
|
7288
|
+
var _tr_flush_block$1 = (s, buf, stored_len, last) => {
|
|
7289
|
+
let opt_lenb, static_lenb;
|
|
7290
|
+
let max_blindex = 0;
|
|
7291
|
+
if (s.level > 0) {
|
|
7292
|
+
if (s.strm.data_type === Z_UNKNOWN$1) {
|
|
7293
|
+
s.strm.data_type = detect_data_type(s);
|
|
7294
|
+
}
|
|
7295
|
+
build_tree(s, s.l_desc);
|
|
7296
|
+
build_tree(s, s.d_desc);
|
|
7297
|
+
max_blindex = build_bl_tree(s);
|
|
7298
|
+
opt_lenb = s.opt_len + 3 + 7 >>> 3;
|
|
7299
|
+
static_lenb = s.static_len + 3 + 7 >>> 3;
|
|
7300
|
+
if (static_lenb <= opt_lenb) {
|
|
7301
|
+
opt_lenb = static_lenb;
|
|
7302
|
+
}
|
|
7303
|
+
} else {
|
|
7304
|
+
opt_lenb = static_lenb = stored_len + 5;
|
|
7305
|
+
}
|
|
7306
|
+
if (stored_len + 4 <= opt_lenb && buf !== -1) {
|
|
7307
|
+
_tr_stored_block$1(s, buf, stored_len, last);
|
|
7308
|
+
} else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {
|
|
7309
|
+
send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
|
|
7310
|
+
compress_block(s, static_ltree, static_dtree);
|
|
7311
|
+
} else {
|
|
7312
|
+
send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
|
|
7313
|
+
send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
|
|
7314
|
+
compress_block(s, s.dyn_ltree, s.dyn_dtree);
|
|
7315
|
+
}
|
|
7316
|
+
init_block(s);
|
|
7317
|
+
if (last) {
|
|
7318
|
+
bi_windup(s);
|
|
7319
|
+
}
|
|
7320
|
+
};
|
|
7321
|
+
var _tr_tally$1 = (s, dist, lc) => {
|
|
7322
|
+
s.pending_buf[s.sym_buf + s.sym_next++] = dist;
|
|
7323
|
+
s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;
|
|
7324
|
+
s.pending_buf[s.sym_buf + s.sym_next++] = lc;
|
|
7325
|
+
if (dist === 0) {
|
|
7326
|
+
s.dyn_ltree[lc * 2]++;
|
|
7327
|
+
} else {
|
|
7328
|
+
s.matches++;
|
|
7329
|
+
dist--;
|
|
7330
|
+
s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]++;
|
|
7331
|
+
s.dyn_dtree[d_code(dist) * 2]++;
|
|
7332
|
+
}
|
|
7333
|
+
return s.sym_next === s.sym_end;
|
|
7334
|
+
};
|
|
7335
|
+
var _tr_init_1 = _tr_init$1;
|
|
7336
|
+
var _tr_stored_block_1 = _tr_stored_block$1;
|
|
7337
|
+
var _tr_flush_block_1 = _tr_flush_block$1;
|
|
7338
|
+
var _tr_tally_1 = _tr_tally$1;
|
|
7339
|
+
var _tr_align_1 = _tr_align$1;
|
|
7340
|
+
var trees = {
|
|
7341
|
+
_tr_init: _tr_init_1,
|
|
7342
|
+
_tr_stored_block: _tr_stored_block_1,
|
|
7343
|
+
_tr_flush_block: _tr_flush_block_1,
|
|
7344
|
+
_tr_tally: _tr_tally_1,
|
|
7345
|
+
_tr_align: _tr_align_1
|
|
7346
|
+
};
|
|
7347
|
+
var adler32 = (adler, buf, len, pos) => {
|
|
7348
|
+
let s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
|
|
7349
|
+
while (len !== 0) {
|
|
7350
|
+
n = len > 2e3 ? 2e3 : len;
|
|
7351
|
+
len -= n;
|
|
7352
|
+
do {
|
|
7353
|
+
s1 = s1 + buf[pos++] | 0;
|
|
7354
|
+
s2 = s2 + s1 | 0;
|
|
7355
|
+
} while (--n);
|
|
7356
|
+
s1 %= 65521;
|
|
7357
|
+
s2 %= 65521;
|
|
7358
|
+
}
|
|
7359
|
+
return s1 | s2 << 16 | 0;
|
|
7360
|
+
};
|
|
7361
|
+
var adler32_1 = adler32;
|
|
7362
|
+
var makeTable = () => {
|
|
7363
|
+
let c, table = [];
|
|
7364
|
+
for (var n = 0; n < 256; n++) {
|
|
7365
|
+
c = n;
|
|
7366
|
+
for (var k = 0; k < 8; k++) {
|
|
7367
|
+
c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
|
|
7368
|
+
}
|
|
7369
|
+
table[n] = c;
|
|
7370
|
+
}
|
|
7371
|
+
return table;
|
|
7372
|
+
};
|
|
7373
|
+
var crcTable = new Uint32Array(makeTable());
|
|
7374
|
+
var crc322 = (crc, buf, len, pos) => {
|
|
7375
|
+
const t = crcTable;
|
|
7376
|
+
const end = pos + len;
|
|
7377
|
+
crc ^= -1;
|
|
7378
|
+
for (let i = pos; i < end; i++) {
|
|
7379
|
+
crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
|
|
7380
|
+
}
|
|
7381
|
+
return crc ^ -1;
|
|
7382
|
+
};
|
|
7383
|
+
var crc32_1 = crc322;
|
|
7384
|
+
var messages = {
|
|
7385
|
+
2: "need dictionary",
|
|
7386
|
+
/* Z_NEED_DICT 2 */
|
|
7387
|
+
1: "stream end",
|
|
7388
|
+
/* Z_STREAM_END 1 */
|
|
7389
|
+
0: "",
|
|
7390
|
+
/* Z_OK 0 */
|
|
7391
|
+
"-1": "file error",
|
|
7392
|
+
/* Z_ERRNO (-1) */
|
|
7393
|
+
"-2": "stream error",
|
|
7394
|
+
/* Z_STREAM_ERROR (-2) */
|
|
7395
|
+
"-3": "data error",
|
|
7396
|
+
/* Z_DATA_ERROR (-3) */
|
|
7397
|
+
"-4": "insufficient memory",
|
|
7398
|
+
/* Z_MEM_ERROR (-4) */
|
|
7399
|
+
"-5": "buffer error",
|
|
7400
|
+
/* Z_BUF_ERROR (-5) */
|
|
7401
|
+
"-6": "incompatible version"
|
|
7402
|
+
/* Z_VERSION_ERROR (-6) */
|
|
7403
|
+
};
|
|
7404
|
+
var constants$2 = {
|
|
7405
|
+
/* Allowed flush values; see deflate() and inflate() below for details */
|
|
7406
|
+
Z_NO_FLUSH: 0,
|
|
7407
|
+
Z_PARTIAL_FLUSH: 1,
|
|
7408
|
+
Z_SYNC_FLUSH: 2,
|
|
7409
|
+
Z_FULL_FLUSH: 3,
|
|
7410
|
+
Z_FINISH: 4,
|
|
7411
|
+
Z_BLOCK: 5,
|
|
7412
|
+
Z_TREES: 6,
|
|
7413
|
+
/* Return codes for the compression/decompression functions. Negative values
|
|
7414
|
+
* are errors, positive values are used for special but normal events.
|
|
7415
|
+
*/
|
|
7416
|
+
Z_OK: 0,
|
|
7417
|
+
Z_STREAM_END: 1,
|
|
7418
|
+
Z_NEED_DICT: 2,
|
|
7419
|
+
Z_ERRNO: -1,
|
|
7420
|
+
Z_STREAM_ERROR: -2,
|
|
7421
|
+
Z_DATA_ERROR: -3,
|
|
7422
|
+
Z_MEM_ERROR: -4,
|
|
7423
|
+
Z_BUF_ERROR: -5,
|
|
7424
|
+
//Z_VERSION_ERROR: -6,
|
|
7425
|
+
/* compression levels */
|
|
7426
|
+
Z_NO_COMPRESSION: 0,
|
|
7427
|
+
Z_BEST_SPEED: 1,
|
|
7428
|
+
Z_BEST_COMPRESSION: 9,
|
|
7429
|
+
Z_DEFAULT_COMPRESSION: -1,
|
|
7430
|
+
Z_FILTERED: 1,
|
|
7431
|
+
Z_HUFFMAN_ONLY: 2,
|
|
7432
|
+
Z_RLE: 3,
|
|
7433
|
+
Z_FIXED: 4,
|
|
7434
|
+
Z_DEFAULT_STRATEGY: 0,
|
|
7435
|
+
/* Possible values of the data_type field (though see inflate()) */
|
|
7436
|
+
Z_BINARY: 0,
|
|
7437
|
+
Z_TEXT: 1,
|
|
7438
|
+
//Z_ASCII: 1, // = Z_TEXT (deprecated)
|
|
7439
|
+
Z_UNKNOWN: 2,
|
|
7440
|
+
/* The deflate compression method */
|
|
7441
|
+
Z_DEFLATED: 8
|
|
7442
|
+
//Z_NULL: null // Use -1 or null inline, depending on var type
|
|
7443
|
+
};
|
|
7444
|
+
var { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;
|
|
7445
|
+
var {
|
|
7446
|
+
Z_NO_FLUSH: Z_NO_FLUSH$2,
|
|
7447
|
+
Z_PARTIAL_FLUSH,
|
|
7448
|
+
Z_FULL_FLUSH: Z_FULL_FLUSH$1,
|
|
7449
|
+
Z_FINISH: Z_FINISH$3,
|
|
7450
|
+
Z_BLOCK: Z_BLOCK$1,
|
|
7451
|
+
Z_OK: Z_OK$3,
|
|
7452
|
+
Z_STREAM_END: Z_STREAM_END$3,
|
|
7453
|
+
Z_STREAM_ERROR: Z_STREAM_ERROR$2,
|
|
7454
|
+
Z_DATA_ERROR: Z_DATA_ERROR$2,
|
|
7455
|
+
Z_BUF_ERROR: Z_BUF_ERROR$1,
|
|
7456
|
+
Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,
|
|
7457
|
+
Z_FILTERED,
|
|
7458
|
+
Z_HUFFMAN_ONLY,
|
|
7459
|
+
Z_RLE,
|
|
7460
|
+
Z_FIXED,
|
|
7461
|
+
Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,
|
|
7462
|
+
Z_UNKNOWN,
|
|
7463
|
+
Z_DEFLATED: Z_DEFLATED$2
|
|
7464
|
+
} = constants$2;
|
|
7465
|
+
var MAX_MEM_LEVEL = 9;
|
|
7466
|
+
var MAX_WBITS$1 = 15;
|
|
7467
|
+
var DEF_MEM_LEVEL = 8;
|
|
7468
|
+
var LENGTH_CODES = 29;
|
|
7469
|
+
var LITERALS = 256;
|
|
7470
|
+
var L_CODES = LITERALS + 1 + LENGTH_CODES;
|
|
7471
|
+
var D_CODES = 30;
|
|
7472
|
+
var BL_CODES = 19;
|
|
7473
|
+
var HEAP_SIZE = 2 * L_CODES + 1;
|
|
7474
|
+
var MAX_BITS = 15;
|
|
7475
|
+
var MIN_MATCH = 3;
|
|
7476
|
+
var MAX_MATCH = 258;
|
|
7477
|
+
var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
|
|
7478
|
+
var PRESET_DICT = 32;
|
|
7479
|
+
var INIT_STATE = 42;
|
|
7480
|
+
var GZIP_STATE = 57;
|
|
7481
|
+
var EXTRA_STATE = 69;
|
|
7482
|
+
var NAME_STATE = 73;
|
|
7483
|
+
var COMMENT_STATE = 91;
|
|
7484
|
+
var HCRC_STATE = 103;
|
|
7485
|
+
var BUSY_STATE = 113;
|
|
7486
|
+
var FINISH_STATE = 666;
|
|
7487
|
+
var BS_NEED_MORE = 1;
|
|
7488
|
+
var BS_BLOCK_DONE = 2;
|
|
7489
|
+
var BS_FINISH_STARTED = 3;
|
|
7490
|
+
var BS_FINISH_DONE = 4;
|
|
7491
|
+
var OS_CODE = 3;
|
|
7492
|
+
var err = (strm, errorCode) => {
|
|
7493
|
+
strm.msg = messages[errorCode];
|
|
7494
|
+
return errorCode;
|
|
7495
|
+
};
|
|
7496
|
+
var rank = (f) => {
|
|
7497
|
+
return f * 2 - (f > 4 ? 9 : 0);
|
|
7498
|
+
};
|
|
7499
|
+
var zero = (buf) => {
|
|
7500
|
+
let len = buf.length;
|
|
7501
|
+
while (--len >= 0) {
|
|
7502
|
+
buf[len] = 0;
|
|
7503
|
+
}
|
|
7504
|
+
};
|
|
7505
|
+
var slide_hash = (s) => {
|
|
7506
|
+
let n, m;
|
|
7507
|
+
let p;
|
|
7508
|
+
let wsize = s.w_size;
|
|
7509
|
+
n = s.hash_size;
|
|
7510
|
+
p = n;
|
|
7511
|
+
do {
|
|
7512
|
+
m = s.head[--p];
|
|
7513
|
+
s.head[p] = m >= wsize ? m - wsize : 0;
|
|
7514
|
+
} while (--n);
|
|
7515
|
+
n = wsize;
|
|
7516
|
+
p = n;
|
|
7517
|
+
do {
|
|
7518
|
+
m = s.prev[--p];
|
|
7519
|
+
s.prev[p] = m >= wsize ? m - wsize : 0;
|
|
7520
|
+
} while (--n);
|
|
7521
|
+
};
|
|
7522
|
+
var HASH_ZLIB = (s, prev, data) => (prev << s.hash_shift ^ data) & s.hash_mask;
|
|
7523
|
+
var HASH = HASH_ZLIB;
|
|
7524
|
+
var flush_pending = (strm) => {
|
|
7525
|
+
const s = strm.state;
|
|
7526
|
+
let len = s.pending;
|
|
7527
|
+
if (len > strm.avail_out) {
|
|
7528
|
+
len = strm.avail_out;
|
|
7529
|
+
}
|
|
7530
|
+
if (len === 0) {
|
|
7531
|
+
return;
|
|
7532
|
+
}
|
|
7533
|
+
strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);
|
|
7534
|
+
strm.next_out += len;
|
|
7535
|
+
s.pending_out += len;
|
|
7536
|
+
strm.total_out += len;
|
|
7537
|
+
strm.avail_out -= len;
|
|
7538
|
+
s.pending -= len;
|
|
7539
|
+
if (s.pending === 0) {
|
|
7540
|
+
s.pending_out = 0;
|
|
7541
|
+
}
|
|
7542
|
+
};
|
|
7543
|
+
var flush_block_only = (s, last) => {
|
|
7544
|
+
_tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
|
|
7545
|
+
s.block_start = s.strstart;
|
|
7546
|
+
flush_pending(s.strm);
|
|
7547
|
+
};
|
|
7548
|
+
var put_byte = (s, b) => {
|
|
7549
|
+
s.pending_buf[s.pending++] = b;
|
|
7550
|
+
};
|
|
7551
|
+
var putShortMSB = (s, b) => {
|
|
7552
|
+
s.pending_buf[s.pending++] = b >>> 8 & 255;
|
|
7553
|
+
s.pending_buf[s.pending++] = b & 255;
|
|
7554
|
+
};
|
|
7555
|
+
var read_buf = (strm, buf, start, size) => {
|
|
7556
|
+
let len = strm.avail_in;
|
|
7557
|
+
if (len > size) {
|
|
7558
|
+
len = size;
|
|
7559
|
+
}
|
|
7560
|
+
if (len === 0) {
|
|
7561
|
+
return 0;
|
|
7562
|
+
}
|
|
7563
|
+
strm.avail_in -= len;
|
|
7564
|
+
buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);
|
|
7565
|
+
if (strm.state.wrap === 1) {
|
|
7566
|
+
strm.adler = adler32_1(strm.adler, buf, len, start);
|
|
7567
|
+
} else if (strm.state.wrap === 2) {
|
|
7568
|
+
strm.adler = crc32_1(strm.adler, buf, len, start);
|
|
7569
|
+
}
|
|
7570
|
+
strm.next_in += len;
|
|
7571
|
+
strm.total_in += len;
|
|
7572
|
+
return len;
|
|
7573
|
+
};
|
|
7574
|
+
var longest_match = (s, cur_match) => {
|
|
7575
|
+
let chain_length = s.max_chain_length;
|
|
7576
|
+
let scan = s.strstart;
|
|
7577
|
+
let match;
|
|
7578
|
+
let len;
|
|
7579
|
+
let best_len = s.prev_length;
|
|
7580
|
+
let nice_match = s.nice_match;
|
|
7581
|
+
const limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
|
|
7582
|
+
const _win = s.window;
|
|
7583
|
+
const wmask = s.w_mask;
|
|
7584
|
+
const prev = s.prev;
|
|
7585
|
+
const strend = s.strstart + MAX_MATCH;
|
|
7586
|
+
let scan_end1 = _win[scan + best_len - 1];
|
|
7587
|
+
let scan_end = _win[scan + best_len];
|
|
7588
|
+
if (s.prev_length >= s.good_match) {
|
|
7589
|
+
chain_length >>= 2;
|
|
7590
|
+
}
|
|
7591
|
+
if (nice_match > s.lookahead) {
|
|
7592
|
+
nice_match = s.lookahead;
|
|
7593
|
+
}
|
|
7594
|
+
do {
|
|
7595
|
+
match = cur_match;
|
|
7596
|
+
if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {
|
|
7597
|
+
continue;
|
|
7598
|
+
}
|
|
7599
|
+
scan += 2;
|
|
7600
|
+
match++;
|
|
7601
|
+
do {
|
|
7602
|
+
} 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);
|
|
7603
|
+
len = MAX_MATCH - (strend - scan);
|
|
7604
|
+
scan = strend - MAX_MATCH;
|
|
7605
|
+
if (len > best_len) {
|
|
7606
|
+
s.match_start = cur_match;
|
|
7607
|
+
best_len = len;
|
|
7608
|
+
if (len >= nice_match) {
|
|
7609
|
+
break;
|
|
7610
|
+
}
|
|
7611
|
+
scan_end1 = _win[scan + best_len - 1];
|
|
7612
|
+
scan_end = _win[scan + best_len];
|
|
7613
|
+
}
|
|
7614
|
+
} while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
|
|
7615
|
+
if (best_len <= s.lookahead) {
|
|
7616
|
+
return best_len;
|
|
7617
|
+
}
|
|
7618
|
+
return s.lookahead;
|
|
7619
|
+
};
|
|
7620
|
+
var fill_window = (s) => {
|
|
7621
|
+
const _w_size = s.w_size;
|
|
7622
|
+
let n, more, str;
|
|
7623
|
+
do {
|
|
7624
|
+
more = s.window_size - s.lookahead - s.strstart;
|
|
7625
|
+
if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
|
|
7626
|
+
s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);
|
|
7627
|
+
s.match_start -= _w_size;
|
|
7628
|
+
s.strstart -= _w_size;
|
|
7629
|
+
s.block_start -= _w_size;
|
|
7630
|
+
if (s.insert > s.strstart) {
|
|
7631
|
+
s.insert = s.strstart;
|
|
7632
|
+
}
|
|
7633
|
+
slide_hash(s);
|
|
7634
|
+
more += _w_size;
|
|
7635
|
+
}
|
|
7636
|
+
if (s.strm.avail_in === 0) {
|
|
7637
|
+
break;
|
|
7638
|
+
}
|
|
7639
|
+
n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
|
|
7640
|
+
s.lookahead += n;
|
|
7641
|
+
if (s.lookahead + s.insert >= MIN_MATCH) {
|
|
7642
|
+
str = s.strstart - s.insert;
|
|
7643
|
+
s.ins_h = s.window[str];
|
|
7644
|
+
s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);
|
|
7645
|
+
while (s.insert) {
|
|
7646
|
+
s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
|
|
7647
|
+
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
7648
|
+
s.head[s.ins_h] = str;
|
|
7649
|
+
str++;
|
|
7650
|
+
s.insert--;
|
|
7651
|
+
if (s.lookahead + s.insert < MIN_MATCH) {
|
|
7652
|
+
break;
|
|
7653
|
+
}
|
|
7654
|
+
}
|
|
7655
|
+
}
|
|
7656
|
+
} while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
|
|
7657
|
+
};
|
|
7658
|
+
var deflate_stored = (s, flush) => {
|
|
7659
|
+
let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;
|
|
7660
|
+
let len, left, have, last = 0;
|
|
7661
|
+
let used = s.strm.avail_in;
|
|
7662
|
+
do {
|
|
7663
|
+
len = 65535;
|
|
7664
|
+
have = s.bi_valid + 42 >> 3;
|
|
7665
|
+
if (s.strm.avail_out < have) {
|
|
7666
|
+
break;
|
|
7667
|
+
}
|
|
7668
|
+
have = s.strm.avail_out - have;
|
|
7669
|
+
left = s.strstart - s.block_start;
|
|
7670
|
+
if (len > left + s.strm.avail_in) {
|
|
7671
|
+
len = left + s.strm.avail_in;
|
|
7672
|
+
}
|
|
7673
|
+
if (len > have) {
|
|
7674
|
+
len = have;
|
|
7675
|
+
}
|
|
7676
|
+
if (len < min_block && (len === 0 && flush !== Z_FINISH$3 || flush === Z_NO_FLUSH$2 || len !== left + s.strm.avail_in)) {
|
|
7677
|
+
break;
|
|
7678
|
+
}
|
|
7679
|
+
last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0;
|
|
7680
|
+
_tr_stored_block(s, 0, 0, last);
|
|
7681
|
+
s.pending_buf[s.pending - 4] = len;
|
|
7682
|
+
s.pending_buf[s.pending - 3] = len >> 8;
|
|
7683
|
+
s.pending_buf[s.pending - 2] = ~len;
|
|
7684
|
+
s.pending_buf[s.pending - 1] = ~len >> 8;
|
|
7685
|
+
flush_pending(s.strm);
|
|
7686
|
+
if (left) {
|
|
7687
|
+
if (left > len) {
|
|
7688
|
+
left = len;
|
|
7689
|
+
}
|
|
7690
|
+
s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);
|
|
7691
|
+
s.strm.next_out += left;
|
|
7692
|
+
s.strm.avail_out -= left;
|
|
7693
|
+
s.strm.total_out += left;
|
|
7694
|
+
s.block_start += left;
|
|
7695
|
+
len -= left;
|
|
7696
|
+
}
|
|
7697
|
+
if (len) {
|
|
7698
|
+
read_buf(s.strm, s.strm.output, s.strm.next_out, len);
|
|
7699
|
+
s.strm.next_out += len;
|
|
7700
|
+
s.strm.avail_out -= len;
|
|
7701
|
+
s.strm.total_out += len;
|
|
7702
|
+
}
|
|
7703
|
+
} while (last === 0);
|
|
7704
|
+
used -= s.strm.avail_in;
|
|
7705
|
+
if (used) {
|
|
7706
|
+
if (used >= s.w_size) {
|
|
7707
|
+
s.matches = 2;
|
|
7708
|
+
s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);
|
|
7709
|
+
s.strstart = s.w_size;
|
|
7710
|
+
s.insert = s.strstart;
|
|
7711
|
+
} else {
|
|
7712
|
+
if (s.window_size - s.strstart <= used) {
|
|
7713
|
+
s.strstart -= s.w_size;
|
|
7714
|
+
s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
|
|
7715
|
+
if (s.matches < 2) {
|
|
7716
|
+
s.matches++;
|
|
7717
|
+
}
|
|
7718
|
+
if (s.insert > s.strstart) {
|
|
7719
|
+
s.insert = s.strstart;
|
|
7720
|
+
}
|
|
7721
|
+
}
|
|
7722
|
+
s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);
|
|
7723
|
+
s.strstart += used;
|
|
7724
|
+
s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;
|
|
7725
|
+
}
|
|
7726
|
+
s.block_start = s.strstart;
|
|
7727
|
+
}
|
|
7728
|
+
if (s.high_water < s.strstart) {
|
|
7729
|
+
s.high_water = s.strstart;
|
|
7730
|
+
}
|
|
7731
|
+
if (last) {
|
|
7732
|
+
return BS_FINISH_DONE;
|
|
7733
|
+
}
|
|
7734
|
+
if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 && s.strm.avail_in === 0 && s.strstart === s.block_start) {
|
|
7735
|
+
return BS_BLOCK_DONE;
|
|
7736
|
+
}
|
|
7737
|
+
have = s.window_size - s.strstart;
|
|
7738
|
+
if (s.strm.avail_in > have && s.block_start >= s.w_size) {
|
|
7739
|
+
s.block_start -= s.w_size;
|
|
7740
|
+
s.strstart -= s.w_size;
|
|
7741
|
+
s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
|
|
7742
|
+
if (s.matches < 2) {
|
|
7743
|
+
s.matches++;
|
|
7744
|
+
}
|
|
7745
|
+
have += s.w_size;
|
|
7746
|
+
if (s.insert > s.strstart) {
|
|
7747
|
+
s.insert = s.strstart;
|
|
7748
|
+
}
|
|
7749
|
+
}
|
|
7750
|
+
if (have > s.strm.avail_in) {
|
|
7751
|
+
have = s.strm.avail_in;
|
|
7752
|
+
}
|
|
7753
|
+
if (have) {
|
|
7754
|
+
read_buf(s.strm, s.window, s.strstart, have);
|
|
7755
|
+
s.strstart += have;
|
|
7756
|
+
s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;
|
|
7757
|
+
}
|
|
7758
|
+
if (s.high_water < s.strstart) {
|
|
7759
|
+
s.high_water = s.strstart;
|
|
7760
|
+
}
|
|
7761
|
+
have = s.bi_valid + 42 >> 3;
|
|
7762
|
+
have = s.pending_buf_size - have > 65535 ? 65535 : s.pending_buf_size - have;
|
|
7763
|
+
min_block = have > s.w_size ? s.w_size : have;
|
|
7764
|
+
left = s.strstart - s.block_start;
|
|
7765
|
+
if (left >= min_block || (left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 && s.strm.avail_in === 0 && left <= have) {
|
|
7766
|
+
len = left > have ? have : left;
|
|
7767
|
+
last = flush === Z_FINISH$3 && s.strm.avail_in === 0 && len === left ? 1 : 0;
|
|
7768
|
+
_tr_stored_block(s, s.block_start, len, last);
|
|
7769
|
+
s.block_start += len;
|
|
7770
|
+
flush_pending(s.strm);
|
|
7771
|
+
}
|
|
7772
|
+
return last ? BS_FINISH_STARTED : BS_NEED_MORE;
|
|
7773
|
+
};
|
|
7774
|
+
var deflate_fast = (s, flush) => {
|
|
7775
|
+
let hash_head;
|
|
7776
|
+
let bflush;
|
|
7777
|
+
for (; ; ) {
|
|
7778
|
+
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
7779
|
+
fill_window(s);
|
|
7780
|
+
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {
|
|
7781
|
+
return BS_NEED_MORE;
|
|
7782
|
+
}
|
|
7783
|
+
if (s.lookahead === 0) {
|
|
7784
|
+
break;
|
|
7785
|
+
}
|
|
7786
|
+
}
|
|
7787
|
+
hash_head = 0;
|
|
7788
|
+
if (s.lookahead >= MIN_MATCH) {
|
|
7789
|
+
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
7790
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
7791
|
+
s.head[s.ins_h] = s.strstart;
|
|
7792
|
+
}
|
|
7793
|
+
if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
|
|
7794
|
+
s.match_length = longest_match(s, hash_head);
|
|
7795
|
+
}
|
|
7796
|
+
if (s.match_length >= MIN_MATCH) {
|
|
7797
|
+
bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
|
|
7798
|
+
s.lookahead -= s.match_length;
|
|
7799
|
+
if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
|
|
7800
|
+
s.match_length--;
|
|
7801
|
+
do {
|
|
7802
|
+
s.strstart++;
|
|
7803
|
+
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
7804
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
7805
|
+
s.head[s.ins_h] = s.strstart;
|
|
7806
|
+
} while (--s.match_length !== 0);
|
|
7807
|
+
s.strstart++;
|
|
7808
|
+
} else {
|
|
7809
|
+
s.strstart += s.match_length;
|
|
7810
|
+
s.match_length = 0;
|
|
7811
|
+
s.ins_h = s.window[s.strstart];
|
|
7812
|
+
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);
|
|
7813
|
+
}
|
|
7814
|
+
} else {
|
|
7815
|
+
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
7816
|
+
s.lookahead--;
|
|
7817
|
+
s.strstart++;
|
|
7818
|
+
}
|
|
7819
|
+
if (bflush) {
|
|
7820
|
+
flush_block_only(s, false);
|
|
7821
|
+
if (s.strm.avail_out === 0) {
|
|
7822
|
+
return BS_NEED_MORE;
|
|
7823
|
+
}
|
|
7824
|
+
}
|
|
7825
|
+
}
|
|
7826
|
+
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
7827
|
+
if (flush === Z_FINISH$3) {
|
|
7828
|
+
flush_block_only(s, true);
|
|
7829
|
+
if (s.strm.avail_out === 0) {
|
|
7830
|
+
return BS_FINISH_STARTED;
|
|
7831
|
+
}
|
|
7832
|
+
return BS_FINISH_DONE;
|
|
7833
|
+
}
|
|
7834
|
+
if (s.sym_next) {
|
|
7835
|
+
flush_block_only(s, false);
|
|
7836
|
+
if (s.strm.avail_out === 0) {
|
|
7837
|
+
return BS_NEED_MORE;
|
|
7838
|
+
}
|
|
7839
|
+
}
|
|
7840
|
+
return BS_BLOCK_DONE;
|
|
7841
|
+
};
|
|
7842
|
+
var deflate_slow = (s, flush) => {
|
|
7843
|
+
let hash_head;
|
|
7844
|
+
let bflush;
|
|
7845
|
+
let max_insert;
|
|
7846
|
+
for (; ; ) {
|
|
7847
|
+
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
7848
|
+
fill_window(s);
|
|
7849
|
+
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {
|
|
7850
|
+
return BS_NEED_MORE;
|
|
7851
|
+
}
|
|
7852
|
+
if (s.lookahead === 0) {
|
|
7853
|
+
break;
|
|
7854
|
+
}
|
|
7855
|
+
}
|
|
7856
|
+
hash_head = 0;
|
|
7857
|
+
if (s.lookahead >= MIN_MATCH) {
|
|
7858
|
+
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
7859
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
7860
|
+
s.head[s.ins_h] = s.strstart;
|
|
7861
|
+
}
|
|
7862
|
+
s.prev_length = s.match_length;
|
|
7863
|
+
s.prev_match = s.match_start;
|
|
7864
|
+
s.match_length = MIN_MATCH - 1;
|
|
7865
|
+
if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
|
|
7866
|
+
s.match_length = longest_match(s, hash_head);
|
|
7867
|
+
if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) {
|
|
7868
|
+
s.match_length = MIN_MATCH - 1;
|
|
7869
|
+
}
|
|
7870
|
+
}
|
|
7871
|
+
if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
|
|
7872
|
+
max_insert = s.strstart + s.lookahead - MIN_MATCH;
|
|
7873
|
+
bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
|
|
7874
|
+
s.lookahead -= s.prev_length - 1;
|
|
7875
|
+
s.prev_length -= 2;
|
|
7876
|
+
do {
|
|
7877
|
+
if (++s.strstart <= max_insert) {
|
|
7878
|
+
s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
|
|
7879
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
7880
|
+
s.head[s.ins_h] = s.strstart;
|
|
7881
|
+
}
|
|
7882
|
+
} while (--s.prev_length !== 0);
|
|
7883
|
+
s.match_available = 0;
|
|
7884
|
+
s.match_length = MIN_MATCH - 1;
|
|
7885
|
+
s.strstart++;
|
|
7886
|
+
if (bflush) {
|
|
7887
|
+
flush_block_only(s, false);
|
|
7888
|
+
if (s.strm.avail_out === 0) {
|
|
7889
|
+
return BS_NEED_MORE;
|
|
7890
|
+
}
|
|
7891
|
+
}
|
|
7892
|
+
} else if (s.match_available) {
|
|
7893
|
+
bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
7894
|
+
if (bflush) {
|
|
7895
|
+
flush_block_only(s, false);
|
|
7896
|
+
}
|
|
7897
|
+
s.strstart++;
|
|
7898
|
+
s.lookahead--;
|
|
7899
|
+
if (s.strm.avail_out === 0) {
|
|
7900
|
+
return BS_NEED_MORE;
|
|
7901
|
+
}
|
|
7902
|
+
} else {
|
|
7903
|
+
s.match_available = 1;
|
|
7904
|
+
s.strstart++;
|
|
7905
|
+
s.lookahead--;
|
|
7906
|
+
}
|
|
7907
|
+
}
|
|
7908
|
+
if (s.match_available) {
|
|
7909
|
+
bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
7910
|
+
s.match_available = 0;
|
|
7911
|
+
}
|
|
7912
|
+
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
7913
|
+
if (flush === Z_FINISH$3) {
|
|
7914
|
+
flush_block_only(s, true);
|
|
7915
|
+
if (s.strm.avail_out === 0) {
|
|
7916
|
+
return BS_FINISH_STARTED;
|
|
7917
|
+
}
|
|
7918
|
+
return BS_FINISH_DONE;
|
|
7919
|
+
}
|
|
7920
|
+
if (s.sym_next) {
|
|
7921
|
+
flush_block_only(s, false);
|
|
7922
|
+
if (s.strm.avail_out === 0) {
|
|
7923
|
+
return BS_NEED_MORE;
|
|
7924
|
+
}
|
|
7925
|
+
}
|
|
7926
|
+
return BS_BLOCK_DONE;
|
|
7927
|
+
};
|
|
7928
|
+
var deflate_rle = (s, flush) => {
|
|
7929
|
+
let bflush;
|
|
7930
|
+
let prev;
|
|
7931
|
+
let scan, strend;
|
|
7932
|
+
const _win = s.window;
|
|
7933
|
+
for (; ; ) {
|
|
7934
|
+
if (s.lookahead <= MAX_MATCH) {
|
|
7935
|
+
fill_window(s);
|
|
7936
|
+
if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {
|
|
7937
|
+
return BS_NEED_MORE;
|
|
7938
|
+
}
|
|
7939
|
+
if (s.lookahead === 0) {
|
|
7940
|
+
break;
|
|
7941
|
+
}
|
|
7942
|
+
}
|
|
7943
|
+
s.match_length = 0;
|
|
7944
|
+
if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
|
|
7945
|
+
scan = s.strstart - 1;
|
|
7946
|
+
prev = _win[scan];
|
|
7947
|
+
if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
|
|
7948
|
+
strend = s.strstart + MAX_MATCH;
|
|
7949
|
+
do {
|
|
7950
|
+
} 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);
|
|
7951
|
+
s.match_length = MAX_MATCH - (strend - scan);
|
|
7952
|
+
if (s.match_length > s.lookahead) {
|
|
7953
|
+
s.match_length = s.lookahead;
|
|
7954
|
+
}
|
|
7955
|
+
}
|
|
7956
|
+
}
|
|
7957
|
+
if (s.match_length >= MIN_MATCH) {
|
|
7958
|
+
bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);
|
|
7959
|
+
s.lookahead -= s.match_length;
|
|
7960
|
+
s.strstart += s.match_length;
|
|
7961
|
+
s.match_length = 0;
|
|
7962
|
+
} else {
|
|
7963
|
+
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
7964
|
+
s.lookahead--;
|
|
7965
|
+
s.strstart++;
|
|
7966
|
+
}
|
|
7967
|
+
if (bflush) {
|
|
7968
|
+
flush_block_only(s, false);
|
|
7969
|
+
if (s.strm.avail_out === 0) {
|
|
7970
|
+
return BS_NEED_MORE;
|
|
7971
|
+
}
|
|
7972
|
+
}
|
|
7973
|
+
}
|
|
7974
|
+
s.insert = 0;
|
|
7975
|
+
if (flush === Z_FINISH$3) {
|
|
7976
|
+
flush_block_only(s, true);
|
|
7977
|
+
if (s.strm.avail_out === 0) {
|
|
7978
|
+
return BS_FINISH_STARTED;
|
|
7979
|
+
}
|
|
7980
|
+
return BS_FINISH_DONE;
|
|
7981
|
+
}
|
|
7982
|
+
if (s.sym_next) {
|
|
7983
|
+
flush_block_only(s, false);
|
|
7984
|
+
if (s.strm.avail_out === 0) {
|
|
7985
|
+
return BS_NEED_MORE;
|
|
7986
|
+
}
|
|
7987
|
+
}
|
|
7988
|
+
return BS_BLOCK_DONE;
|
|
7989
|
+
};
|
|
7990
|
+
var deflate_huff = (s, flush) => {
|
|
7991
|
+
let bflush;
|
|
7992
|
+
for (; ; ) {
|
|
7993
|
+
if (s.lookahead === 0) {
|
|
7994
|
+
fill_window(s);
|
|
7995
|
+
if (s.lookahead === 0) {
|
|
7996
|
+
if (flush === Z_NO_FLUSH$2) {
|
|
7997
|
+
return BS_NEED_MORE;
|
|
7998
|
+
}
|
|
7999
|
+
break;
|
|
8000
|
+
}
|
|
8001
|
+
}
|
|
8002
|
+
s.match_length = 0;
|
|
8003
|
+
bflush = _tr_tally(s, 0, s.window[s.strstart]);
|
|
8004
|
+
s.lookahead--;
|
|
8005
|
+
s.strstart++;
|
|
8006
|
+
if (bflush) {
|
|
8007
|
+
flush_block_only(s, false);
|
|
8008
|
+
if (s.strm.avail_out === 0) {
|
|
8009
|
+
return BS_NEED_MORE;
|
|
8010
|
+
}
|
|
8011
|
+
}
|
|
8012
|
+
}
|
|
8013
|
+
s.insert = 0;
|
|
8014
|
+
if (flush === Z_FINISH$3) {
|
|
8015
|
+
flush_block_only(s, true);
|
|
8016
|
+
if (s.strm.avail_out === 0) {
|
|
8017
|
+
return BS_FINISH_STARTED;
|
|
8018
|
+
}
|
|
8019
|
+
return BS_FINISH_DONE;
|
|
8020
|
+
}
|
|
8021
|
+
if (s.sym_next) {
|
|
8022
|
+
flush_block_only(s, false);
|
|
8023
|
+
if (s.strm.avail_out === 0) {
|
|
8024
|
+
return BS_NEED_MORE;
|
|
8025
|
+
}
|
|
8026
|
+
}
|
|
8027
|
+
return BS_BLOCK_DONE;
|
|
8028
|
+
};
|
|
8029
|
+
function Config(good_length, max_lazy, nice_length, max_chain, func) {
|
|
8030
|
+
this.good_length = good_length;
|
|
8031
|
+
this.max_lazy = max_lazy;
|
|
8032
|
+
this.nice_length = nice_length;
|
|
8033
|
+
this.max_chain = max_chain;
|
|
8034
|
+
this.func = func;
|
|
8035
|
+
}
|
|
8036
|
+
var configuration_table = [
|
|
8037
|
+
/* good lazy nice chain */
|
|
8038
|
+
new Config(0, 0, 0, 0, deflate_stored),
|
|
8039
|
+
/* 0 store only */
|
|
8040
|
+
new Config(4, 4, 8, 4, deflate_fast),
|
|
8041
|
+
/* 1 max speed, no lazy matches */
|
|
8042
|
+
new Config(4, 5, 16, 8, deflate_fast),
|
|
8043
|
+
/* 2 */
|
|
8044
|
+
new Config(4, 6, 32, 32, deflate_fast),
|
|
8045
|
+
/* 3 */
|
|
8046
|
+
new Config(4, 4, 16, 16, deflate_slow),
|
|
8047
|
+
/* 4 lazy matches */
|
|
8048
|
+
new Config(8, 16, 32, 32, deflate_slow),
|
|
8049
|
+
/* 5 */
|
|
8050
|
+
new Config(8, 16, 128, 128, deflate_slow),
|
|
8051
|
+
/* 6 */
|
|
8052
|
+
new Config(8, 32, 128, 256, deflate_slow),
|
|
8053
|
+
/* 7 */
|
|
8054
|
+
new Config(32, 128, 258, 1024, deflate_slow),
|
|
8055
|
+
/* 8 */
|
|
8056
|
+
new Config(32, 258, 258, 4096, deflate_slow)
|
|
8057
|
+
/* 9 max compression */
|
|
8058
|
+
];
|
|
8059
|
+
var lm_init = (s) => {
|
|
8060
|
+
s.window_size = 2 * s.w_size;
|
|
8061
|
+
zero(s.head);
|
|
8062
|
+
s.max_lazy_match = configuration_table[s.level].max_lazy;
|
|
8063
|
+
s.good_match = configuration_table[s.level].good_length;
|
|
8064
|
+
s.nice_match = configuration_table[s.level].nice_length;
|
|
8065
|
+
s.max_chain_length = configuration_table[s.level].max_chain;
|
|
8066
|
+
s.strstart = 0;
|
|
8067
|
+
s.block_start = 0;
|
|
8068
|
+
s.lookahead = 0;
|
|
8069
|
+
s.insert = 0;
|
|
8070
|
+
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
8071
|
+
s.match_available = 0;
|
|
8072
|
+
s.ins_h = 0;
|
|
8073
|
+
};
|
|
8074
|
+
function DeflateState() {
|
|
8075
|
+
this.strm = null;
|
|
8076
|
+
this.status = 0;
|
|
8077
|
+
this.pending_buf = null;
|
|
8078
|
+
this.pending_buf_size = 0;
|
|
8079
|
+
this.pending_out = 0;
|
|
8080
|
+
this.pending = 0;
|
|
8081
|
+
this.wrap = 0;
|
|
8082
|
+
this.gzhead = null;
|
|
8083
|
+
this.gzindex = 0;
|
|
8084
|
+
this.method = Z_DEFLATED$2;
|
|
8085
|
+
this.last_flush = -1;
|
|
8086
|
+
this.w_size = 0;
|
|
8087
|
+
this.w_bits = 0;
|
|
8088
|
+
this.w_mask = 0;
|
|
8089
|
+
this.window = null;
|
|
8090
|
+
this.window_size = 0;
|
|
8091
|
+
this.prev = null;
|
|
8092
|
+
this.head = null;
|
|
8093
|
+
this.ins_h = 0;
|
|
8094
|
+
this.hash_size = 0;
|
|
8095
|
+
this.hash_bits = 0;
|
|
8096
|
+
this.hash_mask = 0;
|
|
8097
|
+
this.hash_shift = 0;
|
|
8098
|
+
this.block_start = 0;
|
|
8099
|
+
this.match_length = 0;
|
|
8100
|
+
this.prev_match = 0;
|
|
8101
|
+
this.match_available = 0;
|
|
8102
|
+
this.strstart = 0;
|
|
8103
|
+
this.match_start = 0;
|
|
8104
|
+
this.lookahead = 0;
|
|
8105
|
+
this.prev_length = 0;
|
|
8106
|
+
this.max_chain_length = 0;
|
|
8107
|
+
this.max_lazy_match = 0;
|
|
8108
|
+
this.level = 0;
|
|
8109
|
+
this.strategy = 0;
|
|
8110
|
+
this.good_match = 0;
|
|
8111
|
+
this.nice_match = 0;
|
|
8112
|
+
this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);
|
|
8113
|
+
this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);
|
|
8114
|
+
this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);
|
|
8115
|
+
zero(this.dyn_ltree);
|
|
8116
|
+
zero(this.dyn_dtree);
|
|
8117
|
+
zero(this.bl_tree);
|
|
8118
|
+
this.l_desc = null;
|
|
8119
|
+
this.d_desc = null;
|
|
8120
|
+
this.bl_desc = null;
|
|
8121
|
+
this.bl_count = new Uint16Array(MAX_BITS + 1);
|
|
8122
|
+
this.heap = new Uint16Array(2 * L_CODES + 1);
|
|
8123
|
+
zero(this.heap);
|
|
8124
|
+
this.heap_len = 0;
|
|
8125
|
+
this.heap_max = 0;
|
|
8126
|
+
this.depth = new Uint16Array(2 * L_CODES + 1);
|
|
8127
|
+
zero(this.depth);
|
|
8128
|
+
this.sym_buf = 0;
|
|
8129
|
+
this.lit_bufsize = 0;
|
|
8130
|
+
this.sym_next = 0;
|
|
8131
|
+
this.sym_end = 0;
|
|
8132
|
+
this.opt_len = 0;
|
|
8133
|
+
this.static_len = 0;
|
|
8134
|
+
this.matches = 0;
|
|
8135
|
+
this.insert = 0;
|
|
8136
|
+
this.bi_buf = 0;
|
|
8137
|
+
this.bi_valid = 0;
|
|
8138
|
+
}
|
|
8139
|
+
var deflateStateCheck = (strm) => {
|
|
8140
|
+
if (!strm) {
|
|
8141
|
+
return 1;
|
|
8142
|
+
}
|
|
8143
|
+
const s = strm.state;
|
|
8144
|
+
if (!s || s.strm !== strm || s.status !== INIT_STATE && //#ifdef GZIP
|
|
8145
|
+
s.status !== GZIP_STATE && //#endif
|
|
8146
|
+
s.status !== EXTRA_STATE && s.status !== NAME_STATE && s.status !== COMMENT_STATE && s.status !== HCRC_STATE && s.status !== BUSY_STATE && s.status !== FINISH_STATE) {
|
|
8147
|
+
return 1;
|
|
8148
|
+
}
|
|
8149
|
+
return 0;
|
|
8150
|
+
};
|
|
8151
|
+
var deflateResetKeep = (strm) => {
|
|
8152
|
+
if (deflateStateCheck(strm)) {
|
|
8153
|
+
return err(strm, Z_STREAM_ERROR$2);
|
|
8154
|
+
}
|
|
8155
|
+
strm.total_in = strm.total_out = 0;
|
|
8156
|
+
strm.data_type = Z_UNKNOWN;
|
|
8157
|
+
const s = strm.state;
|
|
8158
|
+
s.pending = 0;
|
|
8159
|
+
s.pending_out = 0;
|
|
8160
|
+
if (s.wrap < 0) {
|
|
8161
|
+
s.wrap = -s.wrap;
|
|
8162
|
+
}
|
|
8163
|
+
s.status = //#ifdef GZIP
|
|
8164
|
+
s.wrap === 2 ? GZIP_STATE : (
|
|
8165
|
+
//#endif
|
|
8166
|
+
s.wrap ? INIT_STATE : BUSY_STATE
|
|
8167
|
+
);
|
|
8168
|
+
strm.adler = s.wrap === 2 ? 0 : 1;
|
|
8169
|
+
s.last_flush = -2;
|
|
8170
|
+
_tr_init(s);
|
|
8171
|
+
return Z_OK$3;
|
|
8172
|
+
};
|
|
8173
|
+
var deflateReset = (strm) => {
|
|
8174
|
+
const ret = deflateResetKeep(strm);
|
|
8175
|
+
if (ret === Z_OK$3) {
|
|
8176
|
+
lm_init(strm.state);
|
|
8177
|
+
}
|
|
8178
|
+
return ret;
|
|
8179
|
+
};
|
|
8180
|
+
var deflateSetHeader = (strm, head) => {
|
|
8181
|
+
if (deflateStateCheck(strm) || strm.state.wrap !== 2) {
|
|
8182
|
+
return Z_STREAM_ERROR$2;
|
|
8183
|
+
}
|
|
8184
|
+
strm.state.gzhead = head;
|
|
8185
|
+
return Z_OK$3;
|
|
8186
|
+
};
|
|
8187
|
+
var deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {
|
|
8188
|
+
if (!strm) {
|
|
8189
|
+
return Z_STREAM_ERROR$2;
|
|
8190
|
+
}
|
|
8191
|
+
let wrap = 1;
|
|
8192
|
+
if (level === Z_DEFAULT_COMPRESSION$1) {
|
|
8193
|
+
level = 6;
|
|
8194
|
+
}
|
|
8195
|
+
if (windowBits < 0) {
|
|
8196
|
+
wrap = 0;
|
|
8197
|
+
windowBits = -windowBits;
|
|
8198
|
+
} else if (windowBits > 15) {
|
|
8199
|
+
wrap = 2;
|
|
8200
|
+
windowBits -= 16;
|
|
8201
|
+
}
|
|
8202
|
+
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) {
|
|
8203
|
+
return err(strm, Z_STREAM_ERROR$2);
|
|
8204
|
+
}
|
|
8205
|
+
if (windowBits === 8) {
|
|
8206
|
+
windowBits = 9;
|
|
8207
|
+
}
|
|
8208
|
+
const s = new DeflateState();
|
|
8209
|
+
strm.state = s;
|
|
8210
|
+
s.strm = strm;
|
|
8211
|
+
s.status = INIT_STATE;
|
|
8212
|
+
s.wrap = wrap;
|
|
8213
|
+
s.gzhead = null;
|
|
8214
|
+
s.w_bits = windowBits;
|
|
8215
|
+
s.w_size = 1 << s.w_bits;
|
|
8216
|
+
s.w_mask = s.w_size - 1;
|
|
8217
|
+
s.hash_bits = memLevel + 7;
|
|
8218
|
+
s.hash_size = 1 << s.hash_bits;
|
|
8219
|
+
s.hash_mask = s.hash_size - 1;
|
|
8220
|
+
s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
|
|
8221
|
+
s.window = new Uint8Array(s.w_size * 2);
|
|
8222
|
+
s.head = new Uint16Array(s.hash_size);
|
|
8223
|
+
s.prev = new Uint16Array(s.w_size);
|
|
8224
|
+
s.lit_bufsize = 1 << memLevel + 6;
|
|
8225
|
+
s.pending_buf_size = s.lit_bufsize * 4;
|
|
8226
|
+
s.pending_buf = new Uint8Array(s.pending_buf_size);
|
|
8227
|
+
s.sym_buf = s.lit_bufsize;
|
|
8228
|
+
s.sym_end = (s.lit_bufsize - 1) * 3;
|
|
8229
|
+
s.level = level;
|
|
8230
|
+
s.strategy = strategy;
|
|
8231
|
+
s.method = method;
|
|
8232
|
+
return deflateReset(strm);
|
|
8233
|
+
};
|
|
8234
|
+
var deflateInit = (strm, level) => {
|
|
8235
|
+
return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);
|
|
8236
|
+
};
|
|
8237
|
+
var deflate$2 = (strm, flush) => {
|
|
8238
|
+
if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) {
|
|
8239
|
+
return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;
|
|
8240
|
+
}
|
|
8241
|
+
const s = strm.state;
|
|
8242
|
+
if (!strm.output || strm.avail_in !== 0 && !strm.input || s.status === FINISH_STATE && flush !== Z_FINISH$3) {
|
|
8243
|
+
return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);
|
|
8244
|
+
}
|
|
8245
|
+
const old_flush = s.last_flush;
|
|
8246
|
+
s.last_flush = flush;
|
|
8247
|
+
if (s.pending !== 0) {
|
|
8248
|
+
flush_pending(strm);
|
|
8249
|
+
if (strm.avail_out === 0) {
|
|
8250
|
+
s.last_flush = -1;
|
|
8251
|
+
return Z_OK$3;
|
|
8252
|
+
}
|
|
8253
|
+
} else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH$3) {
|
|
8254
|
+
return err(strm, Z_BUF_ERROR$1);
|
|
8255
|
+
}
|
|
8256
|
+
if (s.status === FINISH_STATE && strm.avail_in !== 0) {
|
|
8257
|
+
return err(strm, Z_BUF_ERROR$1);
|
|
8258
|
+
}
|
|
8259
|
+
if (s.status === INIT_STATE && s.wrap === 0) {
|
|
8260
|
+
s.status = BUSY_STATE;
|
|
8261
|
+
}
|
|
8262
|
+
if (s.status === INIT_STATE) {
|
|
8263
|
+
let header = Z_DEFLATED$2 + (s.w_bits - 8 << 4) << 8;
|
|
8264
|
+
let level_flags = -1;
|
|
8265
|
+
if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
|
|
8266
|
+
level_flags = 0;
|
|
8267
|
+
} else if (s.level < 6) {
|
|
8268
|
+
level_flags = 1;
|
|
8269
|
+
} else if (s.level === 6) {
|
|
8270
|
+
level_flags = 2;
|
|
8271
|
+
} else {
|
|
8272
|
+
level_flags = 3;
|
|
8273
|
+
}
|
|
8274
|
+
header |= level_flags << 6;
|
|
8275
|
+
if (s.strstart !== 0) {
|
|
8276
|
+
header |= PRESET_DICT;
|
|
8277
|
+
}
|
|
8278
|
+
header += 31 - header % 31;
|
|
8279
|
+
putShortMSB(s, header);
|
|
8280
|
+
if (s.strstart !== 0) {
|
|
8281
|
+
putShortMSB(s, strm.adler >>> 16);
|
|
8282
|
+
putShortMSB(s, strm.adler & 65535);
|
|
8283
|
+
}
|
|
8284
|
+
strm.adler = 1;
|
|
8285
|
+
s.status = BUSY_STATE;
|
|
8286
|
+
flush_pending(strm);
|
|
8287
|
+
if (s.pending !== 0) {
|
|
8288
|
+
s.last_flush = -1;
|
|
8289
|
+
return Z_OK$3;
|
|
8290
|
+
}
|
|
8291
|
+
}
|
|
8292
|
+
if (s.status === GZIP_STATE) {
|
|
8293
|
+
strm.adler = 0;
|
|
8294
|
+
put_byte(s, 31);
|
|
8295
|
+
put_byte(s, 139);
|
|
8296
|
+
put_byte(s, 8);
|
|
8297
|
+
if (!s.gzhead) {
|
|
8298
|
+
put_byte(s, 0);
|
|
8299
|
+
put_byte(s, 0);
|
|
8300
|
+
put_byte(s, 0);
|
|
8301
|
+
put_byte(s, 0);
|
|
8302
|
+
put_byte(s, 0);
|
|
8303
|
+
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
8304
|
+
put_byte(s, OS_CODE);
|
|
8305
|
+
s.status = BUSY_STATE;
|
|
8306
|
+
flush_pending(strm);
|
|
8307
|
+
if (s.pending !== 0) {
|
|
8308
|
+
s.last_flush = -1;
|
|
8309
|
+
return Z_OK$3;
|
|
8310
|
+
}
|
|
8311
|
+
} else {
|
|
8312
|
+
put_byte(
|
|
8313
|
+
s,
|
|
8314
|
+
(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)
|
|
8315
|
+
);
|
|
8316
|
+
put_byte(s, s.gzhead.time & 255);
|
|
8317
|
+
put_byte(s, s.gzhead.time >> 8 & 255);
|
|
8318
|
+
put_byte(s, s.gzhead.time >> 16 & 255);
|
|
8319
|
+
put_byte(s, s.gzhead.time >> 24 & 255);
|
|
8320
|
+
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
8321
|
+
put_byte(s, s.gzhead.os & 255);
|
|
8322
|
+
if (s.gzhead.extra && s.gzhead.extra.length) {
|
|
8323
|
+
put_byte(s, s.gzhead.extra.length & 255);
|
|
8324
|
+
put_byte(s, s.gzhead.extra.length >> 8 & 255);
|
|
8325
|
+
}
|
|
8326
|
+
if (s.gzhead.hcrc) {
|
|
8327
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);
|
|
8328
|
+
}
|
|
8329
|
+
s.gzindex = 0;
|
|
8330
|
+
s.status = EXTRA_STATE;
|
|
8331
|
+
}
|
|
8332
|
+
}
|
|
8333
|
+
if (s.status === EXTRA_STATE) {
|
|
8334
|
+
if (s.gzhead.extra) {
|
|
8335
|
+
let beg = s.pending;
|
|
8336
|
+
let left = (s.gzhead.extra.length & 65535) - s.gzindex;
|
|
8337
|
+
while (s.pending + left > s.pending_buf_size) {
|
|
8338
|
+
let copy = s.pending_buf_size - s.pending;
|
|
8339
|
+
s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);
|
|
8340
|
+
s.pending = s.pending_buf_size;
|
|
8341
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8342
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8343
|
+
}
|
|
8344
|
+
s.gzindex += copy;
|
|
8345
|
+
flush_pending(strm);
|
|
8346
|
+
if (s.pending !== 0) {
|
|
8347
|
+
s.last_flush = -1;
|
|
8348
|
+
return Z_OK$3;
|
|
8349
|
+
}
|
|
8350
|
+
beg = 0;
|
|
8351
|
+
left -= copy;
|
|
8352
|
+
}
|
|
8353
|
+
let gzhead_extra = new Uint8Array(s.gzhead.extra);
|
|
8354
|
+
s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);
|
|
8355
|
+
s.pending += left;
|
|
8356
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8357
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8358
|
+
}
|
|
8359
|
+
s.gzindex = 0;
|
|
8360
|
+
}
|
|
8361
|
+
s.status = NAME_STATE;
|
|
8362
|
+
}
|
|
8363
|
+
if (s.status === NAME_STATE) {
|
|
8364
|
+
if (s.gzhead.name) {
|
|
8365
|
+
let beg = s.pending;
|
|
8366
|
+
let val;
|
|
8367
|
+
do {
|
|
8368
|
+
if (s.pending === s.pending_buf_size) {
|
|
8369
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8370
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8371
|
+
}
|
|
8372
|
+
flush_pending(strm);
|
|
8373
|
+
if (s.pending !== 0) {
|
|
8374
|
+
s.last_flush = -1;
|
|
8375
|
+
return Z_OK$3;
|
|
8376
|
+
}
|
|
8377
|
+
beg = 0;
|
|
8378
|
+
}
|
|
8379
|
+
if (s.gzindex < s.gzhead.name.length) {
|
|
8380
|
+
val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
|
|
8381
|
+
} else {
|
|
8382
|
+
val = 0;
|
|
8383
|
+
}
|
|
8384
|
+
put_byte(s, val);
|
|
8385
|
+
} while (val !== 0);
|
|
8386
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8387
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8388
|
+
}
|
|
8389
|
+
s.gzindex = 0;
|
|
8390
|
+
}
|
|
8391
|
+
s.status = COMMENT_STATE;
|
|
8392
|
+
}
|
|
8393
|
+
if (s.status === COMMENT_STATE) {
|
|
8394
|
+
if (s.gzhead.comment) {
|
|
8395
|
+
let beg = s.pending;
|
|
8396
|
+
let val;
|
|
8397
|
+
do {
|
|
8398
|
+
if (s.pending === s.pending_buf_size) {
|
|
8399
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8400
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8401
|
+
}
|
|
8402
|
+
flush_pending(strm);
|
|
8403
|
+
if (s.pending !== 0) {
|
|
8404
|
+
s.last_flush = -1;
|
|
8405
|
+
return Z_OK$3;
|
|
8406
|
+
}
|
|
8407
|
+
beg = 0;
|
|
8408
|
+
}
|
|
8409
|
+
if (s.gzindex < s.gzhead.comment.length) {
|
|
8410
|
+
val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
|
|
8411
|
+
} else {
|
|
8412
|
+
val = 0;
|
|
8413
|
+
}
|
|
8414
|
+
put_byte(s, val);
|
|
8415
|
+
} while (val !== 0);
|
|
8416
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
8417
|
+
strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
8418
|
+
}
|
|
8419
|
+
}
|
|
8420
|
+
s.status = HCRC_STATE;
|
|
8421
|
+
}
|
|
8422
|
+
if (s.status === HCRC_STATE) {
|
|
8423
|
+
if (s.gzhead.hcrc) {
|
|
8424
|
+
if (s.pending + 2 > s.pending_buf_size) {
|
|
8425
|
+
flush_pending(strm);
|
|
8426
|
+
if (s.pending !== 0) {
|
|
8427
|
+
s.last_flush = -1;
|
|
8428
|
+
return Z_OK$3;
|
|
8429
|
+
}
|
|
8430
|
+
}
|
|
8431
|
+
put_byte(s, strm.adler & 255);
|
|
8432
|
+
put_byte(s, strm.adler >> 8 & 255);
|
|
8433
|
+
strm.adler = 0;
|
|
8434
|
+
}
|
|
8435
|
+
s.status = BUSY_STATE;
|
|
8436
|
+
flush_pending(strm);
|
|
8437
|
+
if (s.pending !== 0) {
|
|
8438
|
+
s.last_flush = -1;
|
|
8439
|
+
return Z_OK$3;
|
|
8440
|
+
}
|
|
8441
|
+
}
|
|
8442
|
+
if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE) {
|
|
8443
|
+
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);
|
|
8444
|
+
if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
|
|
8445
|
+
s.status = FINISH_STATE;
|
|
8446
|
+
}
|
|
8447
|
+
if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
|
|
8448
|
+
if (strm.avail_out === 0) {
|
|
8449
|
+
s.last_flush = -1;
|
|
8450
|
+
}
|
|
8451
|
+
return Z_OK$3;
|
|
8452
|
+
}
|
|
8453
|
+
if (bstate === BS_BLOCK_DONE) {
|
|
8454
|
+
if (flush === Z_PARTIAL_FLUSH) {
|
|
8455
|
+
_tr_align(s);
|
|
8456
|
+
} else if (flush !== Z_BLOCK$1) {
|
|
8457
|
+
_tr_stored_block(s, 0, 0, false);
|
|
8458
|
+
if (flush === Z_FULL_FLUSH$1) {
|
|
8459
|
+
zero(s.head);
|
|
8460
|
+
if (s.lookahead === 0) {
|
|
8461
|
+
s.strstart = 0;
|
|
8462
|
+
s.block_start = 0;
|
|
8463
|
+
s.insert = 0;
|
|
8464
|
+
}
|
|
8465
|
+
}
|
|
8466
|
+
}
|
|
8467
|
+
flush_pending(strm);
|
|
8468
|
+
if (strm.avail_out === 0) {
|
|
8469
|
+
s.last_flush = -1;
|
|
8470
|
+
return Z_OK$3;
|
|
8471
|
+
}
|
|
8472
|
+
}
|
|
8473
|
+
}
|
|
8474
|
+
if (flush !== Z_FINISH$3) {
|
|
8475
|
+
return Z_OK$3;
|
|
8476
|
+
}
|
|
8477
|
+
if (s.wrap <= 0) {
|
|
8478
|
+
return Z_STREAM_END$3;
|
|
8479
|
+
}
|
|
8480
|
+
if (s.wrap === 2) {
|
|
8481
|
+
put_byte(s, strm.adler & 255);
|
|
8482
|
+
put_byte(s, strm.adler >> 8 & 255);
|
|
8483
|
+
put_byte(s, strm.adler >> 16 & 255);
|
|
8484
|
+
put_byte(s, strm.adler >> 24 & 255);
|
|
8485
|
+
put_byte(s, strm.total_in & 255);
|
|
8486
|
+
put_byte(s, strm.total_in >> 8 & 255);
|
|
8487
|
+
put_byte(s, strm.total_in >> 16 & 255);
|
|
8488
|
+
put_byte(s, strm.total_in >> 24 & 255);
|
|
8489
|
+
} else {
|
|
8490
|
+
putShortMSB(s, strm.adler >>> 16);
|
|
8491
|
+
putShortMSB(s, strm.adler & 65535);
|
|
8492
|
+
}
|
|
8493
|
+
flush_pending(strm);
|
|
8494
|
+
if (s.wrap > 0) {
|
|
8495
|
+
s.wrap = -s.wrap;
|
|
8496
|
+
}
|
|
8497
|
+
return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;
|
|
8498
|
+
};
|
|
8499
|
+
var deflateEnd = (strm) => {
|
|
8500
|
+
if (deflateStateCheck(strm)) {
|
|
8501
|
+
return Z_STREAM_ERROR$2;
|
|
8502
|
+
}
|
|
8503
|
+
const status = strm.state.status;
|
|
8504
|
+
strm.state = null;
|
|
8505
|
+
return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;
|
|
8506
|
+
};
|
|
8507
|
+
var deflateSetDictionary = (strm, dictionary) => {
|
|
8508
|
+
let dictLength = dictionary.length;
|
|
8509
|
+
if (deflateStateCheck(strm)) {
|
|
8510
|
+
return Z_STREAM_ERROR$2;
|
|
8511
|
+
}
|
|
8512
|
+
const s = strm.state;
|
|
8513
|
+
const wrap = s.wrap;
|
|
8514
|
+
if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {
|
|
8515
|
+
return Z_STREAM_ERROR$2;
|
|
8516
|
+
}
|
|
8517
|
+
if (wrap === 1) {
|
|
8518
|
+
strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);
|
|
8519
|
+
}
|
|
8520
|
+
s.wrap = 0;
|
|
8521
|
+
if (dictLength >= s.w_size) {
|
|
8522
|
+
if (wrap === 0) {
|
|
8523
|
+
zero(s.head);
|
|
8524
|
+
s.strstart = 0;
|
|
8525
|
+
s.block_start = 0;
|
|
8526
|
+
s.insert = 0;
|
|
8527
|
+
}
|
|
8528
|
+
let tmpDict = new Uint8Array(s.w_size);
|
|
8529
|
+
tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);
|
|
8530
|
+
dictionary = tmpDict;
|
|
8531
|
+
dictLength = s.w_size;
|
|
8532
|
+
}
|
|
8533
|
+
const avail = strm.avail_in;
|
|
8534
|
+
const next = strm.next_in;
|
|
8535
|
+
const input = strm.input;
|
|
8536
|
+
strm.avail_in = dictLength;
|
|
8537
|
+
strm.next_in = 0;
|
|
8538
|
+
strm.input = dictionary;
|
|
8539
|
+
fill_window(s);
|
|
8540
|
+
while (s.lookahead >= MIN_MATCH) {
|
|
8541
|
+
let str = s.strstart;
|
|
8542
|
+
let n = s.lookahead - (MIN_MATCH - 1);
|
|
8543
|
+
do {
|
|
8544
|
+
s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
|
|
8545
|
+
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
8546
|
+
s.head[s.ins_h] = str;
|
|
8547
|
+
str++;
|
|
8548
|
+
} while (--n);
|
|
8549
|
+
s.strstart = str;
|
|
8550
|
+
s.lookahead = MIN_MATCH - 1;
|
|
8551
|
+
fill_window(s);
|
|
8552
|
+
}
|
|
8553
|
+
s.strstart += s.lookahead;
|
|
8554
|
+
s.block_start = s.strstart;
|
|
8555
|
+
s.insert = s.lookahead;
|
|
8556
|
+
s.lookahead = 0;
|
|
8557
|
+
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
8558
|
+
s.match_available = 0;
|
|
8559
|
+
strm.next_in = next;
|
|
8560
|
+
strm.input = input;
|
|
8561
|
+
strm.avail_in = avail;
|
|
8562
|
+
s.wrap = wrap;
|
|
8563
|
+
return Z_OK$3;
|
|
8564
|
+
};
|
|
8565
|
+
var deflateInit_1 = deflateInit;
|
|
8566
|
+
var deflateInit2_1 = deflateInit2;
|
|
8567
|
+
var deflateReset_1 = deflateReset;
|
|
8568
|
+
var deflateResetKeep_1 = deflateResetKeep;
|
|
8569
|
+
var deflateSetHeader_1 = deflateSetHeader;
|
|
8570
|
+
var deflate_2$1 = deflate$2;
|
|
8571
|
+
var deflateEnd_1 = deflateEnd;
|
|
8572
|
+
var deflateSetDictionary_1 = deflateSetDictionary;
|
|
8573
|
+
var deflateInfo = "pako deflate (from Nodeca project)";
|
|
8574
|
+
var deflate_1$2 = {
|
|
8575
|
+
deflateInit: deflateInit_1,
|
|
8576
|
+
deflateInit2: deflateInit2_1,
|
|
8577
|
+
deflateReset: deflateReset_1,
|
|
8578
|
+
deflateResetKeep: deflateResetKeep_1,
|
|
8579
|
+
deflateSetHeader: deflateSetHeader_1,
|
|
8580
|
+
deflate: deflate_2$1,
|
|
8581
|
+
deflateEnd: deflateEnd_1,
|
|
8582
|
+
deflateSetDictionary: deflateSetDictionary_1,
|
|
8583
|
+
deflateInfo
|
|
8584
|
+
};
|
|
8585
|
+
var _has = (obj, key) => {
|
|
8586
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
8587
|
+
};
|
|
8588
|
+
var assign = function(obj) {
|
|
8589
|
+
const sources = Array.prototype.slice.call(arguments, 1);
|
|
8590
|
+
while (sources.length) {
|
|
8591
|
+
const source = sources.shift();
|
|
8592
|
+
if (!source) {
|
|
8593
|
+
continue;
|
|
8594
|
+
}
|
|
8595
|
+
if (typeof source !== "object") {
|
|
8596
|
+
throw new TypeError(source + "must be non-object");
|
|
8597
|
+
}
|
|
8598
|
+
for (const p in source) {
|
|
8599
|
+
if (_has(source, p)) {
|
|
8600
|
+
obj[p] = source[p];
|
|
8601
|
+
}
|
|
8602
|
+
}
|
|
8603
|
+
}
|
|
8604
|
+
return obj;
|
|
8605
|
+
};
|
|
8606
|
+
var flattenChunks = (chunks) => {
|
|
8607
|
+
let len = 0;
|
|
8608
|
+
for (let i = 0, l = chunks.length; i < l; i++) {
|
|
8609
|
+
len += chunks[i].length;
|
|
8610
|
+
}
|
|
8611
|
+
const result = new Uint8Array(len);
|
|
8612
|
+
for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {
|
|
8613
|
+
let chunk = chunks[i];
|
|
8614
|
+
result.set(chunk, pos);
|
|
8615
|
+
pos += chunk.length;
|
|
8616
|
+
}
|
|
8617
|
+
return result;
|
|
8618
|
+
};
|
|
8619
|
+
var common = {
|
|
8620
|
+
assign,
|
|
8621
|
+
flattenChunks
|
|
8622
|
+
};
|
|
8623
|
+
var STR_APPLY_UIA_OK = true;
|
|
8624
|
+
try {
|
|
8625
|
+
String.fromCharCode.apply(null, new Uint8Array(1));
|
|
8626
|
+
} catch (__) {
|
|
8627
|
+
STR_APPLY_UIA_OK = false;
|
|
8628
|
+
}
|
|
8629
|
+
var _utf8len = new Uint8Array(256);
|
|
8630
|
+
for (let q = 0; q < 256; q++) {
|
|
8631
|
+
_utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
|
|
8632
|
+
}
|
|
8633
|
+
_utf8len[254] = _utf8len[254] = 1;
|
|
8634
|
+
var string2buf = (str) => {
|
|
8635
|
+
if (typeof TextEncoder === "function" && TextEncoder.prototype.encode) {
|
|
8636
|
+
return new TextEncoder().encode(str);
|
|
8637
|
+
}
|
|
8638
|
+
let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
|
|
8639
|
+
for (m_pos = 0; m_pos < str_len; m_pos++) {
|
|
8640
|
+
c = str.charCodeAt(m_pos);
|
|
8641
|
+
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
8642
|
+
c2 = str.charCodeAt(m_pos + 1);
|
|
8643
|
+
if ((c2 & 64512) === 56320) {
|
|
8644
|
+
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
8645
|
+
m_pos++;
|
|
8646
|
+
}
|
|
8647
|
+
}
|
|
8648
|
+
buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4;
|
|
8649
|
+
}
|
|
8650
|
+
buf = new Uint8Array(buf_len);
|
|
8651
|
+
for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
|
|
8652
|
+
c = str.charCodeAt(m_pos);
|
|
8653
|
+
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
8654
|
+
c2 = str.charCodeAt(m_pos + 1);
|
|
8655
|
+
if ((c2 & 64512) === 56320) {
|
|
8656
|
+
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
8657
|
+
m_pos++;
|
|
8658
|
+
}
|
|
8659
|
+
}
|
|
8660
|
+
if (c < 128) {
|
|
8661
|
+
buf[i++] = c;
|
|
8662
|
+
} else if (c < 2048) {
|
|
8663
|
+
buf[i++] = 192 | c >>> 6;
|
|
8664
|
+
buf[i++] = 128 | c & 63;
|
|
8665
|
+
} else if (c < 65536) {
|
|
8666
|
+
buf[i++] = 224 | c >>> 12;
|
|
8667
|
+
buf[i++] = 128 | c >>> 6 & 63;
|
|
8668
|
+
buf[i++] = 128 | c & 63;
|
|
8669
|
+
} else {
|
|
8670
|
+
buf[i++] = 240 | c >>> 18;
|
|
8671
|
+
buf[i++] = 128 | c >>> 12 & 63;
|
|
8672
|
+
buf[i++] = 128 | c >>> 6 & 63;
|
|
8673
|
+
buf[i++] = 128 | c & 63;
|
|
8674
|
+
}
|
|
8675
|
+
}
|
|
8676
|
+
return buf;
|
|
8677
|
+
};
|
|
8678
|
+
var buf2binstring = (buf, len) => {
|
|
8679
|
+
if (len < 65534) {
|
|
8680
|
+
if (buf.subarray && STR_APPLY_UIA_OK) {
|
|
8681
|
+
return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));
|
|
8682
|
+
}
|
|
8683
|
+
}
|
|
8684
|
+
let result = "";
|
|
8685
|
+
for (let i = 0; i < len; i++) {
|
|
8686
|
+
result += String.fromCharCode(buf[i]);
|
|
8687
|
+
}
|
|
8688
|
+
return result;
|
|
8689
|
+
};
|
|
8690
|
+
var buf2string = (buf, max) => {
|
|
8691
|
+
const len = max || buf.length;
|
|
8692
|
+
if (typeof TextDecoder === "function" && TextDecoder.prototype.decode) {
|
|
8693
|
+
return new TextDecoder().decode(buf.subarray(0, max));
|
|
8694
|
+
}
|
|
8695
|
+
let i, out;
|
|
8696
|
+
const utf16buf = new Array(len * 2);
|
|
8697
|
+
for (out = 0, i = 0; i < len; ) {
|
|
8698
|
+
let c = buf[i++];
|
|
8699
|
+
if (c < 128) {
|
|
8700
|
+
utf16buf[out++] = c;
|
|
8701
|
+
continue;
|
|
8702
|
+
}
|
|
8703
|
+
let c_len = _utf8len[c];
|
|
8704
|
+
if (c_len > 4) {
|
|
8705
|
+
utf16buf[out++] = 65533;
|
|
8706
|
+
i += c_len - 1;
|
|
8707
|
+
continue;
|
|
8708
|
+
}
|
|
8709
|
+
c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
|
|
8710
|
+
while (c_len > 1 && i < len) {
|
|
8711
|
+
c = c << 6 | buf[i++] & 63;
|
|
8712
|
+
c_len--;
|
|
8713
|
+
}
|
|
8714
|
+
if (c_len > 1) {
|
|
8715
|
+
utf16buf[out++] = 65533;
|
|
8716
|
+
continue;
|
|
8717
|
+
}
|
|
8718
|
+
if (c < 65536) {
|
|
8719
|
+
utf16buf[out++] = c;
|
|
8720
|
+
} else {
|
|
8721
|
+
c -= 65536;
|
|
8722
|
+
utf16buf[out++] = 55296 | c >> 10 & 1023;
|
|
8723
|
+
utf16buf[out++] = 56320 | c & 1023;
|
|
8724
|
+
}
|
|
8725
|
+
}
|
|
8726
|
+
return buf2binstring(utf16buf, out);
|
|
8727
|
+
};
|
|
8728
|
+
var utf8border = (buf, max) => {
|
|
8729
|
+
max = max || buf.length;
|
|
8730
|
+
if (max > buf.length) {
|
|
8731
|
+
max = buf.length;
|
|
8732
|
+
}
|
|
8733
|
+
let pos = max - 1;
|
|
8734
|
+
while (pos >= 0 && (buf[pos] & 192) === 128) {
|
|
8735
|
+
pos--;
|
|
8736
|
+
}
|
|
8737
|
+
if (pos < 0) {
|
|
8738
|
+
return max;
|
|
8739
|
+
}
|
|
8740
|
+
if (pos === 0) {
|
|
8741
|
+
return max;
|
|
8742
|
+
}
|
|
8743
|
+
return pos + _utf8len[buf[pos]] > max ? pos : max;
|
|
8744
|
+
};
|
|
8745
|
+
var strings = {
|
|
8746
|
+
string2buf,
|
|
8747
|
+
buf2string,
|
|
8748
|
+
utf8border
|
|
8749
|
+
};
|
|
8750
|
+
function ZStream() {
|
|
8751
|
+
this.input = null;
|
|
8752
|
+
this.next_in = 0;
|
|
8753
|
+
this.avail_in = 0;
|
|
8754
|
+
this.total_in = 0;
|
|
8755
|
+
this.output = null;
|
|
8756
|
+
this.next_out = 0;
|
|
8757
|
+
this.avail_out = 0;
|
|
8758
|
+
this.total_out = 0;
|
|
8759
|
+
this.msg = "";
|
|
8760
|
+
this.state = null;
|
|
8761
|
+
this.data_type = 2;
|
|
8762
|
+
this.adler = 0;
|
|
8763
|
+
}
|
|
8764
|
+
var zstream = ZStream;
|
|
8765
|
+
var toString$1 = Object.prototype.toString;
|
|
8766
|
+
var {
|
|
8767
|
+
Z_NO_FLUSH: Z_NO_FLUSH$1,
|
|
8768
|
+
Z_SYNC_FLUSH,
|
|
8769
|
+
Z_FULL_FLUSH,
|
|
8770
|
+
Z_FINISH: Z_FINISH$2,
|
|
8771
|
+
Z_OK: Z_OK$2,
|
|
8772
|
+
Z_STREAM_END: Z_STREAM_END$2,
|
|
8773
|
+
Z_DEFAULT_COMPRESSION,
|
|
8774
|
+
Z_DEFAULT_STRATEGY,
|
|
8775
|
+
Z_DEFLATED: Z_DEFLATED$1
|
|
8776
|
+
} = constants$2;
|
|
8777
|
+
function Deflate$1(options) {
|
|
8778
|
+
this.options = common.assign({
|
|
8779
|
+
level: Z_DEFAULT_COMPRESSION,
|
|
8780
|
+
method: Z_DEFLATED$1,
|
|
8781
|
+
chunkSize: 16384,
|
|
8782
|
+
windowBits: 15,
|
|
8783
|
+
memLevel: 8,
|
|
8784
|
+
strategy: Z_DEFAULT_STRATEGY
|
|
8785
|
+
}, options || {});
|
|
8786
|
+
let opt = this.options;
|
|
8787
|
+
if (opt.raw && opt.windowBits > 0) {
|
|
8788
|
+
opt.windowBits = -opt.windowBits;
|
|
8789
|
+
} else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) {
|
|
8790
|
+
opt.windowBits += 16;
|
|
8791
|
+
}
|
|
8792
|
+
this.err = 0;
|
|
8793
|
+
this.msg = "";
|
|
8794
|
+
this.ended = false;
|
|
8795
|
+
this.chunks = [];
|
|
8796
|
+
this.strm = new zstream();
|
|
8797
|
+
this.strm.avail_out = 0;
|
|
8798
|
+
let status = deflate_1$2.deflateInit2(
|
|
8799
|
+
this.strm,
|
|
8800
|
+
opt.level,
|
|
8801
|
+
opt.method,
|
|
8802
|
+
opt.windowBits,
|
|
8803
|
+
opt.memLevel,
|
|
8804
|
+
opt.strategy
|
|
8805
|
+
);
|
|
8806
|
+
if (status !== Z_OK$2) {
|
|
8807
|
+
throw new Error(messages[status]);
|
|
8808
|
+
}
|
|
8809
|
+
if (opt.header) {
|
|
8810
|
+
deflate_1$2.deflateSetHeader(this.strm, opt.header);
|
|
8811
|
+
}
|
|
8812
|
+
if (opt.dictionary) {
|
|
8813
|
+
let dict;
|
|
8814
|
+
if (typeof opt.dictionary === "string") {
|
|
8815
|
+
dict = strings.string2buf(opt.dictionary);
|
|
8816
|
+
} else if (toString$1.call(opt.dictionary) === "[object ArrayBuffer]") {
|
|
8817
|
+
dict = new Uint8Array(opt.dictionary);
|
|
8818
|
+
} else {
|
|
8819
|
+
dict = opt.dictionary;
|
|
8820
|
+
}
|
|
8821
|
+
status = deflate_1$2.deflateSetDictionary(this.strm, dict);
|
|
8822
|
+
if (status !== Z_OK$2) {
|
|
8823
|
+
throw new Error(messages[status]);
|
|
8824
|
+
}
|
|
8825
|
+
this._dict_set = true;
|
|
8826
|
+
}
|
|
8827
|
+
}
|
|
8828
|
+
Deflate$1.prototype.push = function(data, flush_mode) {
|
|
8829
|
+
const strm = this.strm;
|
|
8830
|
+
const chunkSize = this.options.chunkSize;
|
|
8831
|
+
let status, _flush_mode;
|
|
8832
|
+
if (this.ended) {
|
|
8833
|
+
return false;
|
|
8834
|
+
}
|
|
8835
|
+
if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;
|
|
8836
|
+
else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;
|
|
8837
|
+
if (typeof data === "string") {
|
|
8838
|
+
strm.input = strings.string2buf(data);
|
|
8839
|
+
} else if (toString$1.call(data) === "[object ArrayBuffer]") {
|
|
8840
|
+
strm.input = new Uint8Array(data);
|
|
8841
|
+
} else {
|
|
8842
|
+
strm.input = data;
|
|
8843
|
+
}
|
|
8844
|
+
strm.next_in = 0;
|
|
8845
|
+
strm.avail_in = strm.input.length;
|
|
8846
|
+
for (; ; ) {
|
|
8847
|
+
if (strm.avail_out === 0) {
|
|
8848
|
+
strm.output = new Uint8Array(chunkSize);
|
|
8849
|
+
strm.next_out = 0;
|
|
8850
|
+
strm.avail_out = chunkSize;
|
|
8851
|
+
}
|
|
8852
|
+
if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {
|
|
8853
|
+
this.onData(strm.output.subarray(0, strm.next_out));
|
|
8854
|
+
strm.avail_out = 0;
|
|
8855
|
+
continue;
|
|
8856
|
+
}
|
|
8857
|
+
status = deflate_1$2.deflate(strm, _flush_mode);
|
|
8858
|
+
if (status === Z_STREAM_END$2) {
|
|
8859
|
+
if (strm.next_out > 0) {
|
|
8860
|
+
this.onData(strm.output.subarray(0, strm.next_out));
|
|
8861
|
+
}
|
|
8862
|
+
status = deflate_1$2.deflateEnd(this.strm);
|
|
8863
|
+
this.onEnd(status);
|
|
8864
|
+
this.ended = true;
|
|
8865
|
+
return status === Z_OK$2;
|
|
8866
|
+
}
|
|
8867
|
+
if (strm.avail_out === 0) {
|
|
8868
|
+
this.onData(strm.output);
|
|
8869
|
+
continue;
|
|
8870
|
+
}
|
|
8871
|
+
if (_flush_mode > 0 && strm.next_out > 0) {
|
|
8872
|
+
this.onData(strm.output.subarray(0, strm.next_out));
|
|
8873
|
+
strm.avail_out = 0;
|
|
8874
|
+
continue;
|
|
8875
|
+
}
|
|
8876
|
+
if (strm.avail_in === 0) break;
|
|
8877
|
+
}
|
|
8878
|
+
return true;
|
|
8879
|
+
};
|
|
8880
|
+
Deflate$1.prototype.onData = function(chunk) {
|
|
8881
|
+
this.chunks.push(chunk);
|
|
8882
|
+
};
|
|
8883
|
+
Deflate$1.prototype.onEnd = function(status) {
|
|
8884
|
+
if (status === Z_OK$2) {
|
|
8885
|
+
this.result = common.flattenChunks(this.chunks);
|
|
8886
|
+
}
|
|
8887
|
+
this.chunks = [];
|
|
8888
|
+
this.err = status;
|
|
8889
|
+
this.msg = this.strm.msg;
|
|
8890
|
+
};
|
|
8891
|
+
function deflate$1(input, options) {
|
|
8892
|
+
const deflator = new Deflate$1(options);
|
|
8893
|
+
deflator.push(input, true);
|
|
8894
|
+
if (deflator.err) {
|
|
8895
|
+
throw deflator.msg || messages[deflator.err];
|
|
8896
|
+
}
|
|
8897
|
+
return deflator.result;
|
|
8898
|
+
}
|
|
8899
|
+
function deflateRaw$1(input, options) {
|
|
8900
|
+
options = options || {};
|
|
8901
|
+
options.raw = true;
|
|
8902
|
+
return deflate$1(input, options);
|
|
8903
|
+
}
|
|
8904
|
+
function gzip$1(input, options) {
|
|
8905
|
+
options = options || {};
|
|
8906
|
+
options.gzip = true;
|
|
8907
|
+
return deflate$1(input, options);
|
|
8908
|
+
}
|
|
8909
|
+
var Deflate_1$1 = Deflate$1;
|
|
8910
|
+
var deflate_2 = deflate$1;
|
|
8911
|
+
var deflateRaw_1$1 = deflateRaw$1;
|
|
8912
|
+
var gzip_1$1 = gzip$1;
|
|
8913
|
+
var constants$1 = constants$2;
|
|
8914
|
+
var deflate_1$1 = {
|
|
8915
|
+
Deflate: Deflate_1$1,
|
|
8916
|
+
deflate: deflate_2,
|
|
8917
|
+
deflateRaw: deflateRaw_1$1,
|
|
8918
|
+
gzip: gzip_1$1,
|
|
8919
|
+
constants: constants$1
|
|
8920
|
+
};
|
|
8921
|
+
var BAD$1 = 16209;
|
|
8922
|
+
var TYPE$1 = 16191;
|
|
8923
|
+
var inffast = function inflate_fast(strm, start) {
|
|
8924
|
+
let _in;
|
|
8925
|
+
let last;
|
|
8926
|
+
let _out;
|
|
8927
|
+
let beg;
|
|
8928
|
+
let end;
|
|
8929
|
+
let dmax;
|
|
8930
|
+
let wsize;
|
|
8931
|
+
let whave;
|
|
8932
|
+
let wnext;
|
|
8933
|
+
let s_window;
|
|
8934
|
+
let hold;
|
|
8935
|
+
let bits;
|
|
8936
|
+
let lcode;
|
|
8937
|
+
let dcode;
|
|
8938
|
+
let lmask;
|
|
8939
|
+
let dmask;
|
|
8940
|
+
let here;
|
|
8941
|
+
let op;
|
|
8942
|
+
let len;
|
|
8943
|
+
let dist;
|
|
8944
|
+
let from;
|
|
8945
|
+
let from_source;
|
|
8946
|
+
let input, output;
|
|
8947
|
+
const state = strm.state;
|
|
8948
|
+
_in = strm.next_in;
|
|
8949
|
+
input = strm.input;
|
|
8950
|
+
last = _in + (strm.avail_in - 5);
|
|
8951
|
+
_out = strm.next_out;
|
|
8952
|
+
output = strm.output;
|
|
8953
|
+
beg = _out - (start - strm.avail_out);
|
|
8954
|
+
end = _out + (strm.avail_out - 257);
|
|
8955
|
+
dmax = state.dmax;
|
|
8956
|
+
wsize = state.wsize;
|
|
8957
|
+
whave = state.whave;
|
|
8958
|
+
wnext = state.wnext;
|
|
8959
|
+
s_window = state.window;
|
|
8960
|
+
hold = state.hold;
|
|
8961
|
+
bits = state.bits;
|
|
8962
|
+
lcode = state.lencode;
|
|
8963
|
+
dcode = state.distcode;
|
|
8964
|
+
lmask = (1 << state.lenbits) - 1;
|
|
8965
|
+
dmask = (1 << state.distbits) - 1;
|
|
8966
|
+
top:
|
|
8967
|
+
do {
|
|
8968
|
+
if (bits < 15) {
|
|
8969
|
+
hold += input[_in++] << bits;
|
|
8970
|
+
bits += 8;
|
|
8971
|
+
hold += input[_in++] << bits;
|
|
8972
|
+
bits += 8;
|
|
8973
|
+
}
|
|
8974
|
+
here = lcode[hold & lmask];
|
|
8975
|
+
dolen:
|
|
8976
|
+
for (; ; ) {
|
|
8977
|
+
op = here >>> 24;
|
|
8978
|
+
hold >>>= op;
|
|
8979
|
+
bits -= op;
|
|
8980
|
+
op = here >>> 16 & 255;
|
|
8981
|
+
if (op === 0) {
|
|
8982
|
+
output[_out++] = here & 65535;
|
|
8983
|
+
} else if (op & 16) {
|
|
8984
|
+
len = here & 65535;
|
|
8985
|
+
op &= 15;
|
|
8986
|
+
if (op) {
|
|
8987
|
+
if (bits < op) {
|
|
8988
|
+
hold += input[_in++] << bits;
|
|
8989
|
+
bits += 8;
|
|
8990
|
+
}
|
|
8991
|
+
len += hold & (1 << op) - 1;
|
|
8992
|
+
hold >>>= op;
|
|
8993
|
+
bits -= op;
|
|
8994
|
+
}
|
|
8995
|
+
if (bits < 15) {
|
|
8996
|
+
hold += input[_in++] << bits;
|
|
8997
|
+
bits += 8;
|
|
8998
|
+
hold += input[_in++] << bits;
|
|
8999
|
+
bits += 8;
|
|
9000
|
+
}
|
|
9001
|
+
here = dcode[hold & dmask];
|
|
9002
|
+
dodist:
|
|
9003
|
+
for (; ; ) {
|
|
9004
|
+
op = here >>> 24;
|
|
9005
|
+
hold >>>= op;
|
|
9006
|
+
bits -= op;
|
|
9007
|
+
op = here >>> 16 & 255;
|
|
9008
|
+
if (op & 16) {
|
|
9009
|
+
dist = here & 65535;
|
|
9010
|
+
op &= 15;
|
|
9011
|
+
if (bits < op) {
|
|
9012
|
+
hold += input[_in++] << bits;
|
|
9013
|
+
bits += 8;
|
|
9014
|
+
if (bits < op) {
|
|
9015
|
+
hold += input[_in++] << bits;
|
|
9016
|
+
bits += 8;
|
|
9017
|
+
}
|
|
9018
|
+
}
|
|
9019
|
+
dist += hold & (1 << op) - 1;
|
|
9020
|
+
if (dist > dmax) {
|
|
9021
|
+
strm.msg = "invalid distance too far back";
|
|
9022
|
+
state.mode = BAD$1;
|
|
9023
|
+
break top;
|
|
9024
|
+
}
|
|
9025
|
+
hold >>>= op;
|
|
9026
|
+
bits -= op;
|
|
9027
|
+
op = _out - beg;
|
|
9028
|
+
if (dist > op) {
|
|
9029
|
+
op = dist - op;
|
|
9030
|
+
if (op > whave) {
|
|
9031
|
+
if (state.sane) {
|
|
9032
|
+
strm.msg = "invalid distance too far back";
|
|
9033
|
+
state.mode = BAD$1;
|
|
9034
|
+
break top;
|
|
9035
|
+
}
|
|
9036
|
+
}
|
|
9037
|
+
from = 0;
|
|
9038
|
+
from_source = s_window;
|
|
9039
|
+
if (wnext === 0) {
|
|
9040
|
+
from += wsize - op;
|
|
9041
|
+
if (op < len) {
|
|
9042
|
+
len -= op;
|
|
9043
|
+
do {
|
|
9044
|
+
output[_out++] = s_window[from++];
|
|
9045
|
+
} while (--op);
|
|
9046
|
+
from = _out - dist;
|
|
9047
|
+
from_source = output;
|
|
9048
|
+
}
|
|
9049
|
+
} else if (wnext < op) {
|
|
9050
|
+
from += wsize + wnext - op;
|
|
9051
|
+
op -= wnext;
|
|
9052
|
+
if (op < len) {
|
|
9053
|
+
len -= op;
|
|
9054
|
+
do {
|
|
9055
|
+
output[_out++] = s_window[from++];
|
|
9056
|
+
} while (--op);
|
|
9057
|
+
from = 0;
|
|
9058
|
+
if (wnext < len) {
|
|
9059
|
+
op = wnext;
|
|
9060
|
+
len -= op;
|
|
9061
|
+
do {
|
|
9062
|
+
output[_out++] = s_window[from++];
|
|
9063
|
+
} while (--op);
|
|
9064
|
+
from = _out - dist;
|
|
9065
|
+
from_source = output;
|
|
9066
|
+
}
|
|
9067
|
+
}
|
|
9068
|
+
} else {
|
|
9069
|
+
from += wnext - op;
|
|
9070
|
+
if (op < len) {
|
|
9071
|
+
len -= op;
|
|
9072
|
+
do {
|
|
9073
|
+
output[_out++] = s_window[from++];
|
|
9074
|
+
} while (--op);
|
|
9075
|
+
from = _out - dist;
|
|
9076
|
+
from_source = output;
|
|
9077
|
+
}
|
|
9078
|
+
}
|
|
9079
|
+
while (len > 2) {
|
|
9080
|
+
output[_out++] = from_source[from++];
|
|
9081
|
+
output[_out++] = from_source[from++];
|
|
9082
|
+
output[_out++] = from_source[from++];
|
|
9083
|
+
len -= 3;
|
|
9084
|
+
}
|
|
9085
|
+
if (len) {
|
|
9086
|
+
output[_out++] = from_source[from++];
|
|
9087
|
+
if (len > 1) {
|
|
9088
|
+
output[_out++] = from_source[from++];
|
|
9089
|
+
}
|
|
9090
|
+
}
|
|
9091
|
+
} else {
|
|
9092
|
+
from = _out - dist;
|
|
9093
|
+
do {
|
|
9094
|
+
output[_out++] = output[from++];
|
|
9095
|
+
output[_out++] = output[from++];
|
|
9096
|
+
output[_out++] = output[from++];
|
|
9097
|
+
len -= 3;
|
|
9098
|
+
} while (len > 2);
|
|
9099
|
+
if (len) {
|
|
9100
|
+
output[_out++] = output[from++];
|
|
9101
|
+
if (len > 1) {
|
|
9102
|
+
output[_out++] = output[from++];
|
|
9103
|
+
}
|
|
9104
|
+
}
|
|
9105
|
+
}
|
|
9106
|
+
} else if ((op & 64) === 0) {
|
|
9107
|
+
here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
9108
|
+
continue dodist;
|
|
9109
|
+
} else {
|
|
9110
|
+
strm.msg = "invalid distance code";
|
|
9111
|
+
state.mode = BAD$1;
|
|
9112
|
+
break top;
|
|
9113
|
+
}
|
|
9114
|
+
break;
|
|
9115
|
+
}
|
|
9116
|
+
} else if ((op & 64) === 0) {
|
|
9117
|
+
here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
9118
|
+
continue dolen;
|
|
9119
|
+
} else if (op & 32) {
|
|
9120
|
+
state.mode = TYPE$1;
|
|
9121
|
+
break top;
|
|
9122
|
+
} else {
|
|
9123
|
+
strm.msg = "invalid literal/length code";
|
|
9124
|
+
state.mode = BAD$1;
|
|
9125
|
+
break top;
|
|
9126
|
+
}
|
|
9127
|
+
break;
|
|
9128
|
+
}
|
|
9129
|
+
} while (_in < last && _out < end);
|
|
9130
|
+
len = bits >> 3;
|
|
9131
|
+
_in -= len;
|
|
9132
|
+
bits -= len << 3;
|
|
9133
|
+
hold &= (1 << bits) - 1;
|
|
9134
|
+
strm.next_in = _in;
|
|
9135
|
+
strm.next_out = _out;
|
|
9136
|
+
strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
|
|
9137
|
+
strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
|
|
9138
|
+
state.hold = hold;
|
|
9139
|
+
state.bits = bits;
|
|
9140
|
+
return;
|
|
9141
|
+
};
|
|
9142
|
+
var MAXBITS = 15;
|
|
9143
|
+
var ENOUGH_LENS$1 = 852;
|
|
9144
|
+
var ENOUGH_DISTS$1 = 592;
|
|
9145
|
+
var CODES$1 = 0;
|
|
9146
|
+
var LENS$1 = 1;
|
|
9147
|
+
var DISTS$1 = 2;
|
|
9148
|
+
var lbase = new Uint16Array([
|
|
9149
|
+
/* Length codes 257..285 base */
|
|
9150
|
+
3,
|
|
9151
|
+
4,
|
|
9152
|
+
5,
|
|
9153
|
+
6,
|
|
9154
|
+
7,
|
|
9155
|
+
8,
|
|
9156
|
+
9,
|
|
9157
|
+
10,
|
|
9158
|
+
11,
|
|
9159
|
+
13,
|
|
9160
|
+
15,
|
|
9161
|
+
17,
|
|
9162
|
+
19,
|
|
9163
|
+
23,
|
|
9164
|
+
27,
|
|
9165
|
+
31,
|
|
9166
|
+
35,
|
|
9167
|
+
43,
|
|
9168
|
+
51,
|
|
9169
|
+
59,
|
|
9170
|
+
67,
|
|
9171
|
+
83,
|
|
9172
|
+
99,
|
|
9173
|
+
115,
|
|
9174
|
+
131,
|
|
9175
|
+
163,
|
|
9176
|
+
195,
|
|
9177
|
+
227,
|
|
9178
|
+
258,
|
|
9179
|
+
0,
|
|
9180
|
+
0
|
|
9181
|
+
]);
|
|
9182
|
+
var lext = new Uint8Array([
|
|
9183
|
+
/* Length codes 257..285 extra */
|
|
9184
|
+
16,
|
|
9185
|
+
16,
|
|
9186
|
+
16,
|
|
9187
|
+
16,
|
|
9188
|
+
16,
|
|
9189
|
+
16,
|
|
9190
|
+
16,
|
|
9191
|
+
16,
|
|
9192
|
+
17,
|
|
9193
|
+
17,
|
|
9194
|
+
17,
|
|
9195
|
+
17,
|
|
9196
|
+
18,
|
|
9197
|
+
18,
|
|
9198
|
+
18,
|
|
9199
|
+
18,
|
|
9200
|
+
19,
|
|
9201
|
+
19,
|
|
9202
|
+
19,
|
|
9203
|
+
19,
|
|
9204
|
+
20,
|
|
9205
|
+
20,
|
|
9206
|
+
20,
|
|
9207
|
+
20,
|
|
9208
|
+
21,
|
|
9209
|
+
21,
|
|
9210
|
+
21,
|
|
9211
|
+
21,
|
|
9212
|
+
16,
|
|
9213
|
+
72,
|
|
9214
|
+
78
|
|
9215
|
+
]);
|
|
9216
|
+
var dbase = new Uint16Array([
|
|
9217
|
+
/* Distance codes 0..29 base */
|
|
9218
|
+
1,
|
|
9219
|
+
2,
|
|
9220
|
+
3,
|
|
9221
|
+
4,
|
|
9222
|
+
5,
|
|
9223
|
+
7,
|
|
9224
|
+
9,
|
|
9225
|
+
13,
|
|
9226
|
+
17,
|
|
9227
|
+
25,
|
|
9228
|
+
33,
|
|
9229
|
+
49,
|
|
9230
|
+
65,
|
|
9231
|
+
97,
|
|
9232
|
+
129,
|
|
9233
|
+
193,
|
|
9234
|
+
257,
|
|
9235
|
+
385,
|
|
9236
|
+
513,
|
|
9237
|
+
769,
|
|
9238
|
+
1025,
|
|
9239
|
+
1537,
|
|
9240
|
+
2049,
|
|
9241
|
+
3073,
|
|
9242
|
+
4097,
|
|
9243
|
+
6145,
|
|
9244
|
+
8193,
|
|
9245
|
+
12289,
|
|
9246
|
+
16385,
|
|
9247
|
+
24577,
|
|
9248
|
+
0,
|
|
9249
|
+
0
|
|
9250
|
+
]);
|
|
9251
|
+
var dext = new Uint8Array([
|
|
9252
|
+
/* Distance codes 0..29 extra */
|
|
9253
|
+
16,
|
|
9254
|
+
16,
|
|
9255
|
+
16,
|
|
9256
|
+
16,
|
|
9257
|
+
17,
|
|
9258
|
+
17,
|
|
9259
|
+
18,
|
|
9260
|
+
18,
|
|
9261
|
+
19,
|
|
9262
|
+
19,
|
|
9263
|
+
20,
|
|
9264
|
+
20,
|
|
9265
|
+
21,
|
|
9266
|
+
21,
|
|
9267
|
+
22,
|
|
9268
|
+
22,
|
|
9269
|
+
23,
|
|
9270
|
+
23,
|
|
9271
|
+
24,
|
|
9272
|
+
24,
|
|
9273
|
+
25,
|
|
9274
|
+
25,
|
|
9275
|
+
26,
|
|
9276
|
+
26,
|
|
9277
|
+
27,
|
|
9278
|
+
27,
|
|
9279
|
+
28,
|
|
9280
|
+
28,
|
|
9281
|
+
29,
|
|
9282
|
+
29,
|
|
9283
|
+
64,
|
|
9284
|
+
64
|
|
9285
|
+
]);
|
|
9286
|
+
var inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => {
|
|
9287
|
+
const bits = opts.bits;
|
|
9288
|
+
let len = 0;
|
|
9289
|
+
let sym = 0;
|
|
9290
|
+
let min = 0, max = 0;
|
|
9291
|
+
let root = 0;
|
|
9292
|
+
let curr = 0;
|
|
9293
|
+
let drop = 0;
|
|
9294
|
+
let left = 0;
|
|
9295
|
+
let used = 0;
|
|
9296
|
+
let huff = 0;
|
|
9297
|
+
let incr;
|
|
9298
|
+
let fill;
|
|
9299
|
+
let low;
|
|
9300
|
+
let mask;
|
|
9301
|
+
let next;
|
|
9302
|
+
let base = null;
|
|
9303
|
+
let match;
|
|
9304
|
+
const count = new Uint16Array(MAXBITS + 1);
|
|
9305
|
+
const offs = new Uint16Array(MAXBITS + 1);
|
|
9306
|
+
let extra = null;
|
|
9307
|
+
let here_bits, here_op, here_val;
|
|
9308
|
+
for (len = 0; len <= MAXBITS; len++) {
|
|
9309
|
+
count[len] = 0;
|
|
9310
|
+
}
|
|
9311
|
+
for (sym = 0; sym < codes; sym++) {
|
|
9312
|
+
count[lens[lens_index + sym]]++;
|
|
9313
|
+
}
|
|
9314
|
+
root = bits;
|
|
9315
|
+
for (max = MAXBITS; max >= 1; max--) {
|
|
9316
|
+
if (count[max] !== 0) {
|
|
9317
|
+
break;
|
|
9318
|
+
}
|
|
9319
|
+
}
|
|
9320
|
+
if (root > max) {
|
|
9321
|
+
root = max;
|
|
9322
|
+
}
|
|
9323
|
+
if (max === 0) {
|
|
9324
|
+
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
9325
|
+
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
9326
|
+
opts.bits = 1;
|
|
9327
|
+
return 0;
|
|
9328
|
+
}
|
|
9329
|
+
for (min = 1; min < max; min++) {
|
|
9330
|
+
if (count[min] !== 0) {
|
|
9331
|
+
break;
|
|
9332
|
+
}
|
|
9333
|
+
}
|
|
9334
|
+
if (root < min) {
|
|
9335
|
+
root = min;
|
|
9336
|
+
}
|
|
9337
|
+
left = 1;
|
|
9338
|
+
for (len = 1; len <= MAXBITS; len++) {
|
|
9339
|
+
left <<= 1;
|
|
9340
|
+
left -= count[len];
|
|
9341
|
+
if (left < 0) {
|
|
9342
|
+
return -1;
|
|
9343
|
+
}
|
|
9344
|
+
}
|
|
9345
|
+
if (left > 0 && (type === CODES$1 || max !== 1)) {
|
|
9346
|
+
return -1;
|
|
9347
|
+
}
|
|
9348
|
+
offs[1] = 0;
|
|
9349
|
+
for (len = 1; len < MAXBITS; len++) {
|
|
9350
|
+
offs[len + 1] = offs[len] + count[len];
|
|
9351
|
+
}
|
|
9352
|
+
for (sym = 0; sym < codes; sym++) {
|
|
9353
|
+
if (lens[lens_index + sym] !== 0) {
|
|
9354
|
+
work[offs[lens[lens_index + sym]]++] = sym;
|
|
9355
|
+
}
|
|
9356
|
+
}
|
|
9357
|
+
if (type === CODES$1) {
|
|
9358
|
+
base = extra = work;
|
|
9359
|
+
match = 20;
|
|
9360
|
+
} else if (type === LENS$1) {
|
|
9361
|
+
base = lbase;
|
|
9362
|
+
extra = lext;
|
|
9363
|
+
match = 257;
|
|
9364
|
+
} else {
|
|
9365
|
+
base = dbase;
|
|
9366
|
+
extra = dext;
|
|
9367
|
+
match = 0;
|
|
9368
|
+
}
|
|
9369
|
+
huff = 0;
|
|
9370
|
+
sym = 0;
|
|
9371
|
+
len = min;
|
|
9372
|
+
next = table_index;
|
|
9373
|
+
curr = root;
|
|
9374
|
+
drop = 0;
|
|
9375
|
+
low = -1;
|
|
9376
|
+
used = 1 << root;
|
|
9377
|
+
mask = used - 1;
|
|
9378
|
+
if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {
|
|
9379
|
+
return 1;
|
|
9380
|
+
}
|
|
9381
|
+
for (; ; ) {
|
|
9382
|
+
here_bits = len - drop;
|
|
9383
|
+
if (work[sym] + 1 < match) {
|
|
9384
|
+
here_op = 0;
|
|
9385
|
+
here_val = work[sym];
|
|
9386
|
+
} else if (work[sym] >= match) {
|
|
9387
|
+
here_op = extra[work[sym] - match];
|
|
9388
|
+
here_val = base[work[sym] - match];
|
|
9389
|
+
} else {
|
|
9390
|
+
here_op = 32 + 64;
|
|
9391
|
+
here_val = 0;
|
|
9392
|
+
}
|
|
9393
|
+
incr = 1 << len - drop;
|
|
9394
|
+
fill = 1 << curr;
|
|
9395
|
+
min = fill;
|
|
9396
|
+
do {
|
|
9397
|
+
fill -= incr;
|
|
9398
|
+
table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
|
|
9399
|
+
} while (fill !== 0);
|
|
9400
|
+
incr = 1 << len - 1;
|
|
9401
|
+
while (huff & incr) {
|
|
9402
|
+
incr >>= 1;
|
|
9403
|
+
}
|
|
9404
|
+
if (incr !== 0) {
|
|
9405
|
+
huff &= incr - 1;
|
|
9406
|
+
huff += incr;
|
|
9407
|
+
} else {
|
|
9408
|
+
huff = 0;
|
|
9409
|
+
}
|
|
9410
|
+
sym++;
|
|
9411
|
+
if (--count[len] === 0) {
|
|
9412
|
+
if (len === max) {
|
|
9413
|
+
break;
|
|
9414
|
+
}
|
|
9415
|
+
len = lens[lens_index + work[sym]];
|
|
9416
|
+
}
|
|
9417
|
+
if (len > root && (huff & mask) !== low) {
|
|
9418
|
+
if (drop === 0) {
|
|
9419
|
+
drop = root;
|
|
9420
|
+
}
|
|
9421
|
+
next += min;
|
|
9422
|
+
curr = len - drop;
|
|
9423
|
+
left = 1 << curr;
|
|
9424
|
+
while (curr + drop < max) {
|
|
9425
|
+
left -= count[curr + drop];
|
|
9426
|
+
if (left <= 0) {
|
|
9427
|
+
break;
|
|
9428
|
+
}
|
|
9429
|
+
curr++;
|
|
9430
|
+
left <<= 1;
|
|
9431
|
+
}
|
|
9432
|
+
used += 1 << curr;
|
|
9433
|
+
if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {
|
|
9434
|
+
return 1;
|
|
9435
|
+
}
|
|
9436
|
+
low = huff & mask;
|
|
9437
|
+
table[low] = root << 24 | curr << 16 | next - table_index | 0;
|
|
9438
|
+
}
|
|
9439
|
+
}
|
|
9440
|
+
if (huff !== 0) {
|
|
9441
|
+
table[next + huff] = len - drop << 24 | 64 << 16 | 0;
|
|
9442
|
+
}
|
|
9443
|
+
opts.bits = root;
|
|
9444
|
+
return 0;
|
|
9445
|
+
};
|
|
9446
|
+
var inftrees = inflate_table;
|
|
9447
|
+
var CODES = 0;
|
|
9448
|
+
var LENS = 1;
|
|
9449
|
+
var DISTS = 2;
|
|
9450
|
+
var {
|
|
9451
|
+
Z_FINISH: Z_FINISH$1,
|
|
9452
|
+
Z_BLOCK,
|
|
9453
|
+
Z_TREES,
|
|
9454
|
+
Z_OK: Z_OK$1,
|
|
9455
|
+
Z_STREAM_END: Z_STREAM_END$1,
|
|
9456
|
+
Z_NEED_DICT: Z_NEED_DICT$1,
|
|
9457
|
+
Z_STREAM_ERROR: Z_STREAM_ERROR$1,
|
|
9458
|
+
Z_DATA_ERROR: Z_DATA_ERROR$1,
|
|
9459
|
+
Z_MEM_ERROR: Z_MEM_ERROR$1,
|
|
9460
|
+
Z_BUF_ERROR,
|
|
9461
|
+
Z_DEFLATED
|
|
9462
|
+
} = constants$2;
|
|
9463
|
+
var HEAD = 16180;
|
|
9464
|
+
var FLAGS = 16181;
|
|
9465
|
+
var TIME = 16182;
|
|
9466
|
+
var OS = 16183;
|
|
9467
|
+
var EXLEN = 16184;
|
|
9468
|
+
var EXTRA = 16185;
|
|
9469
|
+
var NAME = 16186;
|
|
9470
|
+
var COMMENT = 16187;
|
|
9471
|
+
var HCRC = 16188;
|
|
9472
|
+
var DICTID = 16189;
|
|
9473
|
+
var DICT = 16190;
|
|
9474
|
+
var TYPE = 16191;
|
|
9475
|
+
var TYPEDO = 16192;
|
|
9476
|
+
var STORED = 16193;
|
|
9477
|
+
var COPY_ = 16194;
|
|
9478
|
+
var COPY = 16195;
|
|
9479
|
+
var TABLE = 16196;
|
|
9480
|
+
var LENLENS = 16197;
|
|
9481
|
+
var CODELENS = 16198;
|
|
9482
|
+
var LEN_ = 16199;
|
|
9483
|
+
var LEN = 16200;
|
|
9484
|
+
var LENEXT = 16201;
|
|
9485
|
+
var DIST = 16202;
|
|
9486
|
+
var DISTEXT = 16203;
|
|
9487
|
+
var MATCH = 16204;
|
|
9488
|
+
var LIT = 16205;
|
|
9489
|
+
var CHECK = 16206;
|
|
9490
|
+
var LENGTH = 16207;
|
|
9491
|
+
var DONE = 16208;
|
|
9492
|
+
var BAD = 16209;
|
|
9493
|
+
var MEM = 16210;
|
|
9494
|
+
var SYNC = 16211;
|
|
9495
|
+
var ENOUGH_LENS = 852;
|
|
9496
|
+
var ENOUGH_DISTS = 592;
|
|
9497
|
+
var MAX_WBITS = 15;
|
|
9498
|
+
var DEF_WBITS = MAX_WBITS;
|
|
9499
|
+
var zswap32 = (q) => {
|
|
9500
|
+
return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
|
|
9501
|
+
};
|
|
9502
|
+
function InflateState() {
|
|
9503
|
+
this.strm = null;
|
|
9504
|
+
this.mode = 0;
|
|
9505
|
+
this.last = false;
|
|
9506
|
+
this.wrap = 0;
|
|
9507
|
+
this.havedict = false;
|
|
9508
|
+
this.flags = 0;
|
|
9509
|
+
this.dmax = 0;
|
|
9510
|
+
this.check = 0;
|
|
9511
|
+
this.total = 0;
|
|
9512
|
+
this.head = null;
|
|
9513
|
+
this.wbits = 0;
|
|
9514
|
+
this.wsize = 0;
|
|
9515
|
+
this.whave = 0;
|
|
9516
|
+
this.wnext = 0;
|
|
9517
|
+
this.window = null;
|
|
9518
|
+
this.hold = 0;
|
|
9519
|
+
this.bits = 0;
|
|
9520
|
+
this.length = 0;
|
|
9521
|
+
this.offset = 0;
|
|
9522
|
+
this.extra = 0;
|
|
9523
|
+
this.lencode = null;
|
|
9524
|
+
this.distcode = null;
|
|
9525
|
+
this.lenbits = 0;
|
|
9526
|
+
this.distbits = 0;
|
|
9527
|
+
this.ncode = 0;
|
|
9528
|
+
this.nlen = 0;
|
|
9529
|
+
this.ndist = 0;
|
|
9530
|
+
this.have = 0;
|
|
9531
|
+
this.next = null;
|
|
9532
|
+
this.lens = new Uint16Array(320);
|
|
9533
|
+
this.work = new Uint16Array(288);
|
|
9534
|
+
this.lendyn = null;
|
|
9535
|
+
this.distdyn = null;
|
|
9536
|
+
this.sane = 0;
|
|
9537
|
+
this.back = 0;
|
|
9538
|
+
this.was = 0;
|
|
9539
|
+
}
|
|
9540
|
+
var inflateStateCheck = (strm) => {
|
|
9541
|
+
if (!strm) {
|
|
9542
|
+
return 1;
|
|
9543
|
+
}
|
|
9544
|
+
const state = strm.state;
|
|
9545
|
+
if (!state || state.strm !== strm || state.mode < HEAD || state.mode > SYNC) {
|
|
9546
|
+
return 1;
|
|
9547
|
+
}
|
|
9548
|
+
return 0;
|
|
9549
|
+
};
|
|
9550
|
+
var inflateResetKeep = (strm) => {
|
|
9551
|
+
if (inflateStateCheck(strm)) {
|
|
9552
|
+
return Z_STREAM_ERROR$1;
|
|
9553
|
+
}
|
|
9554
|
+
const state = strm.state;
|
|
9555
|
+
strm.total_in = strm.total_out = state.total = 0;
|
|
9556
|
+
strm.msg = "";
|
|
9557
|
+
if (state.wrap) {
|
|
9558
|
+
strm.adler = state.wrap & 1;
|
|
9559
|
+
}
|
|
9560
|
+
state.mode = HEAD;
|
|
9561
|
+
state.last = 0;
|
|
9562
|
+
state.havedict = 0;
|
|
9563
|
+
state.flags = -1;
|
|
9564
|
+
state.dmax = 32768;
|
|
9565
|
+
state.head = null;
|
|
9566
|
+
state.hold = 0;
|
|
9567
|
+
state.bits = 0;
|
|
9568
|
+
state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);
|
|
9569
|
+
state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);
|
|
9570
|
+
state.sane = 1;
|
|
9571
|
+
state.back = -1;
|
|
9572
|
+
return Z_OK$1;
|
|
9573
|
+
};
|
|
9574
|
+
var inflateReset = (strm) => {
|
|
9575
|
+
if (inflateStateCheck(strm)) {
|
|
9576
|
+
return Z_STREAM_ERROR$1;
|
|
9577
|
+
}
|
|
9578
|
+
const state = strm.state;
|
|
9579
|
+
state.wsize = 0;
|
|
9580
|
+
state.whave = 0;
|
|
9581
|
+
state.wnext = 0;
|
|
9582
|
+
return inflateResetKeep(strm);
|
|
9583
|
+
};
|
|
9584
|
+
var inflateReset2 = (strm, windowBits) => {
|
|
9585
|
+
let wrap;
|
|
9586
|
+
if (inflateStateCheck(strm)) {
|
|
9587
|
+
return Z_STREAM_ERROR$1;
|
|
9588
|
+
}
|
|
9589
|
+
const state = strm.state;
|
|
9590
|
+
if (windowBits < 0) {
|
|
9591
|
+
wrap = 0;
|
|
9592
|
+
windowBits = -windowBits;
|
|
9593
|
+
} else {
|
|
9594
|
+
wrap = (windowBits >> 4) + 5;
|
|
9595
|
+
if (windowBits < 48) {
|
|
9596
|
+
windowBits &= 15;
|
|
9597
|
+
}
|
|
9598
|
+
}
|
|
9599
|
+
if (windowBits && (windowBits < 8 || windowBits > 15)) {
|
|
9600
|
+
return Z_STREAM_ERROR$1;
|
|
9601
|
+
}
|
|
9602
|
+
if (state.window !== null && state.wbits !== windowBits) {
|
|
9603
|
+
state.window = null;
|
|
9604
|
+
}
|
|
9605
|
+
state.wrap = wrap;
|
|
9606
|
+
state.wbits = windowBits;
|
|
9607
|
+
return inflateReset(strm);
|
|
9608
|
+
};
|
|
9609
|
+
var inflateInit2 = (strm, windowBits) => {
|
|
9610
|
+
if (!strm) {
|
|
9611
|
+
return Z_STREAM_ERROR$1;
|
|
9612
|
+
}
|
|
9613
|
+
const state = new InflateState();
|
|
9614
|
+
strm.state = state;
|
|
9615
|
+
state.strm = strm;
|
|
9616
|
+
state.window = null;
|
|
9617
|
+
state.mode = HEAD;
|
|
9618
|
+
const ret = inflateReset2(strm, windowBits);
|
|
9619
|
+
if (ret !== Z_OK$1) {
|
|
9620
|
+
strm.state = null;
|
|
9621
|
+
}
|
|
9622
|
+
return ret;
|
|
9623
|
+
};
|
|
9624
|
+
var inflateInit = (strm) => {
|
|
9625
|
+
return inflateInit2(strm, DEF_WBITS);
|
|
9626
|
+
};
|
|
9627
|
+
var virgin = true;
|
|
9628
|
+
var lenfix;
|
|
9629
|
+
var distfix;
|
|
9630
|
+
var fixedtables = (state) => {
|
|
9631
|
+
if (virgin) {
|
|
9632
|
+
lenfix = new Int32Array(512);
|
|
9633
|
+
distfix = new Int32Array(32);
|
|
9634
|
+
let sym = 0;
|
|
9635
|
+
while (sym < 144) {
|
|
9636
|
+
state.lens[sym++] = 8;
|
|
9637
|
+
}
|
|
9638
|
+
while (sym < 256) {
|
|
9639
|
+
state.lens[sym++] = 9;
|
|
9640
|
+
}
|
|
9641
|
+
while (sym < 280) {
|
|
9642
|
+
state.lens[sym++] = 7;
|
|
9643
|
+
}
|
|
9644
|
+
while (sym < 288) {
|
|
9645
|
+
state.lens[sym++] = 8;
|
|
9646
|
+
}
|
|
9647
|
+
inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
|
|
9648
|
+
sym = 0;
|
|
9649
|
+
while (sym < 32) {
|
|
9650
|
+
state.lens[sym++] = 5;
|
|
9651
|
+
}
|
|
9652
|
+
inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
|
|
9653
|
+
virgin = false;
|
|
9654
|
+
}
|
|
9655
|
+
state.lencode = lenfix;
|
|
9656
|
+
state.lenbits = 9;
|
|
9657
|
+
state.distcode = distfix;
|
|
9658
|
+
state.distbits = 5;
|
|
9659
|
+
};
|
|
9660
|
+
var updatewindow = (strm, src, end, copy) => {
|
|
9661
|
+
let dist;
|
|
9662
|
+
const state = strm.state;
|
|
9663
|
+
if (state.window === null) {
|
|
9664
|
+
state.wsize = 1 << state.wbits;
|
|
9665
|
+
state.wnext = 0;
|
|
9666
|
+
state.whave = 0;
|
|
9667
|
+
state.window = new Uint8Array(state.wsize);
|
|
9668
|
+
}
|
|
9669
|
+
if (copy >= state.wsize) {
|
|
9670
|
+
state.window.set(src.subarray(end - state.wsize, end), 0);
|
|
9671
|
+
state.wnext = 0;
|
|
9672
|
+
state.whave = state.wsize;
|
|
9673
|
+
} else {
|
|
9674
|
+
dist = state.wsize - state.wnext;
|
|
9675
|
+
if (dist > copy) {
|
|
9676
|
+
dist = copy;
|
|
9677
|
+
}
|
|
9678
|
+
state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);
|
|
9679
|
+
copy -= dist;
|
|
9680
|
+
if (copy) {
|
|
9681
|
+
state.window.set(src.subarray(end - copy, end), 0);
|
|
9682
|
+
state.wnext = copy;
|
|
9683
|
+
state.whave = state.wsize;
|
|
9684
|
+
} else {
|
|
9685
|
+
state.wnext += dist;
|
|
9686
|
+
if (state.wnext === state.wsize) {
|
|
9687
|
+
state.wnext = 0;
|
|
9688
|
+
}
|
|
9689
|
+
if (state.whave < state.wsize) {
|
|
9690
|
+
state.whave += dist;
|
|
9691
|
+
}
|
|
9692
|
+
}
|
|
9693
|
+
}
|
|
9694
|
+
return 0;
|
|
9695
|
+
};
|
|
9696
|
+
var inflate$2 = (strm, flush) => {
|
|
9697
|
+
let state;
|
|
9698
|
+
let input, output;
|
|
9699
|
+
let next;
|
|
9700
|
+
let put;
|
|
9701
|
+
let have, left;
|
|
9702
|
+
let hold;
|
|
9703
|
+
let bits;
|
|
9704
|
+
let _in, _out;
|
|
9705
|
+
let copy;
|
|
9706
|
+
let from;
|
|
9707
|
+
let from_source;
|
|
9708
|
+
let here = 0;
|
|
9709
|
+
let here_bits, here_op, here_val;
|
|
9710
|
+
let last_bits, last_op, last_val;
|
|
9711
|
+
let len;
|
|
9712
|
+
let ret;
|
|
9713
|
+
const hbuf = new Uint8Array(4);
|
|
9714
|
+
let opts;
|
|
9715
|
+
let n;
|
|
9716
|
+
const order = (
|
|
9717
|
+
/* permutation of code lengths */
|
|
9718
|
+
new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
|
|
9719
|
+
);
|
|
9720
|
+
if (inflateStateCheck(strm) || !strm.output || !strm.input && strm.avail_in !== 0) {
|
|
9721
|
+
return Z_STREAM_ERROR$1;
|
|
9722
|
+
}
|
|
9723
|
+
state = strm.state;
|
|
9724
|
+
if (state.mode === TYPE) {
|
|
9725
|
+
state.mode = TYPEDO;
|
|
9726
|
+
}
|
|
9727
|
+
put = strm.next_out;
|
|
9728
|
+
output = strm.output;
|
|
9729
|
+
left = strm.avail_out;
|
|
9730
|
+
next = strm.next_in;
|
|
9731
|
+
input = strm.input;
|
|
9732
|
+
have = strm.avail_in;
|
|
9733
|
+
hold = state.hold;
|
|
9734
|
+
bits = state.bits;
|
|
9735
|
+
_in = have;
|
|
9736
|
+
_out = left;
|
|
9737
|
+
ret = Z_OK$1;
|
|
9738
|
+
inf_leave:
|
|
9739
|
+
for (; ; ) {
|
|
9740
|
+
switch (state.mode) {
|
|
9741
|
+
case HEAD:
|
|
9742
|
+
if (state.wrap === 0) {
|
|
9743
|
+
state.mode = TYPEDO;
|
|
9744
|
+
break;
|
|
9745
|
+
}
|
|
9746
|
+
while (bits < 16) {
|
|
9747
|
+
if (have === 0) {
|
|
9748
|
+
break inf_leave;
|
|
9749
|
+
}
|
|
9750
|
+
have--;
|
|
9751
|
+
hold += input[next++] << bits;
|
|
9752
|
+
bits += 8;
|
|
9753
|
+
}
|
|
9754
|
+
if (state.wrap & 2 && hold === 35615) {
|
|
9755
|
+
if (state.wbits === 0) {
|
|
9756
|
+
state.wbits = 15;
|
|
9757
|
+
}
|
|
9758
|
+
state.check = 0;
|
|
9759
|
+
hbuf[0] = hold & 255;
|
|
9760
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
9761
|
+
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
9762
|
+
hold = 0;
|
|
9763
|
+
bits = 0;
|
|
9764
|
+
state.mode = FLAGS;
|
|
9765
|
+
break;
|
|
9766
|
+
}
|
|
9767
|
+
if (state.head) {
|
|
9768
|
+
state.head.done = false;
|
|
9769
|
+
}
|
|
9770
|
+
if (!(state.wrap & 1) || /* check if zlib header allowed */
|
|
9771
|
+
(((hold & 255) << 8) + (hold >> 8)) % 31) {
|
|
9772
|
+
strm.msg = "incorrect header check";
|
|
9773
|
+
state.mode = BAD;
|
|
9774
|
+
break;
|
|
9775
|
+
}
|
|
9776
|
+
if ((hold & 15) !== Z_DEFLATED) {
|
|
9777
|
+
strm.msg = "unknown compression method";
|
|
9778
|
+
state.mode = BAD;
|
|
9779
|
+
break;
|
|
9780
|
+
}
|
|
9781
|
+
hold >>>= 4;
|
|
9782
|
+
bits -= 4;
|
|
9783
|
+
len = (hold & 15) + 8;
|
|
9784
|
+
if (state.wbits === 0) {
|
|
9785
|
+
state.wbits = len;
|
|
9786
|
+
}
|
|
9787
|
+
if (len > 15 || len > state.wbits) {
|
|
9788
|
+
strm.msg = "invalid window size";
|
|
9789
|
+
state.mode = BAD;
|
|
9790
|
+
break;
|
|
9791
|
+
}
|
|
9792
|
+
state.dmax = 1 << state.wbits;
|
|
9793
|
+
state.flags = 0;
|
|
9794
|
+
strm.adler = state.check = 1;
|
|
9795
|
+
state.mode = hold & 512 ? DICTID : TYPE;
|
|
9796
|
+
hold = 0;
|
|
9797
|
+
bits = 0;
|
|
9798
|
+
break;
|
|
9799
|
+
case FLAGS:
|
|
9800
|
+
while (bits < 16) {
|
|
9801
|
+
if (have === 0) {
|
|
9802
|
+
break inf_leave;
|
|
9803
|
+
}
|
|
9804
|
+
have--;
|
|
9805
|
+
hold += input[next++] << bits;
|
|
9806
|
+
bits += 8;
|
|
9807
|
+
}
|
|
9808
|
+
state.flags = hold;
|
|
9809
|
+
if ((state.flags & 255) !== Z_DEFLATED) {
|
|
9810
|
+
strm.msg = "unknown compression method";
|
|
9811
|
+
state.mode = BAD;
|
|
9812
|
+
break;
|
|
9813
|
+
}
|
|
9814
|
+
if (state.flags & 57344) {
|
|
9815
|
+
strm.msg = "unknown header flags set";
|
|
9816
|
+
state.mode = BAD;
|
|
9817
|
+
break;
|
|
9818
|
+
}
|
|
9819
|
+
if (state.head) {
|
|
9820
|
+
state.head.text = hold >> 8 & 1;
|
|
9821
|
+
}
|
|
9822
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9823
|
+
hbuf[0] = hold & 255;
|
|
9824
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
9825
|
+
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
9826
|
+
}
|
|
9827
|
+
hold = 0;
|
|
9828
|
+
bits = 0;
|
|
9829
|
+
state.mode = TIME;
|
|
9830
|
+
/* falls through */
|
|
9831
|
+
case TIME:
|
|
9832
|
+
while (bits < 32) {
|
|
9833
|
+
if (have === 0) {
|
|
9834
|
+
break inf_leave;
|
|
9835
|
+
}
|
|
9836
|
+
have--;
|
|
9837
|
+
hold += input[next++] << bits;
|
|
9838
|
+
bits += 8;
|
|
9839
|
+
}
|
|
9840
|
+
if (state.head) {
|
|
9841
|
+
state.head.time = hold;
|
|
9842
|
+
}
|
|
9843
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9844
|
+
hbuf[0] = hold & 255;
|
|
9845
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
9846
|
+
hbuf[2] = hold >>> 16 & 255;
|
|
9847
|
+
hbuf[3] = hold >>> 24 & 255;
|
|
9848
|
+
state.check = crc32_1(state.check, hbuf, 4, 0);
|
|
9849
|
+
}
|
|
9850
|
+
hold = 0;
|
|
9851
|
+
bits = 0;
|
|
9852
|
+
state.mode = OS;
|
|
9853
|
+
/* falls through */
|
|
9854
|
+
case OS:
|
|
9855
|
+
while (bits < 16) {
|
|
9856
|
+
if (have === 0) {
|
|
9857
|
+
break inf_leave;
|
|
9858
|
+
}
|
|
9859
|
+
have--;
|
|
9860
|
+
hold += input[next++] << bits;
|
|
9861
|
+
bits += 8;
|
|
9862
|
+
}
|
|
9863
|
+
if (state.head) {
|
|
9864
|
+
state.head.xflags = hold & 255;
|
|
9865
|
+
state.head.os = hold >> 8;
|
|
9866
|
+
}
|
|
9867
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9868
|
+
hbuf[0] = hold & 255;
|
|
9869
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
9870
|
+
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
9871
|
+
}
|
|
9872
|
+
hold = 0;
|
|
9873
|
+
bits = 0;
|
|
9874
|
+
state.mode = EXLEN;
|
|
9875
|
+
/* falls through */
|
|
9876
|
+
case EXLEN:
|
|
9877
|
+
if (state.flags & 1024) {
|
|
9878
|
+
while (bits < 16) {
|
|
9879
|
+
if (have === 0) {
|
|
9880
|
+
break inf_leave;
|
|
9881
|
+
}
|
|
9882
|
+
have--;
|
|
9883
|
+
hold += input[next++] << bits;
|
|
9884
|
+
bits += 8;
|
|
9885
|
+
}
|
|
9886
|
+
state.length = hold;
|
|
9887
|
+
if (state.head) {
|
|
9888
|
+
state.head.extra_len = hold;
|
|
9889
|
+
}
|
|
9890
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9891
|
+
hbuf[0] = hold & 255;
|
|
9892
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
9893
|
+
state.check = crc32_1(state.check, hbuf, 2, 0);
|
|
9894
|
+
}
|
|
9895
|
+
hold = 0;
|
|
9896
|
+
bits = 0;
|
|
9897
|
+
} else if (state.head) {
|
|
9898
|
+
state.head.extra = null;
|
|
9899
|
+
}
|
|
9900
|
+
state.mode = EXTRA;
|
|
9901
|
+
/* falls through */
|
|
9902
|
+
case EXTRA:
|
|
9903
|
+
if (state.flags & 1024) {
|
|
9904
|
+
copy = state.length;
|
|
9905
|
+
if (copy > have) {
|
|
9906
|
+
copy = have;
|
|
9907
|
+
}
|
|
9908
|
+
if (copy) {
|
|
9909
|
+
if (state.head) {
|
|
9910
|
+
len = state.head.extra_len - state.length;
|
|
9911
|
+
if (!state.head.extra) {
|
|
9912
|
+
state.head.extra = new Uint8Array(state.head.extra_len);
|
|
9913
|
+
}
|
|
9914
|
+
state.head.extra.set(
|
|
9915
|
+
input.subarray(
|
|
9916
|
+
next,
|
|
9917
|
+
// extra field is limited to 65536 bytes
|
|
9918
|
+
// - no need for additional size check
|
|
9919
|
+
next + copy
|
|
9920
|
+
),
|
|
9921
|
+
/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
|
|
9922
|
+
len
|
|
9923
|
+
);
|
|
9924
|
+
}
|
|
9925
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9926
|
+
state.check = crc32_1(state.check, input, copy, next);
|
|
9927
|
+
}
|
|
9928
|
+
have -= copy;
|
|
9929
|
+
next += copy;
|
|
9930
|
+
state.length -= copy;
|
|
9931
|
+
}
|
|
9932
|
+
if (state.length) {
|
|
9933
|
+
break inf_leave;
|
|
9934
|
+
}
|
|
9935
|
+
}
|
|
9936
|
+
state.length = 0;
|
|
9937
|
+
state.mode = NAME;
|
|
9938
|
+
/* falls through */
|
|
9939
|
+
case NAME:
|
|
9940
|
+
if (state.flags & 2048) {
|
|
9941
|
+
if (have === 0) {
|
|
9942
|
+
break inf_leave;
|
|
9943
|
+
}
|
|
9944
|
+
copy = 0;
|
|
9945
|
+
do {
|
|
9946
|
+
len = input[next + copy++];
|
|
9947
|
+
if (state.head && len && state.length < 65536) {
|
|
9948
|
+
state.head.name += String.fromCharCode(len);
|
|
9949
|
+
}
|
|
9950
|
+
} while (len && copy < have);
|
|
9951
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9952
|
+
state.check = crc32_1(state.check, input, copy, next);
|
|
9953
|
+
}
|
|
9954
|
+
have -= copy;
|
|
9955
|
+
next += copy;
|
|
9956
|
+
if (len) {
|
|
9957
|
+
break inf_leave;
|
|
9958
|
+
}
|
|
9959
|
+
} else if (state.head) {
|
|
9960
|
+
state.head.name = null;
|
|
9961
|
+
}
|
|
9962
|
+
state.length = 0;
|
|
9963
|
+
state.mode = COMMENT;
|
|
9964
|
+
/* falls through */
|
|
9965
|
+
case COMMENT:
|
|
9966
|
+
if (state.flags & 4096) {
|
|
9967
|
+
if (have === 0) {
|
|
9968
|
+
break inf_leave;
|
|
9969
|
+
}
|
|
9970
|
+
copy = 0;
|
|
9971
|
+
do {
|
|
9972
|
+
len = input[next + copy++];
|
|
9973
|
+
if (state.head && len && state.length < 65536) {
|
|
9974
|
+
state.head.comment += String.fromCharCode(len);
|
|
9975
|
+
}
|
|
9976
|
+
} while (len && copy < have);
|
|
9977
|
+
if (state.flags & 512 && state.wrap & 4) {
|
|
9978
|
+
state.check = crc32_1(state.check, input, copy, next);
|
|
9979
|
+
}
|
|
9980
|
+
have -= copy;
|
|
9981
|
+
next += copy;
|
|
9982
|
+
if (len) {
|
|
9983
|
+
break inf_leave;
|
|
9984
|
+
}
|
|
9985
|
+
} else if (state.head) {
|
|
9986
|
+
state.head.comment = null;
|
|
9987
|
+
}
|
|
9988
|
+
state.mode = HCRC;
|
|
9989
|
+
/* falls through */
|
|
9990
|
+
case HCRC:
|
|
9991
|
+
if (state.flags & 512) {
|
|
9992
|
+
while (bits < 16) {
|
|
9993
|
+
if (have === 0) {
|
|
9994
|
+
break inf_leave;
|
|
9995
|
+
}
|
|
9996
|
+
have--;
|
|
9997
|
+
hold += input[next++] << bits;
|
|
9998
|
+
bits += 8;
|
|
9999
|
+
}
|
|
10000
|
+
if (state.wrap & 4 && hold !== (state.check & 65535)) {
|
|
10001
|
+
strm.msg = "header crc mismatch";
|
|
10002
|
+
state.mode = BAD;
|
|
10003
|
+
break;
|
|
10004
|
+
}
|
|
10005
|
+
hold = 0;
|
|
10006
|
+
bits = 0;
|
|
10007
|
+
}
|
|
10008
|
+
if (state.head) {
|
|
10009
|
+
state.head.hcrc = state.flags >> 9 & 1;
|
|
10010
|
+
state.head.done = true;
|
|
10011
|
+
}
|
|
10012
|
+
strm.adler = state.check = 0;
|
|
10013
|
+
state.mode = TYPE;
|
|
10014
|
+
break;
|
|
10015
|
+
case DICTID:
|
|
10016
|
+
while (bits < 32) {
|
|
10017
|
+
if (have === 0) {
|
|
10018
|
+
break inf_leave;
|
|
10019
|
+
}
|
|
10020
|
+
have--;
|
|
10021
|
+
hold += input[next++] << bits;
|
|
10022
|
+
bits += 8;
|
|
10023
|
+
}
|
|
10024
|
+
strm.adler = state.check = zswap32(hold);
|
|
10025
|
+
hold = 0;
|
|
10026
|
+
bits = 0;
|
|
10027
|
+
state.mode = DICT;
|
|
10028
|
+
/* falls through */
|
|
10029
|
+
case DICT:
|
|
10030
|
+
if (state.havedict === 0) {
|
|
10031
|
+
strm.next_out = put;
|
|
10032
|
+
strm.avail_out = left;
|
|
10033
|
+
strm.next_in = next;
|
|
10034
|
+
strm.avail_in = have;
|
|
10035
|
+
state.hold = hold;
|
|
10036
|
+
state.bits = bits;
|
|
10037
|
+
return Z_NEED_DICT$1;
|
|
10038
|
+
}
|
|
10039
|
+
strm.adler = state.check = 1;
|
|
10040
|
+
state.mode = TYPE;
|
|
10041
|
+
/* falls through */
|
|
10042
|
+
case TYPE:
|
|
10043
|
+
if (flush === Z_BLOCK || flush === Z_TREES) {
|
|
10044
|
+
break inf_leave;
|
|
10045
|
+
}
|
|
10046
|
+
/* falls through */
|
|
10047
|
+
case TYPEDO:
|
|
10048
|
+
if (state.last) {
|
|
10049
|
+
hold >>>= bits & 7;
|
|
10050
|
+
bits -= bits & 7;
|
|
10051
|
+
state.mode = CHECK;
|
|
10052
|
+
break;
|
|
10053
|
+
}
|
|
10054
|
+
while (bits < 3) {
|
|
10055
|
+
if (have === 0) {
|
|
10056
|
+
break inf_leave;
|
|
10057
|
+
}
|
|
10058
|
+
have--;
|
|
10059
|
+
hold += input[next++] << bits;
|
|
10060
|
+
bits += 8;
|
|
10061
|
+
}
|
|
10062
|
+
state.last = hold & 1;
|
|
10063
|
+
hold >>>= 1;
|
|
10064
|
+
bits -= 1;
|
|
10065
|
+
switch (hold & 3) {
|
|
10066
|
+
case 0:
|
|
10067
|
+
state.mode = STORED;
|
|
10068
|
+
break;
|
|
10069
|
+
case 1:
|
|
10070
|
+
fixedtables(state);
|
|
10071
|
+
state.mode = LEN_;
|
|
10072
|
+
if (flush === Z_TREES) {
|
|
10073
|
+
hold >>>= 2;
|
|
10074
|
+
bits -= 2;
|
|
10075
|
+
break inf_leave;
|
|
10076
|
+
}
|
|
10077
|
+
break;
|
|
10078
|
+
case 2:
|
|
10079
|
+
state.mode = TABLE;
|
|
10080
|
+
break;
|
|
10081
|
+
case 3:
|
|
10082
|
+
strm.msg = "invalid block type";
|
|
10083
|
+
state.mode = BAD;
|
|
10084
|
+
}
|
|
10085
|
+
hold >>>= 2;
|
|
10086
|
+
bits -= 2;
|
|
10087
|
+
break;
|
|
10088
|
+
case STORED:
|
|
10089
|
+
hold >>>= bits & 7;
|
|
10090
|
+
bits -= bits & 7;
|
|
10091
|
+
while (bits < 32) {
|
|
10092
|
+
if (have === 0) {
|
|
10093
|
+
break inf_leave;
|
|
10094
|
+
}
|
|
10095
|
+
have--;
|
|
10096
|
+
hold += input[next++] << bits;
|
|
10097
|
+
bits += 8;
|
|
10098
|
+
}
|
|
10099
|
+
if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
|
|
10100
|
+
strm.msg = "invalid stored block lengths";
|
|
10101
|
+
state.mode = BAD;
|
|
10102
|
+
break;
|
|
10103
|
+
}
|
|
10104
|
+
state.length = hold & 65535;
|
|
10105
|
+
hold = 0;
|
|
10106
|
+
bits = 0;
|
|
10107
|
+
state.mode = COPY_;
|
|
10108
|
+
if (flush === Z_TREES) {
|
|
10109
|
+
break inf_leave;
|
|
10110
|
+
}
|
|
10111
|
+
/* falls through */
|
|
10112
|
+
case COPY_:
|
|
10113
|
+
state.mode = COPY;
|
|
10114
|
+
/* falls through */
|
|
10115
|
+
case COPY:
|
|
10116
|
+
copy = state.length;
|
|
10117
|
+
if (copy) {
|
|
10118
|
+
if (copy > have) {
|
|
10119
|
+
copy = have;
|
|
10120
|
+
}
|
|
10121
|
+
if (copy > left) {
|
|
10122
|
+
copy = left;
|
|
10123
|
+
}
|
|
10124
|
+
if (copy === 0) {
|
|
10125
|
+
break inf_leave;
|
|
10126
|
+
}
|
|
10127
|
+
output.set(input.subarray(next, next + copy), put);
|
|
10128
|
+
have -= copy;
|
|
10129
|
+
next += copy;
|
|
10130
|
+
left -= copy;
|
|
10131
|
+
put += copy;
|
|
10132
|
+
state.length -= copy;
|
|
10133
|
+
break;
|
|
10134
|
+
}
|
|
10135
|
+
state.mode = TYPE;
|
|
10136
|
+
break;
|
|
10137
|
+
case TABLE:
|
|
10138
|
+
while (bits < 14) {
|
|
10139
|
+
if (have === 0) {
|
|
10140
|
+
break inf_leave;
|
|
10141
|
+
}
|
|
10142
|
+
have--;
|
|
10143
|
+
hold += input[next++] << bits;
|
|
10144
|
+
bits += 8;
|
|
10145
|
+
}
|
|
10146
|
+
state.nlen = (hold & 31) + 257;
|
|
10147
|
+
hold >>>= 5;
|
|
10148
|
+
bits -= 5;
|
|
10149
|
+
state.ndist = (hold & 31) + 1;
|
|
10150
|
+
hold >>>= 5;
|
|
10151
|
+
bits -= 5;
|
|
10152
|
+
state.ncode = (hold & 15) + 4;
|
|
10153
|
+
hold >>>= 4;
|
|
10154
|
+
bits -= 4;
|
|
10155
|
+
if (state.nlen > 286 || state.ndist > 30) {
|
|
10156
|
+
strm.msg = "too many length or distance symbols";
|
|
10157
|
+
state.mode = BAD;
|
|
10158
|
+
break;
|
|
10159
|
+
}
|
|
10160
|
+
state.have = 0;
|
|
10161
|
+
state.mode = LENLENS;
|
|
10162
|
+
/* falls through */
|
|
10163
|
+
case LENLENS:
|
|
10164
|
+
while (state.have < state.ncode) {
|
|
10165
|
+
while (bits < 3) {
|
|
10166
|
+
if (have === 0) {
|
|
10167
|
+
break inf_leave;
|
|
10168
|
+
}
|
|
10169
|
+
have--;
|
|
10170
|
+
hold += input[next++] << bits;
|
|
10171
|
+
bits += 8;
|
|
10172
|
+
}
|
|
10173
|
+
state.lens[order[state.have++]] = hold & 7;
|
|
10174
|
+
hold >>>= 3;
|
|
10175
|
+
bits -= 3;
|
|
10176
|
+
}
|
|
10177
|
+
while (state.have < 19) {
|
|
10178
|
+
state.lens[order[state.have++]] = 0;
|
|
10179
|
+
}
|
|
10180
|
+
state.lencode = state.lendyn;
|
|
10181
|
+
state.lenbits = 7;
|
|
10182
|
+
opts = { bits: state.lenbits };
|
|
10183
|
+
ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
|
|
10184
|
+
state.lenbits = opts.bits;
|
|
10185
|
+
if (ret) {
|
|
10186
|
+
strm.msg = "invalid code lengths set";
|
|
10187
|
+
state.mode = BAD;
|
|
10188
|
+
break;
|
|
10189
|
+
}
|
|
10190
|
+
state.have = 0;
|
|
10191
|
+
state.mode = CODELENS;
|
|
10192
|
+
/* falls through */
|
|
10193
|
+
case CODELENS:
|
|
10194
|
+
while (state.have < state.nlen + state.ndist) {
|
|
10195
|
+
for (; ; ) {
|
|
10196
|
+
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
10197
|
+
here_bits = here >>> 24;
|
|
10198
|
+
here_op = here >>> 16 & 255;
|
|
10199
|
+
here_val = here & 65535;
|
|
10200
|
+
if (here_bits <= bits) {
|
|
10201
|
+
break;
|
|
10202
|
+
}
|
|
10203
|
+
if (have === 0) {
|
|
10204
|
+
break inf_leave;
|
|
10205
|
+
}
|
|
10206
|
+
have--;
|
|
10207
|
+
hold += input[next++] << bits;
|
|
10208
|
+
bits += 8;
|
|
10209
|
+
}
|
|
10210
|
+
if (here_val < 16) {
|
|
10211
|
+
hold >>>= here_bits;
|
|
10212
|
+
bits -= here_bits;
|
|
10213
|
+
state.lens[state.have++] = here_val;
|
|
10214
|
+
} else {
|
|
10215
|
+
if (here_val === 16) {
|
|
10216
|
+
n = here_bits + 2;
|
|
10217
|
+
while (bits < n) {
|
|
10218
|
+
if (have === 0) {
|
|
10219
|
+
break inf_leave;
|
|
10220
|
+
}
|
|
10221
|
+
have--;
|
|
10222
|
+
hold += input[next++] << bits;
|
|
10223
|
+
bits += 8;
|
|
10224
|
+
}
|
|
10225
|
+
hold >>>= here_bits;
|
|
10226
|
+
bits -= here_bits;
|
|
10227
|
+
if (state.have === 0) {
|
|
10228
|
+
strm.msg = "invalid bit length repeat";
|
|
10229
|
+
state.mode = BAD;
|
|
10230
|
+
break;
|
|
10231
|
+
}
|
|
10232
|
+
len = state.lens[state.have - 1];
|
|
10233
|
+
copy = 3 + (hold & 3);
|
|
10234
|
+
hold >>>= 2;
|
|
10235
|
+
bits -= 2;
|
|
10236
|
+
} else if (here_val === 17) {
|
|
10237
|
+
n = here_bits + 3;
|
|
10238
|
+
while (bits < n) {
|
|
10239
|
+
if (have === 0) {
|
|
10240
|
+
break inf_leave;
|
|
10241
|
+
}
|
|
10242
|
+
have--;
|
|
10243
|
+
hold += input[next++] << bits;
|
|
10244
|
+
bits += 8;
|
|
10245
|
+
}
|
|
10246
|
+
hold >>>= here_bits;
|
|
10247
|
+
bits -= here_bits;
|
|
10248
|
+
len = 0;
|
|
10249
|
+
copy = 3 + (hold & 7);
|
|
10250
|
+
hold >>>= 3;
|
|
10251
|
+
bits -= 3;
|
|
10252
|
+
} else {
|
|
10253
|
+
n = here_bits + 7;
|
|
10254
|
+
while (bits < n) {
|
|
10255
|
+
if (have === 0) {
|
|
10256
|
+
break inf_leave;
|
|
10257
|
+
}
|
|
10258
|
+
have--;
|
|
10259
|
+
hold += input[next++] << bits;
|
|
10260
|
+
bits += 8;
|
|
10261
|
+
}
|
|
10262
|
+
hold >>>= here_bits;
|
|
10263
|
+
bits -= here_bits;
|
|
10264
|
+
len = 0;
|
|
10265
|
+
copy = 11 + (hold & 127);
|
|
10266
|
+
hold >>>= 7;
|
|
10267
|
+
bits -= 7;
|
|
10268
|
+
}
|
|
10269
|
+
if (state.have + copy > state.nlen + state.ndist) {
|
|
10270
|
+
strm.msg = "invalid bit length repeat";
|
|
10271
|
+
state.mode = BAD;
|
|
10272
|
+
break;
|
|
10273
|
+
}
|
|
10274
|
+
while (copy--) {
|
|
10275
|
+
state.lens[state.have++] = len;
|
|
10276
|
+
}
|
|
10277
|
+
}
|
|
10278
|
+
}
|
|
10279
|
+
if (state.mode === BAD) {
|
|
10280
|
+
break;
|
|
10281
|
+
}
|
|
10282
|
+
if (state.lens[256] === 0) {
|
|
10283
|
+
strm.msg = "invalid code -- missing end-of-block";
|
|
10284
|
+
state.mode = BAD;
|
|
10285
|
+
break;
|
|
10286
|
+
}
|
|
10287
|
+
state.lenbits = 9;
|
|
10288
|
+
opts = { bits: state.lenbits };
|
|
10289
|
+
ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
|
|
10290
|
+
state.lenbits = opts.bits;
|
|
10291
|
+
if (ret) {
|
|
10292
|
+
strm.msg = "invalid literal/lengths set";
|
|
10293
|
+
state.mode = BAD;
|
|
10294
|
+
break;
|
|
10295
|
+
}
|
|
10296
|
+
state.distbits = 6;
|
|
10297
|
+
state.distcode = state.distdyn;
|
|
10298
|
+
opts = { bits: state.distbits };
|
|
10299
|
+
ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
|
|
10300
|
+
state.distbits = opts.bits;
|
|
10301
|
+
if (ret) {
|
|
10302
|
+
strm.msg = "invalid distances set";
|
|
10303
|
+
state.mode = BAD;
|
|
10304
|
+
break;
|
|
10305
|
+
}
|
|
10306
|
+
state.mode = LEN_;
|
|
10307
|
+
if (flush === Z_TREES) {
|
|
10308
|
+
break inf_leave;
|
|
10309
|
+
}
|
|
10310
|
+
/* falls through */
|
|
10311
|
+
case LEN_:
|
|
10312
|
+
state.mode = LEN;
|
|
10313
|
+
/* falls through */
|
|
10314
|
+
case LEN:
|
|
10315
|
+
if (have >= 6 && left >= 258) {
|
|
10316
|
+
strm.next_out = put;
|
|
10317
|
+
strm.avail_out = left;
|
|
10318
|
+
strm.next_in = next;
|
|
10319
|
+
strm.avail_in = have;
|
|
10320
|
+
state.hold = hold;
|
|
10321
|
+
state.bits = bits;
|
|
10322
|
+
inffast(strm, _out);
|
|
10323
|
+
put = strm.next_out;
|
|
10324
|
+
output = strm.output;
|
|
10325
|
+
left = strm.avail_out;
|
|
10326
|
+
next = strm.next_in;
|
|
10327
|
+
input = strm.input;
|
|
10328
|
+
have = strm.avail_in;
|
|
10329
|
+
hold = state.hold;
|
|
10330
|
+
bits = state.bits;
|
|
10331
|
+
if (state.mode === TYPE) {
|
|
10332
|
+
state.back = -1;
|
|
10333
|
+
}
|
|
10334
|
+
break;
|
|
10335
|
+
}
|
|
10336
|
+
state.back = 0;
|
|
10337
|
+
for (; ; ) {
|
|
10338
|
+
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
10339
|
+
here_bits = here >>> 24;
|
|
10340
|
+
here_op = here >>> 16 & 255;
|
|
10341
|
+
here_val = here & 65535;
|
|
10342
|
+
if (here_bits <= bits) {
|
|
10343
|
+
break;
|
|
10344
|
+
}
|
|
10345
|
+
if (have === 0) {
|
|
10346
|
+
break inf_leave;
|
|
10347
|
+
}
|
|
10348
|
+
have--;
|
|
10349
|
+
hold += input[next++] << bits;
|
|
10350
|
+
bits += 8;
|
|
10351
|
+
}
|
|
10352
|
+
if (here_op && (here_op & 240) === 0) {
|
|
10353
|
+
last_bits = here_bits;
|
|
10354
|
+
last_op = here_op;
|
|
10355
|
+
last_val = here_val;
|
|
10356
|
+
for (; ; ) {
|
|
10357
|
+
here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
10358
|
+
here_bits = here >>> 24;
|
|
10359
|
+
here_op = here >>> 16 & 255;
|
|
10360
|
+
here_val = here & 65535;
|
|
10361
|
+
if (last_bits + here_bits <= bits) {
|
|
10362
|
+
break;
|
|
10363
|
+
}
|
|
10364
|
+
if (have === 0) {
|
|
10365
|
+
break inf_leave;
|
|
10366
|
+
}
|
|
10367
|
+
have--;
|
|
10368
|
+
hold += input[next++] << bits;
|
|
10369
|
+
bits += 8;
|
|
10370
|
+
}
|
|
10371
|
+
hold >>>= last_bits;
|
|
10372
|
+
bits -= last_bits;
|
|
10373
|
+
state.back += last_bits;
|
|
10374
|
+
}
|
|
10375
|
+
hold >>>= here_bits;
|
|
10376
|
+
bits -= here_bits;
|
|
10377
|
+
state.back += here_bits;
|
|
10378
|
+
state.length = here_val;
|
|
10379
|
+
if (here_op === 0) {
|
|
10380
|
+
state.mode = LIT;
|
|
10381
|
+
break;
|
|
10382
|
+
}
|
|
10383
|
+
if (here_op & 32) {
|
|
10384
|
+
state.back = -1;
|
|
10385
|
+
state.mode = TYPE;
|
|
10386
|
+
break;
|
|
10387
|
+
}
|
|
10388
|
+
if (here_op & 64) {
|
|
10389
|
+
strm.msg = "invalid literal/length code";
|
|
10390
|
+
state.mode = BAD;
|
|
10391
|
+
break;
|
|
10392
|
+
}
|
|
10393
|
+
state.extra = here_op & 15;
|
|
10394
|
+
state.mode = LENEXT;
|
|
10395
|
+
/* falls through */
|
|
10396
|
+
case LENEXT:
|
|
10397
|
+
if (state.extra) {
|
|
10398
|
+
n = state.extra;
|
|
10399
|
+
while (bits < n) {
|
|
10400
|
+
if (have === 0) {
|
|
10401
|
+
break inf_leave;
|
|
10402
|
+
}
|
|
10403
|
+
have--;
|
|
10404
|
+
hold += input[next++] << bits;
|
|
10405
|
+
bits += 8;
|
|
10406
|
+
}
|
|
10407
|
+
state.length += hold & (1 << state.extra) - 1;
|
|
10408
|
+
hold >>>= state.extra;
|
|
10409
|
+
bits -= state.extra;
|
|
10410
|
+
state.back += state.extra;
|
|
10411
|
+
}
|
|
10412
|
+
state.was = state.length;
|
|
10413
|
+
state.mode = DIST;
|
|
10414
|
+
/* falls through */
|
|
10415
|
+
case DIST:
|
|
10416
|
+
for (; ; ) {
|
|
10417
|
+
here = state.distcode[hold & (1 << state.distbits) - 1];
|
|
10418
|
+
here_bits = here >>> 24;
|
|
10419
|
+
here_op = here >>> 16 & 255;
|
|
10420
|
+
here_val = here & 65535;
|
|
10421
|
+
if (here_bits <= bits) {
|
|
10422
|
+
break;
|
|
10423
|
+
}
|
|
10424
|
+
if (have === 0) {
|
|
10425
|
+
break inf_leave;
|
|
10426
|
+
}
|
|
10427
|
+
have--;
|
|
10428
|
+
hold += input[next++] << bits;
|
|
10429
|
+
bits += 8;
|
|
10430
|
+
}
|
|
10431
|
+
if ((here_op & 240) === 0) {
|
|
10432
|
+
last_bits = here_bits;
|
|
10433
|
+
last_op = here_op;
|
|
10434
|
+
last_val = here_val;
|
|
10435
|
+
for (; ; ) {
|
|
10436
|
+
here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
10437
|
+
here_bits = here >>> 24;
|
|
10438
|
+
here_op = here >>> 16 & 255;
|
|
10439
|
+
here_val = here & 65535;
|
|
10440
|
+
if (last_bits + here_bits <= bits) {
|
|
10441
|
+
break;
|
|
10442
|
+
}
|
|
10443
|
+
if (have === 0) {
|
|
10444
|
+
break inf_leave;
|
|
10445
|
+
}
|
|
10446
|
+
have--;
|
|
10447
|
+
hold += input[next++] << bits;
|
|
10448
|
+
bits += 8;
|
|
10449
|
+
}
|
|
10450
|
+
hold >>>= last_bits;
|
|
10451
|
+
bits -= last_bits;
|
|
10452
|
+
state.back += last_bits;
|
|
10453
|
+
}
|
|
10454
|
+
hold >>>= here_bits;
|
|
10455
|
+
bits -= here_bits;
|
|
10456
|
+
state.back += here_bits;
|
|
10457
|
+
if (here_op & 64) {
|
|
10458
|
+
strm.msg = "invalid distance code";
|
|
10459
|
+
state.mode = BAD;
|
|
10460
|
+
break;
|
|
10461
|
+
}
|
|
10462
|
+
state.offset = here_val;
|
|
10463
|
+
state.extra = here_op & 15;
|
|
10464
|
+
state.mode = DISTEXT;
|
|
10465
|
+
/* falls through */
|
|
10466
|
+
case DISTEXT:
|
|
10467
|
+
if (state.extra) {
|
|
10468
|
+
n = state.extra;
|
|
10469
|
+
while (bits < n) {
|
|
10470
|
+
if (have === 0) {
|
|
10471
|
+
break inf_leave;
|
|
10472
|
+
}
|
|
10473
|
+
have--;
|
|
10474
|
+
hold += input[next++] << bits;
|
|
10475
|
+
bits += 8;
|
|
10476
|
+
}
|
|
10477
|
+
state.offset += hold & (1 << state.extra) - 1;
|
|
10478
|
+
hold >>>= state.extra;
|
|
10479
|
+
bits -= state.extra;
|
|
10480
|
+
state.back += state.extra;
|
|
10481
|
+
}
|
|
10482
|
+
if (state.offset > state.dmax) {
|
|
10483
|
+
strm.msg = "invalid distance too far back";
|
|
10484
|
+
state.mode = BAD;
|
|
10485
|
+
break;
|
|
10486
|
+
}
|
|
10487
|
+
state.mode = MATCH;
|
|
10488
|
+
/* falls through */
|
|
10489
|
+
case MATCH:
|
|
10490
|
+
if (left === 0) {
|
|
10491
|
+
break inf_leave;
|
|
10492
|
+
}
|
|
10493
|
+
copy = _out - left;
|
|
10494
|
+
if (state.offset > copy) {
|
|
10495
|
+
copy = state.offset - copy;
|
|
10496
|
+
if (copy > state.whave) {
|
|
10497
|
+
if (state.sane) {
|
|
10498
|
+
strm.msg = "invalid distance too far back";
|
|
10499
|
+
state.mode = BAD;
|
|
10500
|
+
break;
|
|
10501
|
+
}
|
|
10502
|
+
}
|
|
10503
|
+
if (copy > state.wnext) {
|
|
10504
|
+
copy -= state.wnext;
|
|
10505
|
+
from = state.wsize - copy;
|
|
10506
|
+
} else {
|
|
10507
|
+
from = state.wnext - copy;
|
|
10508
|
+
}
|
|
10509
|
+
if (copy > state.length) {
|
|
10510
|
+
copy = state.length;
|
|
10511
|
+
}
|
|
10512
|
+
from_source = state.window;
|
|
10513
|
+
} else {
|
|
10514
|
+
from_source = output;
|
|
10515
|
+
from = put - state.offset;
|
|
10516
|
+
copy = state.length;
|
|
10517
|
+
}
|
|
10518
|
+
if (copy > left) {
|
|
10519
|
+
copy = left;
|
|
10520
|
+
}
|
|
10521
|
+
left -= copy;
|
|
10522
|
+
state.length -= copy;
|
|
10523
|
+
do {
|
|
10524
|
+
output[put++] = from_source[from++];
|
|
10525
|
+
} while (--copy);
|
|
10526
|
+
if (state.length === 0) {
|
|
10527
|
+
state.mode = LEN;
|
|
10528
|
+
}
|
|
10529
|
+
break;
|
|
10530
|
+
case LIT:
|
|
10531
|
+
if (left === 0) {
|
|
10532
|
+
break inf_leave;
|
|
10533
|
+
}
|
|
10534
|
+
output[put++] = state.length;
|
|
10535
|
+
left--;
|
|
10536
|
+
state.mode = LEN;
|
|
10537
|
+
break;
|
|
10538
|
+
case CHECK:
|
|
10539
|
+
if (state.wrap) {
|
|
10540
|
+
while (bits < 32) {
|
|
10541
|
+
if (have === 0) {
|
|
10542
|
+
break inf_leave;
|
|
10543
|
+
}
|
|
10544
|
+
have--;
|
|
10545
|
+
hold |= input[next++] << bits;
|
|
10546
|
+
bits += 8;
|
|
10547
|
+
}
|
|
10548
|
+
_out -= left;
|
|
10549
|
+
strm.total_out += _out;
|
|
10550
|
+
state.total += _out;
|
|
10551
|
+
if (state.wrap & 4 && _out) {
|
|
10552
|
+
strm.adler = state.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/
|
|
10553
|
+
state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out);
|
|
10554
|
+
}
|
|
10555
|
+
_out = left;
|
|
10556
|
+
if (state.wrap & 4 && (state.flags ? hold : zswap32(hold)) !== state.check) {
|
|
10557
|
+
strm.msg = "incorrect data check";
|
|
10558
|
+
state.mode = BAD;
|
|
10559
|
+
break;
|
|
10560
|
+
}
|
|
10561
|
+
hold = 0;
|
|
10562
|
+
bits = 0;
|
|
10563
|
+
}
|
|
10564
|
+
state.mode = LENGTH;
|
|
10565
|
+
/* falls through */
|
|
10566
|
+
case LENGTH:
|
|
10567
|
+
if (state.wrap && state.flags) {
|
|
10568
|
+
while (bits < 32) {
|
|
10569
|
+
if (have === 0) {
|
|
10570
|
+
break inf_leave;
|
|
10571
|
+
}
|
|
10572
|
+
have--;
|
|
10573
|
+
hold += input[next++] << bits;
|
|
10574
|
+
bits += 8;
|
|
10575
|
+
}
|
|
10576
|
+
if (state.wrap & 4 && hold !== (state.total & 4294967295)) {
|
|
10577
|
+
strm.msg = "incorrect length check";
|
|
10578
|
+
state.mode = BAD;
|
|
10579
|
+
break;
|
|
10580
|
+
}
|
|
10581
|
+
hold = 0;
|
|
10582
|
+
bits = 0;
|
|
10583
|
+
}
|
|
10584
|
+
state.mode = DONE;
|
|
10585
|
+
/* falls through */
|
|
10586
|
+
case DONE:
|
|
10587
|
+
ret = Z_STREAM_END$1;
|
|
10588
|
+
break inf_leave;
|
|
10589
|
+
case BAD:
|
|
10590
|
+
ret = Z_DATA_ERROR$1;
|
|
10591
|
+
break inf_leave;
|
|
10592
|
+
case MEM:
|
|
10593
|
+
return Z_MEM_ERROR$1;
|
|
10594
|
+
case SYNC:
|
|
10595
|
+
/* falls through */
|
|
10596
|
+
default:
|
|
10597
|
+
return Z_STREAM_ERROR$1;
|
|
10598
|
+
}
|
|
10599
|
+
}
|
|
10600
|
+
strm.next_out = put;
|
|
10601
|
+
strm.avail_out = left;
|
|
10602
|
+
strm.next_in = next;
|
|
10603
|
+
strm.avail_in = have;
|
|
10604
|
+
state.hold = hold;
|
|
10605
|
+
state.bits = bits;
|
|
10606
|
+
if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH$1)) {
|
|
10607
|
+
if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;
|
|
10608
|
+
}
|
|
10609
|
+
_in -= strm.avail_in;
|
|
10610
|
+
_out -= strm.avail_out;
|
|
10611
|
+
strm.total_in += _in;
|
|
10612
|
+
strm.total_out += _out;
|
|
10613
|
+
state.total += _out;
|
|
10614
|
+
if (state.wrap & 4 && _out) {
|
|
10615
|
+
strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/
|
|
10616
|
+
state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out);
|
|
10617
|
+
}
|
|
10618
|
+
strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
|
|
10619
|
+
if ((_in === 0 && _out === 0 || flush === Z_FINISH$1) && ret === Z_OK$1) {
|
|
10620
|
+
ret = Z_BUF_ERROR;
|
|
10621
|
+
}
|
|
10622
|
+
return ret;
|
|
10623
|
+
};
|
|
10624
|
+
var inflateEnd = (strm) => {
|
|
10625
|
+
if (inflateStateCheck(strm)) {
|
|
10626
|
+
return Z_STREAM_ERROR$1;
|
|
10627
|
+
}
|
|
10628
|
+
let state = strm.state;
|
|
10629
|
+
if (state.window) {
|
|
10630
|
+
state.window = null;
|
|
10631
|
+
}
|
|
10632
|
+
strm.state = null;
|
|
10633
|
+
return Z_OK$1;
|
|
10634
|
+
};
|
|
10635
|
+
var inflateGetHeader = (strm, head) => {
|
|
10636
|
+
if (inflateStateCheck(strm)) {
|
|
10637
|
+
return Z_STREAM_ERROR$1;
|
|
10638
|
+
}
|
|
10639
|
+
const state = strm.state;
|
|
10640
|
+
if ((state.wrap & 2) === 0) {
|
|
10641
|
+
return Z_STREAM_ERROR$1;
|
|
10642
|
+
}
|
|
10643
|
+
state.head = head;
|
|
10644
|
+
head.done = false;
|
|
10645
|
+
return Z_OK$1;
|
|
10646
|
+
};
|
|
10647
|
+
var inflateSetDictionary = (strm, dictionary) => {
|
|
10648
|
+
const dictLength = dictionary.length;
|
|
10649
|
+
let state;
|
|
10650
|
+
let dictid;
|
|
10651
|
+
let ret;
|
|
10652
|
+
if (inflateStateCheck(strm)) {
|
|
10653
|
+
return Z_STREAM_ERROR$1;
|
|
10654
|
+
}
|
|
10655
|
+
state = strm.state;
|
|
10656
|
+
if (state.wrap !== 0 && state.mode !== DICT) {
|
|
10657
|
+
return Z_STREAM_ERROR$1;
|
|
10658
|
+
}
|
|
10659
|
+
if (state.mode === DICT) {
|
|
10660
|
+
dictid = 1;
|
|
10661
|
+
dictid = adler32_1(dictid, dictionary, dictLength, 0);
|
|
10662
|
+
if (dictid !== state.check) {
|
|
10663
|
+
return Z_DATA_ERROR$1;
|
|
10664
|
+
}
|
|
10665
|
+
}
|
|
10666
|
+
ret = updatewindow(strm, dictionary, dictLength, dictLength);
|
|
10667
|
+
if (ret) {
|
|
10668
|
+
state.mode = MEM;
|
|
10669
|
+
return Z_MEM_ERROR$1;
|
|
10670
|
+
}
|
|
10671
|
+
state.havedict = 1;
|
|
10672
|
+
return Z_OK$1;
|
|
10673
|
+
};
|
|
10674
|
+
var inflateReset_1 = inflateReset;
|
|
10675
|
+
var inflateReset2_1 = inflateReset2;
|
|
10676
|
+
var inflateResetKeep_1 = inflateResetKeep;
|
|
10677
|
+
var inflateInit_1 = inflateInit;
|
|
10678
|
+
var inflateInit2_1 = inflateInit2;
|
|
10679
|
+
var inflate_2$1 = inflate$2;
|
|
10680
|
+
var inflateEnd_1 = inflateEnd;
|
|
10681
|
+
var inflateGetHeader_1 = inflateGetHeader;
|
|
10682
|
+
var inflateSetDictionary_1 = inflateSetDictionary;
|
|
10683
|
+
var inflateInfo = "pako inflate (from Nodeca project)";
|
|
10684
|
+
var inflate_1$2 = {
|
|
10685
|
+
inflateReset: inflateReset_1,
|
|
10686
|
+
inflateReset2: inflateReset2_1,
|
|
10687
|
+
inflateResetKeep: inflateResetKeep_1,
|
|
10688
|
+
inflateInit: inflateInit_1,
|
|
10689
|
+
inflateInit2: inflateInit2_1,
|
|
10690
|
+
inflate: inflate_2$1,
|
|
10691
|
+
inflateEnd: inflateEnd_1,
|
|
10692
|
+
inflateGetHeader: inflateGetHeader_1,
|
|
10693
|
+
inflateSetDictionary: inflateSetDictionary_1,
|
|
10694
|
+
inflateInfo
|
|
10695
|
+
};
|
|
10696
|
+
function GZheader() {
|
|
10697
|
+
this.text = 0;
|
|
10698
|
+
this.time = 0;
|
|
10699
|
+
this.xflags = 0;
|
|
10700
|
+
this.os = 0;
|
|
10701
|
+
this.extra = null;
|
|
10702
|
+
this.extra_len = 0;
|
|
10703
|
+
this.name = "";
|
|
10704
|
+
this.comment = "";
|
|
10705
|
+
this.hcrc = 0;
|
|
10706
|
+
this.done = false;
|
|
10707
|
+
}
|
|
10708
|
+
var gzheader = GZheader;
|
|
10709
|
+
var toString = Object.prototype.toString;
|
|
10710
|
+
var {
|
|
10711
|
+
Z_NO_FLUSH,
|
|
10712
|
+
Z_FINISH,
|
|
10713
|
+
Z_OK,
|
|
10714
|
+
Z_STREAM_END,
|
|
10715
|
+
Z_NEED_DICT,
|
|
10716
|
+
Z_STREAM_ERROR,
|
|
10717
|
+
Z_DATA_ERROR,
|
|
10718
|
+
Z_MEM_ERROR
|
|
10719
|
+
} = constants$2;
|
|
10720
|
+
function Inflate$1(options) {
|
|
10721
|
+
this.options = common.assign({
|
|
10722
|
+
chunkSize: 1024 * 64,
|
|
10723
|
+
windowBits: 15,
|
|
10724
|
+
to: ""
|
|
10725
|
+
}, options || {});
|
|
10726
|
+
const opt = this.options;
|
|
10727
|
+
if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
|
|
10728
|
+
opt.windowBits = -opt.windowBits;
|
|
10729
|
+
if (opt.windowBits === 0) {
|
|
10730
|
+
opt.windowBits = -15;
|
|
10731
|
+
}
|
|
10732
|
+
}
|
|
10733
|
+
if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) {
|
|
10734
|
+
opt.windowBits += 32;
|
|
10735
|
+
}
|
|
10736
|
+
if (opt.windowBits > 15 && opt.windowBits < 48) {
|
|
10737
|
+
if ((opt.windowBits & 15) === 0) {
|
|
10738
|
+
opt.windowBits |= 15;
|
|
10739
|
+
}
|
|
10740
|
+
}
|
|
10741
|
+
this.err = 0;
|
|
10742
|
+
this.msg = "";
|
|
10743
|
+
this.ended = false;
|
|
10744
|
+
this.chunks = [];
|
|
10745
|
+
this.strm = new zstream();
|
|
10746
|
+
this.strm.avail_out = 0;
|
|
10747
|
+
let status = inflate_1$2.inflateInit2(
|
|
10748
|
+
this.strm,
|
|
10749
|
+
opt.windowBits
|
|
10750
|
+
);
|
|
10751
|
+
if (status !== Z_OK) {
|
|
10752
|
+
throw new Error(messages[status]);
|
|
10753
|
+
}
|
|
10754
|
+
this.header = new gzheader();
|
|
10755
|
+
inflate_1$2.inflateGetHeader(this.strm, this.header);
|
|
10756
|
+
if (opt.dictionary) {
|
|
10757
|
+
if (typeof opt.dictionary === "string") {
|
|
10758
|
+
opt.dictionary = strings.string2buf(opt.dictionary);
|
|
10759
|
+
} else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") {
|
|
10760
|
+
opt.dictionary = new Uint8Array(opt.dictionary);
|
|
10761
|
+
}
|
|
10762
|
+
if (opt.raw) {
|
|
10763
|
+
status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);
|
|
10764
|
+
if (status !== Z_OK) {
|
|
10765
|
+
throw new Error(messages[status]);
|
|
10766
|
+
}
|
|
10767
|
+
}
|
|
10768
|
+
}
|
|
10769
|
+
}
|
|
10770
|
+
Inflate$1.prototype.push = function(data, flush_mode) {
|
|
10771
|
+
const strm = this.strm;
|
|
10772
|
+
const chunkSize = this.options.chunkSize;
|
|
10773
|
+
const dictionary = this.options.dictionary;
|
|
10774
|
+
let status, _flush_mode, last_avail_out;
|
|
10775
|
+
if (this.ended) return false;
|
|
10776
|
+
if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;
|
|
10777
|
+
else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;
|
|
10778
|
+
if (toString.call(data) === "[object ArrayBuffer]") {
|
|
10779
|
+
strm.input = new Uint8Array(data);
|
|
10780
|
+
} else {
|
|
10781
|
+
strm.input = data;
|
|
10782
|
+
}
|
|
10783
|
+
strm.next_in = 0;
|
|
10784
|
+
strm.avail_in = strm.input.length;
|
|
10785
|
+
for (; ; ) {
|
|
10786
|
+
if (strm.avail_out === 0) {
|
|
10787
|
+
strm.output = new Uint8Array(chunkSize);
|
|
10788
|
+
strm.next_out = 0;
|
|
10789
|
+
strm.avail_out = chunkSize;
|
|
10790
|
+
}
|
|
10791
|
+
status = inflate_1$2.inflate(strm, _flush_mode);
|
|
10792
|
+
if (status === Z_NEED_DICT && dictionary) {
|
|
10793
|
+
status = inflate_1$2.inflateSetDictionary(strm, dictionary);
|
|
10794
|
+
if (status === Z_OK) {
|
|
10795
|
+
status = inflate_1$2.inflate(strm, _flush_mode);
|
|
10796
|
+
} else if (status === Z_DATA_ERROR) {
|
|
10797
|
+
status = Z_NEED_DICT;
|
|
10798
|
+
}
|
|
10799
|
+
}
|
|
10800
|
+
while (strm.avail_in > 0 && status === Z_STREAM_END && strm.state.wrap > 0 && data[strm.next_in] !== 0) {
|
|
10801
|
+
inflate_1$2.inflateReset(strm);
|
|
10802
|
+
status = inflate_1$2.inflate(strm, _flush_mode);
|
|
10803
|
+
}
|
|
10804
|
+
switch (status) {
|
|
10805
|
+
case Z_STREAM_ERROR:
|
|
10806
|
+
case Z_DATA_ERROR:
|
|
10807
|
+
case Z_NEED_DICT:
|
|
10808
|
+
case Z_MEM_ERROR:
|
|
10809
|
+
this.onEnd(status);
|
|
10810
|
+
this.ended = true;
|
|
10811
|
+
return false;
|
|
10812
|
+
}
|
|
10813
|
+
last_avail_out = strm.avail_out;
|
|
10814
|
+
if (strm.next_out) {
|
|
10815
|
+
if (strm.avail_out === 0 || status === Z_STREAM_END) {
|
|
10816
|
+
if (this.options.to === "string") {
|
|
10817
|
+
let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
|
|
10818
|
+
let tail = strm.next_out - next_out_utf8;
|
|
10819
|
+
let utf8str = strings.buf2string(strm.output, next_out_utf8);
|
|
10820
|
+
strm.next_out = tail;
|
|
10821
|
+
strm.avail_out = chunkSize - tail;
|
|
10822
|
+
if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);
|
|
10823
|
+
this.onData(utf8str);
|
|
10824
|
+
} else {
|
|
10825
|
+
this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));
|
|
10826
|
+
}
|
|
10827
|
+
}
|
|
10828
|
+
}
|
|
10829
|
+
if (status === Z_OK && last_avail_out === 0) continue;
|
|
10830
|
+
if (status === Z_STREAM_END) {
|
|
10831
|
+
status = inflate_1$2.inflateEnd(this.strm);
|
|
10832
|
+
this.onEnd(status);
|
|
10833
|
+
this.ended = true;
|
|
10834
|
+
return true;
|
|
10835
|
+
}
|
|
10836
|
+
if (strm.avail_in === 0) break;
|
|
10837
|
+
}
|
|
10838
|
+
return true;
|
|
10839
|
+
};
|
|
10840
|
+
Inflate$1.prototype.onData = function(chunk) {
|
|
10841
|
+
this.chunks.push(chunk);
|
|
10842
|
+
};
|
|
10843
|
+
Inflate$1.prototype.onEnd = function(status) {
|
|
10844
|
+
if (status === Z_OK) {
|
|
10845
|
+
if (this.options.to === "string") {
|
|
10846
|
+
this.result = this.chunks.join("");
|
|
10847
|
+
} else {
|
|
10848
|
+
this.result = common.flattenChunks(this.chunks);
|
|
10849
|
+
}
|
|
10850
|
+
}
|
|
10851
|
+
this.chunks = [];
|
|
10852
|
+
this.err = status;
|
|
10853
|
+
this.msg = this.strm.msg;
|
|
10854
|
+
};
|
|
10855
|
+
function inflate$1(input, options) {
|
|
10856
|
+
const inflator = new Inflate$1(options);
|
|
10857
|
+
inflator.push(input);
|
|
10858
|
+
if (inflator.err) throw inflator.msg || messages[inflator.err];
|
|
10859
|
+
return inflator.result;
|
|
10860
|
+
}
|
|
10861
|
+
function inflateRaw$1(input, options) {
|
|
10862
|
+
options = options || {};
|
|
10863
|
+
options.raw = true;
|
|
10864
|
+
return inflate$1(input, options);
|
|
10865
|
+
}
|
|
10866
|
+
var Inflate_1$1 = Inflate$1;
|
|
10867
|
+
var inflate_2 = inflate$1;
|
|
10868
|
+
var inflateRaw_1$1 = inflateRaw$1;
|
|
10869
|
+
var ungzip$1 = inflate$1;
|
|
10870
|
+
var constants = constants$2;
|
|
10871
|
+
var inflate_1$1 = {
|
|
10872
|
+
Inflate: Inflate_1$1,
|
|
10873
|
+
inflate: inflate_2,
|
|
10874
|
+
inflateRaw: inflateRaw_1$1,
|
|
10875
|
+
ungzip: ungzip$1,
|
|
10876
|
+
constants
|
|
10877
|
+
};
|
|
10878
|
+
var { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;
|
|
10879
|
+
var { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;
|
|
10880
|
+
var Deflate_1 = Deflate;
|
|
10881
|
+
var deflate_1 = deflate;
|
|
10882
|
+
var deflateRaw_1 = deflateRaw;
|
|
10883
|
+
var gzip_1 = gzip;
|
|
10884
|
+
var Inflate_1 = Inflate;
|
|
10885
|
+
var inflate_1 = inflate;
|
|
10886
|
+
var inflateRaw_1 = inflateRaw;
|
|
10887
|
+
var ungzip_1 = ungzip;
|
|
10888
|
+
var constants_1 = constants$2;
|
|
10889
|
+
var pako = {
|
|
10890
|
+
Deflate: Deflate_1,
|
|
10891
|
+
deflate: deflate_1,
|
|
10892
|
+
deflateRaw: deflateRaw_1,
|
|
10893
|
+
gzip: gzip_1,
|
|
10894
|
+
Inflate: Inflate_1,
|
|
10895
|
+
inflate: inflate_1,
|
|
10896
|
+
inflateRaw: inflateRaw_1,
|
|
10897
|
+
ungzip: ungzip_1,
|
|
10898
|
+
constants: constants_1
|
|
10899
|
+
};
|
|
10900
|
+
|
|
10901
|
+
// src/demo/parser.ts
|
|
10902
|
+
var PROTOCOL_VERSION_RERELEASE = 2023;
|
|
10903
|
+
var U_ORIGIN12 = 1 << 0;
|
|
10904
|
+
var U_ORIGIN22 = 1 << 1;
|
|
10905
|
+
var U_ANGLE22 = 1 << 2;
|
|
10906
|
+
var U_ANGLE32 = 1 << 3;
|
|
10907
|
+
var U_FRAME8 = 1 << 4;
|
|
10908
|
+
var U_EVENT2 = 1 << 5;
|
|
10909
|
+
var U_REMOVE2 = 1 << 6;
|
|
10910
|
+
var U_MOREBITS1 = 1 << 7;
|
|
10911
|
+
var U_NUMBER16 = 1 << 8;
|
|
10912
|
+
var U_ORIGIN32 = 1 << 9;
|
|
10913
|
+
var U_ANGLE12 = 1 << 10;
|
|
10914
|
+
var U_MODEL5 = 1 << 11;
|
|
10915
|
+
var U_RENDERFX8 = 1 << 12;
|
|
10916
|
+
var U_EFFECTS8 = 1 << 14;
|
|
10917
|
+
var U_MOREBITS2 = 1 << 15;
|
|
10918
|
+
var U_SKIN8 = 1 << 16;
|
|
10919
|
+
var U_FRAME16 = 1 << 17;
|
|
10920
|
+
var U_RENDERFX16 = 1 << 18;
|
|
10921
|
+
var U_EFFECTS16 = 1 << 19;
|
|
10922
|
+
var U_MODEL22 = 1 << 20;
|
|
10923
|
+
var U_MODEL32 = 1 << 21;
|
|
10924
|
+
var U_MODEL42 = 1 << 22;
|
|
10925
|
+
var U_MOREBITS3 = 1 << 23;
|
|
10926
|
+
var U_OLDORIGIN = 1 << 24;
|
|
10927
|
+
var U_SKIN16 = 1 << 25;
|
|
10928
|
+
var U_SOUND2 = 1 << 26;
|
|
10929
|
+
var U_SOLID2 = 1 << 27;
|
|
10930
|
+
var U_ALPHA = 1 << 13;
|
|
10931
|
+
var RECORD_CLIENT = 1;
|
|
10932
|
+
var RECORD_SERVER = 2;
|
|
10933
|
+
var RECORD_RELAY = 128;
|
|
10934
|
+
var createEmptyEntityState = () => ({
|
|
10935
|
+
number: 0,
|
|
10936
|
+
modelindex: 0,
|
|
10937
|
+
modelindex2: 0,
|
|
10938
|
+
modelindex3: 0,
|
|
10939
|
+
modelindex4: 0,
|
|
10940
|
+
frame: 0,
|
|
10941
|
+
skinnum: 0,
|
|
10942
|
+
effects: 0,
|
|
10943
|
+
renderfx: 0,
|
|
10944
|
+
origin: { x: 0, y: 0, z: 0 },
|
|
10945
|
+
old_origin: { x: 0, y: 0, z: 0 },
|
|
10946
|
+
angles: { x: 0, y: 0, z: 0 },
|
|
10947
|
+
sound: 0,
|
|
10948
|
+
event: 0,
|
|
10949
|
+
solid: 0,
|
|
10950
|
+
bits: 0,
|
|
10951
|
+
alpha: 0,
|
|
10952
|
+
scale: 0,
|
|
10953
|
+
instanceBits: 0,
|
|
10954
|
+
loopVolume: 0,
|
|
10955
|
+
loopAttenuation: 0,
|
|
10956
|
+
owner: 0,
|
|
10957
|
+
oldFrame: 0
|
|
10958
|
+
});
|
|
10959
|
+
var createEmptyProtocolPlayerState = () => ({
|
|
10960
|
+
pm_type: 0,
|
|
10961
|
+
origin: { x: 0, y: 0, z: 0 },
|
|
10962
|
+
velocity: { x: 0, y: 0, z: 0 },
|
|
10963
|
+
pm_time: 0,
|
|
10964
|
+
pm_flags: 0,
|
|
10965
|
+
gravity: 0,
|
|
10966
|
+
delta_angles: { x: 0, y: 0, z: 0 },
|
|
10967
|
+
viewoffset: { x: 0, y: 0, z: 0 },
|
|
10968
|
+
viewangles: { x: 0, y: 0, z: 0 },
|
|
10969
|
+
kick_angles: { x: 0, y: 0, z: 0 },
|
|
10970
|
+
gun_index: 0,
|
|
10971
|
+
gun_frame: 0,
|
|
10972
|
+
gun_offset: { x: 0, y: 0, z: 0 },
|
|
10973
|
+
gun_angles: { x: 0, y: 0, z: 0 },
|
|
10974
|
+
blend: [0, 0, 0, 0],
|
|
10975
|
+
fov: 0,
|
|
10976
|
+
rdflags: 0,
|
|
10977
|
+
stats: new Array(32).fill(0),
|
|
10978
|
+
gunskin: 0,
|
|
10979
|
+
gunrate: 0,
|
|
10980
|
+
damage_blend: [0, 0, 0, 0],
|
|
10981
|
+
team_id: 0
|
|
10982
|
+
});
|
|
10983
|
+
var NetworkMessageParser = class _NetworkMessageParser {
|
|
10984
|
+
constructor(stream, handler) {
|
|
10985
|
+
this.protocolVersion = 0;
|
|
10986
|
+
// 0 = unknown, will be set by serverdata
|
|
10987
|
+
this.isDemo = RECORD_CLIENT;
|
|
10988
|
+
this.stream = stream;
|
|
10989
|
+
this.handler = handler;
|
|
10990
|
+
}
|
|
10991
|
+
translateCommand(cmd) {
|
|
10992
|
+
if (this.protocolVersion === 0) {
|
|
10993
|
+
if (cmd === 7) return ServerCommand.serverdata;
|
|
10994
|
+
if (cmd === 12) return ServerCommand.serverdata;
|
|
10995
|
+
}
|
|
10996
|
+
if (this.protocolVersion === 25) {
|
|
10997
|
+
if (cmd >= 7 && cmd <= 15) return cmd + 5;
|
|
10998
|
+
if (cmd === 1) return ServerCommand.print;
|
|
10999
|
+
if (cmd === 2) return ServerCommand.stufftext;
|
|
11000
|
+
if (cmd === 3) return ServerCommand.sound;
|
|
11001
|
+
if (cmd === 4) return ServerCommand.nop;
|
|
11002
|
+
if (cmd === 5) return ServerCommand.disconnect;
|
|
11003
|
+
if (cmd === 6) return ServerCommand.reconnect;
|
|
11004
|
+
if (cmd === 16) return ServerCommand.temp_entity;
|
|
11005
|
+
}
|
|
11006
|
+
if (this.protocolVersion === PROTOCOL_VERSION_RERELEASE) {
|
|
11007
|
+
return cmd;
|
|
11008
|
+
}
|
|
11009
|
+
return cmd;
|
|
11010
|
+
}
|
|
11011
|
+
parseMessage() {
|
|
11012
|
+
while (this.stream.hasMore()) {
|
|
11013
|
+
let cmd = this.stream.readByte();
|
|
11014
|
+
if (cmd === -1) {
|
|
11015
|
+
break;
|
|
11016
|
+
}
|
|
11017
|
+
const originalCmd = cmd;
|
|
11018
|
+
cmd = this.translateCommand(cmd);
|
|
11019
|
+
try {
|
|
11020
|
+
switch (cmd) {
|
|
11021
|
+
case ServerCommand.nop:
|
|
11022
|
+
break;
|
|
11023
|
+
case ServerCommand.disconnect:
|
|
11024
|
+
if (this.handler && this.handler.onDisconnect) this.handler.onDisconnect();
|
|
11025
|
+
break;
|
|
11026
|
+
case ServerCommand.reconnect:
|
|
11027
|
+
if (this.handler && this.handler.onReconnect) this.handler.onReconnect();
|
|
11028
|
+
break;
|
|
11029
|
+
case ServerCommand.print:
|
|
11030
|
+
this.parsePrint();
|
|
11031
|
+
break;
|
|
11032
|
+
case ServerCommand.serverdata:
|
|
11033
|
+
this.parseServerData();
|
|
11034
|
+
break;
|
|
11035
|
+
case ServerCommand.configstring:
|
|
11036
|
+
this.parseConfigString();
|
|
11037
|
+
break;
|
|
11038
|
+
case ServerCommand.spawnbaseline:
|
|
11039
|
+
this.parseSpawnBaseline();
|
|
11040
|
+
break;
|
|
11041
|
+
case ServerCommand.centerprint:
|
|
11042
|
+
this.parseCenterPrint();
|
|
11043
|
+
break;
|
|
11044
|
+
case ServerCommand.download:
|
|
11045
|
+
this.parseDownload();
|
|
11046
|
+
break;
|
|
11047
|
+
case ServerCommand.frame:
|
|
11048
|
+
this.parseFrame();
|
|
11049
|
+
break;
|
|
11050
|
+
case ServerCommand.packetentities:
|
|
11051
|
+
this.parsePacketEntities(false);
|
|
11052
|
+
break;
|
|
11053
|
+
case ServerCommand.deltapacketentities:
|
|
11054
|
+
this.parsePacketEntities(true);
|
|
11055
|
+
break;
|
|
11056
|
+
case ServerCommand.playerinfo:
|
|
11057
|
+
this.parsePlayerState();
|
|
11058
|
+
break;
|
|
11059
|
+
case ServerCommand.stufftext:
|
|
11060
|
+
this.parseStuffText();
|
|
11061
|
+
break;
|
|
11062
|
+
case ServerCommand.layout:
|
|
11063
|
+
this.parseLayout();
|
|
11064
|
+
break;
|
|
11065
|
+
case ServerCommand.inventory:
|
|
11066
|
+
this.parseInventory();
|
|
11067
|
+
break;
|
|
11068
|
+
case ServerCommand.sound:
|
|
11069
|
+
this.parseSound();
|
|
11070
|
+
break;
|
|
11071
|
+
case ServerCommand.muzzleflash:
|
|
11072
|
+
this.parseMuzzleFlash();
|
|
11073
|
+
break;
|
|
11074
|
+
case ServerCommand.muzzleflash2:
|
|
11075
|
+
this.parseMuzzleFlash2();
|
|
11076
|
+
break;
|
|
11077
|
+
case ServerCommand.temp_entity:
|
|
11078
|
+
this.parseTempEntity();
|
|
11079
|
+
break;
|
|
11080
|
+
// New Rerelease Commands
|
|
11081
|
+
case ServerCommand.splitclient:
|
|
11082
|
+
this.parseSplitClient();
|
|
11083
|
+
break;
|
|
11084
|
+
case ServerCommand.configblast:
|
|
11085
|
+
this.parseConfigBlast();
|
|
11086
|
+
break;
|
|
11087
|
+
case ServerCommand.spawnbaselineblast:
|
|
11088
|
+
this.parseSpawnBaselineBlast();
|
|
11089
|
+
break;
|
|
11090
|
+
case ServerCommand.level_restart:
|
|
11091
|
+
if (this.handler && this.handler.onLevelRestart) this.handler.onLevelRestart();
|
|
11092
|
+
break;
|
|
11093
|
+
case ServerCommand.damage:
|
|
11094
|
+
this.parseDamage();
|
|
11095
|
+
break;
|
|
11096
|
+
case ServerCommand.locprint:
|
|
11097
|
+
this.parseLocPrint();
|
|
11098
|
+
break;
|
|
11099
|
+
case ServerCommand.fog:
|
|
11100
|
+
this.parseFog();
|
|
11101
|
+
break;
|
|
11102
|
+
case ServerCommand.waitingforplayers:
|
|
11103
|
+
this.parseWaitingForPlayers();
|
|
11104
|
+
break;
|
|
11105
|
+
case ServerCommand.bot_chat:
|
|
11106
|
+
this.parseBotChat();
|
|
11107
|
+
break;
|
|
11108
|
+
case ServerCommand.poi:
|
|
11109
|
+
this.parsePoi();
|
|
11110
|
+
break;
|
|
11111
|
+
case ServerCommand.help_path:
|
|
11112
|
+
this.parseHelpPath();
|
|
11113
|
+
break;
|
|
11114
|
+
case ServerCommand.muzzleflash3:
|
|
11115
|
+
this.parseMuzzleFlash3();
|
|
11116
|
+
break;
|
|
11117
|
+
case ServerCommand.achievement:
|
|
11118
|
+
this.parseAchievement();
|
|
11119
|
+
break;
|
|
11120
|
+
default:
|
|
11121
|
+
console.warn(`Unknown server command: ${originalCmd} (translated: ${cmd}) at offset ${this.stream.getPosition() - 1}`);
|
|
11122
|
+
return;
|
|
11123
|
+
}
|
|
11124
|
+
} catch (e) {
|
|
11125
|
+
console.warn(`Error parsing command ${cmd}: ${e.message}`);
|
|
11126
|
+
return;
|
|
11127
|
+
}
|
|
11128
|
+
}
|
|
11129
|
+
}
|
|
11130
|
+
parsePrint() {
|
|
11131
|
+
const id = this.stream.readByte();
|
|
11132
|
+
const str = this.stream.readString();
|
|
11133
|
+
if (this.handler) {
|
|
11134
|
+
this.handler.onPrint(id, str);
|
|
11135
|
+
}
|
|
11136
|
+
}
|
|
11137
|
+
parseStuffText() {
|
|
11138
|
+
const text = this.stream.readString();
|
|
11139
|
+
if (this.handler) {
|
|
11140
|
+
this.handler.onStuffText(text);
|
|
11141
|
+
}
|
|
11142
|
+
}
|
|
11143
|
+
parseLayout() {
|
|
11144
|
+
const layout = this.stream.readString();
|
|
11145
|
+
if (this.handler) {
|
|
11146
|
+
this.handler.onLayout(layout);
|
|
11147
|
+
}
|
|
11148
|
+
}
|
|
11149
|
+
parseCenterPrint() {
|
|
11150
|
+
const centerMsg = this.stream.readString();
|
|
11151
|
+
if (this.handler) {
|
|
6906
11152
|
this.handler.onCenterPrint(centerMsg);
|
|
6907
11153
|
}
|
|
6908
11154
|
}
|
|
@@ -6927,6 +11173,102 @@ var NetworkMessageParser = class {
|
|
|
6927
11173
|
this.handler.onConfigString(index, str);
|
|
6928
11174
|
}
|
|
6929
11175
|
}
|
|
11176
|
+
parseSplitClient() {
|
|
11177
|
+
const clientNum = this.stream.readByte();
|
|
11178
|
+
if (this.handler && this.handler.onSplitClient) {
|
|
11179
|
+
this.handler.onSplitClient(clientNum);
|
|
11180
|
+
}
|
|
11181
|
+
}
|
|
11182
|
+
parseConfigBlast() {
|
|
11183
|
+
const compressedSize = this.stream.readShort();
|
|
11184
|
+
const uncompressedSize = this.stream.readShort();
|
|
11185
|
+
const compressedData = this.stream.readData(compressedSize);
|
|
11186
|
+
try {
|
|
11187
|
+
const decompressed = pako.inflate(compressedData);
|
|
11188
|
+
if (decompressed.byteLength !== uncompressedSize) {
|
|
11189
|
+
console.warn(`svc_configblast: Decompressed size mismatch. Expected ${uncompressedSize}, got ${decompressed.byteLength}`);
|
|
11190
|
+
}
|
|
11191
|
+
const blastStream = new BinaryStream(decompressed.buffer);
|
|
11192
|
+
while (blastStream.hasMore()) {
|
|
11193
|
+
const index = blastStream.readUShort();
|
|
11194
|
+
const str = blastStream.readString();
|
|
11195
|
+
if (this.handler) {
|
|
11196
|
+
this.handler.onConfigString(index, str);
|
|
11197
|
+
}
|
|
11198
|
+
}
|
|
11199
|
+
} catch (e) {
|
|
11200
|
+
console.error("svc_configblast: Failed to decompress data", e);
|
|
11201
|
+
}
|
|
11202
|
+
}
|
|
11203
|
+
parseSpawnBaselineBlast() {
|
|
11204
|
+
const compressedSize = this.stream.readShort();
|
|
11205
|
+
const uncompressedSize = this.stream.readShort();
|
|
11206
|
+
const compressedData = this.stream.readData(compressedSize);
|
|
11207
|
+
try {
|
|
11208
|
+
const decompressed = pako.inflate(compressedData);
|
|
11209
|
+
if (decompressed.byteLength !== uncompressedSize) {
|
|
11210
|
+
console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${uncompressedSize}, got ${decompressed.byteLength}`);
|
|
11211
|
+
}
|
|
11212
|
+
const blastStream = new BinaryStream(decompressed.buffer);
|
|
11213
|
+
const blastParser = new _NetworkMessageParser(blastStream, this.handler);
|
|
11214
|
+
while (blastStream.hasMore()) {
|
|
11215
|
+
blastParser.parseSpawnBaseline();
|
|
11216
|
+
}
|
|
11217
|
+
} catch (e) {
|
|
11218
|
+
console.error("svc_spawnbaselineblast: Failed to decompress data", e);
|
|
11219
|
+
}
|
|
11220
|
+
}
|
|
11221
|
+
parseLocPrint() {
|
|
11222
|
+
const flags = this.stream.readByte();
|
|
11223
|
+
const base = this.stream.readString();
|
|
11224
|
+
const numArgs = this.stream.readByte();
|
|
11225
|
+
const args = [];
|
|
11226
|
+
for (let i = 0; i < numArgs; i++) {
|
|
11227
|
+
args.push(this.stream.readString());
|
|
11228
|
+
}
|
|
11229
|
+
if (this.handler && this.handler.onLocPrint) {
|
|
11230
|
+
this.handler.onLocPrint(flags, base);
|
|
11231
|
+
}
|
|
11232
|
+
}
|
|
11233
|
+
parseWaitingForPlayers() {
|
|
11234
|
+
const count = this.stream.readByte();
|
|
11235
|
+
if (this.handler && this.handler.onWaitingForPlayers) {
|
|
11236
|
+
this.handler.onWaitingForPlayers();
|
|
11237
|
+
}
|
|
11238
|
+
}
|
|
11239
|
+
parseBotChat() {
|
|
11240
|
+
const botName = this.stream.readString();
|
|
11241
|
+
const clientIndex = this.stream.readShort();
|
|
11242
|
+
const locString = this.stream.readString();
|
|
11243
|
+
if (this.handler && this.handler.onBotChat) {
|
|
11244
|
+
this.handler.onBotChat(locString);
|
|
11245
|
+
}
|
|
11246
|
+
}
|
|
11247
|
+
parsePoi() {
|
|
11248
|
+
const key = this.stream.readUShort();
|
|
11249
|
+
const time = this.stream.readUShort();
|
|
11250
|
+
const pos = { x: 0, y: 0, z: 0 };
|
|
11251
|
+
this.stream.readPos(pos);
|
|
11252
|
+
const imageIndex = this.stream.readUShort();
|
|
11253
|
+
const paletteIndex = this.stream.readByte();
|
|
11254
|
+
const flags = this.stream.readByte();
|
|
11255
|
+
if (this.handler && this.handler.onPoi) {
|
|
11256
|
+
this.handler.onPoi(flags, pos);
|
|
11257
|
+
}
|
|
11258
|
+
}
|
|
11259
|
+
parseHelpPath() {
|
|
11260
|
+
const start = this.stream.readByte();
|
|
11261
|
+
const pos = { x: 0, y: 0, z: 0 };
|
|
11262
|
+
this.stream.readPos(pos);
|
|
11263
|
+
const dir = { x: 0, y: 0, z: 0 };
|
|
11264
|
+
this.stream.readDir(dir);
|
|
11265
|
+
if (this.handler && this.handler.onHelpPath) {
|
|
11266
|
+
this.handler.onHelpPath(pos);
|
|
11267
|
+
}
|
|
11268
|
+
}
|
|
11269
|
+
parseAchievement() {
|
|
11270
|
+
const idStr = this.stream.readString();
|
|
11271
|
+
}
|
|
6930
11272
|
parseDownload() {
|
|
6931
11273
|
const size = this.stream.readShort();
|
|
6932
11274
|
const percent = this.stream.readByte();
|
|
@@ -7673,4 +12015,9 @@ export {
|
|
|
7673
12015
|
wireDropTarget,
|
|
7674
12016
|
wireFileInput
|
|
7675
12017
|
};
|
|
12018
|
+
/*! Bundled license information:
|
|
12019
|
+
|
|
12020
|
+
pako/dist/pako.esm.mjs:
|
|
12021
|
+
(*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
|
|
12022
|
+
*/
|
|
7676
12023
|
//# sourceMappingURL=index.js.map
|