Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mamayaya1
GitHub Repository: mamayaya1/game
Path: blob/main/projects/drift-hunters/UnityLoader.js
4626 views
1
var UnityLoader = UnityLoader || {
2
Compression: {
3
identity: {
4
require: function () {
5
return {};
6
},
7
decompress: function (e) {
8
return e;
9
},
10
},
11
gzip: {
12
require: function (e) {
13
var t = {
14
"inflate.js": function (e, t, r) {
15
"use strict";
16
function n(e) {
17
if (!(this instanceof n)) return new n(e);
18
this.options = s.assign(
19
{ chunkSize: 16384, windowBits: 0, to: "" },
20
e || {}
21
);
22
var t = this.options;
23
t.raw &&
24
t.windowBits >= 0 &&
25
t.windowBits < 16 &&
26
((t.windowBits = -t.windowBits),
27
0 === t.windowBits && (t.windowBits = -15)),
28
!(t.windowBits >= 0 && t.windowBits < 16) ||
29
(e && e.windowBits) ||
30
(t.windowBits += 32),
31
t.windowBits > 15 &&
32
t.windowBits < 48 &&
33
0 === (15 & t.windowBits) &&
34
(t.windowBits |= 15),
35
(this.err = 0),
36
(this.msg = ""),
37
(this.ended = !1),
38
(this.chunks = []),
39
(this.strm = new c()),
40
(this.strm.avail_out = 0);
41
var r = a.inflateInit2(this.strm, t.windowBits);
42
if (r !== l.Z_OK) throw new Error(u[r]);
43
(this.header = new f()),
44
a.inflateGetHeader(this.strm, this.header);
45
}
46
function o(e, t) {
47
var r = new n(t);
48
if ((r.push(e, !0), r.err)) throw r.msg || u[r.err];
49
return r.result;
50
}
51
function i(e, t) {
52
return (t = t || {}), (t.raw = !0), o(e, t);
53
}
54
var a = e("./zlib/inflate"),
55
s = e("./utils/common"),
56
d = e("./utils/strings"),
57
l = e("./zlib/constants"),
58
u = e("./zlib/messages"),
59
c = e("./zlib/zstream"),
60
f = e("./zlib/gzheader"),
61
h = Object.prototype.toString;
62
(n.prototype.push = function (e, t) {
63
var r,
64
n,
65
o,
66
i,
67
u,
68
c,
69
f = this.strm,
70
p = this.options.chunkSize,
71
m = this.options.dictionary,
72
w = !1;
73
if (this.ended) return !1;
74
(n = t === ~~t ? t : t === !0 ? l.Z_FINISH : l.Z_NO_FLUSH),
75
"string" == typeof e
76
? (f.input = d.binstring2buf(e))
77
: "[object ArrayBuffer]" === h.call(e)
78
? (f.input = new Uint8Array(e))
79
: (f.input = e),
80
(f.next_in = 0),
81
(f.avail_in = f.input.length);
82
do {
83
if (
84
(0 === f.avail_out &&
85
((f.output = new s.Buf8(p)),
86
(f.next_out = 0),
87
(f.avail_out = p)),
88
(r = a.inflate(f, l.Z_NO_FLUSH)),
89
r === l.Z_NEED_DICT &&
90
m &&
91
((c =
92
"string" == typeof m
93
? d.string2buf(m)
94
: "[object ArrayBuffer]" === h.call(m)
95
? new Uint8Array(m)
96
: m),
97
(r = a.inflateSetDictionary(this.strm, c))),
98
r === l.Z_BUF_ERROR && w === !0 && ((r = l.Z_OK), (w = !1)),
99
r !== l.Z_STREAM_END && r !== l.Z_OK)
100
)
101
return this.onEnd(r), (this.ended = !0), !1;
102
f.next_out &&
103
((0 !== f.avail_out &&
104
r !== l.Z_STREAM_END &&
105
(0 !== f.avail_in ||
106
(n !== l.Z_FINISH && n !== l.Z_SYNC_FLUSH))) ||
107
("string" === this.options.to
108
? ((o = d.utf8border(f.output, f.next_out)),
109
(i = f.next_out - o),
110
(u = d.buf2string(f.output, o)),
111
(f.next_out = i),
112
(f.avail_out = p - i),
113
i && s.arraySet(f.output, f.output, o, i, 0),
114
this.onData(u))
115
: this.onData(s.shrinkBuf(f.output, f.next_out)))),
116
0 === f.avail_in && 0 === f.avail_out && (w = !0);
117
} while (
118
(f.avail_in > 0 || 0 === f.avail_out) &&
119
r !== l.Z_STREAM_END
120
);
121
return (
122
r === l.Z_STREAM_END && (n = l.Z_FINISH),
123
n === l.Z_FINISH
124
? ((r = a.inflateEnd(this.strm)),
125
this.onEnd(r),
126
(this.ended = !0),
127
r === l.Z_OK)
128
: n !== l.Z_SYNC_FLUSH ||
129
(this.onEnd(l.Z_OK), (f.avail_out = 0), !0)
130
);
131
}),
132
(n.prototype.onData = function (e) {
133
this.chunks.push(e);
134
}),
135
(n.prototype.onEnd = function (e) {
136
e === l.Z_OK &&
137
("string" === this.options.to
138
? (this.result = this.chunks.join(""))
139
: (this.result = s.flattenChunks(this.chunks))),
140
(this.chunks = []),
141
(this.err = e),
142
(this.msg = this.strm.msg);
143
}),
144
(r.Inflate = n),
145
(r.inflate = o),
146
(r.inflateRaw = i),
147
(r.ungzip = o);
148
},
149
"utils/common.js": function (e, t, r) {
150
"use strict";
151
var n =
152
"undefined" != typeof Uint8Array &&
153
"undefined" != typeof Uint16Array &&
154
"undefined" != typeof Int32Array;
155
(r.assign = function (e) {
156
for (
157
var t = Array.prototype.slice.call(arguments, 1);
158
t.length;
159
160
) {
161
var r = t.shift();
162
if (r) {
163
if ("object" != typeof r)
164
throw new TypeError(r + "must be non-object");
165
for (var n in r) r.hasOwnProperty(n) && (e[n] = r[n]);
166
}
167
}
168
return e;
169
}),
170
(r.shrinkBuf = function (e, t) {
171
return e.length === t
172
? e
173
: e.subarray
174
? e.subarray(0, t)
175
: ((e.length = t), e);
176
});
177
var o = {
178
arraySet: function (e, t, r, n, o) {
179
if (t.subarray && e.subarray)
180
return void e.set(t.subarray(r, r + n), o);
181
for (var i = 0; i < n; i++) e[o + i] = t[r + i];
182
},
183
flattenChunks: function (e) {
184
var t, r, n, o, i, a;
185
for (n = 0, t = 0, r = e.length; t < r; t++) n += e[t].length;
186
for (
187
a = new Uint8Array(n), o = 0, t = 0, r = e.length;
188
t < r;
189
t++
190
)
191
(i = e[t]), a.set(i, o), (o += i.length);
192
return a;
193
},
194
},
195
i = {
196
arraySet: function (e, t, r, n, o) {
197
for (var i = 0; i < n; i++) e[o + i] = t[r + i];
198
},
199
flattenChunks: function (e) {
200
return [].concat.apply([], e);
201
},
202
};
203
(r.setTyped = function (e) {
204
e
205
? ((r.Buf8 = Uint8Array),
206
(r.Buf16 = Uint16Array),
207
(r.Buf32 = Int32Array),
208
r.assign(r, o))
209
: ((r.Buf8 = Array),
210
(r.Buf16 = Array),
211
(r.Buf32 = Array),
212
r.assign(r, i));
213
}),
214
r.setTyped(n);
215
},
216
"utils/strings.js": function (e, t, r) {
217
"use strict";
218
function n(e, t) {
219
if (t < 65537 && ((e.subarray && a) || (!e.subarray && i)))
220
return String.fromCharCode.apply(null, o.shrinkBuf(e, t));
221
for (var r = "", n = 0; n < t; n++)
222
r += String.fromCharCode(e[n]);
223
return r;
224
}
225
var o = e("./common"),
226
i = !0,
227
a = !0;
228
try {
229
String.fromCharCode.apply(null, [0]);
230
} catch (e) {
231
i = !1;
232
}
233
try {
234
String.fromCharCode.apply(null, new Uint8Array(1));
235
} catch (e) {
236
a = !1;
237
}
238
for (var s = new o.Buf8(256), d = 0; d < 256; d++)
239
s[d] =
240
d >= 252
241
? 6
242
: d >= 248
243
? 5
244
: d >= 240
245
? 4
246
: d >= 224
247
? 3
248
: d >= 192
249
? 2
250
: 1;
251
(s[254] = s[254] = 1),
252
(r.string2buf = function (e) {
253
var t,
254
r,
255
n,
256
i,
257
a,
258
s = e.length,
259
d = 0;
260
for (i = 0; i < s; i++)
261
(r = e.charCodeAt(i)),
262
55296 === (64512 & r) &&
263
i + 1 < s &&
264
((n = e.charCodeAt(i + 1)),
265
56320 === (64512 & n) &&
266
((r = 65536 + ((r - 55296) << 10) + (n - 56320)), i++)),
267
(d += r < 128 ? 1 : r < 2048 ? 2 : r < 65536 ? 3 : 4);
268
for (t = new o.Buf8(d), a = 0, i = 0; a < d; i++)
269
(r = e.charCodeAt(i)),
270
55296 === (64512 & r) &&
271
i + 1 < s &&
272
((n = e.charCodeAt(i + 1)),
273
56320 === (64512 & n) &&
274
((r = 65536 + ((r - 55296) << 10) + (n - 56320)), i++)),
275
r < 128
276
? (t[a++] = r)
277
: r < 2048
278
? ((t[a++] = 192 | (r >>> 6)), (t[a++] = 128 | (63 & r)))
279
: r < 65536
280
? ((t[a++] = 224 | (r >>> 12)),
281
(t[a++] = 128 | ((r >>> 6) & 63)),
282
(t[a++] = 128 | (63 & r)))
283
: ((t[a++] = 240 | (r >>> 18)),
284
(t[a++] = 128 | ((r >>> 12) & 63)),
285
(t[a++] = 128 | ((r >>> 6) & 63)),
286
(t[a++] = 128 | (63 & r)));
287
return t;
288
}),
289
(r.buf2binstring = function (e) {
290
return n(e, e.length);
291
}),
292
(r.binstring2buf = function (e) {
293
for (
294
var t = new o.Buf8(e.length), r = 0, n = t.length;
295
r < n;
296
r++
297
)
298
t[r] = e.charCodeAt(r);
299
return t;
300
}),
301
(r.buf2string = function (e, t) {
302
var r,
303
o,
304
i,
305
a,
306
d = t || e.length,
307
l = new Array(2 * d);
308
for (o = 0, r = 0; r < d; )
309
if (((i = e[r++]), i < 128)) l[o++] = i;
310
else if (((a = s[i]), a > 4)) (l[o++] = 65533), (r += a - 1);
311
else {
312
for (i &= 2 === a ? 31 : 3 === a ? 15 : 7; a > 1 && r < d; )
313
(i = (i << 6) | (63 & e[r++])), a--;
314
a > 1
315
? (l[o++] = 65533)
316
: i < 65536
317
? (l[o++] = i)
318
: ((i -= 65536),
319
(l[o++] = 55296 | ((i >> 10) & 1023)),
320
(l[o++] = 56320 | (1023 & i)));
321
}
322
return n(l, o);
323
}),
324
(r.utf8border = function (e, t) {
325
var r;
326
for (
327
t = t || e.length, t > e.length && (t = e.length), r = t - 1;
328
r >= 0 && 128 === (192 & e[r]);
329
330
)
331
r--;
332
return r < 0 ? t : 0 === r ? t : r + s[e[r]] > t ? r : t;
333
});
334
},
335
"zlib/inflate.js": function (e, t, r) {
336
"use strict";
337
function n(e) {
338
return (
339
((e >>> 24) & 255) +
340
((e >>> 8) & 65280) +
341
((65280 & e) << 8) +
342
((255 & e) << 24)
343
);
344
}
345
function o() {
346
(this.mode = 0),
347
(this.last = !1),
348
(this.wrap = 0),
349
(this.havedict = !1),
350
(this.flags = 0),
351
(this.dmax = 0),
352
(this.check = 0),
353
(this.total = 0),
354
(this.head = null),
355
(this.wbits = 0),
356
(this.wsize = 0),
357
(this.whave = 0),
358
(this.wnext = 0),
359
(this.window = null),
360
(this.hold = 0),
361
(this.bits = 0),
362
(this.length = 0),
363
(this.offset = 0),
364
(this.extra = 0),
365
(this.lencode = null),
366
(this.distcode = null),
367
(this.lenbits = 0),
368
(this.distbits = 0),
369
(this.ncode = 0),
370
(this.nlen = 0),
371
(this.ndist = 0),
372
(this.have = 0),
373
(this.next = null),
374
(this.lens = new y.Buf16(320)),
375
(this.work = new y.Buf16(288)),
376
(this.lendyn = null),
377
(this.distdyn = null),
378
(this.sane = 0),
379
(this.back = 0),
380
(this.was = 0);
381
}
382
function i(e) {
383
var t;
384
return e && e.state
385
? ((t = e.state),
386
(e.total_in = e.total_out = t.total = 0),
387
(e.msg = ""),
388
t.wrap && (e.adler = 1 & t.wrap),
389
(t.mode = P),
390
(t.last = 0),
391
(t.havedict = 0),
392
(t.dmax = 32768),
393
(t.head = null),
394
(t.hold = 0),
395
(t.bits = 0),
396
(t.lencode = t.lendyn = new y.Buf32(me)),
397
(t.distcode = t.distdyn = new y.Buf32(we)),
398
(t.sane = 1),
399
(t.back = -1),
400
M)
401
: R;
402
}
403
function a(e) {
404
var t;
405
return e && e.state
406
? ((t = e.state),
407
(t.wsize = 0),
408
(t.whave = 0),
409
(t.wnext = 0),
410
i(e))
411
: R;
412
}
413
function s(e, t) {
414
var r, n;
415
return e && e.state
416
? ((n = e.state),
417
t < 0
418
? ((r = 0), (t = -t))
419
: ((r = (t >> 4) + 1), t < 48 && (t &= 15)),
420
t && (t < 8 || t > 15)
421
? R
422
: (null !== n.window && n.wbits !== t && (n.window = null),
423
(n.wrap = r),
424
(n.wbits = t),
425
a(e)))
426
: R;
427
}
428
function d(e, t) {
429
var r, n;
430
return e
431
? ((n = new o()),
432
(e.state = n),
433
(n.window = null),
434
(r = s(e, t)),
435
r !== M && (e.state = null),
436
r)
437
: R;
438
}
439
function l(e) {
440
return d(e, ye);
441
}
442
function u(e) {
443
if (ge) {
444
var t;
445
for (
446
w = new y.Buf32(512), b = new y.Buf32(32), t = 0;
447
t < 144;
448
449
)
450
e.lens[t++] = 8;
451
for (; t < 256; ) e.lens[t++] = 9;
452
for (; t < 280; ) e.lens[t++] = 7;
453
for (; t < 288; ) e.lens[t++] = 8;
454
for (
455
U(E, e.lens, 0, 288, w, 0, e.work, { bits: 9 }), t = 0;
456
t < 32;
457
458
)
459
e.lens[t++] = 5;
460
U(k, e.lens, 0, 32, b, 0, e.work, { bits: 5 }), (ge = !1);
461
}
462
(e.lencode = w),
463
(e.lenbits = 9),
464
(e.distcode = b),
465
(e.distbits = 5);
466
}
467
function c(e, t, r, n) {
468
var o,
469
i = e.state;
470
return (
471
null === i.window &&
472
((i.wsize = 1 << i.wbits),
473
(i.wnext = 0),
474
(i.whave = 0),
475
(i.window = new y.Buf8(i.wsize))),
476
n >= i.wsize
477
? (y.arraySet(i.window, t, r - i.wsize, i.wsize, 0),
478
(i.wnext = 0),
479
(i.whave = i.wsize))
480
: ((o = i.wsize - i.wnext),
481
o > n && (o = n),
482
y.arraySet(i.window, t, r - n, o, i.wnext),
483
(n -= o),
484
n
485
? (y.arraySet(i.window, t, r - n, n, 0),
486
(i.wnext = n),
487
(i.whave = i.wsize))
488
: ((i.wnext += o),
489
i.wnext === i.wsize && (i.wnext = 0),
490
i.whave < i.wsize && (i.whave += o))),
491
0
492
);
493
}
494
function f(e, t) {
495
var r,
496
o,
497
i,
498
a,
499
s,
500
d,
501
l,
502
f,
503
h,
504
p,
505
m,
506
w,
507
b,
508
me,
509
we,
510
be,
511
ye,
512
ge,
513
ve,
514
Ae,
515
Ue,
516
xe,
517
Ee,
518
ke,
519
Be = 0,
520
Le = new y.Buf8(4),
521
We = [
522
16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1,
523
15,
524
];
525
if (!e || !e.state || !e.output || (!e.input && 0 !== e.avail_in))
526
return R;
527
(r = e.state),
528
r.mode === j && (r.mode = X),
529
(s = e.next_out),
530
(i = e.output),
531
(l = e.avail_out),
532
(a = e.next_in),
533
(o = e.input),
534
(d = e.avail_in),
535
(f = r.hold),
536
(h = r.bits),
537
(p = d),
538
(m = l),
539
(xe = M);
540
e: for (;;)
541
switch (r.mode) {
542
case P:
543
if (0 === r.wrap) {
544
r.mode = X;
545
break;
546
}
547
for (; h < 16; ) {
548
if (0 === d) break e;
549
d--, (f += o[a++] << h), (h += 8);
550
}
551
if (2 & r.wrap && 35615 === f) {
552
(r.check = 0),
553
(Le[0] = 255 & f),
554
(Le[1] = (f >>> 8) & 255),
555
(r.check = v(r.check, Le, 2, 0)),
556
(f = 0),
557
(h = 0),
558
(r.mode = T);
559
break;
560
}
561
if (
562
((r.flags = 0),
563
r.head && (r.head.done = !1),
564
!(1 & r.wrap) || (((255 & f) << 8) + (f >> 8)) % 31)
565
) {
566
(e.msg = "incorrect header check"), (r.mode = fe);
567
break;
568
}
569
if ((15 & f) !== S) {
570
(e.msg = "unknown compression method"), (r.mode = fe);
571
break;
572
}
573
if (
574
((f >>>= 4), (h -= 4), (Ue = (15 & f) + 8), 0 === r.wbits)
575
)
576
r.wbits = Ue;
577
else if (Ue > r.wbits) {
578
(e.msg = "invalid window size"), (r.mode = fe);
579
break;
580
}
581
(r.dmax = 1 << Ue),
582
(e.adler = r.check = 1),
583
(r.mode = 512 & f ? G : j),
584
(f = 0),
585
(h = 0);
586
break;
587
case T:
588
for (; h < 16; ) {
589
if (0 === d) break e;
590
d--, (f += o[a++] << h), (h += 8);
591
}
592
if (((r.flags = f), (255 & r.flags) !== S)) {
593
(e.msg = "unknown compression method"), (r.mode = fe);
594
break;
595
}
596
if (57344 & r.flags) {
597
(e.msg = "unknown header flags set"), (r.mode = fe);
598
break;
599
}
600
r.head && (r.head.text = (f >> 8) & 1),
601
512 & r.flags &&
602
((Le[0] = 255 & f),
603
(Le[1] = (f >>> 8) & 255),
604
(r.check = v(r.check, Le, 2, 0))),
605
(f = 0),
606
(h = 0),
607
(r.mode = D);
608
case D:
609
for (; h < 32; ) {
610
if (0 === d) break e;
611
d--, (f += o[a++] << h), (h += 8);
612
}
613
r.head && (r.head.time = f),
614
512 & r.flags &&
615
((Le[0] = 255 & f),
616
(Le[1] = (f >>> 8) & 255),
617
(Le[2] = (f >>> 16) & 255),
618
(Le[3] = (f >>> 24) & 255),
619
(r.check = v(r.check, Le, 4, 0))),
620
(f = 0),
621
(h = 0),
622
(r.mode = F);
623
case F:
624
for (; h < 16; ) {
625
if (0 === d) break e;
626
d--, (f += o[a++] << h), (h += 8);
627
}
628
r.head && ((r.head.xflags = 255 & f), (r.head.os = f >> 8)),
629
512 & r.flags &&
630
((Le[0] = 255 & f),
631
(Le[1] = (f >>> 8) & 255),
632
(r.check = v(r.check, Le, 2, 0))),
633
(f = 0),
634
(h = 0),
635
(r.mode = z);
636
case z:
637
if (1024 & r.flags) {
638
for (; h < 16; ) {
639
if (0 === d) break e;
640
d--, (f += o[a++] << h), (h += 8);
641
}
642
(r.length = f),
643
r.head && (r.head.extra_len = f),
644
512 & r.flags &&
645
((Le[0] = 255 & f),
646
(Le[1] = (f >>> 8) & 255),
647
(r.check = v(r.check, Le, 2, 0))),
648
(f = 0),
649
(h = 0);
650
} else r.head && (r.head.extra = null);
651
r.mode = V;
652
case V:
653
if (
654
1024 & r.flags &&
655
((w = r.length),
656
w > d && (w = d),
657
w &&
658
(r.head &&
659
((Ue = r.head.extra_len - r.length),
660
r.head.extra ||
661
(r.head.extra = new Array(r.head.extra_len)),
662
y.arraySet(r.head.extra, o, a, w, Ue)),
663
512 & r.flags && (r.check = v(r.check, o, w, a)),
664
(d -= w),
665
(a += w),
666
(r.length -= w)),
667
r.length)
668
)
669
break e;
670
(r.length = 0), (r.mode = q);
671
case q:
672
if (2048 & r.flags) {
673
if (0 === d) break e;
674
w = 0;
675
do
676
(Ue = o[a + w++]),
677
r.head &&
678
Ue &&
679
r.length < 65536 &&
680
(r.head.name += String.fromCharCode(Ue));
681
while (Ue && w < d);
682
if (
683
(512 & r.flags && (r.check = v(r.check, o, w, a)),
684
(d -= w),
685
(a += w),
686
Ue)
687
)
688
break e;
689
} else r.head && (r.head.name = null);
690
(r.length = 0), (r.mode = Z);
691
case Z:
692
if (4096 & r.flags) {
693
if (0 === d) break e;
694
w = 0;
695
do
696
(Ue = o[a + w++]),
697
r.head &&
698
Ue &&
699
r.length < 65536 &&
700
(r.head.comment += String.fromCharCode(Ue));
701
while (Ue && w < d);
702
if (
703
(512 & r.flags && (r.check = v(r.check, o, w, a)),
704
(d -= w),
705
(a += w),
706
Ue)
707
)
708
break e;
709
} else r.head && (r.head.comment = null);
710
r.mode = Y;
711
case Y:
712
if (512 & r.flags) {
713
for (; h < 16; ) {
714
if (0 === d) break e;
715
d--, (f += o[a++] << h), (h += 8);
716
}
717
if (f !== (65535 & r.check)) {
718
(e.msg = "header crc mismatch"), (r.mode = fe);
719
break;
720
}
721
(f = 0), (h = 0);
722
}
723
r.head &&
724
((r.head.hcrc = (r.flags >> 9) & 1), (r.head.done = !0)),
725
(e.adler = r.check = 0),
726
(r.mode = j);
727
break;
728
case G:
729
for (; h < 32; ) {
730
if (0 === d) break e;
731
d--, (f += o[a++] << h), (h += 8);
732
}
733
(e.adler = r.check = n(f)), (f = 0), (h = 0), (r.mode = J);
734
case J:
735
if (0 === r.havedict)
736
return (
737
(e.next_out = s),
738
(e.avail_out = l),
739
(e.next_in = a),
740
(e.avail_in = d),
741
(r.hold = f),
742
(r.bits = h),
743
N
744
);
745
(e.adler = r.check = 1), (r.mode = j);
746
case j:
747
if (t === L || t === W) break e;
748
case X:
749
if (r.last) {
750
(f >>>= 7 & h), (h -= 7 & h), (r.mode = le);
751
break;
752
}
753
for (; h < 3; ) {
754
if (0 === d) break e;
755
d--, (f += o[a++] << h), (h += 8);
756
}
757
switch (((r.last = 1 & f), (f >>>= 1), (h -= 1), 3 & f)) {
758
case 0:
759
r.mode = K;
760
break;
761
case 1:
762
if ((u(r), (r.mode = re), t === W)) {
763
(f >>>= 2), (h -= 2);
764
break e;
765
}
766
break;
767
case 2:
768
r.mode = $;
769
break;
770
case 3:
771
(e.msg = "invalid block type"), (r.mode = fe);
772
}
773
(f >>>= 2), (h -= 2);
774
break;
775
case K:
776
for (f >>>= 7 & h, h -= 7 & h; h < 32; ) {
777
if (0 === d) break e;
778
d--, (f += o[a++] << h), (h += 8);
779
}
780
if ((65535 & f) !== ((f >>> 16) ^ 65535)) {
781
(e.msg = "invalid stored block lengths"), (r.mode = fe);
782
break;
783
}
784
if (
785
((r.length = 65535 & f),
786
(f = 0),
787
(h = 0),
788
(r.mode = Q),
789
t === W)
790
)
791
break e;
792
case Q:
793
r.mode = _;
794
case _:
795
if ((w = r.length)) {
796
if ((w > d && (w = d), w > l && (w = l), 0 === w))
797
break e;
798
y.arraySet(i, o, a, w, s),
799
(d -= w),
800
(a += w),
801
(l -= w),
802
(s += w),
803
(r.length -= w);
804
break;
805
}
806
r.mode = j;
807
break;
808
case $:
809
for (; h < 14; ) {
810
if (0 === d) break e;
811
d--, (f += o[a++] << h), (h += 8);
812
}
813
if (
814
((r.nlen = (31 & f) + 257),
815
(f >>>= 5),
816
(h -= 5),
817
(r.ndist = (31 & f) + 1),
818
(f >>>= 5),
819
(h -= 5),
820
(r.ncode = (15 & f) + 4),
821
(f >>>= 4),
822
(h -= 4),
823
r.nlen > 286 || r.ndist > 30)
824
) {
825
(e.msg = "too many length or distance symbols"),
826
(r.mode = fe);
827
break;
828
}
829
(r.have = 0), (r.mode = ee);
830
case ee:
831
for (; r.have < r.ncode; ) {
832
for (; h < 3; ) {
833
if (0 === d) break e;
834
d--, (f += o[a++] << h), (h += 8);
835
}
836
(r.lens[We[r.have++]] = 7 & f), (f >>>= 3), (h -= 3);
837
}
838
for (; r.have < 19; ) r.lens[We[r.have++]] = 0;
839
if (
840
((r.lencode = r.lendyn),
841
(r.lenbits = 7),
842
(Ee = { bits: r.lenbits }),
843
(xe = U(x, r.lens, 0, 19, r.lencode, 0, r.work, Ee)),
844
(r.lenbits = Ee.bits),
845
xe)
846
) {
847
(e.msg = "invalid code lengths set"), (r.mode = fe);
848
break;
849
}
850
(r.have = 0), (r.mode = te);
851
case te:
852
for (; r.have < r.nlen + r.ndist; ) {
853
for (
854
;
855
(Be = r.lencode[f & ((1 << r.lenbits) - 1)]),
856
(we = Be >>> 24),
857
(be = (Be >>> 16) & 255),
858
(ye = 65535 & Be),
859
!(we <= h);
860
861
) {
862
if (0 === d) break e;
863
d--, (f += o[a++] << h), (h += 8);
864
}
865
if (ye < 16)
866
(f >>>= we), (h -= we), (r.lens[r.have++] = ye);
867
else {
868
if (16 === ye) {
869
for (ke = we + 2; h < ke; ) {
870
if (0 === d) break e;
871
d--, (f += o[a++] << h), (h += 8);
872
}
873
if (((f >>>= we), (h -= we), 0 === r.have)) {
874
(e.msg = "invalid bit length repeat"),
875
(r.mode = fe);
876
break;
877
}
878
(Ue = r.lens[r.have - 1]),
879
(w = 3 + (3 & f)),
880
(f >>>= 2),
881
(h -= 2);
882
} else if (17 === ye) {
883
for (ke = we + 3; h < ke; ) {
884
if (0 === d) break e;
885
d--, (f += o[a++] << h), (h += 8);
886
}
887
(f >>>= we),
888
(h -= we),
889
(Ue = 0),
890
(w = 3 + (7 & f)),
891
(f >>>= 3),
892
(h -= 3);
893
} else {
894
for (ke = we + 7; h < ke; ) {
895
if (0 === d) break e;
896
d--, (f += o[a++] << h), (h += 8);
897
}
898
(f >>>= we),
899
(h -= we),
900
(Ue = 0),
901
(w = 11 + (127 & f)),
902
(f >>>= 7),
903
(h -= 7);
904
}
905
if (r.have + w > r.nlen + r.ndist) {
906
(e.msg = "invalid bit length repeat"), (r.mode = fe);
907
break;
908
}
909
for (; w--; ) r.lens[r.have++] = Ue;
910
}
911
}
912
if (r.mode === fe) break;
913
if (0 === r.lens[256]) {
914
(e.msg = "invalid code -- missing end-of-block"),
915
(r.mode = fe);
916
break;
917
}
918
if (
919
((r.lenbits = 9),
920
(Ee = { bits: r.lenbits }),
921
(xe = U(E, r.lens, 0, r.nlen, r.lencode, 0, r.work, Ee)),
922
(r.lenbits = Ee.bits),
923
xe)
924
) {
925
(e.msg = "invalid literal/lengths set"), (r.mode = fe);
926
break;
927
}
928
if (
929
((r.distbits = 6),
930
(r.distcode = r.distdyn),
931
(Ee = { bits: r.distbits }),
932
(xe = U(
933
k,
934
r.lens,
935
r.nlen,
936
r.ndist,
937
r.distcode,
938
0,
939
r.work,
940
Ee
941
)),
942
(r.distbits = Ee.bits),
943
xe)
944
) {
945
(e.msg = "invalid distances set"), (r.mode = fe);
946
break;
947
}
948
if (((r.mode = re), t === W)) break e;
949
case re:
950
r.mode = ne;
951
case ne:
952
if (d >= 6 && l >= 258) {
953
(e.next_out = s),
954
(e.avail_out = l),
955
(e.next_in = a),
956
(e.avail_in = d),
957
(r.hold = f),
958
(r.bits = h),
959
A(e, m),
960
(s = e.next_out),
961
(i = e.output),
962
(l = e.avail_out),
963
(a = e.next_in),
964
(o = e.input),
965
(d = e.avail_in),
966
(f = r.hold),
967
(h = r.bits),
968
r.mode === j && (r.back = -1);
969
break;
970
}
971
for (
972
r.back = 0;
973
(Be = r.lencode[f & ((1 << r.lenbits) - 1)]),
974
(we = Be >>> 24),
975
(be = (Be >>> 16) & 255),
976
(ye = 65535 & Be),
977
!(we <= h);
978
979
) {
980
if (0 === d) break e;
981
d--, (f += o[a++] << h), (h += 8);
982
}
983
if (be && 0 === (240 & be)) {
984
for (
985
ge = we, ve = be, Ae = ye;
986
(Be =
987
r.lencode[Ae + ((f & ((1 << (ge + ve)) - 1)) >> ge)]),
988
(we = Be >>> 24),
989
(be = (Be >>> 16) & 255),
990
(ye = 65535 & Be),
991
!(ge + we <= h);
992
993
) {
994
if (0 === d) break e;
995
d--, (f += o[a++] << h), (h += 8);
996
}
997
(f >>>= ge), (h -= ge), (r.back += ge);
998
}
999
if (
1000
((f >>>= we),
1001
(h -= we),
1002
(r.back += we),
1003
(r.length = ye),
1004
0 === be)
1005
) {
1006
r.mode = de;
1007
break;
1008
}
1009
if (32 & be) {
1010
(r.back = -1), (r.mode = j);
1011
break;
1012
}
1013
if (64 & be) {
1014
(e.msg = "invalid literal/length code"), (r.mode = fe);
1015
break;
1016
}
1017
(r.extra = 15 & be), (r.mode = oe);
1018
case oe:
1019
if (r.extra) {
1020
for (ke = r.extra; h < ke; ) {
1021
if (0 === d) break e;
1022
d--, (f += o[a++] << h), (h += 8);
1023
}
1024
(r.length += f & ((1 << r.extra) - 1)),
1025
(f >>>= r.extra),
1026
(h -= r.extra),
1027
(r.back += r.extra);
1028
}
1029
(r.was = r.length), (r.mode = ie);
1030
case ie:
1031
for (
1032
;
1033
(Be = r.distcode[f & ((1 << r.distbits) - 1)]),
1034
(we = Be >>> 24),
1035
(be = (Be >>> 16) & 255),
1036
(ye = 65535 & Be),
1037
!(we <= h);
1038
1039
) {
1040
if (0 === d) break e;
1041
d--, (f += o[a++] << h), (h += 8);
1042
}
1043
if (0 === (240 & be)) {
1044
for (
1045
ge = we, ve = be, Ae = ye;
1046
(Be =
1047
r.distcode[
1048
Ae + ((f & ((1 << (ge + ve)) - 1)) >> ge)
1049
]),
1050
(we = Be >>> 24),
1051
(be = (Be >>> 16) & 255),
1052
(ye = 65535 & Be),
1053
!(ge + we <= h);
1054
1055
) {
1056
if (0 === d) break e;
1057
d--, (f += o[a++] << h), (h += 8);
1058
}
1059
(f >>>= ge), (h -= ge), (r.back += ge);
1060
}
1061
if (((f >>>= we), (h -= we), (r.back += we), 64 & be)) {
1062
(e.msg = "invalid distance code"), (r.mode = fe);
1063
break;
1064
}
1065
(r.offset = ye), (r.extra = 15 & be), (r.mode = ae);
1066
case ae:
1067
if (r.extra) {
1068
for (ke = r.extra; h < ke; ) {
1069
if (0 === d) break e;
1070
d--, (f += o[a++] << h), (h += 8);
1071
}
1072
(r.offset += f & ((1 << r.extra) - 1)),
1073
(f >>>= r.extra),
1074
(h -= r.extra),
1075
(r.back += r.extra);
1076
}
1077
if (r.offset > r.dmax) {
1078
(e.msg = "invalid distance too far back"), (r.mode = fe);
1079
break;
1080
}
1081
r.mode = se;
1082
case se:
1083
if (0 === l) break e;
1084
if (((w = m - l), r.offset > w)) {
1085
if (((w = r.offset - w), w > r.whave && r.sane)) {
1086
(e.msg = "invalid distance too far back"),
1087
(r.mode = fe);
1088
break;
1089
}
1090
w > r.wnext
1091
? ((w -= r.wnext), (b = r.wsize - w))
1092
: (b = r.wnext - w),
1093
w > r.length && (w = r.length),
1094
(me = r.window);
1095
} else (me = i), (b = s - r.offset), (w = r.length);
1096
w > l && (w = l), (l -= w), (r.length -= w);
1097
do i[s++] = me[b++];
1098
while (--w);
1099
0 === r.length && (r.mode = ne);
1100
break;
1101
case de:
1102
if (0 === l) break e;
1103
(i[s++] = r.length), l--, (r.mode = ne);
1104
break;
1105
case le:
1106
if (r.wrap) {
1107
for (; h < 32; ) {
1108
if (0 === d) break e;
1109
d--, (f |= o[a++] << h), (h += 8);
1110
}
1111
if (
1112
((m -= l),
1113
(e.total_out += m),
1114
(r.total += m),
1115
m &&
1116
(e.adler = r.check =
1117
r.flags
1118
? v(r.check, i, m, s - m)
1119
: g(r.check, i, m, s - m)),
1120
(m = l),
1121
(r.flags ? f : n(f)) !== r.check)
1122
) {
1123
(e.msg = "incorrect data check"), (r.mode = fe);
1124
break;
1125
}
1126
(f = 0), (h = 0);
1127
}
1128
r.mode = ue;
1129
case ue:
1130
if (r.wrap && r.flags) {
1131
for (; h < 32; ) {
1132
if (0 === d) break e;
1133
d--, (f += o[a++] << h), (h += 8);
1134
}
1135
if (f !== (4294967295 & r.total)) {
1136
(e.msg = "incorrect length check"), (r.mode = fe);
1137
break;
1138
}
1139
(f = 0), (h = 0);
1140
}
1141
r.mode = ce;
1142
case ce:
1143
xe = O;
1144
break e;
1145
case fe:
1146
xe = C;
1147
break e;
1148
case he:
1149
return I;
1150
case pe:
1151
default:
1152
return R;
1153
}
1154
return (
1155
(e.next_out = s),
1156
(e.avail_out = l),
1157
(e.next_in = a),
1158
(e.avail_in = d),
1159
(r.hold = f),
1160
(r.bits = h),
1161
(r.wsize ||
1162
(m !== e.avail_out &&
1163
r.mode < fe &&
1164
(r.mode < le || t !== B))) &&
1165
c(e, e.output, e.next_out, m - e.avail_out)
1166
? ((r.mode = he), I)
1167
: ((p -= e.avail_in),
1168
(m -= e.avail_out),
1169
(e.total_in += p),
1170
(e.total_out += m),
1171
(r.total += m),
1172
r.wrap &&
1173
m &&
1174
(e.adler = r.check =
1175
r.flags
1176
? v(r.check, i, m, e.next_out - m)
1177
: g(r.check, i, m, e.next_out - m)),
1178
(e.data_type =
1179
r.bits +
1180
(r.last ? 64 : 0) +
1181
(r.mode === j ? 128 : 0) +
1182
(r.mode === re || r.mode === Q ? 256 : 0)),
1183
((0 === p && 0 === m) || t === B) && xe === M && (xe = H),
1184
xe)
1185
);
1186
}
1187
function h(e) {
1188
if (!e || !e.state) return R;
1189
var t = e.state;
1190
return t.window && (t.window = null), (e.state = null), M;
1191
}
1192
function p(e, t) {
1193
var r;
1194
return e && e.state
1195
? ((r = e.state),
1196
0 === (2 & r.wrap) ? R : ((r.head = t), (t.done = !1), M))
1197
: R;
1198
}
1199
function m(e, t) {
1200
var r,
1201
n,
1202
o,
1203
i = t.length;
1204
return e && e.state
1205
? ((r = e.state),
1206
0 !== r.wrap && r.mode !== J
1207
? R
1208
: r.mode === J &&
1209
((n = 1), (n = g(n, t, i, 0)), n !== r.check)
1210
? C
1211
: (o = c(e, t, i, i))
1212
? ((r.mode = he), I)
1213
: ((r.havedict = 1), M))
1214
: R;
1215
}
1216
var w,
1217
b,
1218
y = e("../utils/common"),
1219
g = e("./adler32"),
1220
v = e("./crc32"),
1221
A = e("./inffast"),
1222
U = e("./inftrees"),
1223
x = 0,
1224
E = 1,
1225
k = 2,
1226
B = 4,
1227
L = 5,
1228
W = 6,
1229
M = 0,
1230
O = 1,
1231
N = 2,
1232
R = -2,
1233
C = -3,
1234
I = -4,
1235
H = -5,
1236
S = 8,
1237
P = 1,
1238
T = 2,
1239
D = 3,
1240
F = 4,
1241
z = 5,
1242
V = 6,
1243
q = 7,
1244
Z = 8,
1245
Y = 9,
1246
G = 10,
1247
J = 11,
1248
j = 12,
1249
X = 13,
1250
K = 14,
1251
Q = 15,
1252
_ = 16,
1253
$ = 17,
1254
ee = 18,
1255
te = 19,
1256
re = 20,
1257
ne = 21,
1258
oe = 22,
1259
ie = 23,
1260
ae = 24,
1261
se = 25,
1262
de = 26,
1263
le = 27,
1264
ue = 28,
1265
ce = 29,
1266
fe = 30,
1267
he = 31,
1268
pe = 32,
1269
me = 852,
1270
we = 592,
1271
be = 15,
1272
ye = be,
1273
ge = !0;
1274
(r.inflateReset = a),
1275
(r.inflateReset2 = s),
1276
(r.inflateResetKeep = i),
1277
(r.inflateInit = l),
1278
(r.inflateInit2 = d),
1279
(r.inflate = f),
1280
(r.inflateEnd = h),
1281
(r.inflateGetHeader = p),
1282
(r.inflateSetDictionary = m),
1283
(r.inflateInfo = "pako inflate (from Nodeca project)");
1284
},
1285
"zlib/constants.js": function (e, t, r) {
1286
"use strict";
1287
t.exports = {
1288
Z_NO_FLUSH: 0,
1289
Z_PARTIAL_FLUSH: 1,
1290
Z_SYNC_FLUSH: 2,
1291
Z_FULL_FLUSH: 3,
1292
Z_FINISH: 4,
1293
Z_BLOCK: 5,
1294
Z_TREES: 6,
1295
Z_OK: 0,
1296
Z_STREAM_END: 1,
1297
Z_NEED_DICT: 2,
1298
Z_ERRNO: -1,
1299
Z_STREAM_ERROR: -2,
1300
Z_DATA_ERROR: -3,
1301
Z_BUF_ERROR: -5,
1302
Z_NO_COMPRESSION: 0,
1303
Z_BEST_SPEED: 1,
1304
Z_BEST_COMPRESSION: 9,
1305
Z_DEFAULT_COMPRESSION: -1,
1306
Z_FILTERED: 1,
1307
Z_HUFFMAN_ONLY: 2,
1308
Z_RLE: 3,
1309
Z_FIXED: 4,
1310
Z_DEFAULT_STRATEGY: 0,
1311
Z_BINARY: 0,
1312
Z_TEXT: 1,
1313
Z_UNKNOWN: 2,
1314
Z_DEFLATED: 8,
1315
};
1316
},
1317
"zlib/messages.js": function (e, t, r) {
1318
"use strict";
1319
t.exports = {
1320
2: "need dictionary",
1321
1: "stream end",
1322
0: "",
1323
"-1": "file error",
1324
"-2": "stream error",
1325
"-3": "data error",
1326
"-4": "insufficient memory",
1327
"-5": "buffer error",
1328
"-6": "incompatible version",
1329
};
1330
},
1331
"zlib/zstream.js": function (e, t, r) {
1332
"use strict";
1333
function n() {
1334
(this.input = null),
1335
(this.next_in = 0),
1336
(this.avail_in = 0),
1337
(this.total_in = 0),
1338
(this.output = null),
1339
(this.next_out = 0),
1340
(this.avail_out = 0),
1341
(this.total_out = 0),
1342
(this.msg = ""),
1343
(this.state = null),
1344
(this.data_type = 2),
1345
(this.adler = 0);
1346
}
1347
t.exports = n;
1348
},
1349
"zlib/gzheader.js": function (e, t, r) {
1350
"use strict";
1351
function n() {
1352
(this.text = 0),
1353
(this.time = 0),
1354
(this.xflags = 0),
1355
(this.os = 0),
1356
(this.extra = null),
1357
(this.extra_len = 0),
1358
(this.name = ""),
1359
(this.comment = ""),
1360
(this.hcrc = 0),
1361
(this.done = !1);
1362
}
1363
t.exports = n;
1364
},
1365
"zlib/adler32.js": function (e, t, r) {
1366
"use strict";
1367
function n(e, t, r, n) {
1368
for (
1369
var o = (65535 & e) | 0, i = ((e >>> 16) & 65535) | 0, a = 0;
1370
0 !== r;
1371
1372
) {
1373
(a = r > 2e3 ? 2e3 : r), (r -= a);
1374
do (o = (o + t[n++]) | 0), (i = (i + o) | 0);
1375
while (--a);
1376
(o %= 65521), (i %= 65521);
1377
}
1378
return o | (i << 16) | 0;
1379
}
1380
t.exports = n;
1381
},
1382
"zlib/crc32.js": function (e, t, r) {
1383
"use strict";
1384
function n() {
1385
for (var e, t = [], r = 0; r < 256; r++) {
1386
e = r;
1387
for (var n = 0; n < 8; n++)
1388
e = 1 & e ? 3988292384 ^ (e >>> 1) : e >>> 1;
1389
t[r] = e;
1390
}
1391
return t;
1392
}
1393
function o(e, t, r, n) {
1394
var o = i,
1395
a = n + r;
1396
e ^= -1;
1397
for (var s = n; s < a; s++) e = (e >>> 8) ^ o[255 & (e ^ t[s])];
1398
return e ^ -1;
1399
}
1400
var i = n();
1401
t.exports = o;
1402
},
1403
"zlib/inffast.js": function (e, t, r) {
1404
"use strict";
1405
var n = 30,
1406
o = 12;
1407
t.exports = function (e, t) {
1408
var r,
1409
i,
1410
a,
1411
s,
1412
d,
1413
l,
1414
u,
1415
c,
1416
f,
1417
h,
1418
p,
1419
m,
1420
w,
1421
b,
1422
y,
1423
g,
1424
v,
1425
A,
1426
U,
1427
x,
1428
E,
1429
k,
1430
B,
1431
L,
1432
W;
1433
(r = e.state),
1434
(i = e.next_in),
1435
(L = e.input),
1436
(a = i + (e.avail_in - 5)),
1437
(s = e.next_out),
1438
(W = e.output),
1439
(d = s - (t - e.avail_out)),
1440
(l = s + (e.avail_out - 257)),
1441
(u = r.dmax),
1442
(c = r.wsize),
1443
(f = r.whave),
1444
(h = r.wnext),
1445
(p = r.window),
1446
(m = r.hold),
1447
(w = r.bits),
1448
(b = r.lencode),
1449
(y = r.distcode),
1450
(g = (1 << r.lenbits) - 1),
1451
(v = (1 << r.distbits) - 1);
1452
e: do {
1453
w < 15 &&
1454
((m += L[i++] << w), (w += 8), (m += L[i++] << w), (w += 8)),
1455
(A = b[m & g]);
1456
t: for (;;) {
1457
if (
1458
((U = A >>> 24),
1459
(m >>>= U),
1460
(w -= U),
1461
(U = (A >>> 16) & 255),
1462
0 === U)
1463
)
1464
W[s++] = 65535 & A;
1465
else {
1466
if (!(16 & U)) {
1467
if (0 === (64 & U)) {
1468
A = b[(65535 & A) + (m & ((1 << U) - 1))];
1469
continue t;
1470
}
1471
if (32 & U) {
1472
r.mode = o;
1473
break e;
1474
}
1475
(e.msg = "invalid literal/length code"), (r.mode = n);
1476
break e;
1477
}
1478
(x = 65535 & A),
1479
(U &= 15),
1480
U &&
1481
(w < U && ((m += L[i++] << w), (w += 8)),
1482
(x += m & ((1 << U) - 1)),
1483
(m >>>= U),
1484
(w -= U)),
1485
w < 15 &&
1486
((m += L[i++] << w),
1487
(w += 8),
1488
(m += L[i++] << w),
1489
(w += 8)),
1490
(A = y[m & v]);
1491
r: for (;;) {
1492
if (
1493
((U = A >>> 24),
1494
(m >>>= U),
1495
(w -= U),
1496
(U = (A >>> 16) & 255),
1497
!(16 & U))
1498
) {
1499
if (0 === (64 & U)) {
1500
A = y[(65535 & A) + (m & ((1 << U) - 1))];
1501
continue r;
1502
}
1503
(e.msg = "invalid distance code"), (r.mode = n);
1504
break e;
1505
}
1506
if (
1507
((E = 65535 & A),
1508
(U &= 15),
1509
w < U &&
1510
((m += L[i++] << w),
1511
(w += 8),
1512
w < U && ((m += L[i++] << w), (w += 8))),
1513
(E += m & ((1 << U) - 1)),
1514
E > u)
1515
) {
1516
(e.msg = "invalid distance too far back"), (r.mode = n);
1517
break e;
1518
}
1519
if (((m >>>= U), (w -= U), (U = s - d), E > U)) {
1520
if (((U = E - U), U > f && r.sane)) {
1521
(e.msg = "invalid distance too far back"),
1522
(r.mode = n);
1523
break e;
1524
}
1525
if (((k = 0), (B = p), 0 === h)) {
1526
if (((k += c - U), U < x)) {
1527
x -= U;
1528
do W[s++] = p[k++];
1529
while (--U);
1530
(k = s - E), (B = W);
1531
}
1532
} else if (h < U) {
1533
if (((k += c + h - U), (U -= h), U < x)) {
1534
x -= U;
1535
do W[s++] = p[k++];
1536
while (--U);
1537
if (((k = 0), h < x)) {
1538
(U = h), (x -= U);
1539
do W[s++] = p[k++];
1540
while (--U);
1541
(k = s - E), (B = W);
1542
}
1543
}
1544
} else if (((k += h - U), U < x)) {
1545
x -= U;
1546
do W[s++] = p[k++];
1547
while (--U);
1548
(k = s - E), (B = W);
1549
}
1550
for (; x > 2; )
1551
(W[s++] = B[k++]),
1552
(W[s++] = B[k++]),
1553
(W[s++] = B[k++]),
1554
(x -= 3);
1555
x && ((W[s++] = B[k++]), x > 1 && (W[s++] = B[k++]));
1556
} else {
1557
k = s - E;
1558
do
1559
(W[s++] = W[k++]),
1560
(W[s++] = W[k++]),
1561
(W[s++] = W[k++]),
1562
(x -= 3);
1563
while (x > 2);
1564
x && ((W[s++] = W[k++]), x > 1 && (W[s++] = W[k++]));
1565
}
1566
break;
1567
}
1568
}
1569
break;
1570
}
1571
} while (i < a && s < l);
1572
(x = w >> 3),
1573
(i -= x),
1574
(w -= x << 3),
1575
(m &= (1 << w) - 1),
1576
(e.next_in = i),
1577
(e.next_out = s),
1578
(e.avail_in = i < a ? 5 + (a - i) : 5 - (i - a)),
1579
(e.avail_out = s < l ? 257 + (l - s) : 257 - (s - l)),
1580
(r.hold = m),
1581
(r.bits = w);
1582
};
1583
},
1584
"zlib/inftrees.js": function (e, t, r) {
1585
"use strict";
1586
var n = e("../utils/common"),
1587
o = 15,
1588
i = 852,
1589
a = 592,
1590
s = 0,
1591
d = 1,
1592
l = 2,
1593
u = [
1594
3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43,
1595
51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0,
1596
],
1597
c = [
1598
16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
1599
19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78,
1600
],
1601
f = [
1602
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257,
1603
385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289,
1604
16385, 24577, 0, 0,
1605
],
1606
h = [
1607
16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
1608
23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64,
1609
];
1610
t.exports = function (e, t, r, p, m, w, b, y) {
1611
var g,
1612
v,
1613
A,
1614
U,
1615
x,
1616
E,
1617
k,
1618
B,
1619
L,
1620
W = y.bits,
1621
M = 0,
1622
O = 0,
1623
N = 0,
1624
R = 0,
1625
C = 0,
1626
I = 0,
1627
H = 0,
1628
S = 0,
1629
P = 0,
1630
T = 0,
1631
D = null,
1632
F = 0,
1633
z = new n.Buf16(o + 1),
1634
V = new n.Buf16(o + 1),
1635
q = null,
1636
Z = 0;
1637
for (M = 0; M <= o; M++) z[M] = 0;
1638
for (O = 0; O < p; O++) z[t[r + O]]++;
1639
for (C = W, R = o; R >= 1 && 0 === z[R]; R--);
1640
if ((C > R && (C = R), 0 === R))
1641
return (
1642
(m[w++] = 20971520), (m[w++] = 20971520), (y.bits = 1), 0
1643
);
1644
for (N = 1; N < R && 0 === z[N]; N++);
1645
for (C < N && (C = N), S = 1, M = 1; M <= o; M++)
1646
if (((S <<= 1), (S -= z[M]), S < 0)) return -1;
1647
if (S > 0 && (e === s || 1 !== R)) return -1;
1648
for (V[1] = 0, M = 1; M < o; M++) V[M + 1] = V[M] + z[M];
1649
for (O = 0; O < p; O++) 0 !== t[r + O] && (b[V[t[r + O]]++] = O);
1650
if (
1651
(e === s
1652
? ((D = q = b), (E = 19))
1653
: e === d
1654
? ((D = u), (F -= 257), (q = c), (Z -= 257), (E = 256))
1655
: ((D = f), (q = h), (E = -1)),
1656
(T = 0),
1657
(O = 0),
1658
(M = N),
1659
(x = w),
1660
(I = C),
1661
(H = 0),
1662
(A = -1),
1663
(P = 1 << C),
1664
(U = P - 1),
1665
(e === d && P > i) || (e === l && P > a))
1666
)
1667
return 1;
1668
for (;;) {
1669
(k = M - H),
1670
b[O] < E
1671
? ((B = 0), (L = b[O]))
1672
: b[O] > E
1673
? ((B = q[Z + b[O]]), (L = D[F + b[O]]))
1674
: ((B = 96), (L = 0)),
1675
(g = 1 << (M - H)),
1676
(v = 1 << I),
1677
(N = v);
1678
do
1679
(v -= g),
1680
(m[x + (T >> H) + v] = (k << 24) | (B << 16) | L | 0);
1681
while (0 !== v);
1682
for (g = 1 << (M - 1); T & g; ) g >>= 1;
1683
if (
1684
(0 !== g ? ((T &= g - 1), (T += g)) : (T = 0),
1685
O++,
1686
0 === --z[M])
1687
) {
1688
if (M === R) break;
1689
M = t[r + b[O]];
1690
}
1691
if (M > C && (T & U) !== A) {
1692
for (
1693
0 === H && (H = C), x += N, I = M - H, S = 1 << I;
1694
I + H < R && ((S -= z[I + H]), !(S <= 0));
1695
1696
)
1697
I++, (S <<= 1);
1698
if (((P += 1 << I), (e === d && P > i) || (e === l && P > a)))
1699
return 1;
1700
(A = T & U), (m[A] = (C << 24) | (I << 16) | (x - w) | 0);
1701
}
1702
}
1703
return (
1704
0 !== T && (m[x + T] = ((M - H) << 24) | (64 << 16) | 0),
1705
(y.bits = C),
1706
0
1707
);
1708
};
1709
},
1710
};
1711
for (var r in t) t[r].folder = r.substring(0, r.lastIndexOf("/") + 1);
1712
var n = function (e) {
1713
var r = [];
1714
return (
1715
(e = e.split("/").every(function (e) {
1716
return ".." == e ? r.pop() : "." == e || "" == e || r.push(e);
1717
})
1718
? r.join("/")
1719
: null),
1720
e ? t[e] || t[e + ".js"] || t[e + "/index.js"] : null
1721
);
1722
},
1723
o = function (e, t) {
1724
return e
1725
? n(e.folder + "node_modules/" + t) || o(e.parent, t)
1726
: null;
1727
},
1728
i = function (e, t) {
1729
var r = t.match(/^\//)
1730
? null
1731
: e
1732
? t.match(/^\.\.?\//)
1733
? n(e.folder + t)
1734
: o(e, t)
1735
: n(t);
1736
if (!r) throw "module not found: " + t;
1737
return (
1738
r.exports ||
1739
((r.parent = e), r(i.bind(null, r), r, (r.exports = {}))),
1740
r.exports
1741
);
1742
};
1743
return i(null, e);
1744
},
1745
decompress: function (e) {
1746
this.exports || (this.exports = this.require("inflate.js"));
1747
try {
1748
return this.exports.inflate(e);
1749
} catch (e) {}
1750
},
1751
hasUnityMarker: function (e) {
1752
var t = 10,
1753
r = "UnityWeb Compressed Content (gzip)";
1754
if (t > e.length || 31 != e[0] || 139 != e[1]) return !1;
1755
var n = e[3];
1756
if (4 & n) {
1757
if (t + 2 > e.length) return !1;
1758
if (((t += 2 + e[t] + (e[t + 1] << 8)), t > e.length)) return !1;
1759
}
1760
if (8 & n) {
1761
for (; t < e.length && e[t]; ) t++;
1762
if (t + 1 > e.length) return !1;
1763
t++;
1764
}
1765
return (
1766
16 & n &&
1767
String.fromCharCode.apply(null, e.subarray(t, t + r.length + 1)) ==
1768
r + "\0"
1769
);
1770
},
1771
},
1772
brotli: {
1773
require: function (e) {
1774
var t = {
1775
"decompress.js": function (e, t, r) {
1776
t.exports = e("./dec/decode").BrotliDecompressBuffer;
1777
},
1778
"dec/bit_reader.js": function (e, t, r) {
1779
function n(e) {
1780
(this.buf_ = new Uint8Array(i)), (this.input_ = e), this.reset();
1781
}
1782
const o = 4096,
1783
i = 8224,
1784
a = 8191,
1785
s = new Uint32Array([
1786
0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191,
1787
16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151,
1788
4194303, 8388607, 16777215,
1789
]);
1790
(n.READ_SIZE = o),
1791
(n.IBUF_MASK = a),
1792
(n.prototype.reset = function () {
1793
(this.buf_ptr_ = 0),
1794
(this.val_ = 0),
1795
(this.pos_ = 0),
1796
(this.bit_pos_ = 0),
1797
(this.bit_end_pos_ = 0),
1798
(this.eos_ = 0),
1799
this.readMoreInput();
1800
for (var e = 0; e < 4; e++)
1801
(this.val_ |= this.buf_[this.pos_] << (8 * e)), ++this.pos_;
1802
return this.bit_end_pos_ > 0;
1803
}),
1804
(n.prototype.readMoreInput = function () {
1805
if (!(this.bit_end_pos_ > 256))
1806
if (this.eos_) {
1807
if (this.bit_pos_ > this.bit_end_pos_)
1808
throw new Error(
1809
"Unexpected end of input " +
1810
this.bit_pos_ +
1811
" " +
1812
this.bit_end_pos_
1813
);
1814
} else {
1815
var e = this.buf_ptr_,
1816
t = this.input_.read(this.buf_, e, o);
1817
if (t < 0) throw new Error("Unexpected end of input");
1818
if (t < o) {
1819
this.eos_ = 1;
1820
for (var r = 0; r < 32; r++) this.buf_[e + t + r] = 0;
1821
}
1822
if (0 === e) {
1823
for (var r = 0; r < 32; r++)
1824
this.buf_[8192 + r] = this.buf_[r];
1825
this.buf_ptr_ = o;
1826
} else this.buf_ptr_ = 0;
1827
this.bit_end_pos_ += t << 3;
1828
}
1829
}),
1830
(n.prototype.fillBitWindow = function () {
1831
for (; this.bit_pos_ >= 8; )
1832
(this.val_ >>>= 8),
1833
(this.val_ |= this.buf_[this.pos_ & a] << 24),
1834
++this.pos_,
1835
(this.bit_pos_ = (this.bit_pos_ - 8) >>> 0),
1836
(this.bit_end_pos_ = (this.bit_end_pos_ - 8) >>> 0);
1837
}),
1838
(n.prototype.readBits = function (e) {
1839
32 - this.bit_pos_ < e && this.fillBitWindow();
1840
var t = (this.val_ >>> this.bit_pos_) & s[e];
1841
return (this.bit_pos_ += e), t;
1842
}),
1843
(t.exports = n);
1844
},
1845
"dec/context.js": function (e, t, r) {
1846
(r.lookup = new Uint8Array([
1847
0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
1848
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 12, 12, 20, 12, 16, 24,
1849
28, 12, 12, 32, 12, 36, 12, 44, 44, 44, 44, 44, 44, 44, 44, 44,
1850
44, 32, 32, 24, 40, 28, 12, 12, 48, 52, 52, 52, 48, 52, 52, 52,
1851
48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52,
1852
52, 52, 24, 12, 28, 12, 12, 12, 56, 60, 60, 60, 56, 60, 60, 60,
1853
56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60,
1854
60, 60, 24, 12, 28, 12, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
1855
1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
1856
1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
1857
1, 0, 1, 0, 1, 0, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,
1858
3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,
1859
3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,
1860
3, 2, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1862
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
1863
1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1864
2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3,
1865
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
1866
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1871
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1,
1872
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1873
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1874
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1875
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1876
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1877
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
1878
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1879
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1880
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1881
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1882
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
1883
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
1884
8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1885
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1886
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1887
16, 16, 16, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1888
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1889
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1890
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1891
24, 24, 24, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1892
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1893
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1894
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1895
32, 32, 32, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1896
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1897
40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1898
40, 40, 40, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
1899
48, 48, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1900
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1901
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1902
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0,
1903
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1904
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1905
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1906
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5,
1907
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1908
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1909
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1910
55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
1911
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1912
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1913
42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1914
58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3,
1915
3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
1916
9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13,
1917
13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17,
1918
17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21,
1919
21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25,
1920
25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29,
1921
29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 33,
1922
33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37,
1923
37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41,
1924
41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45,
1925
45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 48, 48, 48, 48, 49,
1926
49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53,
1927
53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 56, 56, 56, 56, 57,
1928
57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61,
1929
61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, 0, 0, 0, 0, 0, 0, 0,
1930
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1933
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1934
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1936
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1938
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1940
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1941
0, 0, 0, 0, 0, 0, 0,
1942
])),
1943
(r.lookupOffsets = new Uint16Array([
1944
1024, 1536, 1280, 1536, 0, 256, 768, 512,
1945
]));
1946
},
1947
"dec/decode.js": function (e, t, r) {
1948
function n(e) {
1949
var t;
1950
return 0 === e.readBits(1)
1951
? 16
1952
: ((t = e.readBits(3)),
1953
t > 0 ? 17 + t : ((t = e.readBits(3)), t > 0 ? 8 + t : 17));
1954
}
1955
function o(e) {
1956
if (e.readBits(1)) {
1957
var t = e.readBits(3);
1958
return 0 === t ? 1 : e.readBits(t) + (1 << t);
1959
}
1960
return 0;
1961
}
1962
function i() {
1963
(this.meta_block_length = 0),
1964
(this.input_end = 0),
1965
(this.is_uncompressed = 0),
1966
(this.is_metadata = !1);
1967
}
1968
function a(e) {
1969
var t,
1970
r,
1971
n,
1972
o = new i();
1973
if (((o.input_end = e.readBits(1)), o.input_end && e.readBits(1)))
1974
return o;
1975
if (((t = e.readBits(2) + 4), 7 === t)) {
1976
if (((o.is_metadata = !0), 0 !== e.readBits(1)))
1977
throw new Error("Invalid reserved bit");
1978
if (((r = e.readBits(2)), 0 === r)) return o;
1979
for (n = 0; n < r; n++) {
1980
var a = e.readBits(8);
1981
if (n + 1 === r && r > 1 && 0 === a)
1982
throw new Error("Invalid size byte");
1983
o.meta_block_length |= a << (8 * n);
1984
}
1985
} else
1986
for (n = 0; n < t; ++n) {
1987
var s = e.readBits(4);
1988
if (n + 1 === t && t > 4 && 0 === s)
1989
throw new Error("Invalid size nibble");
1990
o.meta_block_length |= s << (4 * n);
1991
}
1992
return (
1993
++o.meta_block_length,
1994
o.input_end ||
1995
o.is_metadata ||
1996
(o.is_uncompressed = e.readBits(1)),
1997
o
1998
);
1999
}
2000
function s(e, t, r) {
2001
var n;
2002
return (
2003
r.fillBitWindow(),
2004
(t += (r.val_ >>> r.bit_pos_) & D),
2005
(n = e[t].bits - T),
2006
n > 0 &&
2007
((r.bit_pos_ += T),
2008
(t += e[t].value),
2009
(t += (r.val_ >>> r.bit_pos_) & ((1 << n) - 1))),
2010
(r.bit_pos_ += e[t].bits),
2011
e[t].value
2012
);
2013
}
2014
function d(e, t, r, n) {
2015
for (
2016
var o = 0, i = N, a = 0, s = 0, d = 32768, l = [], u = 0;
2017
u < 32;
2018
u++
2019
)
2020
l.push(new B(0, 0));
2021
for (L(l, 0, 5, e, z); o < t && d > 0; ) {
2022
var c,
2023
f = 0;
2024
if (
2025
(n.readMoreInput(),
2026
n.fillBitWindow(),
2027
(f += (n.val_ >>> n.bit_pos_) & 31),
2028
(n.bit_pos_ += l[f].bits),
2029
(c = 255 & l[f].value),
2030
c < R)
2031
)
2032
(a = 0),
2033
(r[o++] = c),
2034
0 !== c && ((i = c), (d -= 32768 >> c));
2035
else {
2036
var h,
2037
p,
2038
m = c - 14,
2039
w = 0;
2040
if (
2041
(c === R && (w = i),
2042
s !== w && ((a = 0), (s = w)),
2043
(h = a),
2044
a > 0 && ((a -= 2), (a <<= m)),
2045
(a += n.readBits(m) + 3),
2046
(p = a - h),
2047
o + p > t)
2048
)
2049
throw new Error(
2050
"[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols"
2051
);
2052
for (var b = 0; b < p; b++) r[o + b] = s;
2053
(o += p), 0 !== s && (d -= p << (15 - s));
2054
}
2055
}
2056
if (0 !== d)
2057
throw new Error("[ReadHuffmanCodeLengths] space = " + d);
2058
for (; o < t; o++) r[o] = 0;
2059
}
2060
function l(e, t, r, n) {
2061
var o,
2062
i = 0,
2063
a = new Uint8Array(e);
2064
if ((n.readMoreInput(), (o = n.readBits(2)), 1 === o)) {
2065
for (
2066
var s,
2067
l = e - 1,
2068
u = 0,
2069
c = new Int32Array(4),
2070
f = n.readBits(2) + 1;
2071
l;
2072
2073
)
2074
(l >>= 1), ++u;
2075
for (s = 0; s < f; ++s)
2076
(c[s] = n.readBits(u) % e), (a[c[s]] = 2);
2077
switch (((a[c[0]] = 1), f)) {
2078
case 1:
2079
break;
2080
case 3:
2081
if (c[0] === c[1] || c[0] === c[2] || c[1] === c[2])
2082
throw new Error("[ReadHuffmanCode] invalid symbols");
2083
break;
2084
case 2:
2085
if (c[0] === c[1])
2086
throw new Error("[ReadHuffmanCode] invalid symbols");
2087
a[c[1]] = 1;
2088
break;
2089
case 4:
2090
if (
2091
c[0] === c[1] ||
2092
c[0] === c[2] ||
2093
c[0] === c[3] ||
2094
c[1] === c[2] ||
2095
c[1] === c[3] ||
2096
c[2] === c[3]
2097
)
2098
throw new Error("[ReadHuffmanCode] invalid symbols");
2099
n.readBits(1)
2100
? ((a[c[2]] = 3), (a[c[3]] = 3))
2101
: (a[c[0]] = 2);
2102
}
2103
} else {
2104
var s,
2105
h = new Uint8Array(z),
2106
p = 32,
2107
m = 0,
2108
w = [
2109
new B(2, 0),
2110
new B(2, 4),
2111
new B(2, 3),
2112
new B(3, 2),
2113
new B(2, 0),
2114
new B(2, 4),
2115
new B(2, 3),
2116
new B(4, 1),
2117
new B(2, 0),
2118
new B(2, 4),
2119
new B(2, 3),
2120
new B(3, 2),
2121
new B(2, 0),
2122
new B(2, 4),
2123
new B(2, 3),
2124
new B(4, 5),
2125
];
2126
for (s = o; s < z && p > 0; ++s) {
2127
var b,
2128
y = V[s],
2129
g = 0;
2130
n.fillBitWindow(),
2131
(g += (n.val_ >>> n.bit_pos_) & 15),
2132
(n.bit_pos_ += w[g].bits),
2133
(b = w[g].value),
2134
(h[y] = b),
2135
0 !== b && ((p -= 32 >> b), ++m);
2136
}
2137
if (1 !== m && 0 !== p)
2138
throw new Error(
2139
"[ReadHuffmanCode] invalid num_codes or space"
2140
);
2141
d(h, e, a, n);
2142
}
2143
if (((i = L(t, r, T, a, e)), 0 === i))
2144
throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");
2145
return i;
2146
}
2147
function u(e, t, r) {
2148
var n, o;
2149
return (
2150
(n = s(e, t, r)),
2151
(o = M.kBlockLengthPrefixCode[n].nbits),
2152
M.kBlockLengthPrefixCode[n].offset + r.readBits(o)
2153
);
2154
}
2155
function c(e, t, r) {
2156
var n;
2157
return (
2158
e < q
2159
? ((r += Z[e]), (r &= 3), (n = t[r] + Y[e]))
2160
: (n = e - q + 1),
2161
n
2162
);
2163
}
2164
function f(e, t) {
2165
for (var r = e[t], n = t; n; --n) e[n] = e[n - 1];
2166
e[0] = r;
2167
}
2168
function h(e, t) {
2169
var r,
2170
n = new Uint8Array(256);
2171
for (r = 0; r < 256; ++r) n[r] = r;
2172
for (r = 0; r < t; ++r) {
2173
var o = e[r];
2174
(e[r] = n[o]), o && f(n, o);
2175
}
2176
}
2177
function p(e, t) {
2178
(this.alphabet_size = e),
2179
(this.num_htrees = t),
2180
(this.codes = new Array(t + t * G[(e + 31) >>> 5])),
2181
(this.htrees = new Uint32Array(t));
2182
}
2183
function m(e, t) {
2184
var r,
2185
n,
2186
i,
2187
a = { num_htrees: null, context_map: null },
2188
d = 0;
2189
t.readMoreInput();
2190
var u = (a.num_htrees = o(t) + 1),
2191
c = (a.context_map = new Uint8Array(e));
2192
if (u <= 1) return a;
2193
for (
2194
r = t.readBits(1), r && (d = t.readBits(4) + 1), n = [], i = 0;
2195
i < F;
2196
i++
2197
)
2198
n[i] = new B(0, 0);
2199
for (l(u + d, n, 0, t), i = 0; i < e; ) {
2200
var f;
2201
if ((t.readMoreInput(), (f = s(n, 0, t)), 0 === f))
2202
(c[i] = 0), ++i;
2203
else if (f <= d)
2204
for (var p = 1 + (1 << f) + t.readBits(f); --p; ) {
2205
if (i >= e)
2206
throw new Error(
2207
"[DecodeContextMap] i >= context_map_size"
2208
);
2209
(c[i] = 0), ++i;
2210
}
2211
else (c[i] = f - d), ++i;
2212
}
2213
return t.readBits(1) && h(c, e), a;
2214
}
2215
function w(e, t, r, n, o, i, a) {
2216
var d,
2217
l = 2 * r,
2218
u = r,
2219
c = s(t, r * F, a);
2220
(d =
2221
0 === c
2222
? o[l + (1 & i[u])]
2223
: 1 === c
2224
? o[l + ((i[u] - 1) & 1)] + 1
2225
: c - 2),
2226
d >= e && (d -= e),
2227
(n[r] = d),
2228
(o[l + (1 & i[u])] = d),
2229
++i[u];
2230
}
2231
function b(e, t, r, n, o, i) {
2232
var a,
2233
s = o + 1,
2234
d = r & o,
2235
l = i.pos_ & E.IBUF_MASK;
2236
if (t < 8 || i.bit_pos_ + (t << 3) < i.bit_end_pos_)
2237
for (; t-- > 0; )
2238
i.readMoreInput(),
2239
(n[d++] = i.readBits(8)),
2240
d === s && (e.write(n, s), (d = 0));
2241
else {
2242
if (i.bit_end_pos_ < 32)
2243
throw new Error(
2244
"[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32"
2245
);
2246
for (; i.bit_pos_ < 32; )
2247
(n[d] = i.val_ >>> i.bit_pos_), (i.bit_pos_ += 8), ++d, --t;
2248
if (
2249
((a = (i.bit_end_pos_ - i.bit_pos_) >> 3),
2250
l + a > E.IBUF_MASK)
2251
) {
2252
for (var u = E.IBUF_MASK + 1 - l, c = 0; c < u; c++)
2253
n[d + c] = i.buf_[l + c];
2254
(a -= u), (d += u), (t -= u), (l = 0);
2255
}
2256
for (var c = 0; c < a; c++) n[d + c] = i.buf_[l + c];
2257
if (((d += a), (t -= a), d >= s)) {
2258
e.write(n, s), (d -= s);
2259
for (var c = 0; c < d; c++) n[c] = n[s + c];
2260
}
2261
for (; d + t >= s; ) {
2262
if (((a = s - d), i.input_.read(n, d, a) < a))
2263
throw new Error(
2264
"[CopyUncompressedBlockToOutput] not enough bytes"
2265
);
2266
e.write(n, s), (t -= a), (d = 0);
2267
}
2268
if (i.input_.read(n, d, t) < t)
2269
throw new Error(
2270
"[CopyUncompressedBlockToOutput] not enough bytes"
2271
);
2272
i.reset();
2273
}
2274
}
2275
function y(e) {
2276
var t = (e.bit_pos_ + 7) & -8,
2277
r = e.readBits(t - e.bit_pos_);
2278
return 0 == r;
2279
}
2280
function g(e) {
2281
var t = new U(e),
2282
r = new E(t);
2283
n(r);
2284
var o = a(r);
2285
return o.meta_block_length;
2286
}
2287
function v(e, t) {
2288
var r = new U(e);
2289
null == t && (t = g(e));
2290
var n = new Uint8Array(t),
2291
o = new x(n);
2292
return (
2293
A(r, o),
2294
o.pos < o.buffer.length &&
2295
(o.buffer = o.buffer.subarray(0, o.pos)),
2296
o.buffer
2297
);
2298
}
2299
function A(e, t) {
2300
var r,
2301
i,
2302
d,
2303
f,
2304
h,
2305
g,
2306
v,
2307
A,
2308
U,
2309
x = 0,
2310
L = 0,
2311
N = 0,
2312
R = 0,
2313
T = [16, 15, 11, 4],
2314
D = 0,
2315
z = 0,
2316
V = 0,
2317
Z = [new p(0, 0), new p(0, 0), new p(0, 0)];
2318
const Y = 128 + E.READ_SIZE;
2319
(U = new E(e)),
2320
(N = n(U)),
2321
(i = (1 << N) - 16),
2322
(d = 1 << N),
2323
(f = d - 1),
2324
(h = new Uint8Array(d + Y + k.maxDictionaryWordLength)),
2325
(g = d),
2326
(v = []),
2327
(A = []);
2328
for (var G = 0; G < 3240; G++)
2329
(v[G] = new B(0, 0)), (A[G] = new B(0, 0));
2330
for (; !L; ) {
2331
var J,
2332
j,
2333
X,
2334
K,
2335
Q,
2336
_,
2337
$,
2338
ee,
2339
te,
2340
re = 0,
2341
ne = [1 << 28, 1 << 28, 1 << 28],
2342
oe = [0],
2343
ie = [1, 1, 1],
2344
ae = [0, 1, 0, 1, 0, 1],
2345
se = [0],
2346
de = null,
2347
le = null,
2348
ue = null,
2349
ce = 0,
2350
fe = null,
2351
he = 0,
2352
pe = 0,
2353
me = null,
2354
we = 0,
2355
be = 0,
2356
ye = 0;
2357
for (r = 0; r < 3; ++r)
2358
(Z[r].codes = null), (Z[r].htrees = null);
2359
U.readMoreInput();
2360
var ge = a(U);
2361
if (((re = ge.meta_block_length), x + re > t.buffer.length)) {
2362
var ve = new Uint8Array(x + re);
2363
ve.set(t.buffer), (t.buffer = ve);
2364
}
2365
if (
2366
((L = ge.input_end), (J = ge.is_uncompressed), ge.is_metadata)
2367
)
2368
for (y(U); re > 0; --re) U.readMoreInput(), U.readBits(8);
2369
else if (0 !== re)
2370
if (J)
2371
(U.bit_pos_ = (U.bit_pos_ + 7) & -8),
2372
b(t, re, x, h, f, U),
2373
(x += re);
2374
else {
2375
for (r = 0; r < 3; ++r)
2376
(ie[r] = o(U) + 1),
2377
ie[r] >= 2 &&
2378
(l(ie[r] + 2, v, r * F, U),
2379
l(H, A, r * F, U),
2380
(ne[r] = u(A, r * F, U)),
2381
(se[r] = 1));
2382
for (
2383
U.readMoreInput(),
2384
j = U.readBits(2),
2385
X = q + (U.readBits(4) << j),
2386
K = (1 << j) - 1,
2387
Q = X + (48 << j),
2388
le = new Uint8Array(ie[0]),
2389
r = 0;
2390
r < ie[0];
2391
++r
2392
)
2393
U.readMoreInput(), (le[r] = U.readBits(2) << 1);
2394
var Ae = m(ie[0] << S, U);
2395
(_ = Ae.num_htrees), (de = Ae.context_map);
2396
var Ue = m(ie[2] << P, U);
2397
for (
2398
$ = Ue.num_htrees,
2399
ue = Ue.context_map,
2400
Z[0] = new p(C, _),
2401
Z[1] = new p(I, ie[1]),
2402
Z[2] = new p(Q, $),
2403
r = 0;
2404
r < 3;
2405
++r
2406
)
2407
Z[r].decode(U);
2408
for (
2409
fe = 0,
2410
me = 0,
2411
ee = le[oe[0]],
2412
be = W.lookupOffsets[ee],
2413
ye = W.lookupOffsets[ee + 1],
2414
te = Z[1].htrees[0];
2415
re > 0;
2416
2417
) {
2418
var xe, Ee, ke, Be, Le, We, Me, Oe, Ne, Re, Ce;
2419
for (
2420
U.readMoreInput(),
2421
0 === ne[1] &&
2422
(w(ie[1], v, 1, oe, ae, se, U),
2423
(ne[1] = u(A, F, U)),
2424
(te = Z[1].htrees[oe[1]])),
2425
--ne[1],
2426
xe = s(Z[1].codes, te, U),
2427
Ee = xe >> 6,
2428
Ee >= 2 ? ((Ee -= 2), (Me = -1)) : (Me = 0),
2429
ke = M.kInsertRangeLut[Ee] + ((xe >> 3) & 7),
2430
Be = M.kCopyRangeLut[Ee] + (7 & xe),
2431
Le =
2432
M.kInsertLengthPrefixCode[ke].offset +
2433
U.readBits(M.kInsertLengthPrefixCode[ke].nbits),
2434
We =
2435
M.kCopyLengthPrefixCode[Be].offset +
2436
U.readBits(M.kCopyLengthPrefixCode[Be].nbits),
2437
z = h[(x - 1) & f],
2438
V = h[(x - 2) & f],
2439
Re = 0;
2440
Re < Le;
2441
++Re
2442
)
2443
U.readMoreInput(),
2444
0 === ne[0] &&
2445
(w(ie[0], v, 0, oe, ae, se, U),
2446
(ne[0] = u(A, 0, U)),
2447
(ce = oe[0] << S),
2448
(fe = ce),
2449
(ee = le[oe[0]]),
2450
(be = W.lookupOffsets[ee]),
2451
(ye = W.lookupOffsets[ee + 1])),
2452
(Ne = W.lookup[be + z] | W.lookup[ye + V]),
2453
(he = de[fe + Ne]),
2454
--ne[0],
2455
(V = z),
2456
(z = s(Z[0].codes, Z[0].htrees[he], U)),
2457
(h[x & f] = z),
2458
(x & f) === f && t.write(h, d),
2459
++x;
2460
if (((re -= Le), re <= 0)) break;
2461
if (Me < 0) {
2462
var Ne;
2463
if (
2464
(U.readMoreInput(),
2465
0 === ne[2] &&
2466
(w(ie[2], v, 2, oe, ae, se, U),
2467
(ne[2] = u(A, 2160, U)),
2468
(pe = oe[2] << P),
2469
(me = pe)),
2470
--ne[2],
2471
(Ne = 255 & (We > 4 ? 3 : We - 2)),
2472
(we = ue[me + Ne]),
2473
(Me = s(Z[2].codes, Z[2].htrees[we], U)),
2474
Me >= X)
2475
) {
2476
var Ie, He, Se;
2477
(Me -= X),
2478
(He = Me & K),
2479
(Me >>= j),
2480
(Ie = (Me >> 1) + 1),
2481
(Se = ((2 + (1 & Me)) << Ie) - 4),
2482
(Me = X + ((Se + U.readBits(Ie)) << j) + He);
2483
}
2484
}
2485
if (((Oe = c(Me, T, D)), Oe < 0))
2486
throw new Error("[BrotliDecompress] invalid distance");
2487
if (
2488
((R = x < i && R !== i ? x : i), (Ce = x & f), Oe > R)
2489
) {
2490
if (
2491
!(
2492
We >= k.minDictionaryWordLength &&
2493
We <= k.maxDictionaryWordLength
2494
)
2495
)
2496
throw new Error(
2497
"Invalid backward reference. pos: " +
2498
x +
2499
" distance: " +
2500
Oe +
2501
" len: " +
2502
We +
2503
" bytes left: " +
2504
re
2505
);
2506
var Se = k.offsetsByLength[We],
2507
Pe = Oe - R - 1,
2508
Te = k.sizeBitsByLength[We],
2509
De = (1 << Te) - 1,
2510
Fe = Pe & De,
2511
ze = Pe >> Te;
2512
if (((Se += Fe * We), !(ze < O.kNumTransforms)))
2513
throw new Error(
2514
"Invalid backward reference. pos: " +
2515
x +
2516
" distance: " +
2517
Oe +
2518
" len: " +
2519
We +
2520
" bytes left: " +
2521
re
2522
);
2523
var Ve = O.transformDictionaryWord(h, Ce, Se, We, ze);
2524
if (((Ce += Ve), (x += Ve), (re -= Ve), Ce >= g)) {
2525
t.write(h, d);
2526
for (var qe = 0; qe < Ce - g; qe++) h[qe] = h[g + qe];
2527
}
2528
} else {
2529
if ((Me > 0 && ((T[3 & D] = Oe), ++D), We > re))
2530
throw new Error(
2531
"Invalid backward reference. pos: " +
2532
x +
2533
" distance: " +
2534
Oe +
2535
" len: " +
2536
We +
2537
" bytes left: " +
2538
re
2539
);
2540
for (Re = 0; Re < We; ++Re)
2541
(h[x & f] = h[(x - Oe) & f]),
2542
(x & f) === f && t.write(h, d),
2543
++x,
2544
--re;
2545
}
2546
(z = h[(x - 1) & f]), (V = h[(x - 2) & f]);
2547
}
2548
x &= 1073741823;
2549
}
2550
}
2551
t.write(h, x & f);
2552
}
2553
var U = e("./streams").BrotliInput,
2554
x = e("./streams").BrotliOutput,
2555
E = e("./bit_reader"),
2556
k = e("./dictionary"),
2557
B = e("./huffman").HuffmanCode,
2558
L = e("./huffman").BrotliBuildHuffmanTable,
2559
W = e("./context"),
2560
M = e("./prefix"),
2561
O = e("./transform");
2562
const N = 8,
2563
R = 16,
2564
C = 256,
2565
I = 704,
2566
H = 26,
2567
S = 6,
2568
P = 2,
2569
T = 8,
2570
D = 255,
2571
F = 1080,
2572
z = 18,
2573
V = new Uint8Array([
2574
1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2575
]),
2576
q = 16,
2577
Z = new Uint8Array([
2578
3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
2579
]),
2580
Y = new Int8Array([
2581
0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3,
2582
]),
2583
G = new Uint16Array([
2584
256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758,
2585
790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080,
2586
]);
2587
(p.prototype.decode = function (e) {
2588
var t,
2589
r,
2590
n = 0;
2591
for (t = 0; t < this.num_htrees; ++t)
2592
(this.htrees[t] = n),
2593
(r = l(this.alphabet_size, this.codes, n, e)),
2594
(n += r);
2595
}),
2596
(r.BrotliDecompressedSize = g),
2597
(r.BrotliDecompressBuffer = v),
2598
(r.BrotliDecompress = A),
2599
k.init();
2600
},
2601
"dec/dictionary.js": function (e, t, r) {
2602
var n = e("./dictionary-browser");
2603
(r.init = function () {
2604
r.dictionary = n.init();
2605
}),
2606
(r.offsetsByLength = new Uint32Array([
2607
0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, 53248, 63488,
2608
74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536,
2609
115968, 118528, 119872, 121280, 122016,
2610
])),
2611
(r.sizeBitsByLength = new Uint8Array([
2612
0, 0, 0, 0, 10, 10, 11, 11, 10, 10, 10, 10, 10, 9, 9, 8, 7, 7,
2613
8, 7, 7, 6, 6, 5, 5,
2614
])),
2615
(r.minDictionaryWordLength = 4),
2616
(r.maxDictionaryWordLength = 24);
2617
},
2618
"dec/dictionary.bin.js": function (e, t, r) {
2619
t.exports =
2620
"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";
2621
},
2622
"dec/dictionary-browser.js": function (e, t, r) {
2623
var n = e("base64-js");
2624
r.init = function () {
2625
var t = e("./decode").BrotliDecompressBuffer,
2626
r = n.toByteArray(e("./dictionary.bin.js"));
2627
return t(r);
2628
};
2629
},
2630
"dec/huffman.js": function (e, t, r) {
2631
function n(e, t) {
2632
(this.bits = e), (this.value = t);
2633
}
2634
function o(e, t) {
2635
for (var r = 1 << (t - 1); e & r; ) r >>= 1;
2636
return (e & (r - 1)) + r;
2637
}
2638
function i(e, t, r, o, i) {
2639
do (o -= r), (e[t + o] = new n(i.bits, i.value));
2640
while (o > 0);
2641
}
2642
function a(e, t, r) {
2643
for (var n = 1 << (t - r); t < s && ((n -= e[t]), !(n <= 0)); )
2644
++t, (n <<= 1);
2645
return t - r;
2646
}
2647
r.HuffmanCode = n;
2648
const s = 15;
2649
r.BrotliBuildHuffmanTable = function (e, t, r, d, l) {
2650
var u,
2651
c,
2652
f,
2653
h,
2654
p,
2655
m,
2656
w,
2657
b,
2658
y,
2659
g,
2660
v,
2661
A = t,
2662
U = new Int32Array(16),
2663
x = new Int32Array(16);
2664
for (v = new Int32Array(l), f = 0; f < l; f++) U[d[f]]++;
2665
for (x[1] = 0, c = 1; c < s; c++) x[c + 1] = x[c] + U[c];
2666
for (f = 0; f < l; f++) 0 !== d[f] && (v[x[d[f]]++] = f);
2667
if (((b = r), (y = 1 << b), (g = y), 1 === x[s])) {
2668
for (h = 0; h < g; ++h) e[t + h] = new n(0, 65535 & v[0]);
2669
return g;
2670
}
2671
for (h = 0, f = 0, c = 1, p = 2; c <= r; ++c, p <<= 1)
2672
for (; U[c] > 0; --U[c])
2673
(u = new n(255 & c, 65535 & v[f++])),
2674
i(e, t + h, p, y, u),
2675
(h = o(h, c));
2676
for (w = g - 1, m = -1, c = r + 1, p = 2; c <= s; ++c, p <<= 1)
2677
for (; U[c] > 0; --U[c])
2678
(h & w) !== m &&
2679
((t += y),
2680
(b = a(U, c, r)),
2681
(y = 1 << b),
2682
(g += y),
2683
(m = h & w),
2684
(e[A + m] = new n((b + r) & 255, (t - A - m) & 65535))),
2685
(u = new n((c - r) & 255, 65535 & v[f++])),
2686
i(e, t + (h >> r), p, y, u),
2687
(h = o(h, c));
2688
return g;
2689
};
2690
},
2691
"dec/prefix.js": function (e, t, r) {
2692
function n(e, t) {
2693
(this.offset = e), (this.nbits = t);
2694
}
2695
(r.kBlockLengthPrefixCode = [
2696
new n(1, 2),
2697
new n(5, 2),
2698
new n(9, 2),
2699
new n(13, 2),
2700
new n(17, 3),
2701
new n(25, 3),
2702
new n(33, 3),
2703
new n(41, 3),
2704
new n(49, 4),
2705
new n(65, 4),
2706
new n(81, 4),
2707
new n(97, 4),
2708
new n(113, 5),
2709
new n(145, 5),
2710
new n(177, 5),
2711
new n(209, 5),
2712
new n(241, 6),
2713
new n(305, 6),
2714
new n(369, 7),
2715
new n(497, 8),
2716
new n(753, 9),
2717
new n(1265, 10),
2718
new n(2289, 11),
2719
new n(4337, 12),
2720
new n(8433, 13),
2721
new n(16625, 24),
2722
]),
2723
(r.kInsertLengthPrefixCode = [
2724
new n(0, 0),
2725
new n(1, 0),
2726
new n(2, 0),
2727
new n(3, 0),
2728
new n(4, 0),
2729
new n(5, 0),
2730
new n(6, 1),
2731
new n(8, 1),
2732
new n(10, 2),
2733
new n(14, 2),
2734
new n(18, 3),
2735
new n(26, 3),
2736
new n(34, 4),
2737
new n(50, 4),
2738
new n(66, 5),
2739
new n(98, 5),
2740
new n(130, 6),
2741
new n(194, 7),
2742
new n(322, 8),
2743
new n(578, 9),
2744
new n(1090, 10),
2745
new n(2114, 12),
2746
new n(6210, 14),
2747
new n(22594, 24),
2748
]),
2749
(r.kCopyLengthPrefixCode = [
2750
new n(2, 0),
2751
new n(3, 0),
2752
new n(4, 0),
2753
new n(5, 0),
2754
new n(6, 0),
2755
new n(7, 0),
2756
new n(8, 0),
2757
new n(9, 0),
2758
new n(10, 1),
2759
new n(12, 1),
2760
new n(14, 2),
2761
new n(18, 2),
2762
new n(22, 3),
2763
new n(30, 3),
2764
new n(38, 4),
2765
new n(54, 4),
2766
new n(70, 5),
2767
new n(102, 5),
2768
new n(134, 6),
2769
new n(198, 7),
2770
new n(326, 8),
2771
new n(582, 9),
2772
new n(1094, 10),
2773
new n(2118, 24),
2774
]),
2775
(r.kInsertRangeLut = [0, 0, 8, 8, 0, 16, 8, 16, 16]),
2776
(r.kCopyRangeLut = [0, 8, 0, 8, 16, 0, 16, 8, 16]);
2777
},
2778
"dec/streams.js": function (e, t, r) {
2779
function n(e) {
2780
(this.buffer = e), (this.pos = 0);
2781
}
2782
function o(e) {
2783
(this.buffer = e), (this.pos = 0);
2784
}
2785
(n.prototype.read = function (e, t, r) {
2786
this.pos + r > this.buffer.length &&
2787
(r = this.buffer.length - this.pos);
2788
for (var n = 0; n < r; n++) e[t + n] = this.buffer[this.pos + n];
2789
return (this.pos += r), r;
2790
}),
2791
(r.BrotliInput = n),
2792
(o.prototype.write = function (e, t) {
2793
if (this.pos + t > this.buffer.length)
2794
throw new Error("Output buffer is not large enough");
2795
return (
2796
this.buffer.set(e.subarray(0, t), this.pos),
2797
(this.pos += t),
2798
t
2799
);
2800
}),
2801
(r.BrotliOutput = o);
2802
},
2803
"dec/transform.js": function (e, t, r) {
2804
function n(e, t, r) {
2805
(this.prefix = new Uint8Array(e.length)),
2806
(this.transform = t),
2807
(this.suffix = new Uint8Array(r.length));
2808
for (var n = 0; n < e.length; n++)
2809
this.prefix[n] = e.charCodeAt(n);
2810
for (var n = 0; n < r.length; n++)
2811
this.suffix[n] = r.charCodeAt(n);
2812
}
2813
function o(e, t) {
2814
return e[t] < 192
2815
? (e[t] >= 97 && e[t] <= 122 && (e[t] ^= 32), 1)
2816
: e[t] < 224
2817
? ((e[t + 1] ^= 32), 2)
2818
: ((e[t + 2] ^= 5), 3);
2819
}
2820
var i = e("./dictionary");
2821
const a = 0,
2822
s = 1,
2823
d = 2,
2824
l = 3,
2825
u = 4,
2826
c = 5,
2827
f = 6,
2828
h = 7,
2829
p = 8,
2830
m = 9,
2831
w = 10,
2832
b = 11,
2833
y = 12,
2834
g = 13,
2835
v = 14,
2836
A = 15,
2837
U = 16,
2838
x = 17,
2839
E = 18,
2840
k = 20;
2841
var B = [
2842
new n("", a, ""),
2843
new n("", a, " "),
2844
new n(" ", a, " "),
2845
new n("", y, ""),
2846
new n("", w, " "),
2847
new n("", a, " the "),
2848
new n(" ", a, ""),
2849
new n("s ", a, " "),
2850
new n("", a, " of "),
2851
new n("", w, ""),
2852
new n("", a, " and "),
2853
new n("", g, ""),
2854
new n("", s, ""),
2855
new n(", ", a, " "),
2856
new n("", a, ", "),
2857
new n(" ", w, " "),
2858
new n("", a, " in "),
2859
new n("", a, " to "),
2860
new n("e ", a, " "),
2861
new n("", a, '"'),
2862
new n("", a, "."),
2863
new n("", a, '">'),
2864
new n("", a, "\n"),
2865
new n("", l, ""),
2866
new n("", a, "]"),
2867
new n("", a, " for "),
2868
new n("", v, ""),
2869
new n("", d, ""),
2870
new n("", a, " a "),
2871
new n("", a, " that "),
2872
new n(" ", w, ""),
2873
new n("", a, ". "),
2874
new n(".", a, ""),
2875
new n(" ", a, ", "),
2876
new n("", A, ""),
2877
new n("", a, " with "),
2878
new n("", a, "'"),
2879
new n("", a, " from "),
2880
new n("", a, " by "),
2881
new n("", U, ""),
2882
new n("", x, ""),
2883
new n(" the ", a, ""),
2884
new n("", u, ""),
2885
new n("", a, ". The "),
2886
new n("", b, ""),
2887
new n("", a, " on "),
2888
new n("", a, " as "),
2889
new n("", a, " is "),
2890
new n("", h, ""),
2891
new n("", s, "ing "),
2892
new n("", a, "\n\t"),
2893
new n("", a, ":"),
2894
new n(" ", a, ". "),
2895
new n("", a, "ed "),
2896
new n("", k, ""),
2897
new n("", E, ""),
2898
new n("", f, ""),
2899
new n("", a, "("),
2900
new n("", w, ", "),
2901
new n("", p, ""),
2902
new n("", a, " at "),
2903
new n("", a, "ly "),
2904
new n(" the ", a, " of "),
2905
new n("", c, ""),
2906
new n("", m, ""),
2907
new n(" ", w, ", "),
2908
new n("", w, '"'),
2909
new n(".", a, "("),
2910
new n("", b, " "),
2911
new n("", w, '">'),
2912
new n("", a, '="'),
2913
new n(" ", a, "."),
2914
new n(".com/", a, ""),
2915
new n(" the ", a, " of the "),
2916
new n("", w, "'"),
2917
new n("", a, ". This "),
2918
new n("", a, ","),
2919
new n(".", a, " "),
2920
new n("", w, "("),
2921
new n("", w, "."),
2922
new n("", a, " not "),
2923
new n(" ", a, '="'),
2924
new n("", a, "er "),
2925
new n(" ", b, " "),
2926
new n("", a, "al "),
2927
new n(" ", b, ""),
2928
new n("", a, "='"),
2929
new n("", b, '"'),
2930
new n("", w, ". "),
2931
new n(" ", a, "("),
2932
new n("", a, "ful "),
2933
new n(" ", w, ". "),
2934
new n("", a, "ive "),
2935
new n("", a, "less "),
2936
new n("", b, "'"),
2937
new n("", a, "est "),
2938
new n(" ", w, "."),
2939
new n("", b, '">'),
2940
new n(" ", a, "='"),
2941
new n("", w, ","),
2942
new n("", a, "ize "),
2943
new n("", b, "."),
2944
new n("\xc2\xa0", a, ""),
2945
new n(" ", a, ","),
2946
new n("", w, '="'),
2947
new n("", b, '="'),
2948
new n("", a, "ous "),
2949
new n("", b, ", "),
2950
new n("", w, "='"),
2951
new n(" ", w, ","),
2952
new n(" ", b, '="'),
2953
new n(" ", b, ", "),
2954
new n("", b, ","),
2955
new n("", b, "("),
2956
new n("", b, ". "),
2957
new n(" ", b, "."),
2958
new n("", b, "='"),
2959
new n(" ", b, ". "),
2960
new n(" ", w, '="'),
2961
new n(" ", b, "='"),
2962
new n(" ", w, "='"),
2963
];
2964
(r.kTransforms = B),
2965
(r.kNumTransforms = B.length),
2966
(r.transformDictionaryWord = function (e, t, r, n, a) {
2967
var s,
2968
d = B[a].prefix,
2969
l = B[a].suffix,
2970
u = B[a].transform,
2971
c = u < y ? 0 : u - 11,
2972
f = 0,
2973
h = t;
2974
c > n && (c = n);
2975
for (var p = 0; p < d.length; ) e[t++] = d[p++];
2976
for (r += c, n -= c, u <= m && (n -= u), f = 0; f < n; f++)
2977
e[t++] = i.dictionary[r + f];
2978
if (((s = t - n), u === w)) o(e, s);
2979
else if (u === b)
2980
for (; n > 0; ) {
2981
var g = o(e, s);
2982
(s += g), (n -= g);
2983
}
2984
for (var v = 0; v < l.length; ) e[t++] = l[v++];
2985
return t - h;
2986
});
2987
},
2988
"node_modules/base64-js/index.js": function (e, t, r) {
2989
"use strict";
2990
function n(e) {
2991
var t = e.length;
2992
if (t % 4 > 0)
2993
throw new Error(
2994
"Invalid string. Length must be a multiple of 4"
2995
);
2996
return "=" === e[t - 2] ? 2 : "=" === e[t - 1] ? 1 : 0;
2997
}
2998
function o(e) {
2999
return (3 * e.length) / 4 - n(e);
3000
}
3001
function i(e) {
3002
var t,
3003
r,
3004
o,
3005
i,
3006
a,
3007
s,
3008
d = e.length;
3009
(a = n(e)), (s = new c((3 * d) / 4 - a)), (o = a > 0 ? d - 4 : d);
3010
var l = 0;
3011
for (t = 0, r = 0; t < o; t += 4, r += 3)
3012
(i =
3013
(u[e.charCodeAt(t)] << 18) |
3014
(u[e.charCodeAt(t + 1)] << 12) |
3015
(u[e.charCodeAt(t + 2)] << 6) |
3016
u[e.charCodeAt(t + 3)]),
3017
(s[l++] = (i >> 16) & 255),
3018
(s[l++] = (i >> 8) & 255),
3019
(s[l++] = 255 & i);
3020
return (
3021
2 === a
3022
? ((i =
3023
(u[e.charCodeAt(t)] << 2) |
3024
(u[e.charCodeAt(t + 1)] >> 4)),
3025
(s[l++] = 255 & i))
3026
: 1 === a &&
3027
((i =
3028
(u[e.charCodeAt(t)] << 10) |
3029
(u[e.charCodeAt(t + 1)] << 4) |
3030
(u[e.charCodeAt(t + 2)] >> 2)),
3031
(s[l++] = (i >> 8) & 255),
3032
(s[l++] = 255 & i)),
3033
s
3034
);
3035
}
3036
function a(e) {
3037
return (
3038
l[(e >> 18) & 63] +
3039
l[(e >> 12) & 63] +
3040
l[(e >> 6) & 63] +
3041
l[63 & e]
3042
);
3043
}
3044
function s(e, t, r) {
3045
for (var n, o = [], i = t; i < r; i += 3)
3046
(n = (e[i] << 16) + (e[i + 1] << 8) + e[i + 2]), o.push(a(n));
3047
return o.join("");
3048
}
3049
function d(e) {
3050
for (
3051
var t,
3052
r = e.length,
3053
n = r % 3,
3054
o = "",
3055
i = [],
3056
a = 16383,
3057
d = 0,
3058
u = r - n;
3059
d < u;
3060
d += a
3061
)
3062
i.push(s(e, d, d + a > u ? u : d + a));
3063
return (
3064
1 === n
3065
? ((t = e[r - 1]),
3066
(o += l[t >> 2]),
3067
(o += l[(t << 4) & 63]),
3068
(o += "=="))
3069
: 2 === n &&
3070
((t = (e[r - 2] << 8) + e[r - 1]),
3071
(o += l[t >> 10]),
3072
(o += l[(t >> 4) & 63]),
3073
(o += l[(t << 2) & 63]),
3074
(o += "=")),
3075
i.push(o),
3076
i.join("")
3077
);
3078
}
3079
(r.byteLength = o), (r.toByteArray = i), (r.fromByteArray = d);
3080
for (
3081
var l = [],
3082
u = [],
3083
c = "undefined" != typeof Uint8Array ? Uint8Array : Array,
3084
f =
3085
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
3086
h = 0,
3087
p = f.length;
3088
h < p;
3089
++h
3090
)
3091
(l[h] = f[h]), (u[f.charCodeAt(h)] = h);
3092
(u["-".charCodeAt(0)] = 62), (u["_".charCodeAt(0)] = 63);
3093
},
3094
};
3095
for (var r in t) t[r].folder = r.substring(0, r.lastIndexOf("/") + 1);
3096
var n = function (e) {
3097
var r = [];
3098
return (
3099
(e = e.split("/").every(function (e) {
3100
return ".." == e ? r.pop() : "." == e || "" == e || r.push(e);
3101
})
3102
? r.join("/")
3103
: null),
3104
e ? t[e] || t[e + ".js"] || t[e + "/index.js"] : null
3105
);
3106
},
3107
o = function (e, t) {
3108
return e
3109
? n(e.folder + "node_modules/" + t) || o(e.parent, t)
3110
: null;
3111
},
3112
i = function (e, t) {
3113
var r = t.match(/^\//)
3114
? null
3115
: e
3116
? t.match(/^\.\.?\//)
3117
? n(e.folder + t)
3118
: o(e, t)
3119
: n(t);
3120
if (!r) throw "module not found: " + t;
3121
return (
3122
r.exports ||
3123
((r.parent = e), r(i.bind(null, r), r, (r.exports = {}))),
3124
r.exports
3125
);
3126
};
3127
return i(null, e);
3128
},
3129
decompress: function (e) {
3130
this.exports || (this.exports = this.require("decompress.js"));
3131
try {
3132
return this.exports(e);
3133
} catch (e) {}
3134
},
3135
hasUnityMarker: function (e) {
3136
var t = "UnityWeb Compressed Content (brotli)";
3137
if (!e.length) return !1;
3138
var r = 1 & e[0] ? (14 & e[0] ? 4 : 7) : 1,
3139
n = e[0] & ((1 << r) - 1),
3140
o = 1 + ((Math.log(t.length - 1) / Math.log(2)) >> 3);
3141
if (
3142
((commentOffset = (r + 1 + 2 + 1 + 2 + (o << 3) + 7) >> 3),
3143
17 == n || commentOffset > e.length)
3144
)
3145
return !1;
3146
for (
3147
var i = n + ((6 + (o << 4) + ((t.length - 1) << 6)) << r), a = 0;
3148
a < commentOffset;
3149
a++, i >>>= 8
3150
)
3151
if (e[a] != (255 & i)) return !1;
3152
return (
3153
String.fromCharCode.apply(
3154
null,
3155
e.subarray(commentOffset, commentOffset + t.length)
3156
) == t
3157
);
3158
},
3159
},
3160
decompress: function (e, t) {
3161
var r = this.gzip.hasUnityMarker(e)
3162
? this.gzip
3163
: this.brotli.hasUnityMarker(e)
3164
? this.brotli
3165
: this.identity;
3166
if (
3167
(this.serverSetupWarningEnabled &&
3168
r != this.identity &&
3169
(console.log(
3170
"You can reduce your startup time if you configure your web server to host .unityweb files using " +
3171
(r == this.gzip ? "gzip" : "brotli") +
3172
" compression."
3173
),
3174
(this.serverSetupWarningEnabled = !1)),
3175
"function" != typeof t)
3176
)
3177
return r.decompress(e);
3178
if (!r.worker) {
3179
var n = URL.createObjectURL(
3180
new Blob(
3181
[
3182
"this.require = ",
3183
r.require.toString(),
3184
"; this.decompress = ",
3185
r.decompress.toString(),
3186
"; this.onmessage = ",
3187
function (e) {
3188
var t = {
3189
id: e.data.id,
3190
decompressed: this.decompress(e.data.compressed),
3191
};
3192
postMessage(t, t.decompressed ? [t.decompressed.buffer] : []);
3193
}.toString(),
3194
"; postMessage({ ready: true });",
3195
],
3196
{ type: "text/javascript" }
3197
)
3198
);
3199
(r.worker = new Worker(n)),
3200
(r.worker.onmessage = function (e) {
3201
return e.data.ready
3202
? void URL.revokeObjectURL(n)
3203
: (this.callbacks[e.data.id](e.data.decompressed),
3204
void delete this.callbacks[e.data.id]);
3205
}),
3206
(r.worker.callbacks = {}),
3207
(r.worker.nextCallbackId = 0);
3208
}
3209
var o = r.worker.nextCallbackId++;
3210
(r.worker.callbacks[o] = t),
3211
r.worker.postMessage({ id: o, compressed: e }, [e.buffer]);
3212
},
3213
serverSetupWarningEnabled: !0,
3214
},
3215
Cryptography: {
3216
crc32: function (e) {
3217
var t = UnityLoader.Cryptography.crc32.module;
3218
if (!t) {
3219
var r = new ArrayBuffer(16777216),
3220
n = (function (e, t, r) {
3221
"use asm";
3222
var n = new e.Uint8Array(r);
3223
var o = new e.Uint32Array(r);
3224
function i(e, t) {
3225
e = e | 0;
3226
t = t | 0;
3227
var r = 0;
3228
for (r = o[1024 >> 2] | 0; t; e = (e + 1) | 0, t = (t - 1) | 0)
3229
r = o[(((r & 255) ^ n[e]) << 2) >> 2] ^ (r >>> 8) ^ 4278190080;
3230
o[1024 >> 2] = r;
3231
}
3232
return { process: i };
3233
})({ Uint8Array: Uint8Array, Uint32Array: Uint32Array }, null, r);
3234
t = UnityLoader.Cryptography.crc32.module = {
3235
buffer: r,
3236
HEAPU8: new Uint8Array(r),
3237
HEAPU32: new Uint32Array(r),
3238
process: n.process,
3239
crc32: 1024,
3240
data: 1028,
3241
};
3242
for (var o = 0; o < 256; o++) {
3243
for (var i = 255 ^ o, a = 0; a < 8; a++)
3244
i = (i >>> 1) ^ (1 & i ? 3988292384 : 0);
3245
t.HEAPU32[o] = i;
3246
}
3247
}
3248
t.HEAPU32[t.crc32 >> 2] = 0;
3249
for (var s = 0; s < e.length; ) {
3250
var d = Math.min(t.HEAPU8.length - t.data, e.length - s);
3251
t.HEAPU8.set(e.subarray(s, s + d), t.data),
3252
(crc = t.process(t.data, d)),
3253
(s += d);
3254
}
3255
var l = t.HEAPU32[t.crc32 >> 2];
3256
return new Uint8Array([l >> 24, l >> 16, l >> 8, l]);
3257
},
3258
md5: function (e) {
3259
var t = UnityLoader.Cryptography.md5.module;
3260
if (!t) {
3261
var r = new ArrayBuffer(16777216),
3262
n = (function (e, t, r) {
3263
"use asm";
3264
var n = new e.Uint32Array(r);
3265
function o(e, t) {
3266
e = e | 0;
3267
t = t | 0;
3268
var r = 0,
3269
o = 0,
3270
i = 0,
3271
a = 0,
3272
s = 0,
3273
d = 0,
3274
l = 0,
3275
u = 0,
3276
c = 0,
3277
f = 0,
3278
h = 0,
3279
p = 0;
3280
(r = n[128] | 0),
3281
(o = n[129] | 0),
3282
(i = n[130] | 0),
3283
(a = n[131] | 0);
3284
for (; t; e = (e + 64) | 0, t = (t - 1) | 0) {
3285
s = r;
3286
d = o;
3287
l = i;
3288
u = a;
3289
for (f = 0; (f | 0) < 512; f = (f + 8) | 0) {
3290
p = n[f >> 2] | 0;
3291
r =
3292
(r +
3293
(n[(f + 4) >> 2] | 0) +
3294
(n[(e + (p >>> 14)) >> 2] | 0) +
3295
((f | 0) < 128
3296
? a ^ (o & (i ^ a))
3297
: (f | 0) < 256
3298
? i ^ (a & (o ^ i))
3299
: (f | 0) < 384
3300
? o ^ i ^ a
3301
: i ^ (o | ~a))) |
3302
0;
3303
h = (((r << (p & 31)) | (r >>> (32 - (p & 31)))) + o) | 0;
3304
r = a;
3305
a = i;
3306
i = o;
3307
o = h;
3308
}
3309
r = (r + s) | 0;
3310
o = (o + d) | 0;
3311
i = (i + l) | 0;
3312
a = (a + u) | 0;
3313
}
3314
n[128] = r;
3315
n[129] = o;
3316
n[130] = i;
3317
n[131] = a;
3318
}
3319
return { process: o };
3320
})({ Uint32Array: Uint32Array }, null, r);
3321
(t = UnityLoader.Cryptography.md5.module =
3322
{
3323
buffer: r,
3324
HEAPU8: new Uint8Array(r),
3325
HEAPU32: new Uint32Array(r),
3326
process: n.process,
3327
md5: 512,
3328
data: 576,
3329
}),
3330
t.HEAPU32.set(
3331
new Uint32Array([
3332
7, 3614090360, 65548, 3905402710, 131089, 606105819, 196630,
3333
3250441966, 262151, 4118548399, 327692, 1200080426, 393233,
3334
2821735955, 458774, 4249261313, 524295, 1770035416, 589836,
3335
2336552879, 655377, 4294925233, 720918, 2304563134, 786439,
3336
1804603682, 851980, 4254626195, 917521, 2792965006, 983062,
3337
1236535329, 65541, 4129170786, 393225, 3225465664, 720910,
3338
643717713, 20, 3921069994, 327685, 3593408605, 655369, 38016083,
3339
983054, 3634488961, 262164, 3889429448, 589829, 568446438, 917513,
3340
3275163606, 196622, 4107603335, 524308, 1163531501, 851973,
3341
2850285829, 131081, 4243563512, 458766, 1735328473, 786452,
3342
2368359562, 327684, 4294588738, 524299, 2272392833, 720912,
3343
1839030562, 917527, 4259657740, 65540, 2763975236, 262155,
3344
1272893353, 458768, 4139469664, 655383, 3200236656, 851972,
3345
681279174, 11, 3936430074, 196624, 3572445317, 393239, 76029189,
3346
589828, 3654602809, 786443, 3873151461, 983056, 530742520, 131095,
3347
3299628645, 6, 4096336452, 458762, 1126891415, 917519, 2878612391,
3348
327701, 4237533241, 786438, 1700485571, 196618, 2399980690,
3349
655375, 4293915773, 65557, 2240044497, 524294, 1873313359, 983050,
3350
4264355552, 393231, 2734768916, 851989, 1309151649, 262150,
3351
4149444226, 720906, 3174756917, 131087, 718787259, 589845,
3352
3951481745,
3353
])
3354
);
3355
}
3356
t.HEAPU32.set(
3357
new Uint32Array([1732584193, 4023233417, 2562383102, 271733878]),
3358
t.md5 >> 2
3359
);
3360
for (var o = 0; o < e.length; ) {
3361
var i = Math.min(t.HEAPU8.length - t.data, e.length - o) & -64;
3362
if (
3363
(t.HEAPU8.set(e.subarray(o, o + i), t.data),
3364
(o += i),
3365
t.process(t.data, i >> 6),
3366
e.length - o < 64)
3367
) {
3368
if (
3369
((i = e.length - o),
3370
t.HEAPU8.set(e.subarray(e.length - i, e.length), t.data),
3371
(o += i),
3372
(t.HEAPU8[t.data + i++] = 128),
3373
i > 56)
3374
) {
3375
for (var a = i; a < 64; a++) t.HEAPU8[t.data + a] = 0;
3376
t.process(t.data, 1), (i = 0);
3377
}
3378
for (var a = i; a < 64; a++) t.HEAPU8[t.data + a] = 0;
3379
for (
3380
var s = e.length, d = 0, a = 56;
3381
a < 64;
3382
a++, d = (224 & s) >> 5, s /= 256
3383
)
3384
t.HEAPU8[t.data + a] = ((31 & s) << 3) + d;
3385
t.process(t.data, 1);
3386
}
3387
}
3388
return new Uint8Array(t.HEAPU8.subarray(t.md5, t.md5 + 16));
3389
},
3390
sha1: function (e) {
3391
var t = UnityLoader.Cryptography.sha1.module;
3392
if (!t) {
3393
var r = new ArrayBuffer(16777216),
3394
n = (function (e, t, r) {
3395
"use asm";
3396
var n = new e.Uint32Array(r);
3397
function o(e, t) {
3398
e = e | 0;
3399
t = t | 0;
3400
var r = 0,
3401
o = 0,
3402
i = 0,
3403
a = 0,
3404
s = 0,
3405
d = 0,
3406
l = 0,
3407
u = 0,
3408
c = 0,
3409
f = 0,
3410
h = 0,
3411
p = 0;
3412
(r = n[80] | 0),
3413
(o = n[81] | 0),
3414
(i = n[82] | 0),
3415
(a = n[83] | 0),
3416
(s = n[84] | 0);
3417
for (; t; e = (e + 64) | 0, t = (t - 1) | 0) {
3418
d = r;
3419
l = o;
3420
u = i;
3421
c = a;
3422
f = s;
3423
for (
3424
p = 0;
3425
(p | 0) < 320;
3426
p = (p + 4) | 0,
3427
s = a,
3428
a = i,
3429
i = (o << 30) | (o >>> 2),
3430
o = r,
3431
r = h
3432
) {
3433
if ((p | 0) < 64) {
3434
h = n[(e + p) >> 2] | 0;
3435
h =
3436
((h << 24) & 4278190080) |
3437
((h << 8) & 16711680) |
3438
((h >>> 8) & 65280) |
3439
((h >>> 24) & 255);
3440
} else {
3441
h =
3442
n[(p - 12) >> 2] ^
3443
n[(p - 32) >> 2] ^
3444
n[(p - 56) >> 2] ^
3445
n[(p - 64) >> 2];
3446
h = (h << 1) | (h >>> 31);
3447
}
3448
n[p >> 2] = h;
3449
h =
3450
(h +
3451
(((r << 5) | (r >>> 27)) + s) +
3452
((p | 0) < 80
3453
? (((o & i) | (~o & a) | 0) + 1518500249) | 0
3454
: (p | 0) < 160
3455
? ((o ^ i ^ a) + 1859775393) | 0
3456
: (p | 0) < 240
3457
? (((o & i) | (o & a) | (i & a)) + 2400959708) | 0
3458
: ((o ^ i ^ a) + 3395469782) | 0)) |
3459
0;
3460
}
3461
r = (r + d) | 0;
3462
o = (o + l) | 0;
3463
i = (i + u) | 0;
3464
a = (a + c) | 0;
3465
s = (s + f) | 0;
3466
}
3467
n[80] = r;
3468
n[81] = o;
3469
n[82] = i;
3470
n[83] = a;
3471
n[84] = s;
3472
}
3473
return { process: o };
3474
})({ Uint32Array: Uint32Array }, null, r);
3475
t = UnityLoader.Cryptography.sha1.module = {
3476
buffer: r,
3477
HEAPU8: new Uint8Array(r),
3478
HEAPU32: new Uint32Array(r),
3479
process: n.process,
3480
sha1: 320,
3481
data: 384,
3482
};
3483
}
3484
t.HEAPU32.set(
3485
new Uint32Array([
3486
1732584193, 4023233417, 2562383102, 271733878, 3285377520,
3487
]),
3488
t.sha1 >> 2
3489
);
3490
for (var o = 0; o < e.length; ) {
3491
var i = Math.min(t.HEAPU8.length - t.data, e.length - o) & -64;
3492
if (
3493
(t.HEAPU8.set(e.subarray(o, o + i), t.data),
3494
(o += i),
3495
t.process(t.data, i >> 6),
3496
e.length - o < 64)
3497
) {
3498
if (
3499
((i = e.length - o),
3500
t.HEAPU8.set(e.subarray(e.length - i, e.length), t.data),
3501
(o += i),
3502
(t.HEAPU8[t.data + i++] = 128),
3503
i > 56)
3504
) {
3505
for (var a = i; a < 64; a++) t.HEAPU8[t.data + a] = 0;
3506
t.process(t.data, 1), (i = 0);
3507
}
3508
for (var a = i; a < 64; a++) t.HEAPU8[t.data + a] = 0;
3509
for (
3510
var s = e.length, d = 0, a = 63;
3511
a >= 56;
3512
a--, d = (224 & s) >> 5, s /= 256
3513
)
3514
t.HEAPU8[t.data + a] = ((31 & s) << 3) + d;
3515
t.process(t.data, 1);
3516
}
3517
}
3518
for (var l = new Uint8Array(20), a = 0; a < l.length; a++)
3519
l[a] = t.HEAPU8[t.sha1 + (a & -4) + 3 - (3 & a)];
3520
return l;
3521
},
3522
},
3523
Error: {
3524
init: (function () {
3525
return (
3526
(Error.stackTraceLimit = 50),
3527
window.addEventListener("error", function (e) {
3528
var t = UnityLoader.Error.getModule(e);
3529
if (!t) return UnityLoader.Error.handler(e);
3530
var r = t.useWasm ? t.wasmSymbolsUrl : t.asmSymbolsUrl;
3531
if (!r) return UnityLoader.Error.handler(e, t);
3532
var n = new XMLHttpRequest();
3533
n.open("GET", t.resolveBuildUrl(r)),
3534
(n.responseType = "arraybuffer"),
3535
(n.onload = function () {
3536
UnityLoader.loadCode(
3537
t,
3538
UnityLoader.Compression.decompress(new Uint8Array(n.response)),
3539
function (r) {
3540
(t.demangleSymbol = UnityLoader[r]()),
3541
UnityLoader.Error.handler(e, t);
3542
},
3543
{ isModularized: !1 }
3544
);
3545
}),
3546
n.send();
3547
}),
3548
!0
3549
);
3550
})(),
3551
stackTraceFormat:
3552
navigator.userAgent.indexOf("Chrome") != -1
3553
? "(\\s+at\\s+)(([\\w\\d_\\.]*?)([\\w\\d_$]+)(/[\\w\\d_\\./]+|))(\\s+\\[.*\\]|)\\s*\\((blob:.*)\\)"
3554
: "(\\s*)(([\\w\\d_\\.]*?)([\\w\\d_$]+)(/[\\w\\d_\\./]+|))(\\s+\\[.*\\]|)\\s*@(blob:.*)",
3555
stackTraceFormatWasm:
3556
navigator.userAgent.indexOf("Chrome") != -1
3557
? "((\\s+at\\s*)\\s\\(<WASM>\\[(\\d+)\\]\\+\\d+\\))()"
3558
: "((\\s*)wasm-function\\[(\\d+)\\])@(blob:.*)",
3559
blobParseRegExp: new RegExp("^(blob:.*)(:\\d+:\\d+)$"),
3560
getModule: function (e) {
3561
var t = e.message.match(new RegExp(this.stackTraceFormat, "g"));
3562
for (var r in t) {
3563
var n = t[r].match(new RegExp("^" + this.stackTraceFormat + "$")),
3564
o = n[7].match(this.blobParseRegExp);
3565
if (o && UnityLoader.Blobs[o[1]] && UnityLoader.Blobs[o[1]].Module)
3566
return UnityLoader.Blobs[o[1]].Module;
3567
}
3568
},
3569
demangle: function (e, t) {
3570
var r = e.message;
3571
return t
3572
? ((r = r.replace(
3573
new RegExp(this.stackTraceFormat, "g"),
3574
function (e) {
3575
var r = e.match(new RegExp("^" + this.stackTraceFormat + "$")),
3576
n = r[7].match(this.blobParseRegExp),
3577
o = t.demangleSymbol ? t.demangleSymbol(r[4]) : r[4],
3578
i =
3579
n && UnityLoader.Blobs[n[1]] && UnityLoader.Blobs[n[1]].url
3580
? UnityLoader.Blobs[n[1]].url
3581
: "blob";
3582
return (
3583
r[1] +
3584
o +
3585
(r[2] != o ? " [" + r[2] + "]" : "") +
3586
" (" +
3587
(n ? i.substr(i.lastIndexOf("/") + 1) + n[2] : r[7]) +
3588
")"
3589
);
3590
}.bind(this)
3591
)),
3592
t.useWasm &&
3593
(r = r.replace(
3594
new RegExp(this.stackTraceFormatWasm, "g"),
3595
function (e) {
3596
var r = e.match(
3597
new RegExp("^" + this.stackTraceFormatWasm + "$")
3598
),
3599
n = t.demangleSymbol ? t.demangleSymbol(r[3]) : r[3],
3600
o = r[4].match(this.blobParseRegExp),
3601
i =
3602
o && UnityLoader.Blobs[o[1]] && UnityLoader.Blobs[o[1]].url
3603
? UnityLoader.Blobs[o[1]].url
3604
: "blob";
3605
return (
3606
(n == r[3] ? r[1] : r[2] + n + " [wasm:" + r[3] + "]") +
3607
(r[4]
3608
? " (" +
3609
(o ? i.substr(i.lastIndexOf("/") + 1) + o[2] : r[4]) +
3610
")"
3611
: "")
3612
);
3613
}.bind(this)
3614
)),
3615
r)
3616
: r;
3617
},
3618
handler: function (e, t) {
3619
var r = t ? this.demangle(e, t) : e.message;
3620
if (
3621
!(
3622
(t && t.errorhandler && t.errorhandler(r, e.filename, e.lineno)) ||
3623
(console.log("Invoking error handler due to\n" + r),
3624
"function" == typeof dump &&
3625
dump("Invoking error handler due to\n" + r),
3626
r.indexOf("UnknownError") != -1 ||
3627
r.indexOf("Program terminated with exit(0)") != -1 ||
3628
this.didShowErrorMessage)
3629
)
3630
) {
3631
var r =
3632
"An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was:\n" +
3633
r;
3634
r.indexOf("DISABLE_EXCEPTION_CATCHING") != -1
3635
? (r =
3636
"An exception has occurred, but exception handling has been disabled in this build. If you are the developer of this content, enable exceptions in your project WebGL player settings to be able to catch the exception or see the stack trace.")
3637
: r.indexOf("Cannot enlarge memory arrays") != -1
3638
? (r =
3639
"Out of memory. If you are the developer of this content, try allocating more memory to your WebGL build in the WebGL player settings.")
3640
: (r.indexOf("Invalid array buffer length") == -1 &&
3641
r.indexOf("Invalid typed array length") == -1 &&
3642
r.indexOf("out of memory") == -1 &&
3643
r.indexOf("could not allocate memory") == -1) ||
3644
(r =
3645
"The browser could not allocate enough memory for the WebGL content. If you are the developer of this content, try allocating less memory to your WebGL build in the WebGL player settings."),
3646
alert(r),
3647
(this.didShowErrorMessage = !0);
3648
}
3649
},
3650
popup: function (e, t, r) {
3651
r = r || [{ text: "OK" }];
3652
var n = document.createElement("div");
3653
n.style.cssText =
3654
"position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); text-align: center; border: 1px solid black; padding: 5px; background: #E8E8E8";
3655
var o = document.createElement("span");
3656
(o.textContent = t),
3657
n.appendChild(o),
3658
n.appendChild(document.createElement("br"));
3659
for (var i = 0; i < r.length; i++) {
3660
var a = document.createElement("button");
3661
r[i].text && (a.textContent = r[i].text),
3662
r[i].callback && (a.onclick = r[i].callback),
3663
(a.style.margin = "5px"),
3664
a.addEventListener("click", function () {
3665
e.container.removeChild(n);
3666
}),
3667
n.appendChild(a);
3668
}
3669
e.container.appendChild(n);
3670
},
3671
},
3672
Job: {
3673
schedule: function (e, t, r, n, o) {
3674
o = o || {};
3675
var i = e.Jobs[t];
3676
if (
3677
(i || (i = e.Jobs[t] = { dependencies: {}, dependants: {} }),
3678
i.callback)
3679
)
3680
throw (
3681
"[UnityLoader.Job.schedule] job '" +
3682
t +
3683
"' has been already scheduled"
3684
);
3685
if ("function" != typeof n)
3686
throw "[UnityLoader.Job.schedule] job '" + t + "' has invalid callback";
3687
if ("object" != typeof o)
3688
throw (
3689
"[UnityLoader.Job.schedule] job '" + t + "' has invalid parameters"
3690
);
3691
(i.callback = function (e, t) {
3692
(i.starttime = performance.now()), n(e, t);
3693
}),
3694
(i.parameters = o),
3695
(i.complete = function (r) {
3696
(i.endtime = performance.now()), (i.result = { value: r });
3697
for (var n in i.dependants) {
3698
var o = e.Jobs[n];
3699
o.dependencies[t] = i.dependants[n] = !1;
3700
var a = "function" != typeof o.callback;
3701
for (var s in o.dependencies) a = a || o.dependencies[s];
3702
if (!a) {
3703
if (o.executed)
3704
throw (
3705
"[UnityLoader.Job.schedule] job '" +
3706
t +
3707
"' has already been executed"
3708
);
3709
(o.executed = !0), setTimeout(o.callback.bind(null, e, o), 0);
3710
}
3711
}
3712
});
3713
var a = !1;
3714
r.forEach(function (r) {
3715
var n = e.Jobs[r];
3716
n || (n = e.Jobs[r] = { dependencies: {}, dependants: {} }),
3717
(i.dependencies[r] = n.dependants[t] = !n.result) && (a = !0);
3718
}),
3719
a || ((i.executed = !0), setTimeout(i.callback.bind(null, e, i), 0));
3720
},
3721
result: function (e, t) {
3722
var r = e.Jobs[t];
3723
if (!r) throw "[UnityLoader.Job.result] job '" + t + "' does not exist";
3724
if ("object" != typeof r.result)
3725
throw "[UnityLoader.Job.result] job '" + t + "' has invalid result";
3726
return r.result.value;
3727
},
3728
},
3729
Progress: {
3730
Styles: {
3731
Dark: {
3732
progressLogoUrl:
3733
"data:image/png;base64,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",
3734
progressEmptyUrl:
3735
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAATUlEQVRo3u3aIQ4AIAwEQUr4/5cPiyMVBDOj0M2mCKgkGdAwjYCudZzLOLiITYPrCdEgGkSDaEA0iAbRIBpEA6JBNHx1vnL7V4NNwxsbCNMGI3YImu0AAAAASUVORK5CYII=",
3736
progressFullUrl:
3737
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAO0lEQVRo3u3SQREAAAjDMMC/56EB3omEXjtJCg5GAkyDaTANpsE0YBpMg2kwDaYB02AaTINpMA2Yhr8FO18EIBpZMeQAAAAASUVORK5CYII=",
3738
},
3739
Light: {
3740
progressLogoUrl:
3741
"data:image/png;base64,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",
3742
progressEmptyUrl:
3743
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAUUlEQVRo3u3aMQ4AEAxAUcRJzGb3v1mt3cQglvcmc/NTA3XMFQUuNCPgVk/nahwchE2D6wnRIBpEg2hANIgG0SAaRAOiQTR8lV+5/avBpuGNDcz6A6oq1CgNAAAAAElFTkSuQmCC",
3744
progressFullUrl:
3745
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAASCAYAAABmbl0zAAAACXBIWXMAAAsSAAALEgHS3X78AAAAQElEQVRo3u3SMREAMAgAsVIpnTvj3xlogDmR8PfxftaBgSsBpsE0mAbTYBowDabBNJgG04BpMA2mwTSYBkzDXgP/hgGnr4PpeAAAAABJRU5ErkJggg==",
3746
},
3747
},
3748
handler: function (e, t) {
3749
if (e.Module) {
3750
var r = UnityLoader.Progress.Styles[e.Module.splashScreenStyle],
3751
n = e.Module.progressLogoUrl
3752
? e.Module.resolveBuildUrl(e.Module.progressLogoUrl)
3753
: r.progressLogoUrl,
3754
o = e.Module.progressEmptyUrl
3755
? e.Module.resolveBuildUrl(e.Module.progressEmptyUrl)
3756
: r.progressEmptyUrl,
3757
i = e.Module.progressFullUrl
3758
? e.Module.resolveBuildUrl(e.Module.progressFullUrl)
3759
: r.progressFullUrl,
3760
a =
3761
"position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);";
3762
e.logo ||
3763
((e.logo = document.createElement("div")),
3764
(e.logo.style.cssText =
3765
a +
3766
"background: url('" +
3767
n +
3768
"') no-repeat center / contain; width: 154px; height: 130px;"),
3769
e.container.appendChild(e.logo)),
3770
e.progress ||
3771
((e.progress = document.createElement("div")),
3772
(e.progress.style.cssText =
3773
a + " height: 18px; width: 141px; margin-top: 90px;"),
3774
(e.progress.empty = document.createElement("div")),
3775
(e.progress.empty.style.cssText =
3776
"background: url('" +
3777
o +
3778
"') no-repeat right / cover; float: right; width: 100%; height: 100%; display: inline-block;"),
3779
e.progress.appendChild(e.progress.empty),
3780
(e.progress.full = document.createElement("div")),
3781
(e.progress.full.style.cssText =
3782
"background: url('" +
3783
i +
3784
"') no-repeat left / cover; float: left; width: 0%; height: 100%; display: inline-block;"),
3785
e.progress.appendChild(e.progress.full),
3786
e.container.appendChild(e.progress)),
3787
(e.progress.full.style.width = 100 * t + "%"),
3788
(e.progress.empty.style.width = 100 * (1 - t) + "%"),
3789
1 == t && (e.logo.style.display = e.progress.style.display = "none");
3790
}
3791
},
3792
update: function (e, t, r) {
3793
var n = e.buildDownloadProgress[t];
3794
n ||
3795
(n = e.buildDownloadProgress[t] =
3796
{
3797
started: !1,
3798
finished: !1,
3799
lengthComputable: !1,
3800
total: 0,
3801
loaded: 0,
3802
}),
3803
"object" != typeof r ||
3804
("progress" != r.type && "load" != r.type) ||
3805
(n.started ||
3806
((n.started = !0),
3807
(n.lengthComputable = r.lengthComputable),
3808
(n.total = r.total)),
3809
(n.loaded = r.loaded),
3810
"load" == r.type && (n.finished = !0));
3811
var o = 0,
3812
i = 0,
3813
a = 0,
3814
s = 0,
3815
d = 0;
3816
for (var t in e.buildDownloadProgress) {
3817
var n = e.buildDownloadProgress[t];
3818
if (!n.started) return 0;
3819
a++,
3820
n.lengthComputable
3821
? ((o += n.loaded), (i += n.total), s++)
3822
: n.finished || d++;
3823
}
3824
var l = a ? (a - d - (i ? (s * (i - o)) / i : 0)) / a : 0;
3825
e.unityInstance.onProgress(e.unityInstance, 0.9 * l);
3826
},
3827
},
3828
SystemInfo: (function () {
3829
var e,
3830
t,
3831
r,
3832
n = "-",
3833
o = navigator.appVersion,
3834
i = navigator.userAgent,
3835
a = navigator.appName,
3836
s = navigator.appVersion,
3837
d = parseInt(navigator.appVersion, 10);
3838
(t = i.indexOf("Opera")) != -1
3839
? ((a = "Opera"),
3840
(s = i.substring(t + 6)),
3841
(t = i.indexOf("Version")) != -1 && (s = i.substring(t + 8)))
3842
: (t = i.indexOf("MSIE")) != -1
3843
? ((a = "Microsoft Internet Explorer"), (s = i.substring(t + 5)))
3844
: (t = i.indexOf("Edge")) != -1
3845
? ((a = "Edge"), (s = i.substring(t + 5)))
3846
: (t = i.indexOf("Chrome")) != -1
3847
? ((a = "Chrome"), (s = i.substring(t + 7)))
3848
: (t = i.indexOf("Safari")) != -1
3849
? ((a = "Safari"),
3850
(s = i.substring(t + 7)),
3851
(t = i.indexOf("Version")) != -1 && (s = i.substring(t + 8)))
3852
: (t = i.indexOf("Firefox")) != -1
3853
? ((a = "Firefox"), (s = i.substring(t + 8)))
3854
: i.indexOf("Trident/") != -1
3855
? ((a = "Microsoft Internet Explorer"),
3856
(s = i.substring(i.indexOf("rv:") + 3)))
3857
: (e = i.lastIndexOf(" ") + 1) < (t = i.lastIndexOf("/")) &&
3858
((a = i.substring(e, t)),
3859
(s = i.substring(t + 1)),
3860
a.toLowerCase() == a.toUpperCase() && (a = navigator.appName)),
3861
(r = s.indexOf(";")) != -1 && (s = s.substring(0, r)),
3862
(r = s.indexOf(" ")) != -1 && (s = s.substring(0, r)),
3863
(r = s.indexOf(")")) != -1 && (s = s.substring(0, r)),
3864
(d = parseInt("" + s, 10)),
3865
isNaN(d)
3866
? ((s = "" + parseFloat(navigator.appVersion)),
3867
(d = parseInt(navigator.appVersion, 10)))
3868
: (s = "" + parseFloat(s));
3869
var l = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(o),
3870
u = n,
3871
c = [
3872
{ s: "Windows 3.11", r: /Win16/ },
3873
{ s: "Windows 95", r: /(Windows 95|Win95|Windows_95)/ },
3874
{ s: "Windows ME", r: /(Win 9x 4.90|Windows ME)/ },
3875
{ s: "Windows 98", r: /(Windows 98|Win98)/ },
3876
{ s: "Windows CE", r: /Windows CE/ },
3877
{ s: "Windows 2000", r: /(Windows NT 5.0|Windows 2000)/ },
3878
{ s: "Windows XP", r: /(Windows NT 5.1|Windows XP)/ },
3879
{ s: "Windows Server 2003", r: /Windows NT 5.2/ },
3880
{ s: "Windows Vista", r: /Windows NT 6.0/ },
3881
{ s: "Windows 7", r: /(Windows 7|Windows NT 6.1)/ },
3882
{ s: "Windows 8.1", r: /(Windows 8.1|Windows NT 6.3)/ },
3883
{ s: "Windows 8", r: /(Windows 8|Windows NT 6.2)/ },
3884
{ s: "Windows 10", r: /(Windows 10|Windows NT 10.0)/ },
3885
{
3886
s: "Windows NT 4.0",
3887
r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/,
3888
},
3889
{ s: "Windows ME", r: /Windows ME/ },
3890
{ s: "Android", r: /Android/ },
3891
{ s: "Open BSD", r: /OpenBSD/ },
3892
{ s: "Sun OS", r: /SunOS/ },
3893
{ s: "Linux", r: /(Linux|X11)/ },
3894
{ s: "iOS", r: /(iPhone|iPad|iPod)/ },
3895
{ s: "Mac OS X", r: /Mac OS X/ },
3896
{ s: "Mac OS", r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },
3897
{ s: "QNX", r: /QNX/ },
3898
{ s: "UNIX", r: /UNIX/ },
3899
{ s: "BeOS", r: /BeOS/ },
3900
{ s: "OS/2", r: /OS\/2/ },
3901
{
3902
s: "Search Bot",
3903
r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/,
3904
},
3905
];
3906
for (var f in c) {
3907
var h = c[f];
3908
if (h.r.test(i)) {
3909
u = h.s;
3910
break;
3911
}
3912
}
3913
var p = n;
3914
switch (
3915
(/Windows/.test(u) && ((p = /Windows (.*)/.exec(u)[1]), (u = "Windows")),
3916
u)
3917
) {
3918
case "Mac OS X":
3919
p = /Mac OS X (10[\.\_\d]+)/.exec(i)[1];
3920
break;
3921
case "Android":
3922
p = /Android ([\.\_\d]+)/.exec(i)[1];
3923
break;
3924
case "iOS":
3925
(p = /OS (\d+)_(\d+)_?(\d+)?/.exec(o)),
3926
(p = p[1] + "." + p[2] + "." + (0 | p[3]));
3927
}
3928
return {
3929
width: screen.width ? screen.width : 0,
3930
height: screen.height ? screen.height : 0,
3931
browser: a,
3932
browserVersion: s,
3933
mobile: l,
3934
os: u,
3935
osVersion: p,
3936
gpu: (function () {
3937
var e = document.createElement("canvas"),
3938
t = e.getContext("experimental-webgl");
3939
if (t) {
3940
var r = t.getExtension("WEBGL_debug_renderer_info");
3941
if (r) return t.getParameter(r.UNMASKED_RENDERER_WEBGL);
3942
}
3943
return n;
3944
})(),
3945
language: window.navigator.userLanguage || window.navigator.language,
3946
hasWebGL: (function () {
3947
if (!window.WebGLRenderingContext) return 0;
3948
var e = document.createElement("canvas"),
3949
t = e.getContext("webgl2");
3950
return t
3951
? 2
3952
: ((t = e.getContext("experimental-webgl2")),
3953
t
3954
? 2
3955
: ((t = e.getContext("webgl")),
3956
t || (t = e.getContext("experimental-webgl")) ? 1 : 0));
3957
})(),
3958
hasCursorLock: (function () {
3959
var e = document.createElement("canvas");
3960
return e.requestPointerLock ||
3961
e.mozRequestPointerLock ||
3962
e.webkitRequestPointerLock ||
3963
e.msRequestPointerLock
3964
? 1
3965
: 0;
3966
})(),
3967
hasFullscreen: (function () {
3968
var e = document.createElement("canvas");
3969
return (e.requestFullScreen ||
3970
e.mozRequestFullScreen ||
3971
e.msRequestFullscreen ||
3972
e.webkitRequestFullScreen) &&
3973
(a.indexOf("Safari") == -1 || s >= 10.1)
3974
? 1
3975
: 0;
3976
})(),
3977
hasThreads: "undefined" != typeof SharedArrayBuffer,
3978
hasWasm:
3979
"object" == typeof WebAssembly &&
3980
"function" == typeof WebAssembly.validate &&
3981
"function" == typeof WebAssembly.compile,
3982
hasWasmThreads: (function () {
3983
if ("object" != typeof WebAssembly) return !1;
3984
if ("undefined" == typeof SharedArrayBuffer) return !1;
3985
var e = new WebAssembly.Memory({ initial: 1, maximum: 1, shared: !0 }),
3986
t = e.buffer instanceof SharedArrayBuffer;
3987
return delete e, t;
3988
})(),
3989
};
3990
})(),
3991
compatibilityCheck: function (e, t, r) {
3992
UnityLoader.SystemInfo.hasWebGL
3993
? UnityLoader.SystemInfo.mobile
3994
? e.popup(
3995
"Please note that Unity WebGL is not currently supported on mobiles. Press OK if you wish to continue anyway.",
3996
[{ text: "OK", callback: t }]
3997
)
3998
: ["Edge", "Firefox", "Chrome", "Safari"].indexOf(
3999
UnityLoader.SystemInfo.browser
4000
) == -1
4001
? e.popup(
4002
"Please note that your browser is not currently supported for this Unity WebGL content. Press OK if you wish to continue anyway.",
4003
[{ text: "OK", callback: t }]
4004
)
4005
: t()
4006
: e.popup("Your browser does not support WebGL", [
4007
{ text: "OK", callback: r },
4008
]);
4009
},
4010
buildCompatibilityCheck: function (e, t, r) {
4011
function n() {
4012
if ("undefined" == typeof e.graphicsAPI) return !0;
4013
for (var t = 0; t < e.graphicsAPI.length; t++) {
4014
var r = e.graphicsAPI[t];
4015
if ("WebGL 2.0" == r && 2 == UnityLoader.SystemInfo.hasWebGL) return !0;
4016
if ("WebGL 1.0" == r && UnityLoader.SystemInfo.hasWebGL >= 1) return !0;
4017
e.print("Warning: Unsupported graphics API " + r);
4018
}
4019
return !1;
4020
}
4021
n()
4022
? !UnityLoader.SystemInfo.hasThreads && e.multithreading
4023
? r("Your browser does not support multithreading.")
4024
: t()
4025
: r(
4026
"Your browser does not support any of the required graphics API for this content."
4027
);
4028
},
4029
Blobs: {},
4030
loadCode: function (e, t, r, n) {
4031
var o = [].slice
4032
.call(UnityLoader.Cryptography.md5(t))
4033
.map(function (e) {
4034
return ("0" + e.toString(16)).substr(-2);
4035
})
4036
.join(""),
4037
i = document.createElement("script"),
4038
a = (
4039
n.isModularized
4040
? function (e) {
4041
return new Blob([e], { type: "application/javascript" });
4042
}
4043
: function (e, t) {
4044
return new Blob(['UnityLoader["' + t + '"]=', e], {
4045
type: "text/javascript",
4046
});
4047
}
4048
)(t, o),
4049
s = URL.createObjectURL(a);
4050
(UnityLoader.Blobs[s] = n),
4051
e.deinitializers.push(function () {
4052
delete UnityLoader.Blobs[s],
4053
delete UnityLoader[o],
4054
document.body.removeChild(document.getElementById(o));
4055
}),
4056
(i.src = s),
4057
(i.id = o),
4058
(i.onload = function () {
4059
e.developmentBuild || URL.revokeObjectURL(s), r(o, a), delete i.onload;
4060
}),
4061
document.body.appendChild(i);
4062
},
4063
setupIndexedDBJob: function (e, t) {
4064
function r(n) {
4065
r.called || ((r.called = !0), (e.indexedDB = n), t.complete());
4066
}
4067
try {
4068
var n =
4069
window.indexedDB ||
4070
window.mozIndexedDB ||
4071
window.webkitIndexedDB ||
4072
window.msIndexedDB,
4073
o = n.open("/idbfs-test");
4074
(o.onerror = function (e) {
4075
e.preventDefault(), r();
4076
}),
4077
(o.onsuccess = function () {
4078
o.result.close(), r(n);
4079
});
4080
} catch (e) {
4081
r();
4082
}
4083
},
4084
processWasmCodeJob: function (e, t) {
4085
(e.wasmBinary = UnityLoader.Job.result(e, "downloadWasmCode")),
4086
t.complete();
4087
},
4088
processWasmFrameworkJob: function (e, t) {
4089
var r = UnityLoader.Job.result(e, "downloadWasmFramework");
4090
UnityLoader.loadCode(
4091
e,
4092
r,
4093
function (r, n) {
4094
(e.mainScriptUrlOrBlob = n),
4095
e.isModularized && (UnityLoader[r] = UnityModule),
4096
UnityLoader[r](e),
4097
t.complete();
4098
},
4099
{ Module: e, url: e.wasmFrameworkUrl, isModularized: e.isModularized }
4100
);
4101
},
4102
processAsmCodeJob: function (e, t) {
4103
var r = UnityLoader.Job.result(e, "downloadAsmCode");
4104
UnityLoader.loadCode(
4105
e,
4106
Math.fround ? r : UnityLoader.Utils.optimizeMathFround(r),
4107
function (r, n) {
4108
e.isModularized ? (e.asmJsUrlOrBlob = n) : (e.asm = UnityLoader[r]),
4109
t.complete();
4110
},
4111
{ Module: e, url: e.asmCodeUrl, isModularized: e.isModularized }
4112
);
4113
},
4114
processAsmFrameworkJob: function (e, t) {
4115
var r = UnityLoader.Job.result(e, "downloadAsmFramework");
4116
UnityLoader.loadCode(
4117
e,
4118
r,
4119
function (r, n) {
4120
e.isModularized &&
4121
((e.mainScriptUrlOrBlob = n), (UnityLoader[r] = UnityModule)),
4122
UnityLoader[r](e),
4123
t.complete();
4124
},
4125
{ Module: e, url: e.asmFrameworkUrl, isModularized: e.isModularized }
4126
);
4127
},
4128
processMemoryInitializerJob: function (e, t) {
4129
(e.memoryInitializerRequest.status = 200),
4130
(e.memoryInitializerRequest.response = UnityLoader.Job.result(
4131
e,
4132
"downloadMemoryInitializer"
4133
)),
4134
e.memoryInitializerRequest.callback &&
4135
e.memoryInitializerRequest.callback(),
4136
t.complete();
4137
},
4138
processDataJob: function (e, t) {
4139
var r = UnityLoader.Job.result(e, "downloadData"),
4140
n = new DataView(r.buffer, r.byteOffset, r.byteLength),
4141
o = 0,
4142
i = "UnityWebData1.0\0";
4143
if (!String.fromCharCode.apply(null, r.subarray(o, o + i.length)) == i)
4144
throw "unknown data format";
4145
o += i.length;
4146
var a = n.getUint32(o, !0);
4147
for (o += 4; o < a; ) {
4148
var s = n.getUint32(o, !0);
4149
o += 4;
4150
var d = n.getUint32(o, !0);
4151
o += 4;
4152
var l = n.getUint32(o, !0);
4153
o += 4;
4154
var u = String.fromCharCode.apply(null, r.subarray(o, o + l));
4155
o += l;
4156
for (
4157
var c = 0, f = u.indexOf("/", c) + 1;
4158
f > 0;
4159
c = f, f = u.indexOf("/", c) + 1
4160
)
4161
e.FS_createPath(u.substring(0, c), u.substring(c, f - 1), !0, !0);
4162
e.FS_createDataFile(u, null, r.subarray(s, s + d), !0, !0, !0);
4163
}
4164
e.removeRunDependency("processDataJob"), t.complete();
4165
},
4166
downloadJob: function (e, t) {
4167
var r = t.parameters.objParameters
4168
? new UnityLoader.UnityCache.XMLHttpRequest(t.parameters.objParameters)
4169
: new XMLHttpRequest();
4170
r.open("GET", t.parameters.url),
4171
(r.responseType = "arraybuffer"),
4172
(r.onload = function () {
4173
UnityLoader.Compression.decompress(
4174
new Uint8Array(r.response),
4175
function (e) {
4176
t.complete(e);
4177
}
4178
);
4179
}),
4180
t.parameters.onprogress &&
4181
r.addEventListener("progress", t.parameters.onprogress),
4182
t.parameters.onload && r.addEventListener("load", t.parameters.onload),
4183
r.send();
4184
},
4185
scheduleBuildDownloadJob: function (e, t, r) {
4186
UnityLoader.Progress.update(e, t),
4187
UnityLoader.Job.schedule(e, t, [], UnityLoader.downloadJob, {
4188
url: e.resolveBuildUrl(e[r]),
4189
onprogress: function (r) {
4190
UnityLoader.Progress.update(e, t, r);
4191
},
4192
onload: function (r) {
4193
UnityLoader.Progress.update(e, t, r);
4194
},
4195
objParameters:
4196
e.companyName &&
4197
e.productName &&
4198
e.cacheControl &&
4199
(e.cacheControl[r] || e.cacheControl.default)
4200
? {
4201
companyName: e.companyName,
4202
productName: e.productName,
4203
cacheControl: e.cacheControl[r] || e.cacheControl.default,
4204
}
4205
: null,
4206
});
4207
},
4208
loadModule: function (e, t) {
4209
if (
4210
((e.useWasm = e.wasmCodeUrl && UnityLoader.SystemInfo.hasWasm), e.useWasm)
4211
) {
4212
if (e.multithreading && !UnityLoader.SystemInfo.hasWasmThreads)
4213
return void t("Your browser does not support WebAssembly Threads.");
4214
var r = ["downloadWasmFramework", "setupIndexedDB"];
4215
e.wasmCodeUrl.endsWith(".unityweb") &&
4216
(UnityLoader.scheduleBuildDownloadJob(
4217
e,
4218
"downloadWasmCode",
4219
"wasmCodeUrl"
4220
),
4221
UnityLoader.Job.schedule(
4222
e,
4223
"processWasmCode",
4224
["downloadWasmCode"],
4225
UnityLoader.processWasmCodeJob
4226
),
4227
r.push("processWasmCode")),
4228
e.wasmMemoryUrl &&
4229
(UnityLoader.scheduleBuildDownloadJob(
4230
e,
4231
"downloadMemoryInitializer",
4232
"wasmMemoryUrl"
4233
),
4234
UnityLoader.Job.schedule(
4235
e,
4236
"processMemoryInitializer",
4237
["downloadMemoryInitializer"],
4238
UnityLoader.processMemoryInitializerJob
4239
),
4240
(e.memoryInitializerRequest = {
4241
addEventListener: function (t, r) {
4242
e.memoryInitializerRequest.callback = r;
4243
},
4244
})),
4245
UnityLoader.scheduleBuildDownloadJob(
4246
e,
4247
"downloadWasmFramework",
4248
"wasmFrameworkUrl"
4249
),
4250
UnityLoader.Job.schedule(
4251
e,
4252
"processWasmFramework",
4253
r,
4254
UnityLoader.processWasmFrameworkJob
4255
);
4256
} else {
4257
if (!e.asmCodeUrl)
4258
return void t("Your browser does not support WebAssembly.");
4259
UnityLoader.scheduleBuildDownloadJob(e, "downloadAsmCode", "asmCodeUrl"),
4260
UnityLoader.Job.schedule(
4261
e,
4262
"processAsmCode",
4263
["downloadAsmCode"],
4264
UnityLoader.processAsmCodeJob
4265
),
4266
UnityLoader.scheduleBuildDownloadJob(
4267
e,
4268
"downloadMemoryInitializer",
4269
"asmMemoryUrl"
4270
),
4271
UnityLoader.Job.schedule(
4272
e,
4273
"processMemoryInitializer",
4274
["downloadMemoryInitializer"],
4275
UnityLoader.processMemoryInitializerJob
4276
),
4277
(e.memoryInitializerRequest = {
4278
addEventListener: function (t, r) {
4279
e.memoryInitializerRequest.callback = r;
4280
},
4281
}),
4282
e.asmLibraryUrl &&
4283
(e.dynamicLibraries = [e.asmLibraryUrl].map(e.resolveBuildUrl)),
4284
UnityLoader.scheduleBuildDownloadJob(
4285
e,
4286
"downloadAsmFramework",
4287
"asmFrameworkUrl"
4288
),
4289
UnityLoader.Job.schedule(
4290
e,
4291
"processAsmFramework",
4292
["downloadAsmFramework", "processAsmCode", "setupIndexedDB"],
4293
UnityLoader.processAsmFrameworkJob
4294
);
4295
}
4296
UnityLoader.scheduleBuildDownloadJob(e, "downloadData", "dataUrl"),
4297
UnityLoader.Job.schedule(
4298
e,
4299
"setupIndexedDB",
4300
[],
4301
UnityLoader.setupIndexedDBJob
4302
),
4303
e.preRun.push(function () {
4304
e.addRunDependency("processDataJob"),
4305
UnityLoader.Job.schedule(
4306
e,
4307
"processData",
4308
["downloadData"],
4309
UnityLoader.processDataJob
4310
);
4311
});
4312
},
4313
instantiate: function (e, t, r) {
4314
function n(e, n) {
4315
if ("string" == typeof e && !(e = document.getElementById(e))) return !1;
4316
(e.innerHTML = ""),
4317
(e.style.border = e.style.margin = e.style.padding = 0),
4318
"static" == getComputedStyle(e).getPropertyValue("position") &&
4319
(e.style.position = "relative"),
4320
(e.style.width = n.width || e.style.width),
4321
(e.style.height = n.height || e.style.height),
4322
(n.container = e);
4323
var o = n.Module;
4324
(o.canvas = document.createElement("canvas")),
4325
(o.canvas.style.width = "100%"),
4326
(o.canvas.style.height = "100%"),
4327
o.canvas.addEventListener("contextmenu", function (e) {
4328
e.preventDefault();
4329
}),
4330
o.canvas.addEventListener("dragstart", function (e) {
4331
e.preventDefault();
4332
}),
4333
(o.canvas.id = "#canvas"),
4334
e.appendChild(o.canvas),
4335
o.deinitializers.push(function () {
4336
e.removeChild(o.canvas);
4337
});
4338
var i = !0;
4339
return (
4340
n.compatibilityCheck(
4341
n,
4342
function () {
4343
var t = new XMLHttpRequest();
4344
t.open("GET", n.url, !0),
4345
(t.responseType = "text"),
4346
(t.onerror = function () {
4347
o.print("Could not download " + n.url),
4348
0 == document.URL.indexOf("file:") &&
4349
alert(
4350
"It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser."
4351
);
4352
}),
4353
(t.onload = function () {
4354
var a = JSON.parse(t.responseText);
4355
for (var s in a) "undefined" == typeof o[s] && (o[s] = a[s]);
4356
if (o.unityVersion) {
4357
var d = o.unityVersion.match(/(\d+)\.(\d+)\.(\d+)(.+)/);
4358
d &&
4359
(o.unityVersion = {
4360
string: o.unityVersion,
4361
version: parseInt(d[0]),
4362
major: parseInt(d[1]),
4363
minor: parseInt(d[2]),
4364
suffix: d[3],
4365
});
4366
}
4367
(o.isModularized =
4368
o.unityVersion && o.unityVersion.version >= 2019),
4369
UnityLoader.buildCompatibilityCheck(
4370
o,
4371
function () {
4372
(e.style.background = o.backgroundUrl
4373
? "center/cover url('" +
4374
o.resolveBuildUrl(o.backgroundUrl) +
4375
"')"
4376
: o.backgroundColor
4377
? " " + o.backgroundColor
4378
: ""),
4379
n.onProgress(n, 0),
4380
(i = UnityLoader.loadModule(o, r.onerror));
4381
},
4382
r.onerror
4383
);
4384
}),
4385
t.send();
4386
},
4387
function () {
4388
var e =
4389
"Instantiation of '" +
4390
t +
4391
"' terminated due to the failed compatibility check.";
4392
"object" == typeof r && "function" == typeof r.onerror
4393
? r.onerror(e)
4394
: o.printErr(e);
4395
}
4396
),
4397
i
4398
);
4399
}
4400
function o(e) {
4401
return (
4402
(o.link = o.link || document.createElement("a")),
4403
(o.link.href = e),
4404
o.link.href
4405
);
4406
}
4407
"undefined" == typeof r && (r = {}),
4408
"undefined" == typeof r.onerror &&
4409
(r.onerror = function (e) {
4410
i.popup(e, [{ text: "OK" }]);
4411
});
4412
var i = {
4413
url: t,
4414
onProgress: UnityLoader.Progress.handler,
4415
compatibilityCheck: UnityLoader.compatibilityCheck,
4416
Module: {
4417
deinitializers: [],
4418
intervals: {},
4419
setInterval: function (e, t) {
4420
var r = window.setInterval(e, t);
4421
return (this.intervals[r] = !0), r;
4422
},
4423
clearInterval: function (e) {
4424
delete this.intervals[e], window.clearInterval(e);
4425
},
4426
onAbort: function (e) {
4427
throw (
4428
(void 0 !== e
4429
? (this.print(e), this.printErr(e), (e = JSON.stringify(e)))
4430
: (e = ""),
4431
"abort(" + e + ") at " + this.stackTrace())
4432
);
4433
},
4434
preRun: [],
4435
postRun: [],
4436
print: function (e) {
4437
console.log(e);
4438
},
4439
printErr: function (e) {
4440
console.error(e);
4441
},
4442
Jobs: {},
4443
buildDownloadProgress: {},
4444
resolveBuildUrl: function (e) {
4445
return e.match(/(http|https|ftp|file):\/\//)
4446
? e
4447
: t.substring(0, t.lastIndexOf("/") + 1) + e;
4448
},
4449
streamingAssetsUrl: function () {
4450
return o(this.resolveBuildUrl("../StreamingAssets"));
4451
},
4452
locateFile: function (e) {
4453
return "Build/".concat("build.wasm" == e ? this.wasmCodeUrl : e);
4454
},
4455
},
4456
SetFullscreen: function () {
4457
if (i.Module.SetFullscreen)
4458
return i.Module.SetFullscreen.apply(i.Module, arguments);
4459
},
4460
SendMessage: function () {
4461
if (i.Module.SendMessage)
4462
return i.Module.SendMessage.apply(i.Module, arguments);
4463
},
4464
Quit: function (e) {
4465
"function" == typeof e && (i.Module.onQuit = e),
4466
(i.Module.shouldQuit = !0);
4467
},
4468
};
4469
(i.Module.unityInstance = i),
4470
(i.popup = function (e, t) {
4471
return UnityLoader.Error.popup(i, e, t);
4472
}),
4473
i.Module.postRun.push(function () {
4474
i.onProgress(i, 1),
4475
"object" == typeof r &&
4476
"function" == typeof r.onsuccess &&
4477
r.onsuccess(i.Module);
4478
});
4479
for (var a in r)
4480
if ("Module" == a) for (var s in r[a]) i.Module[s] = r[a][s];
4481
else i[a] = r[a];
4482
return (
4483
n(e, i) ||
4484
document.addEventListener("DOMContentLoaded", function () {
4485
n(e, i);
4486
}),
4487
i
4488
);
4489
},
4490
instantiateAsync: function (e, t, r) {
4491
return new Promise(function (n, o) {
4492
const i = Object.assign(
4493
{
4494
onsuccess: function (e) {
4495
n(e);
4496
},
4497
onerror: function (e) {
4498
o(e);
4499
},
4500
},
4501
r
4502
);
4503
UnityLoader.instantiate(e, t, i);
4504
});
4505
},
4506
Utils: {
4507
assert: function (e, t) {
4508
e || abort("Assertion failed: " + t);
4509
},
4510
optimizeMathFround: function (e, t) {
4511
console.log("optimizing out Math.fround calls");
4512
for (
4513
var r = {
4514
LOOKING_FOR_MODULE: 0,
4515
SCANNING_MODULE_VARIABLES: 1,
4516
SCANNING_MODULE_FUNCTIONS: 2,
4517
},
4518
n = [
4519
"EMSCRIPTEN_START_ASM",
4520
"EMSCRIPTEN_START_FUNCS",
4521
"EMSCRIPTEN_END_FUNCS",
4522
],
4523
o = "var",
4524
i = "global.Math.fround;",
4525
a = 0,
4526
s = t ? r.LOOKING_FOR_MODULE : r.SCANNING_MODULE_VARIABLES,
4527
d = 0,
4528
l = 0;
4529
s <= r.SCANNING_MODULE_FUNCTIONS && a < e.length;
4530
a++
4531
)
4532
if (
4533
47 == e[a] &&
4534
47 == e[a + 1] &&
4535
32 == e[a + 2] &&
4536
String.fromCharCode.apply(
4537
null,
4538
e.subarray(a + 3, a + 3 + n[s].length)
4539
) === n[s]
4540
)
4541
s++;
4542
else if (
4543
s != r.SCANNING_MODULE_VARIABLES ||
4544
l ||
4545
61 != e[a] ||
4546
String.fromCharCode.apply(
4547
null,
4548
e.subarray(a + 1, a + 1 + i.length)
4549
) !== i
4550
) {
4551
if (l && 40 == e[a]) {
4552
for (var u = 0; u < l && e[a - 1 - u] == e[d - u]; ) u++;
4553
if (u == l) {
4554
var c = e[a - 1 - u];
4555
if (
4556
c < 36 ||
4557
(36 < c && c < 48) ||
4558
(57 < c && c < 65) ||
4559
(90 < c && c < 95) ||
4560
(95 < c && c < 97) ||
4561
122 < c
4562
)
4563
for (; u; u--) e[a - u] = 32;
4564
}
4565
}
4566
} else {
4567
for (d = a - 1; 32 != e[d - l]; ) l++;
4568
(l &&
4569
String.fromCharCode.apply(
4570
null,
4571
e.subarray(d - l - o.length, d - l)
4572
) === o) ||
4573
(d = l = 0);
4574
}
4575
return e;
4576
},
4577
},
4578
UnityCache: (function () {
4579
function e(e) {
4580
console.log("[UnityCache] " + e);
4581
}
4582
function t(e) {
4583
return (
4584
(t.link = t.link || document.createElement("a")),
4585
(t.link.href = e),
4586
t.link.href
4587
);
4588
}
4589
function r(e) {
4590
var t = window.location.href.match(/^[a-z]+:\/\/[^\/]+/);
4591
return !t || e.lastIndexOf(t[0], 0);
4592
}
4593
function n() {
4594
function t(t) {
4595
if ("undefined" == typeof n.database)
4596
for (
4597
n.database = t,
4598
n.database || e("indexedDB database could not be opened");
4599
n.queue.length;
4600
4601
) {
4602
var r = n.queue.shift();
4603
n.database
4604
? n.execute.apply(n, r)
4605
: "function" == typeof r.onerror &&
4606
r.onerror(new Error("operation cancelled"));
4607
}
4608
}
4609
function r() {
4610
var e = o.open(a.name, a.version);
4611
(e.onupgradeneeded = function (e) {
4612
var t = e.target.result;
4613
t.objectStoreNames.contains(d.name) || t.createObjectStore(d.name);
4614
}),
4615
(e.onsuccess = function (e) {
4616
t(e.target.result);
4617
}),
4618
(e.onerror = function () {
4619
t(null);
4620
});
4621
}
4622
var n = this;
4623
n.queue = [];
4624
try {
4625
var o =
4626
window.indexedDB ||
4627
window.mozIndexedDB ||
4628
window.webkitIndexedDB ||
4629
window.msIndexedDB,
4630
i = o.open(a.name);
4631
(i.onupgradeneeded = function (e) {
4632
var t = e.target.result.createObjectStore(s.name, { keyPath: "url" });
4633
[
4634
"version",
4635
"company",
4636
"product",
4637
"updated",
4638
"revalidated",
4639
"accessed",
4640
].forEach(function (e) {
4641
t.createIndex(e, e);
4642
});
4643
}),
4644
(i.onsuccess = function (e) {
4645
var n = e.target.result;
4646
n.version < a.version ? (n.close(), r()) : t(n);
4647
}),
4648
(i.onerror = function () {
4649
t(null);
4650
});
4651
} catch (e) {
4652
t(null);
4653
}
4654
}
4655
function o(e, t, r, n, o) {
4656
var i = {
4657
url: e,
4658
version: s.version,
4659
company: t,
4660
product: r,
4661
updated: n,
4662
revalidated: n,
4663
accessed: n,
4664
responseHeaders: {},
4665
xhr: {},
4666
};
4667
return (
4668
o &&
4669
(["Last-Modified", "ETag"].forEach(function (e) {
4670
i.responseHeaders[e] = o.getResponseHeader(e);
4671
}),
4672
["responseURL", "status", "statusText", "response"].forEach(function (
4673
e
4674
) {
4675
i.xhr[e] = o[e];
4676
})),
4677
i
4678
);
4679
}
4680
function i(t) {
4681
(this.cache = { enabled: !1 }),
4682
t &&
4683
((this.cache.control = t.cacheControl),
4684
(this.cache.company = t.companyName),
4685
(this.cache.product = t.productName)),
4686
(this.xhr = new XMLHttpRequest(t)),
4687
this.xhr.addEventListener(
4688
"load",
4689
function () {
4690
var t = this.xhr,
4691
r = this.cache;
4692
r.enabled &&
4693
!r.revalidated &&
4694
(304 == t.status
4695
? ((r.result.revalidated = r.result.accessed),
4696
(r.revalidated = !0),
4697
l.execute(s.name, "put", [r.result]),
4698
e(
4699
"'" +
4700
r.result.url +
4701
"' successfully revalidated and served from the indexedDB cache"
4702
))
4703
: 200 == t.status
4704
? ((r.result = o(
4705
r.result.url,
4706
r.company,
4707
r.product,
4708
r.result.accessed,
4709
t
4710
)),
4711
(r.revalidated = !0),
4712
l.execute(
4713
s.name,
4714
"put",
4715
[r.result],
4716
function (t) {
4717
e(
4718
"'" +
4719
r.result.url +
4720
"' successfully downloaded and stored in the indexedDB cache"
4721
);
4722
},
4723
function (t) {
4724
e(
4725
"'" +
4726
r.result.url +
4727
"' successfully downloaded but not stored in the indexedDB cache due to the error: " +
4728
t
4729
);
4730
}
4731
))
4732
: e(
4733
"'" +
4734
r.result.url +
4735
"' request failed with status: " +
4736
t.status +
4737
" " +
4738
t.statusText
4739
));
4740
}.bind(this)
4741
);
4742
}
4743
var a = { name: "UnityCache", version: 2 },
4744
s = { name: "XMLHttpRequest", version: 1 },
4745
d = { name: "WebAssembly", version: 1 };
4746
n.prototype.execute = function (e, t, r, n, o) {
4747
if (this.database)
4748
try {
4749
var i = this.database
4750
.transaction(
4751
[e],
4752
["put", "delete", "clear"].indexOf(t) != -1
4753
? "readwrite"
4754
: "readonly"
4755
)
4756
.objectStore(e);
4757
"openKeyCursor" == t && ((i = i.index(r[0])), (r = r.slice(1)));
4758
var a = i[t].apply(i, r);
4759
"function" == typeof n &&
4760
(a.onsuccess = function (e) {
4761
n(e.target.result);
4762
}),
4763
(a.onerror = o);
4764
} catch (e) {
4765
"function" == typeof o && o(e);
4766
}
4767
else
4768
"undefined" == typeof this.database
4769
? this.queue.push(arguments)
4770
: "function" == typeof o && o(new Error("indexedDB access denied"));
4771
};
4772
var l = new n();
4773
(i.prototype.send = function (t) {
4774
var n = this.xhr,
4775
o = this.cache,
4776
i = arguments;
4777
return (
4778
(o.enabled = o.enabled && "arraybuffer" == n.responseType && !t),
4779
o.enabled
4780
? void l.execute(
4781
s.name,
4782
"get",
4783
[o.result.url],
4784
function (t) {
4785
if (!t || t.version != s.version)
4786
return void n.send.apply(n, i);
4787
if (
4788
((o.result = t),
4789
(o.result.accessed = Date.now()),
4790
"immutable" == o.control)
4791
)
4792
(o.revalidated = !0),
4793
l.execute(s.name, "put", [o.result]),
4794
n.dispatchEvent(new Event("load")),
4795
e(
4796
"'" +
4797
o.result.url +
4798
"' served from the indexedDB cache without revalidation"
4799
);
4800
else if (
4801
r(o.result.url) &&
4802
(o.result.responseHeaders["Last-Modified"] ||
4803
o.result.responseHeaders.ETag)
4804
) {
4805
var a = new XMLHttpRequest();
4806
a.open("HEAD", o.result.url),
4807
(a.onload = function () {
4808
(o.revalidated = ["Last-Modified", "ETag"].every(
4809
function (e) {
4810
return (
4811
!o.result.responseHeaders[e] ||
4812
o.result.responseHeaders[e] ==
4813
a.getResponseHeader(e)
4814
);
4815
}
4816
)),
4817
o.revalidated
4818
? ((o.result.revalidated = o.result.accessed),
4819
l.execute(s.name, "put", [o.result]),
4820
n.dispatchEvent(new Event("load")),
4821
e(
4822
"'" +
4823
o.result.url +
4824
"' successfully revalidated and served from the indexedDB cache"
4825
))
4826
: n.send.apply(n, i);
4827
}),
4828
a.send();
4829
} else
4830
o.result.responseHeaders["Last-Modified"]
4831
? (n.setRequestHeader(
4832
"If-Modified-Since",
4833
o.result.responseHeaders["Last-Modified"]
4834
),
4835
n.setRequestHeader("Cache-Control", "no-cache"))
4836
: o.result.responseHeaders.ETag &&
4837
(n.setRequestHeader(
4838
"If-None-Match",
4839
o.result.responseHeaders.ETag
4840
),
4841
n.setRequestHeader("Cache-Control", "no-cache")),
4842
n.send.apply(n, i);
4843
},
4844
function (e) {
4845
n.send.apply(n, i);
4846
}
4847
)
4848
: n.send.apply(n, i)
4849
);
4850
}),
4851
(i.prototype.open = function (e, r, n, i, a) {
4852
return (
4853
(this.cache.result = o(
4854
t(r),
4855
this.cache.company,
4856
this.cache.product,
4857
Date.now()
4858
)),
4859
(this.cache.enabled =
4860
["must-revalidate", "immutable"].indexOf(this.cache.control) !=
4861
-1 &&
4862
"GET" == e &&
4863
this.cache.result.url.match("^https?://") &&
4864
("undefined" == typeof n || n) &&
4865
"undefined" == typeof i &&
4866
"undefined" == typeof a),
4867
(this.cache.revalidated = !1),
4868
this.xhr.open.apply(this.xhr, arguments)
4869
);
4870
}),
4871
(i.prototype.setRequestHeader = function (e, t) {
4872
return (
4873
(this.cache.enabled = !1),
4874
this.xhr.setRequestHeader.apply(this.xhr, arguments)
4875
);
4876
});
4877
var u = new XMLHttpRequest();
4878
for (var c in u)
4879
i.prototype.hasOwnProperty(c) ||
4880
!(function (e) {
4881
Object.defineProperty(
4882
i.prototype,
4883
e,
4884
"function" == typeof u[e]
4885
? {
4886
value: function () {
4887
return this.xhr[e].apply(this.xhr, arguments);
4888
},
4889
}
4890
: {
4891
get: function () {
4892
return this.cache.revalidated &&
4893
this.cache.result.xhr.hasOwnProperty(e)
4894
? this.cache.result.xhr[e]
4895
: this.xhr[e];
4896
},
4897
set: function (t) {
4898
this.xhr[e] = t;
4899
},
4900
}
4901
);
4902
})(c);
4903
return {
4904
XMLHttpRequest: i,
4905
WebAssembly: {
4906
get: function (e, r) {
4907
var n = { url: t(e), version: d.version, module: null, md5: null };
4908
l.execute(
4909
d.name,
4910
"get",
4911
[n.url],
4912
function (e) {
4913
r(e && e.version == d.version ? e : n);
4914
},
4915
function () {
4916
r(n);
4917
}
4918
);
4919
},
4920
put: function (e, t, r) {
4921
l.execute(d.name, "put", [e, e.url], t, r);
4922
},
4923
},
4924
};
4925
})(),
4926
};
4927