-
Notifications
You must be signed in to change notification settings - Fork 2
/
worker.js
executable file
·428 lines (371 loc) · 221 KB
/
worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
try {
/**
* We include the entirety of the scrypt and sha256() cryptoJS javascript in the worker, as workers are very limited
* into what they can get from the main page.
*/
/**
* Scrypt module factory, found here: https://github.com/tonyg/js-scrypt
* @param {integer} requested_total_memory
* @returns {scrypt_module_factory.scrypt._L5.e}
*/
var scrypt_module_factory = function (requested_total_memory) { function g(e) { throw e } function aa() { return function () { } } function ia(a) { eval.call(m, a) } function ja() { return u } function ka(e) { u = e } function la(e) { if (1 == ma) { return 1 } var t = { "%i1": 1, "%i8": 1, "%i16": 2, "%i32": 4, "%i64": 8, "%float": 4, "%double": 8 }["%" + e]; t || ("*" == e.charAt(e.length - 1) ? t = ma : "i" == e[0] && (e = parseInt(e.substr(1)), w(0 == e % 8), t = e / 8)); return t } function na(e, t, n) { n && n.length ? (n.splice || (n = Array.prototype.slice.call(n)), n.splice(0, 0, t), s["dynCall_" + e].apply(m, n)) : s["dynCall_" + e].call(m, t) } function pa() { var e = [], t = 0; this.oa = function (n) { n &= 255; t && (e.push(n), t--); if (0 == e.length) { if (128 > n) { return String.fromCharCode(n) } e.push(n); t = 191 < n && 224 > n ? 1 : 2; return "" } if (0 < t) { return "" } var n = e[0], r = e[1], i = e[2], n = 191 < n && 224 > n ? String.fromCharCode((n & 31) << 6 | r & 63) : String.fromCharCode((n & 15) << 12 | (r & 63) << 6 | i & 63); e.length = 0; return n }; this.yb = function (e) { for (var e = unescape(encodeURIComponent(e)), t = [], n = 0; n < e.length; n++) { t.push(e.charCodeAt(n)) } return t } } function qa(e) { var t = u; u = u + e | 0; u = u + 7 >> 3 << 3; return t } function ra(e) { var t = sa; sa = sa + e | 0; sa = sa + 7 >> 3 << 3; return t } function ua(e) { var t = z; z = z + e | 0; z = z + 7 >> 3 << 3; z >= va && wa("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value, or (2) set Module.TOTAL_MEMORY before the program runs."); return t } function xa(e, t) { return Math.ceil(e / (t ? t : 8)) * (t ? t : 8) } function w(e, t) { e || wa("Assertion failed: " + t) } function Ca(a) { try { var b = s["_" + a]; b || (b = eval("_" + a)) } catch (c) { } w(b, "Cannot call unknown function " + a + " (perhaps LLVM optimizations or closure removed it?)"); return b } function Ba(e, t, n, r) { function i(e, t) { if ("string" == t) { if (e === m || e === k || 0 === e) { return 0 } s || (s = ja()); var n = qa(e.length + 1); Da(e, n); return n } return "array" == t ? (s || (s = ja()), n = qa(e.length), Ea(e, n), n) : e } var s = 0, o = 0, r = r ? r.map(function (e) { return i(e, n[o++]) }) : []; e = e.apply(m, r); "string" == t ? t = Fa(e) : (w("array" != t), t = e); s && ka(s); return t } function Ga(e, t, n) { n = n || "i8"; "*" === n.charAt(n.length - 1) && (n = "i32"); switch (n) { case "i1": A[e] = t; break; case "i8": A[e] = t; break; case "i16": Ha[e >> 1] = t; break; case "i32": B[e >> 2] = t; break; case "i64": Aa = [t >>> 0, (Math.min(+Math.floor(t / 4294967296), 4294967295) | 0) >>> 0]; B[e >> 2] = Aa[0]; B[e + 4 >> 2] = Aa[1]; break; case "float": Ia[e >> 2] = t; break; case "double": Ja[e >> 3] = t; break; default: wa("invalid type for setValue: " + n) } } function F(e, t, n, r) { var i, s; "number" === typeof e ? (i = l, s = e) : (i = p, s = e.length); var o = "string" === typeof t ? t : m, n = n == Na ? r : [Oa, qa, ra, ua][n === k ? E : n](Math.max(s, o ? 1 : t.length)); if (i) { r = n; w(0 == (n & 3)); for (e = n + (s & -4); r < e; r += 4) { B[r >> 2] = 0 } for (e = n + s; r < e;) { A[r++ | 0] = 0 } return n } if ("i8" === o) { return e.subarray || e.slice ? G.set(e, n) : G.set(new Uint8Array(e), n), n } for (var r = 0, u, a; r < s;) { var f = e[r]; "function" === typeof f && (f = ya.fe(f)); i = o || t[r]; 0 === i ? r++ : ("i64" == i && (i = "i32"), Ga(n + r, f, i), a !== i && (u = la(i), a = i), r += u) } return n } function Fa(e, t) { for (var n = p, r, i = 0; ;) { r = G[e + i | 0]; if (128 <= r) { n = l } else { if (0 == r && !t) { break } } i++; if (t && i == t) { break } } t || (t = i); var s = ""; if (!n) { for (; 0 < t;) { r = String.fromCharCode.apply(String, G.subarray(e, e + Math.min(t, 1024))), s = s ? s + r : r, e += 1024, t -= 1024 } return s } n = new pa; for (i = 0; i < t; i++) { r = G[e + i | 0], s += n.oa(r) } return s } function Va(e) { for (; 0 < e.length;) { var t = e.shift(); if ("function" == typeof t) { t() } else { var n = t.V; "number" === typeof n ? t.ha === k ? na("v", n) : na("vi", n, [t.ha]) : n(t.ha === k ? m : t.ha) } } } function bb(e) { Wa.unshift(e) } function cb(e) { $a.unshift(e) } function J(e, t, n) { e = (new pa).yb(e); n && (e.length = n); t || e.push(0); return e } function Da(e, t, n) { e = J(e, n); for (n = 0; n < e.length;) { A[t + n | 0] = e[n], n += 1 } } function Ea(e, t) { for (var n = 0; n < e.length; n++) { A[t + n | 0] = e[n] } } function db(e, t) { return 0 <= e ? e : 32 >= t ? 2 * Math.abs(1 << t - 1) + e : Math.pow(2, t) + e } function eb(e, t) { if (0 >= e) { return e } var n = 32 >= t ? Math.abs(1 << t - 1) : Math.pow(2, t - 1); if (e >= n && (32 >= t || e > n)) { e = -2 * n + e } return e } function ib(e) { L++; s.monitorRunDependencies && s.monitorRunDependencies(L); e ? (w(!fb[e]), fb[e] = 1) : s.P("warning: run dependency added without ID") } function jb(e) { L--; s.monitorRunDependencies && s.monitorRunDependencies(L); e ? (w(fb[e]), delete fb[e]) : s.P("warning: run dependency removed without ID"); 0 == L && (hb !== m && (clearInterval(hb), hb = m), !gb && kb && lb()) } function M(e) { return B[rb >> 2] = e } function vb(e, t, n) { var r = O(e, { parent: l }).d, e = "/" === e ? "/" : wb(e)[2], i = xb(r, e); i && g(new Q(i)); r.l.Ta || g(new Q(N.L)); return r.l.Ta(r, e, t, n) } function yb(e, t) { t = t & 4095 | 32768; return vb(e, t, 0) } function zb(e, t) { t = t & 1023 | 16384; return vb(e, t, 0) } function Ab(e, t, n) { return vb(e, t | 8192, n) } function Bb(e, t) { var n = O(t, { parent: l }).d, r = "/" === t ? "/" : wb(t)[2], i = xb(n, r); i && g(new Q(i)); n.l.Wa || g(new Q(N.L)); return n.l.Wa(n, r, e) } function Cb(e, t) { var n; n = "string" === typeof e ? O(e, { N: l }).d : e; n.l.Y || g(new Q(N.L)); n.l.Y(n, { mode: t & 4095 | n.mode & -4096, timestamp: Date.now() }) } function Db(e, t) { var n, e = Eb(e), r; "string" === typeof t ? (r = Fb[t], "undefined" === typeof r && g(Error("Unknown file open mode: " + t))) : r = t; t = r; n = t & 512 ? n & 4095 | 32768 : 0; var i; try { var s = O(e, { N: !(t & 65536) }); i = s.d; e = s.path } catch (o) { } t & 512 && (i ? t & 2048 && g(new Q(N.va)) : i = vb(e, n, 0)); i || g(new Q(N.ca)); 8192 === (i.mode & 61440) && (t &= -1025); i ? 40960 === (i.mode & 61440) ? n = N.ba : 16384 === (i.mode & 61440) && (0 !== (t & 3) || t & 1024) ? n = N.aa : (n = ["r", "w", "rw"][t & 3], t & 1024 && (n += "w"), n = Gb(i, n)) : n = N.ca; n && g(new Q(n)); t & 1024 && (n = i, n = "string" === typeof n ? O(n, { N: l }).d : n, n.l.Y || g(new Q(N.L)), 16384 === (n.mode & 61440) && g(new Q(N.aa)), 32768 !== (n.mode & 61440) && g(new Q(N.A)), (s = Gb(n, "w")) && g(new Q(s)), n.l.Y(n, { size: 0, timestamp: Date.now() })); var u = { path: e, d: i, M: t, seekable: l, position: 0, e: i.e, Gb: [], error: p }, a; e: { i = k || 4096; for (n = k || 1; n <= i; n++) { if (!R[n]) { a = n; break e } } g(new Q(N.Za)) } u.s = a; Object.defineProperty(u, "object", { get: function () { return u.d }, set: function (e) { u.d = e } }); Object.defineProperty(u, "isRead", { get: function () { return 1 !== (u.M & 3) } }); Object.defineProperty(u, "isWrite", { get: function () { return 0 !== (u.M & 3) } }); Object.defineProperty(u, "isAppend", { get: function () { return u.M & 8 } }); R[a] = u; u.e.open && u.e.open(u); return u } function Hb(e) { try { e.e.close && e.e.close(e) } catch (t) { g(t) } finally { R[e.s] = m } } function Ib(e, t, n, r, i) { (0 > r || 0 > i) && g(new Q(N.A)); 0 === (e.M & 3) && g(new Q(N.$)); 16384 === (e.d.mode & 61440) && g(new Q(N.aa)); e.e.write || g(new Q(N.A)); var s = l; "undefined" === typeof i ? (i = e.position, s = p) : e.seekable || g(new Q(N.da)); e.M & 8 && ((!e.seekable || !e.e.na) && g(new Q(N.da)), e.e.na(e, 0, 2)); t = e.e.write(e, t, n, r, i); s || (e.position += t); return t } function wb(e) { return /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1) } function Jb(e, t) { for (var n = 0, r = e.length - 1; 0 <= r; r--) { var i = e[r]; "." === i ? e.splice(r, 1) : ".." === i ? (e.splice(r, 1), n++) : n && (e.splice(r, 1), n--) } if (t) { for (; n--; n) { e.unshift("..") } } return e } function Eb(e) { var t = "/" === e.charAt(0), n = "/" === e.substr(-1), e = Jb(e.split("/").filter(function (e) { return !!e }), !t).join("/"); !e && !t && (e = "."); e && n && (e += "/"); return (t ? "/" : "") + e } function S() { var e = Array.prototype.slice.call(arguments, 0); return Eb(e.filter(function (e) { "string" !== typeof e && g(new TypeError("Arguments to path.join must be strings")); return e }).join("/")) } function Kb() { for (var e = "", t = p, n = arguments.length - 1; -1 <= n && !t; n--) { var r = 0 <= n ? arguments[n] : "/"; "string" !== typeof r && g(new TypeError("Arguments to path.resolve must be strings")); r && (e = r + "/" + e, t = "/" === r.charAt(0)) } e = Jb(e.split("/").filter(function (e) { return !!e }), !t).join("/"); return (t ? "/" : "") + e || "." } function Mb(e, t) { Lb[e] = { input: [], H: [], O: t }; Nb[e] = { e: Ob } } function Q(e) { this.mb = e; for (var t in N) { if (N[t] === e) { this.code = t; break } } this.message = ub[e] } function Zb(e) { e instanceof Q || g(e + " : " + Error().stack); M(e.mb) } function $b(e, t) { for (var n = 0, r = 0; r < t.length; r++) { n = (n << 5) - n + t.charCodeAt(r) | 0 } return (e + n) % Xb.length } function Sb(e, t) { var n = Gb(e, "x"); n && g(new Q(n)); for (n = Xb[$b(e.id, t)]; n; n = n.wb) { if (n.parent.id === e.id && n.name === t) { return n } } return e.l.tb(e, t) } function Qb(e, t, n, r) { var i = { id: Wb++, name: t, mode: n, l: {}, e: {}, X: r, parent: m, z: m }; e || (e = i); i.parent = e; i.z = e.z; Object.defineProperty(i, "read", { get: function () { return 365 === (i.mode & 365) }, set: function (e) { e ? i.mode |= 365 : i.mode &= -366 } }); Object.defineProperty(i, "write", { get: function () { return 146 === (i.mode & 146) }, set: function (e) { e ? i.mode |= 146 : i.mode &= -147 } }); e = $b(i.parent.id, i.name); i.wb = Xb[e]; return Xb[e] = i } function O(e, t) { e = Kb("/", e); t = t || { pa: 0 }; 8 < t.pa && g(new Q(N.ba)); for (var n = Jb(e.split("/").filter(function (e) { return !!e }), p), r = Vb, i = "/", s = 0; s < n.length; s++) { var o = s === n.length - 1; if (o && t.parent) { break } r = Sb(r, n[s]); i = S(i, n[s]); r.ub && (r = r.z.root); if (!o || t.N) { for (o = 0; 40960 === (r.mode & 61440);) { r = O(i, { N: p }).d; r.l.Va || g(new Q(N.A)); var r = r.l.Va(r), u = Kb; var a = wb(i), i = a[0], a = a[1]; !i && !a ? i = "." : (a && (a = a.substr(0, a.length - 1)), i += a); i = u(i, r); r = O(i, { pa: t.pa }).d; 40 < o++ && g(new Q(N.ba)) } } } return { path: i, d: r } } function ac(e) { for (var t; ;) { if (e === e.parent) { return t ? S(e.z.Ua, t) : e.z.Ua } t = t ? S(e.name, t) : e.name; e = e.parent } } function Gb(e, t) { return Yb ? 0 : -1 !== t.indexOf("r") && !(e.mode & 292) || -1 !== t.indexOf("w") && !(e.mode & 146) || -1 !== t.indexOf("x") && !(e.mode & 73) ? N.Ya : 0 } function xb(e, t) { try { return Sb(e, t), N.va } catch (n) { } return Gb(e, "wx") } function cc(e, t) { var n = 0; e && (n |= 365); t && (n |= 146); return n } function dc(e, t, n, r, i) { e = S("string" === typeof e ? e : ac(e), t); r = cc(r, i); i = yb(e, r); if (n) { if ("string" === typeof n) { for (var t = Array(n.length), s = 0, o = n.length; s < o; ++s) { t[s] = n.charCodeAt(s) } n = t } Cb(e, r | 146); t = Db(e, "w"); Ib(t, n, 0, n.length, 0); Hb(t); Cb(e, r) } return i } function ec(e, t, n, r) { e = S("string" === typeof e ? e : ac(e), t); ec.Sa || (ec.Sa = 64); t = ec.Sa++ << 8 | 0; Nb[t] = { e: { open: function (e) { e.seekable = p }, close: function () { r && r.buffer && r.buffer.length && r(10) }, Q: function (e, t, r, i) { for (var s = 0, o = 0; o < i; o++) { var u; try { u = n() } catch (a) { g(new Q(N.I)) } u === k && 0 === s && g(new Q(N.ua)); if (u === m || u === k) { break } s++; t[r + o] = u } s && (e.d.timestamp = Date.now()); return s }, write: function (e, t, n, i) { for (var s = 0; s < i; s++) { try { r(t[n + s]) } catch (o) { g(new Q(N.I)) } } i && (e.d.timestamp = Date.now()); return s } } }; return Ab(e, n && r ? 511 : n ? 219 : 365, t) } function fc(e, t, n) { e = R[e]; if (!e) { return -1 } e.sender(G.subarray(t, t + n)); return n } function gc(e, t, n) { var r = R[e]; if (!r) { return M(N.$), -1 } if (r && "socket" in r) { return fc(e, t, n) } try { return Ib(r, A, t, n) } catch (i) { return Zb(i), -1 } } function hc(e, t, n, r) { n *= t; if (0 == n) { return 0 } e = gc(r, e, n); if (-1 == e) { if (t = R[r]) { t.error = l } return 0 } return Math.floor(e / t) } function jc(e) { return 0 > e || 0 === e && -Infinity === 1 / e } function kc(e, t) { function n(e) { var n; "double" === e ? n = Ja[t + i >> 3] : "i64" == e ? (n = [B[t + i >> 2], B[t + (i + 8) >> 2]], i += 8) : (e = "i32", n = B[t + i >> 2]); i += Math.max(Math.max(la(e), ma), 8); return n } for (var r = e, i = 0, s = [], o, u; ;) { var a = r; o = A[r]; if (0 === o) { break } u = A[r + 1 | 0]; if (37 == o) { var f = p, c = p, h = p, d = p; e: for (; ;) { switch (u) { case 43: f = l; break; case 45: c = l; break; case 35: h = l; break; case 48: if (d) { break e } else { d = l; break }; default: break e }r++; u = A[r + 1 | 0] } var v = 0; if (42 == u) { v = n("i32"), r++, u = A[r + 1 | 0] } else { for (; 48 <= u && 57 >= u;) { v = 10 * v + (u - 48), r++, u = A[r + 1 | 0] } } var g = p; if (46 == u) { var y = 0, g = l; r++; u = A[r + 1 | 0]; if (42 == u) { y = n("i32"), r++ } else { for (; ;) { u = A[r + 1 | 0]; if (48 > u || 57 < u) { break } y = 10 * y + (u - 48); r++ } } u = A[r + 1 | 0] } else { y = 6 } var b; switch (String.fromCharCode(u)) { case "h": u = A[r + 2 | 0]; 104 == u ? (r++, b = 1) : b = 2; break; case "l": u = A[r + 2 | 0]; 108 == u ? (r++, b = 8) : b = 4; break; case "L": ; case "q": ; case "j": b = 8; break; case "z": ; case "t": ; case "I": b = 4; break; default: b = m }b && r++; u = A[r + 1 | 0]; switch (String.fromCharCode(u)) { case "d": ; case "i": ; case "u": ; case "o": ; case "x": ; case "X": ; case "p": a = 100 == u || 105 == u; b = b || 4; var w = o = n("i" + 8 * b), E; 8 == b && (o = 117 == u ? +(o[0] >>> 0) + 4294967296 * +(o[1] >>> 0) : +(o[0] >>> 0) + 4294967296 * +(o[1] | 0)); 4 >= b && (o = (a ? eb : db)(o & Math.pow(256, b) - 1, 8 * b)); var S = Math.abs(o), a = ""; if (100 == u || 105 == u) { E = 8 == b && lc ? lc.stringify(w[0], w[1], m) : eb(o, 8 * b).toString(10) } else { if (117 == u) { E = 8 == b && lc ? lc.stringify(w[0], w[1], l) : db(o, 8 * b).toString(10), o = Math.abs(o) } else { if (111 == u) { E = (h ? "0" : "") + S.toString(8) } else { if (120 == u || 88 == u) { a = h && 0 != o ? "0x" : ""; if (8 == b && lc) { if (w[1]) { E = (w[1] >>> 0).toString(16); for (h = (w[0] >>> 0).toString(16); 8 > h.length;) { h = "0" + h } E += h } else { E = (w[0] >>> 0).toString(16) } } else { if (0 > o) { o = -o; E = (S - 1).toString(16); w = []; for (h = 0; h < E.length; h++) { w.push((15 - parseInt(E[h], 16)).toString(16)) } for (E = w.join(""); E.length < 2 * b;) { E = "f" + E } } else { E = S.toString(16) } } 88 == u && (a = a.toUpperCase(), E = E.toUpperCase()) } else { 112 == u && (0 === S ? E = "(nil)" : (a = "0x", E = S.toString(16))) } } } } if (g) { for (; E.length < y;) { E = "0" + E } } for (f && (a = 0 > o ? "-" + a : "+" + a); a.length + E.length < v;) { c ? E += " " : d ? E = "0" + E : a = " " + a } E = a + E; E.split("").forEach(function (e) { s.push(e.charCodeAt(0)) }); break; case "f": ; case "F": ; case "e": ; case "E": ; case "g": ; case "G": o = n("double"); if (isNaN(o)) { E = "nan", d = p } else { if (isFinite(o)) { g = p; b = Math.min(y, 20); if (103 == u || 71 == u) { g = l, y = y || 1, b = parseInt(o.toExponential(b).split("e")[1], 10), y > b && -4 <= b ? (u = (103 == u ? "f" : "F").charCodeAt(0), y -= b + 1) : (u = (103 == u ? "e" : "E").charCodeAt(0), y--), b = Math.min(y, 20) } if (101 == u || 69 == u) { E = o.toExponential(b), /[eE][-+]\d$/.test(E) && (E = E.slice(0, -1) + "0" + E.slice(-1)) } else { if (102 == u || 70 == u) { E = o.toFixed(b), 0 === o && jc(o) && (E = "-" + E) } } a = E.split("e"); if (g && !h) { for (; 1 < a[0].length && -1 != a[0].indexOf(".") && ("0" == a[0].slice(-1) || "." == a[0].slice(-1));) { a[0] = a[0].slice(0, -1) } } else { for (h && -1 == E.indexOf(".") && (a[0] += "."); y > b++;) { a[0] += "0" } } E = a[0] + (1 < a.length ? "e" + a[1] : ""); 69 == u && (E = E.toUpperCase()); f && 0 <= o && (E = "+" + E) } else { E = (0 > o ? "-" : "") + "inf", d = p } } for (; E.length < v;) { E = c ? E + " " : d && ("-" == E[0] || "+" == E[0]) ? E[0] + "0" + E.slice(1) : (d ? "0" : " ") + E } 97 > u && (E = E.toUpperCase()); E.split("").forEach(function (e) { s.push(e.charCodeAt(0)) }); break; case "s": d = (f = n("i8*")) ? ic(f) : 6; g && (d = Math.min(d, y)); if (!c) { for (; d < v--;) { s.push(32) } } if (f) { for (h = 0; h < d; h++) { s.push(G[f++ | 0]) } } else { s = s.concat(J("(null)".substr(0, d), l)) } if (c) { for (; d < v--;) { s.push(32) } } break; case "c": for (c && s.push(n("i8")); 0 < --v;) { s.push(32) } c || s.push(n("i8")); break; case "n": c = n("i32*"); B[c >> 2] = s.length; break; case "%": s.push(o); break; default: for (h = a; h < r + 2; h++) { s.push(A[h]) } }r += 2 } else { s.push(o), r += 1 } } return s } function mc(e, t, n) { n = kc(t, n); t = ja(); e = hc(F(n, "i8", La), 1, n.length, e); ka(t); return e } function nc(e) { nc.ia || (z = z + 4095 >> 12 << 12, nc.ia = l, w(ua), nc.hb = ua, ua = function () { wa("cannot dynamically allocate, sbrk now has control") }); var t = z; 0 != e && nc.hb(e); return t } function U() { return B[U.m >> 2] } function oc() { return !!oc.ta } function pc(e) { var t = p; try { e == __ZTIi && (t = l) } catch (n) { } try { e == __ZTIj && (t = l) } catch (r) { } try { e == __ZTIl && (t = l) } catch (i) { } try { e == __ZTIm && (t = l) } catch (s) { } try { e == __ZTIx && (t = l) } catch (o) { } try { e == __ZTIy && (t = l) } catch (u) { } try { e == __ZTIf && (t = l) } catch (a) { } try { e == __ZTId && (t = l) } catch (f) { } try { e == __ZTIe && (t = l) } catch (c) { } try { e == __ZTIc && (t = l) } catch (h) { } try { e == __ZTIa && (t = l) } catch (d) { } try { e == __ZTIh && (t = l) } catch (v) { } try { e == __ZTIs && (t = l) } catch (m) { } try { e == __ZTIt && (t = l) } catch (g) { } return t } function qc(e, t, n) { if (0 == n) { return p } if (0 == t || t == e) { return l } switch (pc(t) ? t : B[B[t >> 2] - 8 >> 2]) { case 0: return 0 == B[B[e >> 2] - 8 >> 2] ? qc(B[e + 8 >> 2], B[t + 8 >> 2], n) : p; case 1: return p; case 2: return qc(e, B[t + 8 >> 2], n); default: return p } } function rc(e, t, n) { if (!rc.sb) { try { B[__ZTVN10__cxxabiv119__pointer_type_infoE >> 2] = 0 } catch (r) { } try { B[pb >> 2] = 1 } catch (i) { } try { B[ob >> 2] = 2 } catch (s) { } rc.sb = l } B[U.m >> 2] = e; B[U.m + 4 >> 2] = t; B[U.m + 8 >> 2] = n; "uncaught_exception" in oc ? oc.ta++ : oc.ta = 1; g(e + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.") } function sc(e) { try { return tc(e) } catch (t) { } } function uc() { if (uc.Bb) { uc.Bb = p } else { V.setThrew(0); B[U.m + 4 >> 2] = 0; var e = B[U.m >> 2], t = B[U.m + 8 >> 2]; t && (na("vi", t, [e]), B[U.m + 8 >> 2] = 0); e && (sc(e), B[U.m >> 2] = 0) } } function wc(e) { var t, n; wc.ia ? (n = B[vc >> 2], t = B[n >> 2]) : (wc.ia = l, W.USER = "root", W.PATH = "/", W.PWD = "/", W.HOME = "/home/emscripten", W.LANG = "en_US.UTF-8", W._ = "./this.program", t = F(1024, "i8", E), n = F(256, "i8*", E), B[n >> 2] = t, B[vc >> 2] = n); var r = [], i = 0, s; for (s in e) { if ("string" === typeof e[s]) { var o = s + "=" + e[s]; r.push(o); i += o.length } } 1024 < i && g(Error("Environment size exceeded TOTAL_ENV_SIZE!")); for (e = 0; e < r.length; e++) { o = r[e]; for (i = 0; i < o.length; i++) { A[t + i | 0] = o.charCodeAt(i) } A[t + i | 0] = 0; B[n + 4 * e >> 2] = t; t += o.length + 1 } B[n + 4 * r.length >> 2] = 0 } function xc(e) { if (0 === e) { return 0 } e = Fa(e); if (!W.hasOwnProperty(e)) { return 0 } xc.J && tc(xc.J); xc.J = F(J(W[e]), "i8", Ka); return xc.J } function yc(e, t, n) { if (e in ub) { if (ub[e].length > n - 1) { return M(N.ab) } e = ub[e]; for (n = 0; n < e.length; n++) { A[t + n | 0] = e.charCodeAt(n) } return A[t + n | 0] = 0 } return M(N.A) } function zc(e) { zc.buffer || (zc.buffer = Oa(256)); yc(e, zc.buffer, 256); return zc.buffer } function Ac(e) { s.exit(e) } function Bc(e, t) { var n = db(e & 255); A[Bc.J | 0] = n; if (-1 == gc(t, Bc.J, 1)) { if (n = R[t]) { n.error = l } return -1 } return n } function Ic(e) { return { jpg: "image/jpeg", jpeg: "image/jpeg", png: "image/png", bmp: "image/bmp", ogg: "audio/ogg", wav: "audio/wav", mp3: "audio/mpeg" }[e.substr(e.lastIndexOf(".") + 1)] } function Kc() { var e = s.canvas; Jc.forEach(function (t) { t(e.width, e.height) }) } function Lc() { var e = s.canvas; this.Ib = e.width; this.Hb = e.height; e.width = screen.width; e.height = screen.height; "undefined" != typeof SDL && (e = Qa[SDL.screen + 0 * ma >> 2], B[SDL.screen + 0 * ma >> 2] = e | 8388608); Kc() } function Mc() { var e = s.canvas; e.width = this.Ib; e.height = this.Hb; "undefined" != typeof SDL && (e = Qa[SDL.screen + 0 * ma >> 2], B[SDL.screen + 0 * ma >> 2] = e & -8388609); Kc() } function X(e, t) { e != m && ("number" == typeof e ? this.p(e) : t == m && "string" != typeof e ? this.k(e, 256) : this.k(e, t)) } function Yc() { return new X(m) } function Zc(e, t) { var n = $c[e.charCodeAt(t)]; return n == m ? -1 : n } function ad(e) { var t = Yc(); t.D(e); return t } function Y(e, t) { this.h = e | 0; this.j = t | 0 } function lb(e) { function t() { ab || (ab = l, Va(Xa)); Va(Ya); gb = l; s._main && kb && s.callMain(e); if (s.postRun) { for ("function" == typeof s.postRun && (s.postRun = [s.postRun]); s.postRun.length;) { cb(s.postRun.shift()) } } Va($a) } e = e || s.arguments; if (0 < L) { s.P("run() called, but dependencies remain, so not running") } else { if (s.preRun) { for ("function" == typeof s.preRun && (s.preRun = [s.preRun]); s.preRun.length;) { bb(s.preRun.shift()) } } Va(Wa); 0 < L || (s.setStatus ? (s.setStatus("Running..."), setTimeout(function () { setTimeout(function () { s.setStatus("") }, 1); za || t() }, 1)) : t()) } } function ed(e) { za = l; u = cd; Va(Za); dd && g({ type: "ExitStatus", value: e }) } function wa(e) { e && s.print(e); za = l; g("abort() at " + Error().stack) } var Module = { TOTAL_MEMORY: requested_total_memory || 33554432 }; var scrypt_raw = Module; var k = void 0, l = !0, m = null, p = !1; var q, s; s || (s = eval("(function() { try { return Module || {} } catch(e) { return {} } })()")); var ba = {}, t; for (t in s) { s.hasOwnProperty(t) && (ba[t] = s[t]) } var ca = "object" === typeof process && "function" === typeof require, da = "object" === typeof window, ea = "function" === typeof importScripts, fa = !da && !ca && !ea; if (ca) { s.print = function (e) { process.stdout.write(e + "\n") }; s.printErr = function (e) { process.stderr.write(e + "\n") }; var ga = require("fs"), ha = require("path"); s.read = function (e, t) { var e = ha.normalize(e), n = ga.readFileSync(e); !n && e != ha.resolve(e) && (e = path.join(__dirname, "..", "src", e), n = ga.readFileSync(e)); n && !t && (n = n.toString()); return n }; s.readBinary = function (e) { return s.read(e, l) }; s.load = function (e) { ia(read(e)) }; s.arguments = process.argv.slice(2); module.ee = s } else { fa ? (s.print = print, "undefined" != typeof printErr && (s.printErr = printErr), s.read = read, s.readBinary = function (e) { return read(e, "binary") }, "undefined" != typeof scriptArgs ? s.arguments = scriptArgs : "undefined" != typeof arguments && (s.arguments = arguments), this.Module = s) : da || ea ? (s.read = function (e) { var t = new XMLHttpRequest; t.open("GET", e, p); t.send(m); return t.responseText }, "undefined" != typeof arguments && (s.arguments = arguments), da ? (s.print = function (e) { console.log(e) }, s.printErr = function (e) { console.log(e) }, this.Module = s) : ea && (s.print = aa(), s.load = importScripts)) : g("Unknown runtime environment. Where are we?") } "undefined" == !s.load && s.read && (s.load = function (e) { ia(s.read(e)) }); s.print || (s.print = aa()); s.printErr || (s.printErr = s.print); s.arguments || (s.arguments = []); s.print = s.print; s.P = s.printErr; s.preRun = []; s.postRun = []; for (t in ba) { ba.hasOwnProperty(t) && (s[t] = ba[t]) } var oa; var ma = 4, ya = {}, za = p, Aa; s.ccall = function (e, t, n, r) { return Ba(Ca(e), t, n, r) }; s.cwrap = function (e, t, n) { var r = Ca(e); return function () { return Ba(r, t, n, Array.prototype.slice.call(arguments)) } }; s.setValue = Ga; s.getValue = function (e, t) { t = t || "i8"; "*" === t.charAt(t.length - 1) && (t = "i32"); switch (t) { case "i1": return A[e]; case "i8": return A[e]; case "i16": return Ha[e >> 1]; case "i32": return B[e >> 2]; case "i64": return B[e >> 2]; case "float": return Ia[e >> 2]; case "double": return Ja[e >> 3]; default: wa("invalid type for setValue: " + t) }return m }; var Ka = 0, La = 1, E = 2, Na = 4; s.ALLOC_NORMAL = Ka; s.ALLOC_STACK = La; s.ALLOC_STATIC = E; s.ALLOC_DYNAMIC = 3; s.ALLOC_NONE = Na; s.allocate = F; s.Pointer_stringify = Fa; var A, G, Ha, Pa, B, Qa, Ia, Ja, Ra = 0, sa = 0, Sa = 0, u = 0, Ta = 0, Ua = 0, z = 0, va = s.TOTAL_MEMORY || 33554432; w(!!Int32Array && !!Float64Array && !!(new Int32Array(1)).subarray && !!(new Int32Array(1)).set, "Cannot fallback to non-typed array case: Code is too specialized"); var I = new ArrayBuffer(va); A = new Int8Array(I); Ha = new Int16Array(I); B = new Int32Array(I); G = new Uint8Array(I); Pa = new Uint16Array(I); Qa = new Uint32Array(I); Ia = new Float32Array(I); Ja = new Float64Array(I); B[0] = 255; w(255 === G[0] && 0 === G[3], "Typed arrays 2 must be run on a little-endian system"); s.HEAP = k; s.HEAP8 = A; s.HEAP16 = Ha; s.HEAP32 = B; s.HEAPU8 = G; s.HEAPU16 = Pa; s.HEAPU32 = Qa; s.HEAPF32 = Ia; s.HEAPF64 = Ja; var Wa = [], Xa = [], Ya = [], Za = [], $a = [], ab = p; s.addOnPreRun = s.Vd = bb; s.addOnInit = s.Sd = function (e) { Xa.unshift(e) }; s.addOnPreMain = s.Ud = function (e) { Ya.unshift(e) }; s.addOnExit = s.Rd = function (e) { Za.unshift(e) }; s.addOnPostRun = s.Td = cb; s.intArrayFromString = J; s.intArrayToString = function (e) { for (var t = [], n = 0; n < e.length; n++) { var r = e[n]; 255 < r && (r &= 255); t.push(String.fromCharCode(r)) } return t.join("") }; s.writeStringToMemory = Da; s.writeArrayToMemory = Ea; Math.imul || (Math.imul = function (e, t) { var n = e & 65535, r = t & 65535; return n * r + ((e >>> 16) * r + n * (t >>> 16) << 16) | 0 }); Math.ie = Math.imul; var L = 0, fb = {}, gb = p, hb = m; s.addRunDependency = ib; s.removeRunDependency = jb; s.preloadedImages = {}; s.preloadedAudios = {}; Ra = 8; sa = Ra + 1312; Xa.push({ V: function () { mb() } }); var nb, ob, pb; nb = nb = F([0, 0, 0, 0, 0, 0, 0, 0], "i8", E); ob = ob = F([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", E); pb = pb = F([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", E); F([111, 112, 116, 105, 111, 110, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 45, 45, 32, 37, 115, 0, 0, 0, 0, 0, 0, 0, 111, 112, 116, 105, 111, 110, 32, 114, 101, 113, 117, 105, 114, 101, 115, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 45, 45, 32, 37, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 64, 0, 0, 0, 0, 0, 0, 89, 64, 0, 0, 0, 0, 0, 136, 195, 64, 0, 0, 0, 0, 132, 215, 151, 65, 0, 128, 224, 55, 121, 195, 65, 67, 23, 110, 5, 181, 181, 184, 147, 70, 245, 249, 63, 233, 3, 79, 56, 77, 50, 29, 48, 249, 72, 119, 130, 90, 60, 191, 115, 127, 221, 79, 21, 117, 56, 3, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 111, 112, 116, 105, 111, 110, 32, 100, 111, 101, 115, 110, 39, 116, 32, 116, 97, 107, 101, 32, 97, 110, 32, 97, 114, 103, 117, 109, 101, 110, 116, 32, 45, 45, 32, 37, 46, 42, 115, 0, 117, 110, 107, 110, 111, 119, 110, 32, 111, 112, 116, 105, 111, 110, 32, 45, 45, 32, 37, 115, 0, 0, 0, 0, 117, 110, 107, 110, 111, 119, 110, 32, 111, 112, 116, 105, 111, 110, 32, 45, 45, 32, 37, 99, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 97, 109, 98, 105, 103, 117, 111, 117, 115, 32, 111, 112, 116, 105, 111, 110, 32, 45, 45, 32, 37, 46, 42, 115, 0, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 0, 0, 0, 0, 80, 79, 83, 73, 88, 76, 89, 95, 67, 79, 82, 82, 69, 67, 84, 0, 115, 116, 100, 58, 58, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 0, 37, 115, 58, 32, 0, 0, 0, 0, 37, 115, 10, 0, 0, 0, 0, 0, 37, 115, 10, 0, 0, 0, 0, 0, 105, 110, 32, 117, 115, 101, 32, 98, 121, 116, 101, 115, 32, 32, 32, 32, 32, 61, 32, 37, 49, 48, 108, 117, 10, 0, 0, 0, 0, 0, 0, 0, 37, 115, 58, 32, 0, 0, 0, 0, 37, 115, 58, 32, 0, 0, 0, 0, 98, 97, 100, 95, 97, 114, 114, 97, 121, 95, 110, 101, 119, 95, 108, 101, 110, 103, 116, 104, 0, 0, 0, 0, 58, 32, 0, 0, 0, 0, 0, 0, 58, 32, 0, 0, 0, 0, 0, 0, 115, 121, 115, 116, 101, 109, 32, 98, 121, 116, 101, 115, 32, 32, 32, 32, 32, 61, 32, 37, 49, 48, 108, 117, 10, 0, 0, 0, 0, 0, 0, 0, 109, 97, 120, 32, 115, 121, 115, 116, 101, 109, 32, 98, 121, 116, 101, 115, 32, 61, 32, 37, 49, 48, 108, 117, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 2, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 2, 0, 0, 6, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 116, 57, 101, 120, 99, 101, 112, 116, 105, 111, 110, 0, 0, 0, 0, 83, 116, 57, 98, 97, 100, 95, 97, 108, 108, 111, 99, 0, 0, 0, 0, 83, 116, 50, 48, 98, 97, 100, 95, 97, 114, 114, 97, 121, 95, 110, 101, 119, 95, 108, 101, 110, 103, 116, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 0, 0, 0, 0, 0, 0, 120, 2, 0, 0, 168, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 2, 0, 0, 176, 2, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", Na, 8); var qb = xa(F(12, "i8", E), 8); w(0 == qb % 8); var rb = 0; s._memcpy = sb; s._memset = tb; var N = { L: 1, ca: 2, Bd: 3, sc: 4, I: 5, za: 6, Jb: 7, Sc: 8, $: 9, Zb: 10, ua: 11, Ld: 11, $a: 12, Ya: 13, kc: 14, ed: 15, Wb: 16, va: 17, Md: 18, wa: 19, gd: 20, aa: 21, A: 22, Mc: 23, Za: 24, ld: 25, Id: 26, lc: 27, ad: 28, da: 29, yd: 30, Fc: 31, rd: 32, hc: 33, ab: 34, Wc: 35, pc: 36, $b: 37, vc: 38, wc: 39, xc: 40, Ec: 41, Jd: 42, Qc: 43, uc: 44, ec: 45, Tc: 46, Pb: 50, Sb: 51, Nd: 52, Oc: 53, Tb: 54, Ub: 55, fc: 56, Vb: 57, cd: 60, Rc: 61, Fd: 62, bd: 63, Xc: 64, Yc: 65, xd: 66, Uc: 67, Mb: 68, Cd: 69, ac: 70, td: 71, Hc: 74, yc: 75, ic: 76, Rb: 77, mc: 79, md: 80, Qb: 81, wd: 82, zc: 83, Ac: 84, Dc: 85, Cc: 86, Bc: 87, dd: 88, Nc: 89, ya: 90, Ic: 91, ba: 92, nd: 95, qd: 96, dc: 104, Pc: 105, Nb: 106, vd: 107, jd: 108, Zc: 109, zd: 110, cc: 111, Kb: 112, bc: 113, Lc: 114, Jc: 115, Gd: 116, nc: 117, oc: 118, rc: 119, Ob: 120, gc: 121, Gc: 122, ud: 123, Ad: 124, Lb: 125, Kc: 126, tc: 127, fd: 128, Hd: 129, sd: 130, Kd: 131, jc: 132, Dd: 133, kd: 134, Vc: 135, $c: 136, Yb: 137, qc: 138, od: 139, Xb: 140, hd: 141, pd: 142, Ed: 143 }, ub = { 0: "Success", 1: "Not super-user", 2: "No such file or directory", 3: "No such process", 4: "Interrupted system call", 5: "I/O error", 6: "No such device or address", 7: "Arg list too long", 8: "Exec format error", 9: "Bad file number", 10: "No children", 11: "No more processes", 12: "Not enough core", 13: "Permission denied", 14: "Bad address", 15: "Block device required", 16: "Mount device busy", 17: "File exists", 18: "Cross-device link", 19: "No such device", 20: "Not a directory", 21: "Is a directory", 22: "Invalid argument", 23: "Too many open files in system", 24: "Too many open files", 25: "Not a typewriter", 26: "Text file busy", 27: "File too large", 28: "No space left on device", 29: "Illegal seek", 30: "Read only file system", 31: "Too many links", 32: "Broken pipe", 33: "Math arg out of domain of func", 34: "Math result not representable", 35: "No message of desired type", 36: "Identifier removed", 37: "Channel number out of range", 38: "Level 2 not synchronized", 39: "Level 3 halted", 40: "Level 3 reset", 41: "Link number out of range", 42: "Protocol driver not attached", 43: "No CSI structure available", 44: "Level 2 halted", 45: "Deadlock condition", 46: "No record locks available", 50: "Invalid exchange", 51: "Invalid request descriptor", 52: "Exchange full", 53: "No anode", 54: "Invalid request code", 55: "Invalid slot", 56: "File locking deadlock error", 57: "Bad font file fmt", 60: "Device not a stream", 61: "No data (for no delay io)", 62: "Timer expired", 63: "Out of streams resources", 64: "Machine is not on the network", 65: "Package not installed", 66: "The object is remote", 67: "The link has been severed", 68: "Advertise error", 69: "Srmount error", 70: "Communication error on send", 71: "Protocol error", 74: "Multihop attempted", 75: "Inode is remote (not really error)", 76: "Cross mount point (not really error)", 77: "Trying to read unreadable message", 79: "Inappropriate file type or format", 80: "Given log. name not unique", 81: "f.d. invalid for this operation", 82: "Remote address changed", 83: "Can access a needed shared lib", 84: "Accessing a corrupted shared lib", 85: ".lib section in a.out corrupted", 86: "Attempting to link in too many libs", 87: "Attempting to exec a shared library", 88: "Function not implemented", 89: "No more files", 90: "Directory not empty", 91: "File or path name too long", 92: "Too many symbolic links", 95: "Operation not supported on transport endpoint", 96: "Protocol family not supported", 104: "Connection reset by peer", 105: "No buffer space available", 106: "Address family not supported by protocol family", 107: "Protocol wrong type for socket", 108: "Socket operation on non-socket", 109: "Protocol not available", 110: "Can't send after socket shutdown", 111: "Connection refused", 112: "Address already in use", 113: "Connection aborted", 114: "Network is unreachable", 115: "Network interface is not configured", 116: "Connection timed out", 117: "Host is down", 118: "Host is unreachable", 119: "Connection already in progress", 120: "Socket already connected", 121: "Destination address required", 122: "Message too long", 123: "Unknown protocol", 124: "Socket type not supported", 125: "Address not available", 126: "ENETRESET", 127: "Socket is already connected", 128: "Socket is not connected", 129: "TOOMANYREFS", 130: "EPROCLIM", 131: "EUSERS", 132: "EDQUOT", 133: "ESTALE", 134: "Not supported", 135: "No medium (in tape drive)", 136: "No such host or network path", 137: "Filename exists with different case", 138: "EILSEQ", 139: "Value too large for defined data type", 140: "Operation canceled", 141: "State not recoverable", 142: "Previous owner died", 143: "Streams pipe error" }; var Lb = []; var Ob = { open: function (e) { Pb || (Pb = new pa); var t = Lb[e.d.X]; t || g(new Q(N.wa)); e.q = t; e.seekable = p }, close: function (e) { e.q.H.length && e.q.O.W(e.q, 10) }, Q: function (e, t, n, r) { (!e.q || !e.q.O.Na) && g(new Q(N.za)); for (var i = 0, s = 0; s < r; s++) { var o; try { o = e.q.O.Na(e.q) } catch (u) { g(new Q(N.I)) } o === k && 0 === i && g(new Q(N.ua)); if (o === m || o === k) { break } i++; t[n + s] = o } i && (e.d.timestamp = Date.now()); return i }, write: function (e, t, n, r) { (!e.q || !e.q.O.W) && g(new Q(N.za)); for (var i = 0; i < r; i++) { try { e.q.O.W(e.q, t[n + i]) } catch (s) { g(new Q(N.I)) } } r && (e.d.timestamp = Date.now()); return i } }, Pb, T = { z: function () { return T.ka(m, "/", 16895, 0) }, ka: function (e, t, n, r) { (24576 === (n & 61440) || 4096 === (n & 61440)) && g(new Q(N.L)); n = Qb(e, t, n, r); n.l = T.l; 16384 === (n.mode & 61440) ? (n.e = T.e, n.g = {}) : 32768 === (n.mode & 61440) ? (n.e = T.e, n.g = []) : 40960 === (n.mode & 61440) ? n.e = T.e : 8192 === (n.mode & 61440) && (n.e = Rb); n.timestamp = Date.now(); e && (e.g[t] = n); return n }, l: { ge: function (e) { var t = {}; t.ce = 8192 === (e.mode & 61440) ? e.id : 1; t.je = e.id; t.mode = e.mode; t.pe = 1; t.uid = 0; t.he = 0; t.X = e.X; t.size = 16384 === (e.mode & 61440) ? 4096 : 32768 === (e.mode & 61440) ? e.g.length : 40960 === (e.mode & 61440) ? e.link.length : 0; t.Yd = new Date(e.timestamp); t.oe = new Date(e.timestamp); t.ae = new Date(e.timestamp); t.ib = 4096; t.Zd = Math.ceil(t.size / t.ib); return t }, Y: function (e, t) { t.mode !== k && (e.mode = t.mode); t.timestamp !== k && (e.timestamp = t.timestamp); if (t.size !== k) { var n = e.g; if (t.size < n.length) { n.length = t.size } else { for (; t.size > n.length;) { n.push(0) } } } }, tb: function () { g(new Q(N.ca)) }, Ta: function (e, t, n, r) { return T.ka(e, t, n, r) }, rename: function (e, t, n) { if (16384 === (e.mode & 61440)) { var r; try { r = Sb(t, n) } catch (i) { } if (r) { for (var s in r.g) { g(new Q(N.ya)) } } } delete e.parent.g[e.name]; e.name = n; t.g[n] = e }, ze: function (e, t) { delete e.g[t] }, ve: function (e, t) { var n = Sb(e, t), r; for (r in n.g) { g(new Q(N.ya)) } delete e.g[t] }, Wa: function (e, t, n) { e = T.ka(e, t, 41471, 0); e.link = n; return e }, Va: function (e) { 40960 !== (e.mode & 61440) && g(new Q(N.A)); return e.link } }, e: { open: function (e) { if (16384 === (e.d.mode & 61440)) { var t = [".", ".."], n; for (n in e.d.g) { e.d.g.hasOwnProperty(n) && t.push(n) } e.lb = t } }, Q: function (e, t, n, r, i) { e = e.d.g; r = Math.min(e.length - i, r); if (e.subarray) { t.set(e.subarray(i, i + r), n) } else { for (var s = 0; s < r; s++) { t[n + s] = e[i + s] } } return r }, write: function (e, t, n, r, i) { for (var s = e.d.g; s.length < i;) { s.push(0) } for (var o = 0; o < r; o++) { s[i + o] = t[n + o] } e.d.timestamp = Date.now(); return r }, na: function (e, t, n) { 1 === n ? t += e.position : 2 === n && 32768 === (e.d.mode & 61440) && (t += e.d.g.length); 0 > t && g(new Q(N.A)); e.Gb = []; return e.position = t }, ue: function (e) { return e.lb }, Wd: function (e, t, n) { e = e.d.g; for (t += n; t > e.length;) { e.push(0) } }, ne: function (e, t, n, r, i, s, o) { 32768 !== (e.d.mode & 61440) && g(new Q(N.wa)); e = e.d.g; if (o & 2) { if (0 < i || i + r < e.length) { e = e.subarray ? e.subarray(i, i + r) : Array.prototype.slice.call(e, i, i + r) } i = l; (r = Oa(r)) || g(new Q(N.$a)); t.set(e, r) } else { w(e.buffer === t || e.buffer === t.buffer), i = p, r = e.byteOffset } return { te: r, Xd: i } } } }, Tb = F(1, "i32*", E), Ub = F(1, "i32*", E); nb = F(1, "i32*", E); var Vb = m, Nb = [m], R = [m], Wb = 1, Xb = [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,], Yb = l; var Fb = { r: 0, rs: 8192, "r+": 2, w: 1537, wx: 3585, xw: 3585, "w+": 1538, "wx+": 3586, "xw+": 3586, a: 521, ax: 2569, xa: 2569, "a+": 522, "ax+": 2570, "xa+": 2570 }; var Rb = { open: function (e) { e.e = Nb[e.d.X].e; e.e.open && e.e.open(e) }, na: function () { g(new Q(N.da)) } }, bc; s._strlen = ic; var vc = F(1, "i32*", E); var W = {}; var Cc = p, Dc = p, Ec = p, Fc = p, Gc = k, Hc = k; var Jc = []; var Nc, Oc, Pc, Qc, rb = ra(4); B[rb >> 2] = 0; var Vb = Qb(m, "/", 16895, 0), Rc = T, Sc = { type: Rc, se: {}, Ua: "/", root: m }, Tc; Tc = O("/", { N: p }); var Uc = Rc.z(Sc); Uc.z = Sc; Sc.root = Uc; Tc && (Tc.d.z = Sc, Tc.d.ub = l, Vb = Sc.root); zb("/tmp", 511); zb("/dev", 511); Nb[259] = { e: { Q: function () { return 0 }, write: function () { return 0 } } }; Ab("/dev/null", 438, 259); Mb(1280, { Na: function (e) { if (!e.input.length) { var t = m; if (ca) { if (process.Eb.be) { return } t = process.Eb.Q() } else { "undefined" != typeof window && "function" == typeof window.prompt ? (t = window.prompt("Input: "), t !== m && (t += "\n")) : "function" == typeof readline && (t = readline(), t !== m && (t += "\n")) } if (!t) { return m } e.input = J(t, l) } return e.input.shift() }, W: function (e, t) { t === m || 10 === t ? (s.print(e.H.join("")), e.H = []) : e.H.push(Pb.oa(t)) } }); Mb(1536, { W: function (e, t) { t === m || 10 === t ? (s.printErr(e.H.join("")), e.H = []) : e.H.push(Pb.oa(t)) } }); Ab("/dev/tty", 438, 1280); Ab("/dev/tty1", 438, 1536); zb("/dev/shm", 511); zb("/dev/shm/tmp", 511); Xa.unshift({ V: function () { if (!s.noFSInit && !bc) { w(!bc, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"); bc = l; s.stdin = s.stdin; s.stdout = s.stdout; s.stderr = s.stderr; s.stdin ? ec("/dev", "stdin", s.stdin) : Bb("/dev/tty", "/dev/stdin"); s.stdout ? ec("/dev", "stdout", m, s.stdout) : Bb("/dev/tty", "/dev/stdout"); s.stderr ? ec("/dev", "stderr", m, s.stderr) : Bb("/dev/tty1", "/dev/stderr"); var e = Db("/dev/stdin", "r"); B[Tb >> 2] = e.s; w(1 === e.s, "invalid handle for stdin (" + e.s + ")"); e = Db("/dev/stdout", "w"); B[Ub >> 2] = e.s; w(2 === e.s, "invalid handle for stdout (" + e.s + ")"); e = Db("/dev/stderr", "w"); B[nb >> 2] = e.s; w(3 === e.s, "invalid handle for stderr (" + e.s + ")") } } }); Ya.push({ V: function () { Yb = p } }); Za.push({ V: function () { bc = p; for (var e = 0; e < R.length; e++) { var t = R[e]; t && Hb(t) } } }); s.FS_createFolder = function (e, t, n, r) { e = S("string" === typeof e ? e : ac(e), t); return zb(e, cc(n, r)) }; s.FS_createPath = function (e, t) { for (var e = "string" === typeof e ? e : ac(e), n = t.split("/").reverse(); n.length;) { var r = n.pop(); if (r) { var i = S(e, r); try { zb(i, 511) } catch (s) { } e = i } } return i }; s.FS_createDataFile = dc; s.FS_createPreloadedFile = function (e, t, n, r, i, o, u, a) { function f() { Ec = document.pointerLockElement === d || document.mozPointerLockElement === d || document.webkitPointerLockElement === d } function c(n) { function f(n) { a || dc(e, t, n, r, i); o && o(); jb("cp " + v) } var c = p; s.preloadPlugins.forEach(function (e) { !c && e.canHandle(v) && (e.handle(n, v, f, function () { u && u(); jb("cp " + v) }), c = l) }); c || f(n) } s.preloadPlugins || (s.preloadPlugins = []); if (!Nc && !ea) { Nc = l; try { new Blob, Oc = l } catch (h) { Oc = p, console.log("warning: no blob constructor, cannot create blobs with mimetypes") } Pc = "undefined" != typeof MozBlobBuilder ? MozBlobBuilder : "undefined" != typeof WebKitBlobBuilder ? WebKitBlobBuilder : !Oc ? console.log("warning: no BlobBuilder") : m; Qc = "undefined" != typeof window ? window.URL ? window.URL : window.webkitURL : console.log("warning: cannot create object URLs"); s.preloadPlugins.push({ canHandle: function (e) { return !s.re && /\.(jpg|jpeg|png|bmp)$/i.test(e) }, handle: function (e, t, n, r) { var i = m; if (Oc) { try { i = new Blob([e], { type: Ic(t) }), i.size !== e.length && (i = new Blob([(new Uint8Array(e)).buffer], { type: Ic(t) })) } catch (o) { var u = "Blob constructor present but fails: " + o + "; falling back to blob builder"; oa || (oa = {}); oa[u] || (oa[u] = 1, s.P(u)) } } i || (i = new Pc, i.append((new Uint8Array(e)).buffer), i = i.getBlob()); var a = Qc.createObjectURL(i), f = new Image; f.onload = function () { w(f.complete, "Image " + t + " could not be decoded"); var r = document.createElement("canvas"); r.width = f.width; r.height = f.height; r.getContext("2d").drawImage(f, 0, 0); s.preloadedImages[t] = r; Qc.revokeObjectURL(a); n && n(e) }; f.onerror = function () { console.log("Image " + a + " could not be decoded"); r && r() }; f.src = a } }); s.preloadPlugins.push({ canHandle: function (e) { return !s.qe && e.substr(-4) in { ".ogg": 1, ".wav": 1, ".mp3": 1 } }, handle: function (e, t, n, r) { function i(r) { u || (u = l, s.preloadedAudios[t] = r, n && n(e)) } function o() { u || (u = l, s.preloadedAudios[t] = new Audio, r && r()) } var u = p; if (Oc) { try { var a = new Blob([e], { type: Ic(t) }) } catch (f) { return o() } var a = Qc.createObjectURL(a), c = new Audio; c.addEventListener("canplaythrough", function () { i(c) }, p); c.onerror = function () { if (!u) { console.log("warning: browser could not fully decode audio " + t + ", trying slower base64 approach"); for (var n = "", r = 0, s = 0, o = 0; o < e.length; o++) { r = r << 8 | e[o]; for (s += 8; 6 <= s;) { var a = r >> s - 6 & 63, s = s - 6, n = n + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[a] } } 2 == s ? (n += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(r & 3) << 4], n += "==") : 4 == s && (n += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(r & 15) << 2], n += "="); c.src = "data:audio/x-" + t.substr(-3) + ";base64," + n; i(c) } }; c.src = a; setTimeout(function () { za || i(c) }, 1e4) } else { return o() } } }); var d = s.canvas; d.qa = d.requestPointerLock || d.mozRequestPointerLock || d.webkitRequestPointerLock; d.La = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock || aa(); d.La = d.La.bind(document); document.addEventListener("pointerlockchange", f, p); document.addEventListener("mozpointerlockchange", f, p); document.addEventListener("webkitpointerlockchange", f, p); s.elementPointerLock && d.addEventListener("click", function (e) { !Ec && d.qa && (d.qa(), e.preventDefault()) }, p) } var v, y = S.apply(m, [e, t]); "/" == y[0] && (y = y.substr(1)); v = y; ib("cp " + v); if ("string" == typeof n) { var b = u, E = function () { b ? b() : g('Loading data file "' + n + '" failed.') }, x = new XMLHttpRequest; x.open("GET", n, l); x.responseType = "arraybuffer"; x.onload = function () { if (200 == x.status || 0 == x.status && x.response) { var e = x.response; w(e, 'Loading data file "' + n + '" failed (no arrayBuffer).'); e = new Uint8Array(e); c(e); jb("al " + n) } else { E() } }; x.onerror = E; x.send(m); ib("al " + n) } else { c(n) } }; s.FS_createLazyFile = function (e, t, n, r, i) { var o, u; "undefined" !== typeof XMLHttpRequest ? (ea || g("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"), o = function () { this.ma = p; this.T = [] }, o.prototype.get = function (e) { if (!(e > this.length - 1 || 0 > e)) { var t = e % this.S; return this.pb(Math.floor(e / this.S))[t] } }, o.prototype.Cb = function (e) { this.pb = e }, o.prototype.Fa = function () { var e = new XMLHttpRequest; e.open("HEAD", n, p); e.send(m); 200 <= e.status && 300 > e.status || 304 === e.status || g(Error("Couldn't load " + n + ". Status: " + e.status)); var t = Number(e.getResponseHeader("Content-length")), r, i = 1048576; if (!((r = e.getResponseHeader("Accept-Ranges")) && "bytes" === r)) { i = t } var s = this; s.Cb(function (e) { var r = e * i, o = (e + 1) * i - 1, o = Math.min(o, t - 1); if ("undefined" === typeof s.T[e]) { var u = s.T; r > o && g(Error("invalid range (" + r + ", " + o + ") or no bytes requested!")); o > t - 1 && g(Error("only " + t + " bytes available! programmer error!")); var a = new XMLHttpRequest; a.open("GET", n, p); t !== i && a.setRequestHeader("Range", "bytes=" + r + "-" + o); "undefined" != typeof Uint8Array && (a.responseType = "arraybuffer"); a.overrideMimeType && a.overrideMimeType("text/plain; charset=x-user-defined"); a.send(m); 200 <= a.status && 300 > a.status || 304 === a.status || g(Error("Couldn't load " + n + ". Status: " + a.status)); r = a.response !== k ? new Uint8Array(a.response || []) : J(a.responseText || "", l); u[e] = r } "undefined" === typeof s.T[e] && g(Error("doXHR failed!")); return s.T[e] }); this.gb = t; this.fb = i; this.ma = l }, o = new o, Object.defineProperty(o, "length", { get: function () { this.ma || this.Fa(); return this.gb } }), Object.defineProperty(o, "chunkSize", { get: function () { this.ma || this.Fa(); return this.fb } }), u = k) : (u = n, o = k); var a, e = S("string" === typeof e ? e : ac(e), t); a = yb(e, cc(r, i)); o ? a.g = o : u && (a.g = m, a.url = u); var f = {}; Object.keys(a.e).forEach(function (e) { var t = a.e[e]; f[e] = function () { var e; if (a.ke || a.le || a.link || a.g) { e = l } else { e = l; "undefined" !== typeof XMLHttpRequest && g(Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")); if (s.read) { try { a.g = J(s.read(a.url), l) } catch (n) { e = p } } else { g(Error("Cannot load without read() or XMLHttpRequest.")) } e || M(N.I) } e || g(new Q(N.I)); return t.apply(m, arguments) } }); f.Q = function (e, t, n, r, i) { e = e.d.g; r = Math.min(e.length - i, r); if (e.slice) { for (var s = 0; s < r; s++) { t[n + s] = e[i + s] } } else { for (s = 0; s < r; s++) { t[n + s] = e.get(i + s) } } return r }; a.e = f; return a }; s.FS_createLink = function (e, t, n) { e = S("string" === typeof e ? e : ac(e), t); return Bb(n, e) }; s.FS_createDevice = ec; U.m = F(12, "void*", E); wc(W); Bc.J = F([0], "i8", E); s.requestFullScreen = function (e, t) { function n() { Dc = p; (document.webkitFullScreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.mozFullscreenElement || document.fullScreenElement || document.fullscreenElement) === r ? (r.Ga = document.cancelFullScreen || document.mozCancelFullScreen || document.webkitCancelFullScreen, r.Ga = r.Ga.bind(document), Gc && r.qa(), Dc = l, Hc && Lc()) : Hc && Mc(); if (s.onFullScreen) { s.onFullScreen(Dc) } } Gc = e; Hc = t; "undefined" === typeof Gc && (Gc = l); "undefined" === typeof Hc && (Hc = p); var r = s.canvas; Fc || (Fc = l, document.addEventListener("fullscreenchange", n, p), document.addEventListener("mozfullscreenchange", n, p), document.addEventListener("webkitfullscreenchange", n, p)); r.Ab = r.requestFullScreen || r.mozRequestFullScreen || (r.webkitRequestFullScreen ? function () { r.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT) } : m); r.Ab() }; s.requestAnimationFrame = function (e) { window.requestAnimationFrame || (window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame || window.setTimeout); window.requestAnimationFrame(e) }; s.pauseMainLoop = aa(); s.resumeMainLoop = function () { Cc && (Cc = p, m()) }; s.getUserMedia = function () { window.Ma || (window.Ma = navigator.getUserMedia || navigator.mozGetUserMedia); window.Ma(k) }; Sa = u = xa(sa); Ta = Sa + 5242880; Ua = z = xa(Ta); w(Ua < va); var Vc = F([8, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "i8", 3), Wc = F([8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0], "i8", 3), Xc = Math.min; var V = function (e, t, n) { "use asm"; function sn(e) { e = e | 0; var t = 0; t = c; c = c + e | 0; c = c + 7 >> 3 << 3; return t | 0 } function on() { return c | 0 } function un(e) { e = e | 0; c = e } function an(e, t) { e = e | 0; t = t | 0; if ((x | 0) == 0) { x = e; T = t } } function fn(e) { e = e | 0; r[p] = r[e]; r[p + 1 | 0] = r[e + 1 | 0]; r[p + 2 | 0] = r[e + 2 | 0]; r[p + 3 | 0] = r[e + 3 | 0] } function ln(e) { e = e | 0; r[p] = r[e]; r[p + 1 | 0] = r[e + 1 | 0]; r[p + 2 | 0] = r[e + 2 | 0]; r[p + 3 | 0] = r[e + 3 | 0]; r[p + 4 | 0] = r[e + 4 | 0]; r[p + 5 | 0] = r[e + 5 | 0]; r[p + 6 | 0] = r[e + 6 | 0]; r[p + 7 | 0] = r[e + 7 | 0] } function cn(e) { e = e | 0; B = e } function hn(e) { e = e | 0; j = e } function pn(e) { e = e | 0; F = e } function dn(e) { e = e | 0; I = e } function vn(e) { e = e | 0; q = e } function mn(e) { e = e | 0; R = e } function gn(e) { e = e | 0; U = e } function yn(e) { e = e | 0; z = e } function bn(e) { e = e | 0; W = e } function wn(e) { e = e | 0; X = e } function En() { s[170] = b + 8; s[172] = y + 8; s[176] = y + 8 } function Sn(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var i = 0; if ((n | 0) == 0) { return } else { i = 0 } do { r[e + i | 0] = r[t + i | 0] | 0; i = i + 1 | 0 } while (i >>> 0 < n >>> 0); return } function xn(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var i = 0, s = 0; if ((n | 0) == 0) { return } else { i = 0 } do { s = e + i | 0; r[s] = r[s] ^ r[t + i | 0]; i = i + 1 | 0 } while (i >>> 0 < n >>> 0); return } function Tn(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0; t = o[e + 1 | 0] | 0; n = o[e + 2 | 0] | 0; r = o[e + 3 | 0] | 0; i = ri(t << 8 | 0 >>> 24 | (o[e] | 0) | (n << 16 | 0 >>> 16) | (r << 24 | 0 >>> 8) | (0 << 8 | 0 >>> 24), 0 << 8 | t >>> 24 | (0 << 16 | n >>> 16) | (0 << 24 | r >>> 8) | (o[e + 4 | 0] | 0) | ((o[e + 5 | 0] | 0) << 8 | 0 >>> 24), 0 << 16 | 0 >>> 16, (o[e + 6 | 0] | 0) << 16 | 0 >>> 16) | 0; r = ri(i, B, 0 << 24 | 0 >>> 8, (o[e + 7 | 0] | 0) << 24 | 0 >>> 8) | 0; return (B = B, r) | 0 } function Nn(e) { e = e | 0; return (o[e + 1 | 0] | 0) << 8 | (o[e] | 0) | (o[e + 2 | 0] | 0) << 16 | (o[e + 3 | 0] | 0) << 24 | 0 } function Cn(e, t) { e = e | 0; t = t | 0; r[e] = t & 255; r[e + 1 | 0] = t >>> 8 & 255; r[e + 2 | 0] = t >>> 16 & 255; r[e + 3 | 0] = t >>> 24 & 255; return } function kn(e) { e = e | 0; s[e + 36 >> 2] = 0; s[e + 32 >> 2] = 0; s[e >> 2] = 1779033703; s[e + 4 >> 2] = -1150833019; s[e + 8 >> 2] = 1013904242; s[e + 12 >> 2] = -1521486534; s[e + 16 >> 2] = 1359893119; s[e + 20 >> 2] = -1694144372; s[e + 24 >> 2] = 528734635; s[e + 28 >> 2] = 1541459225; return } function Ln(e, t, n, r, i, o, u, a, f, l) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; i = i | 0; o = o | 0; u = u | 0; a = a | 0; f = f | 0; l = l | 0; var c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0; c = pi(a, 0, u, 0) | 0; h = B; p = 0; if (h >>> 0 > p >>> 0 | h >>> 0 == p >>> 0 & c >>> 0 > 1073741823 >>> 0) { s[(Yt() | 0) >> 2] = 27; d = -1; return d | 0 } c = ri(i, o, -1, -1) | 0; if ((c & i | 0) != 0 | (B & o | 0) != 0 | (i | 0) == 0 & (o | 0) == 0) { s[(Yt() | 0) >> 2] = 22; d = -1; return d | 0 } do { if (!((33554431 / (a >>> 0) | 0) >>> 0 < u >>> 0 | u >>> 0 > 16777215)) { c = 0; if (c >>> 0 < o >>> 0 | c >>> 0 == o >>> 0 & (33554431 / (u >>> 0) | 0) >>> 0 < i >>> 0) { break } c = u << 7; p = Xn(ot(c, a) | 0) | 0; if ((p | 0) == 0) { d = -1; return d | 0 } h = Xn(u << 8) | 0; do { if ((h | 0) != 0) { v = pi(c, 0, i, o) | 0; m = Xn(v) | 0; if ((m | 0) == 0) { Vn(h); break } v = ot(a << 7, u) | 0; zn(e, t, n, r, 1, 0, p, v); if ((a | 0) != 0) { g = u << 7; y = 0; do { An(p + (ot(g, y) | 0) | 0, u, i, o, m, h); y = y + 1 | 0 } while (y >>> 0 < a >>> 0) } zn(e, t, p, v, 1, 0, f, l); Vn(m); Vn(h); Vn(p); d = 0; return d | 0 } } while (0); Vn(p); d = -1; return d | 0 } } while (0); s[(Yt() | 0) >> 2] = 12; d = -1; return d | 0 } function An(e, t, n, r, i, s) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; i = i | 0; s = s | 0; var o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0; o = t << 7; u = s + o | 0; Sn(s, e, o); if ((n | 0) == 0 & (r | 0) == 0) { Sn(e, s, o); return } a = o; f = 0; l = 0; c = 0; do { h = pi(c, l, a, f) | 0; Sn(i + h | 0, s, o); On(s, u, t); c = ri(c, l, 1, 0) | 0; l = B } while (l >>> 0 < r >>> 0 | l >>> 0 == r >>> 0 & c >>> 0 < n >>> 0); if ((n | 0) == 0 & (r | 0) == 0) { Sn(e, s, o); return } c = ri(n, r, -1, -1) | 0; l = B; f = o; a = 0; h = 0; p = 0; do { d = Mn(s, t) | 0; v = pi(d & c, B & l, f, a) | 0; xn(s, i + v | 0, o); On(s, u, t); p = ri(p, h, 1, 0) | 0; h = B } while (h >>> 0 < r >>> 0 | h >>> 0 == r >>> 0 & p >>> 0 < n >>> 0); Sn(e, s, o); return } function On(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0, s = 0, o = 0, u = 0, a = 0, f = 0; r = c; c = c + 64 | 0; i = r | 0; s = n << 1; Sn(i, e + ((n << 7) - 64) | 0, 64); if ((s | 0) != 0) { o = 0; do { u = o << 6; xn(i, e + u | 0, 64); _n(i); Sn(t + u | 0, i, 64); o = o + 1 | 0 } while (o >>> 0 < s >>> 0) } if ((n | 0) == 0) { c = r; return } else { a = 0 } do { Sn(e + (a << 6) | 0, t + (a << 7) | 0, 64); a = a + 1 | 0 } while (a >>> 0 < n >>> 0); if ((n | 0) == 0) { c = r; return } else { f = 0 } do { Sn(e + (f + n << 6) | 0, t + (f << 7 | 64) | 0, 64); f = f + 1 | 0 } while (f >>> 0 < n >>> 0); c = r; return } function Mn(e, t) { e = e | 0; t = t | 0; var n = 0; n = Tn(e + ((t << 7) - 64) | 0) | 0; return (B = B, n) | 0 } function _n(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0, F = 0, I = 0, q = 0, R = 0, U = 0, z = 0, W = 0, X = 0, V = 0, $ = 0, J = 0, K = 0, Q = 0, G = 0, Y = 0, Z = 0, et = 0, tt = 0; t = c; c = c + 128 | 0; n = t | 0; r = t + 64 | 0; i = 0; do { s[n + (i << 2) >> 2] = Nn(e + (i << 2) | 0) | 0; i = i + 1 | 0 } while (i >>> 0 < 16); i = n; o = r; ei(o | 0, i | 0, 64) | 0; i = r | 0; o = r + 48 | 0; u = r + 16 | 0; a = r + 32 | 0; f = r + 20 | 0; l = r + 4 | 0; h = r + 36 | 0; p = r + 52 | 0; d = r + 40 | 0; v = r + 24 | 0; m = r + 56 | 0; g = r + 8 | 0; y = r + 60 | 0; b = r + 44 | 0; w = r + 12 | 0; E = r + 28 | 0; S = 0; x = s[i >> 2] | 0; T = s[o >> 2] | 0; N = s[u >> 2] | 0; C = s[a >> 2] | 0; k = s[f >> 2] | 0; L = s[l >> 2] | 0; A = s[h >> 2] | 0; O = s[p >> 2] | 0; M = s[d >> 2] | 0; _ = s[v >> 2] | 0; D = s[m >> 2] | 0; P = s[g >> 2] | 0; H = s[y >> 2] | 0; B = s[b >> 2] | 0; j = s[w >> 2] | 0; F = s[E >> 2] | 0; do { I = T + x | 0; q = (I << 7 | I >>> 25) ^ N; I = q + x | 0; R = (I << 9 | I >>> 23) ^ C; I = R + q | 0; U = (I << 13 | I >>> 19) ^ T; I = U + R | 0; z = (I << 18 | I >>> 14) ^ x; I = L + k | 0; W = (I << 7 | I >>> 25) ^ A; I = W + k | 0; X = (I << 9 | I >>> 23) ^ O; I = X + W | 0; V = (I << 13 | I >>> 19) ^ L; I = V + X | 0; $ = (I << 18 | I >>> 14) ^ k; I = _ + M | 0; J = (I << 7 | I >>> 25) ^ D; I = J + M | 0; K = (I << 9 | I >>> 23) ^ P; I = K + J | 0; Q = (I << 13 | I >>> 19) ^ _; I = Q + K | 0; G = (I << 18 | I >>> 14) ^ M; I = B + H | 0; Y = (I << 7 | I >>> 25) ^ j; I = Y + H | 0; Z = (I << 9 | I >>> 23) ^ F; I = Z + Y | 0; et = (I << 13 | I >>> 19) ^ B; I = et + Z | 0; tt = (I << 18 | I >>> 14) ^ H; I = Y + z | 0; L = (I << 7 | I >>> 25) ^ V; V = L + z | 0; P = (V << 9 | V >>> 23) ^ K; K = P + L | 0; j = (K << 13 | K >>> 19) ^ Y; Y = j + P | 0; x = (Y << 18 | Y >>> 14) ^ z; z = q + $ | 0; _ = (z << 7 | z >>> 25) ^ Q; Q = _ + $ | 0; F = (Q << 9 | Q >>> 23) ^ Z; Z = F + _ | 0; N = (Z << 13 | Z >>> 19) ^ q; q = N + F | 0; k = (q << 18 | q >>> 14) ^ $; $ = W + G | 0; B = ($ << 7 | $ >>> 25) ^ et; et = B + G | 0; C = (et << 9 | et >>> 23) ^ R; R = C + B | 0; A = (R << 13 | R >>> 19) ^ W; W = A + C | 0; M = (W << 18 | W >>> 14) ^ G; G = J + tt | 0; T = (G << 7 | G >>> 25) ^ U; U = T + tt | 0; O = (U << 9 | U >>> 23) ^ X; X = O + T | 0; D = (X << 13 | X >>> 19) ^ J; J = D + O | 0; H = (J << 18 | J >>> 14) ^ tt; S = S + 2 | 0 } while (S >>> 0 < 8); s[i >> 2] = x; s[o >> 2] = T; s[u >> 2] = N; s[a >> 2] = C; s[f >> 2] = k; s[l >> 2] = L; s[h >> 2] = A; s[p >> 2] = O; s[d >> 2] = M; s[v >> 2] = _; s[m >> 2] = D; s[g >> 2] = P; s[y >> 2] = H; s[b >> 2] = B; s[w >> 2] = j; s[E >> 2] = F; F = n | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r >> 2] | 0); F = n + 4 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 4 >> 2] | 0); F = n + 8 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 8 >> 2] | 0); F = n + 12 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 12 >> 2] | 0); F = n + 16 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 16 >> 2] | 0); F = n + 20 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 20 >> 2] | 0); F = n + 24 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 24 >> 2] | 0); F = n + 28 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 28 >> 2] | 0); F = n + 32 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 32 >> 2] | 0); F = n + 36 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 36 >> 2] | 0); F = n + 40 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 40 >> 2] | 0); F = n + 44 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 44 >> 2] | 0); F = n + 48 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 48 >> 2] | 0); F = n + 52 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 52 >> 2] | 0); F = n + 56 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 56 >> 2] | 0); F = n + 60 | 0; s[F >> 2] = (s[F >> 2] | 0) + (s[r + 60 >> 2] | 0); r = 0; do { Cn(e + (r << 2) | 0, s[n + (r << 2) >> 2] | 0); r = r + 1 | 0 } while (r >>> 0 < 16); c = t; return } function Dn(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0; r = e + 32 | 0; i = e + 36 | 0; o = s[i >> 2] | 0; u = o >>> 3 & 63; a = Ut(o | 0, n << 3 | 0) | 0; s[i >> 2] = a; if (B) { a = r | 0; s[a >> 2] = (s[a >> 2] | 0) + 1 } a = r | 0; s[a >> 2] = (s[a >> 2] | 0) + (n >>> 29); a = 64 - u | 0; r = e + 40 + u | 0; if (a >>> 0 > n >>> 0) { ei(r | 0, t | 0, n) | 0; return } ei(r | 0, t | 0, a) | 0; r = e | 0; u = e + 40 | 0; Pn(r, u); e = t + a | 0; t = n - a | 0; if (t >>> 0 > 63) { a = t; n = e; while (1) { Pn(r, n); i = n + 64 | 0; o = a - 64 | 0; if (o >>> 0 > 63) { a = o; n = i } else { f = o; l = i; break } } } else { f = t; l = e } ei(u | 0, l | 0, f) | 0; return } function Pn(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0; n = c; c = c + 288 | 0; r = n | 0; i = n + 256 | 0; o = r | 0; Wn(o, t); t = 16; do { u = s[r + (t - 2 << 2) >> 2] | 0; a = s[r + (t - 15 << 2) >> 2] | 0; s[r + (t << 2) >> 2] = (s[r + (t - 16 << 2) >> 2] | 0) + (s[r + (t - 7 << 2) >> 2] | 0) + ((u >>> 19 | u << 13) ^ u >>> 10 ^ (u >>> 17 | u << 15)) + ((a >>> 18 | a << 14) ^ a >>> 3 ^ (a >>> 7 | a << 25)); t = t + 1 | 0 } while ((t | 0) < 64); t = i; a = e; ei(t | 0, a | 0, 32) | 0; a = i + 28 | 0; t = i + 16 | 0; u = s[t >> 2] | 0; f = i + 20 | 0; l = i + 24 | 0; h = s[l >> 2] | 0; p = (s[a >> 2] | 0) + 1116352408 + (s[o >> 2] | 0) + ((u >>> 6 | u << 26) ^ (u >>> 11 | u << 21) ^ (u >>> 25 | u << 7)) + ((h ^ s[f >> 2]) & u ^ h) | 0; h = i | 0; u = s[h >> 2] | 0; o = i + 4 | 0; d = s[o >> 2] | 0; v = i + 8 | 0; m = s[v >> 2] | 0; g = i + 12 | 0; s[g >> 2] = (s[g >> 2] | 0) + p; y = ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + p + ((m | d) & u | m & d) | 0; s[a >> 2] = y; d = s[g >> 2] | 0; m = s[f >> 2] | 0; u = (s[l >> 2] | 0) + 1899447441 + (s[r + 4 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[l >> 2] = p; m = s[v >> 2] | 0; d = s[t >> 2] | 0; y = (s[f >> 2] | 0) - 1245643825 + (s[r + 8 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[f >> 2] = u; d = s[o >> 2] | 0; m = s[g >> 2] | 0; p = (s[t >> 2] | 0) - 373957723 + (s[r + 12 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[t >> 2] = y; m = s[h >> 2] | 0; d = s[v >> 2] | 0; u = (s[g >> 2] | 0) + 961987163 + (s[r + 16 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[g >> 2] = p; d = s[a >> 2] | 0; m = s[o >> 2] | 0; y = (s[v >> 2] | 0) + 1508970993 + (s[r + 20 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[v >> 2] = u; m = s[l >> 2] | 0; d = s[h >> 2] | 0; p = (s[o >> 2] | 0) - 1841331548 + (s[r + 24 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[o >> 2] = y; d = s[f >> 2] | 0; m = s[a >> 2] | 0; u = (s[h >> 2] | 0) - 1424204075 + (s[r + 28 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[h >> 2] = p; m = s[t >> 2] | 0; d = s[l >> 2] | 0; y = (s[a >> 2] | 0) - 670586216 + (s[r + 32 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[a >> 2] = u; d = s[g >> 2] | 0; m = s[f >> 2] | 0; p = (s[l >> 2] | 0) + 310598401 + (s[r + 36 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[l >> 2] = y; m = s[v >> 2] | 0; d = s[t >> 2] | 0; u = (s[f >> 2] | 0) + 607225278 + (s[r + 40 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[f >> 2] = p; d = s[o >> 2] | 0; m = s[g >> 2] | 0; y = (s[t >> 2] | 0) + 1426881987 + (s[r + 44 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[t >> 2] = u; m = s[h >> 2] | 0; d = s[v >> 2] | 0; p = (s[g >> 2] | 0) + 1925078388 + (s[r + 48 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[g >> 2] = y; d = s[a >> 2] | 0; m = s[o >> 2] | 0; u = (s[v >> 2] | 0) - 2132889090 + (s[r + 52 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[v >> 2] = p; m = s[l >> 2] | 0; d = s[h >> 2] | 0; y = (s[o >> 2] | 0) - 1680079193 + (s[r + 56 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[o >> 2] = u; d = s[f >> 2] | 0; m = s[a >> 2] | 0; p = (s[h >> 2] | 0) - 1046744716 + (s[r + 60 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[h >> 2] = y; m = s[t >> 2] | 0; d = s[l >> 2] | 0; u = (s[a >> 2] | 0) - 459576895 + (s[r + 64 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[a >> 2] = p; d = s[g >> 2] | 0; m = s[f >> 2] | 0; y = (s[l >> 2] | 0) - 272742522 + (s[r + 68 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[l >> 2] = u; m = s[v >> 2] | 0; d = s[t >> 2] | 0; p = (s[f >> 2] | 0) + 264347078 + (s[r + 72 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[f >> 2] = y; d = s[o >> 2] | 0; m = s[g >> 2] | 0; u = (s[t >> 2] | 0) + 604807628 + (s[r + 76 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[t >> 2] = p; m = s[h >> 2] | 0; d = s[v >> 2] | 0; y = (s[g >> 2] | 0) + 770255983 + (s[r + 80 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[g >> 2] = u; d = s[a >> 2] | 0; m = s[o >> 2] | 0; p = (s[v >> 2] | 0) + 1249150122 + (s[r + 84 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[v >> 2] = y; m = s[l >> 2] | 0; d = s[h >> 2] | 0; u = (s[o >> 2] | 0) + 1555081692 + (s[r + 88 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[o >> 2] = p; d = s[f >> 2] | 0; m = s[a >> 2] | 0; y = (s[h >> 2] | 0) + 1996064986 + (s[r + 92 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[h >> 2] = u; m = s[t >> 2] | 0; d = s[l >> 2] | 0; p = (s[a >> 2] | 0) - 1740746414 + (s[r + 96 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[a >> 2] = y; d = s[g >> 2] | 0; m = s[f >> 2] | 0; u = (s[l >> 2] | 0) - 1473132947 + (s[r + 100 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[l >> 2] = p; m = s[v >> 2] | 0; d = s[t >> 2] | 0; y = (s[f >> 2] | 0) - 1341970488 + (s[r + 104 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[f >> 2] = u; d = s[o >> 2] | 0; m = s[g >> 2] | 0; p = (s[t >> 2] | 0) - 1084653625 + (s[r + 108 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[t >> 2] = y; m = s[h >> 2] | 0; d = s[v >> 2] | 0; u = (s[g >> 2] | 0) - 958395405 + (s[r + 112 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[g >> 2] = p; d = s[a >> 2] | 0; m = s[o >> 2] | 0; y = (s[v >> 2] | 0) - 710438585 + (s[r + 116 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[v >> 2] = u; m = s[l >> 2] | 0; d = s[h >> 2] | 0; p = (s[o >> 2] | 0) + 113926993 + (s[r + 120 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[o >> 2] = y; d = s[f >> 2] | 0; m = s[a >> 2] | 0; u = (s[h >> 2] | 0) + 338241895 + (s[r + 124 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[h >> 2] = p; m = s[t >> 2] | 0; d = s[l >> 2] | 0; y = (s[a >> 2] | 0) + 666307205 + (s[r + 128 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[a >> 2] = u; d = s[g >> 2] | 0; m = s[f >> 2] | 0; p = (s[l >> 2] | 0) + 773529912 + (s[r + 132 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[l >> 2] = y; m = s[v >> 2] | 0; d = s[t >> 2] | 0; u = (s[f >> 2] | 0) + 1294757372 + (s[r + 136 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[f >> 2] = p; d = s[o >> 2] | 0; m = s[g >> 2] | 0; y = (s[t >> 2] | 0) + 1396182291 + (s[r + 140 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[t >> 2] = u; m = s[h >> 2] | 0; d = s[v >> 2] | 0; p = (s[g >> 2] | 0) + 1695183700 + (s[r + 144 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[g >> 2] = y; d = s[a >> 2] | 0; m = s[o >> 2] | 0; u = (s[v >> 2] | 0) + 1986661051 + (s[r + 148 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[v >> 2] = p; m = s[l >> 2] | 0; d = s[h >> 2] | 0; y = (s[o >> 2] | 0) - 2117940946 + (s[r + 152 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[o >> 2] = u; d = s[f >> 2] | 0; m = s[a >> 2] | 0; p = (s[h >> 2] | 0) - 1838011259 + (s[r + 156 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[h >> 2] = y; m = s[t >> 2] | 0; d = s[l >> 2] | 0; u = (s[a >> 2] | 0) - 1564481375 + (s[r + 160 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[a >> 2] = p; d = s[g >> 2] | 0; m = s[f >> 2] | 0; y = (s[l >> 2] | 0) - 1474664885 + (s[r + 164 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[l >> 2] = u; m = s[v >> 2] | 0; d = s[t >> 2] | 0; p = (s[f >> 2] | 0) - 1035236496 + (s[r + 168 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[f >> 2] = y; d = s[o >> 2] | 0; m = s[g >> 2] | 0; u = (s[t >> 2] | 0) - 949202525 + (s[r + 172 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[t >> 2] = p; m = s[h >> 2] | 0; d = s[v >> 2] | 0; y = (s[g >> 2] | 0) - 778901479 + (s[r + 176 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[g >> 2] = u; d = s[a >> 2] | 0; m = s[o >> 2] | 0; p = (s[v >> 2] | 0) - 694614492 + (s[r + 180 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[v >> 2] = y; m = s[l >> 2] | 0; d = s[h >> 2] | 0; u = (s[o >> 2] | 0) - 200395387 + (s[r + 184 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[o >> 2] = p; d = s[f >> 2] | 0; m = s[a >> 2] | 0; y = (s[h >> 2] | 0) + 275423344 + (s[r + 188 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[h >> 2] = u; m = s[t >> 2] | 0; d = s[l >> 2] | 0; p = (s[a >> 2] | 0) + 430227734 + (s[r + 192 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[a >> 2] = y; d = s[g >> 2] | 0; m = s[f >> 2] | 0; u = (s[l >> 2] | 0) + 506948616 + (s[r + 196 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[l >> 2] = p; m = s[v >> 2] | 0; d = s[t >> 2] | 0; y = (s[f >> 2] | 0) + 659060556 + (s[r + 200 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[f >> 2] = u; d = s[o >> 2] | 0; m = s[g >> 2] | 0; p = (s[t >> 2] | 0) + 883997877 + (s[r + 204 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[t >> 2] = y; m = s[h >> 2] | 0; d = s[v >> 2] | 0; u = (s[g >> 2] | 0) + 958139571 + (s[r + 208 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[g >> 2] = p; d = s[a >> 2] | 0; m = s[o >> 2] | 0; y = (s[v >> 2] | 0) + 1322822218 + (s[r + 212 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[v >> 2] = u; m = s[l >> 2] | 0; d = s[h >> 2] | 0; p = (s[o >> 2] | 0) + 1537002063 + (s[r + 216 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[o >> 2] = y; d = s[f >> 2] | 0; m = s[a >> 2] | 0; u = (s[h >> 2] | 0) + 1747873779 + (s[r + 220 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[l >> 2]) & d ^ m) | 0; m = s[v >> 2] | 0; d = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[h >> 2] = p; m = s[t >> 2] | 0; d = s[l >> 2] | 0; y = (s[a >> 2] | 0) + 1955562222 + (s[r + 224 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[f >> 2]) & m ^ d) | 0; d = s[o >> 2] | 0; m = s[v >> 2] | 0; s[g >> 2] = (s[g >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[a >> 2] = u; d = s[g >> 2] | 0; m = s[f >> 2] | 0; p = (s[l >> 2] | 0) + 2024104815 + (s[r + 228 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[t >> 2]) & d ^ m) | 0; m = s[h >> 2] | 0; d = s[o >> 2] | 0; s[v >> 2] = (s[v >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((d | m) & u | d & m) | 0; s[l >> 2] = y; m = s[v >> 2] | 0; d = s[t >> 2] | 0; u = (s[f >> 2] | 0) - 2067236844 + (s[r + 232 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[g >> 2]) & m ^ d) | 0; d = s[a >> 2] | 0; m = s[h >> 2] | 0; s[o >> 2] = (s[o >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((m | d) & y | m & d) | 0; s[f >> 2] = p; d = s[o >> 2] | 0; m = s[g >> 2] | 0; y = (s[t >> 2] | 0) - 1933114872 + (s[r + 236 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[v >> 2]) & d ^ m) | 0; m = s[l >> 2] | 0; d = s[a >> 2] | 0; s[h >> 2] = (s[h >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((d | m) & p | d & m) | 0; s[t >> 2] = u; m = s[h >> 2] | 0; d = s[v >> 2] | 0; p = (s[g >> 2] | 0) - 1866530822 + (s[r + 240 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[o >> 2]) & m ^ d) | 0; d = s[f >> 2] | 0; m = s[l >> 2] | 0; s[a >> 2] = (s[a >> 2] | 0) + p; y = p + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((m | d) & u | m & d) | 0; s[g >> 2] = y; d = s[a >> 2] | 0; m = s[o >> 2] | 0; u = (s[v >> 2] | 0) - 1538233109 + (s[r + 244 >> 2] | 0) + ((d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + ((m ^ s[h >> 2]) & d ^ m) | 0; m = s[t >> 2] | 0; d = s[f >> 2] | 0; s[l >> 2] = (s[l >> 2] | 0) + u; p = u + ((y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10)) + ((d | m) & y | d & m) | 0; s[v >> 2] = p; m = s[l >> 2] | 0; d = s[h >> 2] | 0; y = (s[o >> 2] | 0) - 1090935817 + (s[r + 248 >> 2] | 0) + ((m >>> 6 | m << 26) ^ (m >>> 11 | m << 21) ^ (m >>> 25 | m << 7)) + ((d ^ s[a >> 2]) & m ^ d) | 0; d = s[g >> 2] | 0; m = s[t >> 2] | 0; s[f >> 2] = (s[f >> 2] | 0) + y; u = y + ((p >>> 2 | p << 30) ^ (p >>> 13 | p << 19) ^ (p >>> 22 | p << 10)) + ((m | d) & p | m & d) | 0; s[o >> 2] = u; o = s[f >> 2] | 0; f = s[a >> 2] | 0; a = (s[h >> 2] | 0) - 965641998 + (s[r + 252 >> 2] | 0) + ((o >>> 6 | o << 26) ^ (o >>> 11 | o << 21) ^ (o >>> 25 | o << 7)) + ((f ^ s[l >> 2]) & o ^ f) | 0; f = s[v >> 2] | 0; v = s[g >> 2] | 0; s[t >> 2] = (s[t >> 2] | 0) + a; t = a + ((u >>> 2 | u << 30) ^ (u >>> 13 | u << 19) ^ (u >>> 22 | u << 10)) + ((v | f) & u | v & f) | 0; s[h >> 2] = t; s[e >> 2] = (s[e >> 2] | 0) + t; t = e + 4 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 4 >> 2] | 0); t = e + 8 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 8 >> 2] | 0); t = e + 12 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 12 >> 2] | 0); t = e + 16 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 16 >> 2] | 0); t = e + 20 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 20 >> 2] | 0); t = e + 24 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 24 >> 2] | 0); t = e + 28 | 0; s[t >> 2] = (s[t >> 2] | 0) + (s[i + 28 >> 2] | 0); c = n; return } function Hn(e, t) { e = e | 0; t = t | 0; r[e + 3 | 0] = t & 255; r[e + 2 | 0] = t >>> 8 & 255; r[e + 1 | 0] = t >>> 16 & 255; r[e] = t >>> 24 & 255; return } function Bn(e) { e = e | 0; return (o[e + 2 | 0] | 0) << 8 | (o[e + 3 | 0] | 0) | (o[e + 1 | 0] | 0) << 16 | (o[e] | 0) << 24 | 0 } function jn(e, t) { e = e | 0; t = t | 0; Fn(t); In(e, t | 0, 32); ti(t | 0, 0, 104); return } function Fn(e) { e = e | 0; var t = 0, n = 0, r = 0; t = c; c = c + 8 | 0; n = t | 0; In(n, e + 32 | 0, 8); r = (s[e + 36 >> 2] | 0) >>> 3 & 63; Dn(e, 720, (r >>> 0 < 56 ? 56 : 120) - r | 0); Dn(e, n, 8); c = t; return } function In(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0; r = n >>> 2; if ((r | 0) == 0) { return } else { i = 0 } do { Hn(e + (i << 2) | 0, s[t + (i << 2) >> 2] | 0); i = i + 1 | 0 } while (i >>> 0 < r >>> 0); return } function qn(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var i = 0, s = 0, o = 0, u = 0, a = 0, f = 0, l = 0; i = c; c = c + 96 | 0; s = i | 0; if (n >>> 0 > 64) { o = e | 0; kn(o); Dn(o, t, n); u = i + 64 | 0; jn(u, o); a = u; f = 32 } else { a = t; f = n } n = e | 0; kn(n); t = s | 0; ti(t | 0, 54, 64); if ((f | 0) != 0) { u = 0; do { o = s + u | 0; r[o] = r[o] ^ r[a + u | 0]; u = u + 1 | 0 } while (u >>> 0 < f >>> 0) } Dn(n, t, 64); n = e + 104 | 0; kn(n); ti(t | 0, 92, 64); if ((f | 0) == 0) { Dn(n, t, 64); c = i; return } else { l = 0 } do { e = s + l | 0; r[e] = r[e] ^ r[a + l | 0]; l = l + 1 | 0 } while (l >>> 0 < f >>> 0); Dn(n, t, 64); c = i; return } function Rn(e, t, n) { e = e | 0; t = t | 0; n = n | 0; Dn(e | 0, t, n); return } function Un(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0; n = c; c = c + 32 | 0; r = n | 0; jn(r, t | 0); i = t + 104 | 0; Dn(i, r, 32); jn(e, i); c = n; return } function zn(e, t, n, i, s, o, u, a) { e = e | 0; t = t | 0; n = n | 0; i = i | 0; s = s | 0; o = o | 0; u = u | 0; a = a | 0; var f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0; f = c; c = c + 488 | 0; l = f | 0; h = f + 208 | 0; p = f + 424 | 0; d = f + 456 | 0; qn(l, e, t); Rn(l, n, i); if ((a | 0) == 0) { c = f; return } i = f + 416 | 0; n = h; v = l; l = p | 0; m = d | 0; g = 0; y = o >>> 0 < g >>> 0 | o >>> 0 == g >>> 0 & s >>> 0 < 2 >>> 0; g = 0; b = 0; do { g = g + 1 | 0; Hn(i, g); ei(n | 0, v | 0, 208) | 0; Rn(h, i, 4); Un(l, h); ei(m | 0, l | 0, 32) | 0; if (!y) { w = 0; E = 2; do { qn(h, e, t); Rn(h, l, 32); Un(l, h); S = 0; do { x = d + S | 0; r[x] = r[x] ^ r[p + S | 0]; S = S + 1 | 0 } while ((S | 0) < 32); E = ri(E, w, 1, 0) | 0; w = B } while (!(w >>> 0 > o >>> 0 | w >>> 0 == o >>> 0 & E >>> 0 > s >>> 0)) } E = a - b | 0; w = E >>> 0 > 32 ? 32 : E; E = u + b | 0; ei(E | 0, m | 0, w) | 0; b = g << 5 } while (b >>> 0 < a >>> 0); c = f; return } function Wn(e, t) { e = e | 0; t = t | 0; var n = 0; n = 0; do { s[e + (n << 2) >> 2] = Bn(t + (n << 2) | 0) | 0; n = n + 1 | 0 } while (n >>> 0 < 16); return } function Xn(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0, F = 0, I = 0, q = 0, R = 0, U = 0, z = 0, W = 0, X = 0, V = 0, $ = 0, J = 0, K = 0, Q = 0, G = 0, Y = 0, Z = 0, et = 0, tt = 0, nt = 0, rt = 0, it = 0, st = 0, ot = 0, ut = 0, at = 0, ft = 0, lt = 0, ct = 0, ht = 0, pt = 0, dt = 0, vt = 0, mt = 0, gt = 0, yt = 0, bt = 0, Et = 0, St = 0, Tt = 0, Nt = 0, Ct = 0, kt = 0, Lt = 0, At = 0, Ot = 0, Mt = 0, _t = 0, Dt = 0, Pt = 0; do { if (e >>> 0 < 245) { if (e >>> 0 < 11) { t = 16 } else { t = e + 11 & -8 } n = t >>> 3; r = s[208] | 0; i = r >>> (n >>> 0); if ((i & 3 | 0) != 0) { o = (i & 1 ^ 1) + n | 0; u = o << 1; a = 872 + (u << 2) | 0; f = 872 + (u + 2 << 2) | 0; u = s[f >> 2] | 0; l = u + 8 | 0; c = s[l >> 2] | 0; do { if ((a | 0) == (c | 0)) { s[208] = r & ~(1 << o) } else { if (c >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } h = c + 12 | 0; if ((s[h >> 2] | 0) == (u | 0)) { s[h >> 2] = a; s[f >> 2] = c; break } else { xt(); return 0 } } } while (0); c = o << 3; s[u + 4 >> 2] = c | 3; f = u + (c | 4) | 0; s[f >> 2] = s[f >> 2] | 1; p = l; return p | 0 } if (t >>> 0 <= (s[210] | 0) >>> 0) { d = t; break } if ((i | 0) != 0) { f = 2 << n; c = i << n & (f | -f); f = (c & -c) - 1 | 0; c = f >>> 12 & 16; a = f >>> (c >>> 0); f = a >>> 5 & 8; h = a >>> (f >>> 0); a = h >>> 2 & 4; v = h >>> (a >>> 0); h = v >>> 1 & 2; m = v >>> (h >>> 0); v = m >>> 1 & 1; g = (f | c | a | h | v) + (m >>> (v >>> 0)) | 0; v = g << 1; m = 872 + (v << 2) | 0; h = 872 + (v + 2 << 2) | 0; v = s[h >> 2] | 0; a = v + 8 | 0; c = s[a >> 2] | 0; do { if ((m | 0) == (c | 0)) { s[208] = r & ~(1 << g) } else { if (c >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } f = c + 12 | 0; if ((s[f >> 2] | 0) == (v | 0)) { s[f >> 2] = m; s[h >> 2] = c; break } else { xt(); return 0 } } } while (0); c = g << 3; h = c - t | 0; s[v + 4 >> 2] = t | 3; m = v; r = m + t | 0; s[m + (t | 4) >> 2] = h | 1; s[m + c >> 2] = h; c = s[210] | 0; if ((c | 0) != 0) { m = s[213] | 0; n = c >>> 3; c = n << 1; i = 872 + (c << 2) | 0; l = s[208] | 0; u = 1 << n; do { if ((l & u | 0) == 0) { s[208] = l | u; y = i; b = 872 + (c + 2 << 2) | 0 } else { n = 872 + (c + 2 << 2) | 0; o = s[n >> 2] | 0; if (o >>> 0 >= (s[212] | 0) >>> 0) { y = o; b = n; break } xt(); return 0 } } while (0); s[b >> 2] = m; s[y + 12 >> 2] = m; s[m + 8 >> 2] = y; s[m + 12 >> 2] = i } s[210] = h; s[213] = r; p = a; return p | 0 } c = s[209] | 0; if ((c | 0) == 0) { d = t; break } u = (c & -c) - 1 | 0; c = u >>> 12 & 16; l = u >>> (c >>> 0); u = l >>> 5 & 8; v = l >>> (u >>> 0); l = v >>> 2 & 4; g = v >>> (l >>> 0); v = g >>> 1 & 2; n = g >>> (v >>> 0); g = n >>> 1 & 1; o = s[1136 + ((u | c | l | v | g) + (n >>> (g >>> 0)) << 2) >> 2] | 0; g = o; n = o; v = (s[o + 4 >> 2] & -8) - t | 0; while (1) { o = s[g + 16 >> 2] | 0; if ((o | 0) == 0) { l = s[g + 20 >> 2] | 0; if ((l | 0) == 0) { break } else { w = l } } else { w = o } o = (s[w + 4 >> 2] & -8) - t | 0; l = o >>> 0 < v >>> 0; g = w; n = l ? w : n; v = l ? o : v } g = n; a = s[212] | 0; if (g >>> 0 < a >>> 0) { xt(); return 0 } r = g + t | 0; h = r; if (g >>> 0 >= r >>> 0) { xt(); return 0 } r = s[n + 24 >> 2] | 0; i = s[n + 12 >> 2] | 0; do { if ((i | 0) == (n | 0)) { m = n + 20 | 0; o = s[m >> 2] | 0; if ((o | 0) == 0) { l = n + 16 | 0; c = s[l >> 2] | 0; if ((c | 0) == 0) { E = 0; break } else { S = c; x = l } } else { S = o; x = m } while (1) { m = S + 20 | 0; o = s[m >> 2] | 0; if ((o | 0) != 0) { S = o; x = m; continue } m = S + 16 | 0; o = s[m >> 2] | 0; if ((o | 0) == 0) { break } else { S = o; x = m } } if (x >>> 0 < a >>> 0) { xt(); return 0 } else { s[x >> 2] = 0; E = S; break } } else { m = s[n + 8 >> 2] | 0; if (m >>> 0 < a >>> 0) { xt(); return 0 } o = m + 12 | 0; if ((s[o >> 2] | 0) != (n | 0)) { xt(); return 0 } l = i + 8 | 0; if ((s[l >> 2] | 0) == (n | 0)) { s[o >> 2] = i; s[l >> 2] = m; E = i; break } else { xt(); return 0 } } } while (0); e: do { if ((r | 0) != 0) { i = n + 28 | 0; a = 1136 + (s[i >> 2] << 2) | 0; do { if ((n | 0) == (s[a >> 2] | 0)) { s[a >> 2] = E; if ((E | 0) != 0) { break } s[209] = s[209] & ~(1 << s[i >> 2]); break e } else { if (r >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } m = r + 16 | 0; if ((s[m >> 2] | 0) == (n | 0)) { s[m >> 2] = E } else { s[r + 20 >> 2] = E } if ((E | 0) == 0) { break e } } } while (0); if (E >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } s[E + 24 >> 2] = r; i = s[n + 16 >> 2] | 0; do { if ((i | 0) != 0) { if (i >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[E + 16 >> 2] = i; s[i + 24 >> 2] = E; break } } } while (0); i = s[n + 20 >> 2] | 0; if ((i | 0) == 0) { break } if (i >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[E + 20 >> 2] = i; s[i + 24 >> 2] = E; break } } } while (0); if (v >>> 0 < 16) { r = v + t | 0; s[n + 4 >> 2] = r | 3; i = g + (r + 4) | 0; s[i >> 2] = s[i >> 2] | 1 } else { s[n + 4 >> 2] = t | 3; s[g + (t | 4) >> 2] = v | 1; s[g + (v + t) >> 2] = v; i = s[210] | 0; if ((i | 0) != 0) { r = s[213] | 0; a = i >>> 3; i = a << 1; m = 872 + (i << 2) | 0; l = s[208] | 0; o = 1 << a; do { if ((l & o | 0) == 0) { s[208] = l | o; T = m; N = 872 + (i + 2 << 2) | 0 } else { a = 872 + (i + 2 << 2) | 0; c = s[a >> 2] | 0; if (c >>> 0 >= (s[212] | 0) >>> 0) { T = c; N = a; break } xt(); return 0 } } while (0); s[N >> 2] = r; s[T + 12 >> 2] = r; s[r + 8 >> 2] = T; s[r + 12 >> 2] = m } s[210] = v; s[213] = h } i = n + 8 | 0; if ((i | 0) == 0) { d = t; break } else { p = i } return p | 0 } else { if (e >>> 0 > 4294967231) { d = -1; break } i = e + 11 | 0; o = i & -8; l = s[209] | 0; if ((l | 0) == 0) { d = o; break } g = -o | 0; a = i >>> 8; do { if ((a | 0) == 0) { C = 0 } else { if (o >>> 0 > 16777215) { C = 31; break } i = (a + 1048320 | 0) >>> 16 & 8; c = a << i; u = (c + 520192 | 0) >>> 16 & 4; f = c << u; c = (f + 245760 | 0) >>> 16 & 2; k = 14 - (u | i | c) + (f << c >>> 15) | 0; C = o >>> ((k + 7 | 0) >>> 0) & 1 | k << 1 } } while (0); a = s[1136 + (C << 2) >> 2] | 0; t: do { if ((a | 0) == 0) { L = 0; A = g; O = 0 } else { if ((C | 0) == 31) { M = 0 } else { M = 25 - (C >>> 1) | 0 } n = 0; h = g; v = a; m = o << M; r = 0; while (1) { k = s[v + 4 >> 2] & -8; c = k - o | 0; if (c >>> 0 < h >>> 0) { if ((k | 0) == (o | 0)) { L = v; A = c; O = v; break t } else { _ = v; D = c } } else { _ = n; D = h } c = s[v + 20 >> 2] | 0; k = s[v + 16 + (m >>> 31 << 2) >> 2] | 0; f = (c | 0) == 0 | (c | 0) == (k | 0) ? r : c; if ((k | 0) == 0) { L = _; A = D; O = f; break } else { n = _; h = D; v = k; m = m << 1; r = f } } } } while (0); if ((O | 0) == 0 & (L | 0) == 0) { a = 2 << C; g = l & (a | -a); if ((g | 0) == 0) { d = o; break } a = (g & -g) - 1 | 0; g = a >>> 12 & 16; r = a >>> (g >>> 0); a = r >>> 5 & 8; m = r >>> (a >>> 0); r = m >>> 2 & 4; v = m >>> (r >>> 0); m = v >>> 1 & 2; h = v >>> (m >>> 0); v = h >>> 1 & 1; P = s[1136 + ((a | g | r | m | v) + (h >>> (v >>> 0)) << 2) >> 2] | 0 } else { P = O } if ((P | 0) == 0) { H = A; B = L } else { v = P; h = A; m = L; while (1) { r = (s[v + 4 >> 2] & -8) - o | 0; g = r >>> 0 < h >>> 0; a = g ? r : h; r = g ? v : m; g = s[v + 16 >> 2] | 0; if ((g | 0) != 0) { v = g; h = a; m = r; continue } g = s[v + 20 >> 2] | 0; if ((g | 0) == 0) { H = a; B = r; break } else { v = g; h = a; m = r } } } if ((B | 0) == 0) { d = o; break } if (H >>> 0 >= ((s[210] | 0) - o | 0) >>> 0) { d = o; break } m = B; h = s[212] | 0; if (m >>> 0 < h >>> 0) { xt(); return 0 } v = m + o | 0; l = v; if (m >>> 0 >= v >>> 0) { xt(); return 0 } r = s[B + 24 >> 2] | 0; a = s[B + 12 >> 2] | 0; do { if ((a | 0) == (B | 0)) { g = B + 20 | 0; n = s[g >> 2] | 0; if ((n | 0) == 0) { f = B + 16 | 0; k = s[f >> 2] | 0; if ((k | 0) == 0) { j = 0; break } else { F = k; I = f } } else { F = n; I = g } while (1) { g = F + 20 | 0; n = s[g >> 2] | 0; if ((n | 0) != 0) { F = n; I = g; continue } g = F + 16 | 0; n = s[g >> 2] | 0; if ((n | 0) == 0) { break } else { F = n; I = g } } if (I >>> 0 < h >>> 0) { xt(); return 0 } else { s[I >> 2] = 0; j = F; break } } else { g = s[B + 8 >> 2] | 0; if (g >>> 0 < h >>> 0) { xt(); return 0 } n = g + 12 | 0; if ((s[n >> 2] | 0) != (B | 0)) { xt(); return 0 } f = a + 8 | 0; if ((s[f >> 2] | 0) == (B | 0)) { s[n >> 2] = a; s[f >> 2] = g; j = a; break } else { xt(); return 0 } } } while (0); n: do { if ((r | 0) != 0) { a = B + 28 | 0; h = 1136 + (s[a >> 2] << 2) | 0; do { if ((B | 0) == (s[h >> 2] | 0)) { s[h >> 2] = j; if ((j | 0) != 0) { break } s[209] = s[209] & ~(1 << s[a >> 2]); break n } else { if (r >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } g = r + 16 | 0; if ((s[g >> 2] | 0) == (B | 0)) { s[g >> 2] = j } else { s[r + 20 >> 2] = j } if ((j | 0) == 0) { break n } } } while (0); if (j >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } s[j + 24 >> 2] = r; a = s[B + 16 >> 2] | 0; do { if ((a | 0) != 0) { if (a >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[j + 16 >> 2] = a; s[a + 24 >> 2] = j; break } } } while (0); a = s[B + 20 >> 2] | 0; if ((a | 0) == 0) { break } if (a >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[j + 20 >> 2] = a; s[a + 24 >> 2] = j; break } } } while (0); do { if (H >>> 0 < 16) { r = H + o | 0; s[B + 4 >> 2] = r | 3; a = m + (r + 4) | 0; s[a >> 2] = s[a >> 2] | 1 } else { s[B + 4 >> 2] = o | 3; s[m + (o | 4) >> 2] = H | 1; s[m + (H + o) >> 2] = H; a = H >>> 3; if (H >>> 0 < 256) { r = a << 1; h = 872 + (r << 2) | 0; g = s[208] | 0; f = 1 << a; do { if ((g & f | 0) == 0) { s[208] = g | f; q = h; R = 872 + (r + 2 << 2) | 0 } else { a = 872 + (r + 2 << 2) | 0; n = s[a >> 2] | 0; if (n >>> 0 >= (s[212] | 0) >>> 0) { q = n; R = a; break } xt(); return 0 } } while (0); s[R >> 2] = l; s[q + 12 >> 2] = l; s[m + (o + 8) >> 2] = q; s[m + (o + 12) >> 2] = h; break } r = v; f = H >>> 8; do { if ((f | 0) == 0) { U = 0 } else { if (H >>> 0 > 16777215) { U = 31; break } g = (f + 1048320 | 0) >>> 16 & 8; a = f << g; n = (a + 520192 | 0) >>> 16 & 4; k = a << n; a = (k + 245760 | 0) >>> 16 & 2; c = 14 - (n | g | a) + (k << a >>> 15) | 0; U = H >>> ((c + 7 | 0) >>> 0) & 1 | c << 1 } } while (0); f = 1136 + (U << 2) | 0; s[m + (o + 28) >> 2] = U; s[m + (o + 20) >> 2] = 0; s[m + (o + 16) >> 2] = 0; h = s[209] | 0; c = 1 << U; if ((h & c | 0) == 0) { s[209] = h | c; s[f >> 2] = r; s[m + (o + 24) >> 2] = f; s[m + (o + 12) >> 2] = r; s[m + (o + 8) >> 2] = r; break } if ((U | 0) == 31) { z = 0 } else { z = 25 - (U >>> 1) | 0 } c = H << z; h = s[f >> 2] | 0; while (1) { if ((s[h + 4 >> 2] & -8 | 0) == (H | 0)) { break } W = h + 16 + (c >>> 31 << 2) | 0; f = s[W >> 2] | 0; if ((f | 0) == 0) { X = 262; break } else { c = c << 1; h = f } } if ((X | 0) == 262) { if (W >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[W >> 2] = r; s[m + (o + 24) >> 2] = h; s[m + (o + 12) >> 2] = r; s[m + (o + 8) >> 2] = r; break } } c = h + 8 | 0; f = s[c >> 2] | 0; a = s[212] | 0; if (h >>> 0 < a >>> 0) { xt(); return 0 } if (f >>> 0 < a >>> 0) { xt(); return 0 } else { s[f + 12 >> 2] = r; s[c >> 2] = r; s[m + (o + 8) >> 2] = f; s[m + (o + 12) >> 2] = h; s[m + (o + 24) >> 2] = 0; break } } } while (0); m = B + 8 | 0; if ((m | 0) == 0) { d = o; break } else { p = m } return p | 0 } } while (0); B = s[210] | 0; if (d >>> 0 <= B >>> 0) { W = B - d | 0; H = s[213] | 0; if (W >>> 0 > 15) { z = H; s[213] = z + d; s[210] = W; s[z + (d + 4) >> 2] = W | 1; s[z + B >> 2] = W; s[H + 4 >> 2] = d | 3 } else { s[210] = 0; s[213] = 0; s[H + 4 >> 2] = B | 3; W = H + (B + 4) | 0; s[W >> 2] = s[W >> 2] | 1 } p = H + 8 | 0; return p | 0 } H = s[211] | 0; if (d >>> 0 < H >>> 0) { W = H - d | 0; s[211] = W; H = s[214] | 0; B = H; s[214] = B + d; s[B + (d + 4) >> 2] = W | 1; s[H + 4 >> 2] = d | 3; p = H + 8 | 0; return p | 0 } do { if ((s[200] | 0) == 0) { H = wt(8) | 0; if ((H - 1 & H | 0) == 0) { s[202] = H; s[201] = H; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt(); return 0 } } } while (0); H = d + 48 | 0; W = s[202] | 0; B = d + 47 | 0; z = W + B | 0; U = -W | 0; W = z & U; if (W >>> 0 <= d >>> 0) { p = 0; return p | 0 } q = s[318] | 0; do { if ((q | 0) != 0) { R = s[316] | 0; j = R + W | 0; if (j >>> 0 <= R >>> 0 | j >>> 0 > q >>> 0) { p = 0 } else { break } return p | 0 } } while (0); r: do { if ((s[319] & 4 | 0) == 0) { q = s[214] | 0; i: do { if ((q | 0) == 0) { X = 292 } else { j = q; R = 1280; while (1) { V = R | 0; F = s[V >> 2] | 0; if (F >>> 0 <= j >>> 0) { $ = R + 4 | 0; if ((F + (s[$ >> 2] | 0) | 0) >>> 0 > j >>> 0) { break } } F = s[R + 8 >> 2] | 0; if ((F | 0) == 0) { X = 292; break i } else { R = F } } if ((R | 0) == 0) { X = 292; break } j = z - (s[211] | 0) & U; if (j >>> 0 >= 2147483647) { J = 0; break } h = Qt(j | 0) | 0; r = (h | 0) == ((s[V >> 2] | 0) + (s[$ >> 2] | 0) | 0); K = r ? h : -1; Q = r ? j : 0; G = h; Y = j; X = 301 } } while (0); do { if ((X | 0) == 292) { q = Qt(0) | 0; if ((q | 0) == -1) { J = 0; break } o = q; j = s[201] | 0; h = j - 1 | 0; if ((h & o | 0) == 0) { Z = W } else { Z = W - o + (h + o & -j) | 0 } j = s[316] | 0; o = j + Z | 0; if (!(Z >>> 0 > d >>> 0 & Z >>> 0 < 2147483647)) { J = 0; break } h = s[318] | 0; if ((h | 0) != 0) { if (o >>> 0 <= j >>> 0 | o >>> 0 > h >>> 0) { J = 0; break } } h = Qt(Z | 0) | 0; o = (h | 0) == (q | 0); K = o ? q : -1; Q = o ? Z : 0; G = h; Y = Z; X = 301 } } while (0); s: do { if ((X | 0) == 301) { h = -Y | 0; if ((K | 0) != -1) { et = Q; tt = K; X = 312; break r } do { if ((G | 0) != -1 & Y >>> 0 < 2147483647 & Y >>> 0 < H >>> 0) { o = s[202] | 0; q = B - Y + o & -o; if (q >>> 0 >= 2147483647) { nt = Y; break } if ((Qt(q | 0) | 0) == -1) { Qt(h | 0) | 0; J = Q; break s } else { nt = q + Y | 0; break } } else { nt = Y } } while (0); if ((G | 0) == -1) { J = Q } else { et = nt; tt = G; X = 312; break r } } } while (0); s[319] = s[319] | 4; rt = J; X = 309 } else { rt = 0; X = 309 } } while (0); do { if ((X | 0) == 309) { if (W >>> 0 >= 2147483647) { break } J = Qt(W | 0) | 0; G = Qt(0) | 0; if (!((G | 0) != -1 & (J | 0) != -1 & J >>> 0 < G >>> 0)) { break } nt = G - J | 0; G = nt >>> 0 > (d + 40 | 0) >>> 0; Q = G ? J : -1; if ((Q | 0) != -1) { et = G ? nt : rt; tt = Q; X = 312 } } } while (0); do { if ((X | 0) == 312) { rt = (s[316] | 0) + et | 0; s[316] = rt; if (rt >>> 0 > (s[317] | 0) >>> 0) { s[317] = rt } rt = s[214] | 0; o: do { if ((rt | 0) == 0) { W = s[212] | 0; if ((W | 0) == 0 | tt >>> 0 < W >>> 0) { s[212] = tt } s[320] = tt; s[321] = et; s[323] = 0; s[217] = s[200]; s[216] = -1; W = 0; do { Q = W << 1; nt = 872 + (Q << 2) | 0; s[872 + (Q + 3 << 2) >> 2] = nt; s[872 + (Q + 2 << 2) >> 2] = nt; W = W + 1 | 0 } while (W >>> 0 < 32); W = tt + 8 | 0; if ((W & 7 | 0) == 0) { it = 0 } else { it = -W & 7 } W = et - 40 - it | 0; s[214] = tt + it; s[211] = W; s[tt + (it + 4) >> 2] = W | 1; s[tt + (et - 36) >> 2] = 40; s[215] = s[204] } else { W = 1280; while (1) { st = s[W >> 2] | 0; ot = W + 4 | 0; ut = s[ot >> 2] | 0; if ((tt | 0) == (st + ut | 0)) { X = 324; break } nt = s[W + 8 >> 2] | 0; if ((nt | 0) == 0) { break } else { W = nt } } do { if ((X | 0) == 324) { if ((s[W + 12 >> 2] & 8 | 0) != 0) { break } nt = rt; if (!(nt >>> 0 >= st >>> 0 & nt >>> 0 < tt >>> 0)) { break } s[ot >> 2] = ut + et; nt = s[214] | 0; Q = (s[211] | 0) + et | 0; G = nt; J = nt + 8 | 0; if ((J & 7 | 0) == 0) { at = 0 } else { at = -J & 7 } J = Q - at | 0; s[214] = G + at; s[211] = J; s[G + (at + 4) >> 2] = J | 1; s[G + (Q + 4) >> 2] = 40; s[215] = s[204]; break o } } while (0); if (tt >>> 0 < (s[212] | 0) >>> 0) { s[212] = tt } W = tt + et | 0; Q = 1280; while (1) { ft = Q | 0; if ((s[ft >> 2] | 0) == (W | 0)) { X = 334; break } G = s[Q + 8 >> 2] | 0; if ((G | 0) == 0) { break } else { Q = G } } do { if ((X | 0) == 334) { if ((s[Q + 12 >> 2] & 8 | 0) != 0) { break } s[ft >> 2] = tt; W = Q + 4 | 0; s[W >> 2] = (s[W >> 2] | 0) + et; W = tt + 8 | 0; if ((W & 7 | 0) == 0) { lt = 0 } else { lt = -W & 7 } W = tt + (et + 8) | 0; if ((W & 7 | 0) == 0) { ct = 0 } else { ct = -W & 7 } W = tt + (ct + et) | 0; G = W; J = lt + d | 0; nt = tt + J | 0; Y = nt; B = W - (tt + lt) - d | 0; s[tt + (lt + 4) >> 2] = d | 3; do { if ((G | 0) == (s[214] | 0)) { H = (s[211] | 0) + B | 0; s[211] = H; s[214] = Y; s[tt + (J + 4) >> 2] = H | 1 } else { if ((G | 0) == (s[213] | 0)) { H = (s[210] | 0) + B | 0; s[210] = H; s[213] = Y; s[tt + (J + 4) >> 2] = H | 1; s[tt + (H + J) >> 2] = H; break } H = et + 4 | 0; K = s[tt + (H + ct) >> 2] | 0; if ((K & 3 | 0) == 1) { Z = K & -8; $ = K >>> 3; u: do { if (K >>> 0 < 256) { V = s[tt + ((ct | 8) + et) >> 2] | 0; U = s[tt + (et + 12 + ct) >> 2] | 0; z = 872 + ($ << 1 << 2) | 0; do { if ((V | 0) != (z | 0)) { if (V >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } if ((s[V + 12 >> 2] | 0) == (G | 0)) { break } xt(); return 0 } } while (0); if ((U | 0) == (V | 0)) { s[208] = s[208] & ~(1 << $); break } do { if ((U | 0) == (z | 0)) { ht = U + 8 | 0 } else { if (U >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } h = U + 8 | 0; if ((s[h >> 2] | 0) == (G | 0)) { ht = h; break } xt(); return 0 } } while (0); s[V + 12 >> 2] = U; s[ht >> 2] = V } else { z = W; h = s[tt + ((ct | 24) + et) >> 2] | 0; R = s[tt + (et + 12 + ct) >> 2] | 0; do { if ((R | 0) == (z | 0)) { q = ct | 16; o = tt + (H + q) | 0; j = s[o >> 2] | 0; if ((j | 0) == 0) { r = tt + (q + et) | 0; q = s[r >> 2] | 0; if ((q | 0) == 0) { pt = 0; break } else { dt = q; vt = r } } else { dt = j; vt = o } while (1) { o = dt + 20 | 0; j = s[o >> 2] | 0; if ((j | 0) != 0) { dt = j; vt = o; continue } o = dt + 16 | 0; j = s[o >> 2] | 0; if ((j | 0) == 0) { break } else { dt = j; vt = o } } if (vt >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[vt >> 2] = 0; pt = dt; break } } else { o = s[tt + ((ct | 8) + et) >> 2] | 0; if (o >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } j = o + 12 | 0; if ((s[j >> 2] | 0) != (z | 0)) { xt(); return 0 } r = R + 8 | 0; if ((s[r >> 2] | 0) == (z | 0)) { s[j >> 2] = R; s[r >> 2] = o; pt = R; break } else { xt(); return 0 } } } while (0); if ((h | 0) == 0) { break } R = tt + (et + 28 + ct) | 0; V = 1136 + (s[R >> 2] << 2) | 0; do { if ((z | 0) == (s[V >> 2] | 0)) { s[V >> 2] = pt; if ((pt | 0) != 0) { break } s[209] = s[209] & ~(1 << s[R >> 2]); break u } else { if (h >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } U = h + 16 | 0; if ((s[U >> 2] | 0) == (z | 0)) { s[U >> 2] = pt } else { s[h + 20 >> 2] = pt } if ((pt | 0) == 0) { break u } } } while (0); if (pt >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } s[pt + 24 >> 2] = h; z = ct | 16; R = s[tt + (z + et) >> 2] | 0; do { if ((R | 0) != 0) { if (R >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[pt + 16 >> 2] = R; s[R + 24 >> 2] = pt; break } } } while (0); R = s[tt + (H + z) >> 2] | 0; if ((R | 0) == 0) { break } if (R >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[pt + 20 >> 2] = R; s[R + 24 >> 2] = pt; break } } } while (0); mt = tt + ((Z | ct) + et) | 0; gt = Z + B | 0 } else { mt = G; gt = B } H = mt + 4 | 0; s[H >> 2] = s[H >> 2] & -2; s[tt + (J + 4) >> 2] = gt | 1; s[tt + (gt + J) >> 2] = gt; H = gt >>> 3; if (gt >>> 0 < 256) { $ = H << 1; K = 872 + ($ << 2) | 0; R = s[208] | 0; h = 1 << H; do { if ((R & h | 0) == 0) { s[208] = R | h; yt = K; bt = 872 + ($ + 2 << 2) | 0 } else { H = 872 + ($ + 2 << 2) | 0; V = s[H >> 2] | 0; if (V >>> 0 >= (s[212] | 0) >>> 0) { yt = V; bt = H; break } xt(); return 0 } } while (0); s[bt >> 2] = Y; s[yt + 12 >> 2] = Y; s[tt + (J + 8) >> 2] = yt; s[tt + (J + 12) >> 2] = K; break } $ = nt; h = gt >>> 8; do { if ((h | 0) == 0) { Et = 0 } else { if (gt >>> 0 > 16777215) { Et = 31; break } R = (h + 1048320 | 0) >>> 16 & 8; Z = h << R; H = (Z + 520192 | 0) >>> 16 & 4; V = Z << H; Z = (V + 245760 | 0) >>> 16 & 2; U = 14 - (H | R | Z) + (V << Z >>> 15) | 0; Et = gt >>> ((U + 7 | 0) >>> 0) & 1 | U << 1 } } while (0); h = 1136 + (Et << 2) | 0; s[tt + (J + 28) >> 2] = Et; s[tt + (J + 20) >> 2] = 0; s[tt + (J + 16) >> 2] = 0; K = s[209] | 0; U = 1 << Et; if ((K & U | 0) == 0) { s[209] = K | U; s[h >> 2] = $; s[tt + (J + 24) >> 2] = h; s[tt + (J + 12) >> 2] = $; s[tt + (J + 8) >> 2] = $; break } if ((Et | 0) == 31) { St = 0 } else { St = 25 - (Et >>> 1) | 0 } U = gt << St; K = s[h >> 2] | 0; while (1) { if ((s[K + 4 >> 2] & -8 | 0) == (gt | 0)) { break } Tt = K + 16 + (U >>> 31 << 2) | 0; h = s[Tt >> 2] | 0; if ((h | 0) == 0) { X = 407; break } else { U = U << 1; K = h } } if ((X | 0) == 407) { if (Tt >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[Tt >> 2] = $; s[tt + (J + 24) >> 2] = K; s[tt + (J + 12) >> 2] = $; s[tt + (J + 8) >> 2] = $; break } } U = K + 8 | 0; h = s[U >> 2] | 0; Z = s[212] | 0; if (K >>> 0 < Z >>> 0) { xt(); return 0 } if (h >>> 0 < Z >>> 0) { xt(); return 0 } else { s[h + 12 >> 2] = $; s[U >> 2] = $; s[tt + (J + 8) >> 2] = h; s[tt + (J + 12) >> 2] = K; s[tt + (J + 24) >> 2] = 0; break } } } while (0); p = tt + (lt | 8) | 0; return p | 0 } } while (0); Q = rt; J = 1280; while (1) { Nt = s[J >> 2] | 0; if (Nt >>> 0 <= Q >>> 0) { Ct = s[J + 4 >> 2] | 0; kt = Nt + Ct | 0; if (kt >>> 0 > Q >>> 0) { break } } J = s[J + 8 >> 2] | 0 } J = Nt + (Ct - 39) | 0; if ((J & 7 | 0) == 0) { Lt = 0 } else { Lt = -J & 7 } J = Nt + (Ct - 47 + Lt) | 0; nt = J >>> 0 < (rt + 16 | 0) >>> 0 ? Q : J; J = nt + 8 | 0; Y = tt + 8 | 0; if ((Y & 7 | 0) == 0) { At = 0 } else { At = -Y & 7 } Y = et - 40 - At | 0; s[214] = tt + At; s[211] = Y; s[tt + (At + 4) >> 2] = Y | 1; s[tt + (et - 36) >> 2] = 40; s[215] = s[204]; s[nt + 4 >> 2] = 27; s[J >> 2] = s[320]; s[J + 4 >> 2] = s[1284 >> 2]; s[J + 8 >> 2] = s[1288 >> 2]; s[J + 12 >> 2] = s[1292 >> 2]; s[320] = tt; s[321] = et; s[323] = 0; s[322] = J; J = nt + 28 | 0; s[J >> 2] = 7; if ((nt + 32 | 0) >>> 0 < kt >>> 0) { Y = J; while (1) { J = Y + 4 | 0; s[J >> 2] = 7; if ((Y + 8 | 0) >>> 0 < kt >>> 0) { Y = J } else { break } } } if ((nt | 0) == (Q | 0)) { break } Y = nt - rt | 0; J = Q + (Y + 4) | 0; s[J >> 2] = s[J >> 2] & -2; s[rt + 4 >> 2] = Y | 1; s[Q + Y >> 2] = Y; J = Y >>> 3; if (Y >>> 0 < 256) { B = J << 1; G = 872 + (B << 2) | 0; W = s[208] | 0; h = 1 << J; do { if ((W & h | 0) == 0) { s[208] = W | h; Ot = G; Mt = 872 + (B + 2 << 2) | 0 } else { J = 872 + (B + 2 << 2) | 0; U = s[J >> 2] | 0; if (U >>> 0 >= (s[212] | 0) >>> 0) { Ot = U; Mt = J; break } xt(); return 0 } } while (0); s[Mt >> 2] = rt; s[Ot + 12 >> 2] = rt; s[rt + 8 >> 2] = Ot; s[rt + 12 >> 2] = G; break } B = rt; h = Y >>> 8; do { if ((h | 0) == 0) { _t = 0 } else { if (Y >>> 0 > 16777215) { _t = 31; break } W = (h + 1048320 | 0) >>> 16 & 8; Q = h << W; nt = (Q + 520192 | 0) >>> 16 & 4; J = Q << nt; Q = (J + 245760 | 0) >>> 16 & 2; U = 14 - (nt | W | Q) + (J << Q >>> 15) | 0; _t = Y >>> ((U + 7 | 0) >>> 0) & 1 | U << 1 } } while (0); h = 1136 + (_t << 2) | 0; s[rt + 28 >> 2] = _t; s[rt + 20 >> 2] = 0; s[rt + 16 >> 2] = 0; G = s[209] | 0; U = 1 << _t; if ((G & U | 0) == 0) { s[209] = G | U; s[h >> 2] = B; s[rt + 24 >> 2] = h; s[rt + 12 >> 2] = rt; s[rt + 8 >> 2] = rt; break } if ((_t | 0) == 31) { Dt = 0 } else { Dt = 25 - (_t >>> 1) | 0 } U = Y << Dt; G = s[h >> 2] | 0; while (1) { if ((s[G + 4 >> 2] & -8 | 0) == (Y | 0)) { break } Pt = G + 16 + (U >>> 31 << 2) | 0; h = s[Pt >> 2] | 0; if ((h | 0) == 0) { X = 442; break } else { U = U << 1; G = h } } if ((X | 0) == 442) { if (Pt >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[Pt >> 2] = B; s[rt + 24 >> 2] = G; s[rt + 12 >> 2] = rt; s[rt + 8 >> 2] = rt; break } } U = G + 8 | 0; Y = s[U >> 2] | 0; h = s[212] | 0; if (G >>> 0 < h >>> 0) { xt(); return 0 } if (Y >>> 0 < h >>> 0) { xt(); return 0 } else { s[Y + 12 >> 2] = B; s[U >> 2] = B; s[rt + 8 >> 2] = Y; s[rt + 12 >> 2] = G; s[rt + 24 >> 2] = 0; break } } } while (0); rt = s[211] | 0; if (rt >>> 0 <= d >>> 0) { break } Y = rt - d | 0; s[211] = Y; rt = s[214] | 0; U = rt; s[214] = U + d; s[U + (d + 4) >> 2] = Y | 1; s[rt + 4 >> 2] = d | 3; p = rt + 8 | 0; return p | 0 } } while (0); s[(Yt() | 0) >> 2] = 12; p = 0; return p | 0 } function Vn(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0, F = 0, I = 0, q = 0; if ((e | 0) == 0) { return } t = e - 8 | 0; n = t; r = s[212] | 0; if (t >>> 0 < r >>> 0) { xt() } i = s[e - 4 >> 2] | 0; o = i & 3; if ((o | 0) == 1) { xt() } u = i & -8; a = e + (u - 8) | 0; f = a; e: do { if ((i & 1 | 0) == 0) { l = s[t >> 2] | 0; if ((o | 0) == 0) { return } c = -8 - l | 0; h = e + c | 0; p = h; d = l + u | 0; if (h >>> 0 < r >>> 0) { xt() } if ((p | 0) == (s[213] | 0)) { v = e + (u - 4) | 0; if ((s[v >> 2] & 3 | 0) != 3) { m = p; g = d; break } s[210] = d; s[v >> 2] = s[v >> 2] & -2; s[e + (c + 4) >> 2] = d | 1; s[a >> 2] = d; return } v = l >>> 3; if (l >>> 0 < 256) { l = s[e + (c + 8) >> 2] | 0; y = s[e + (c + 12) >> 2] | 0; b = 872 + (v << 1 << 2) | 0; do { if ((l | 0) != (b | 0)) { if (l >>> 0 < r >>> 0) { xt() } if ((s[l + 12 >> 2] | 0) == (p | 0)) { break } xt() } } while (0); if ((y | 0) == (l | 0)) { s[208] = s[208] & ~(1 << v); m = p; g = d; break } do { if ((y | 0) == (b | 0)) { w = y + 8 | 0 } else { if (y >>> 0 < r >>> 0) { xt() } E = y + 8 | 0; if ((s[E >> 2] | 0) == (p | 0)) { w = E; break } xt() } } while (0); s[l + 12 >> 2] = y; s[w >> 2] = l; m = p; g = d; break } b = h; v = s[e + (c + 24) >> 2] | 0; E = s[e + (c + 12) >> 2] | 0; do { if ((E | 0) == (b | 0)) { S = e + (c + 20) | 0; x = s[S >> 2] | 0; if ((x | 0) == 0) { T = e + (c + 16) | 0; N = s[T >> 2] | 0; if ((N | 0) == 0) { C = 0; break } else { k = N; L = T } } else { k = x; L = S } while (1) { S = k + 20 | 0; x = s[S >> 2] | 0; if ((x | 0) != 0) { k = x; L = S; continue } S = k + 16 | 0; x = s[S >> 2] | 0; if ((x | 0) == 0) { break } else { k = x; L = S } } if (L >>> 0 < r >>> 0) { xt() } else { s[L >> 2] = 0; C = k; break } } else { S = s[e + (c + 8) >> 2] | 0; if (S >>> 0 < r >>> 0) { xt() } x = S + 12 | 0; if ((s[x >> 2] | 0) != (b | 0)) { xt() } T = E + 8 | 0; if ((s[T >> 2] | 0) == (b | 0)) { s[x >> 2] = E; s[T >> 2] = S; C = E; break } else { xt() } } } while (0); if ((v | 0) == 0) { m = p; g = d; break } E = e + (c + 28) | 0; h = 1136 + (s[E >> 2] << 2) | 0; do { if ((b | 0) == (s[h >> 2] | 0)) { s[h >> 2] = C; if ((C | 0) != 0) { break } s[209] = s[209] & ~(1 << s[E >> 2]); m = p; g = d; break e } else { if (v >>> 0 < (s[212] | 0) >>> 0) { xt() } l = v + 16 | 0; if ((s[l >> 2] | 0) == (b | 0)) { s[l >> 2] = C } else { s[v + 20 >> 2] = C } if ((C | 0) == 0) { m = p; g = d; break e } } } while (0); if (C >>> 0 < (s[212] | 0) >>> 0) { xt() } s[C + 24 >> 2] = v; b = s[e + (c + 16) >> 2] | 0; do { if ((b | 0) != 0) { if (b >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[C + 16 >> 2] = b; s[b + 24 >> 2] = C; break } } } while (0); b = s[e + (c + 20) >> 2] | 0; if ((b | 0) == 0) { m = p; g = d; break } if (b >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[C + 20 >> 2] = b; s[b + 24 >> 2] = C; m = p; g = d; break } } else { m = n; g = u } } while (0); n = m; if (n >>> 0 >= a >>> 0) { xt() } C = e + (u - 4) | 0; r = s[C >> 2] | 0; if ((r & 1 | 0) == 0) { xt() } do { if ((r & 2 | 0) == 0) { if ((f | 0) == (s[214] | 0)) { k = (s[211] | 0) + g | 0; s[211] = k; s[214] = m; s[m + 4 >> 2] = k | 1; if ((m | 0) == (s[213] | 0)) { s[213] = 0; s[210] = 0 } if (k >>> 0 <= (s[215] | 0) >>> 0) { return } Yn(0) | 0; return } if ((f | 0) == (s[213] | 0)) { k = (s[210] | 0) + g | 0; s[210] = k; s[213] = m; s[m + 4 >> 2] = k | 1; s[n + k >> 2] = k; return } k = (r & -8) + g | 0; L = r >>> 3; t: do { if (r >>> 0 < 256) { w = s[e + u >> 2] | 0; o = s[e + (u | 4) >> 2] | 0; t = 872 + (L << 1 << 2) | 0; do { if ((w | 0) != (t | 0)) { if (w >>> 0 < (s[212] | 0) >>> 0) { xt() } if ((s[w + 12 >> 2] | 0) == (f | 0)) { break } xt() } } while (0); if ((o | 0) == (w | 0)) { s[208] = s[208] & ~(1 << L); break } do { if ((o | 0) == (t | 0)) { A = o + 8 | 0 } else { if (o >>> 0 < (s[212] | 0) >>> 0) { xt() } i = o + 8 | 0; if ((s[i >> 2] | 0) == (f | 0)) { A = i; break } xt() } } while (0); s[w + 12 >> 2] = o; s[A >> 2] = w } else { t = a; i = s[e + (u + 16) >> 2] | 0; b = s[e + (u | 4) >> 2] | 0; do { if ((b | 0) == (t | 0)) { v = e + (u + 12) | 0; E = s[v >> 2] | 0; if ((E | 0) == 0) { h = e + (u + 8) | 0; l = s[h >> 2] | 0; if ((l | 0) == 0) { O = 0; break } else { M = l; _ = h } } else { M = E; _ = v } while (1) { v = M + 20 | 0; E = s[v >> 2] | 0; if ((E | 0) != 0) { M = E; _ = v; continue } v = M + 16 | 0; E = s[v >> 2] | 0; if ((E | 0) == 0) { break } else { M = E; _ = v } } if (_ >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[_ >> 2] = 0; O = M; break } } else { v = s[e + u >> 2] | 0; if (v >>> 0 < (s[212] | 0) >>> 0) { xt() } E = v + 12 | 0; if ((s[E >> 2] | 0) != (t | 0)) { xt() } h = b + 8 | 0; if ((s[h >> 2] | 0) == (t | 0)) { s[E >> 2] = b; s[h >> 2] = v; O = b; break } else { xt() } } } while (0); if ((i | 0) == 0) { break } b = e + (u + 20) | 0; w = 1136 + (s[b >> 2] << 2) | 0; do { if ((t | 0) == (s[w >> 2] | 0)) { s[w >> 2] = O; if ((O | 0) != 0) { break } s[209] = s[209] & ~(1 << s[b >> 2]); break t } else { if (i >>> 0 < (s[212] | 0) >>> 0) { xt() } o = i + 16 | 0; if ((s[o >> 2] | 0) == (t | 0)) { s[o >> 2] = O } else { s[i + 20 >> 2] = O } if ((O | 0) == 0) { break t } } } while (0); if (O >>> 0 < (s[212] | 0) >>> 0) { xt() } s[O + 24 >> 2] = i; t = s[e + (u + 8) >> 2] | 0; do { if ((t | 0) != 0) { if (t >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[O + 16 >> 2] = t; s[t + 24 >> 2] = O; break } } } while (0); t = s[e + (u + 12) >> 2] | 0; if ((t | 0) == 0) { break } if (t >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[O + 20 >> 2] = t; s[t + 24 >> 2] = O; break } } } while (0); s[m + 4 >> 2] = k | 1; s[n + k >> 2] = k; if ((m | 0) != (s[213] | 0)) { D = k; break } s[210] = k; return } else { s[C >> 2] = r & -2; s[m + 4 >> 2] = g | 1; s[n + g >> 2] = g; D = g } } while (0); g = D >>> 3; if (D >>> 0 < 256) { n = g << 1; r = 872 + (n << 2) | 0; C = s[208] | 0; O = 1 << g; do { if ((C & O | 0) == 0) { s[208] = C | O; P = r; H = 872 + (n + 2 << 2) | 0 } else { g = 872 + (n + 2 << 2) | 0; u = s[g >> 2] | 0; if (u >>> 0 >= (s[212] | 0) >>> 0) { P = u; H = g; break } xt() } } while (0); s[H >> 2] = m; s[P + 12 >> 2] = m; s[m + 8 >> 2] = P; s[m + 12 >> 2] = r; return } r = m; P = D >>> 8; do { if ((P | 0) == 0) { B = 0 } else { if (D >>> 0 > 16777215) { B = 31; break } H = (P + 1048320 | 0) >>> 16 & 8; n = P << H; O = (n + 520192 | 0) >>> 16 & 4; C = n << O; n = (C + 245760 | 0) >>> 16 & 2; g = 14 - (O | H | n) + (C << n >>> 15) | 0; B = D >>> ((g + 7 | 0) >>> 0) & 1 | g << 1 } } while (0); P = 1136 + (B << 2) | 0; s[m + 28 >> 2] = B; s[m + 20 >> 2] = 0; s[m + 16 >> 2] = 0; g = s[209] | 0; n = 1 << B; do { if ((g & n | 0) == 0) { s[209] = g | n; s[P >> 2] = r; s[m + 24 >> 2] = P; s[m + 12 >> 2] = m; s[m + 8 >> 2] = m } else { if ((B | 0) == 31) { j = 0 } else { j = 25 - (B >>> 1) | 0 } C = D << j; H = s[P >> 2] | 0; while (1) { if ((s[H + 4 >> 2] & -8 | 0) == (D | 0)) { break } F = H + 16 + (C >>> 31 << 2) | 0; O = s[F >> 2] | 0; if ((O | 0) == 0) { I = 621; break } else { C = C << 1; H = O } } if ((I | 0) == 621) { if (F >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[F >> 2] = r; s[m + 24 >> 2] = H; s[m + 12 >> 2] = m; s[m + 8 >> 2] = m; break } } C = H + 8 | 0; k = s[C >> 2] | 0; O = s[212] | 0; if (H >>> 0 < O >>> 0) { xt() } if (k >>> 0 < O >>> 0) { xt() } else { s[k + 12 >> 2] = r; s[C >> 2] = r; s[m + 8 >> 2] = k; s[m + 12 >> 2] = H; s[m + 24 >> 2] = 0; break } } } while (0); m = (s[216] | 0) - 1 | 0; s[216] = m; if ((m | 0) == 0) { q = 1288 } else { return } while (1) { m = s[q >> 2] | 0; if ((m | 0) == 0) { break } else { q = m + 8 | 0 } } s[216] = -1; return } function $n(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0; do { if ((e | 0) == 0) { n = 0 } else { r = ot(t, e) | 0; if ((t | e) >>> 0 <= 65535) { n = r; break } n = ((r >>> 0) / (e >>> 0) | 0 | 0) == (t | 0) ? r : -1 } } while (0); t = Xn(n) | 0; if ((t | 0) == 0) { return t | 0 } if ((s[t - 4 >> 2] & 3 | 0) == 0) { return t | 0 } ti(t | 0, 0, n | 0); return t | 0 } function Jn(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0; if ((e | 0) == 0) { n = Xn(t) | 0; return n | 0 } if (t >>> 0 > 4294967231) { s[(Yt() | 0) >> 2] = 12; n = 0; return n | 0 } if (t >>> 0 < 11) { r = 16 } else { r = t + 11 & -8 } i = Zn(e - 8 | 0, r) | 0; if ((i | 0) != 0) { n = i + 8 | 0; return n | 0 } i = Xn(t) | 0; if ((i | 0) == 0) { n = 0; return n | 0 } r = s[e - 4 >> 2] | 0; o = (r & -8) - ((r & 3 | 0) == 0 ? 8 : 4) | 0; r = o >>> 0 < t >>> 0 ? o : t; ei(i | 0, e | 0, r) | 0; Vn(e); n = i; return n | 0 } function Kn(e, t) { e = e | 0; t = t | 0; var n = 0; if ((e | 0) == 0) { return 0 } if (t >>> 0 > 4294967231) { s[(Yt() | 0) >> 2] = 12; return 0 } if (t >>> 0 < 11) { n = 16 } else { n = t + 11 & -8 } t = e - 8 | 0; return ((Zn(t, n) | 0) == (t | 0) ? e : 0) | 0 } function Qn(e, t) { e = e | 0; t = t | 0; var n = 0; if (e >>> 0 < 9) { n = Xn(t) | 0; return n | 0 } else { n = Gn(e, t) | 0; return n | 0 } return 0 } function Gn(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0; n = e >>> 0 < 16 ? 16 : e; if ((n - 1 & n | 0) == 0) { r = n } else { e = 16; while (1) { if (e >>> 0 < n >>> 0) { e = e << 1 } else { r = e; break } } } if ((-64 - r | 0) >>> 0 <= t >>> 0) { s[(Yt() | 0) >> 2] = 12; i = 0; return i | 0 } if (t >>> 0 < 11) { o = 16 } else { o = t + 11 & -8 } t = Xn(r + 12 + o | 0) | 0; if ((t | 0) == 0) { i = 0; return i | 0 } e = t - 8 | 0; n = e; u = r - 1 | 0; do { if ((t & u | 0) == 0) { a = n } else { f = t + u & -r; l = f - 8 | 0; c = e; if ((l - c | 0) >>> 0 > 15) { h = l } else { h = f + (r - 8) | 0 } f = h; l = h - c | 0; c = t - 4 | 0; p = s[c >> 2] | 0; d = (p & -8) - l | 0; if ((p & 3 | 0) == 0) { s[h >> 2] = (s[e >> 2] | 0) + l; s[h + 4 >> 2] = d; a = f; break } else { p = h + 4 | 0; s[p >> 2] = d | s[p >> 2] & 1 | 2; p = h + (d + 4) | 0; s[p >> 2] = s[p >> 2] | 1; s[c >> 2] = l | s[c >> 2] & 1 | 2; c = t + (l - 4) | 0; s[c >> 2] = s[c >> 2] | 1; gr(n, l); a = f; break } } } while (0); n = a + 4 | 0; t = s[n >> 2] | 0; do { if ((t & 3 | 0) != 0) { h = t & -8; if (h >>> 0 <= (o + 16 | 0) >>> 0) { break } e = h - o | 0; r = a; s[n >> 2] = o | t & 1 | 2; s[r + (o | 4) >> 2] = e | 3; u = r + (h | 4) | 0; s[u >> 2] = s[u >> 2] | 1; gr(r + o | 0, e) } } while (0); i = a + 8 | 0; return i | 0 } function Yn(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0; do { if ((s[200] | 0) == 0) { t = wt(8) | 0; if ((t - 1 & t | 0) == 0) { s[202] = t; s[201] = t; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt(); return 0 } } } while (0); if (e >>> 0 >= 4294967232) { n = 0; return n | 0 } t = s[214] | 0; if ((t | 0) == 0) { n = 0; return n | 0 } r = s[211] | 0; do { if (r >>> 0 > (e + 40 | 0) >>> 0) { i = s[202] | 0; o = ot((((-40 - e - 1 + r + i | 0) >>> 0) / (i >>> 0) | 0) - 1 | 0, i) | 0; u = t; a = 1280; while (1) { f = s[a >> 2] | 0; if (f >>> 0 <= u >>> 0) { if ((f + (s[a + 4 >> 2] | 0) | 0) >>> 0 > u >>> 0) { l = a; break } } f = s[a + 8 >> 2] | 0; if ((f | 0) == 0) { l = 0; break } else { a = f } } if ((s[l + 12 >> 2] & 8 | 0) != 0) { break } a = Qt(0) | 0; u = l + 4 | 0; if ((a | 0) != ((s[l >> 2] | 0) + (s[u >> 2] | 0) | 0)) { break } f = Qt(-(o >>> 0 > 2147483646 ? -2147483648 - i | 0 : o) | 0) | 0; c = Qt(0) | 0; if (!((f | 0) != -1 & c >>> 0 < a >>> 0)) { break } f = a - c | 0; if ((a | 0) == (c | 0)) { break } s[u >> 2] = (s[u >> 2] | 0) - f; s[316] = (s[316] | 0) - f; u = s[214] | 0; h = (s[211] | 0) - f | 0; f = u; p = u + 8 | 0; if ((p & 7 | 0) == 0) { d = 0 } else { d = -p & 7 } p = h - d | 0; s[214] = f + d; s[211] = p; s[f + (d + 4) >> 2] = p | 1; s[f + (h + 4) >> 2] = 40; s[215] = s[204]; n = (a | 0) != (c | 0) | 0; return n | 0 } } while (0); if ((s[211] | 0) >>> 0 <= (s[215] | 0) >>> 0) { n = 0; return n | 0 } s[215] = -1; n = 0; return n | 0 } function Zn(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0; n = e + 4 | 0; r = s[n >> 2] | 0; i = r & -8; o = e; u = o + i | 0; a = u; f = s[212] | 0; if (o >>> 0 < f >>> 0) { xt(); return 0 } l = r & 3; if (!((l | 0) != 1 & o >>> 0 < u >>> 0)) { xt(); return 0 } c = o + (i | 4) | 0; h = s[c >> 2] | 0; if ((h & 1 | 0) == 0) { xt(); return 0 } if ((l | 0) == 0) { if (t >>> 0 < 256) { p = 0; return p | 0 } do { if (i >>> 0 >= (t + 4 | 0) >>> 0) { if ((i - t | 0) >>> 0 > s[202] << 1 >>> 0) { break } else { p = e } return p | 0 } } while (0); p = 0; return p | 0 } if (i >>> 0 >= t >>> 0) { l = i - t | 0; if (l >>> 0 <= 15) { p = e; return p | 0 } s[n >> 2] = r & 1 | t | 2; s[o + (t + 4) >> 2] = l | 3; s[c >> 2] = s[c >> 2] | 1; gr(o + t | 0, l); p = e; return p | 0 } if ((a | 0) == (s[214] | 0)) { l = (s[211] | 0) + i | 0; if (l >>> 0 <= t >>> 0) { p = 0; return p | 0 } c = l - t | 0; s[n >> 2] = r & 1 | t | 2; s[o + (t + 4) >> 2] = c | 1; s[214] = o + t; s[211] = c; p = e; return p | 0 } if ((a | 0) == (s[213] | 0)) { c = (s[210] | 0) + i | 0; if (c >>> 0 < t >>> 0) { p = 0; return p | 0 } l = c - t | 0; if (l >>> 0 > 15) { s[n >> 2] = r & 1 | t | 2; s[o + (t + 4) >> 2] = l | 1; s[o + c >> 2] = l; d = o + (c + 4) | 0; s[d >> 2] = s[d >> 2] & -2; v = o + t | 0; m = l } else { s[n >> 2] = r & 1 | c | 2; r = o + (c + 4) | 0; s[r >> 2] = s[r >> 2] | 1; v = 0; m = 0 } s[210] = m; s[213] = v; p = e; return p | 0 } if ((h & 2 | 0) != 0) { p = 0; return p | 0 } v = (h & -8) + i | 0; if (v >>> 0 < t >>> 0) { p = 0; return p | 0 } m = v - t | 0; r = h >>> 3; e: do { if (h >>> 0 < 256) { c = s[o + (i + 8) >> 2] | 0; l = s[o + (i + 12) >> 2] | 0; d = 872 + (r << 1 << 2) | 0; do { if ((c | 0) != (d | 0)) { if (c >>> 0 < f >>> 0) { xt(); return 0 } if ((s[c + 12 >> 2] | 0) == (a | 0)) { break } xt(); return 0 } } while (0); if ((l | 0) == (c | 0)) { s[208] = s[208] & ~(1 << r); break } do { if ((l | 0) == (d | 0)) { g = l + 8 | 0 } else { if (l >>> 0 < f >>> 0) { xt(); return 0 } y = l + 8 | 0; if ((s[y >> 2] | 0) == (a | 0)) { g = y; break } xt(); return 0 } } while (0); s[c + 12 >> 2] = l; s[g >> 2] = c } else { d = u; y = s[o + (i + 24) >> 2] | 0; b = s[o + (i + 12) >> 2] | 0; do { if ((b | 0) == (d | 0)) { w = o + (i + 20) | 0; E = s[w >> 2] | 0; if ((E | 0) == 0) { S = o + (i + 16) | 0; x = s[S >> 2] | 0; if ((x | 0) == 0) { T = 0; break } else { N = x; C = S } } else { N = E; C = w } while (1) { w = N + 20 | 0; E = s[w >> 2] | 0; if ((E | 0) != 0) { N = E; C = w; continue } w = N + 16 | 0; E = s[w >> 2] | 0; if ((E | 0) == 0) { break } else { N = E; C = w } } if (C >>> 0 < f >>> 0) { xt(); return 0 } else { s[C >> 2] = 0; T = N; break } } else { w = s[o + (i + 8) >> 2] | 0; if (w >>> 0 < f >>> 0) { xt(); return 0 } E = w + 12 | 0; if ((s[E >> 2] | 0) != (d | 0)) { xt(); return 0 } S = b + 8 | 0; if ((s[S >> 2] | 0) == (d | 0)) { s[E >> 2] = b; s[S >> 2] = w; T = b; break } else { xt(); return 0 } } } while (0); if ((y | 0) == 0) { break } b = o + (i + 28) | 0; c = 1136 + (s[b >> 2] << 2) | 0; do { if ((d | 0) == (s[c >> 2] | 0)) { s[c >> 2] = T; if ((T | 0) != 0) { break } s[209] = s[209] & ~(1 << s[b >> 2]); break e } else { if (y >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } l = y + 16 | 0; if ((s[l >> 2] | 0) == (d | 0)) { s[l >> 2] = T } else { s[y + 20 >> 2] = T } if ((T | 0) == 0) { break e } } } while (0); if (T >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } s[T + 24 >> 2] = y; d = s[o + (i + 16) >> 2] | 0; do { if ((d | 0) != 0) { if (d >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[T + 16 >> 2] = d; s[d + 24 >> 2] = T; break } } } while (0); d = s[o + (i + 20) >> 2] | 0; if ((d | 0) == 0) { break } if (d >>> 0 < (s[212] | 0) >>> 0) { xt(); return 0 } else { s[T + 20 >> 2] = d; s[d + 24 >> 2] = T; break } } } while (0); if (m >>> 0 < 16) { s[n >> 2] = v | s[n >> 2] & 1 | 2; T = o + (v | 4) | 0; s[T >> 2] = s[T >> 2] | 1; p = e; return p | 0 } else { s[n >> 2] = s[n >> 2] & 1 | t | 2; s[o + (t + 4) >> 2] = m | 3; n = o + (v | 4) | 0; s[n >> 2] = s[n >> 2] | 1; gr(o + t | 0, m); p = e; return p | 0 } return 0 } function er() { return s[316] | 0 } function tr() { return s[317] | 0 } function nr() { var e = 0; e = s[318] | 0; return ((e | 0) == 0 ? -1 : e) | 0 } function rr(e) { e = e | 0; var t = 0, n = 0; if ((e | 0) == -1) { t = 0 } else { n = s[202] | 0; t = e - 1 + n & -n } s[318] = t; return t | 0 } function ir(e) { e = e | 0; var t = 0, n = 0, r = 0; do { if ((e | 0) == 0) { t = 0 } else { n = s[e - 4 >> 2] | 0; r = n & 3; if ((r | 0) == 1) { t = 0; break } t = (n & -8) - ((r | 0) == 0 ? 8 : 4) | 0 } } while (0); return t | 0 } function sr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0, o = 0; do { if ((t | 0) == 8) { r = Xn(n) | 0 } else { i = t >>> 2; if ((t & 3 | 0) != 0 | (i | 0) == 0) { o = 22; return o | 0 } if ((i + 1073741823 & i | 0) != 0) { o = 22; return o | 0 } if ((-64 - t | 0) >>> 0 < n >>> 0) { o = 12; return o | 0 } else { r = Gn(t >>> 0 < 16 ? 16 : t, n) | 0; break } } } while (0); if ((r | 0) == 0) { o = 12; return o | 0 } s[e >> 2] = r; o = 0; return o | 0 } function or(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0; r = c; c = c + 8 | 0; i = r | 0; s[i >> 2] = t; t = lr(e, i, 3, n) | 0; c = r; return t | 0 } function ur(e, t, n) { e = e | 0; t = t | 0; n = n | 0; return lr(e, t, 0, n) | 0 } function ar(e) { e = e | 0; var t = 0, n = 0, r = 0; if ((s[200] | 0) != 0) { t = s[201] | 0; n = Qn(t, e) | 0; return n | 0 } r = wt(8) | 0; if ((r - 1 & r | 0) != 0) { xt(); return 0 } s[202] = r; s[201] = r; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; t = s[201] | 0; n = Qn(t, e) | 0; return n | 0 } function fr(e) { e = e | 0; var t = 0; do { if ((s[200] | 0) == 0) { t = wt(8) | 0; if ((t - 1 & t | 0) == 0) { s[202] = t; s[201] = t; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt(); return 0 } } } while (0); t = s[201] | 0; return Qn(t, e - 1 + t & -t) | 0 } function lr(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0; do { if ((s[200] | 0) == 0) { i = wt(8) | 0; if ((i - 1 & i | 0) == 0) { s[202] = i; s[201] = i; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt(); return 0 } } } while (0); i = (e | 0) == 0; do { if ((r | 0) == 0) { if (i) { o = Xn(0) | 0; return o | 0 } else { u = e << 2; if (u >>> 0 < 11) { a = 0; f = 16; break } a = 0; f = u + 11 & -8; break } } else { if (i) { o = r } else { a = r; f = 0; break } return o | 0 } } while (0); do { if ((n & 1 | 0) == 0) { if (i) { l = 0; c = 0; break } else { h = 0; p = 0 } while (1) { r = s[t + (p << 2) >> 2] | 0; if (r >>> 0 < 11) { d = 16 } else { d = r + 11 & -8 } r = d + h | 0; u = p + 1 | 0; if ((u | 0) == (e | 0)) { l = 0; c = r; break } else { h = r; p = u } } } else { u = s[t >> 2] | 0; if (u >>> 0 < 11) { v = 16 } else { v = u + 11 & -8 } l = v; c = ot(v, e) | 0 } } while (0); v = Xn(f - 4 + c | 0) | 0; if ((v | 0) == 0) { o = 0; return o | 0 } p = v - 8 | 0; h = s[v - 4 >> 2] & -8; if ((n & 2 | 0) != 0) { ti(v | 0, 0, -4 - f + h | 0) } if ((a | 0) == 0) { s[v + (c - 4) >> 2] = h - c | 3; m = v + c | 0; g = c } else { m = a; g = h } s[m >> 2] = v; v = e - 1 | 0; e: do { if ((v | 0) == 0) { y = p; b = g } else { if ((l | 0) == 0) { w = p; E = g; S = 0 } else { e = p; h = g; a = 0; while (1) { c = h - l | 0; s[e + 4 >> 2] = l | 3; f = e + l | 0; n = a + 1 | 0; s[m + (n << 2) >> 2] = e + (l + 8); if ((n | 0) == (v | 0)) { y = f; b = c; break e } else { e = f; h = c; a = n } } } while (1) { a = s[t + (S << 2) >> 2] | 0; if (a >>> 0 < 11) { x = 16 } else { x = a + 11 & -8 } a = E - x | 0; s[w + 4 >> 2] = x | 3; h = w + x | 0; e = S + 1 | 0; s[m + (e << 2) >> 2] = w + (x + 8); if ((e | 0) == (v | 0)) { y = h; b = a; break } else { w = h; E = a; S = e } } } } while (0); s[y + 4 >> 2] = b | 3; o = m; return o | 0 } function cr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0; n = e + (t << 2) | 0; e: do { if ((t | 0) != 0) { r = e; t: while (1) { i = s[r >> 2] | 0; n: do { if ((i | 0) == 0) { o = r + 4 | 0 } else { u = i - 8 | 0; a = u; f = i - 4 | 0; l = s[f >> 2] & -8; s[r >> 2] = 0; if (u >>> 0 < (s[212] | 0) >>> 0) { c = 935; break t } u = s[f >> 2] | 0; if ((u & 3 | 0) == 1) { c = 936; break t } h = r + 4 | 0; p = u - 8 & -8; do { if ((h | 0) != (n | 0)) { if ((s[h >> 2] | 0) != (i + (p + 8) | 0)) { break } d = (s[i + (p | 4) >> 2] & -8) + l | 0; s[f >> 2] = u & 1 | d | 2; v = i + (d - 4) | 0; s[v >> 2] = s[v >> 2] | 1; s[h >> 2] = i; o = h; break n } } while (0); gr(a, l); o = h } } while (0); if ((o | 0) == (n | 0)) { break e } else { r = o } } if ((c | 0) == 935) { xt(); return 0 } else if ((c | 0) == 936) { xt(); return 0 } } } while (0); if ((s[211] | 0) >>> 0 <= (s[215] | 0) >>> 0) { return 0 } Yn(0) | 0; return 0 } function hr(e) { e = e | 0; var t = 0, n = 0; if ((s[200] | 0) != 0) { t = Yn(e) | 0; return t | 0 } n = wt(8) | 0; if ((n - 1 & n | 0) != 0) { xt(); return 0 } s[202] = n; s[201] = n; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; t = Yn(e) | 0; return t | 0 } function pr(e) { e = e | 0; var t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0; do { if ((s[200] | 0) == 0) { t = wt(8) | 0; if ((t - 1 & t | 0) == 0) { s[202] = t; s[201] = t; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt() } } } while (0); t = s[214] | 0; if ((t | 0) == 0) { n = 0; r = 0; i = 0; o = 0; u = 0; a = 0; f = 0 } else { l = s[211] | 0; c = l + 40 | 0; h = 1; p = c; d = c; c = 1280; while (1) { v = s[c >> 2] | 0; m = v + 8 | 0; if ((m & 7 | 0) == 0) { g = 0 } else { g = -m & 7 } m = v + (s[c + 4 >> 2] | 0) | 0; y = h; b = p; w = d; E = v + g | 0; while (1) { if (E >>> 0 >= m >>> 0 | (E | 0) == (t | 0)) { S = y; x = b; T = w; break } N = s[E + 4 >> 2] | 0; if ((N | 0) == 7) { S = y; x = b; T = w; break } C = N & -8; k = C + w | 0; if ((N & 3 | 0) == 1) { L = C + b | 0; A = y + 1 | 0 } else { L = b; A = y } N = E + C | 0; if (N >>> 0 < v >>> 0) { S = A; x = L; T = k; break } else { y = A; b = L; w = k; E = N } } E = s[c + 8 >> 2] | 0; if ((E | 0) == 0) { break } else { h = S; p = x; d = T; c = E } } c = s[316] | 0; n = l; r = T; i = S; o = c - T | 0; u = s[317] | 0; a = c - x | 0; f = x } s[e >> 2] = r; s[e + 4 >> 2] = i; i = e + 8 | 0; s[i >> 2] = 0; s[i + 4 >> 2] = 0; s[e + 16 >> 2] = o; s[e + 20 >> 2] = u; s[e + 24 >> 2] = 0; s[e + 28 >> 2] = a; s[e + 32 >> 2] = f; s[e + 36 >> 2] = n; return } function dr() { var e = 0, t = 0, n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, y = 0, b = 0, w = 0; e = c; do { if ((s[200] | 0) == 0) { t = wt(8) | 0; if ((t - 1 & t | 0) == 0) { s[202] = t; s[201] = t; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt() } } } while (0); t = s[214] | 0; if ((t | 0) == 0) { n = 0; r = 0; i = 0 } else { o = s[317] | 0; u = s[316] | 0; a = u - 40 - (s[211] | 0) | 0; f = 1280; while (1) { l = s[f >> 2] | 0; h = l + 8 | 0; if ((h & 7 | 0) == 0) { p = 0 } else { p = -h & 7 } h = l + (s[f + 4 >> 2] | 0) | 0; d = a; v = l + p | 0; while (1) { if (v >>> 0 >= h >>> 0 | (v | 0) == (t | 0)) { m = d; break } y = s[v + 4 >> 2] | 0; if ((y | 0) == 7) { m = d; break } b = y & -8; w = d - ((y & 3 | 0) == 1 ? b : 0) | 0; y = v + b | 0; if (y >>> 0 < l >>> 0) { m = w; break } else { d = w; v = y } } v = s[f + 8 >> 2] | 0; if ((v | 0) == 0) { n = m; r = u; i = o; break } else { a = m; f = v } } } Tt(s[g >> 2] | 0, 520, (k = c, c = c + 8 | 0, s[k >> 2] = i, k) | 0) | 0; Tt(s[g >> 2] | 0, 488, (k = c, c = c + 8 | 0, s[k >> 2] = r, k) | 0) | 0; Tt(s[g >> 2] | 0, 400, (k = c, c = c + 8 | 0, s[k >> 2] = n, k) | 0) | 0; c = e; return } function vr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0; do { if ((s[200] | 0) == 0) { n = wt(8) | 0; if ((n - 1 & n | 0) == 0) { s[202] = n; s[201] = n; s[203] = -1; s[204] = 2097152; s[205] = 0; s[319] = 0; s[200] = (tn(0) | 0) & -16 ^ 1431655768; break } else { xt(); return 0 } } } while (0); if ((e | 0) == (-1 | 0)) { s[204] = t; r = 1; return r | 0 } else if ((e | 0) == (-2 | 0)) { if ((s[201] | 0) >>> 0 > t >>> 0) { r = 0; return r | 0 } if ((t - 1 & t | 0) != 0) { r = 0; return r | 0 } s[202] = t; r = 1; return r | 0 } else if ((e | 0) == (-3 | 0)) { s[203] = t; r = 1; return r | 0 } else { r = 0; return r | 0 } return 0 } function mr() { return (P = s[328] | 0, s[328] = P + 0, P) | 0 } function gr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0; n = e; r = n + t | 0; i = r; o = s[e + 4 >> 2] | 0; e: do { if ((o & 1 | 0) == 0) { u = s[e >> 2] | 0; if ((o & 3 | 0) == 0) { return } a = n + (-u | 0) | 0; f = a; l = u + t | 0; c = s[212] | 0; if (a >>> 0 < c >>> 0) { xt() } if ((f | 0) == (s[213] | 0)) { h = n + (t + 4) | 0; if ((s[h >> 2] & 3 | 0) != 3) { p = f; d = l; break } s[210] = l; s[h >> 2] = s[h >> 2] & -2; s[n + (4 - u) >> 2] = l | 1; s[r >> 2] = l; return } h = u >>> 3; if (u >>> 0 < 256) { v = s[n + (8 - u) >> 2] | 0; m = s[n + (12 - u) >> 2] | 0; g = 872 + (h << 1 << 2) | 0; do { if ((v | 0) != (g | 0)) { if (v >>> 0 < c >>> 0) { xt() } if ((s[v + 12 >> 2] | 0) == (f | 0)) { break } xt() } } while (0); if ((m | 0) == (v | 0)) { s[208] = s[208] & ~(1 << h); p = f; d = l; break } do { if ((m | 0) == (g | 0)) { y = m + 8 | 0 } else { if (m >>> 0 < c >>> 0) { xt() } b = m + 8 | 0; if ((s[b >> 2] | 0) == (f | 0)) { y = b; break } xt() } } while (0); s[v + 12 >> 2] = m; s[y >> 2] = v; p = f; d = l; break } g = a; h = s[n + (24 - u) >> 2] | 0; b = s[n + (12 - u) >> 2] | 0; do { if ((b | 0) == (g | 0)) { w = 16 - u | 0; E = n + (w + 4) | 0; S = s[E >> 2] | 0; if ((S | 0) == 0) { x = n + w | 0; w = s[x >> 2] | 0; if ((w | 0) == 0) { T = 0; break } else { N = w; C = x } } else { N = S; C = E } while (1) { E = N + 20 | 0; S = s[E >> 2] | 0; if ((S | 0) != 0) { N = S; C = E; continue } E = N + 16 | 0; S = s[E >> 2] | 0; if ((S | 0) == 0) { break } else { N = S; C = E } } if (C >>> 0 < c >>> 0) { xt() } else { s[C >> 2] = 0; T = N; break } } else { E = s[n + (8 - u) >> 2] | 0; if (E >>> 0 < c >>> 0) { xt() } S = E + 12 | 0; if ((s[S >> 2] | 0) != (g | 0)) { xt() } x = b + 8 | 0; if ((s[x >> 2] | 0) == (g | 0)) { s[S >> 2] = b; s[x >> 2] = E; T = b; break } else { xt() } } } while (0); if ((h | 0) == 0) { p = f; d = l; break } b = n + (28 - u) | 0; c = 1136 + (s[b >> 2] << 2) | 0; do { if ((g | 0) == (s[c >> 2] | 0)) { s[c >> 2] = T; if ((T | 0) != 0) { break } s[209] = s[209] & ~(1 << s[b >> 2]); p = f; d = l; break e } else { if (h >>> 0 < (s[212] | 0) >>> 0) { xt() } a = h + 16 | 0; if ((s[a >> 2] | 0) == (g | 0)) { s[a >> 2] = T } else { s[h + 20 >> 2] = T } if ((T | 0) == 0) { p = f; d = l; break e } } } while (0); if (T >>> 0 < (s[212] | 0) >>> 0) { xt() } s[T + 24 >> 2] = h; g = 16 - u | 0; b = s[n + g >> 2] | 0; do { if ((b | 0) != 0) { if (b >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[T + 16 >> 2] = b; s[b + 24 >> 2] = T; break } } } while (0); b = s[n + (g + 4) >> 2] | 0; if ((b | 0) == 0) { p = f; d = l; break } if (b >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[T + 20 >> 2] = b; s[b + 24 >> 2] = T; p = f; d = l; break } } else { p = e; d = t } } while (0); e = s[212] | 0; if (r >>> 0 < e >>> 0) { xt() } T = n + (t + 4) | 0; N = s[T >> 2] | 0; do { if ((N & 2 | 0) == 0) { if ((i | 0) == (s[214] | 0)) { C = (s[211] | 0) + d | 0; s[211] = C; s[214] = p; s[p + 4 >> 2] = C | 1; if ((p | 0) != (s[213] | 0)) { return } s[213] = 0; s[210] = 0; return } if ((i | 0) == (s[213] | 0)) { C = (s[210] | 0) + d | 0; s[210] = C; s[213] = p; s[p + 4 >> 2] = C | 1; s[p + C >> 2] = C; return } C = (N & -8) + d | 0; y = N >>> 3; t: do { if (N >>> 0 < 256) { o = s[n + (t + 8) >> 2] | 0; b = s[n + (t + 12) >> 2] | 0; u = 872 + (y << 1 << 2) | 0; do { if ((o | 0) != (u | 0)) { if (o >>> 0 < e >>> 0) { xt() } if ((s[o + 12 >> 2] | 0) == (i | 0)) { break } xt() } } while (0); if ((b | 0) == (o | 0)) { s[208] = s[208] & ~(1 << y); break } do { if ((b | 0) == (u | 0)) { k = b + 8 | 0 } else { if (b >>> 0 < e >>> 0) { xt() } h = b + 8 | 0; if ((s[h >> 2] | 0) == (i | 0)) { k = h; break } xt() } } while (0); s[o + 12 >> 2] = b; s[k >> 2] = o } else { u = r; h = s[n + (t + 24) >> 2] | 0; c = s[n + (t + 12) >> 2] | 0; do { if ((c | 0) == (u | 0)) { a = n + (t + 20) | 0; v = s[a >> 2] | 0; if ((v | 0) == 0) { m = n + (t + 16) | 0; E = s[m >> 2] | 0; if ((E | 0) == 0) { L = 0; break } else { A = E; O = m } } else { A = v; O = a } while (1) { a = A + 20 | 0; v = s[a >> 2] | 0; if ((v | 0) != 0) { A = v; O = a; continue } a = A + 16 | 0; v = s[a >> 2] | 0; if ((v | 0) == 0) { break } else { A = v; O = a } } if (O >>> 0 < e >>> 0) { xt() } else { s[O >> 2] = 0; L = A; break } } else { a = s[n + (t + 8) >> 2] | 0; if (a >>> 0 < e >>> 0) { xt() } v = a + 12 | 0; if ((s[v >> 2] | 0) != (u | 0)) { xt() } m = c + 8 | 0; if ((s[m >> 2] | 0) == (u | 0)) { s[v >> 2] = c; s[m >> 2] = a; L = c; break } else { xt() } } } while (0); if ((h | 0) == 0) { break } c = n + (t + 28) | 0; o = 1136 + (s[c >> 2] << 2) | 0; do { if ((u | 0) == (s[o >> 2] | 0)) { s[o >> 2] = L; if ((L | 0) != 0) { break } s[209] = s[209] & ~(1 << s[c >> 2]); break t } else { if (h >>> 0 < (s[212] | 0) >>> 0) { xt() } b = h + 16 | 0; if ((s[b >> 2] | 0) == (u | 0)) { s[b >> 2] = L } else { s[h + 20 >> 2] = L } if ((L | 0) == 0) { break t } } } while (0); if (L >>> 0 < (s[212] | 0) >>> 0) { xt() } s[L + 24 >> 2] = h; u = s[n + (t + 16) >> 2] | 0; do { if ((u | 0) != 0) { if (u >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[L + 16 >> 2] = u; s[u + 24 >> 2] = L; break } } } while (0); u = s[n + (t + 20) >> 2] | 0; if ((u | 0) == 0) { break } if (u >>> 0 < (s[212] | 0) >>> 0) { xt() } else { s[L + 20 >> 2] = u; s[u + 24 >> 2] = L; break } } } while (0); s[p + 4 >> 2] = C | 1; s[p + C >> 2] = C; if ((p | 0) != (s[213] | 0)) { M = C; break } s[210] = C; return } else { s[T >> 2] = N & -2; s[p + 4 >> 2] = d | 1; s[p + d >> 2] = d; M = d } } while (0); d = M >>> 3; if (M >>> 0 < 256) { N = d << 1; T = 872 + (N << 2) | 0; L = s[208] | 0; t = 1 << d; do { if ((L & t | 0) == 0) { s[208] = L | t; _ = T; D = 872 + (N + 2 << 2) | 0 } else { d = 872 + (N + 2 << 2) | 0; n = s[d >> 2] | 0; if (n >>> 0 >= (s[212] | 0) >>> 0) { _ = n; D = d; break } xt() } } while (0); s[D >> 2] = p; s[_ + 12 >> 2] = p; s[p + 8 >> 2] = _; s[p + 12 >> 2] = T; return } T = p; _ = M >>> 8; do { if ((_ | 0) == 0) { P = 0 } else { if (M >>> 0 > 16777215) { P = 31; break } D = (_ + 1048320 | 0) >>> 16 & 8; N = _ << D; t = (N + 520192 | 0) >>> 16 & 4; L = N << t; N = (L + 245760 | 0) >>> 16 & 2; d = 14 - (t | D | N) + (L << N >>> 15) | 0; P = M >>> ((d + 7 | 0) >>> 0) & 1 | d << 1 } } while (0); _ = 1136 + (P << 2) | 0; s[p + 28 >> 2] = P; s[p + 20 >> 2] = 0; s[p + 16 >> 2] = 0; d = s[209] | 0; N = 1 << P; if ((d & N | 0) == 0) { s[209] = d | N; s[_ >> 2] = T; s[p + 24 >> 2] = _; s[p + 12 >> 2] = p; s[p + 8 >> 2] = p; return } if ((P | 0) == 31) { H = 0 } else { H = 25 - (P >>> 1) | 0 } P = M << H; H = s[_ >> 2] | 0; while (1) { if ((s[H + 4 >> 2] & -8 | 0) == (M | 0)) { break } B = H + 16 + (P >>> 31 << 2) | 0; _ = s[B >> 2] | 0; if ((_ | 0) == 0) { j = 1120; break } else { P = P << 1; H = _ } } if ((j | 0) == 1120) { if (B >>> 0 < (s[212] | 0) >>> 0) { xt() } s[B >> 2] = T; s[p + 24 >> 2] = H; s[p + 12 >> 2] = p; s[p + 8 >> 2] = p; return } B = H + 8 | 0; j = s[B >> 2] | 0; P = s[212] | 0; if (H >>> 0 < P >>> 0) { xt() } if (j >>> 0 < P >>> 0) { xt() } s[j + 12 >> 2] = T; s[B >> 2] = T; s[p + 8 >> 2] = j; s[p + 12 >> 2] = H; s[p + 24 >> 2] = 0; return } function yr(e) { e = e | 0; var t = 0, n = 0, r = 0; t = (e | 0) == 0 ? 1 : e; while (1) { n = Xn(t) | 0; if ((n | 0) != 0) { r = 1164; break } e = (P = s[328] | 0, s[328] = P + 0, P); if ((e | 0) == 0) { break } Di[e & 1]() } if ((r | 0) == 1164) { return n | 0 } n = Ft(4) | 0; s[n >> 2] = 560; Et(n | 0, 688, 6); return 0 } function br(e, t) { e = e | 0; t = t | 0; return yr(e) | 0 } function wr(e) { e = e | 0; return } function Er(e) { e = e | 0; return 360 | 0 } function Sr(e) { e = e | 0; return 448 | 0 } function xr(e) { e = e | 0; return (P = s[328] | 0, s[328] = e, P) | 0 } function Tr(e) { e = e | 0; s[e >> 2] = 560; return } function Nr(e) { e = e | 0; s[e >> 2] = 592; return } function Cr(e) { e = e | 0; if ((e | 0) != 0) { Vn(e) } return } function kr(e, t) { e = e | 0; t = t | 0; Cr(e); return } function Lr(e) { e = e | 0; Cr(e); return } function Ar(e, t) { e = e | 0; t = t | 0; Lr(e); return } function Or(e) { e = e | 0; Cr(e); return } function Mr(e) { e = e | 0; Cr(e); return } function _r(e, t, n) { e = e | 0; t = t | 0; n = n | 0; return Dr(e, t, n, 0, 0, 0) | 0 } function Dr(e, t, n, i, o, u) { e = e | 0; t = t | 0; n = n | 0; i = i | 0; o = o | 0; u = u | 0; var a = 0, f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0, F = 0, I = 0, q = 0, R = 0, U = 0, z = 0, W = 0, X = 0, V = 0, $ = 0, J = 0, K = 0, Q = 0, G = 0, Y = 0, Z = 0, et = 0, tt = 0, nt = 0, rt = 0; a = c; if ((n | 0) == 0) { f = -1; c = a; return f | 0 } l = s[44] | 0; if ((l | 0) == 0) { s[196] = 1; s[44] = 1; h = 1; p = 1; d = 1190 } else { v = s[196] | 0; m = s[74] | 0; if ((m | 0) == -1 | (v | 0) != 0) { h = v; p = l; d = 1190 } else { g = m; y = v; b = l } } if ((d | 0) == 1190) { l = (Wt(344) | 0) != 0 | 0; s[74] = l; g = l; y = h; b = p } p = r[n] | 0; if (p << 24 >> 24 == 45) { w = u | 2; d = 1194 } else { h = (g | 0) != 0 | p << 24 >> 24 == 43 ? u & -2 : u; if (p << 24 >> 24 == 43) { w = h; d = 1194 } else { E = n; S = h } } if ((d | 0) == 1194) { E = n + 1 | 0; S = w } s[198] = 0; if ((y | 0) == 0) { x = b; d = 1198 } else { s[50] = -1; s[48] = -1; T = b; N = y; d = 1197 } while (1) { if ((d | 0) == 1197) { d = 0; if ((N | 0) == 0) { x = T; d = 1198; continue } else { C = T } } else if ((d | 0) == 1198) { d = 0; y = s[40] | 0; if ((r[y] | 0) == 0) { C = x } else { L = y; A = x; break } } s[196] = 0; if ((C | 0) >= (e | 0)) { d = 1200; break } O = t + (C << 2) | 0; M = s[O >> 2] | 0; s[40] = M; if ((r[M] | 0) == 45) { _ = M + 1 | 0; D = r[_] | 0; if (D << 24 >> 24 != 0) { d = 1232; break } if ((Ot(E | 0, 45) | 0) != 0) { d = 1232; break } } s[40] = 824; if ((S & 2 | 0) != 0) { d = 1217; break } if ((S & 1 | 0) == 0) { f = -1; d = 1298; break } y = s[48] | 0; do { if ((y | 0) == -1) { s[48] = C; P = C; H = 0 } else { b = s[50] | 0; if ((b | 0) == -1) { P = C; H = 0; break } w = b - y | 0; n = C - b | 0; h = (w | 0) % (n | 0) | 0; if ((h | 0) == 0) { B = n } else { p = n; u = h; while (1) { h = (p | 0) % (u | 0) | 0; if ((h | 0) == 0) { B = u; break } else { p = u; u = h } } } u = (C - y | 0) / (B | 0) | 0; do { if ((B | 0) > 0) { p = -w | 0; if ((u | 0) > 0) { j = 0 } else { F = C; I = b; q = y; R = 0; break } do { h = j + b | 0; g = t + (h << 2) | 0; l = 0; v = h; h = s[g >> 2] | 0; while (1) { m = ((v | 0) < (b | 0) ? n : p) + v | 0; U = t + (m << 2) | 0; z = s[U >> 2] | 0; s[U >> 2] = h; s[g >> 2] = z; U = l + 1 | 0; if ((U | 0) < (u | 0)) { l = U; v = m; h = z } else { break } } j = j + 1 | 0 } while ((j | 0) < (B | 0)); F = s[44] | 0; I = s[50] | 0; q = s[48] | 0; R = s[196] | 0 } else { F = C; I = b; q = y; R = 0 } } while (0); s[48] = F - I + q; s[50] = -1; P = F; H = R } } while (0); y = P + 1 | 0; s[44] = y; T = y; N = H; d = 1197 } do { if ((d | 0) == 1298) { c = a; return f | 0 } else if ((d | 0) == 1232) { H = s[48] | 0; N = s[50] | 0; if ((H | 0) != -1 & (N | 0) == -1) { s[50] = C; W = r[_] | 0; X = C } else { W = D; X = N } if (W << 24 >> 24 == 0) { L = M; A = C; break } s[40] = _; if ((r[_] | 0) != 45) { L = _; A = C; break } if ((r[M + 2 | 0] | 0) != 0) { L = _; A = C; break } N = C + 1 | 0; s[44] = N; s[40] = 824; if ((X | 0) != -1) { T = X - H | 0; P = N - X | 0; R = (T | 0) % (P | 0) | 0; if ((R | 0) == 0) { V = P } else { F = P; q = R; while (1) { R = (F | 0) % (q | 0) | 0; if ((R | 0) == 0) { V = q; break } else { F = q; q = R } } } q = (N - H | 0) / (V | 0) | 0; do { if ((V | 0) > 0) { F = -T | 0; if ((q | 0) > 0) { $ = 0 } else { J = X; K = H; Q = N; break } do { R = $ + X | 0; I = t + (R << 2) | 0; B = 0; j = R; R = s[I >> 2] | 0; while (1) { x = ((j | 0) < (X | 0) ? P : F) + j | 0; y = t + (x << 2) | 0; b = s[y >> 2] | 0; s[y >> 2] = R; s[I >> 2] = b; y = B + 1 | 0; if ((y | 0) < (q | 0)) { B = y; j = x; R = b } else { break } } $ = $ + 1 | 0 } while (($ | 0) < (V | 0)); J = s[50] | 0; K = s[48] | 0; Q = s[44] | 0 } else { J = X; K = H; Q = N } } while (0); s[44] = K - J + Q } s[50] = -1; s[48] = -1; f = -1; c = a; return f | 0 } else if ((d | 0) == 1200) { s[40] = 824; N = s[50] | 0; H = s[48] | 0; do { if ((N | 0) == -1) { if ((H | 0) == -1) { break } s[44] = H } else { q = N - H | 0; P = C - N | 0; T = (q | 0) % (P | 0) | 0; if ((T | 0) == 0) { G = P } else { F = P; R = T; while (1) { T = (F | 0) % (R | 0) | 0; if ((T | 0) == 0) { G = R; break } else { F = R; R = T } } } R = (C - H | 0) / (G | 0) | 0; do { if ((G | 0) > 0) { F = -q | 0; if ((R | 0) > 0) { Y = 0 } else { Z = N; et = H; tt = C; break } do { T = Y + N | 0; j = t + (T << 2) | 0; B = 0; I = T; T = s[j >> 2] | 0; while (1) { b = ((I | 0) < (N | 0) ? P : F) + I | 0; x = t + (b << 2) | 0; y = s[x >> 2] | 0; s[x >> 2] = T; s[j >> 2] = y; x = B + 1 | 0; if ((x | 0) < (R | 0)) { B = x; I = b; T = y } else { break } } Y = Y + 1 | 0 } while ((Y | 0) < (G | 0)); Z = s[50] | 0; et = s[48] | 0; tt = s[44] | 0 } else { Z = N; et = H; tt = C } } while (0); s[44] = et - Z + tt } } while (0); s[50] = -1; s[48] = -1; f = -1; c = a; return f | 0 } else if ((d | 0) == 1217) { s[44] = C + 1; s[198] = s[O >> 2]; f = 1; c = a; return f | 0 } } while (0); O = (i | 0) != 0; e: do { if (O) { if ((L | 0) == (s[t + (A << 2) >> 2] | 0)) { nt = L; break } C = r[L] | 0; do { if (C << 24 >> 24 == 45) { s[40] = L + 1; rt = 0 } else { if ((S & 4 | 0) == 0) { nt = L; break e } if (C << 24 >> 24 == 58) { rt = 0; break } rt = (Ot(E | 0, C << 24 >> 24 | 0) | 0) != 0 | 0 } } while (0); C = Ir(t, E, i, o, rt) | 0; if ((C | 0) == -1) { nt = s[40] | 0; break } s[40] = 824; f = C; c = a; return f | 0 } else { nt = L } } while (0); L = nt + 1 | 0; s[40] = L; rt = r[nt] | 0; nt = rt << 24 >> 24; if ((rt << 24 >> 24 | 0) == 45) { if ((r[L] | 0) == 0) { d = 1260 } } else if ((rt << 24 >> 24 | 0) == 58) { d = 1263 } else { d = 1260 } do { if ((d | 0) == 1260) { S = Ot(E | 0, nt | 0) | 0; if ((S | 0) == 0) { if (rt << 24 >> 24 != 45) { d = 1263; break } if ((r[L] | 0) == 0) { f = -1 } else { break } c = a; return f | 0 } A = r[S + 1 | 0] | 0; if (O & rt << 24 >> 24 == 87 & A << 24 >> 24 == 59) { do { if ((r[L] | 0) == 0) { C = (s[44] | 0) + 1 | 0; s[44] = C; if ((C | 0) < (e | 0)) { s[40] = s[t + (C << 2) >> 2]; break } s[40] = 824; do { if ((s[46] | 0) != 0) { if ((r[E] | 0) == 58) { break } Rr(48, (k = c, c = c + 8 | 0, s[k >> 2] = nt, k) | 0) } } while (0); s[42] = nt; f = (r[E] | 0) == 58 ? 58 : 63; c = a; return f | 0 } } while (0); C = Ir(t, E, i, o, 0) | 0; s[40] = 824; f = C; c = a; return f | 0 } if (A << 24 >> 24 != 58) { if ((r[L] | 0) != 0) { f = nt; c = a; return f | 0 } s[44] = (s[44] | 0) + 1; f = nt; c = a; return f | 0 } s[198] = 0; do { if ((r[L] | 0) == 0) { if ((r[S + 2 | 0] | 0) == 58) { break } C = (s[44] | 0) + 1 | 0; s[44] = C; if ((C | 0) < (e | 0)) { s[198] = s[t + (C << 2) >> 2]; break } s[40] = 824; do { if ((s[46] | 0) != 0) { if ((r[E] | 0) == 58) { break } Rr(48, (k = c, c = c + 8 | 0, s[k >> 2] = nt, k) | 0) } } while (0); s[42] = nt; f = (r[E] | 0) == 58 ? 58 : 63; c = a; return f | 0 } else { s[198] = L } } while (0); s[40] = 824; s[44] = (s[44] | 0) + 1; f = nt; c = a; return f | 0 } } while (0); do { if ((d | 0) == 1263) { if ((r[L] | 0) != 0) { break } s[44] = (s[44] | 0) + 1 } } while (0); do { if ((s[46] | 0) != 0) { if ((r[E] | 0) == 58) { break } Rr(272, (k = c, c = c + 8 | 0, s[k >> 2] = nt, k) | 0) } } while (0); s[42] = nt; f = 63; c = a; return f | 0 } function Pr(e, t, n, r, i) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; i = i | 0; return Dr(e, t, n, r, i, 1) | 0 } function Hr(e, t, n, r, i) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; i = i | 0; return Dr(e, t, n, r, i, 5) | 0 } function Br(e) { e = e | 0; return yr(e) | 0 } function jr(e, t) { e = e | 0; t = t | 0; return Br(e) | 0 } function Fr() { var e = 0; e = Ft(4) | 0; s[e >> 2] = 560; Et(e | 0, 688, 6) } function Ir(e, t, n, i, o) { e = e | 0; t = t | 0; n = n | 0; i = i | 0; o = o | 0; var u = 0, a = 0, f = 0, l = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0; u = c; a = s[40] | 0; f = s[44] | 0; l = f + 1 | 0; s[44] = l; h = Ot(a | 0, 61) | 0; if ((h | 0) == 0) { p = ni(a | 0) | 0; d = 0 } else { p = h - a | 0; d = h + 1 | 0 } h = s[n >> 2] | 0; e: do { if ((h | 0) != 0) { t: do { if ((o | 0) != 0 & (p | 0) == 1) { v = 0; m = h; while (1) { if ((r[a] | 0) == (r[m] | 0)) { if ((ni(m | 0) | 0) == 1) { g = v; break t } } v = v + 1 | 0; m = s[n + (v << 4) >> 2] | 0; if ((m | 0) == 0) { break e } } } else { m = 0; v = -1; y = h; while (1) { if ((yt(a | 0, y | 0, p | 0) | 0) == 0) { if ((ni(y | 0) | 0) == (p | 0)) { g = m; break t } if ((v | 0) == -1) { b = m } else { break } } else { b = v } w = m + 1 | 0; E = s[n + (w << 4) >> 2] | 0; if ((E | 0) == 0) { g = b; break t } else { m = w; v = b; y = E } } do { if ((s[46] | 0) != 0) { if ((r[t] | 0) == 58) { break } Rr(304, (k = c, c = c + 16 | 0, s[k >> 2] = p, s[k + 8 >> 2] = a, k) | 0) } } while (0); s[42] = 0; S = 63; c = u; return S | 0 } } while (0); if ((g | 0) == -1) { break } y = n + (g << 4) + 4 | 0; v = s[y >> 2] | 0; m = (d | 0) == 0; if (!((v | 0) != 0 | m)) { do { if ((s[46] | 0) != 0) { if ((r[t] | 0) == 58) { break } Rr(208, (k = c, c = c + 16 | 0, s[k >> 2] = p, s[k + 8 >> 2] = a, k) | 0) } } while (0); if ((s[n + (g << 4) + 8 >> 2] | 0) == 0) { x = s[n + (g << 4) + 12 >> 2] | 0 } else { x = 0 } s[42] = x; S = (r[t] | 0) == 58 ? 58 : 63; c = u; return S | 0 } do { if ((v - 1 | 0) >>> 0 < 2) { if (!m) { s[198] = d; break } if ((v | 0) != 1) { break } s[44] = f + 2; s[198] = s[e + (l << 2) >> 2] } } while (0); if (!((s[y >> 2] | 0) == 1 & (s[198] | 0) == 0)) { if ((i | 0) != 0) { s[i >> 2] = g } v = s[n + (g << 4) + 8 >> 2] | 0; m = s[n + (g << 4) + 12 >> 2] | 0; if ((v | 0) == 0) { S = m; c = u; return S | 0 } s[v >> 2] = m; S = 0; c = u; return S | 0 } do { if ((s[46] | 0) != 0) { if ((r[t] | 0) == 58) { break } Rr(8, (k = c, c = c + 8 | 0, s[k >> 2] = a, k) | 0) } } while (0); if ((s[n + (g << 4) + 8 >> 2] | 0) == 0) { T = s[n + (g << 4) + 12 >> 2] | 0 } else { T = 0 } s[42] = T; s[44] = (s[44] | 0) - 1; S = (r[t] | 0) == 58 ? 58 : 63; c = u; return S | 0 } } while (0); if ((o | 0) != 0) { s[44] = f; S = -1; c = u; return S | 0 } do { if ((s[46] | 0) != 0) { if ((r[t] | 0) == 58) { break } Rr(248, (k = c, c = c + 8 | 0, s[k >> 2] = a, k) | 0) } } while (0); s[42] = 0; S = 63; c = u; return S | 0 } function qr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0; n = c; c = c + 16 | 0; r = n | 0; i = r; s[i >> 2] = t; s[i + 4 >> 2] = 0; Ur(e, r | 0); c = n; return } function Rr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0; n = c; c = c + 16 | 0; r = n | 0; i = r; s[i >> 2] = t; s[i + 4 >> 2] = 0; zr(e, r | 0); c = n; return } function Ur(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0; n = c; r = s[(Yt() | 0) >> 2] | 0; i = s[w >> 2] | 0; Tt(s[g >> 2] | 0, 432, (k = c, c = c + 8 | 0, s[k >> 2] = i, k) | 0) | 0; if ((e | 0) != 0) { i = s[g >> 2] | 0; Xt(i | 0, e | 0, t | 0) | 0; t = s[g >> 2] | 0; Dt(472, 2, 1, t | 0) | 0 } t = s[g >> 2] | 0; e = St(r | 0) | 0; Tt(t | 0, 384, (k = c, c = c + 8 | 0, s[k >> 2] = e, k) | 0) | 0; c = n; return } function zr(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0; n = c; r = s[w >> 2] | 0; Tt(s[g >> 2] | 0, 376, (k = c, c = c + 8 | 0, s[k >> 2] = r, k) | 0) | 0; if ((e | 0) != 0) { r = s[g >> 2] | 0; Xt(r | 0, e | 0, t | 0) | 0 } Mt(10, s[g >> 2] | 0) | 0; c = n; return } function Wr(e, t) { e = e | 0; t = t | 0; var n = 0, i = 0, o = 0, u = 0, a = 0, f = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, B = 0, j = 0, F = 0, I = 0, q = 0, R = 0, U = 0, z = 0, W = 0; n = e; while (1) { i = n + 1 | 0; if ((It(r[n] | 0) | 0) == 0) { break } else { n = i } } o = r[n] | 0; if ((o << 24 >> 24 | 0) == 45) { u = i; a = 1 } else if ((o << 24 >> 24 | 0) == 43) { u = i; a = 0 } else { u = n; a = 0 } n = -1; i = 0; o = u; while (1) { f = r[o] | 0; if (((f << 24 >> 24) - 48 | 0) >>> 0 < 10) { c = n } else { if (f << 24 >> 24 != 46 | (n | 0) > -1) { break } else { c = i } } n = c; i = i + 1 | 0; o = o + 1 | 0 } c = o + (-i | 0) | 0; u = (n | 0) < 0; h = ((u ^ 1) << 31 >> 31) + i | 0; p = (h | 0) > 18; d = (p ? -18 : -h | 0) + (u ? i : n) | 0; n = p ? 18 : h; do { if ((n | 0) == 0) { v = e; m = 0 } else { if ((n | 0) > 9) { h = c; p = n; i = 0; while (1) { u = r[h] | 0; g = h + 1 | 0; if (u << 24 >> 24 == 46) { y = r[g] | 0; b = h + 2 | 0 } else { y = u; b = g } w = (i * 10 | 0) - 48 + (y << 24 >> 24) | 0; g = p - 1 | 0; if ((g | 0) > 9) { h = b; p = g; i = w } else { break } } E = +(w | 0) * 1e9; S = 9; x = b; T = 1393 } else { if ((n | 0) > 0) { E = 0; S = n; x = c; T = 1393 } else { N = 0; C = 0 } } if ((T | 0) == 1393) { i = x; p = S; h = 0; while (1) { g = r[i] | 0; u = i + 1 | 0; if (g << 24 >> 24 == 46) { k = r[u] | 0; L = i + 2 | 0 } else { k = g; L = u } A = (h * 10 | 0) - 48 + (k << 24 >> 24) | 0; u = p - 1 | 0; if ((u | 0) > 0) { i = L; p = u; h = A } else { break } } N = +(A | 0); C = E } O = C + N; do { if ((f << 24 >> 24 | 0) == 69 | (f << 24 >> 24 | 0) == 101) { h = o + 1 | 0; p = r[h] | 0; if ((p << 24 >> 24 | 0) == 43) { M = o + 2 | 0; _ = 0 } else if ((p << 24 >> 24 | 0) == 45) { M = o + 2 | 0; _ = 1 } else { M = h; _ = 0 } h = r[M] | 0; if (((h << 24 >> 24) - 48 | 0) >>> 0 < 10) { D = M; P = 0; H = h } else { B = 0; j = M; F = _; break } while (1) { h = (P * 10 | 0) - 48 + (H << 24 >> 24) | 0; p = D + 1 | 0; i = r[p] | 0; if (((i << 24 >> 24) - 48 | 0) >>> 0 < 10) { D = p; P = h; H = i } else { B = h; j = p; F = _; break } } } else { B = 0; j = o; F = 0 } } while (0); p = d + ((F | 0) == 0 ? B : -B | 0) | 0; h = (p | 0) < 0 ? -p | 0 : p; if ((h | 0) > 511) { s[(Yt() | 0) >> 2] = 34; I = 1; q = 88; R = 511; T = 1410 } else { if ((h | 0) == 0) { U = 1 } else { I = 1; q = 88; R = h; T = 1410 } } if ((T | 0) == 1410) { while (1) { T = 0; if ((R & 1 | 0) == 0) { z = I } else { z = I * +l[q >> 3] } h = R >> 1; if ((h | 0) == 0) { U = z; break } else { I = z; q = q + 8 | 0; R = h; T = 1410 } } } if ((p | 0) > -1) { v = j; m = O * U; break } else { v = j; m = O / U; break } } } while (0); if ((t | 0) != 0) { s[t >> 2] = v } if ((a | 0) == 0) { W = m; return +W } W = -0 - m; return +W } function Xr(e, t) { e = e | 0; t = t | 0; return +(+Wr(e, t)) } function Vr(e, t) { e = e | 0; t = t | 0; return +(+Wr(e, t)) } function $r(e, t, n) { e = e | 0; t = t | 0; n = n | 0; return +(+Wr(e, t)) } function Jr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; return +(+Wr(e, t)) } function Kr(e) { e = e | 0; return +(+Wr(e, 0)) } function Qr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0; r = c; c = c + 16 | 0; i = r | 0; r = i; s[r >> 2] = n; s[r + 4 >> 2] = 0; Yr(e, t, i | 0) } function Gr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0; r = c; c = c + 16 | 0; i = r | 0; r = i; s[r >> 2] = n; s[r + 4 >> 2] = 0; Zr(e, t, i | 0) } function Yr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0, i = 0; r = s[(Yt() | 0) >> 2] | 0; i = s[w >> 2] | 0; Tt(s[g >> 2] | 0, 336, (k = c, c = c + 8 | 0, s[k >> 2] = i, k) | 0) | 0; if ((t | 0) != 0) { i = s[g >> 2] | 0; Xt(i | 0, t | 0, n | 0) | 0; n = s[g >> 2] | 0; Dt(480, 2, 1, n | 0) | 0 } n = s[g >> 2] | 0; t = St(r | 0) | 0; Tt(n | 0, 392, (k = c, c = c + 8 | 0, s[k >> 2] = t, k) | 0) | 0; Bt(e | 0) } function Zr(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var r = 0; r = s[w >> 2] | 0; Tt(s[g >> 2] | 0, 440, (k = c, c = c + 8 | 0, s[k >> 2] = r, k) | 0) | 0; if ((t | 0) != 0) { r = s[g >> 2] | 0; Xt(r | 0, t | 0, n | 0) | 0 } Mt(10, s[g >> 2] | 0) | 0; Bt(e | 0) } function ei(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var i = 0; i = e | 0; if ((e & 3) == (t & 3)) { while (e & 3) { if ((n | 0) == 0) return i | 0; r[e] = r[t] | 0; e = e + 1 | 0; t = t + 1 | 0; n = n - 1 | 0 } while ((n | 0) >= 4) { s[e >> 2] = s[t >> 2]; e = e + 4 | 0; t = t + 4 | 0; n = n - 4 | 0 } } while ((n | 0) > 0) { r[e] = r[t] | 0; e = e + 1 | 0; t = t + 1 | 0; n = n - 1 | 0 } return i | 0 } function ti(e, t, n) { e = e | 0; t = t | 0; n = n | 0; var i = 0, o = 0, u = 0; i = e + n | 0; if ((n | 0) >= 20) { t = t & 255; n = e & 3; o = t | t << 8 | t << 16 | t << 24; u = i & ~3; if (n) { n = e + 4 - n | 0; while ((e | 0) < (n | 0)) { r[e] = t; e = e + 1 | 0 } } while ((e | 0) < (u | 0)) { s[e >> 2] = o; e = e + 4 | 0 } } while ((e | 0) < (i | 0)) { r[e] = t; e = e + 1 | 0 } } function ni(e) { e = e | 0; var t = 0; t = e; while (r[t] | 0) { t = t + 1 | 0 } return t - e | 0 } function ri(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0; i = e + n >>> 0; return (B = t + r + (i >>> 0 < e >>> 0 | 0) >>> 0, i | 0) | 0 } function ii(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0; i = t - r >>> 0; i = t - r - (n >>> 0 > e >>> 0 | 0) >>> 0; return (B = i, e - n >>> 0 | 0) | 0 } function si(e, t, n) { e = e | 0; t = t | 0; n = n | 0; if ((n | 0) < 32) { B = t << n | (e & (1 << n) - 1 << 32 - n) >>> 32 - n; return e << n } B = e << n - 32; return 0 } function oi(e, t, n) { e = e | 0; t = t | 0; n = n | 0; if ((n | 0) < 32) { B = t >>> n; return e >>> n | (t & (1 << n) - 1) << 32 - n } B = 0; return t >>> n - 32 | 0 } function ui(e, t, n) { e = e | 0; t = t | 0; n = n | 0; if ((n | 0) < 32) { B = t >> n; return e >>> n | (t & (1 << n) - 1) << 32 - n } B = (t | 0) < 0 ? -1 : 0; return t >> n - 32 | 0 } function ai(e) { e = e | 0; var t = 0; t = r[m + (e >>> 24) | 0] | 0; if ((t | 0) < 8) return t | 0; t = r[m + (e >> 16 & 255) | 0] | 0; if ((t | 0) < 8) return t + 8 | 0; t = r[m + (e >> 8 & 255) | 0] | 0; if ((t | 0) < 8) return t + 16 | 0; return (r[m + (e & 255) | 0] | 0) + 24 | 0 } function fi(e) { e = e | 0; var t = 0; t = r[v + (e & 255) | 0] | 0; if ((t | 0) < 8) return t | 0; t = r[v + (e >> 8 & 255) | 0] | 0; if ((t | 0) < 8) return t + 8 | 0; t = r[v + (e >> 16 & 255) | 0] | 0; if ((t | 0) < 8) return t + 16 | 0; return (r[v + (e >>> 24) | 0] | 0) + 24 | 0 } function li(e, t) { e = e | 0; t = t | 0; var n = 0, r = 0, i = 0, s = 0; n = e & 65535; r = t & 65535; i = ot(r, n) | 0; s = e >>> 16; e = (i >>> 16) + (ot(r, s) | 0) | 0; r = t >>> 16; t = ot(r, n) | 0; return (B = (e >>> 16) + (ot(r, s) | 0) + (((e & 65535) + t | 0) >>> 16) | 0, e + t << 16 | i & 65535 | 0) | 0 } function ci(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0, s = 0, o = 0, u = 0, a = 0; i = t >> 31 | ((t | 0) < 0 ? -1 : 0) << 1; s = ((t | 0) < 0 ? -1 : 0) >> 31 | ((t | 0) < 0 ? -1 : 0) << 1; o = r >> 31 | ((r | 0) < 0 ? -1 : 0) << 1; u = ((r | 0) < 0 ? -1 : 0) >> 31 | ((r | 0) < 0 ? -1 : 0) << 1; a = ii(i ^ e, s ^ t, i, s) | 0; t = B; e = o ^ i; i = u ^ s; s = ii((mi(a, t, ii(o ^ n, u ^ r, o, u) | 0, B, 0) | 0) ^ e, B ^ i, e, i) | 0; return (B = B, s) | 0 } function hi(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0, o = 0, u = 0, a = 0, f = 0, l = 0, h = 0; i = c; c = c + 8 | 0; o = i | 0; u = t >> 31 | ((t | 0) < 0 ? -1 : 0) << 1; a = ((t | 0) < 0 ? -1 : 0) >> 31 | ((t | 0) < 0 ? -1 : 0) << 1; f = r >> 31 | ((r | 0) < 0 ? -1 : 0) << 1; l = ((r | 0) < 0 ? -1 : 0) >> 31 | ((r | 0) < 0 ? -1 : 0) << 1; h = ii(u ^ e, a ^ t, u, a) | 0; t = B; e = ii(f ^ n, l ^ r, f, l) | 0; mi(h, t, e, B, o) | 0; e = ii(s[o >> 2] ^ u, s[o + 4 >> 2] ^ a, u, a) | 0; a = B; c = i; return (B = a, e) | 0 } function pi(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0, s = 0; i = e; e = n; n = li(i, e) | 0; s = B; return (B = (ot(t, e) | 0) + (ot(r, i) | 0) + s | s & 0, n | 0 | 0) | 0 } function di(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0; i = mi(e, t, n, r, 0) | 0; return (B = B, i) | 0 } function vi(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; var i = 0, o = 0; i = c; c = c + 8 | 0; o = i | 0; mi(e, t, n, r, o) | 0; c = i; return (B = s[o + 4 >> 2] | 0, s[o >> 2] | 0) | 0 } function mi(e, t, n, r, i) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; i = i | 0; var o = 0, u = 0, a = 0, f = 0, l = 0, c = 0, h = 0, p = 0, d = 0, v = 0, m = 0, g = 0, y = 0, b = 0, w = 0, E = 0, S = 0, x = 0, T = 0, N = 0, C = 0, k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0, j = 0, F = 0; o = e; u = t; a = u; f = n; l = r; c = l; if ((a | 0) == 0) { h = (i | 0) != 0; if ((c | 0) == 0) { if (h) { s[i >> 2] = (o >>> 0) % (f >>> 0); s[i + 4 >> 2] = 0 } p = 0; d = (o >>> 0) / (f >>> 0) >>> 0; return (B = p, d) | 0 } else { if (!h) { p = 0; d = 0; return (B = p, d) | 0 } s[i >> 2] = e | 0; s[i + 4 >> 2] = t & 0; p = 0; d = 0; return (B = p, d) | 0 } } h = (c | 0) == 0; do { if ((f | 0) == 0) { if (h) { if ((i | 0) != 0) { s[i >> 2] = (a >>> 0) % (f >>> 0); s[i + 4 >> 2] = 0 } p = 0; d = (a >>> 0) / (f >>> 0) >>> 0; return (B = p, d) | 0 } if ((o | 0) == 0) { if ((i | 0) != 0) { s[i >> 2] = 0; s[i + 4 >> 2] = (a >>> 0) % (c >>> 0) } p = 0; d = (a >>> 0) / (c >>> 0) >>> 0; return (B = p, d) | 0 } v = c - 1 | 0; if ((v & c | 0) == 0) { if ((i | 0) != 0) { s[i >> 2] = e | 0; s[i + 4 >> 2] = v & a | t & 0 } p = 0; d = a >>> ((fi(c | 0) | 0) >>> 0); return (B = p, d) | 0 } v = (ai(c | 0) | 0) - (ai(a | 0) | 0) | 0; if (v >>> 0 <= 30) { m = v + 1 | 0; g = 31 - v | 0; y = m; b = a << g | o >>> (m >>> 0); w = a >>> (m >>> 0); E = 0; S = o << g; break } if ((i | 0) == 0) { p = 0; d = 0; return (B = p, d) | 0 } s[i >> 2] = e | 0; s[i + 4 >> 2] = u | t & 0; p = 0; d = 0; return (B = p, d) | 0 } else { if (!h) { g = (ai(c | 0) | 0) - (ai(a | 0) | 0) | 0; if (g >>> 0 <= 31) { m = g + 1 | 0; v = 31 - g | 0; x = g - 31 >> 31; y = m; b = o >>> (m >>> 0) & x | a << v; w = a >>> (m >>> 0) & x; E = 0; S = o << v; break } if ((i | 0) == 0) { p = 0; d = 0; return (B = p, d) | 0 } s[i >> 2] = e | 0; s[i + 4 >> 2] = u | t & 0; p = 0; d = 0; return (B = p, d) | 0 } v = f - 1 | 0; if ((v & f | 0) != 0) { x = (ai(f | 0) | 0) + 33 - (ai(a | 0) | 0) | 0; m = 64 - x | 0; g = 32 - x | 0; T = g >> 31; N = x - 32 | 0; C = N >> 31; y = x; b = g - 1 >> 31 & a >>> (N >>> 0) | (a << g | o >>> (x >>> 0)) & C; w = C & a >>> (x >>> 0); E = o << m & T; S = (a << m | o >>> (N >>> 0)) & T | o << g & x - 33 >> 31; break } if ((i | 0) != 0) { s[i >> 2] = v & o; s[i + 4 >> 2] = 0 } if ((f | 0) == 1) { p = u | t & 0; d = e | 0 | 0; return (B = p, d) | 0 } else { v = fi(f | 0) | 0; p = a >>> (v >>> 0) | 0; d = a << 32 - v | o >>> (v >>> 0) | 0; return (B = p, d) | 0 } } } while (0); if ((y | 0) == 0) { k = S; L = E; A = w; O = b; M = 0; _ = 0 } else { o = n | 0 | 0; n = l | r & 0; r = ri(o, n, -1, -1) | 0; l = B; a = S; S = E; E = w; w = b; b = y; y = 0; while (1) { D = S >>> 31 | a << 1; P = y | S << 1; f = w << 1 | a >>> 31 | 0; e = w >>> 31 | E << 1 | 0; ii(r, l, f, e) | 0; t = B; u = t >> 31 | ((t | 0) < 0 ? -1 : 0) << 1; H = u & 1; j = ii(f, e, u & o, (((t | 0) < 0 ? -1 : 0) >> 31 | ((t | 0) < 0 ? -1 : 0) << 1) & n) | 0; F = B; t = b - 1 | 0; if ((t | 0) == 0) { break } else { a = D; S = P; E = F; w = j; b = t; y = H } } k = D; L = P; A = F; O = j; M = 0; _ = H } H = L; L = 0; if ((i | 0) != 0) { s[i >> 2] = O; s[i + 4 >> 2] = A } p = (H | 0) >>> 31 | (k | L) << 1 | (L << 1 | H >>> 31) & 0 | M; d = (H << 1 | 0 >>> 31) & -2 | _; return (B = p, d) | 0 } function gi(e, t) { e = e | 0; t = t | 0; Ai[e & 15](t | 0) } function yi(e, t, n) { e = e | 0; t = t | 0; n = n | 0; Oi[e & 15](t | 0, n | 0) } function bi(e, t) { e = e | 0; t = t | 0; return Mi[e & 7](t | 0) | 0 } function wi(e, t, n, r) { e = e | 0; t = t | 0; n = n | 0; r = r | 0; _i[e & 15](t | 0, n | 0, r | 0) } function Ei(e) { e = e | 0; Di[e & 1]() } function Si(e, t, n) { e = e | 0; t = t | 0; n = n | 0; return Pi[e & 1](t | 0, n | 0) | 0 } function xi(e) { e = e | 0; ut(0) } function Ti(e, t) { e = e | 0; t = t | 0; ut(1) } function Ni(e) { e = e | 0; ut(2); return 0 } function Ci(e, t, n) { e = e | 0; t = t | 0; n = n | 0; ut(3) } function ki() { ut(4) } function Li(e, t) { e = e | 0; t = t | 0; ut(5); return 0 } var r = new e.Int8Array(n); var i = new e.Int16Array(n); var s = new e.Int32Array(n); var o = new e.Uint8Array(n); var u = new e.Uint16Array(n); var a = new e.Uint32Array(n); var f = new e.Float32Array(n); var l = new e.Float64Array(n); var c = t.STACKTOP | 0; var h = t.STACK_MAX | 0; var p = t.tempDoublePtr | 0; var d = t.ABORT | 0; var v = t.cttz_i8 | 0; var m = t.ctlz_i8 | 0; var g = t._stderr | 0; var y = t.__ZTVN10__cxxabiv120__si_class_type_infoE | 0; var b = t.__ZTVN10__cxxabiv117__class_type_infoE | 0; var w = t.___progname | 0; var E = +t.NaN; var S = +t.Infinity; var x = 0; var T = 0; var N = 0; var C = 0; var k = 0, L = 0, A = 0, O = 0, M = 0, _ = 0, D = 0, P = 0, H = 0; var B = 0; var j = 0; var F = 0; var I = 0; var q = 0; var R = 0; var U = 0; var z = 0; var W = 0; var X = 0; var V = e.Math.floor; var $ = e.Math.abs; var J = e.Math.sqrt; var K = e.Math.pow; var Q = e.Math.cos; var G = e.Math.sin; var Y = e.Math.tan; var Z = e.Math.acos; var et = e.Math.asin; var tt = e.Math.atan; var nt = e.Math.atan2; var rt = e.Math.exp; var it = e.Math.log; var st = e.Math.ceil; var ot = e.Math.imul; var ut = t.abort; var at = t.assert; var ft = t.asmPrintInt; var lt = t.asmPrintFloat; var ct = t.min; var ht = t.invoke_vi; var pt = t.invoke_vii; var dt = t.invoke_ii; var vt = t.invoke_viii; var mt = t.invoke_v; var gt = t.invoke_iii; var yt = t._strncmp; var bt = t._llvm_va_end; var wt = t._sysconf; var Et = t.___cxa_throw; var St = t._strerror; var xt = t._abort; var Tt = t._fprintf; var Nt = t._llvm_eh_exception; var Ct = t.___cxa_free_exception; var kt = t._fflush; var Lt = t.___buildEnvironment; var At = t.__reallyNegative; var Ot = t._strchr; var Mt = t._fputc; var _t = t.___setErrNo; var Dt = t._fwrite; var Pt = t._send; var Ht = t._write; var Bt = t._exit; var jt = t.___cxa_find_matching_catch; var Ft = t.___cxa_allocate_exception; var It = t._isspace; var qt = t.__formatString; var Rt = t.___resumeException; var Ut = t._llvm_uadd_with_overflow_i32; var zt = t.___cxa_does_inherit; var Wt = t._getenv; var Xt = t._vfprintf; var Vt = t.___cxa_begin_catch; var $t = t.__ZSt18uncaught_exceptionv; var Jt = t._pwrite; var Kt = t.___cxa_call_unexpected; var Qt = t._sbrk; var Gt = t._strerror_r; var Yt = t.___errno_location; var Zt = t.___gxx_personality_v0; var en = t.___cxa_is_number_type; var tn = t._time; var nn = t.__exit; var rn = t.___cxa_end_catch; var Ai = [xi, xi, Nr, xi, Mr, xi, wr, xi, Tr, xi, Or, xi, xi, xi, xi, xi]; var Oi = [Ti, Ti, qr, Ti, Ur, Ti, Rr, Ti, zr, Ti, Ti, Ti, Ti, Ti, Ti, Ti]; var Mi = [Ni, Ni, Er, Ni, Sr, Ni, Ni, Ni]; var _i = [Ci, Ci, Zr, Ci, Yr, Ci, Qr, Ci, Gr, Ci, Ci, Ci, Ci, Ci, Ci, Ci]; var Di = [ki, ki]; var Pi = [Li, Li]; return { _crypto_scrypt: Ln, _strlen: ni, _free: Vn, _realloc: Jn, _memset: ti, _malloc: Xn, _memcpy: ei, _calloc: $n, runPostSets: En, stackAlloc: sn, stackSave: on, stackRestore: un, setThrew: an, setTempRet0: cn, setTempRet1: hn, setTempRet2: pn, setTempRet3: dn, setTempRet4: vn, setTempRet5: mn, setTempRet6: gn, setTempRet7: yn, setTempRet8: bn, setTempRet9: wn, dynCall_vi: gi, dynCall_vii: yi, dynCall_ii: bi, dynCall_viii: wi, dynCall_v: Ei, dynCall_iii: Si } }({ Math: Math, Int8Array: Int8Array, Int16Array: Int16Array, Int32Array: Int32Array, Uint8Array: Uint8Array, Uint16Array: Uint16Array, Uint32Array: Uint32Array, Float32Array: Float32Array, Float64Array: Float64Array }, { abort: wa, assert: w, asmPrintInt: function (e, t) { s.print("int " + e + "," + t) }, asmPrintFloat: function (e, t) { s.print("float " + e + "," + t) }, min: Xc, invoke_vi: function (e, t) { try { s.dynCall_vi(e, t) } catch (n) { "number" !== typeof n && "longjmp" !== n && g(n), V.setThrew(1, 0) } }, invoke_vii: function (e, t, n) { try { s.dynCall_vii(e, t, n) } catch (r) { "number" !== typeof r && "longjmp" !== r && g(r), V.setThrew(1, 0) } }, invoke_ii: function (e, t) { try { return s.dynCall_ii(e, t) } catch (n) { "number" !== typeof n && "longjmp" !== n && g(n), V.setThrew(1, 0) } }, invoke_viii: function (e, t, n, r) { try { s.dynCall_viii(e, t, n, r) } catch (i) { "number" !== typeof i && "longjmp" !== i && g(i), V.setThrew(1, 0) } }, invoke_v: function (e) { try { s.dynCall_v(e) } catch (t) { "number" !== typeof t && "longjmp" !== t && g(t), V.setThrew(1, 0) } }, invoke_iii: function (e, t, n) { try { return s.dynCall_iii(e, t, n) } catch (r) { "number" !== typeof r && "longjmp" !== r && g(r), V.setThrew(1, 0) } }, _strncmp: function (e, t, n) { for (var r = 0; r < n;) { var i = G[e + r | 0], s = G[t + r | 0]; if (i == s && 0 == i) { break } if (0 == i) { return -1 } if (0 == s) { return 1 } if (i == s) { r++ } else { return i > s ? 1 : -1 } } return 0 }, _llvm_va_end: aa(), _sysconf: function (e) { switch (e) { case 8: return 4096; case 54: ; case 56: ; case 21: ; case 61: ; case 63: ; case 22: ; case 67: ; case 23: ; case 24: ; case 25: ; case 26: ; case 27: ; case 69: ; case 28: ; case 101: ; case 70: ; case 71: ; case 29: ; case 30: ; case 199: ; case 75: ; case 76: ; case 32: ; case 43: ; case 44: ; case 80: ; case 46: ; case 47: ; case 45: ; case 48: ; case 49: ; case 42: ; case 82: ; case 33: ; case 7: ; case 108: ; case 109: ; case 107: ; case 112: ; case 119: ; case 121: return 200809; case 13: ; case 104: ; case 94: ; case 95: ; case 34: ; case 35: ; case 77: ; case 81: ; case 83: ; case 84: ; case 85: ; case 86: ; case 87: ; case 88: ; case 89: ; case 90: ; case 91: ; case 94: ; case 95: ; case 110: ; case 111: ; case 113: ; case 114: ; case 115: ; case 116: ; case 117: ; case 118: ; case 120: ; case 40: ; case 16: ; case 79: ; case 19: return -1; case 92: ; case 93: ; case 5: ; case 72: ; case 6: ; case 74: ; case 92: ; case 93: ; case 96: ; case 97: ; case 98: ; case 99: ; case 102: ; case 103: ; case 105: return 1; case 38: ; case 66: ; case 50: ; case 51: ; case 4: return 1024; case 15: ; case 64: ; case 41: return 32; case 55: ; case 37: ; case 17: return 2147483647; case 18: ; case 1: return 47839; case 59: ; case 57: return 99; case 68: ; case 58: return 2048; case 0: return 2097152; case 3: return 65536; case 14: return 32768; case 73: return 32767; case 39: return 16384; case 60: return 1e3; case 106: return 700; case 52: return 256; case 62: return 255; case 2: return 100; case 65: return 64; case 36: return 20; case 100: return 16; case 20: return 6; case 53: return 4; case 10: return 1 }M(N.A); return -1 }, ___cxa_throw: rc, _strerror: zc, _abort: function () { s.abort() }, _fprintf: mc, _llvm_eh_exception: U, ___cxa_free_exception: sc, _fflush: aa(), ___buildEnvironment: wc, __reallyNegative: jc, _strchr: function (e, t) { e--; do { e++; var n = A[e]; if (n == t) { return e } } while (n); return 0 }, _fputc: Bc, ___setErrNo: M, _fwrite: hc, _send: fc, _write: gc, _exit: function (e) { Ac(e) }, ___cxa_find_matching_catch: function (e, t) { -1 == e && (e = B[U.m >> 2]); -1 == t && (t = B[U.m + 4 >> 2]); var n = Array.prototype.slice.call(arguments, 2); 0 != t && !pc(t) && 0 == B[B[t >> 2] - 8 >> 2] && (e = B[e >> 2]); for (var r = 0; r < n.length; r++) { if (qc(n[r], t, e)) { return (V.setTempRet0(n[r]), e) | 0 } } return (V.setTempRet0(t), e) | 0 }, ___cxa_allocate_exception: function (e) { return Oa(e) }, _isspace: function (e) { return 32 == e || 9 <= e && 13 >= e }, __formatString: kc, ___resumeException: function (e) { 0 == B[U.m >> 2] && (B[U.m >> 2] = e); g(e + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.") }, _llvm_uadd_with_overflow_i32: function (e, t) { e >>>= 0; t >>>= 0; return (V.setTempRet0(4294967295 < e + t), e + t >>> 0) | 0 }, ___cxa_does_inherit: qc, _getenv: xc, _vfprintf: function (e, t, n) { return mc(e, t, B[n >> 2]) }, ___cxa_begin_catch: function (e) { oc.ta--; return e }, __ZSt18uncaught_exceptionv: oc, _pwrite: function (e, t, n, r) { e = R[e]; if (!e) { return M(N.$), -1 } try { return Ib(e, A, t, n, r) } catch (i) { return Zb(i), -1 } }, ___cxa_call_unexpected: function (e) { s.P("Unexpected exception thrown, this is not properly supported - aborting"); za = l; g(e) }, _sbrk: nc, _strerror_r: yc, ___errno_location: function () { return rb }, ___gxx_personality_v0: aa(), ___cxa_is_number_type: pc, _time: function (e) { var t = Math.floor(Date.now() / 1e3); e && (B[e >> 2] = t); return t }, __exit: Ac, ___cxa_end_catch: uc, STACKTOP: u, STACK_MAX: Ta, tempDoublePtr: qb, ABORT: za, cttz_i8: Wc, ctlz_i8: Vc, NaN: NaN, Infinity: Infinity, _stderr: nb, __ZTVN10__cxxabiv120__si_class_type_infoE: ob, __ZTVN10__cxxabiv117__class_type_infoE: pb, ___progname: k }, I); s._crypto_scrypt = V._crypto_scrypt; var ic = s._strlen = V._strlen, tc = s._free = V._free; s._realloc = V._realloc; var tb = s._memset = V._memset, Oa = s._malloc = V._malloc, sb = s._memcpy = V._memcpy; s._calloc = V._calloc; var mb = s.runPostSets = V.runPostSets; s.dynCall_vi = V.dynCall_vi; s.dynCall_vii = V.dynCall_vii; s.dynCall_ii = V.dynCall_ii; s.dynCall_viii = V.dynCall_viii; s.dynCall_v = V.dynCall_v; s.dynCall_iii = V.dynCall_iii; var qa = function (e) { return V.stackAlloc(e) }, ja = function () { return V.stackSave() }, ka = function (e) { V.stackRestore(e) }, lc; Y.Ca = {}; Y.D = function (e) { if (-128 <= e && 128 > e) { var t = Y.Ca[e]; if (t) { return t } } t = new Y(e | 0, 0 > e ? -1 : 0); -128 <= e && 128 > e && (Y.Ca[e] = t); return t }; Y.p = function (e) { return isNaN(e) || !isFinite(e) ? Y.ZERO : e <= -Y.Ea ? Y.MIN_VALUE : e + 1 >= Y.Ea ? Y.MAX_VALUE : 0 > e ? Y.p(-e).i() : new Y(e % Y.B | 0, e / Y.B | 0) }; Y.v = function (e, t) { return new Y(e, t) }; Y.k = function (e, t) { 0 == e.length && g(Error("number format error: empty string")); var n = t || 10; (2 > n || 36 < n) && g(Error("radix out of range: " + n)); if ("-" == e.charAt(0)) { return Y.k(e.substring(1), n).i() } 0 <= e.indexOf("-") && g(Error('number format error: interior "-" character: ' + e)); for (var r = Y.p(Math.pow(n, 8)), i = Y.ZERO, s = 0; s < e.length; s += 8) { var o = Math.min(8, e.length - s), u = parseInt(e.substring(s, s + o), n); 8 > o ? (o = Y.p(Math.pow(n, o)), i = i.multiply(o).add(Y.p(u))) : (i = i.multiply(r), i = i.add(Y.p(u))) } return i }; Y.ea = 65536; Y.Od = 16777216; Y.B = Y.ea * Y.ea; Y.Pd = Y.B / 2; Y.Qd = Y.B * Y.ea; Y.eb = Y.B * Y.B; Y.Ea = Y.eb / 2; Y.ZERO = Y.D(0); Y.ONE = Y.D(1); Y.Da = Y.D(-1); Y.MAX_VALUE = Y.v(-1, 2147483647); Y.MIN_VALUE = Y.v(0, -2147483648); Y.cb = Y.D(16777216); q = Y.prototype; q.Z = function () { return this.j * Y.B + this.ob() }; q.toString = function (e) { e = e || 10; (2 > e || 36 < e) && g(Error("radix out of range: " + e)); if (this.G()) { return "0" } if (this.n()) { if (this.o(Y.MIN_VALUE)) { var t = Y.p(e), n = this.F(t), t = n.multiply(t).R(this); return n.toString(e) + t.h.toString(e) } return "-" + this.i().toString(e) } for (var n = Y.p(Math.pow(e, 6)), t = this, r = ""; ;) { var i = t.F(n), s = t.R(i.multiply(n)).h.toString(e), t = i; if (t.G()) { return s + r } for (; 6 > s.length;) { s = "0" + s } r = "" + s + r } }; q.ob = function () { return 0 <= this.h ? this.h : Y.B + this.h }; q.G = function () { return 0 == this.j && 0 == this.h }; q.n = function () { return 0 > this.j }; q.Pa = function () { return 1 == (this.h & 1) }; q.o = function (e) { return this.j == e.j && this.h == e.h }; q.Ra = function () { return 0 > this.ja(Y.cb) }; q.qb = function (e) { return 0 < this.ja(e) }; q.rb = function (e) { return 0 <= this.ja(e) }; q.ja = function (e) { if (this.o(e)) { return 0 } var t = this.n(), n = e.n(); return t && !n ? -1 : !t && n ? 1 : this.R(e).n() ? -1 : 1 }; q.i = function () { return this.o(Y.MIN_VALUE) ? Y.MIN_VALUE : this.xb().add(Y.ONE) }; q.add = function (e) { var t = this.j >>> 16, n = this.j & 65535, r = this.h >>> 16, i = e.j >>> 16, s = e.j & 65535, o = e.h >>> 16, u; u = 0 + ((this.h & 65535) + (e.h & 65535)); e = 0 + (u >>> 16); e += r + o; r = 0 + (e >>> 16); r += n + s; n = 0 + (r >>> 16); n = n + (t + i) & 65535; return Y.v((e & 65535) << 16 | u & 65535, n << 16 | r & 65535) }; q.R = function (e) { return this.add(e.i()) }; q.multiply = function (e) { if (this.G() || e.G()) { return Y.ZERO } if (this.o(Y.MIN_VALUE)) { return e.Pa() ? Y.MIN_VALUE : Y.ZERO } if (e.o(Y.MIN_VALUE)) { return this.Pa() ? Y.MIN_VALUE : Y.ZERO } if (this.n()) { return e.n() ? this.i().multiply(e.i()) : this.i().multiply(e).i() } if (e.n()) { return this.multiply(e.i()).i() } if (this.Ra() && e.Ra()) { return Y.p(this.Z() * e.Z()) } var t = this.j >>> 16, n = this.j & 65535, r = this.h >>> 16, i = this.h & 65535, s = e.j >>> 16, o = e.j & 65535, u = e.h >>> 16, e = e.h & 65535, a, f, l, c; c = 0 + i * e; l = 0 + (c >>> 16); l += r * e; f = 0 + (l >>> 16); l = (l & 65535) + i * u; f += l >>> 16; l &= 65535; f += n * e; a = 0 + (f >>> 16); f = (f & 65535) + r * u; a += f >>> 16; f &= 65535; f += i * o; a += f >>> 16; f &= 65535; a = a + (t * e + n * u + r * o + i * s) & 65535; return Y.v(l << 16 | c & 65535, a << 16 | f) }; q.F = function (e) { e.G() && g(Error("division by zero")); if (this.G()) { return Y.ZERO } if (this.o(Y.MIN_VALUE)) { if (e.o(Y.ONE) || e.o(Y.Da)) { return Y.MIN_VALUE } if (e.o(Y.MIN_VALUE)) { return Y.ONE } var t = this.Db().F(e).shiftLeft(1); if (t.o(Y.ZERO)) { return e.n() ? Y.ONE : Y.Da } var n = this.R(e.multiply(t)); return t.add(n.F(e)) } if (e.o(Y.MIN_VALUE)) { return Y.ZERO } if (this.n()) { return e.n() ? this.i().F(e.i()) : this.i().F(e).i() } if (e.n()) { return this.F(e.i()).i() } for (var r = Y.ZERO, n = this; n.rb(e);) { for (var t = Math.max(1, Math.floor(n.Z() / e.Z())), i = Math.ceil(Math.log(t) / Math.LN2), i = 48 >= i ? 1 : Math.pow(2, i - 48), s = Y.p(t), o = s.multiply(e); o.n() || o.qb(n);) { t -= i, s = Y.p(t), o = s.multiply(e) } s.G() && (s = Y.ONE); r = r.add(s); n = n.R(o) } return r }; q.xb = function () { return Y.v(~this.h, ~this.j) }; q.shiftLeft = function (e) { e &= 63; if (0 == e) { return this } var t = this.h; return 32 > e ? Y.v(t << e, this.j << e | t >>> 32 - e) : Y.v(0, t << e - 32) }; q.Db = function () { var e; e = 1; if (0 == e) { return this } var t = this.j; return 32 > e ? Y.v(this.h >>> e | t << 32 - e, t >> e) : Y.v(t >> e - 32, 0 <= t ? 0 : -1) }; q = X.prototype; q.ga = function (e, t, n, r) { for (var i = 0, s = 0; 0 <= --r;) { var o = e * this[i++] + t[n] + s, s = Math.floor(o / 67108864); t[n++] = o & 67108863 } return s }; q.f = 26; q.u = 67108863; q.K = 67108864; q.bb = Math.pow(2, 52); q.Aa = 26; q.Ba = 0; var $c = [], bd, Z; bd = 48; for (Z = 0; 9 >= Z; ++Z) { $c[bd++] = Z } bd = 97; for (Z = 10; 36 > Z; ++Z) { $c[bd++] = Z } bd = 65; for (Z = 10; 36 > Z; ++Z) { $c[bd++] = Z } q = X.prototype; q.copyTo = function (e) { for (var t = this.b - 1; 0 <= t; --t) { e[t] = this[t] } e.b = this.b; e.c = this.c }; q.D = function (e) { this.b = 1; this.c = 0 > e ? -1 : 0; 0 < e ? this[0] = e : -1 > e ? this[0] = e + DV : this.b = 0 }; q.k = function (e, t) { var n; if (16 == t) { n = 4 } else { if (8 == t) { n = 3 } else { if (256 == t) { n = 8 } else { if (2 == t) { n = 1 } else { if (32 == t) { n = 5 } else { if (4 == t) { n = 2 } else { this.nb(e, t); return } } } } } } this.c = this.b = 0; for (var r = e.length, i = p, s = 0; 0 <= --r;) { var o = 8 == n ? e[r] & 255 : Zc(e, r); 0 > o ? "-" == e.charAt(r) && (i = l) : (i = p, 0 == s ? this[this.b++] = o : s + n > this.f ? (this[this.b - 1] |= (o & (1 << this.f - s) - 1) << s, this[this.b++] = o >> this.f - s) : this[this.b - 1] |= o << s, s += n, s >= this.f && (s -= this.f)) } 8 == n && 0 != (e[0] & 128) && (this.c = -1, 0 < s && (this[this.b - 1] |= (1 << this.f - s) - 1 << s)); this.C(); i && X.ZERO.t(this, this) }; q.C = function () { for (var e = this.c & this.u; 0 < this.b && this[this.b - 1] == e;) { --this.b } }; q.la = function (e, t) { var n; for (n = this.b - 1; 0 <= n; --n) { t[n + e] = this[n] } for (n = e - 1; 0 <= n; --n) { t[n] = 0 } t.b = this.b + e; t.c = this.c }; q.jb = function (e, t) { for (var n = e; n < this.b; ++n) { t[n - e] = this[n] } t.b = Math.max(this.b - e, 0); t.c = this.c }; q.Qa = function (e, t) { var n = e % this.f, r = this.f - n, i = (1 << r) - 1, s = Math.floor(e / this.f), o = this.c << n & this.u, u; for (u = this.b - 1; 0 <= u; --u) { t[u + s + 1] = this[u] >> r | o, o = (this[u] & i) << n } for (u = s - 1; 0 <= u; --u) { t[u] = 0 } t[s] = o; t.b = this.b + s + 1; t.c = this.c; t.C() }; q.zb = function (e, t) { t.c = this.c; var n = Math.floor(e / this.f); if (n >= this.b) { t.b = 0 } else { var r = e % this.f, i = this.f - r, s = (1 << r) - 1; t[0] = this[n] >> r; for (var o = n + 1; o < this.b; ++o) { t[o - n - 1] |= (this[o] & s) << i, t[o - n] = this[o] >> r } 0 < r && (t[this.b - n - 1] |= (this.c & s) << i); t.b = this.b - n; t.C() } }; q.t = function (e, t) { for (var n = 0, r = 0, i = Math.min(e.b, this.b); n < i;) { r += this[n] - e[n], t[n++] = r & this.u, r >>= this.f } if (e.b < this.b) { for (r -= e.c; n < this.b;) { r += this[n], t[n++] = r & this.u, r >>= this.f } r += this.c } else { for (r += this.c; n < e.b;) { r -= e[n], t[n++] = r & this.u, r >>= this.f } r -= e.c } t.c = 0 > r ? -1 : 0; -1 > r ? t[n++] = this.K + r : 0 < r && (t[n++] = r); t.b = n; t.C() }; q.vb = function (e) { var t = $.Xa, n = this.abs(), r = t.abs(), i = n.b; for (e.b = i + r.b; 0 <= --i;) { e[i] = 0 } for (i = 0; i < r.b; ++i) { e[i + n.b] = n.ga(r[i], e, i, n.b) } e.c = 0; e.C(); this.c != t.c && X.ZERO.t(e, e) }; q.Ja = function (e, t, n) { var r = e.abs(); if (!(0 >= r.b)) { var i = this.abs(); if (i.b < r.b) { t != m && t.D(0), n != m && this.copyTo(n) } else { n == m && (n = Yc()); var s = Yc(), o = this.c, e = e.c, u = r[r.b - 1], a = 1, f; if (0 != (f = u >>> 16)) { u = f, a += 16 } if (0 != (f = u >> 8)) { u = f, a += 8 } if (0 != (f = u >> 4)) { u = f, a += 4 } if (0 != (f = u >> 2)) { u = f, a += 2 } 0 != u >> 1 && (a += 1); u = this.f - a; 0 < u ? (r.Qa(u, s), i.Qa(u, n)) : (r.copyTo(s), i.copyTo(n)); r = s.b; i = s[r - 1]; if (0 != i) { f = i * (1 << this.Aa) + (1 < r ? s[r - 2] >> this.Ba : 0); a = this.bb / f; f = (1 << this.Aa) / f; var l = 1 << this.Ba, c = n.b, h = c - r, p = t == m ? Yc() : t; s.la(h, p); 0 <= n.U(p) && (n[n.b++] = 1, n.t(p, n)); X.ONE.la(r, p); for (p.t(s, s); s.b < r;) { s[s.b++] = 0 } for (; 0 <= --h;) { var d = n[--c] == i ? this.u : Math.floor(n[c] * a + (n[c - 1] + l) * f); if ((n[c] += s.ga(d, n, h, r)) < d) { s.la(h, p); for (n.t(p, n); n[c] < --d;) { n.t(p, n) } } } t != m && (n.jb(r, t), o != e && X.ZERO.t(t, t)); n.b = r; n.C(); 0 < u && n.zb(u, n); 0 > o && X.ZERO.t(n, n) } } } }; q.toString = function (e) { if (0 > this.c) { return "-" + this.i().toString(e) } if (16 == e) { e = 4 } else { if (8 == e) { e = 3 } else { if (2 == e) { e = 1 } else { if (32 == e) { e = 5 } else { if (4 == e) { e = 2 } else { return this.Fb(e) } } } } } var t = (1 << e) - 1, n, r = p, i = "", s = this.b, o = this.f - s * this.f % e; if (0 < s--) { if (o < this.f && 0 < (n = this[s] >> o)) { r = l, i = "0123456789abcdefghijklmnopqrstuvwxyz".charAt(n) } for (; 0 <= s;) { o < e ? (n = (this[s] & (1 << o) - 1) << e - o, n |= this[--s] >> (o += this.f - e)) : (n = this[s] >> (o -= e) & t, 0 >= o && (o += this.f, --s)), 0 < n && (r = l), r && (i += "0123456789abcdefghijklmnopqrstuvwxyz".charAt(n)) } } return r ? i : "0" }; q.i = function () { var e = Yc(); X.ZERO.t(this, e); return e }; q.abs = function () { return 0 > this.c ? this.i() : this }; q.U = function (e) { var t = this.c - e.c; if (0 != t) { return t } var n = this.b, t = n - e.b; if (0 != t) { return 0 > this.c ? -t : t } for (; 0 <= --n;) { if (0 != (t = this[n] - e[n])) { return t } } return 0 }; X.ZERO = ad(0); X.ONE = ad(1); q = X.prototype; q.nb = function (e, t) { this.D(0); t == m && (t = 10); for (var n = this.S(t), r = Math.pow(t, n), i = p, s = 0, o = 0, u = 0; u < e.length; ++u) { var a = Zc(e, u); 0 > a ? "-" == e.charAt(u) && 0 == this.ra() && (i = l) : (o = t * o + a, ++s >= n && (this.Ia(r), this.Ha(o), o = s = 0)) } 0 < s && (this.Ia(Math.pow(t, s)), this.Ha(o)); i && X.ZERO.t(this, this) }; q.S = function (e) { return Math.floor(Math.LN2 * this.f / Math.log(e)) }; q.ra = function () { return 0 > this.c ? -1 : 0 >= this.b || 1 == this.b && 0 >= this[0] ? 0 : 1 }; q.Ia = function (e) { this[this.b] = this.ga(e - 1, this, 0, this.b); ++this.b; this.C() }; q.Ha = function (e) { var t = 0; if (0 != e) { for (; this.b <= t;) { this[this.b++] = 0 } for (this[t] += e; this[t] >= this.K;) { this[t] -= this.K, ++t >= this.b && (this[this.b++] = 0), ++this[t] } } }; q.Fb = function (e) { e == m && (e = 10); if (0 == this.ra() || 2 > e || 36 < e) { return "0" } var t = this.S(e), t = Math.pow(e, t), n = ad(t), r = Yc(), i = Yc(), s = ""; for (this.Ja(n, r, i); 0 < r.ra();) { s = (t + i.Oa()).toString(e).substr(1) + s, r.Ja(n, r, i) } return i.Oa().toString(e) + s }; q.Oa = function () { if (0 > this.c) { if (1 == this.b) { return this[0] - this.K } if (0 == this.b) { return -1 } } else { if (1 == this.b) { return this[0] } if (0 == this.b) { return 0 } } return (this[1] & (1 << 32 - this.f) - 1) << this.f | this[0] }; q.fa = function (e, t) { for (var n = 0, r = 0, i = Math.min(e.b, this.b); n < i;) { r += this[n] + e[n], t[n++] = r & this.u, r >>= this.f } if (e.b < this.b) { for (r += e.c; n < this.b;) { r += this[n], t[n++] = r & this.u, r >>= this.f } r += this.c } else { for (r += this.c; n < e.b;) { r += e[n], t[n++] = r & this.u, r >>= this.f } r += e.c } t.c = 0 > r ? -1 : 0; 0 < r ? t[n++] = r : -1 > r && (t[n++] = this.K + r); t.b = n; t.C() }; var $ = { abs: function (e, t) { var n = new Y(e, t), n = n.n() ? n.i() : n; B[qb >> 2] = n.h; B[qb + 4 >> 2] = n.j }, Ka: function () { $.kb || ($.kb = l, $.Xa = new X, $.Xa.k("4294967296", 10), $.sa = new X, $.sa.k("18446744073709551616", 10), $.xe = new X, $.ye = new X) }, me: function (e, t) { var n = new X; n.k(t.toString(), 10); var r = new X; n.vb(r); n = new X; n.k(e.toString(), 10); var i = new X; n.fa(r, i); return i }, stringify: function (e, t, n) { e = (new Y(e, t)).toString(); n && "-" == e[0] && ($.Ka(), n = new X, n.k(e, 10), e = new X, $.sa.fa(n, e), e = e.toString(10)); return e }, k: function (e, t, n, r, i) { $.Ka(); var s = new X; s.k(e, t); e = new X; e.k(n, 10); n = new X; n.k(r, 10); i && 0 > s.U(X.ZERO) && (r = new X, s.fa($.sa, r), s = r); r = p; 0 > s.U(e) ? (s = e, r = l) : 0 < s.U(n) && (s = n, r = l); s = Y.k(s.toString()); B[qb >> 2] = s.h; B[qb + 4 >> 2] = s.j; r && g("range error") } }; lc = $; var cd, dd; s.callMain = s.$d = function (e) { function t() { for (var e = 0; 3 > e; e++) { r.push(0) } } w(0 == L, "cannot call main when async dependencies remain! (listen on __ATMAIN__)"); w(0 == Wa.length, "cannot call main when preRun functions remain to be called"); e = e || []; ab || (ab = l, Va(Xa)); var n = e.length + 1, r = [F(J("/bin/this.program"), "i8", Ka)]; t(); for (var i = 0; i < n - 1; i += 1) { r.push(F(J(e[i]), "i8", Ka)), t() } r.push(0); r = F(r, "i32", Ka); cd = u; dd = l; var o; try { o = s._main(n, r, 0) } catch (a) { if (a && "object" == typeof a && "ExitStatus" == a.type) { return s.print("Exit Status: " + a.value), a.value } "SimulateInfiniteLoop" == a ? s.noExitRuntime = l : g(a) } finally { dd = p } s.noExitRuntime || ed(o) }; s.run = s.we = lb; s.exit = s.de = ed; s.abort = s.abort = wa; if (s.preInit) { for ("function" == typeof s.preInit && (s.preInit = [s.preInit]); 0 < s.preInit.length;) { s.preInit.pop()() } } var kb = l; s.noInitialRun && (kb = p); lb(); var scrypt = function () { function t(e) { return n(unescape(encodeURIComponent(e))) } function n(e) { var t = new Uint8Array(e.length); for (var n = 0; n < e.length; n++) { var r = e.charCodeAt(n); if ((r & 255) !== r) throw { message: "Cannot encode string in Latin1", str: e }; t[n] = r & 255 } return t } function r(e) { return decodeURIComponent(escape(i(e))) } function i(e) { var t = []; for (var n = 0; n < e.length; n++) { t.push(String.fromCharCode(e[n])) } return t.join("") } function s(e) { var t = []; for (var n = 0; n < e.length; n++) { t.push("0123456789abcdef"[e[n] >> 4 & 15]); t.push("0123456789abcdef"[e[n] & 15]) } return t.join("") } function o(e, t) { var n = t || 0; var r = scrypt_raw._malloc(e.length + n); scrypt_raw.HEAPU8.set(e, r + n); for (var i = r; i < r + n; i++) { scrypt_raw.HEAPU8[i] = 0 } return r } function u(e, t, n, r, i) { l(e, t, n, r); return o(n, i) } function a(e, t) { var n = new Uint8Array(t); n.set(scrypt_raw.HEAPU8.subarray(e, e + t)); return n } function f(e, t) { if (t !== 0) { throw { message: "scrypt_raw." + e + " signalled an error" } } } function l(e, t, n, r) { if (n.length !== r) { throw { message: "scrypt." + e + " expected " + r + "-byte " + t + " but got length " + n.length } } } function c(e) { this.length = e; this.address = scrypt_raw._malloc(e) } function h(e) { for (var t = 0; t < e.length; t++) { scrypt_raw._free(e[t]) } } function p(e, t, n, r, i, s) { var u = new c(s); var a = o(e); var l = o(t); f("_crypto_scrypt", scrypt_raw._crypto_scrypt(a, e.length, l, t.length, n, 0, r, i, u.address, u.length)); h([a, l]); return u.extractBytes() } var e = {}; c.prototype.extractBytes = function (e) { var t = a(this.address + (e || 0), this.length - (e || 0)); scrypt_raw._free(this.address); this.address = null; return t }; e.encode_utf8 = t; e.encode_latin1 = n; e.decode_utf8 = r; e.decode_latin1 = i; e.to_hex = s; e.crypto_scrypt = p; return e }(); return scrypt };
/**
* CryptoJS, of which we need sha256() for. found here: https://code.google.com/p/crypto-js/
*/
var CryptoJS = CryptoJS || function (e, t) { var n = {}, r = n.lib = {}, i = function () { }, s = r.Base = { extend: function (e) { i.prototype = this; var t = new i; e && t.mixIn(e); t.hasOwnProperty("init") || (t.init = function () { t.$super.init.apply(this, arguments) }); t.init.prototype = t; t.$super = this; return t }, create: function () { var e = this.extend(); e.init.apply(e, arguments); return e }, init: function () { }, mixIn: function (e) { for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); e.hasOwnProperty("toString") && (this.toString = e.toString) }, clone: function () { return this.init.prototype.extend(this) } }, o = r.WordArray = s.extend({ init: function (e, n) { e = this.words = e || []; this.sigBytes = n != t ? n : 4 * e.length }, toString: function (e) { return (e || a).stringify(this) }, concat: function (e) { var t = this.words, n = e.words, r = this.sigBytes; e = e.sigBytes; this.clamp(); if (r % 4) for (var i = 0; i < e; i++)t[r + i >>> 2] |= (n[i >>> 2] >>> 24 - 8 * (i % 4) & 255) << 24 - 8 * ((r + i) % 4); else if (65535 < n.length) for (i = 0; i < e; i += 4)t[r + i >>> 2] = n[i >>> 2]; else t.push.apply(t, n); this.sigBytes += e; return this }, clamp: function () { var t = this.words, n = this.sigBytes; t[n >>> 2] &= 4294967295 << 32 - 8 * (n % 4); t.length = e.ceil(n / 4) }, clone: function () { var e = s.clone.call(this); e.words = this.words.slice(0); return e }, random: function (t) { for (var n = [], r = 0; r < t; r += 4)n.push(4294967296 * e.random() | 0); return new o.init(n, t) } }), u = n.enc = {}, a = u.Hex = { stringify: function (e) { var t = e.words; e = e.sigBytes; for (var n = [], r = 0; r < e; r++) { var i = t[r >>> 2] >>> 24 - 8 * (r % 4) & 255; n.push((i >>> 4).toString(16)); n.push((i & 15).toString(16)) } return n.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r += 2)n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - 4 * (r % 8); return new o.init(n, t / 2) } }, f = u.Latin1 = { stringify: function (e) { var t = e.words; e = e.sigBytes; for (var n = [], r = 0; r < e; r++)n.push(String.fromCharCode(t[r >>> 2] >>> 24 - 8 * (r % 4) & 255)); return n.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r++)n[r >>> 2] |= (e.charCodeAt(r) & 255) << 24 - 8 * (r % 4); return new o.init(n, t) } }, l = u.Utf8 = { stringify: function (e) { try { return decodeURIComponent(escape(f.stringify(e))) } catch (t) { throw Error("Malformed UTF-8 data") } }, parse: function (e) { return f.parse(unescape(encodeURIComponent(e))) } }, c = r.BufferedBlockAlgorithm = s.extend({ reset: function () { this._data = new o.init; this._nDataBytes = 0 }, _append: function (e) { "string" == typeof e && (e = l.parse(e)); this._data.concat(e); this._nDataBytes += e.sigBytes }, _process: function (t) { var n = this._data, r = n.words, i = n.sigBytes, s = this.blockSize, u = i / (4 * s), u = t ? e.ceil(u) : e.max((u | 0) - this._minBufferSize, 0); t = u * s; i = e.min(4 * t, i); if (t) { for (var a = 0; a < t; a += s)this._doProcessBlock(r, a); a = r.splice(0, t); n.sigBytes -= i } return new o.init(a, i) }, clone: function () { var e = s.clone.call(this); e._data = this._data.clone(); return e }, _minBufferSize: 0 }); r.Hasher = c.extend({ cfg: s.extend(), init: function (e) { this.cfg = this.cfg.extend(e); this.reset() }, reset: function () { c.reset.call(this); this._doReset() }, update: function (e) { this._append(e); this._process(); return this }, finalize: function (e) { e && this._append(e); return this._doFinalize() }, blockSize: 16, _createHelper: function (e) { return function (t, n) { return (new e.init(n)).finalize(t) } }, _createHmacHelper: function (e) { return function (t, n) { return (new h.HMAC.init(e, n)).finalize(t) } } }); var h = n.algo = {}; return n }(Math); (function (e) { for (var t = CryptoJS, n = t.lib, r = n.WordArray, i = n.Hasher, n = t.algo, s = [], o = [], u = function (e) { return 4294967296 * (e - (e | 0)) | 0 }, a = 2, f = 0; 64 > f;) { var l; e: { l = a; for (var c = e.sqrt(l), h = 2; h <= c; h++)if (!(l % h)) { l = !1; break e } l = !0 } l && (8 > f && (s[f] = u(e.pow(a, .5))), o[f] = u(e.pow(a, 1 / 3)), f++); a++ } var p = [], n = n.SHA256 = i.extend({ _doReset: function () { this._hash = new r.init(s.slice(0)) }, _doProcessBlock: function (e, t) { for (var n = this._hash.words, r = n[0], i = n[1], s = n[2], u = n[3], a = n[4], f = n[5], l = n[6], c = n[7], h = 0; 64 > h; h++) { if (16 > h) p[h] = e[t + h] | 0; else { var d = p[h - 15], v = p[h - 2]; p[h] = ((d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3) + p[h - 7] + ((v << 15 | v >>> 17) ^ (v << 13 | v >>> 19) ^ v >>> 10) + p[h - 16] } d = c + ((a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25)) + (a & f ^ ~a & l) + o[h] + p[h]; v = ((r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22)) + (r & i ^ r & s ^ i & s); c = l; l = f; f = a; a = u + d | 0; u = s; s = i; i = r; r = d + v | 0 } n[0] = n[0] + r | 0; n[1] = n[1] + i | 0; n[2] = n[2] + s | 0; n[3] = n[3] + u | 0; n[4] = n[4] + a | 0; n[5] = n[5] + f | 0; n[6] = n[6] + l | 0; n[7] = n[7] + c | 0 }, _doFinalize: function () { var t = this._data, n = t.words, r = 8 * this._nDataBytes, i = 8 * t.sigBytes; n[i >>> 5] |= 128 << 24 - i % 32; n[(i + 64 >>> 9 << 4) + 14] = e.floor(r / 4294967296); n[(i + 64 >>> 9 << 4) + 15] = r; t.sigBytes = 4 * n.length; this._process(); return this._hash }, clone: function () { var e = i.clone.call(this); e._hash = this._hash.clone(); return e } }); t.SHA256 = i._createHelper(n); t.HmacSHA256 = i._createHmacHelper(n) })(Math);
/**
* Convert a hex {string} to a Uint8Array
* @param {string} str
* @returns {Uint8Array}
*/
function hex2Buf(str) {
var r = new Uint8Array(str.length / 2);
for (var i = 0, x = str.length, k = 0; i < x; i += 2, k++) {
r[k] = parseInt(str.substr(i, 2), 16);
}
return r;
}
/**
* Convert an array of ints to a hex {string}
* @param {array} buf
* @returns {string}
*/
function buf2Hex(buf) {
var r = '';
for (var i = 0, x = buf.length; i < x; i += 1) {
r += (buf[i] <= 0xf ? '0' : '') + buf[i].toString(16);
}
return r;
}
/**
* Run sha256 on hexStr twice and return it in hex format.
* @param {string} hexStr
* @returns {string}
*/
function doublesha(hexStr) {
var hexStrBuf = hex2Buf(hexStr);
var hexStrBin = convertUint8ArrayToBinaryString(hexStrBuf);
hexStrBin = CryptoJS.enc.Latin1.parse(hexStrBin);
var sha1 = CryptoJS.SHA256(hexStrBin);
sha1 = sha1.toString(CryptoJS.enc.Latin1);
sha1 = CryptoJS.enc.Latin1.parse(sha1);
var sha2 = CryptoJS.SHA256(sha1);
var dhash = sha2.toString();
return dhash;
}
/**
* Create a wordArray that is Big-Endian (because it's used with CryptoJS which is all BE)
* From: https://gist.github.com/creationix/07856504cf4d5cede5f9#file-encode-js
* @param {type} u8Array
* @returns {convertUint8ArrayToWordArray.Anonym$0}
*/
function convertUint8ArrayToWordArray(u8Array) {
var words = [], i = 0, len = u8Array.length;
while (i < len) {
words.push(
(u8Array[i++] << 24) |
(u8Array[i++] << 16) |
(u8Array[i++] << 8) |
(u8Array[i++])
);
}
return {
sigBytes: words.length * 4,
words: words
};
}
/**
* Create a binary string from a Uint8Array.
* @param {Uint8Array} u8Array
* @returns {string}
*/
function convertUint8ArrayToBinaryString(u8Array) {
var i, len = u8Array.length, b_str = "";
for (i = 0; i < len; i++) {
b_str += String.fromCharCode(u8Array[i]);
}
return b_str;
}
/**
* Swap the endian-ness of a hex string
* @param {string} hex
* @returns {string}
*/
function swapEndianHex(hex) {
return hex.toString(16).replace(/^(.(..)*)$/, "0$1").match(/../g).reverse().join("");
}
/**
* Swap the endian-ness of a Uint8Array.
* @param {Uint8Array} buf
* @returns {Uint8Array}
*/
function swapEndian(buf) {
var r = new Uint8Array(buf.length);
for (var i = 0; i < Math.floor(buf.length / 4); i += 1) {
r[i * 4] = buf[i * 4 + 3];
r[i * 4 + 1] = buf[i * 4 + 2];
r[i * 4 + 2] = buf[i * 4 + 1];
r[i * 4 + 3] = buf[i * 4];
}
return r;
}
/**
* Convert 'number' to a hex string and pad it with 'str', where the total
* length of the final string should be at least 'how_many'. These variables
* were named horribly, sorry.
* @param {number} number
* @param {number} how_many
* @param {string} str
* @returns {string}
*/
function padLeft(number, how_many, str) {
return Array(how_many - String(number).length + 1).join(str || '0') + number;
}
/**
* Add 'amount' to 'hex' and pad it with zeroes.
* @param {string} hex
* @param {number} amount
* @returns {string}
*/
function hexAdd(hex, amount) {
return padLeft((parseInt(hex, 16) + amount).toString(16), 8, '0');
}
/**
* Create a random nonce for use with hashing.
* @returns {string}
*/
function randomNonce() {
var rando_arr = new Array(Math.floor(Math.random() * 255),
Math.floor(Math.random() * 255),
Math.floor(Math.random() * 255),
Math.floor(Math.random() * 255));
return buf2Hex(rando_arr);
}
/**
* Concatenate two Uint8Arrays without modifying the originals.
* @returns {Uint8Array}
*/
function concatUint8Arrays() {
var total_length = 0;
for (var i = 0; i < arguments.length; i++) {
total_length += arguments[i].length;
}
var newarr = new Uint8Array(total_length);
var index = 0;
for (var i = 0; i < arguments.length; i++) {
for (var j = 0; j < arguments[i].length; j++) {
newarr[index++] = arguments[i][j];
}
}
return newarr;
}
/**
* Convert an integer to hex and also pad it with 0s.
* @param {number} int
* @param {number} length
* @returns {String}
*/
function bigIntToHex(int, length) {
var r = int.toString(16);
while (r.length < length) {
r = ('0' + r);
}
return r;
}
/**
* Return a hex string representing mining 'difficulty' that is set by a stratum server.
* @param {number} difficulty
* @returns {String}
*/
function difficultyHex(difficulty) {
return bigIntToHex(0x0000ffff00000000000000000000000000000000000000000000000000000000 / difficulty, 64);
}
var difficulty_values = [];
for (var i = 50; i < 1500; i += 50) {
difficulty_values.push({ difficulty: i, value: parseInt(difficultyHex(i), 16) });
}
/**
* I should have named this estimated difficulty. Basically, based on hash_value, what is the estimated
* difficulty of the hash. When a solution is found by the miner, it meets the currently set difficulty,
* but the actual difficulty of the found hash may be much higher, which I was curious about, so I wrote
* this to report back what the estimated difficulty of the actual hash found was.
*
* It uses the array above with pre-calculated values to help find this quickly -- when we find a solution,
* we want to report it back to the pool as soon as possible.
*
* @param {string} hash_value
* @returns {number}
*/
function getRelativeDifficulty(hash_value) {
var current_difficulty = 4; // lowest I know of?
for (var i in difficulty_values) {
check = difficulty_values[i];
if (check.value > hash_value) {
current_difficulty = check.difficulty;
} else {
break;
}
}
return current_difficulty;
}
/**
* Get the current time in hex format.
* @returns {string}
*/
function timeHex() {
var curTime = Math.floor((new Date()).getTime() / 1000);
if (curTime < job_ntime_seconds
|| (curTime - job_ntime_seconds) > 7000) {
curTime = job_ntime_seconds;
}
return curTime.toString(16);
}
/**
* Build the merkle root string for use in hashing.
* @returns {string}
*/
function buildMerkle() {
merkle_root = doublesha(coinbase);
//for (var i = 0; i < branches.length; i++) {
// merkle_root = merkle_root + branches[i];
merkle_root = doublesha(merkle_root);
//}
return merkle_root;
}
// Hashing vars
var nonce = randomNonce(4);
var difficulty = 16;
var job_id = false;
var header = '';
var header_pad = '000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000';
var prevhash = '00000000';
var version = '00000002';
var nbits = '00000000';
var ntime = '00000000';
var job_ntime_seconds = 0; // ntime that came with job.. some miners have their time way off, will default to this
// coinbase and merkle
var coinb1 = '00000000';
var extranonce1 = '00000000';
var extranonce2 = '00000000';
var extranonce2_size = 4;
var coinb2 = '00000000';
var branches = new Array();
var merkle = '00000000';
var coinbase = coinb1 + extranonce1 + extranonce2 + coinb2;
// Objects
var scrypt = scrypt_module_factory();
var job = null;
// Helper vars
var run = true; // worker running?
var maxNonce = 4294967294; // 1 less, to be safe
var difficulty_hex = '0x00000000ffff0000000000000000000000000000000000000000000000000000';
var difficulty_value = parseInt(difficulty_hex, 16);
var total_iterations = 0;
var iteration_count_default = 500;
var worker_timeout = false;
/**
* Receive data from work manager.
* We are either getting job data, a stop command, or a start command.
* On job data: update coinbase, rebuild merkle root, update difficulty.
* @param {object} e
*/
onmessage = function (e) {
vals = e.data;
prevhash = vals[1];
nbits = vals[4];
ntime = vals[3];
difficulty = vals[5];
branches = [];
// new job, make a new extranonce2...because why not
extranonce2 = randomNonce(extranonce2_size);
/*
postMessage(JSON.stringify({message:'new job ['+job_id+']: coinb1: '+coinb1+'\n'+
'coinb2: '+coinb2+'\n'+
'prevhash: '+prevhash+'\n'+
'exnonce1: '+extranonce1+'\n'+
'exnonce2: '+extranonce2+'\n'+
'branches: '+branches+'\n'+
'version: '+version+'\n'+
'nbits: '+nbits+'\n'+
'ntime: '+ntime
}));
*/
// build merkle root
merkle = vals[2];
// calcualte difficulty in case it has changed
difficulty_hex = difficultyHex(difficulty);
difficulty_value = parseInt(difficulty_hex, 16);
};
/**
* Main workhorse.
* We build time, convert everything to binary and swap the endian-ness, to prepare for hashing with scrypt.
* For each iteration, we increment nonce and udpate the data before hashing. Then we scrypt() on the data,
* and check the final hash against difficulty to see if we beat the difficulty. If so, we report back to
* work_manager, which updates stratum server.
*
* After #iterations are run, we call ourself again in the short future. This gives us time to receive data
* from work manager.
*
* @param {number} iterations
*/
function doWork(iterations) {
var headerToHash = null;
ntime = timeHex();
version_bin = swapEndian(hex2Buf(version));
prevhash_bin = swapEndian(hex2Buf(prevhash));
merkle_bin = hex2Buf(merkle);
ntime_bin = swapEndian(hex2Buf(ntime));
nbits_bin = swapEndian(hex2Buf(nbits));
header = concatUint8Arrays(version_bin, prevhash_bin, merkle_bin, ntime_bin, nbits_bin);
for (var i = 0; i < iterations; i++) {
if (parseInt(nonce, 16) < maxNonce) {
nonce = randomNonce(4);
}
postMessage({
reportHashrate: true,
nonce: nonce
});
nonce_bin = swapEndian(hex2Buf(nonce));
headerToHash = null;
headerToHash = concatUint8Arrays(header, nonce_bin);
hash = headerToHash;
hashed = scrypt.crypto_scrypt(hash, hash, 1024, 1, 1, 32);
final_hash = swapEndianHex(buf2Hex(hashed)); // swap it so we can compare against difficulty hash
final_hash_value = parseInt(final_hash, 16);
if (final_hash_value < difficulty_value) {
data = new Object();
data.nonce = nonce;
data.extranonce2 = extranonce2;
data.ntime = ntime;
data.job_id = job_id;
data.reldiff = getRelativeDifficulty(final_hash_value);
data.info = 'found using [' + job_id + ']: coinb1: ' + coinb1 + '\n' +
'coinb2: ' + coinb2 + '\n' +
'prevhash: ' + prevhash + '\n' +
'exnonce1: ' + extranonce1 + '\n' +
'exnonce2: ' + extranonce2 + '\n' +
'branches: ' + branches + '\n' +
'version: ' + version + '\n' +
'nbits: ' + nbits + '\n' +
'ntime: ' + ntime + '\n' +
'nonce: ' + nonce + '\n' +
'merkle: ' + merkle.toString();
console.log(JSON.stringify(data));
postMessage({
"nonce": nonce,
"submit": true
});
break;
}
// Increase the nonce
nonce = hexAdd(nonce, 1);
}
total_iterations += iterations;
if (total_iterations % 3000 == 0) {
// postMessage(JSON.stringify({ message: 'job:' + job_id + ' iterations:' + total_iterations }));
}
worker_timeout = setTimeout("doWork(" + iterations + ")", 100);
}
doWork(iteration_count_default);
} catch (err) {
}