diff --git a/.eslintignore b/.eslintignore index da316073..19ec7467 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,3 +4,4 @@ firefox coverage app/locale.js app/capabilities.js +app/cryptofill.js \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index e077b098..2217b3f6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,5 @@ dist android/app/src/main/assets android/app/build -assets/*.js +app/cryptofill.js coverage \ No newline at end of file diff --git a/app/capabilities.js b/app/capabilities.js index ef0bea99..5b746bdc 100644 --- a/app/capabilities.js +++ b/app/capabilities.js @@ -35,9 +35,22 @@ async function checkCrypto() { false, ['deriveKey'] ); + await crypto.subtle.generateKey( + { + name: 'ECDH', + namedCurve: 'P-256' + }, + true, + ['deriveBits'] + ); return true; } catch (err) { - return false; + try { + await import('./cryptofill'); + return true; + } catch (e) { + return false; + } } } @@ -62,7 +75,7 @@ async function polyfillStreams() { } export default async function capabilities() { - const crypto = await checkCrypto(); + let crypto = await checkCrypto(); const nativeStreams = checkStreams(); let polyStreams = false; if (!nativeStreams) { @@ -72,7 +85,7 @@ export default async function capabilities() { try { account = account && !!localStorage; } catch (e) { - // nevermind + account = false; } return { diff --git a/app/cryptofill.js b/app/cryptofill.js new file mode 100644 index 00000000..3026dfd6 --- /dev/null +++ b/app/cryptofill.js @@ -0,0 +1,14596 @@ +!(function(a) { + if ('object' == typeof exports && 'undefined' != typeof module) + module.exports = a(); + else if ('function' == typeof define && define.amd) define([], a); + else { + var b; + (b = + 'undefined' != typeof window + ? window + : 'undefined' != typeof global + ? global + : 'undefined' != typeof self + ? self + : this), + (b.elliptic = a()); + } +})(function() { + return (function a(b, c, d) { + function e(g, h) { + if (!c[g]) { + if (!b[g]) { + var i = 'function' == typeof require && require; + if (!h && i) return i(g, !0); + if (f) return f(g, !0); + var j = new Error("Cannot find module '" + g + "'"); + throw ((j.code = 'MODULE_NOT_FOUND'), j); + } + var k = (c[g] = { exports: {} }); + b[g][0].call( + k.exports, + function(a) { + var c = b[g][1][a]; + return e(c ? c : a); + }, + k, + k.exports, + a, + b, + c, + d + ); + } + return c[g].exports; + } + for ( + var f = 'function' == typeof require && require, g = 0; + g < d.length; + g++ + ) + e(d[g]); + return e; + })( + { + 1: [ + function(a, b, c) { + !(function(b, c) { + 'use strict'; + function d(a, b) { + if (!a) throw new Error(b || 'Assertion failed'); + } + function e(a, b) { + a.super_ = b; + var c = function() {}; + (c.prototype = b.prototype), + (a.prototype = new c()), + (a.prototype.constructor = a); + } + function f(a, b, c) { + return f.isBN(a) + ? a + : ((this.negative = 0), + (this.words = null), + (this.length = 0), + (this.red = null), + void ( + null !== a && + (('le' !== b && 'be' !== b) || ((c = b), (b = 10)), + this._init(a || 0, b || 10, c || 'be')) + )); + } + function h(a, b, c) { + for (var d = 0, e = Math.min(a.length, c), f = b; f < e; f++) { + var g = a.charCodeAt(f) - 48; + (d <<= 4), + (d |= + g >= 49 && g <= 54 + ? g - 49 + 10 + : g >= 17 && g <= 22 + ? g - 17 + 10 + : 15 & g); + } + return d; + } + function i(a, b, c, d) { + for (var e = 0, f = Math.min(a.length, c), g = b; g < f; g++) { + var h = a.charCodeAt(g) - 48; + (e *= d), + (e += h >= 49 ? h - 49 + 10 : h >= 17 ? h - 17 + 10 : h); + } + return e; + } + function m(a) { + for (var b = new Array(a.bitLength()), c = 0; c < b.length; c++) { + var d = (c / 26) | 0, + e = c % 26; + b[c] = (a.words[d] & (1 << e)) >>> e; + } + return b; + } + function n(a, b, c) { + c.negative = b.negative ^ a.negative; + var d = (a.length + b.length) | 0; + (c.length = d), (d = (d - 1) | 0); + var e = 0 | a.words[0], + f = 0 | b.words[0], + g = e * f, + h = 67108863 & g, + i = (g / 67108864) | 0; + c.words[0] = h; + for (var j = 1; j < d; j++) { + for ( + var k = i >>> 26, + l = 67108863 & i, + m = Math.min(j, b.length - 1), + n = Math.max(0, j - a.length + 1); + n <= m; + n++ + ) { + var o = (j - n) | 0; + (e = 0 | a.words[o]), + (f = 0 | b.words[n]), + (g = e * f + l), + (k += (g / 67108864) | 0), + (l = 67108863 & g); + } + (c.words[j] = 0 | l), (i = 0 | k); + } + return 0 !== i ? (c.words[j] = 0 | i) : c.length--, c.strip(); + } + function p(a, b, c) { + (c.negative = b.negative ^ a.negative), + (c.length = a.length + b.length); + for (var d = 0, e = 0, f = 0; f < c.length - 1; f++) { + var g = e; + e = 0; + for ( + var h = 67108863 & d, + i = Math.min(f, b.length - 1), + j = Math.max(0, f - a.length + 1); + j <= i; + j++ + ) { + var k = f - j, + l = 0 | a.words[k], + m = 0 | b.words[j], + n = l * m, + o = 67108863 & n; + (g = (g + ((n / 67108864) | 0)) | 0), + (o = (o + h) | 0), + (h = 67108863 & o), + (g = (g + (o >>> 26)) | 0), + (e += g >>> 26), + (g &= 67108863); + } + (c.words[f] = h), (d = g), (g = e); + } + return 0 !== d ? (c.words[f] = d) : c.length--, c.strip(); + } + function q(a, b, c) { + var d = new r(); + return d.mulp(a, b, c); + } + function r(a, b) { + (this.x = a), (this.y = b); + } + function t(a, b) { + (this.name = a), + (this.p = new f(b, 16)), + (this.n = this.p.bitLength()), + (this.k = new f(1).iushln(this.n).isub(this.p)), + (this.tmp = this._tmp()); + } + function u() { + t.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f' + ); + } + function v() { + t.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001' + ); + } + function w() { + t.call( + this, + 'p192', + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff' + ); + } + function x() { + t.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed' + ); + } + function y(a) { + if ('string' == typeof a) { + var b = f._prime(a); + (this.m = b.p), (this.prime = b); + } else + d(a.gtn(1), 'modulus must be greater than 1'), + (this.m = a), + (this.prime = null); + } + function z(a) { + y.call(this, a), + (this.shift = this.m.bitLength()), + this.shift % 26 !== 0 && (this.shift += 26 - (this.shift % 26)), + (this.r = new f(1).iushln(this.shift)), + (this.r2 = this.imod(this.r.sqr())), + (this.rinv = this.r._invmp(this.m)), + (this.minv = this.rinv + .mul(this.r) + .isubn(1) + .div(this.m)), + (this.minv = this.minv.umod(this.r)), + (this.minv = this.r.sub(this.minv)); + } + 'object' == typeof b ? (b.exports = f) : (c.BN = f), + (f.BN = f), + (f.wordSize = 26); + var g; + try { + g = a('buffer').Buffer; + } catch (a) {} + (f.isBN = function(b) { + return ( + b instanceof f || + (null !== b && + 'object' == typeof b && + b.constructor.wordSize === f.wordSize && + Array.isArray(b.words)) + ); + }), + (f.max = function(b, c) { + return b.cmp(c) > 0 ? b : c; + }), + (f.min = function(b, c) { + return b.cmp(c) < 0 ? b : c; + }), + (f.prototype._init = function(b, c, e) { + if ('number' == typeof b) return this._initNumber(b, c, e); + if ('object' == typeof b) return this._initArray(b, c, e); + 'hex' === c && (c = 16), + d(c === (0 | c) && c >= 2 && c <= 36), + (b = b.toString().replace(/\s+/g, '')); + var f = 0; + '-' === b[0] && f++, + 16 === c ? this._parseHex(b, f) : this._parseBase(b, c, f), + '-' === b[0] && (this.negative = 1), + this.strip(), + 'le' === e && this._initArray(this.toArray(), c, e); + }), + (f.prototype._initNumber = function(b, c, e) { + b < 0 && ((this.negative = 1), (b = -b)), + b < 67108864 + ? ((this.words = [67108863 & b]), (this.length = 1)) + : b < 4503599627370496 + ? ((this.words = [67108863 & b, (b / 67108864) & 67108863]), + (this.length = 2)) + : (d(b < 9007199254740992), + (this.words = [ + 67108863 & b, + (b / 67108864) & 67108863, + 1 + ]), + (this.length = 3)), + 'le' === e && this._initArray(this.toArray(), c, e); + }), + (f.prototype._initArray = function(b, c, e) { + if ((d('number' == typeof b.length), b.length <= 0)) + return (this.words = [0]), (this.length = 1), this; + (this.length = Math.ceil(b.length / 3)), + (this.words = new Array(this.length)); + for (var f = 0; f < this.length; f++) this.words[f] = 0; + var g, + h, + i = 0; + if ('be' === e) + for (f = b.length - 1, g = 0; f >= 0; f -= 3) + (h = b[f] | (b[f - 1] << 8) | (b[f - 2] << 16)), + (this.words[g] |= (h << i) & 67108863), + (this.words[g + 1] = (h >>> (26 - i)) & 67108863), + (i += 24), + i >= 26 && ((i -= 26), g++); + else if ('le' === e) + for (f = 0, g = 0; f < b.length; f += 3) + (h = b[f] | (b[f + 1] << 8) | (b[f + 2] << 16)), + (this.words[g] |= (h << i) & 67108863), + (this.words[g + 1] = (h >>> (26 - i)) & 67108863), + (i += 24), + i >= 26 && ((i -= 26), g++); + return this.strip(); + }), + (f.prototype._parseHex = function(b, c) { + (this.length = Math.ceil((b.length - c) / 6)), + (this.words = new Array(this.length)); + for (var d = 0; d < this.length; d++) this.words[d] = 0; + var e, + f, + g = 0; + for (d = b.length - 6, e = 0; d >= c; d -= 6) + (f = h(b, d, d + 6)), + (this.words[e] |= (f << g) & 67108863), + (this.words[e + 1] |= (f >>> (26 - g)) & 4194303), + (g += 24), + g >= 26 && ((g -= 26), e++); + d + 6 !== c && + ((f = h(b, c, d + 6)), + (this.words[e] |= (f << g) & 67108863), + (this.words[e + 1] |= (f >>> (26 - g)) & 4194303)), + this.strip(); + }), + (f.prototype._parseBase = function(b, c, d) { + (this.words = [0]), (this.length = 1); + for (var e = 0, f = 1; f <= 67108863; f *= c) e++; + e--, (f = (f / c) | 0); + for ( + var g = b.length - d, + h = g % e, + j = Math.min(g, g - h) + d, + k = 0, + l = d; + l < j; + l += e + ) + (k = i(b, l, l + e, c)), + this.imuln(f), + this.words[0] + k < 67108864 + ? (this.words[0] += k) + : this._iaddn(k); + if (0 !== h) { + var m = 1; + for (k = i(b, l, b.length, c), l = 0; l < h; l++) m *= c; + this.imuln(m), + this.words[0] + k < 67108864 + ? (this.words[0] += k) + : this._iaddn(k); + } + }), + (f.prototype.copy = function(b) { + b.words = new Array(this.length); + for (var c = 0; c < this.length; c++) + b.words[c] = this.words[c]; + (b.length = this.length), + (b.negative = this.negative), + (b.red = this.red); + }), + (f.prototype.clone = function() { + var b = new f(null); + return this.copy(b), b; + }), + (f.prototype._expand = function(b) { + for (; this.length < b; ) this.words[this.length++] = 0; + return this; + }), + (f.prototype.strip = function() { + for (; this.length > 1 && 0 === this.words[this.length - 1]; ) + this.length--; + return this._normSign(); + }), + (f.prototype._normSign = function() { + return ( + 1 === this.length && + 0 === this.words[0] && + (this.negative = 0), + this + ); + }), + (f.prototype.inspect = function() { + return ( + (this.red ? '' + ); + }); + var j = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ], + k = [ + 0, + 0, + 25, + 16, + 12, + 11, + 10, + 9, + 8, + 8, + 7, + 7, + 7, + 7, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 5 + ], + l = [ + 0, + 0, + 33554432, + 43046721, + 16777216, + 48828125, + 60466176, + 40353607, + 16777216, + 43046721, + 1e7, + 19487171, + 35831808, + 62748517, + 7529536, + 11390625, + 16777216, + 24137569, + 34012224, + 47045881, + 64e6, + 4084101, + 5153632, + 6436343, + 7962624, + 9765625, + 11881376, + 14348907, + 17210368, + 20511149, + 243e5, + 28629151, + 33554432, + 39135393, + 45435424, + 52521875, + 60466176 + ]; + (f.prototype.toString = function(b, c) { + (b = b || 10), (c = 0 | c || 1); + var e; + if (16 === b || 'hex' === b) { + e = ''; + for (var f = 0, g = 0, h = 0; h < this.length; h++) { + var i = this.words[h], + m = (16777215 & ((i << f) | g)).toString(16); + (g = (i >>> (24 - f)) & 16777215), + (e = + 0 !== g || h !== this.length - 1 + ? j[6 - m.length] + m + e + : m + e), + (f += 2), + f >= 26 && ((f -= 26), h--); + } + for (0 !== g && (e = g.toString(16) + e); e.length % c !== 0; ) + e = '0' + e; + return 0 !== this.negative && (e = '-' + e), e; + } + if (b === (0 | b) && b >= 2 && b <= 36) { + var n = k[b], + o = l[b]; + e = ''; + var p = this.clone(); + for (p.negative = 0; !p.isZero(); ) { + var q = p.modn(o).toString(b); + (p = p.idivn(o)), + (e = p.isZero() ? q + e : j[n - q.length] + q + e); + } + for (this.isZero() && (e = '0' + e); e.length % c !== 0; ) + e = '0' + e; + return 0 !== this.negative && (e = '-' + e), e; + } + d(!1, 'Base should be between 2 and 36'); + }), + (f.prototype.toNumber = function() { + var b = this.words[0]; + return ( + 2 === this.length + ? (b += 67108864 * this.words[1]) + : 3 === this.length && 1 === this.words[2] + ? (b += 4503599627370496 + 67108864 * this.words[1]) + : this.length > 2 && + d(!1, 'Number can only safely store up to 53 bits'), + 0 !== this.negative ? -b : b + ); + }), + (f.prototype.toJSON = function() { + return this.toString(16); + }), + (f.prototype.toBuffer = function(b, c) { + return d('undefined' != typeof g), this.toArrayLike(g, b, c); + }), + (f.prototype.toArray = function(b, c) { + return this.toArrayLike(Array, b, c); + }), + (f.prototype.toArrayLike = function(b, c, e) { + var f = this.byteLength(), + g = e || Math.max(1, f); + d(f <= g, 'byte array longer than desired length'), + d(g > 0, 'Requested array length <= 0'), + this.strip(); + var j, + k, + h = 'le' === c, + i = new b(g), + l = this.clone(); + if (h) { + for (k = 0; !l.isZero(); k++) + (j = l.andln(255)), l.iushrn(8), (i[k] = j); + for (; k < g; k++) i[k] = 0; + } else { + for (k = 0; k < g - f; k++) i[k] = 0; + for (k = 0; !l.isZero(); k++) + (j = l.andln(255)), l.iushrn(8), (i[g - k - 1] = j); + } + return i; + }), + Math.clz32 + ? (f.prototype._countBits = function(b) { + return 32 - Math.clz32(b); + }) + : (f.prototype._countBits = function(b) { + var c = b, + d = 0; + return ( + c >= 4096 && ((d += 13), (c >>>= 13)), + c >= 64 && ((d += 7), (c >>>= 7)), + c >= 8 && ((d += 4), (c >>>= 4)), + c >= 2 && ((d += 2), (c >>>= 2)), + d + c + ); + }), + (f.prototype._zeroBits = function(b) { + if (0 === b) return 26; + var c = b, + d = 0; + return ( + 0 === (8191 & c) && ((d += 13), (c >>>= 13)), + 0 === (127 & c) && ((d += 7), (c >>>= 7)), + 0 === (15 & c) && ((d += 4), (c >>>= 4)), + 0 === (3 & c) && ((d += 2), (c >>>= 2)), + 0 === (1 & c) && d++, + d + ); + }), + (f.prototype.bitLength = function() { + var b = this.words[this.length - 1], + c = this._countBits(b); + return 26 * (this.length - 1) + c; + }), + (f.prototype.zeroBits = function() { + if (this.isZero()) return 0; + for (var b = 0, c = 0; c < this.length; c++) { + var d = this._zeroBits(this.words[c]); + if (((b += d), 26 !== d)) break; + } + return b; + }), + (f.prototype.byteLength = function() { + return Math.ceil(this.bitLength() / 8); + }), + (f.prototype.toTwos = function(b) { + return 0 !== this.negative + ? this.abs() + .inotn(b) + .iaddn(1) + : this.clone(); + }), + (f.prototype.fromTwos = function(b) { + return this.testn(b - 1) + ? this.notn(b) + .iaddn(1) + .ineg() + : this.clone(); + }), + (f.prototype.isNeg = function() { + return 0 !== this.negative; + }), + (f.prototype.neg = function() { + return this.clone().ineg(); + }), + (f.prototype.ineg = function() { + return this.isZero() || (this.negative ^= 1), this; + }), + (f.prototype.iuor = function(b) { + for (; this.length < b.length; ) this.words[this.length++] = 0; + for (var c = 0; c < b.length; c++) + this.words[c] = this.words[c] | b.words[c]; + return this.strip(); + }), + (f.prototype.ior = function(b) { + return d(0 === (this.negative | b.negative)), this.iuor(b); + }), + (f.prototype.or = function(b) { + return this.length > b.length + ? this.clone().ior(b) + : b.clone().ior(this); + }), + (f.prototype.uor = function(b) { + return this.length > b.length + ? this.clone().iuor(b) + : b.clone().iuor(this); + }), + (f.prototype.iuand = function(b) { + var c; + c = this.length > b.length ? b : this; + for (var d = 0; d < c.length; d++) + this.words[d] = this.words[d] & b.words[d]; + return (this.length = c.length), this.strip(); + }), + (f.prototype.iand = function(b) { + return d(0 === (this.negative | b.negative)), this.iuand(b); + }), + (f.prototype.and = function(b) { + return this.length > b.length + ? this.clone().iand(b) + : b.clone().iand(this); + }), + (f.prototype.uand = function(b) { + return this.length > b.length + ? this.clone().iuand(b) + : b.clone().iuand(this); + }), + (f.prototype.iuxor = function(b) { + var c, d; + this.length > b.length + ? ((c = this), (d = b)) + : ((c = b), (d = this)); + for (var e = 0; e < d.length; e++) + this.words[e] = c.words[e] ^ d.words[e]; + if (this !== c) + for (; e < c.length; e++) this.words[e] = c.words[e]; + return (this.length = c.length), this.strip(); + }), + (f.prototype.ixor = function(b) { + return d(0 === (this.negative | b.negative)), this.iuxor(b); + }), + (f.prototype.xor = function(b) { + return this.length > b.length + ? this.clone().ixor(b) + : b.clone().ixor(this); + }), + (f.prototype.uxor = function(b) { + return this.length > b.length + ? this.clone().iuxor(b) + : b.clone().iuxor(this); + }), + (f.prototype.inotn = function(b) { + d('number' == typeof b && b >= 0); + var c = 0 | Math.ceil(b / 26), + e = b % 26; + this._expand(c), e > 0 && c--; + for (var f = 0; f < c; f++) + this.words[f] = 67108863 & ~this.words[f]; + return ( + e > 0 && + (this.words[f] = ~this.words[f] & (67108863 >> (26 - e))), + this.strip() + ); + }), + (f.prototype.notn = function(b) { + return this.clone().inotn(b); + }), + (f.prototype.setn = function(b, c) { + d('number' == typeof b && b >= 0); + var e = (b / 26) | 0, + f = b % 26; + return ( + this._expand(e + 1), + c + ? (this.words[e] = this.words[e] | (1 << f)) + : (this.words[e] = this.words[e] & ~(1 << f)), + this.strip() + ); + }), + (f.prototype.iadd = function(b) { + var c; + if (0 !== this.negative && 0 === b.negative) + return ( + (this.negative = 0), + (c = this.isub(b)), + (this.negative ^= 1), + this._normSign() + ); + if (0 === this.negative && 0 !== b.negative) + return ( + (b.negative = 0), + (c = this.isub(b)), + (b.negative = 1), + c._normSign() + ); + var d, e; + this.length > b.length + ? ((d = this), (e = b)) + : ((d = b), (e = this)); + for (var f = 0, g = 0; g < e.length; g++) + (c = (0 | d.words[g]) + (0 | e.words[g]) + f), + (this.words[g] = 67108863 & c), + (f = c >>> 26); + for (; 0 !== f && g < d.length; g++) + (c = (0 | d.words[g]) + f), + (this.words[g] = 67108863 & c), + (f = c >>> 26); + if (((this.length = d.length), 0 !== f)) + (this.words[this.length] = f), this.length++; + else if (d !== this) + for (; g < d.length; g++) this.words[g] = d.words[g]; + return this; + }), + (f.prototype.add = function(b) { + var c; + return 0 !== b.negative && 0 === this.negative + ? ((b.negative = 0), (c = this.sub(b)), (b.negative ^= 1), c) + : 0 === b.negative && 0 !== this.negative + ? ((this.negative = 0), + (c = b.sub(this)), + (this.negative = 1), + c) + : this.length > b.length + ? this.clone().iadd(b) + : b.clone().iadd(this); + }), + (f.prototype.isub = function(b) { + if (0 !== b.negative) { + b.negative = 0; + var c = this.iadd(b); + return (b.negative = 1), c._normSign(); + } + if (0 !== this.negative) + return ( + (this.negative = 0), + this.iadd(b), + (this.negative = 1), + this._normSign() + ); + var d = this.cmp(b); + if (0 === d) + return ( + (this.negative = 0), + (this.length = 1), + (this.words[0] = 0), + this + ); + var e, f; + d > 0 ? ((e = this), (f = b)) : ((e = b), (f = this)); + for (var g = 0, h = 0; h < f.length; h++) + (c = (0 | e.words[h]) - (0 | f.words[h]) + g), + (g = c >> 26), + (this.words[h] = 67108863 & c); + for (; 0 !== g && h < e.length; h++) + (c = (0 | e.words[h]) + g), + (g = c >> 26), + (this.words[h] = 67108863 & c); + if (0 === g && h < e.length && e !== this) + for (; h < e.length; h++) this.words[h] = e.words[h]; + return ( + (this.length = Math.max(this.length, h)), + e !== this && (this.negative = 1), + this.strip() + ); + }), + (f.prototype.sub = function(b) { + return this.clone().isub(b); + }); + var o = function(b, c, d) { + var i, + j, + k, + e = b.words, + f = c.words, + g = d.words, + h = 0, + l = 0 | e[0], + m = 8191 & l, + n = l >>> 13, + o = 0 | e[1], + p = 8191 & o, + q = o >>> 13, + r = 0 | e[2], + s = 8191 & r, + t = r >>> 13, + u = 0 | e[3], + v = 8191 & u, + w = u >>> 13, + x = 0 | e[4], + y = 8191 & x, + z = x >>> 13, + A = 0 | e[5], + B = 8191 & A, + C = A >>> 13, + D = 0 | e[6], + E = 8191 & D, + F = D >>> 13, + G = 0 | e[7], + H = 8191 & G, + I = G >>> 13, + J = 0 | e[8], + K = 8191 & J, + L = J >>> 13, + M = 0 | e[9], + N = 8191 & M, + O = M >>> 13, + P = 0 | f[0], + Q = 8191 & P, + R = P >>> 13, + S = 0 | f[1], + T = 8191 & S, + U = S >>> 13, + V = 0 | f[2], + W = 8191 & V, + X = V >>> 13, + Y = 0 | f[3], + Z = 8191 & Y, + $ = Y >>> 13, + _ = 0 | f[4], + aa = 8191 & _, + ba = _ >>> 13, + ca = 0 | f[5], + da = 8191 & ca, + ea = ca >>> 13, + fa = 0 | f[6], + ga = 8191 & fa, + ha = fa >>> 13, + ia = 0 | f[7], + ja = 8191 & ia, + ka = ia >>> 13, + la = 0 | f[8], + ma = 8191 & la, + na = la >>> 13, + oa = 0 | f[9], + pa = 8191 & oa, + qa = oa >>> 13; + (d.negative = b.negative ^ c.negative), + (d.length = 19), + (i = Math.imul(m, Q)), + (j = Math.imul(m, R)), + (j = (j + Math.imul(n, Q)) | 0), + (k = Math.imul(n, R)); + var ra = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (ra >>> 26)) | 0), + (ra &= 67108863), + (i = Math.imul(p, Q)), + (j = Math.imul(p, R)), + (j = (j + Math.imul(q, Q)) | 0), + (k = Math.imul(q, R)), + (i = (i + Math.imul(m, T)) | 0), + (j = (j + Math.imul(m, U)) | 0), + (j = (j + Math.imul(n, T)) | 0), + (k = (k + Math.imul(n, U)) | 0); + var sa = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (sa >>> 26)) | 0), + (sa &= 67108863), + (i = Math.imul(s, Q)), + (j = Math.imul(s, R)), + (j = (j + Math.imul(t, Q)) | 0), + (k = Math.imul(t, R)), + (i = (i + Math.imul(p, T)) | 0), + (j = (j + Math.imul(p, U)) | 0), + (j = (j + Math.imul(q, T)) | 0), + (k = (k + Math.imul(q, U)) | 0), + (i = (i + Math.imul(m, W)) | 0), + (j = (j + Math.imul(m, X)) | 0), + (j = (j + Math.imul(n, W)) | 0), + (k = (k + Math.imul(n, X)) | 0); + var ta = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (ta >>> 26)) | 0), + (ta &= 67108863), + (i = Math.imul(v, Q)), + (j = Math.imul(v, R)), + (j = (j + Math.imul(w, Q)) | 0), + (k = Math.imul(w, R)), + (i = (i + Math.imul(s, T)) | 0), + (j = (j + Math.imul(s, U)) | 0), + (j = (j + Math.imul(t, T)) | 0), + (k = (k + Math.imul(t, U)) | 0), + (i = (i + Math.imul(p, W)) | 0), + (j = (j + Math.imul(p, X)) | 0), + (j = (j + Math.imul(q, W)) | 0), + (k = (k + Math.imul(q, X)) | 0), + (i = (i + Math.imul(m, Z)) | 0), + (j = (j + Math.imul(m, $)) | 0), + (j = (j + Math.imul(n, Z)) | 0), + (k = (k + Math.imul(n, $)) | 0); + var ua = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (ua >>> 26)) | 0), + (ua &= 67108863), + (i = Math.imul(y, Q)), + (j = Math.imul(y, R)), + (j = (j + Math.imul(z, Q)) | 0), + (k = Math.imul(z, R)), + (i = (i + Math.imul(v, T)) | 0), + (j = (j + Math.imul(v, U)) | 0), + (j = (j + Math.imul(w, T)) | 0), + (k = (k + Math.imul(w, U)) | 0), + (i = (i + Math.imul(s, W)) | 0), + (j = (j + Math.imul(s, X)) | 0), + (j = (j + Math.imul(t, W)) | 0), + (k = (k + Math.imul(t, X)) | 0), + (i = (i + Math.imul(p, Z)) | 0), + (j = (j + Math.imul(p, $)) | 0), + (j = (j + Math.imul(q, Z)) | 0), + (k = (k + Math.imul(q, $)) | 0), + (i = (i + Math.imul(m, aa)) | 0), + (j = (j + Math.imul(m, ba)) | 0), + (j = (j + Math.imul(n, aa)) | 0), + (k = (k + Math.imul(n, ba)) | 0); + var va = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (va >>> 26)) | 0), + (va &= 67108863), + (i = Math.imul(B, Q)), + (j = Math.imul(B, R)), + (j = (j + Math.imul(C, Q)) | 0), + (k = Math.imul(C, R)), + (i = (i + Math.imul(y, T)) | 0), + (j = (j + Math.imul(y, U)) | 0), + (j = (j + Math.imul(z, T)) | 0), + (k = (k + Math.imul(z, U)) | 0), + (i = (i + Math.imul(v, W)) | 0), + (j = (j + Math.imul(v, X)) | 0), + (j = (j + Math.imul(w, W)) | 0), + (k = (k + Math.imul(w, X)) | 0), + (i = (i + Math.imul(s, Z)) | 0), + (j = (j + Math.imul(s, $)) | 0), + (j = (j + Math.imul(t, Z)) | 0), + (k = (k + Math.imul(t, $)) | 0), + (i = (i + Math.imul(p, aa)) | 0), + (j = (j + Math.imul(p, ba)) | 0), + (j = (j + Math.imul(q, aa)) | 0), + (k = (k + Math.imul(q, ba)) | 0), + (i = (i + Math.imul(m, da)) | 0), + (j = (j + Math.imul(m, ea)) | 0), + (j = (j + Math.imul(n, da)) | 0), + (k = (k + Math.imul(n, ea)) | 0); + var wa = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (wa >>> 26)) | 0), + (wa &= 67108863), + (i = Math.imul(E, Q)), + (j = Math.imul(E, R)), + (j = (j + Math.imul(F, Q)) | 0), + (k = Math.imul(F, R)), + (i = (i + Math.imul(B, T)) | 0), + (j = (j + Math.imul(B, U)) | 0), + (j = (j + Math.imul(C, T)) | 0), + (k = (k + Math.imul(C, U)) | 0), + (i = (i + Math.imul(y, W)) | 0), + (j = (j + Math.imul(y, X)) | 0), + (j = (j + Math.imul(z, W)) | 0), + (k = (k + Math.imul(z, X)) | 0), + (i = (i + Math.imul(v, Z)) | 0), + (j = (j + Math.imul(v, $)) | 0), + (j = (j + Math.imul(w, Z)) | 0), + (k = (k + Math.imul(w, $)) | 0), + (i = (i + Math.imul(s, aa)) | 0), + (j = (j + Math.imul(s, ba)) | 0), + (j = (j + Math.imul(t, aa)) | 0), + (k = (k + Math.imul(t, ba)) | 0), + (i = (i + Math.imul(p, da)) | 0), + (j = (j + Math.imul(p, ea)) | 0), + (j = (j + Math.imul(q, da)) | 0), + (k = (k + Math.imul(q, ea)) | 0), + (i = (i + Math.imul(m, ga)) | 0), + (j = (j + Math.imul(m, ha)) | 0), + (j = (j + Math.imul(n, ga)) | 0), + (k = (k + Math.imul(n, ha)) | 0); + var xa = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (xa >>> 26)) | 0), + (xa &= 67108863), + (i = Math.imul(H, Q)), + (j = Math.imul(H, R)), + (j = (j + Math.imul(I, Q)) | 0), + (k = Math.imul(I, R)), + (i = (i + Math.imul(E, T)) | 0), + (j = (j + Math.imul(E, U)) | 0), + (j = (j + Math.imul(F, T)) | 0), + (k = (k + Math.imul(F, U)) | 0), + (i = (i + Math.imul(B, W)) | 0), + (j = (j + Math.imul(B, X)) | 0), + (j = (j + Math.imul(C, W)) | 0), + (k = (k + Math.imul(C, X)) | 0), + (i = (i + Math.imul(y, Z)) | 0), + (j = (j + Math.imul(y, $)) | 0), + (j = (j + Math.imul(z, Z)) | 0), + (k = (k + Math.imul(z, $)) | 0), + (i = (i + Math.imul(v, aa)) | 0), + (j = (j + Math.imul(v, ba)) | 0), + (j = (j + Math.imul(w, aa)) | 0), + (k = (k + Math.imul(w, ba)) | 0), + (i = (i + Math.imul(s, da)) | 0), + (j = (j + Math.imul(s, ea)) | 0), + (j = (j + Math.imul(t, da)) | 0), + (k = (k + Math.imul(t, ea)) | 0), + (i = (i + Math.imul(p, ga)) | 0), + (j = (j + Math.imul(p, ha)) | 0), + (j = (j + Math.imul(q, ga)) | 0), + (k = (k + Math.imul(q, ha)) | 0), + (i = (i + Math.imul(m, ja)) | 0), + (j = (j + Math.imul(m, ka)) | 0), + (j = (j + Math.imul(n, ja)) | 0), + (k = (k + Math.imul(n, ka)) | 0); + var ya = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (ya >>> 26)) | 0), + (ya &= 67108863), + (i = Math.imul(K, Q)), + (j = Math.imul(K, R)), + (j = (j + Math.imul(L, Q)) | 0), + (k = Math.imul(L, R)), + (i = (i + Math.imul(H, T)) | 0), + (j = (j + Math.imul(H, U)) | 0), + (j = (j + Math.imul(I, T)) | 0), + (k = (k + Math.imul(I, U)) | 0), + (i = (i + Math.imul(E, W)) | 0), + (j = (j + Math.imul(E, X)) | 0), + (j = (j + Math.imul(F, W)) | 0), + (k = (k + Math.imul(F, X)) | 0), + (i = (i + Math.imul(B, Z)) | 0), + (j = (j + Math.imul(B, $)) | 0), + (j = (j + Math.imul(C, Z)) | 0), + (k = (k + Math.imul(C, $)) | 0), + (i = (i + Math.imul(y, aa)) | 0), + (j = (j + Math.imul(y, ba)) | 0), + (j = (j + Math.imul(z, aa)) | 0), + (k = (k + Math.imul(z, ba)) | 0), + (i = (i + Math.imul(v, da)) | 0), + (j = (j + Math.imul(v, ea)) | 0), + (j = (j + Math.imul(w, da)) | 0), + (k = (k + Math.imul(w, ea)) | 0), + (i = (i + Math.imul(s, ga)) | 0), + (j = (j + Math.imul(s, ha)) | 0), + (j = (j + Math.imul(t, ga)) | 0), + (k = (k + Math.imul(t, ha)) | 0), + (i = (i + Math.imul(p, ja)) | 0), + (j = (j + Math.imul(p, ka)) | 0), + (j = (j + Math.imul(q, ja)) | 0), + (k = (k + Math.imul(q, ka)) | 0), + (i = (i + Math.imul(m, ma)) | 0), + (j = (j + Math.imul(m, na)) | 0), + (j = (j + Math.imul(n, ma)) | 0), + (k = (k + Math.imul(n, na)) | 0); + var za = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (za >>> 26)) | 0), + (za &= 67108863), + (i = Math.imul(N, Q)), + (j = Math.imul(N, R)), + (j = (j + Math.imul(O, Q)) | 0), + (k = Math.imul(O, R)), + (i = (i + Math.imul(K, T)) | 0), + (j = (j + Math.imul(K, U)) | 0), + (j = (j + Math.imul(L, T)) | 0), + (k = (k + Math.imul(L, U)) | 0), + (i = (i + Math.imul(H, W)) | 0), + (j = (j + Math.imul(H, X)) | 0), + (j = (j + Math.imul(I, W)) | 0), + (k = (k + Math.imul(I, X)) | 0), + (i = (i + Math.imul(E, Z)) | 0), + (j = (j + Math.imul(E, $)) | 0), + (j = (j + Math.imul(F, Z)) | 0), + (k = (k + Math.imul(F, $)) | 0), + (i = (i + Math.imul(B, aa)) | 0), + (j = (j + Math.imul(B, ba)) | 0), + (j = (j + Math.imul(C, aa)) | 0), + (k = (k + Math.imul(C, ba)) | 0), + (i = (i + Math.imul(y, da)) | 0), + (j = (j + Math.imul(y, ea)) | 0), + (j = (j + Math.imul(z, da)) | 0), + (k = (k + Math.imul(z, ea)) | 0), + (i = (i + Math.imul(v, ga)) | 0), + (j = (j + Math.imul(v, ha)) | 0), + (j = (j + Math.imul(w, ga)) | 0), + (k = (k + Math.imul(w, ha)) | 0), + (i = (i + Math.imul(s, ja)) | 0), + (j = (j + Math.imul(s, ka)) | 0), + (j = (j + Math.imul(t, ja)) | 0), + (k = (k + Math.imul(t, ka)) | 0), + (i = (i + Math.imul(p, ma)) | 0), + (j = (j + Math.imul(p, na)) | 0), + (j = (j + Math.imul(q, ma)) | 0), + (k = (k + Math.imul(q, na)) | 0), + (i = (i + Math.imul(m, pa)) | 0), + (j = (j + Math.imul(m, qa)) | 0), + (j = (j + Math.imul(n, pa)) | 0), + (k = (k + Math.imul(n, qa)) | 0); + var Aa = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Aa >>> 26)) | 0), + (Aa &= 67108863), + (i = Math.imul(N, T)), + (j = Math.imul(N, U)), + (j = (j + Math.imul(O, T)) | 0), + (k = Math.imul(O, U)), + (i = (i + Math.imul(K, W)) | 0), + (j = (j + Math.imul(K, X)) | 0), + (j = (j + Math.imul(L, W)) | 0), + (k = (k + Math.imul(L, X)) | 0), + (i = (i + Math.imul(H, Z)) | 0), + (j = (j + Math.imul(H, $)) | 0), + (j = (j + Math.imul(I, Z)) | 0), + (k = (k + Math.imul(I, $)) | 0), + (i = (i + Math.imul(E, aa)) | 0), + (j = (j + Math.imul(E, ba)) | 0), + (j = (j + Math.imul(F, aa)) | 0), + (k = (k + Math.imul(F, ba)) | 0), + (i = (i + Math.imul(B, da)) | 0), + (j = (j + Math.imul(B, ea)) | 0), + (j = (j + Math.imul(C, da)) | 0), + (k = (k + Math.imul(C, ea)) | 0), + (i = (i + Math.imul(y, ga)) | 0), + (j = (j + Math.imul(y, ha)) | 0), + (j = (j + Math.imul(z, ga)) | 0), + (k = (k + Math.imul(z, ha)) | 0), + (i = (i + Math.imul(v, ja)) | 0), + (j = (j + Math.imul(v, ka)) | 0), + (j = (j + Math.imul(w, ja)) | 0), + (k = (k + Math.imul(w, ka)) | 0), + (i = (i + Math.imul(s, ma)) | 0), + (j = (j + Math.imul(s, na)) | 0), + (j = (j + Math.imul(t, ma)) | 0), + (k = (k + Math.imul(t, na)) | 0), + (i = (i + Math.imul(p, pa)) | 0), + (j = (j + Math.imul(p, qa)) | 0), + (j = (j + Math.imul(q, pa)) | 0), + (k = (k + Math.imul(q, qa)) | 0); + var Ba = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ba >>> 26)) | 0), + (Ba &= 67108863), + (i = Math.imul(N, W)), + (j = Math.imul(N, X)), + (j = (j + Math.imul(O, W)) | 0), + (k = Math.imul(O, X)), + (i = (i + Math.imul(K, Z)) | 0), + (j = (j + Math.imul(K, $)) | 0), + (j = (j + Math.imul(L, Z)) | 0), + (k = (k + Math.imul(L, $)) | 0), + (i = (i + Math.imul(H, aa)) | 0), + (j = (j + Math.imul(H, ba)) | 0), + (j = (j + Math.imul(I, aa)) | 0), + (k = (k + Math.imul(I, ba)) | 0), + (i = (i + Math.imul(E, da)) | 0), + (j = (j + Math.imul(E, ea)) | 0), + (j = (j + Math.imul(F, da)) | 0), + (k = (k + Math.imul(F, ea)) | 0), + (i = (i + Math.imul(B, ga)) | 0), + (j = (j + Math.imul(B, ha)) | 0), + (j = (j + Math.imul(C, ga)) | 0), + (k = (k + Math.imul(C, ha)) | 0), + (i = (i + Math.imul(y, ja)) | 0), + (j = (j + Math.imul(y, ka)) | 0), + (j = (j + Math.imul(z, ja)) | 0), + (k = (k + Math.imul(z, ka)) | 0), + (i = (i + Math.imul(v, ma)) | 0), + (j = (j + Math.imul(v, na)) | 0), + (j = (j + Math.imul(w, ma)) | 0), + (k = (k + Math.imul(w, na)) | 0), + (i = (i + Math.imul(s, pa)) | 0), + (j = (j + Math.imul(s, qa)) | 0), + (j = (j + Math.imul(t, pa)) | 0), + (k = (k + Math.imul(t, qa)) | 0); + var Ca = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ca >>> 26)) | 0), + (Ca &= 67108863), + (i = Math.imul(N, Z)), + (j = Math.imul(N, $)), + (j = (j + Math.imul(O, Z)) | 0), + (k = Math.imul(O, $)), + (i = (i + Math.imul(K, aa)) | 0), + (j = (j + Math.imul(K, ba)) | 0), + (j = (j + Math.imul(L, aa)) | 0), + (k = (k + Math.imul(L, ba)) | 0), + (i = (i + Math.imul(H, da)) | 0), + (j = (j + Math.imul(H, ea)) | 0), + (j = (j + Math.imul(I, da)) | 0), + (k = (k + Math.imul(I, ea)) | 0), + (i = (i + Math.imul(E, ga)) | 0), + (j = (j + Math.imul(E, ha)) | 0), + (j = (j + Math.imul(F, ga)) | 0), + (k = (k + Math.imul(F, ha)) | 0), + (i = (i + Math.imul(B, ja)) | 0), + (j = (j + Math.imul(B, ka)) | 0), + (j = (j + Math.imul(C, ja)) | 0), + (k = (k + Math.imul(C, ka)) | 0), + (i = (i + Math.imul(y, ma)) | 0), + (j = (j + Math.imul(y, na)) | 0), + (j = (j + Math.imul(z, ma)) | 0), + (k = (k + Math.imul(z, na)) | 0), + (i = (i + Math.imul(v, pa)) | 0), + (j = (j + Math.imul(v, qa)) | 0), + (j = (j + Math.imul(w, pa)) | 0), + (k = (k + Math.imul(w, qa)) | 0); + var Da = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Da >>> 26)) | 0), + (Da &= 67108863), + (i = Math.imul(N, aa)), + (j = Math.imul(N, ba)), + (j = (j + Math.imul(O, aa)) | 0), + (k = Math.imul(O, ba)), + (i = (i + Math.imul(K, da)) | 0), + (j = (j + Math.imul(K, ea)) | 0), + (j = (j + Math.imul(L, da)) | 0), + (k = (k + Math.imul(L, ea)) | 0), + (i = (i + Math.imul(H, ga)) | 0), + (j = (j + Math.imul(H, ha)) | 0), + (j = (j + Math.imul(I, ga)) | 0), + (k = (k + Math.imul(I, ha)) | 0), + (i = (i + Math.imul(E, ja)) | 0), + (j = (j + Math.imul(E, ka)) | 0), + (j = (j + Math.imul(F, ja)) | 0), + (k = (k + Math.imul(F, ka)) | 0), + (i = (i + Math.imul(B, ma)) | 0), + (j = (j + Math.imul(B, na)) | 0), + (j = (j + Math.imul(C, ma)) | 0), + (k = (k + Math.imul(C, na)) | 0), + (i = (i + Math.imul(y, pa)) | 0), + (j = (j + Math.imul(y, qa)) | 0), + (j = (j + Math.imul(z, pa)) | 0), + (k = (k + Math.imul(z, qa)) | 0); + var Ea = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ea >>> 26)) | 0), + (Ea &= 67108863), + (i = Math.imul(N, da)), + (j = Math.imul(N, ea)), + (j = (j + Math.imul(O, da)) | 0), + (k = Math.imul(O, ea)), + (i = (i + Math.imul(K, ga)) | 0), + (j = (j + Math.imul(K, ha)) | 0), + (j = (j + Math.imul(L, ga)) | 0), + (k = (k + Math.imul(L, ha)) | 0), + (i = (i + Math.imul(H, ja)) | 0), + (j = (j + Math.imul(H, ka)) | 0), + (j = (j + Math.imul(I, ja)) | 0), + (k = (k + Math.imul(I, ka)) | 0), + (i = (i + Math.imul(E, ma)) | 0), + (j = (j + Math.imul(E, na)) | 0), + (j = (j + Math.imul(F, ma)) | 0), + (k = (k + Math.imul(F, na)) | 0), + (i = (i + Math.imul(B, pa)) | 0), + (j = (j + Math.imul(B, qa)) | 0), + (j = (j + Math.imul(C, pa)) | 0), + (k = (k + Math.imul(C, qa)) | 0); + var Fa = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Fa >>> 26)) | 0), + (Fa &= 67108863), + (i = Math.imul(N, ga)), + (j = Math.imul(N, ha)), + (j = (j + Math.imul(O, ga)) | 0), + (k = Math.imul(O, ha)), + (i = (i + Math.imul(K, ja)) | 0), + (j = (j + Math.imul(K, ka)) | 0), + (j = (j + Math.imul(L, ja)) | 0), + (k = (k + Math.imul(L, ka)) | 0), + (i = (i + Math.imul(H, ma)) | 0), + (j = (j + Math.imul(H, na)) | 0), + (j = (j + Math.imul(I, ma)) | 0), + (k = (k + Math.imul(I, na)) | 0), + (i = (i + Math.imul(E, pa)) | 0), + (j = (j + Math.imul(E, qa)) | 0), + (j = (j + Math.imul(F, pa)) | 0), + (k = (k + Math.imul(F, qa)) | 0); + var Ga = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ga >>> 26)) | 0), + (Ga &= 67108863), + (i = Math.imul(N, ja)), + (j = Math.imul(N, ka)), + (j = (j + Math.imul(O, ja)) | 0), + (k = Math.imul(O, ka)), + (i = (i + Math.imul(K, ma)) | 0), + (j = (j + Math.imul(K, na)) | 0), + (j = (j + Math.imul(L, ma)) | 0), + (k = (k + Math.imul(L, na)) | 0), + (i = (i + Math.imul(H, pa)) | 0), + (j = (j + Math.imul(H, qa)) | 0), + (j = (j + Math.imul(I, pa)) | 0), + (k = (k + Math.imul(I, qa)) | 0); + var Ha = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ha >>> 26)) | 0), + (Ha &= 67108863), + (i = Math.imul(N, ma)), + (j = Math.imul(N, na)), + (j = (j + Math.imul(O, ma)) | 0), + (k = Math.imul(O, na)), + (i = (i + Math.imul(K, pa)) | 0), + (j = (j + Math.imul(K, qa)) | 0), + (j = (j + Math.imul(L, pa)) | 0), + (k = (k + Math.imul(L, qa)) | 0); + var Ia = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + (h = (((k + (j >>> 13)) | 0) + (Ia >>> 26)) | 0), + (Ia &= 67108863), + (i = Math.imul(N, pa)), + (j = Math.imul(N, qa)), + (j = (j + Math.imul(O, pa)) | 0), + (k = Math.imul(O, qa)); + var Ja = (((h + i) | 0) + ((8191 & j) << 13)) | 0; + return ( + (h = (((k + (j >>> 13)) | 0) + (Ja >>> 26)) | 0), + (Ja &= 67108863), + (g[0] = ra), + (g[1] = sa), + (g[2] = ta), + (g[3] = ua), + (g[4] = va), + (g[5] = wa), + (g[6] = xa), + (g[7] = ya), + (g[8] = za), + (g[9] = Aa), + (g[10] = Ba), + (g[11] = Ca), + (g[12] = Da), + (g[13] = Ea), + (g[14] = Fa), + (g[15] = Ga), + (g[16] = Ha), + (g[17] = Ia), + (g[18] = Ja), + 0 !== h && ((g[19] = h), d.length++), + d + ); + }; + Math.imul || (o = n), + (f.prototype.mulTo = function(b, c) { + var d, + e = this.length + b.length; + return (d = + 10 === this.length && 10 === b.length + ? o(this, b, c) + : e < 63 + ? n(this, b, c) + : e < 1024 + ? p(this, b, c) + : q(this, b, c)); + }), + (r.prototype.makeRBT = function(b) { + for ( + var c = new Array(b), + d = f.prototype._countBits(b) - 1, + e = 0; + e < b; + e++ + ) + c[e] = this.revBin(e, d, b); + return c; + }), + (r.prototype.revBin = function(b, c, d) { + if (0 === b || b === d - 1) return b; + for (var e = 0, f = 0; f < c; f++) + (e |= (1 & b) << (c - f - 1)), (b >>= 1); + return e; + }), + (r.prototype.permute = function(b, c, d, e, f, g) { + for (var h = 0; h < g; h++) (e[h] = c[b[h]]), (f[h] = d[b[h]]); + }), + (r.prototype.transform = function(b, c, d, e, f, g) { + this.permute(g, b, c, d, e, f); + for (var h = 1; h < f; h <<= 1) + for ( + var i = h << 1, + j = Math.cos((2 * Math.PI) / i), + k = Math.sin((2 * Math.PI) / i), + l = 0; + l < f; + l += i + ) + for (var m = j, n = k, o = 0; o < h; o++) { + var p = d[l + o], + q = e[l + o], + r = d[l + o + h], + s = e[l + o + h], + t = m * r - n * s; + (s = m * s + n * r), + (r = t), + (d[l + o] = p + r), + (e[l + o] = q + s), + (d[l + o + h] = p - r), + (e[l + o + h] = q - s), + o !== i && + ((t = j * m - k * n), (n = j * n + k * m), (m = t)); + } + }), + (r.prototype.guessLen13b = function(b, c) { + var d = 1 | Math.max(c, b), + e = 1 & d, + f = 0; + for (d = (d / 2) | 0; d; d >>>= 1) f++; + return 1 << (f + 1 + e); + }), + (r.prototype.conjugate = function(b, c, d) { + if (!(d <= 1)) + for (var e = 0; e < d / 2; e++) { + var f = b[e]; + (b[e] = b[d - e - 1]), + (b[d - e - 1] = f), + (f = c[e]), + (c[e] = -c[d - e - 1]), + (c[d - e - 1] = -f); + } + }), + (r.prototype.normalize13b = function(b, c) { + for (var d = 0, e = 0; e < c / 2; e++) { + var f = + 8192 * Math.round(b[2 * e + 1] / c) + + Math.round(b[2 * e] / c) + + d; + (b[e] = 67108863 & f), + (d = f < 67108864 ? 0 : (f / 67108864) | 0); + } + return b; + }), + (r.prototype.convert13b = function(b, c, e, f) { + for (var g = 0, h = 0; h < c; h++) + (g += 0 | b[h]), + (e[2 * h] = 8191 & g), + (g >>>= 13), + (e[2 * h + 1] = 8191 & g), + (g >>>= 13); + for (h = 2 * c; h < f; ++h) e[h] = 0; + d(0 === g), d(0 === (g & -8192)); + }), + (r.prototype.stub = function(b) { + for (var c = new Array(b), d = 0; d < b; d++) c[d] = 0; + return c; + }), + (r.prototype.mulp = function(b, c, d) { + var e = 2 * this.guessLen13b(b.length, c.length), + f = this.makeRBT(e), + g = this.stub(e), + h = new Array(e), + i = new Array(e), + j = new Array(e), + k = new Array(e), + l = new Array(e), + m = new Array(e), + n = d.words; + (n.length = e), + this.convert13b(b.words, b.length, h, e), + this.convert13b(c.words, c.length, k, e), + this.transform(h, g, i, j, e, f), + this.transform(k, g, l, m, e, f); + for (var o = 0; o < e; o++) { + var p = i[o] * l[o] - j[o] * m[o]; + (j[o] = i[o] * m[o] + j[o] * l[o]), (i[o] = p); + } + return ( + this.conjugate(i, j, e), + this.transform(i, j, n, g, e, f), + this.conjugate(n, g, e), + this.normalize13b(n, e), + (d.negative = b.negative ^ c.negative), + (d.length = b.length + c.length), + d.strip() + ); + }), + (f.prototype.mul = function(b) { + var c = new f(null); + return ( + (c.words = new Array(this.length + b.length)), + this.mulTo(b, c) + ); + }), + (f.prototype.mulf = function(b) { + var c = new f(null); + return ( + (c.words = new Array(this.length + b.length)), q(this, b, c) + ); + }), + (f.prototype.imul = function(b) { + return this.clone().mulTo(b, this); + }), + (f.prototype.imuln = function(b) { + d('number' == typeof b), d(b < 67108864); + for (var c = 0, e = 0; e < this.length; e++) { + var f = (0 | this.words[e]) * b, + g = (67108863 & f) + (67108863 & c); + (c >>= 26), + (c += (f / 67108864) | 0), + (c += g >>> 26), + (this.words[e] = 67108863 & g); + } + return 0 !== c && ((this.words[e] = c), this.length++), this; + }), + (f.prototype.muln = function(b) { + return this.clone().imuln(b); + }), + (f.prototype.sqr = function() { + return this.mul(this); + }), + (f.prototype.isqr = function() { + return this.imul(this.clone()); + }), + (f.prototype.pow = function(b) { + var c = m(b); + if (0 === c.length) return new f(1); + for ( + var d = this, e = 0; + e < c.length && 0 === c[e]; + e++, d = d.sqr() + ); + if (++e < c.length) + for (var g = d.sqr(); e < c.length; e++, g = g.sqr()) + 0 !== c[e] && (d = d.mul(g)); + return d; + }), + (f.prototype.iushln = function(b) { + d('number' == typeof b && b >= 0); + var g, + c = b % 26, + e = (b - c) / 26, + f = (67108863 >>> (26 - c)) << (26 - c); + if (0 !== c) { + var h = 0; + for (g = 0; g < this.length; g++) { + var i = this.words[g] & f, + j = ((0 | this.words[g]) - i) << c; + (this.words[g] = j | h), (h = i >>> (26 - c)); + } + h && ((this.words[g] = h), this.length++); + } + if (0 !== e) { + for (g = this.length - 1; g >= 0; g--) + this.words[g + e] = this.words[g]; + for (g = 0; g < e; g++) this.words[g] = 0; + this.length += e; + } + return this.strip(); + }), + (f.prototype.ishln = function(b) { + return d(0 === this.negative), this.iushln(b); + }), + (f.prototype.iushrn = function(b, c, e) { + d('number' == typeof b && b >= 0); + var f; + f = c ? (c - (c % 26)) / 26 : 0; + var g = b % 26, + h = Math.min((b - g) / 26, this.length), + i = 67108863 ^ ((67108863 >>> g) << g), + j = e; + if (((f -= h), (f = Math.max(0, f)), j)) { + for (var k = 0; k < h; k++) j.words[k] = this.words[k]; + j.length = h; + } + if (0 === h); + else if (this.length > h) + for (this.length -= h, k = 0; k < this.length; k++) + this.words[k] = this.words[k + h]; + else (this.words[0] = 0), (this.length = 1); + var l = 0; + for (k = this.length - 1; k >= 0 && (0 !== l || k >= f); k--) { + var m = 0 | this.words[k]; + (this.words[k] = (l << (26 - g)) | (m >>> g)), (l = m & i); + } + return ( + j && 0 !== l && (j.words[j.length++] = l), + 0 === this.length && ((this.words[0] = 0), (this.length = 1)), + this.strip() + ); + }), + (f.prototype.ishrn = function(b, c, e) { + return d(0 === this.negative), this.iushrn(b, c, e); + }), + (f.prototype.shln = function(b) { + return this.clone().ishln(b); + }), + (f.prototype.ushln = function(b) { + return this.clone().iushln(b); + }), + (f.prototype.shrn = function(b) { + return this.clone().ishrn(b); + }), + (f.prototype.ushrn = function(b) { + return this.clone().iushrn(b); + }), + (f.prototype.testn = function(b) { + d('number' == typeof b && b >= 0); + var c = b % 26, + e = (b - c) / 26, + f = 1 << c; + if (this.length <= e) return !1; + var g = this.words[e]; + return !!(g & f); + }), + (f.prototype.imaskn = function(b) { + d('number' == typeof b && b >= 0); + var c = b % 26, + e = (b - c) / 26; + if ( + (d( + 0 === this.negative, + 'imaskn works only with positive numbers' + ), + this.length <= e) + ) + return this; + if ( + (0 !== c && e++, + (this.length = Math.min(e, this.length)), + 0 !== c) + ) { + var f = 67108863 ^ ((67108863 >>> c) << c); + this.words[this.length - 1] &= f; + } + return this.strip(); + }), + (f.prototype.maskn = function(b) { + return this.clone().imaskn(b); + }), + (f.prototype.iaddn = function(b) { + return ( + d('number' == typeof b), + d(b < 67108864), + b < 0 + ? this.isubn(-b) + : 0 !== this.negative + ? 1 === this.length && (0 | this.words[0]) < b + ? ((this.words[0] = b - (0 | this.words[0])), + (this.negative = 0), + this) + : ((this.negative = 0), + this.isubn(b), + (this.negative = 1), + this) + : this._iaddn(b) + ); + }), + (f.prototype._iaddn = function(b) { + this.words[0] += b; + for ( + var c = 0; + c < this.length && this.words[c] >= 67108864; + c++ + ) + (this.words[c] -= 67108864), + c === this.length - 1 + ? (this.words[c + 1] = 1) + : this.words[c + 1]++; + return (this.length = Math.max(this.length, c + 1)), this; + }), + (f.prototype.isubn = function(b) { + if ((d('number' == typeof b), d(b < 67108864), b < 0)) + return this.iaddn(-b); + if (0 !== this.negative) + return ( + (this.negative = 0), + this.iaddn(b), + (this.negative = 1), + this + ); + if ( + ((this.words[0] -= b), 1 === this.length && this.words[0] < 0) + ) + (this.words[0] = -this.words[0]), (this.negative = 1); + else + for (var c = 0; c < this.length && this.words[c] < 0; c++) + (this.words[c] += 67108864), (this.words[c + 1] -= 1); + return this.strip(); + }), + (f.prototype.addn = function(b) { + return this.clone().iaddn(b); + }), + (f.prototype.subn = function(b) { + return this.clone().isubn(b); + }), + (f.prototype.iabs = function() { + return (this.negative = 0), this; + }), + (f.prototype.abs = function() { + return this.clone().iabs(); + }), + (f.prototype._ishlnsubmul = function(b, c, e) { + var g, + f = b.length + e; + this._expand(f); + var h, + i = 0; + for (g = 0; g < b.length; g++) { + h = (0 | this.words[g + e]) + i; + var j = (0 | b.words[g]) * c; + (h -= 67108863 & j), + (i = (h >> 26) - ((j / 67108864) | 0)), + (this.words[g + e] = 67108863 & h); + } + for (; g < this.length - e; g++) + (h = (0 | this.words[g + e]) + i), + (i = h >> 26), + (this.words[g + e] = 67108863 & h); + if (0 === i) return this.strip(); + for (d(i === -1), i = 0, g = 0; g < this.length; g++) + (h = -(0 | this.words[g]) + i), + (i = h >> 26), + (this.words[g] = 67108863 & h); + return (this.negative = 1), this.strip(); + }), + (f.prototype._wordDiv = function(b, c) { + var d = this.length - b.length, + e = this.clone(), + g = b, + h = 0 | g.words[g.length - 1], + i = this._countBits(h); + (d = 26 - i), + 0 !== d && + ((g = g.ushln(d)), + e.iushln(d), + (h = 0 | g.words[g.length - 1])); + var k, + j = e.length - g.length; + if ('mod' !== c) { + (k = new f(null)), + (k.length = j + 1), + (k.words = new Array(k.length)); + for (var l = 0; l < k.length; l++) k.words[l] = 0; + } + var m = e.clone()._ishlnsubmul(g, 1, j); + 0 === m.negative && ((e = m), k && (k.words[j] = 1)); + for (var n = j - 1; n >= 0; n--) { + var o = + 67108864 * (0 | e.words[g.length + n]) + + (0 | e.words[g.length + n - 1]); + for ( + o = Math.min((o / h) | 0, 67108863), + e._ishlnsubmul(g, o, n); + 0 !== e.negative; + + ) + o--, + (e.negative = 0), + e._ishlnsubmul(g, 1, n), + e.isZero() || (e.negative ^= 1); + k && (k.words[n] = o); + } + return ( + k && k.strip(), + e.strip(), + 'div' !== c && 0 !== d && e.iushrn(d), + { div: k || null, mod: e } + ); + }), + (f.prototype.divmod = function(b, c, e) { + if ((d(!b.isZero()), this.isZero())) + return { div: new f(0), mod: new f(0) }; + var g, h, i; + return 0 !== this.negative && 0 === b.negative + ? ((i = this.neg().divmod(b, c)), + 'mod' !== c && (g = i.div.neg()), + 'div' !== c && + ((h = i.mod.neg()), e && 0 !== h.negative && h.iadd(b)), + { div: g, mod: h }) + : 0 === this.negative && 0 !== b.negative + ? ((i = this.divmod(b.neg(), c)), + 'mod' !== c && (g = i.div.neg()), + { div: g, mod: i.mod }) + : 0 !== (this.negative & b.negative) + ? ((i = this.neg().divmod(b.neg(), c)), + 'div' !== c && + ((h = i.mod.neg()), e && 0 !== h.negative && h.isub(b)), + { div: i.div, mod: h }) + : b.length > this.length || this.cmp(b) < 0 + ? { div: new f(0), mod: this } + : 1 === b.length + ? 'div' === c + ? { div: this.divn(b.words[0]), mod: null } + : 'mod' === c + ? { div: null, mod: new f(this.modn(b.words[0])) } + : { + div: this.divn(b.words[0]), + mod: new f(this.modn(b.words[0])) + } + : this._wordDiv(b, c); + }), + (f.prototype.div = function(b) { + return this.divmod(b, 'div', !1).div; + }), + (f.prototype.mod = function(b) { + return this.divmod(b, 'mod', !1).mod; + }), + (f.prototype.umod = function(b) { + return this.divmod(b, 'mod', !0).mod; + }), + (f.prototype.divRound = function(b) { + var c = this.divmod(b); + if (c.mod.isZero()) return c.div; + var d = 0 !== c.div.negative ? c.mod.isub(b) : c.mod, + e = b.ushrn(1), + f = b.andln(1), + g = d.cmp(e); + return g < 0 || (1 === f && 0 === g) + ? c.div + : 0 !== c.div.negative + ? c.div.isubn(1) + : c.div.iaddn(1); + }), + (f.prototype.modn = function(b) { + d(b <= 67108863); + for ( + var c = (1 << 26) % b, e = 0, f = this.length - 1; + f >= 0; + f-- + ) + e = (c * e + (0 | this.words[f])) % b; + return e; + }), + (f.prototype.idivn = function(b) { + d(b <= 67108863); + for (var c = 0, e = this.length - 1; e >= 0; e--) { + var f = (0 | this.words[e]) + 67108864 * c; + (this.words[e] = (f / b) | 0), (c = f % b); + } + return this.strip(); + }), + (f.prototype.divn = function(b) { + return this.clone().idivn(b); + }), + (f.prototype.egcd = function(b) { + d(0 === b.negative), d(!b.isZero()); + var c = this, + e = b.clone(); + c = 0 !== c.negative ? c.umod(b) : c.clone(); + for ( + var g = new f(1), + h = new f(0), + i = new f(0), + j = new f(1), + k = 0; + c.isEven() && e.isEven(); + + ) + c.iushrn(1), e.iushrn(1), ++k; + for (var l = e.clone(), m = c.clone(); !c.isZero(); ) { + for ( + var n = 0, o = 1; + 0 === (c.words[0] & o) && n < 26; + ++n, o <<= 1 + ); + if (n > 0) + for (c.iushrn(n); n-- > 0; ) + (g.isOdd() || h.isOdd()) && (g.iadd(l), h.isub(m)), + g.iushrn(1), + h.iushrn(1); + for ( + var p = 0, q = 1; + 0 === (e.words[0] & q) && p < 26; + ++p, q <<= 1 + ); + if (p > 0) + for (e.iushrn(p); p-- > 0; ) + (i.isOdd() || j.isOdd()) && (i.iadd(l), j.isub(m)), + i.iushrn(1), + j.iushrn(1); + c.cmp(e) >= 0 + ? (c.isub(e), g.isub(i), h.isub(j)) + : (e.isub(c), i.isub(g), j.isub(h)); + } + return { a: i, b: j, gcd: e.iushln(k) }; + }), + (f.prototype._invmp = function(b) { + d(0 === b.negative), d(!b.isZero()); + var c = this, + e = b.clone(); + c = 0 !== c.negative ? c.umod(b) : c.clone(); + for ( + var g = new f(1), h = new f(0), i = e.clone(); + c.cmpn(1) > 0 && e.cmpn(1) > 0; + + ) { + for ( + var j = 0, k = 1; + 0 === (c.words[0] & k) && j < 26; + ++j, k <<= 1 + ); + if (j > 0) + for (c.iushrn(j); j-- > 0; ) + g.isOdd() && g.iadd(i), g.iushrn(1); + for ( + var l = 0, m = 1; + 0 === (e.words[0] & m) && l < 26; + ++l, m <<= 1 + ); + if (l > 0) + for (e.iushrn(l); l-- > 0; ) + h.isOdd() && h.iadd(i), h.iushrn(1); + c.cmp(e) >= 0 + ? (c.isub(e), g.isub(h)) + : (e.isub(c), h.isub(g)); + } + var n; + return ( + (n = 0 === c.cmpn(1) ? g : h), n.cmpn(0) < 0 && n.iadd(b), n + ); + }), + (f.prototype.gcd = function(b) { + if (this.isZero()) return b.abs(); + if (b.isZero()) return this.abs(); + var c = this.clone(), + d = b.clone(); + (c.negative = 0), (d.negative = 0); + for (var e = 0; c.isEven() && d.isEven(); e++) + c.iushrn(1), d.iushrn(1); + for (;;) { + for (; c.isEven(); ) c.iushrn(1); + for (; d.isEven(); ) d.iushrn(1); + var f = c.cmp(d); + if (f < 0) { + var g = c; + (c = d), (d = g); + } else if (0 === f || 0 === d.cmpn(1)) break; + c.isub(d); + } + return d.iushln(e); + }), + (f.prototype.invm = function(b) { + return this.egcd(b).a.umod(b); + }), + (f.prototype.isEven = function() { + return 0 === (1 & this.words[0]); + }), + (f.prototype.isOdd = function() { + return 1 === (1 & this.words[0]); + }), + (f.prototype.andln = function(b) { + return this.words[0] & b; + }), + (f.prototype.bincn = function(b) { + d('number' == typeof b); + var c = b % 26, + e = (b - c) / 26, + f = 1 << c; + if (this.length <= e) + return this._expand(e + 1), (this.words[e] |= f), this; + for (var g = f, h = e; 0 !== g && h < this.length; h++) { + var i = 0 | this.words[h]; + (i += g), + (g = i >>> 26), + (i &= 67108863), + (this.words[h] = i); + } + return 0 !== g && ((this.words[h] = g), this.length++), this; + }), + (f.prototype.isZero = function() { + return 1 === this.length && 0 === this.words[0]; + }), + (f.prototype.cmpn = function(b) { + var c = b < 0; + if (0 !== this.negative && !c) return -1; + if (0 === this.negative && c) return 1; + this.strip(); + var e; + if (this.length > 1) e = 1; + else { + c && (b = -b), d(b <= 67108863, 'Number is too big'); + var f = 0 | this.words[0]; + e = f === b ? 0 : f < b ? -1 : 1; + } + return 0 !== this.negative ? 0 | -e : e; + }), + (f.prototype.cmp = function(b) { + if (0 !== this.negative && 0 === b.negative) return -1; + if (0 === this.negative && 0 !== b.negative) return 1; + var c = this.ucmp(b); + return 0 !== this.negative ? 0 | -c : c; + }), + (f.prototype.ucmp = function(b) { + if (this.length > b.length) return 1; + if (this.length < b.length) return -1; + for (var c = 0, d = this.length - 1; d >= 0; d--) { + var e = 0 | this.words[d], + f = 0 | b.words[d]; + if (e !== f) { + e < f ? (c = -1) : e > f && (c = 1); + break; + } + } + return c; + }), + (f.prototype.gtn = function(b) { + return 1 === this.cmpn(b); + }), + (f.prototype.gt = function(b) { + return 1 === this.cmp(b); + }), + (f.prototype.gten = function(b) { + return this.cmpn(b) >= 0; + }), + (f.prototype.gte = function(b) { + return this.cmp(b) >= 0; + }), + (f.prototype.ltn = function(b) { + return this.cmpn(b) === -1; + }), + (f.prototype.lt = function(b) { + return this.cmp(b) === -1; + }), + (f.prototype.lten = function(b) { + return this.cmpn(b) <= 0; + }), + (f.prototype.lte = function(b) { + return this.cmp(b) <= 0; + }), + (f.prototype.eqn = function(b) { + return 0 === this.cmpn(b); + }), + (f.prototype.eq = function(b) { + return 0 === this.cmp(b); + }), + (f.red = function(b) { + return new y(b); + }), + (f.prototype.toRed = function(b) { + return ( + d(!this.red, 'Already a number in reduction context'), + d(0 === this.negative, 'red works only with positives'), + b.convertTo(this)._forceRed(b) + ); + }), + (f.prototype.fromRed = function() { + return ( + d( + this.red, + 'fromRed works only with numbers in reduction context' + ), + this.red.convertFrom(this) + ); + }), + (f.prototype._forceRed = function(b) { + return (this.red = b), this; + }), + (f.prototype.forceRed = function(b) { + return ( + d(!this.red, 'Already a number in reduction context'), + this._forceRed(b) + ); + }), + (f.prototype.redAdd = function(b) { + return ( + d(this.red, 'redAdd works only with red numbers'), + this.red.add(this, b) + ); + }), + (f.prototype.redIAdd = function(b) { + return ( + d(this.red, 'redIAdd works only with red numbers'), + this.red.iadd(this, b) + ); + }), + (f.prototype.redSub = function(b) { + return ( + d(this.red, 'redSub works only with red numbers'), + this.red.sub(this, b) + ); + }), + (f.prototype.redISub = function(b) { + return ( + d(this.red, 'redISub works only with red numbers'), + this.red.isub(this, b) + ); + }), + (f.prototype.redShl = function(b) { + return ( + d(this.red, 'redShl works only with red numbers'), + this.red.shl(this, b) + ); + }), + (f.prototype.redMul = function(b) { + return ( + d(this.red, 'redMul works only with red numbers'), + this.red._verify2(this, b), + this.red.mul(this, b) + ); + }), + (f.prototype.redIMul = function(b) { + return ( + d(this.red, 'redMul works only with red numbers'), + this.red._verify2(this, b), + this.red.imul(this, b) + ); + }), + (f.prototype.redSqr = function() { + return ( + d(this.red, 'redSqr works only with red numbers'), + this.red._verify1(this), + this.red.sqr(this) + ); + }), + (f.prototype.redISqr = function() { + return ( + d(this.red, 'redISqr works only with red numbers'), + this.red._verify1(this), + this.red.isqr(this) + ); + }), + (f.prototype.redSqrt = function() { + return ( + d(this.red, 'redSqrt works only with red numbers'), + this.red._verify1(this), + this.red.sqrt(this) + ); + }), + (f.prototype.redInvm = function() { + return ( + d(this.red, 'redInvm works only with red numbers'), + this.red._verify1(this), + this.red.invm(this) + ); + }), + (f.prototype.redNeg = function() { + return ( + d(this.red, 'redNeg works only with red numbers'), + this.red._verify1(this), + this.red.neg(this) + ); + }), + (f.prototype.redPow = function(b) { + return ( + d(this.red && !b.red, 'redPow(normalNum)'), + this.red._verify1(this), + this.red.pow(this, b) + ); + }); + var s = { k256: null, p224: null, p192: null, p25519: null }; + (t.prototype._tmp = function() { + var b = new f(null); + return (b.words = new Array(Math.ceil(this.n / 13))), b; + }), + (t.prototype.ireduce = function(b) { + var d, + c = b; + do + this.split(c, this.tmp), + (c = this.imulK(c)), + (c = c.iadd(this.tmp)), + (d = c.bitLength()); + while (d > this.n); + var e = d < this.n ? -1 : c.ucmp(this.p); + return ( + 0 === e + ? ((c.words[0] = 0), (c.length = 1)) + : e > 0 + ? c.isub(this.p) + : c.strip(), + c + ); + }), + (t.prototype.split = function(b, c) { + b.iushrn(this.n, 0, c); + }), + (t.prototype.imulK = function(b) { + return b.imul(this.k); + }), + e(u, t), + (u.prototype.split = function(b, c) { + for ( + var d = 4194303, e = Math.min(b.length, 9), f = 0; + f < e; + f++ + ) + c.words[f] = b.words[f]; + if (((c.length = e), b.length <= 9)) + return (b.words[0] = 0), void (b.length = 1); + var g = b.words[9]; + for (c.words[c.length++] = g & d, f = 10; f < b.length; f++) { + var h = 0 | b.words[f]; + (b.words[f - 10] = ((h & d) << 4) | (g >>> 22)), (g = h); + } + (g >>>= 22), + (b.words[f - 10] = g), + 0 === g && b.length > 10 ? (b.length -= 10) : (b.length -= 9); + }), + (u.prototype.imulK = function(b) { + (b.words[b.length] = 0), + (b.words[b.length + 1] = 0), + (b.length += 2); + for (var c = 0, d = 0; d < b.length; d++) { + var e = 0 | b.words[d]; + (c += 977 * e), + (b.words[d] = 67108863 & c), + (c = 64 * e + ((c / 67108864) | 0)); + } + return ( + 0 === b.words[b.length - 1] && + (b.length--, 0 === b.words[b.length - 1] && b.length--), + b + ); + }), + e(v, t), + e(w, t), + e(x, t), + (x.prototype.imulK = function(b) { + for (var c = 0, d = 0; d < b.length; d++) { + var e = 19 * (0 | b.words[d]) + c, + f = 67108863 & e; + (e >>>= 26), (b.words[d] = f), (c = e); + } + return 0 !== c && (b.words[b.length++] = c), b; + }), + (f._prime = function a(b) { + if (s[b]) return s[b]; + var a; + if ('k256' === b) a = new u(); + else if ('p224' === b) a = new v(); + else if ('p192' === b) a = new w(); + else { + if ('p25519' !== b) throw new Error('Unknown prime ' + b); + a = new x(); + } + return (s[b] = a), a; + }), + (y.prototype._verify1 = function(b) { + d(0 === b.negative, 'red works only with positives'), + d(b.red, 'red works only with red numbers'); + }), + (y.prototype._verify2 = function(b, c) { + d( + 0 === (b.negative | c.negative), + 'red works only with positives' + ), + d( + b.red && b.red === c.red, + 'red works only with red numbers' + ); + }), + (y.prototype.imod = function(b) { + return this.prime + ? this.prime.ireduce(b)._forceRed(this) + : b.umod(this.m)._forceRed(this); + }), + (y.prototype.neg = function(b) { + return b.isZero() ? b.clone() : this.m.sub(b)._forceRed(this); + }), + (y.prototype.add = function(b, c) { + this._verify2(b, c); + var d = b.add(c); + return d.cmp(this.m) >= 0 && d.isub(this.m), d._forceRed(this); + }), + (y.prototype.iadd = function(b, c) { + this._verify2(b, c); + var d = b.iadd(c); + return d.cmp(this.m) >= 0 && d.isub(this.m), d; + }), + (y.prototype.sub = function(b, c) { + this._verify2(b, c); + var d = b.sub(c); + return d.cmpn(0) < 0 && d.iadd(this.m), d._forceRed(this); + }), + (y.prototype.isub = function(b, c) { + this._verify2(b, c); + var d = b.isub(c); + return d.cmpn(0) < 0 && d.iadd(this.m), d; + }), + (y.prototype.shl = function(b, c) { + return this._verify1(b), this.imod(b.ushln(c)); + }), + (y.prototype.imul = function(b, c) { + return this._verify2(b, c), this.imod(b.imul(c)); + }), + (y.prototype.mul = function(b, c) { + return this._verify2(b, c), this.imod(b.mul(c)); + }), + (y.prototype.isqr = function(b) { + return this.imul(b, b.clone()); + }), + (y.prototype.sqr = function(b) { + return this.mul(b, b); + }), + (y.prototype.sqrt = function(b) { + if (b.isZero()) return b.clone(); + var c = this.m.andln(3); + if ((d(c % 2 === 1), 3 === c)) { + var e = this.m.add(new f(1)).iushrn(2); + return this.pow(b, e); + } + for ( + var g = this.m.subn(1), h = 0; + !g.isZero() && 0 === g.andln(1); + + ) + h++, g.iushrn(1); + d(!g.isZero()); + var i = new f(1).toRed(this), + j = i.redNeg(), + k = this.m.subn(1).iushrn(1), + l = this.m.bitLength(); + for ( + l = new f(2 * l * l).toRed(this); + 0 !== this.pow(l, k).cmp(j); + + ) + l.redIAdd(j); + for ( + var m = this.pow(l, g), + n = this.pow(b, g.addn(1).iushrn(1)), + o = this.pow(b, g), + p = h; + 0 !== o.cmp(i); + + ) { + for (var q = o, r = 0; 0 !== q.cmp(i); r++) q = q.redSqr(); + d(r < p); + var s = this.pow(m, new f(1).iushln(p - r - 1)); + (n = n.redMul(s)), + (m = s.redSqr()), + (o = o.redMul(m)), + (p = r); + } + return n; + }), + (y.prototype.invm = function(b) { + var c = b._invmp(this.m); + return 0 !== c.negative + ? ((c.negative = 0), this.imod(c).redNeg()) + : this.imod(c); + }), + (y.prototype.pow = function(b, c) { + if (c.isZero()) return new f(1); + if (0 === c.cmpn(1)) return b.clone(); + var d = 4, + e = new Array(1 << d); + (e[0] = new f(1).toRed(this)), (e[1] = b); + for (var g = 2; g < e.length; g++) e[g] = this.mul(e[g - 1], b); + var h = e[0], + i = 0, + j = 0, + k = c.bitLength() % 26; + for (0 === k && (k = 26), g = c.length - 1; g >= 0; g--) { + for (var l = c.words[g], m = k - 1; m >= 0; m--) { + var n = (l >> m) & 1; + h !== e[0] && (h = this.sqr(h)), + 0 !== n || 0 !== i + ? ((i <<= 1), + (i |= n), + j++, + (j === d || (0 === g && 0 === m)) && + ((h = this.mul(h, e[i])), (j = 0), (i = 0))) + : (j = 0); + } + k = 26; + } + return h; + }), + (y.prototype.convertTo = function(b) { + var c = b.umod(this.m); + return c === b ? c.clone() : c; + }), + (y.prototype.convertFrom = function(b) { + var c = b.clone(); + return (c.red = null), c; + }), + (f.mont = function(b) { + return new z(b); + }), + e(z, y), + (z.prototype.convertTo = function(b) { + return this.imod(b.ushln(this.shift)); + }), + (z.prototype.convertFrom = function(b) { + var c = this.imod(b.mul(this.rinv)); + return (c.red = null), c; + }), + (z.prototype.imul = function(b, c) { + if (b.isZero() || c.isZero()) + return (b.words[0] = 0), (b.length = 1), b; + var d = b.imul(c), + e = d + .maskn(this.shift) + .mul(this.minv) + .imaskn(this.shift) + .mul(this.m), + f = d.isub(e).iushrn(this.shift), + g = f; + return ( + f.cmp(this.m) >= 0 + ? (g = f.isub(this.m)) + : f.cmpn(0) < 0 && (g = f.iadd(this.m)), + g._forceRed(this) + ); + }), + (z.prototype.mul = function(b, c) { + if (b.isZero() || c.isZero()) return new f(0)._forceRed(this); + var d = b.mul(c), + e = d + .maskn(this.shift) + .mul(this.minv) + .imaskn(this.shift) + .mul(this.m), + g = d.isub(e).iushrn(this.shift), + h = g; + return ( + g.cmp(this.m) >= 0 + ? (h = g.isub(this.m)) + : g.cmpn(0) < 0 && (h = g.iadd(this.m)), + h._forceRed(this) + ); + }), + (z.prototype.invm = function(b) { + var c = this.imod(b._invmp(this.m).mul(this.r2)); + return c._forceRed(this); + }); + })('undefined' == typeof b || b, this); + }, + {} + ], + 2: [ + function(a, b, c) { + 'use strict'; + var d = c; + (d.version = a('../package.json').version), + (d.utils = a('./elliptic/utils')), + (d.rand = a('brorand')), + (d.hmacDRBG = a('./elliptic/hmac-drbg')), + (d.curve = a('./elliptic/curve')), + (d.curves = a('./elliptic/curves')), + (d.ec = a('./elliptic/ec')), + (d.eddsa = a('./elliptic/eddsa')); + }, + { + '../package.json': 26, + './elliptic/curve': 5, + './elliptic/curves': 8, + './elliptic/ec': 9, + './elliptic/eddsa': 12, + './elliptic/hmac-drbg': 15, + './elliptic/utils': 17, + brorand: 18 + } + ], + 3: [ + function(a, b, c) { + 'use strict'; + function j(a, b) { + (this.type = a), + (this.p = new d(b.p, 16)), + (this.red = b.prime ? d.red(b.prime) : d.mont(this.p)), + (this.zero = new d(0).toRed(this.red)), + (this.one = new d(1).toRed(this.red)), + (this.two = new d(2).toRed(this.red)), + (this.n = b.n && new d(b.n, 16)), + (this.g = b.g && this.pointFromJSON(b.g, b.gRed)), + (this._wnafT1 = new Array(4)), + (this._wnafT2 = new Array(4)), + (this._wnafT3 = new Array(4)), + (this._wnafT4 = new Array(4)); + var c = this.n && this.p.div(this.n); + !c || c.cmpn(100) > 0 + ? (this.redN = null) + : ((this._maxwellTrick = !0), + (this.redN = this.n.toRed(this.red))); + } + function k(a, b) { + (this.curve = a), (this.type = b), (this.precomputed = null); + } + var d = a('bn.js'), + e = a('../../elliptic'), + f = e.utils, + g = f.getNAF, + h = f.getJSF, + i = f.assert; + (b.exports = j), + (j.prototype.point = function() { + throw new Error('Not implemented'); + }), + (j.prototype.validate = function() { + throw new Error('Not implemented'); + }), + (j.prototype._fixedNafMul = function(b, c) { + i(b.precomputed); + var d = b._getDoubles(), + e = g(c, 1), + f = (1 << (d.step + 1)) - (d.step % 2 === 0 ? 2 : 1); + f /= 3; + for (var h = [], j = 0; j < e.length; j += d.step) { + for (var k = 0, c = j + d.step - 1; c >= j; c--) + k = (k << 1) + e[c]; + h.push(k); + } + for ( + var l = this.jpoint(null, null, null), + m = this.jpoint(null, null, null), + n = f; + n > 0; + n-- + ) { + for (var j = 0; j < h.length; j++) { + var k = h[j]; + k === n + ? (m = m.mixedAdd(d.points[j])) + : k === -n && (m = m.mixedAdd(d.points[j].neg())); + } + l = l.add(m); + } + return l.toP(); + }), + (j.prototype._wnafMul = function(b, c) { + var d = 4, + e = b._getNAFPoints(d); + d = e.wnd; + for ( + var f = e.points, + h = g(c, d), + j = this.jpoint(null, null, null), + k = h.length - 1; + k >= 0; + k-- + ) { + for (var c = 0; k >= 0 && 0 === h[k]; k--) c++; + if ((k >= 0 && c++, (j = j.dblp(c)), k < 0)) break; + var l = h[k]; + i(0 !== l), + (j = + 'affine' === b.type + ? l > 0 + ? j.mixedAdd(f[(l - 1) >> 1]) + : j.mixedAdd(f[(-l - 1) >> 1].neg()) + : l > 0 + ? j.add(f[(l - 1) >> 1]) + : j.add(f[(-l - 1) >> 1].neg())); + } + return 'affine' === b.type ? j.toP() : j; + }), + (j.prototype._wnafMulAdd = function(b, c, d, e, f) { + for ( + var i = this._wnafT1, + j = this._wnafT2, + k = this._wnafT3, + l = 0, + m = 0; + m < e; + m++ + ) { + var n = c[m], + o = n._getNAFPoints(b); + (i[m] = o.wnd), (j[m] = o.points); + } + for (var m = e - 1; m >= 1; m -= 2) { + var p = m - 1, + q = m; + if (1 === i[p] && 1 === i[q]) { + var r = [c[p], null, null, c[q]]; + 0 === c[p].y.cmp(c[q].y) + ? ((r[1] = c[p].add(c[q])), + (r[2] = c[p].toJ().mixedAdd(c[q].neg()))) + : 0 === c[p].y.cmp(c[q].y.redNeg()) + ? ((r[1] = c[p].toJ().mixedAdd(c[q])), + (r[2] = c[p].add(c[q].neg()))) + : ((r[1] = c[p].toJ().mixedAdd(c[q])), + (r[2] = c[p].toJ().mixedAdd(c[q].neg()))); + var s = [-3, -1, -5, -7, 0, 7, 5, 1, 3], + t = h(d[p], d[q]); + (l = Math.max(t[0].length, l)), + (k[p] = new Array(l)), + (k[q] = new Array(l)); + for (var u = 0; u < l; u++) { + var v = 0 | t[0][u], + w = 0 | t[1][u]; + (k[p][u] = s[3 * (v + 1) + (w + 1)]), + (k[q][u] = 0), + (j[p] = r); + } + } else + (k[p] = g(d[p], i[p])), + (k[q] = g(d[q], i[q])), + (l = Math.max(k[p].length, l)), + (l = Math.max(k[q].length, l)); + } + for ( + var x = this.jpoint(null, null, null), y = this._wnafT4, m = l; + m >= 0; + m-- + ) { + for (var z = 0; m >= 0; ) { + for (var A = !0, u = 0; u < e; u++) + (y[u] = 0 | k[u][m]), 0 !== y[u] && (A = !1); + if (!A) break; + z++, m--; + } + if ((m >= 0 && z++, (x = x.dblp(z)), m < 0)) break; + for (var u = 0; u < e; u++) { + var n, + B = y[u]; + 0 !== B && + (B > 0 + ? (n = j[u][(B - 1) >> 1]) + : B < 0 && (n = j[u][(-B - 1) >> 1].neg()), + (x = 'affine' === n.type ? x.mixedAdd(n) : x.add(n))); + } + } + for (var m = 0; m < e; m++) j[m] = null; + return f ? x : x.toP(); + }), + (j.BasePoint = k), + (k.prototype.eq = function() { + throw new Error('Not implemented'); + }), + (k.prototype.validate = function() { + return this.curve.validate(this); + }), + (j.prototype.decodePoint = function(b, c) { + b = f.toArray(b, c); + var d = this.p.byteLength(); + if ( + (4 === b[0] || 6 === b[0] || 7 === b[0]) && + b.length - 1 === 2 * d + ) { + 6 === b[0] + ? i(b[b.length - 1] % 2 === 0) + : 7 === b[0] && i(b[b.length - 1] % 2 === 1); + var e = this.point( + b.slice(1, 1 + d), + b.slice(1 + d, 1 + 2 * d) + ); + return e; + } + if ((2 === b[0] || 3 === b[0]) && b.length - 1 === d) + return this.pointFromX(b.slice(1, 1 + d), 3 === b[0]); + throw new Error('Unknown point format'); + }), + (k.prototype.encodeCompressed = function(b) { + return this.encode(b, !0); + }), + (k.prototype._encode = function(b) { + var c = this.curve.p.byteLength(), + d = this.getX().toArray('be', c); + return b + ? [this.getY().isEven() ? 2 : 3].concat(d) + : [4].concat(d, this.getY().toArray('be', c)); + }), + (k.prototype.encode = function(b, c) { + return f.encode(this._encode(c), b); + }), + (k.prototype.precompute = function(b) { + if (this.precomputed) return this; + var c = { doubles: null, naf: null, beta: null }; + return ( + (c.naf = this._getNAFPoints(8)), + (c.doubles = this._getDoubles(4, b)), + (c.beta = this._getBeta()), + (this.precomputed = c), + this + ); + }), + (k.prototype._hasDoubles = function(b) { + if (!this.precomputed) return !1; + var c = this.precomputed.doubles; + return ( + !!c && + c.points.length >= Math.ceil((b.bitLength() + 1) / c.step) + ); + }), + (k.prototype._getDoubles = function(b, c) { + if (this.precomputed && this.precomputed.doubles) + return this.precomputed.doubles; + for (var d = [this], e = this, f = 0; f < c; f += b) { + for (var g = 0; g < b; g++) e = e.dbl(); + d.push(e); + } + return { step: b, points: d }; + }), + (k.prototype._getNAFPoints = function(b) { + if (this.precomputed && this.precomputed.naf) + return this.precomputed.naf; + for ( + var c = [this], + d = (1 << b) - 1, + e = 1 === d ? null : this.dbl(), + f = 1; + f < d; + f++ + ) + c[f] = c[f - 1].add(e); + return { wnd: b, points: c }; + }), + (k.prototype._getBeta = function() { + return null; + }), + (k.prototype.dblp = function(b) { + for (var c = this, d = 0; d < b; d++) c = c.dbl(); + return c; + }); + }, + { '../../elliptic': 2, 'bn.js': 1 } + ], + 4: [ + function(a, b, c) { + 'use strict'; + function j(a) { + (this.twisted = 1 !== (0 | a.a)), + (this.mOneA = this.twisted && (0 | a.a) === -1), + (this.extended = this.mOneA), + h.call(this, 'edwards', a), + (this.a = new f(a.a, 16).umod(this.red.m)), + (this.a = this.a.toRed(this.red)), + (this.c = new f(a.c, 16).toRed(this.red)), + (this.c2 = this.c.redSqr()), + (this.d = new f(a.d, 16).toRed(this.red)), + (this.dd = this.d.redAdd(this.d)), + i(!this.twisted || 0 === this.c.fromRed().cmpn(1)), + (this.oneC = 1 === (0 | a.c)); + } + function k(a, b, c, d, e) { + h.BasePoint.call(this, a, 'projective'), + null === b && null === c && null === d + ? ((this.x = this.curve.zero), + (this.y = this.curve.one), + (this.z = this.curve.one), + (this.t = this.curve.zero), + (this.zOne = !0)) + : ((this.x = new f(b, 16)), + (this.y = new f(c, 16)), + (this.z = d ? new f(d, 16) : this.curve.one), + (this.t = e && new f(e, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + this.t && + !this.t.red && + (this.t = this.t.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one), + this.curve.extended && + !this.t && + ((this.t = this.x.redMul(this.y)), + this.zOne || (this.t = this.t.redMul(this.z.redInvm())))); + } + var d = a('../curve'), + e = a('../../elliptic'), + f = a('bn.js'), + g = a('inherits'), + h = d.base, + i = e.utils.assert; + g(j, h), + (b.exports = j), + (j.prototype._mulA = function(b) { + return this.mOneA ? b.redNeg() : this.a.redMul(b); + }), + (j.prototype._mulC = function(b) { + return this.oneC ? b : this.c.redMul(b); + }), + (j.prototype.jpoint = function(b, c, d, e) { + return this.point(b, c, d, e); + }), + (j.prototype.pointFromX = function(b, c) { + (b = new f(b, 16)), b.red || (b = b.toRed(this.red)); + var d = b.redSqr(), + e = this.c2.redSub(this.a.redMul(d)), + g = this.one.redSub(this.c2.redMul(this.d).redMul(d)), + h = e.redMul(g.redInvm()), + i = h.redSqrt(); + if ( + 0 !== + i + .redSqr() + .redSub(h) + .cmp(this.zero) + ) + throw new Error('invalid point'); + var j = i.fromRed().isOdd(); + return ( + ((c && !j) || (!c && j)) && (i = i.redNeg()), this.point(b, i) + ); + }), + (j.prototype.pointFromY = function(b, c) { + (b = new f(b, 16)), b.red || (b = b.toRed(this.red)); + var d = b.redSqr(), + e = d.redSub(this.one), + g = d.redMul(this.d).redAdd(this.one), + h = e.redMul(g.redInvm()); + if (0 === h.cmp(this.zero)) { + if (c) throw new Error('invalid point'); + return this.point(this.zero, b); + } + var i = h.redSqrt(); + if ( + 0 !== + i + .redSqr() + .redSub(h) + .cmp(this.zero) + ) + throw new Error('invalid point'); + return i.isOdd() !== c && (i = i.redNeg()), this.point(i, b); + }), + (j.prototype.validate = function(b) { + if (b.isInfinity()) return !0; + b.normalize(); + var c = b.x.redSqr(), + d = b.y.redSqr(), + e = c.redMul(this.a).redAdd(d), + f = this.c2.redMul(this.one.redAdd(this.d.redMul(c).redMul(d))); + return 0 === e.cmp(f); + }), + g(k, h.BasePoint), + (j.prototype.pointFromJSON = function(b) { + return k.fromJSON(this, b); + }), + (j.prototype.point = function(b, c, d, e) { + return new k(this, b, c, d, e); + }), + (k.fromJSON = function(b, c) { + return new k(b, c[0], c[1], c[2]); + }), + (k.prototype.inspect = function() { + return this.isInfinity() + ? '' + : ''; + }), + (k.prototype.isInfinity = function() { + return 0 === this.x.cmpn(0) && 0 === this.y.cmp(this.z); + }), + (k.prototype._extDbl = function() { + var b = this.x.redSqr(), + c = this.y.redSqr(), + d = this.z.redSqr(); + d = d.redIAdd(d); + var e = this.curve._mulA(b), + f = this.x + .redAdd(this.y) + .redSqr() + .redISub(b) + .redISub(c), + g = e.redAdd(c), + h = g.redSub(d), + i = e.redSub(c), + j = f.redMul(h), + k = g.redMul(i), + l = f.redMul(i), + m = h.redMul(g); + return this.curve.point(j, k, m, l); + }), + (k.prototype._projDbl = function() { + var e, + f, + g, + b = this.x.redAdd(this.y).redSqr(), + c = this.x.redSqr(), + d = this.y.redSqr(); + if (this.curve.twisted) { + var h = this.curve._mulA(c), + i = h.redAdd(d); + if (this.zOne) + (e = b + .redSub(c) + .redSub(d) + .redMul(i.redSub(this.curve.two))), + (f = i.redMul(h.redSub(d))), + (g = i + .redSqr() + .redSub(i) + .redSub(i)); + else { + var j = this.z.redSqr(), + k = i.redSub(j).redISub(j); + (e = b + .redSub(c) + .redISub(d) + .redMul(k)), + (f = i.redMul(h.redSub(d))), + (g = i.redMul(k)); + } + } else { + var h = c.redAdd(d), + j = this.curve._mulC(this.c.redMul(this.z)).redSqr(), + k = h.redSub(j).redSub(j); + (e = this.curve._mulC(b.redISub(h)).redMul(k)), + (f = this.curve._mulC(h).redMul(c.redISub(d))), + (g = h.redMul(k)); + } + return this.curve.point(e, f, g); + }), + (k.prototype.dbl = function() { + return this.isInfinity() + ? this + : this.curve.extended + ? this._extDbl() + : this._projDbl(); + }), + (k.prototype._extAdd = function(b) { + var c = this.y.redSub(this.x).redMul(b.y.redSub(b.x)), + d = this.y.redAdd(this.x).redMul(b.y.redAdd(b.x)), + e = this.t.redMul(this.curve.dd).redMul(b.t), + f = this.z.redMul(b.z.redAdd(b.z)), + g = d.redSub(c), + h = f.redSub(e), + i = f.redAdd(e), + j = d.redAdd(c), + k = g.redMul(h), + l = i.redMul(j), + m = g.redMul(j), + n = h.redMul(i); + return this.curve.point(k, l, n, m); + }), + (k.prototype._projAdd = function(b) { + var l, + m, + c = this.z.redMul(b.z), + d = c.redSqr(), + e = this.x.redMul(b.x), + f = this.y.redMul(b.y), + g = this.curve.d.redMul(e).redMul(f), + h = d.redSub(g), + i = d.redAdd(g), + j = this.x + .redAdd(this.y) + .redMul(b.x.redAdd(b.y)) + .redISub(e) + .redISub(f), + k = c.redMul(h).redMul(j); + return ( + this.curve.twisted + ? ((l = c.redMul(i).redMul(f.redSub(this.curve._mulA(e)))), + (m = h.redMul(i))) + : ((l = c.redMul(i).redMul(f.redSub(e))), + (m = this.curve._mulC(h).redMul(i))), + this.curve.point(k, l, m) + ); + }), + (k.prototype.add = function(b) { + return this.isInfinity() + ? b + : b.isInfinity() + ? this + : this.curve.extended + ? this._extAdd(b) + : this._projAdd(b); + }), + (k.prototype.mul = function(b) { + return this._hasDoubles(b) + ? this.curve._fixedNafMul(this, b) + : this.curve._wnafMul(this, b); + }), + (k.prototype.mulAdd = function(b, c, d) { + return this.curve._wnafMulAdd(1, [this, c], [b, d], 2, !1); + }), + (k.prototype.jmulAdd = function(b, c, d) { + return this.curve._wnafMulAdd(1, [this, c], [b, d], 2, !0); + }), + (k.prototype.normalize = function() { + if (this.zOne) return this; + var b = this.z.redInvm(); + return ( + (this.x = this.x.redMul(b)), + (this.y = this.y.redMul(b)), + this.t && (this.t = this.t.redMul(b)), + (this.z = this.curve.one), + (this.zOne = !0), + this + ); + }), + (k.prototype.neg = function() { + return this.curve.point( + this.x.redNeg(), + this.y, + this.z, + this.t && this.t.redNeg() + ); + }), + (k.prototype.getX = function() { + return this.normalize(), this.x.fromRed(); + }), + (k.prototype.getY = function() { + return this.normalize(), this.y.fromRed(); + }), + (k.prototype.eq = function(b) { + return ( + this === b || + (0 === this.getX().cmp(b.getX()) && + 0 === this.getY().cmp(b.getY())) + ); + }), + (k.prototype.eqXToP = function(b) { + var c = b.toRed(this.curve.red).redMul(this.z); + if (0 === this.x.cmp(c)) return !0; + for (var d = b.clone(), e = this.curve.redN.redMul(this.z); ; ) { + if ((d.iadd(this.curve.n), d.cmp(this.curve.p) >= 0)) return !1; + if ((c.redIAdd(e), 0 === this.x.cmp(c))) return !0; + } + return !1; + }), + (k.prototype.toP = k.prototype.normalize), + (k.prototype.mixedAdd = k.prototype.add); + }, + { '../../elliptic': 2, '../curve': 5, 'bn.js': 1, inherits: 25 } + ], + 5: [ + function(a, b, c) { + 'use strict'; + var d = c; + (d.base = a('./base')), + (d.short = a('./short')), + (d.mont = a('./mont')), + (d.edwards = a('./edwards')); + }, + { './base': 3, './edwards': 4, './mont': 6, './short': 7 } + ], + 6: [ + function(a, b, c) { + 'use strict'; + function j(a) { + g.call(this, 'mont', a), + (this.a = new e(a.a, 16).toRed(this.red)), + (this.b = new e(a.b, 16).toRed(this.red)), + (this.i4 = new e(4).toRed(this.red).redInvm()), + (this.two = new e(2).toRed(this.red)), + (this.a24 = this.i4.redMul(this.a.redAdd(this.two))); + } + function k(a, b, c) { + g.BasePoint.call(this, a, 'projective'), + null === b && null === c + ? ((this.x = this.curve.one), (this.z = this.curve.zero)) + : ((this.x = new e(b, 16)), + (this.z = new e(c, 16)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red))); + } + var d = a('../curve'), + e = a('bn.js'), + f = a('inherits'), + g = d.base, + h = a('../../elliptic'), + i = h.utils; + f(j, g), + (b.exports = j), + (j.prototype.validate = function(b) { + var c = b.normalize().x, + d = c.redSqr(), + e = d + .redMul(c) + .redAdd(d.redMul(this.a)) + .redAdd(c), + f = e.redSqrt(); + return 0 === f.redSqr().cmp(e); + }), + f(k, g.BasePoint), + (j.prototype.decodePoint = function(b, c) { + return this.point(i.toArray(b, c), 1); + }), + (j.prototype.point = function(b, c) { + return new k(this, b, c); + }), + (j.prototype.pointFromJSON = function(b) { + return k.fromJSON(this, b); + }), + (k.prototype.precompute = function() {}), + (k.prototype._encode = function() { + return this.getX().toArray('be', this.curve.p.byteLength()); + }), + (k.fromJSON = function(b, c) { + return new k(b, c[0], c[1] || b.one); + }), + (k.prototype.inspect = function() { + return this.isInfinity() + ? '' + : ''; + }), + (k.prototype.isInfinity = function() { + return 0 === this.z.cmpn(0); + }), + (k.prototype.dbl = function() { + var b = this.x.redAdd(this.z), + c = b.redSqr(), + d = this.x.redSub(this.z), + e = d.redSqr(), + f = c.redSub(e), + g = c.redMul(e), + h = f.redMul(e.redAdd(this.curve.a24.redMul(f))); + return this.curve.point(g, h); + }), + (k.prototype.add = function() { + throw new Error('Not supported on Montgomery curve'); + }), + (k.prototype.diffAdd = function(b, c) { + var d = this.x.redAdd(this.z), + e = this.x.redSub(this.z), + f = b.x.redAdd(b.z), + g = b.x.redSub(b.z), + h = g.redMul(d), + i = f.redMul(e), + j = c.z.redMul(h.redAdd(i).redSqr()), + k = c.x.redMul(h.redISub(i).redSqr()); + return this.curve.point(j, k); + }), + (k.prototype.mul = function(b) { + for ( + var c = b.clone(), + d = this, + e = this.curve.point(null, null), + f = this, + g = []; + 0 !== c.cmpn(0); + c.iushrn(1) + ) + g.push(c.andln(1)); + for (var h = g.length - 1; h >= 0; h--) + 0 === g[h] + ? ((d = d.diffAdd(e, f)), (e = e.dbl())) + : ((e = d.diffAdd(e, f)), (d = d.dbl())); + return e; + }), + (k.prototype.mulAdd = function() { + throw new Error('Not supported on Montgomery curve'); + }), + (k.prototype.jumlAdd = function() { + throw new Error('Not supported on Montgomery curve'); + }), + (k.prototype.eq = function(b) { + return 0 === this.getX().cmp(b.getX()); + }), + (k.prototype.normalize = function() { + return ( + (this.x = this.x.redMul(this.z.redInvm())), + (this.z = this.curve.one), + this + ); + }), + (k.prototype.getX = function() { + return this.normalize(), this.x.fromRed(); + }); + }, + { '../../elliptic': 2, '../curve': 5, 'bn.js': 1, inherits: 25 } + ], + 7: [ + function(a, b, c) { + 'use strict'; + function j(a) { + h.call(this, 'short', a), + (this.a = new f(a.a, 16).toRed(this.red)), + (this.b = new f(a.b, 16).toRed(this.red)), + (this.tinv = this.two.redInvm()), + (this.zeroA = 0 === this.a.fromRed().cmpn(0)), + (this.threeA = + 0 === + this.a + .fromRed() + .sub(this.p) + .cmpn(-3)), + (this.endo = this._getEndomorphism(a)), + (this._endoWnafT1 = new Array(4)), + (this._endoWnafT2 = new Array(4)); + } + function k(a, b, c, d) { + h.BasePoint.call(this, a, 'affine'), + null === b && null === c + ? ((this.x = null), (this.y = null), (this.inf = !0)) + : ((this.x = new f(b, 16)), + (this.y = new f(c, 16)), + d && + (this.x.forceRed(this.curve.red), + this.y.forceRed(this.curve.red)), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + (this.inf = !1)); + } + function l(a, b, c, d) { + h.BasePoint.call(this, a, 'jacobian'), + null === b && null === c && null === d + ? ((this.x = this.curve.one), + (this.y = this.curve.one), + (this.z = new f(0))) + : ((this.x = new f(b, 16)), + (this.y = new f(c, 16)), + (this.z = new f(d, 16))), + this.x.red || (this.x = this.x.toRed(this.curve.red)), + this.y.red || (this.y = this.y.toRed(this.curve.red)), + this.z.red || (this.z = this.z.toRed(this.curve.red)), + (this.zOne = this.z === this.curve.one); + } + var d = a('../curve'), + e = a('../../elliptic'), + f = a('bn.js'), + g = a('inherits'), + h = d.base, + i = e.utils.assert; + g(j, h), + (b.exports = j), + (j.prototype._getEndomorphism = function(b) { + if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { + var c, d; + if (b.beta) c = new f(b.beta, 16).toRed(this.red); + else { + var e = this._getEndoRoots(this.p); + (c = e[0].cmp(e[1]) < 0 ? e[0] : e[1]), + (c = c.toRed(this.red)); + } + if (b.lambda) d = new f(b.lambda, 16); + else { + var g = this._getEndoRoots(this.n); + 0 === this.g.mul(g[0]).x.cmp(this.g.x.redMul(c)) + ? (d = g[0]) + : ((d = g[1]), + i(0 === this.g.mul(d).x.cmp(this.g.x.redMul(c)))); + } + var h; + return ( + (h = b.basis + ? b.basis.map(function(a) { + return { a: new f(a.a, 16), b: new f(a.b, 16) }; + }) + : this._getEndoBasis(d)), + { beta: c, lambda: d, basis: h } + ); + } + }), + (j.prototype._getEndoRoots = function(b) { + var c = b === this.p ? this.red : f.mont(b), + d = new f(2).toRed(c).redInvm(), + e = d.redNeg(), + g = new f(3) + .toRed(c) + .redNeg() + .redSqrt() + .redMul(d), + h = e.redAdd(g).fromRed(), + i = e.redSub(g).fromRed(); + return [h, i]; + }), + (j.prototype._getEndoBasis = function(b) { + for ( + var k, + l, + m, + n, + o, + p, + q, + s, + t, + c = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), + d = b, + e = this.n.clone(), + g = new f(1), + h = new f(0), + i = new f(0), + j = new f(1), + r = 0; + 0 !== d.cmpn(0); + + ) { + var u = e.div(d); + (s = e.sub(u.mul(d))), (t = i.sub(u.mul(g))); + var v = j.sub(u.mul(h)); + if (!m && s.cmp(c) < 0) + (k = q.neg()), (l = g), (m = s.neg()), (n = t); + else if (m && 2 === ++r) break; + (q = s), (e = d), (d = s), (i = g), (g = t), (j = h), (h = v); + } + (o = s.neg()), (p = t); + var w = m.sqr().add(n.sqr()), + x = o.sqr().add(p.sqr()); + return ( + x.cmp(w) >= 0 && ((o = k), (p = l)), + m.negative && ((m = m.neg()), (n = n.neg())), + o.negative && ((o = o.neg()), (p = p.neg())), + [{ a: m, b: n }, { a: o, b: p }] + ); + }), + (j.prototype._endoSplit = function(b) { + var c = this.endo.basis, + d = c[0], + e = c[1], + f = e.b.mul(b).divRound(this.n), + g = d.b + .neg() + .mul(b) + .divRound(this.n), + h = f.mul(d.a), + i = g.mul(e.a), + j = f.mul(d.b), + k = g.mul(e.b), + l = b.sub(h).sub(i), + m = j.add(k).neg(); + return { k1: l, k2: m }; + }), + (j.prototype.pointFromX = function(b, c) { + (b = new f(b, 16)), b.red || (b = b.toRed(this.red)); + var d = b + .redSqr() + .redMul(b) + .redIAdd(b.redMul(this.a)) + .redIAdd(this.b), + e = d.redSqrt(); + if ( + 0 !== + e + .redSqr() + .redSub(d) + .cmp(this.zero) + ) + throw new Error('invalid point'); + var g = e.fromRed().isOdd(); + return ( + ((c && !g) || (!c && g)) && (e = e.redNeg()), this.point(b, e) + ); + }), + (j.prototype.validate = function(b) { + if (b.inf) return !0; + var c = b.x, + d = b.y, + e = this.a.redMul(c), + f = c + .redSqr() + .redMul(c) + .redIAdd(e) + .redIAdd(this.b); + return ( + 0 === + d + .redSqr() + .redISub(f) + .cmpn(0) + ); + }), + (j.prototype._endoWnafMulAdd = function(b, c, d) { + for ( + var e = this._endoWnafT1, f = this._endoWnafT2, g = 0; + g < b.length; + g++ + ) { + var h = this._endoSplit(c[g]), + i = b[g], + j = i._getBeta(); + h.k1.negative && (h.k1.ineg(), (i = i.neg(!0))), + h.k2.negative && (h.k2.ineg(), (j = j.neg(!0))), + (e[2 * g] = i), + (e[2 * g + 1] = j), + (f[2 * g] = h.k1), + (f[2 * g + 1] = h.k2); + } + for ( + var k = this._wnafMulAdd(1, e, f, 2 * g, d), l = 0; + l < 2 * g; + l++ + ) + (e[l] = null), (f[l] = null); + return k; + }), + g(k, h.BasePoint), + (j.prototype.point = function(b, c, d) { + return new k(this, b, c, d); + }), + (j.prototype.pointFromJSON = function(b, c) { + return k.fromJSON(this, b, c); + }), + (k.prototype._getBeta = function() { + if (this.curve.endo) { + var b = this.precomputed; + if (b && b.beta) return b.beta; + var c = this.curve.point( + this.x.redMul(this.curve.endo.beta), + this.y + ); + if (b) { + var d = this.curve, + e = function(a) { + return d.point(a.x.redMul(d.endo.beta), a.y); + }; + (b.beta = c), + (c.precomputed = { + beta: null, + naf: b.naf && { + wnd: b.naf.wnd, + points: b.naf.points.map(e) + }, + doubles: b.doubles && { + step: b.doubles.step, + points: b.doubles.points.map(e) + } + }); + } + return c; + } + }), + (k.prototype.toJSON = function() { + return this.precomputed + ? [ + this.x, + this.y, + this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1) + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1) + } + } + ] + : [this.x, this.y]; + }), + (k.fromJSON = function(b, c, d) { + function f(a) { + return b.point(a[0], a[1], d); + } + 'string' == typeof c && (c = JSON.parse(c)); + var e = b.point(c[0], c[1], d); + if (!c[2]) return e; + var g = c[2]; + return ( + (e.precomputed = { + beta: null, + doubles: g.doubles && { + step: g.doubles.step, + points: [e].concat(g.doubles.points.map(f)) + }, + naf: g.naf && { + wnd: g.naf.wnd, + points: [e].concat(g.naf.points.map(f)) + } + }), + e + ); + }), + (k.prototype.inspect = function() { + return this.isInfinity() + ? '' + : ''; + }), + (k.prototype.isInfinity = function() { + return this.inf; + }), + (k.prototype.add = function(b) { + if (this.inf) return b; + if (b.inf) return this; + if (this.eq(b)) return this.dbl(); + if (this.neg().eq(b)) return this.curve.point(null, null); + if (0 === this.x.cmp(b.x)) return this.curve.point(null, null); + var c = this.y.redSub(b.y); + 0 !== c.cmpn(0) && (c = c.redMul(this.x.redSub(b.x).redInvm())); + var d = c + .redSqr() + .redISub(this.x) + .redISub(b.x), + e = c.redMul(this.x.redSub(d)).redISub(this.y); + return this.curve.point(d, e); + }), + (k.prototype.dbl = function() { + if (this.inf) return this; + var b = this.y.redAdd(this.y); + if (0 === b.cmpn(0)) return this.curve.point(null, null); + var c = this.curve.a, + d = this.x.redSqr(), + e = b.redInvm(), + f = d + .redAdd(d) + .redIAdd(d) + .redIAdd(c) + .redMul(e), + g = f.redSqr().redISub(this.x.redAdd(this.x)), + h = f.redMul(this.x.redSub(g)).redISub(this.y); + return this.curve.point(g, h); + }), + (k.prototype.getX = function() { + return this.x.fromRed(); + }), + (k.prototype.getY = function() { + return this.y.fromRed(); + }), + (k.prototype.mul = function(b) { + return ( + (b = new f(b, 16)), + this._hasDoubles(b) + ? this.curve._fixedNafMul(this, b) + : this.curve.endo + ? this.curve._endoWnafMulAdd([this], [b]) + : this.curve._wnafMul(this, b) + ); + }), + (k.prototype.mulAdd = function(b, c, d) { + var e = [this, c], + f = [b, d]; + return this.curve.endo + ? this.curve._endoWnafMulAdd(e, f) + : this.curve._wnafMulAdd(1, e, f, 2); + }), + (k.prototype.jmulAdd = function(b, c, d) { + var e = [this, c], + f = [b, d]; + return this.curve.endo + ? this.curve._endoWnafMulAdd(e, f, !0) + : this.curve._wnafMulAdd(1, e, f, 2, !0); + }), + (k.prototype.eq = function(b) { + return ( + this === b || + (this.inf === b.inf && + (this.inf || + (0 === this.x.cmp(b.x) && 0 === this.y.cmp(b.y)))) + ); + }), + (k.prototype.neg = function(b) { + if (this.inf) return this; + var c = this.curve.point(this.x, this.y.redNeg()); + if (b && this.precomputed) { + var d = this.precomputed, + e = function(a) { + return a.neg(); + }; + c.precomputed = { + naf: d.naf && { wnd: d.naf.wnd, points: d.naf.points.map(e) }, + doubles: d.doubles && { + step: d.doubles.step, + points: d.doubles.points.map(e) + } + }; + } + return c; + }), + (k.prototype.toJ = function() { + if (this.inf) return this.curve.jpoint(null, null, null); + var b = this.curve.jpoint(this.x, this.y, this.curve.one); + return b; + }), + g(l, h.BasePoint), + (j.prototype.jpoint = function(b, c, d) { + return new l(this, b, c, d); + }), + (l.prototype.toP = function() { + if (this.isInfinity()) return this.curve.point(null, null); + var b = this.z.redInvm(), + c = b.redSqr(), + d = this.x.redMul(c), + e = this.y.redMul(c).redMul(b); + return this.curve.point(d, e); + }), + (l.prototype.neg = function() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); + }), + (l.prototype.add = function(b) { + if (this.isInfinity()) return b; + if (b.isInfinity()) return this; + var c = b.z.redSqr(), + d = this.z.redSqr(), + e = this.x.redMul(c), + f = b.x.redMul(d), + g = this.y.redMul(c.redMul(b.z)), + h = b.y.redMul(d.redMul(this.z)), + i = e.redSub(f), + j = g.redSub(h); + if (0 === i.cmpn(0)) + return 0 !== j.cmpn(0) + ? this.curve.jpoint(null, null, null) + : this.dbl(); + var k = i.redSqr(), + l = k.redMul(i), + m = e.redMul(k), + n = j + .redSqr() + .redIAdd(l) + .redISub(m) + .redISub(m), + o = j.redMul(m.redISub(n)).redISub(g.redMul(l)), + p = this.z.redMul(b.z).redMul(i); + return this.curve.jpoint(n, o, p); + }), + (l.prototype.mixedAdd = function(b) { + if (this.isInfinity()) return b.toJ(); + if (b.isInfinity()) return this; + var c = this.z.redSqr(), + d = this.x, + e = b.x.redMul(c), + f = this.y, + g = b.y.redMul(c).redMul(this.z), + h = d.redSub(e), + i = f.redSub(g); + if (0 === h.cmpn(0)) + return 0 !== i.cmpn(0) + ? this.curve.jpoint(null, null, null) + : this.dbl(); + var j = h.redSqr(), + k = j.redMul(h), + l = d.redMul(j), + m = i + .redSqr() + .redIAdd(k) + .redISub(l) + .redISub(l), + n = i.redMul(l.redISub(m)).redISub(f.redMul(k)), + o = this.z.redMul(h); + return this.curve.jpoint(m, n, o); + }), + (l.prototype.dblp = function(b) { + if (0 === b) return this; + if (this.isInfinity()) return this; + if (!b) return this.dbl(); + if (this.curve.zeroA || this.curve.threeA) { + for (var c = this, d = 0; d < b; d++) c = c.dbl(); + return c; + } + for ( + var e = this.curve.a, + f = this.curve.tinv, + g = this.x, + h = this.y, + i = this.z, + j = i.redSqr().redSqr(), + k = h.redAdd(h), + d = 0; + d < b; + d++ + ) { + var l = g.redSqr(), + m = k.redSqr(), + n = m.redSqr(), + o = l + .redAdd(l) + .redIAdd(l) + .redIAdd(e.redMul(j)), + p = g.redMul(m), + q = o.redSqr().redISub(p.redAdd(p)), + r = p.redISub(q), + s = o.redMul(r); + s = s.redIAdd(s).redISub(n); + var t = k.redMul(i); + d + 1 < b && (j = j.redMul(n)), (g = q), (i = t), (k = s); + } + return this.curve.jpoint(g, k.redMul(f), i); + }), + (l.prototype.dbl = function() { + return this.isInfinity() + ? this + : this.curve.zeroA + ? this._zeroDbl() + : this.curve.threeA + ? this._threeDbl() + : this._dbl(); + }), + (l.prototype._zeroDbl = function() { + var b, c, d; + if (this.zOne) { + var e = this.x.redSqr(), + f = this.y.redSqr(), + g = f.redSqr(), + h = this.x + .redAdd(f) + .redSqr() + .redISub(e) + .redISub(g); + h = h.redIAdd(h); + var i = e.redAdd(e).redIAdd(e), + j = i + .redSqr() + .redISub(h) + .redISub(h), + k = g.redIAdd(g); + (k = k.redIAdd(k)), + (k = k.redIAdd(k)), + (b = j), + (c = i.redMul(h.redISub(j)).redISub(k)), + (d = this.y.redAdd(this.y)); + } else { + var l = this.x.redSqr(), + m = this.y.redSqr(), + n = m.redSqr(), + o = this.x + .redAdd(m) + .redSqr() + .redISub(l) + .redISub(n); + o = o.redIAdd(o); + var p = l.redAdd(l).redIAdd(l), + q = p.redSqr(), + r = n.redIAdd(n); + (r = r.redIAdd(r)), + (r = r.redIAdd(r)), + (b = q.redISub(o).redISub(o)), + (c = p.redMul(o.redISub(b)).redISub(r)), + (d = this.y.redMul(this.z)), + (d = d.redIAdd(d)); + } + return this.curve.jpoint(b, c, d); + }), + (l.prototype._threeDbl = function() { + var b, c, d; + if (this.zOne) { + var e = this.x.redSqr(), + f = this.y.redSqr(), + g = f.redSqr(), + h = this.x + .redAdd(f) + .redSqr() + .redISub(e) + .redISub(g); + h = h.redIAdd(h); + var i = e + .redAdd(e) + .redIAdd(e) + .redIAdd(this.curve.a), + j = i + .redSqr() + .redISub(h) + .redISub(h); + b = j; + var k = g.redIAdd(g); + (k = k.redIAdd(k)), + (k = k.redIAdd(k)), + (c = i.redMul(h.redISub(j)).redISub(k)), + (d = this.y.redAdd(this.y)); + } else { + var l = this.z.redSqr(), + m = this.y.redSqr(), + n = this.x.redMul(m), + o = this.x.redSub(l).redMul(this.x.redAdd(l)); + o = o.redAdd(o).redIAdd(o); + var p = n.redIAdd(n); + p = p.redIAdd(p); + var q = p.redAdd(p); + (b = o.redSqr().redISub(q)), + (d = this.y + .redAdd(this.z) + .redSqr() + .redISub(m) + .redISub(l)); + var r = m.redSqr(); + (r = r.redIAdd(r)), + (r = r.redIAdd(r)), + (r = r.redIAdd(r)), + (c = o.redMul(p.redISub(b)).redISub(r)); + } + return this.curve.jpoint(b, c, d); + }), + (l.prototype._dbl = function() { + var b = this.curve.a, + c = this.x, + d = this.y, + e = this.z, + f = e.redSqr().redSqr(), + g = c.redSqr(), + h = d.redSqr(), + i = g + .redAdd(g) + .redIAdd(g) + .redIAdd(b.redMul(f)), + j = c.redAdd(c); + j = j.redIAdd(j); + var k = j.redMul(h), + l = i.redSqr().redISub(k.redAdd(k)), + m = k.redISub(l), + n = h.redSqr(); + (n = n.redIAdd(n)), (n = n.redIAdd(n)), (n = n.redIAdd(n)); + var o = i.redMul(m).redISub(n), + p = d.redAdd(d).redMul(e); + return this.curve.jpoint(l, o, p); + }), + (l.prototype.trpl = function() { + if (!this.curve.zeroA) return this.dbl().add(this); + var b = this.x.redSqr(), + c = this.y.redSqr(), + d = this.z.redSqr(), + e = c.redSqr(), + f = b.redAdd(b).redIAdd(b), + g = f.redSqr(), + h = this.x + .redAdd(c) + .redSqr() + .redISub(b) + .redISub(e); + (h = h.redIAdd(h)), + (h = h.redAdd(h).redIAdd(h)), + (h = h.redISub(g)); + var i = h.redSqr(), + j = e.redIAdd(e); + (j = j.redIAdd(j)), (j = j.redIAdd(j)), (j = j.redIAdd(j)); + var k = f + .redIAdd(h) + .redSqr() + .redISub(g) + .redISub(i) + .redISub(j), + l = c.redMul(k); + (l = l.redIAdd(l)), (l = l.redIAdd(l)); + var m = this.x.redMul(i).redISub(l); + (m = m.redIAdd(m)), (m = m.redIAdd(m)); + var n = this.y.redMul( + k.redMul(j.redISub(k)).redISub(h.redMul(i)) + ); + (n = n.redIAdd(n)), (n = n.redIAdd(n)), (n = n.redIAdd(n)); + var o = this.z + .redAdd(h) + .redSqr() + .redISub(d) + .redISub(i); + return this.curve.jpoint(m, n, o); + }), + (l.prototype.mul = function(b, c) { + return (b = new f(b, c)), this.curve._wnafMul(this, b); + }), + (l.prototype.eq = function(b) { + if ('affine' === b.type) return this.eq(b.toJ()); + if (this === b) return !0; + var c = this.z.redSqr(), + d = b.z.redSqr(); + if ( + 0 !== + this.x + .redMul(d) + .redISub(b.x.redMul(c)) + .cmpn(0) + ) + return !1; + var e = c.redMul(this.z), + f = d.redMul(b.z); + return ( + 0 === + this.y + .redMul(f) + .redISub(b.y.redMul(e)) + .cmpn(0) + ); + }), + (l.prototype.eqXToP = function(b) { + var c = this.z.redSqr(), + d = b.toRed(this.curve.red).redMul(c); + if (0 === this.x.cmp(d)) return !0; + for (var e = b.clone(), f = this.curve.redN.redMul(c); ; ) { + if ((e.iadd(this.curve.n), e.cmp(this.curve.p) >= 0)) return !1; + if ((d.redIAdd(f), 0 === this.x.cmp(d))) return !0; + } + return !1; + }), + (l.prototype.inspect = function() { + return this.isInfinity() + ? '' + : ''; + }), + (l.prototype.isInfinity = function() { + return 0 === this.z.cmpn(0); + }); + }, + { '../../elliptic': 2, '../curve': 5, 'bn.js': 1, inherits: 25 } + ], + 8: [ + function(a, b, c) { + 'use strict'; + function h(a) { + 'short' === a.type + ? (this.curve = new f.curve.short(a)) + : 'edwards' === a.type + ? (this.curve = new f.curve.edwards(a)) + : (this.curve = new f.curve.mont(a)), + (this.g = this.curve.g), + (this.n = this.curve.n), + (this.hash = a.hash), + g(this.g.validate(), 'Invalid curve'), + g(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); + } + function i(a, b) { + Object.defineProperty(d, a, { + configurable: !0, + enumerable: !0, + get: function() { + var c = new h(b); + return ( + Object.defineProperty(d, a, { + configurable: !0, + enumerable: !0, + value: c + }), + c + ); + } + }); + } + var d = c, + e = a('hash.js'), + f = a('../elliptic'), + g = f.utils.assert; + (d.PresetCurve = h), + i('p192', { + type: 'short', + prime: 'p192', + p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', + b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', + n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', + hash: e.sha256, + gRed: !1, + g: [ + '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', + '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811' + ] + }), + i('p224', { + type: 'short', + prime: 'p224', + p: + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', + a: + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', + b: + 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', + n: + 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', + hash: e.sha256, + gRed: !1, + g: [ + 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', + 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34' + ] + }), + i('p256', { + type: 'short', + prime: null, + p: + 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', + a: + 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', + b: + '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', + n: + 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', + hash: e.sha256, + gRed: !1, + g: [ + '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5' + ] + }), + i('p384', { + type: 'short', + prime: null, + p: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff', + a: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc', + b: + 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', + n: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', + hash: e.sha384, + gRed: !1, + g: [ + 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7', + '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f' + ] + }), + i('p521', { + type: 'short', + prime: null, + p: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff', + a: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc', + b: + '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', + n: + '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', + hash: e.sha512, + gRed: !1, + g: [ + '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', + '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650' + ] + }), + i('curve25519', { + type: 'mont', + prime: 'p25519', + p: + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '0', + n: + '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: e.sha256, + gRed: !1, + g: ['9'] + }), + i('ed25519', { + type: 'edwards', + prime: 'p25519', + p: + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + d: + '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: + '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: e.sha256, + gRed: !1, + g: [ + '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', + '6666666666666666666666666666666666666666666666666666666666666658' + ] + }); + var j; + try { + j = a('./precomputed/secp256k1'); + } catch (a) { + j = void 0; + } + i('secp256k1', { + type: 'short', + prime: 'k256', + p: + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', + a: '0', + b: '7', + n: + 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', + h: '1', + hash: e.sha256, + beta: + '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: + '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [ + { + a: '3086d221a7d46bcde86c90e49284eb15', + b: '-e4437ed6010e88286f547fa90abfe4c3' + }, + { + a: '114ca50f7a8e2f3f657c1108d9d44cfd8', + b: '3086d221a7d46bcde86c90e49284eb15' + } + ], + gRed: !1, + g: [ + '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', + '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', + j + ] + }); + }, + { '../elliptic': 2, './precomputed/secp256k1': 16, 'hash.js': 19 } + ], + 9: [ + function(a, b, c) { + 'use strict'; + function j(a) { + return this instanceof j + ? ('string' == typeof a && + (g(e.curves.hasOwnProperty(a), 'Unknown curve ' + a), + (a = e.curves[a])), + a instanceof e.curves.PresetCurve && (a = { curve: a }), + (this.curve = a.curve.curve), + (this.n = this.curve.n), + (this.nh = this.n.ushrn(1)), + (this.g = this.curve.g), + (this.g = a.curve.g), + this.g.precompute(a.curve.n.bitLength() + 1), + void (this.hash = a.hash || a.curve.hash)) + : new j(a); + } + var d = a('bn.js'), + e = a('../../elliptic'), + f = e.utils, + g = f.assert, + h = a('./key'), + i = a('./signature'); + (b.exports = j), + (j.prototype.keyPair = function(b) { + return new h(this, b); + }), + (j.prototype.keyFromPrivate = function(b, c) { + return h.fromPrivate(this, b, c); + }), + (j.prototype.keyFromPublic = function(b, c) { + return h.fromPublic(this, b, c); + }), + (j.prototype.genKeyPair = function(b) { + b || (b = {}); + for ( + var c = new e.hmacDRBG({ + hash: this.hash, + pers: b.pers, + entropy: b.entropy || e.rand(this.hash.hmacStrength), + nonce: this.n.toArray() + }), + f = this.n.byteLength(), + g = this.n.sub(new d(2)); + ; + + ) { + var h = new d(c.generate(f)); + if (!(h.cmp(g) > 0)) return h.iaddn(1), this.keyFromPrivate(h); + } + }), + (j.prototype._truncateToN = function(b, c) { + var d = 8 * b.byteLength() - this.n.bitLength(); + return ( + d > 0 && (b = b.ushrn(d)), + !c && b.cmp(this.n) >= 0 ? b.sub(this.n) : b + ); + }), + (j.prototype.sign = function(b, c, f, g) { + 'object' == typeof f && ((g = f), (f = null)), + g || (g = {}), + (c = this.keyFromPrivate(c, f)), + (b = this._truncateToN(new d(b, 16))); + for ( + var h = this.n.byteLength(), + j = c.getPrivate().toArray('be', h), + k = b.toArray('be', h), + l = new e.hmacDRBG({ + hash: this.hash, + entropy: j, + nonce: k, + pers: g.pers, + persEnc: g.persEnc + }), + m = this.n.sub(new d(1)), + n = 0; + !0; + n++ + ) { + var o = g.k ? g.k(n) : new d(l.generate(this.n.byteLength())); + if ( + ((o = this._truncateToN(o, !0)), + !(o.cmpn(1) <= 0 || o.cmp(m) >= 0)) + ) { + var p = this.g.mul(o); + if (!p.isInfinity()) { + var q = p.getX(), + r = q.umod(this.n); + if (0 !== r.cmpn(0)) { + var s = o.invm(this.n).mul(r.mul(c.getPrivate()).iadd(b)); + if (((s = s.umod(this.n)), 0 !== s.cmpn(0))) { + var t = + (p.getY().isOdd() ? 1 : 0) | (0 !== q.cmp(r) ? 2 : 0); + return ( + g.canonical && + s.cmp(this.nh) > 0 && + ((s = this.n.sub(s)), (t ^= 1)), + new i({ r: r, s: s, recoveryParam: t }) + ); + } + } + } + } + } + }), + (j.prototype.verify = function(b, c, e, f) { + (b = this._truncateToN(new d(b, 16))), + (e = this.keyFromPublic(e, f)), + (c = new i(c, 'hex')); + var g = c.r, + h = c.s; + if (g.cmpn(1) < 0 || g.cmp(this.n) >= 0) return !1; + if (h.cmpn(1) < 0 || h.cmp(this.n) >= 0) return !1; + var j = h.invm(this.n), + k = j.mul(b).umod(this.n), + l = j.mul(g).umod(this.n); + if (!this.curve._maxwellTrick) { + var m = this.g.mulAdd(k, e.getPublic(), l); + return ( + !m.isInfinity() && + 0 === + m + .getX() + .umod(this.n) + .cmp(g) + ); + } + var m = this.g.jmulAdd(k, e.getPublic(), l); + return !m.isInfinity() && m.eqXToP(g); + }), + (j.prototype.recoverPubKey = function(a, b, c, e) { + g((3 & c) === c, 'The recovery param is more than two bits'), + (b = new i(b, e)); + var f = this.n, + h = new d(a), + j = b.r, + k = b.s, + l = 1 & c, + m = c >> 1; + if (j.cmp(this.curve.p.umod(this.curve.n)) >= 0 && m) + throw new Error('Unable to find sencond key candinate'); + j = m + ? this.curve.pointFromX(j.add(this.curve.n), l) + : this.curve.pointFromX(j, l); + var n = b.r.invm(f), + o = f + .sub(h) + .mul(n) + .umod(f), + p = k.mul(n).umod(f); + return this.g.mulAdd(o, j, p); + }), + (j.prototype.getKeyRecoveryParam = function(a, b, c, d) { + if (((b = new i(b, d)), null !== b.recoveryParam)) + return b.recoveryParam; + for (var e = 0; e < 4; e++) { + var f; + try { + f = this.recoverPubKey(a, b, e); + } catch (a) { + continue; + } + if (f.eq(c)) return e; + } + throw new Error('Unable to find valid recovery factor'); + }); + }, + { '../../elliptic': 2, './key': 10, './signature': 11, 'bn.js': 1 } + ], + 10: [ + function(a, b, c) { + 'use strict'; + function e(a, b) { + (this.ec = a), + (this.priv = null), + (this.pub = null), + b.priv && this._importPrivate(b.priv, b.privEnc), + b.pub && this._importPublic(b.pub, b.pubEnc); + } + var d = a('bn.js'); + (b.exports = e), + (e.fromPublic = function(b, c, d) { + return c instanceof e ? c : new e(b, { pub: c, pubEnc: d }); + }), + (e.fromPrivate = function(b, c, d) { + return c instanceof e ? c : new e(b, { priv: c, privEnc: d }); + }), + (e.prototype.validate = function() { + var b = this.getPublic(); + return b.isInfinity() + ? { result: !1, reason: 'Invalid public key' } + : b.validate() + ? b.mul(this.ec.curve.n).isInfinity() + ? { result: !0, reason: null } + : { result: !1, reason: 'Public key * N != O' } + : { result: !1, reason: 'Public key is not a point' }; + }), + (e.prototype.getPublic = function(b, c) { + return ( + 'string' == typeof b && ((c = b), (b = null)), + this.pub || (this.pub = this.ec.g.mul(this.priv)), + c ? this.pub.encode(c, b) : this.pub + ); + }), + (e.prototype.getPrivate = function(b) { + return 'hex' === b ? this.priv.toString(16, 2) : this.priv; + }), + (e.prototype._importPrivate = function(b, c) { + (this.priv = new d(b, c || 16)), + (this.priv = this.priv.umod(this.ec.curve.n)); + }), + (e.prototype._importPublic = function(b, c) { + return b.x || b.y + ? void (this.pub = this.ec.curve.point(b.x, b.y)) + : void (this.pub = this.ec.curve.decodePoint(b, c)); + }), + (e.prototype.derive = function(b) { + return b.mul(this.priv).getX(); + }), + (e.prototype.sign = function(b, c, d) { + return this.ec.sign(b, this, c, d); + }), + (e.prototype.verify = function(b, c) { + return this.ec.verify(b, c, this); + }), + (e.prototype.inspect = function() { + return ( + '' + ); + }); + }, + { 'bn.js': 1 } + ], + 11: [ + function(a, b, c) { + 'use strict'; + function h(a, b) { + return a instanceof h + ? a + : void ( + this._importDER(a, b) || + (g(a.r && a.s, 'Signature without r or s'), + (this.r = new d(a.r, 16)), + (this.s = new d(a.s, 16)), + void 0 === a.recoveryParam + ? (this.recoveryParam = null) + : (this.recoveryParam = a.recoveryParam)) + ); + } + function i() { + this.place = 0; + } + function j(a, b) { + var c = a[b.place++]; + if (!(128 & c)) return c; + for (var d = 15 & c, e = 0, f = 0, g = b.place; f < d; f++, g++) + (e <<= 8), (e |= a[g]); + return (b.place = g), e; + } + function k(a) { + for ( + var b = 0, c = a.length - 1; + !a[b] && !(128 & a[b + 1]) && b < c; + + ) + b++; + return 0 === b ? a : a.slice(b); + } + function l(a, b) { + if (b < 128) return void a.push(b); + var c = 1 + ((Math.log(b) / Math.LN2) >>> 3); + for (a.push(128 | c); --c; ) a.push((b >>> (c << 3)) & 255); + a.push(b); + } + var d = a('bn.js'), + e = a('../../elliptic'), + f = e.utils, + g = f.assert; + (b.exports = h), + (h.prototype._importDER = function(b, c) { + b = f.toArray(b, c); + var e = new i(); + if (48 !== b[e.place++]) return !1; + var g = j(b, e); + if (g + e.place !== b.length) return !1; + if (2 !== b[e.place++]) return !1; + var h = j(b, e), + k = b.slice(e.place, h + e.place); + if (((e.place += h), 2 !== b[e.place++])) return !1; + var l = j(b, e); + if (b.length !== l + e.place) return !1; + var m = b.slice(e.place, l + e.place); + return ( + 0 === k[0] && 128 & k[1] && (k = k.slice(1)), + 0 === m[0] && 128 & m[1] && (m = m.slice(1)), + (this.r = new d(k)), + (this.s = new d(m)), + (this.recoveryParam = null), + !0 + ); + }), + (h.prototype.toDER = function(b) { + var c = this.r.toArray(), + d = this.s.toArray(); + for ( + 128 & c[0] && (c = [0].concat(c)), + 128 & d[0] && (d = [0].concat(d)), + c = k(c), + d = k(d); + !(d[0] || 128 & d[1]); + + ) + d = d.slice(1); + var e = [2]; + l(e, c.length), (e = e.concat(c)), e.push(2), l(e, d.length); + var g = e.concat(d), + h = [48]; + return l(h, g.length), (h = h.concat(g)), f.encode(h, b); + }); + }, + { '../../elliptic': 2, 'bn.js': 1 } + ], + 12: [ + function(a, b, c) { + 'use strict'; + function k(a) { + if ( + (g('ed25519' === a, 'only tested with ed25519 so far'), + !(this instanceof k)) + ) + return new k(a); + var a = e.curves[a].curve; + (this.curve = a), + (this.g = a.g), + this.g.precompute(a.n.bitLength() + 1), + (this.pointClass = a.point().constructor), + (this.encodingLength = Math.ceil(a.n.bitLength() / 8)), + (this.hash = d.sha512); + } + var d = a('hash.js'), + e = a('../../elliptic'), + f = e.utils, + g = f.assert, + h = f.parseBytes, + i = a('./key'), + j = a('./signature'); + (b.exports = k), + (k.prototype.sign = function(b, c) { + b = h(b); + var d = this.keyFromSecret(c), + e = this.hashInt(d.messagePrefix(), b), + f = this.g.mul(e), + g = this.encodePoint(f), + i = this.hashInt(g, d.pubBytes(), b).mul(d.priv()), + j = e.add(i).umod(this.curve.n); + return this.makeSignature({ R: f, S: j, Rencoded: g }); + }), + (k.prototype.verify = function(b, c, d) { + (b = h(b)), (c = this.makeSignature(c)); + var e = this.keyFromPublic(d), + f = this.hashInt(c.Rencoded(), e.pubBytes(), b), + g = this.g.mul(c.S()), + i = c.R().add(e.pub().mul(f)); + return i.eq(g); + }), + (k.prototype.hashInt = function() { + for (var b = this.hash(), c = 0; c < arguments.length; c++) + b.update(arguments[c]); + return f.intFromLE(b.digest()).umod(this.curve.n); + }), + (k.prototype.keyFromPublic = function(b) { + return i.fromPublic(this, b); + }), + (k.prototype.keyFromSecret = function(b) { + return i.fromSecret(this, b); + }), + (k.prototype.makeSignature = function(b) { + return b instanceof j ? b : new j(this, b); + }), + (k.prototype.encodePoint = function(b) { + var c = b.getY().toArray('le', this.encodingLength); + return ( + (c[this.encodingLength - 1] |= b.getX().isOdd() ? 128 : 0), c + ); + }), + (k.prototype.decodePoint = function(b) { + b = f.parseBytes(b); + var c = b.length - 1, + d = b.slice(0, c).concat(b[c] & -129), + e = 0 !== (128 & b[c]), + g = f.intFromLE(d); + return this.curve.pointFromY(g, e); + }), + (k.prototype.encodeInt = function(b) { + return b.toArray('le', this.encodingLength); + }), + (k.prototype.decodeInt = function(b) { + return f.intFromLE(b); + }), + (k.prototype.isPoint = function(b) { + return b instanceof this.pointClass; + }); + }, + { '../../elliptic': 2, './key': 13, './signature': 14, 'hash.js': 19 } + ], + 13: [ + function(a, b, c) { + 'use strict'; + function i(a, b) { + (this.eddsa = a), + (this._secret = g(b.secret)), + a.isPoint(b.pub) + ? (this._pub = b.pub) + : (this._pubBytes = g(b.pub)); + } + var d = a('../../elliptic'), + e = d.utils, + f = e.assert, + g = e.parseBytes, + h = e.cachedProperty; + (i.fromPublic = function(b, c) { + return c instanceof i ? c : new i(b, { pub: c }); + }), + (i.fromSecret = function(b, c) { + return c instanceof i ? c : new i(b, { secret: c }); + }), + (i.prototype.secret = function() { + return this._secret; + }), + h(i, 'pubBytes', function() { + return this.eddsa.encodePoint(this.pub()); + }), + h(i, 'pub', function() { + return this._pubBytes + ? this.eddsa.decodePoint(this._pubBytes) + : this.eddsa.g.mul(this.priv()); + }), + h(i, 'privBytes', function() { + var b = this.eddsa, + c = this.hash(), + d = b.encodingLength - 1, + e = c.slice(0, b.encodingLength); + return (e[0] &= 248), (e[d] &= 127), (e[d] |= 64), e; + }), + h(i, 'priv', function() { + return this.eddsa.decodeInt(this.privBytes()); + }), + h(i, 'hash', function() { + return this.eddsa + .hash() + .update(this.secret()) + .digest(); + }), + h(i, 'messagePrefix', function() { + return this.hash().slice(this.eddsa.encodingLength); + }), + (i.prototype.sign = function(b) { + return ( + f(this._secret, 'KeyPair can only verify'), + this.eddsa.sign(b, this) + ); + }), + (i.prototype.verify = function(b, c) { + return this.eddsa.verify(b, c, this); + }), + (i.prototype.getSecret = function(b) { + return ( + f(this._secret, 'KeyPair is public only'), + e.encode(this.secret(), b) + ); + }), + (i.prototype.getPublic = function(b) { + return e.encode(this.pubBytes(), b); + }), + (b.exports = i); + }, + { '../../elliptic': 2 } + ], + 14: [ + function(a, b, c) { + 'use strict'; + function j(a, b) { + (this.eddsa = a), + 'object' != typeof b && (b = i(b)), + Array.isArray(b) && + (b = { + R: b.slice(0, a.encodingLength), + S: b.slice(a.encodingLength) + }), + g(b.R && b.S, 'Signature without R or S'), + a.isPoint(b.R) && (this._R = b.R), + b.S instanceof d && (this._S = b.S), + (this._Rencoded = Array.isArray(b.R) ? b.R : b.Rencoded), + (this._Sencoded = Array.isArray(b.S) ? b.S : b.Sencoded); + } + var d = a('bn.js'), + e = a('../../elliptic'), + f = e.utils, + g = f.assert, + h = f.cachedProperty, + i = f.parseBytes; + h(j, 'S', function() { + return this.eddsa.decodeInt(this.Sencoded()); + }), + h(j, 'R', function() { + return this.eddsa.decodePoint(this.Rencoded()); + }), + h(j, 'Rencoded', function() { + return this.eddsa.encodePoint(this.R()); + }), + h(j, 'Sencoded', function() { + return this.eddsa.encodeInt(this.S()); + }), + (j.prototype.toBytes = function() { + return this.Rencoded().concat(this.Sencoded()); + }), + (j.prototype.toHex = function() { + return f.encode(this.toBytes(), 'hex').toUpperCase(); + }), + (b.exports = j); + }, + { '../../elliptic': 2, 'bn.js': 1 } + ], + 15: [ + function(a, b, c) { + 'use strict'; + function h(a) { + if (!(this instanceof h)) return new h(a); + (this.hash = a.hash), + (this.predResist = !!a.predResist), + (this.outLen = this.hash.outSize), + (this.minEntropy = a.minEntropy || this.hash.hmacStrength), + (this.reseed = null), + (this.reseedInterval = null), + (this.K = null), + (this.V = null); + var b = f.toArray(a.entropy, a.entropyEnc), + c = f.toArray(a.nonce, a.nonceEnc), + d = f.toArray(a.pers, a.persEnc); + g( + b.length >= this.minEntropy / 8, + 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' + ), + this._init(b, c, d); + } + var d = a('hash.js'), + e = a('../elliptic'), + f = e.utils, + g = f.assert; + (b.exports = h), + (h.prototype._init = function(b, c, d) { + var e = b.concat(c).concat(d); + (this.K = new Array(this.outLen / 8)), + (this.V = new Array(this.outLen / 8)); + for (var f = 0; f < this.V.length; f++) + (this.K[f] = 0), (this.V[f] = 1); + this._update(e), + (this.reseed = 1), + (this.reseedInterval = 281474976710656); + }), + (h.prototype._hmac = function() { + return new d.hmac(this.hash, this.K); + }), + (h.prototype._update = function(b) { + var c = this._hmac() + .update(this.V) + .update([0]); + b && (c = c.update(b)), + (this.K = c.digest()), + (this.V = this._hmac() + .update(this.V) + .digest()), + b && + ((this.K = this._hmac() + .update(this.V) + .update([1]) + .update(b) + .digest()), + (this.V = this._hmac() + .update(this.V) + .digest())); + }), + (h.prototype.reseed = function(b, c, d, e) { + 'string' != typeof c && ((e = d), (d = c), (c = null)), + (b = f.toBuffer(b, c)), + (d = f.toBuffer(d, e)), + g( + b.length >= this.minEntropy / 8, + 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits' + ), + this._update(b.concat(d || [])), + (this.reseed = 1); + }), + (h.prototype.generate = function(b, c, d, e) { + if (this.reseed > this.reseedInterval) + throw new Error('Reseed is required'); + 'string' != typeof c && ((e = d), (d = c), (c = null)), + d && ((d = f.toArray(d, e)), this._update(d)); + for (var g = []; g.length < b; ) + (this.V = this._hmac() + .update(this.V) + .digest()), + (g = g.concat(this.V)); + var h = g.slice(0, b); + return this._update(d), this.reseed++, f.encode(h, c); + }); + }, + { '../elliptic': 2, 'hash.js': 19 } + ], + 16: [ + function(a, b, c) { + b.exports = { + doubles: { + step: 4, + points: [ + [ + 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', + 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821' + ], + [ + '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', + '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf' + ], + [ + '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', + 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695' + ], + [ + '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', + '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9' + ], + [ + '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', + '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36' + ], + [ + '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', + '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f' + ], + [ + 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', + '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999' + ], + [ + '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', + 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09' + ], + [ + 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', + '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d' + ], + [ + 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', + 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088' + ], + [ + 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', + '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d' + ], + [ + '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', + '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8' + ], + [ + '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', + '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a' + ], + [ + '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', + '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453' + ], + [ + '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', + '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160' + ], + [ + '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', + '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0' + ], + [ + '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', + '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6' + ], + [ + '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', + '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589' + ], + [ + '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', + 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17' + ], + [ + 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', + '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda' + ], + [ + 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', + '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd' + ], + [ + '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', + '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2' + ], + [ + '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', + '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6' + ], + [ + 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', + '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f' + ], + [ + '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', + 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01' + ], + [ + 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', + '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3' + ], + [ + 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', + 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f' + ], + [ + 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', + '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7' + ], + [ + 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', + 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78' + ], + [ + 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', + '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1' + ], + [ + '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', + 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150' + ], + [ + '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', + '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82' + ], + [ + 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', + '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc' + ], + [ + '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', + 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b' + ], + [ + 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', + '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51' + ], + [ + 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', + '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45' + ], + [ + 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', + 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120' + ], + [ + '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', + '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84' + ], + [ + '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', + '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d' + ], + [ + '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', + 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d' + ], + [ + '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', + '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8' + ], + [ + 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', + '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8' + ], + [ + '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', + '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac' + ], + [ + '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', + 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f' + ], + [ + '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', + '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962' + ], + [ + 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', + '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907' + ], + [ + '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', + 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec' + ], + [ + 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', + 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d' + ], + [ + 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', + '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414' + ], + [ + '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', + 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd' + ], + [ + '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', + 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0' + ], + [ + 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', + '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811' + ], + [ + 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', + '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1' + ], + [ + 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', + '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c' + ], + [ + '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', + 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73' + ], + [ + '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', + '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd' + ], + [ + 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', + 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405' + ], + [ + '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', + 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589' + ], + [ + '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', + '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e' + ], + [ + '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', + '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27' + ], + [ + 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', + 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1' + ], + [ + '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', + '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482' + ], + [ + '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', + '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945' + ], + [ + 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', + '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573' + ], + [ + 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', + 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82' + ] + ] + }, + naf: { + wnd: 7, + points: [ + [ + 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', + '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672' + ], + [ + '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', + 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6' + ], + [ + '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', + '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da' + ], + [ + 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', + 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37' + ], + [ + '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', + 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b' + ], + [ + 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', + 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81' + ], + [ + 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', + '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58' + ], + [ + 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', + '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77' + ], + [ + '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', + '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a' + ], + [ + '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', + '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c' + ], + [ + '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', + '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67' + ], + [ + '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', + '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402' + ], + [ + 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', + 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55' + ], + [ + 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', + '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482' + ], + [ + '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', + 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82' + ], + [ + '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', + 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396' + ], + [ + '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', + '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49' + ], + [ + '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', + '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf' + ], + [ + '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', + '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a' + ], + [ + '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', + 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7' + ], + [ + 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', + 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933' + ], + [ + '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', + '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a' + ], + [ + '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', + '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6' + ], + [ + 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', + 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37' + ], + [ + '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', + '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e' + ], + [ + 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', + 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6' + ], + [ + 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', + 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476' + ], + [ + '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', + '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40' + ], + [ + '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', + '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61' + ], + [ + '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', + '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683' + ], + [ + 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', + '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5' + ], + [ + '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', + '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b' + ], + [ + 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', + '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417' + ], + [ + '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', + 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868' + ], + [ + '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', + 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a' + ], + [ + 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', + 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6' + ], + [ + '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', + '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996' + ], + [ + '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', + 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e' + ], + [ + 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', + 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d' + ], + [ + '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', + '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2' + ], + [ + '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', + 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e' + ], + [ + '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', + '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437' + ], + [ + '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', + 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311' + ], + [ + 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', + '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4' + ], + [ + '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', + '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575' + ], + [ + '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', + 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d' + ], + [ + '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', + 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d' + ], + [ + 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', + 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629' + ], + [ + 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', + 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06' + ], + [ + '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', + '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374' + ], + [ + '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', + '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee' + ], + [ + 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', + '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1' + ], + [ + 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', + 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b' + ], + [ + '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', + '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661' + ], + [ + '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', + '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6' + ], + [ + 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', + '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e' + ], + [ + '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', + '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d' + ], + [ + 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', + 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc' + ], + [ + '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', + 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4' + ], + [ + '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', + '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c' + ], + [ + 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', + '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b' + ], + [ + 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', + '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913' + ], + [ + '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', + '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154' + ], + [ + '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', + '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865' + ], + [ + '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', + 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc' + ], + [ + '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', + 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224' + ], + [ + '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', + '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e' + ], + [ + '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', + '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6' + ], + [ + '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', + '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511' + ], + [ + '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', + 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b' + ], + [ + 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', + 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2' + ], + [ + '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', + 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c' + ], + [ + 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', + '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3' + ], + [ + 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', + '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d' + ], + [ + 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', + '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700' + ], + [ + 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', + '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4' + ], + [ + '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', + 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196' + ], + [ + '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', + '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4' + ], + [ + '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', + 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257' + ], + [ + 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', + 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13' + ], + [ + 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', + '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096' + ], + [ + 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', + 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38' + ], + [ + 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', + '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f' + ], + [ + '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', + '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448' + ], + [ + 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', + '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a' + ], + [ + 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', + '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4' + ], + [ + '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', + '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437' + ], + [ + '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', + 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7' + ], + [ + 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', + '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d' + ], + [ + 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', + '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a' + ], + [ + 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', + '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54' + ], + [ + '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', + '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77' + ], + [ + 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', + 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517' + ], + [ + '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', + 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10' + ], + [ + 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', + 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125' + ], + [ + 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', + '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e' + ], + [ + '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', + 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1' + ], + [ + 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', + '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2' + ], + [ + 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', + '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423' + ], + [ + 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', + '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8' + ], + [ + '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', + 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758' + ], + [ + '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', + 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375' + ], + [ + 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', + '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d' + ], + [ + '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', + 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec' + ], + [ + '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', + '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0' + ], + [ + '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', + 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c' + ], + [ + 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', + 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4' + ], + [ + '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', + 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f' + ], + [ + '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', + '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649' + ], + [ + '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', + 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826' + ], + [ + '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', + '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5' + ], + [ + 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', + 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87' + ], + [ + '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', + '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b' + ], + [ + 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', + '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc' + ], + [ + '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', + '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c' + ], + [ + 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', + 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f' + ], + [ + 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', + '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a' + ], + [ + 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', + 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46' + ], + [ + '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', + 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f' + ], + [ + '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', + '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03' + ], + [ + '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', + 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08' + ], + [ + '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', + '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8' + ], + [ + '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', + '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373' + ], + [ + '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', + 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3' + ], + [ + '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', + '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8' + ], + [ + '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', + '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1' + ], + [ + '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', + '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9' + ] + ] + } + }; + }, + {} + ], + 17: [ + function(a, b, c) { + 'use strict'; + function f(a, b) { + if (Array.isArray(a)) return a.slice(); + if (!a) return []; + var c = []; + if ('string' != typeof a) { + for (var d = 0; d < a.length; d++) c[d] = 0 | a[d]; + return c; + } + if (b) { + if ('hex' === b) { + (a = a.replace(/[^a-z0-9]+/gi, '')), + a.length % 2 !== 0 && (a = '0' + a); + for (var d = 0; d < a.length; d += 2) + c.push(parseInt(a[d] + a[d + 1], 16)); + } + } else + for (var d = 0; d < a.length; d++) { + var e = a.charCodeAt(d), + f = e >> 8, + g = 255 & e; + f ? c.push(f, g) : c.push(g); + } + return c; + } + function g(a) { + return 1 === a.length ? '0' + a : a; + } + function h(a) { + for (var b = '', c = 0; c < a.length; c++) + b += g(a[c].toString(16)); + return b; + } + function i(a, b) { + for ( + var c = [], d = 1 << (b + 1), e = a.clone(); + e.cmpn(1) >= 0; + + ) { + var f; + if (e.isOdd()) { + var g = e.andln(d - 1); + (f = g > (d >> 1) - 1 ? (d >> 1) - g : g), e.isubn(f); + } else f = 0; + c.push(f); + for ( + var h = 0 !== e.cmpn(0) && 0 === e.andln(d - 1) ? b + 1 : 1, + i = 1; + i < h; + i++ + ) + c.push(0); + e.iushrn(h); + } + return c; + } + function j(a, b) { + var c = [[], []]; + (a = a.clone()), (b = b.clone()); + for (var d = 0, e = 0; a.cmpn(-d) > 0 || b.cmpn(-e) > 0; ) { + var f = (a.andln(3) + d) & 3, + g = (b.andln(3) + e) & 3; + 3 === f && (f = -1), 3 === g && (g = -1); + var h; + if (0 === (1 & f)) h = 0; + else { + var i = (a.andln(7) + d) & 7; + h = (3 !== i && 5 !== i) || 2 !== g ? f : -f; + } + c[0].push(h); + var j; + if (0 === (1 & g)) j = 0; + else { + var i = (b.andln(7) + e) & 7; + j = (3 !== i && 5 !== i) || 2 !== f ? g : -g; + } + c[1].push(j), + 2 * d === h + 1 && (d = 1 - d), + 2 * e === j + 1 && (e = 1 - e), + a.iushrn(1), + b.iushrn(1); + } + return c; + } + function k(a, b, c) { + var d = '_' + b; + a.prototype[b] = function() { + return void 0 !== this[d] ? this[d] : (this[d] = c.call(this)); + }; + } + function l(a) { + return 'string' == typeof a ? d.toArray(a, 'hex') : a; + } + function m(a) { + return new e(a, 'hex', 'le'); + } + var d = c, + e = a('bn.js'); + (d.assert = function(b, c) { + if (!b) throw new Error(c || 'Assertion failed'); + }), + (d.toArray = f), + (d.zero2 = g), + (d.toHex = h), + (d.encode = function(b, c) { + return 'hex' === c ? h(b) : b; + }), + (d.getNAF = i), + (d.getJSF = j), + (d.cachedProperty = k), + (d.parseBytes = l), + (d.intFromLE = m); + }, + { 'bn.js': 1 } + ], + 18: [ + function(a, b, c) { + function e(a) { + this.rand = a; + } + var d; + if ( + ((b.exports = function(b) { + return d || (d = new e(null)), d.generate(b); + }), + (b.exports.Rand = e), + (e.prototype.generate = function(b) { + return this._rand(b); + }), + 'object' == typeof self) + ) + self.crypto && self.crypto.getRandomValues + ? (e.prototype._rand = function(b) { + var c = new Uint8Array(b); + return self.crypto.getRandomValues(c), c; + }) + : self.msCrypto && self.msCrypto.getRandomValues + ? (e.prototype._rand = function(b) { + var c = new Uint8Array(b); + return self.msCrypto.getRandomValues(c), c; + }) + : (e.prototype._rand = function() { + throw new Error('Not implemented yet'); + }); + else + try { + var f = a('crypto'); + e.prototype._rand = function(b) { + return f.randomBytes(b); + }; + } catch (a) { + e.prototype._rand = function(b) { + for (var c = new Uint8Array(b), d = 0; d < c.length; d++) + c[d] = this.rand.getByte(); + return c; + }; + } + }, + {} + ], + 19: [ + function(a, b, c) { + var d = c; + (d.utils = a('./hash/utils')), + (d.common = a('./hash/common')), + (d.sha = a('./hash/sha')), + (d.ripemd = a('./hash/ripemd')), + (d.hmac = a('./hash/hmac')), + (d.sha1 = d.sha.sha1), + (d.sha256 = d.sha.sha256), + (d.sha224 = d.sha.sha224), + (d.sha384 = d.sha.sha384), + (d.sha512 = d.sha.sha512), + (d.ripemd160 = d.ripemd.ripemd160); + }, + { + './hash/common': 20, + './hash/hmac': 21, + './hash/ripemd': 22, + './hash/sha': 23, + './hash/utils': 24 + } + ], + 20: [ + function(a, b, c) { + function g() { + (this.pending = null), + (this.pendingTotal = 0), + (this.blockSize = this.constructor.blockSize), + (this.outSize = this.constructor.outSize), + (this.hmacStrength = this.constructor.hmacStrength), + (this.padLength = this.constructor.padLength / 8), + (this.endian = 'big'), + (this._delta8 = this.blockSize / 8), + (this._delta32 = this.blockSize / 32); + } + var d = a('../hash'), + e = d.utils, + f = e.assert; + (c.BlockHash = g), + (g.prototype.update = function(b, c) { + if ( + ((b = e.toArray(b, c)), + this.pending + ? (this.pending = this.pending.concat(b)) + : (this.pending = b), + (this.pendingTotal += b.length), + this.pending.length >= this._delta8) + ) { + b = this.pending; + var d = b.length % this._delta8; + (this.pending = b.slice(b.length - d, b.length)), + 0 === this.pending.length && (this.pending = null), + (b = e.join32(b, 0, b.length - d, this.endian)); + for (var f = 0; f < b.length; f += this._delta32) + this._update(b, f, f + this._delta32); + } + return this; + }), + (g.prototype.digest = function(b) { + return ( + this.update(this._pad()), + f(null === this.pending), + this._digest(b) + ); + }), + (g.prototype._pad = function() { + var b = this.pendingTotal, + c = this._delta8, + d = c - ((b + this.padLength) % c), + e = new Array(d + this.padLength); + e[0] = 128; + for (var f = 1; f < d; f++) e[f] = 0; + if (((b <<= 3), 'big' === this.endian)) { + for (var g = 8; g < this.padLength; g++) e[f++] = 0; + (e[f++] = 0), + (e[f++] = 0), + (e[f++] = 0), + (e[f++] = 0), + (e[f++] = (b >>> 24) & 255), + (e[f++] = (b >>> 16) & 255), + (e[f++] = (b >>> 8) & 255), + (e[f++] = 255 & b); + } else { + (e[f++] = 255 & b), + (e[f++] = (b >>> 8) & 255), + (e[f++] = (b >>> 16) & 255), + (e[f++] = (b >>> 24) & 255), + (e[f++] = 0), + (e[f++] = 0), + (e[f++] = 0), + (e[f++] = 0); + for (var g = 8; g < this.padLength; g++) e[f++] = 0; + } + return e; + }); + }, + { '../hash': 19 } + ], + 21: [ + function(a, b, c) { + function h(a, b, c) { + return this instanceof h + ? ((this.Hash = a), + (this.blockSize = a.blockSize / 8), + (this.outSize = a.outSize / 8), + (this.inner = null), + (this.outer = null), + void this._init(f.toArray(b, c))) + : new h(a, b, c); + } + var e = a('../hash'), + f = e.utils, + g = f.assert; + (b.exports = h), + (h.prototype._init = function(b) { + b.length > this.blockSize && + (b = new this.Hash().update(b).digest()), + g(b.length <= this.blockSize); + for (var c = b.length; c < this.blockSize; c++) b.push(0); + for (var c = 0; c < b.length; c++) b[c] ^= 54; + this.inner = new this.Hash().update(b); + for (var c = 0; c < b.length; c++) b[c] ^= 106; + this.outer = new this.Hash().update(b); + }), + (h.prototype.update = function(b, c) { + return this.inner.update(b, c), this; + }), + (h.prototype.digest = function(b) { + return ( + this.outer.update(this.inner.digest()), this.outer.digest(b) + ); + }); + }, + { '../hash': 19 } + ], + 22: [ + function(a, b, c) { + function k() { + return this instanceof k + ? (j.call(this), + (this.h = [ + 1732584193, + 4023233417, + 2562383102, + 271733878, + 3285377520 + ]), + void (this.endian = 'little')) + : new k(); + } + function l(a, b, c, d) { + return a <= 15 + ? b ^ c ^ d + : a <= 31 + ? (b & c) | (~b & d) + : a <= 47 + ? (b | ~c) ^ d + : a <= 63 + ? (b & d) | (c & ~d) + : b ^ (c | ~d); + } + function m(a) { + return a <= 15 + ? 0 + : a <= 31 + ? 1518500249 + : a <= 47 + ? 1859775393 + : a <= 63 + ? 2400959708 + : 2840853838; + } + function n(a) { + return a <= 15 + ? 1352829926 + : a <= 31 + ? 1548603684 + : a <= 47 + ? 1836072691 + : a <= 63 + ? 2053994217 + : 0; + } + var d = a('../hash'), + e = d.utils, + f = e.rotl32, + g = e.sum32, + h = e.sum32_3, + i = e.sum32_4, + j = d.common.BlockHash; + e.inherits(k, j), + (c.ripemd160 = k), + (k.blockSize = 512), + (k.outSize = 160), + (k.hmacStrength = 192), + (k.padLength = 64), + (k.prototype._update = function(b, c) { + for ( + var d = this.h[0], + e = this.h[1], + j = this.h[2], + k = this.h[3], + s = this.h[4], + t = d, + u = e, + v = j, + w = k, + x = s, + y = 0; + y < 80; + y++ + ) { + var z = g(f(i(d, l(y, e, j, k), b[o[y] + c], m(y)), q[y]), s); + (d = s), + (s = k), + (k = f(j, 10)), + (j = e), + (e = z), + (z = g( + f(i(t, l(79 - y, u, v, w), b[p[y] + c], n(y)), r[y]), + x + )), + (t = x), + (x = w), + (w = f(v, 10)), + (v = u), + (u = z); + } + (z = h(this.h[1], j, w)), + (this.h[1] = h(this.h[2], k, x)), + (this.h[2] = h(this.h[3], s, t)), + (this.h[3] = h(this.h[4], d, u)), + (this.h[4] = h(this.h[0], e, v)), + (this.h[0] = z); + }), + (k.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h, 'little') + : e.split32(this.h, 'little'); + }); + var o = [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 7, + 4, + 13, + 1, + 10, + 6, + 15, + 3, + 12, + 0, + 9, + 5, + 2, + 14, + 11, + 8, + 3, + 10, + 14, + 4, + 9, + 15, + 8, + 1, + 2, + 7, + 0, + 6, + 13, + 11, + 5, + 12, + 1, + 9, + 11, + 10, + 0, + 8, + 12, + 4, + 13, + 3, + 7, + 15, + 14, + 5, + 6, + 2, + 4, + 0, + 5, + 9, + 7, + 12, + 2, + 10, + 14, + 1, + 3, + 8, + 11, + 6, + 15, + 13 + ], + p = [ + 5, + 14, + 7, + 0, + 9, + 2, + 11, + 4, + 13, + 6, + 15, + 8, + 1, + 10, + 3, + 12, + 6, + 11, + 3, + 7, + 0, + 13, + 5, + 10, + 14, + 15, + 8, + 12, + 4, + 9, + 1, + 2, + 15, + 5, + 1, + 3, + 7, + 14, + 6, + 9, + 11, + 8, + 12, + 2, + 10, + 0, + 4, + 13, + 8, + 6, + 4, + 1, + 3, + 11, + 15, + 0, + 5, + 12, + 2, + 13, + 9, + 7, + 10, + 14, + 12, + 15, + 10, + 4, + 1, + 5, + 8, + 7, + 6, + 2, + 13, + 14, + 0, + 3, + 9, + 11 + ], + q = [ + 11, + 14, + 15, + 12, + 5, + 8, + 7, + 9, + 11, + 13, + 14, + 15, + 6, + 7, + 9, + 8, + 7, + 6, + 8, + 13, + 11, + 9, + 7, + 15, + 7, + 12, + 15, + 9, + 11, + 7, + 13, + 12, + 11, + 13, + 6, + 7, + 14, + 9, + 13, + 15, + 14, + 8, + 13, + 6, + 5, + 12, + 7, + 5, + 11, + 12, + 14, + 15, + 14, + 15, + 9, + 8, + 9, + 14, + 5, + 6, + 8, + 6, + 5, + 12, + 9, + 15, + 5, + 11, + 6, + 8, + 13, + 12, + 5, + 12, + 13, + 14, + 11, + 8, + 5, + 6 + ], + r = [ + 8, + 9, + 9, + 11, + 13, + 15, + 15, + 5, + 7, + 7, + 8, + 11, + 14, + 14, + 12, + 6, + 9, + 13, + 15, + 7, + 12, + 8, + 9, + 11, + 7, + 7, + 12, + 7, + 6, + 15, + 13, + 11, + 9, + 7, + 15, + 11, + 8, + 6, + 6, + 14, + 12, + 13, + 5, + 14, + 13, + 13, + 7, + 5, + 15, + 5, + 8, + 11, + 14, + 14, + 6, + 14, + 6, + 9, + 12, + 9, + 12, + 5, + 15, + 8, + 8, + 5, + 12, + 9, + 12, + 5, + 14, + 6, + 8, + 13, + 6, + 5, + 15, + 13, + 11, + 11 + ]; + }, + { '../hash': 19 } + ], + 23: [ + function(a, b, c) { + function A() { + return this instanceof A + ? (w.call(this), + (this.h = [ + 1779033703, + 3144134277, + 1013904242, + 2773480762, + 1359893119, + 2600822924, + 528734635, + 1541459225 + ]), + (this.k = x), + void (this.W = new Array(64))) + : new A(); + } + function B() { + return this instanceof B + ? (A.call(this), + void (this.h = [ + 3238371032, + 914150663, + 812702999, + 4144912697, + 4290775857, + 1750603025, + 1694076839, + 3204075428 + ])) + : new B(); + } + function C() { + return this instanceof C + ? (w.call(this), + (this.h = [ + 1779033703, + 4089235720, + 3144134277, + 2227873595, + 1013904242, + 4271175723, + 2773480762, + 1595750129, + 1359893119, + 2917565137, + 2600822924, + 725511199, + 528734635, + 4215389547, + 1541459225, + 327033209 + ]), + (this.k = y), + void (this.W = new Array(160))) + : new C(); + } + function D() { + return this instanceof D + ? (C.call(this), + void (this.h = [ + 3418070365, + 3238371032, + 1654270250, + 914150663, + 2438529370, + 812702999, + 355462360, + 4144912697, + 1731405415, + 4290775857, + 2394180231, + 1750603025, + 3675008525, + 1694076839, + 1203062813, + 3204075428 + ])) + : new D(); + } + function E() { + return this instanceof E + ? (w.call(this), + (this.h = [ + 1732584193, + 4023233417, + 2562383102, + 271733878, + 3285377520 + ]), + void (this.W = new Array(80))) + : new E(); + } + function F(a, b, c) { + return (a & b) ^ (~a & c); + } + function G(a, b, c) { + return (a & b) ^ (a & c) ^ (b & c); + } + function H(a, b, c) { + return a ^ b ^ c; + } + function I(a) { + return g(a, 2) ^ g(a, 13) ^ g(a, 22); + } + function J(a) { + return g(a, 6) ^ g(a, 11) ^ g(a, 25); + } + function K(a) { + return g(a, 7) ^ g(a, 18) ^ (a >>> 3); + } + function L(a) { + return g(a, 17) ^ g(a, 19) ^ (a >>> 10); + } + function M(a, b, c, d) { + return 0 === a + ? F(b, c, d) + : 1 === a || 3 === a + ? H(b, c, d) + : 2 === a + ? G(b, c, d) + : void 0; + } + function N(a, b, c, d, e, f) { + var g = (a & c) ^ (~a & e); + return g < 0 && (g += 4294967296), g; + } + function O(a, b, c, d, e, f) { + var g = (b & d) ^ (~b & f); + return g < 0 && (g += 4294967296), g; + } + function P(a, b, c, d, e, f) { + var g = (a & c) ^ (a & e) ^ (c & e); + return g < 0 && (g += 4294967296), g; + } + function Q(a, b, c, d, e, f) { + var g = (b & d) ^ (b & f) ^ (d & f); + return g < 0 && (g += 4294967296), g; + } + function R(a, b) { + var c = l(a, b, 28), + d = l(b, a, 2), + e = l(b, a, 7), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function S(a, b) { + var c = m(a, b, 28), + d = m(b, a, 2), + e = m(b, a, 7), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function T(a, b) { + var c = l(a, b, 14), + d = l(a, b, 18), + e = l(b, a, 9), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function U(a, b) { + var c = m(a, b, 14), + d = m(a, b, 18), + e = m(b, a, 9), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function V(a, b) { + var c = l(a, b, 1), + d = l(a, b, 8), + e = n(a, b, 7), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function W(a, b) { + var c = m(a, b, 1), + d = m(a, b, 8), + e = o(a, b, 7), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function X(a, b) { + var c = l(a, b, 19), + d = l(b, a, 29), + e = n(a, b, 6), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + function Y(a, b) { + var c = m(a, b, 19), + d = m(b, a, 29), + e = o(a, b, 6), + f = c ^ d ^ e; + return f < 0 && (f += 4294967296), f; + } + var d = a('../hash'), + e = d.utils, + f = e.assert, + g = e.rotr32, + h = e.rotl32, + i = e.sum32, + j = e.sum32_4, + k = e.sum32_5, + l = e.rotr64_hi, + m = e.rotr64_lo, + n = e.shr64_hi, + o = e.shr64_lo, + p = e.sum64, + q = e.sum64_hi, + r = e.sum64_lo, + s = e.sum64_4_hi, + t = e.sum64_4_lo, + u = e.sum64_5_hi, + v = e.sum64_5_lo, + w = d.common.BlockHash, + x = [ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 + ], + y = [ + 1116352408, + 3609767458, + 1899447441, + 602891725, + 3049323471, + 3964484399, + 3921009573, + 2173295548, + 961987163, + 4081628472, + 1508970993, + 3053834265, + 2453635748, + 2937671579, + 2870763221, + 3664609560, + 3624381080, + 2734883394, + 310598401, + 1164996542, + 607225278, + 1323610764, + 1426881987, + 3590304994, + 1925078388, + 4068182383, + 2162078206, + 991336113, + 2614888103, + 633803317, + 3248222580, + 3479774868, + 3835390401, + 2666613458, + 4022224774, + 944711139, + 264347078, + 2341262773, + 604807628, + 2007800933, + 770255983, + 1495990901, + 1249150122, + 1856431235, + 1555081692, + 3175218132, + 1996064986, + 2198950837, + 2554220882, + 3999719339, + 2821834349, + 766784016, + 2952996808, + 2566594879, + 3210313671, + 3203337956, + 3336571891, + 1034457026, + 3584528711, + 2466948901, + 113926993, + 3758326383, + 338241895, + 168717936, + 666307205, + 1188179964, + 773529912, + 1546045734, + 1294757372, + 1522805485, + 1396182291, + 2643833823, + 1695183700, + 2343527390, + 1986661051, + 1014477480, + 2177026350, + 1206759142, + 2456956037, + 344077627, + 2730485921, + 1290863460, + 2820302411, + 3158454273, + 3259730800, + 3505952657, + 3345764771, + 106217008, + 3516065817, + 3606008344, + 3600352804, + 1432725776, + 4094571909, + 1467031594, + 275423344, + 851169720, + 430227734, + 3100823752, + 506948616, + 1363258195, + 659060556, + 3750685593, + 883997877, + 3785050280, + 958139571, + 3318307427, + 1322822218, + 3812723403, + 1537002063, + 2003034995, + 1747873779, + 3602036899, + 1955562222, + 1575990012, + 2024104815, + 1125592928, + 2227730452, + 2716904306, + 2361852424, + 442776044, + 2428436474, + 593698344, + 2756734187, + 3733110249, + 3204031479, + 2999351573, + 3329325298, + 3815920427, + 3391569614, + 3928383900, + 3515267271, + 566280711, + 3940187606, + 3454069534, + 4118630271, + 4000239992, + 116418474, + 1914138554, + 174292421, + 2731055270, + 289380356, + 3203993006, + 460393269, + 320620315, + 685471733, + 587496836, + 852142971, + 1086792851, + 1017036298, + 365543100, + 1126000580, + 2618297676, + 1288033470, + 3409855158, + 1501505948, + 4234509866, + 1607167915, + 987167468, + 1816402316, + 1246189591 + ], + z = [1518500249, 1859775393, 2400959708, 3395469782]; + e.inherits(A, w), + (c.sha256 = A), + (A.blockSize = 512), + (A.outSize = 256), + (A.hmacStrength = 192), + (A.padLength = 64), + (A.prototype._update = function(b, c) { + for (var d = this.W, e = 0; e < 16; e++) d[e] = b[c + e]; + for (; e < d.length; e++) + d[e] = j(L(d[e - 2]), d[e - 7], K(d[e - 15]), d[e - 16]); + var g = this.h[0], + h = this.h[1], + l = this.h[2], + m = this.h[3], + n = this.h[4], + o = this.h[5], + p = this.h[6], + q = this.h[7]; + f(this.k.length === d.length); + for (var e = 0; e < d.length; e++) { + var r = k(q, J(n), F(n, o, p), this.k[e], d[e]), + s = i(I(g), G(g, h, l)); + (q = p), + (p = o), + (o = n), + (n = i(m, r)), + (m = l), + (l = h), + (h = g), + (g = i(r, s)); + } + (this.h[0] = i(this.h[0], g)), + (this.h[1] = i(this.h[1], h)), + (this.h[2] = i(this.h[2], l)), + (this.h[3] = i(this.h[3], m)), + (this.h[4] = i(this.h[4], n)), + (this.h[5] = i(this.h[5], o)), + (this.h[6] = i(this.h[6], p)), + (this.h[7] = i(this.h[7], q)); + }), + (A.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h, 'big') + : e.split32(this.h, 'big'); + }), + e.inherits(B, A), + (c.sha224 = B), + (B.blockSize = 512), + (B.outSize = 224), + (B.hmacStrength = 192), + (B.padLength = 64), + (B.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h.slice(0, 7), 'big') + : e.split32(this.h.slice(0, 7), 'big'); + }), + e.inherits(C, w), + (c.sha512 = C), + (C.blockSize = 1024), + (C.outSize = 512), + (C.hmacStrength = 192), + (C.padLength = 128), + (C.prototype._prepareBlock = function(b, c) { + for (var d = this.W, e = 0; e < 32; e++) d[e] = b[c + e]; + for (; e < d.length; e += 2) { + var f = X(d[e - 4], d[e - 3]), + g = Y(d[e - 4], d[e - 3]), + h = d[e - 14], + i = d[e - 13], + j = V(d[e - 30], d[e - 29]), + k = W(d[e - 30], d[e - 29]), + l = d[e - 32], + m = d[e - 31]; + (d[e] = s(f, g, h, i, j, k, l, m)), + (d[e + 1] = t(f, g, h, i, j, k, l, m)); + } + }), + (C.prototype._update = function(b, c) { + this._prepareBlock(b, c); + var d = this.W, + e = this.h[0], + g = this.h[1], + h = this.h[2], + i = this.h[3], + j = this.h[4], + k = this.h[5], + l = this.h[6], + m = this.h[7], + n = this.h[8], + o = this.h[9], + s = this.h[10], + t = this.h[11], + w = this.h[12], + x = this.h[13], + y = this.h[14], + z = this.h[15]; + f(this.k.length === d.length); + for (var A = 0; A < d.length; A += 2) { + var B = y, + C = z, + D = T(n, o), + E = U(n, o), + F = N(n, o, s, t, w, x), + G = O(n, o, s, t, w, x), + H = this.k[A], + I = this.k[A + 1], + J = d[A], + K = d[A + 1], + L = u(B, C, D, E, F, G, H, I, J, K), + M = v(B, C, D, E, F, G, H, I, J, K), + B = R(e, g), + C = S(e, g), + D = P(e, g, h, i, j, k), + E = Q(e, g, h, i, j, k), + V = q(B, C, D, E), + W = r(B, C, D, E); + (y = w), + (z = x), + (w = s), + (x = t), + (s = n), + (t = o), + (n = q(l, m, L, M)), + (o = r(m, m, L, M)), + (l = j), + (m = k), + (j = h), + (k = i), + (h = e), + (i = g), + (e = q(L, M, V, W)), + (g = r(L, M, V, W)); + } + p(this.h, 0, e, g), + p(this.h, 2, h, i), + p(this.h, 4, j, k), + p(this.h, 6, l, m), + p(this.h, 8, n, o), + p(this.h, 10, s, t), + p(this.h, 12, w, x), + p(this.h, 14, y, z); + }), + (C.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h, 'big') + : e.split32(this.h, 'big'); + }), + e.inherits(D, C), + (c.sha384 = D), + (D.blockSize = 1024), + (D.outSize = 384), + (D.hmacStrength = 192), + (D.padLength = 128), + (D.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h.slice(0, 12), 'big') + : e.split32(this.h.slice(0, 12), 'big'); + }), + e.inherits(E, w), + (c.sha1 = E), + (E.blockSize = 512), + (E.outSize = 160), + (E.hmacStrength = 80), + (E.padLength = 64), + (E.prototype._update = function(b, c) { + for (var d = this.W, e = 0; e < 16; e++) d[e] = b[c + e]; + for (; e < d.length; e++) + d[e] = h(d[e - 3] ^ d[e - 8] ^ d[e - 14] ^ d[e - 16], 1); + for ( + var f = this.h[0], + g = this.h[1], + j = this.h[2], + l = this.h[3], + m = this.h[4], + e = 0; + e < d.length; + e++ + ) { + var n = ~~(e / 20), + o = k(h(f, 5), M(n, g, j, l), m, d[e], z[n]); + (m = l), (l = j), (j = h(g, 30)), (g = f), (f = o); + } + (this.h[0] = i(this.h[0], f)), + (this.h[1] = i(this.h[1], g)), + (this.h[2] = i(this.h[2], j)), + (this.h[3] = i(this.h[3], l)), + (this.h[4] = i(this.h[4], m)); + }), + (E.prototype._digest = function(b) { + return 'hex' === b + ? e.toHex32(this.h, 'big') + : e.split32(this.h, 'big'); + }); + }, + { '../hash': 19 } + ], + 24: [ + function(a, b, c) { + function f(a, b) { + if (Array.isArray(a)) return a.slice(); + if (!a) return []; + var c = []; + if ('string' == typeof a) + if (b) { + if ('hex' === b) { + (a = a.replace(/[^a-z0-9]+/gi, '')), + a.length % 2 !== 0 && (a = '0' + a); + for (var d = 0; d < a.length; d += 2) + c.push(parseInt(a[d] + a[d + 1], 16)); + } + } else + for (var d = 0; d < a.length; d++) { + var e = a.charCodeAt(d), + f = e >> 8, + g = 255 & e; + f ? c.push(f, g) : c.push(g); + } + else for (var d = 0; d < a.length; d++) c[d] = 0 | a[d]; + return c; + } + function g(a) { + for (var b = '', c = 0; c < a.length; c++) + b += j(a[c].toString(16)); + return b; + } + function h(a) { + var b = + (a >>> 24) | + ((a >>> 8) & 65280) | + ((a << 8) & 16711680) | + ((255 & a) << 24); + return b >>> 0; + } + function i(a, b) { + for (var c = '', d = 0; d < a.length; d++) { + var e = a[d]; + 'little' === b && (e = h(e)), (c += k(e.toString(16))); + } + return c; + } + function j(a) { + return 1 === a.length ? '0' + a : a; + } + function k(a) { + return 7 === a.length + ? '0' + a + : 6 === a.length + ? '00' + a + : 5 === a.length + ? '000' + a + : 4 === a.length + ? '0000' + a + : 3 === a.length + ? '00000' + a + : 2 === a.length + ? '000000' + a + : 1 === a.length + ? '0000000' + a + : a; + } + function l(a, b, c, d) { + var e = c - b; + t(e % 4 === 0); + for ( + var f = new Array(e / 4), g = 0, h = b; + g < f.length; + g++, h += 4 + ) { + var i; + (i = + 'big' === d + ? (a[h] << 24) | (a[h + 1] << 16) | (a[h + 2] << 8) | a[h + 3] + : (a[h + 3] << 24) | + (a[h + 2] << 16) | + (a[h + 1] << 8) | + a[h]), + (f[g] = i >>> 0); + } + return f; + } + function m(a, b) { + for ( + var c = new Array(4 * a.length), d = 0, e = 0; + d < a.length; + d++, e += 4 + ) { + var f = a[d]; + 'big' === b + ? ((c[e] = f >>> 24), + (c[e + 1] = (f >>> 16) & 255), + (c[e + 2] = (f >>> 8) & 255), + (c[e + 3] = 255 & f)) + : ((c[e + 3] = f >>> 24), + (c[e + 2] = (f >>> 16) & 255), + (c[e + 1] = (f >>> 8) & 255), + (c[e] = 255 & f)); + } + return c; + } + function n(a, b) { + return (a >>> b) | (a << (32 - b)); + } + function o(a, b) { + return (a << b) | (a >>> (32 - b)); + } + function p(a, b) { + return (a + b) >>> 0; + } + function q(a, b, c) { + return (a + b + c) >>> 0; + } + function r(a, b, c, d) { + return (a + b + c + d) >>> 0; + } + function s(a, b, c, d, e) { + return (a + b + c + d + e) >>> 0; + } + function t(a, b) { + if (!a) throw new Error(b || 'Assertion failed'); + } + function u(a, b, c, d) { + var e = a[b], + f = a[b + 1], + g = (d + f) >>> 0, + h = (g < d ? 1 : 0) + c + e; + (a[b] = h >>> 0), (a[b + 1] = g); + } + function v(a, b, c, d) { + var e = (b + d) >>> 0, + f = (e < b ? 1 : 0) + a + c; + return f >>> 0; + } + function w(a, b, c, d) { + var e = b + d; + return e >>> 0; + } + function x(a, b, c, d, e, f, g, h) { + var i = 0, + j = b; + (j = (j + d) >>> 0), + (i += j < b ? 1 : 0), + (j = (j + f) >>> 0), + (i += j < f ? 1 : 0), + (j = (j + h) >>> 0), + (i += j < h ? 1 : 0); + var k = a + c + e + g + i; + return k >>> 0; + } + function y(a, b, c, d, e, f, g, h) { + var i = b + d + f + h; + return i >>> 0; + } + function z(a, b, c, d, e, f, g, h, i, j) { + var k = 0, + l = b; + (l = (l + d) >>> 0), + (k += l < b ? 1 : 0), + (l = (l + f) >>> 0), + (k += l < f ? 1 : 0), + (l = (l + h) >>> 0), + (k += l < h ? 1 : 0), + (l = (l + j) >>> 0), + (k += l < j ? 1 : 0); + var m = a + c + e + g + i + k; + return m >>> 0; + } + function A(a, b, c, d, e, f, g, h, i, j) { + var k = b + d + f + h + j; + return k >>> 0; + } + function B(a, b, c) { + var d = (b << (32 - c)) | (a >>> c); + return d >>> 0; + } + function C(a, b, c) { + var d = (a << (32 - c)) | (b >>> c); + return d >>> 0; + } + function D(a, b, c) { + return a >>> c; + } + function E(a, b, c) { + var d = (a << (32 - c)) | (b >>> c); + return d >>> 0; + } + var d = c, + e = a('inherits'); + (d.toArray = f), + (d.toHex = g), + (d.htonl = h), + (d.toHex32 = i), + (d.zero2 = j), + (d.zero8 = k), + (d.join32 = l), + (d.split32 = m), + (d.rotr32 = n), + (d.rotl32 = o), + (d.sum32 = p), + (d.sum32_3 = q), + (d.sum32_4 = r), + (d.sum32_5 = s), + (d.assert = t), + (d.inherits = e), + (c.sum64 = u), + (c.sum64_hi = v), + (c.sum64_lo = w), + (c.sum64_4_hi = x), + (c.sum64_4_lo = y), + (c.sum64_5_hi = z), + (c.sum64_5_lo = A), + (c.rotr64_hi = B), + (c.rotr64_lo = C), + (c.shr64_hi = D), + (c.shr64_lo = E); + }, + { inherits: 25 } + ], + 25: [ + function(a, b, c) { + 'function' == typeof Object.create + ? (b.exports = function(b, c) { + (b.super_ = c), + (b.prototype = Object.create(c.prototype, { + constructor: { + value: b, + enumerable: !1, + writable: !0, + configurable: !0 + } + })); + }) + : (b.exports = function(b, c) { + b.super_ = c; + var d = function() {}; + (d.prototype = c.prototype), + (b.prototype = new d()), + (b.prototype.constructor = b); + }); + }, + {} + ], + 26: [ + function(a, b, c) { + b.exports = { + name: 'elliptic', + version: '6.3.2', + description: 'EC cryptography', + main: 'lib/elliptic.js', + files: ['lib'], + scripts: { + jscs: + 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', + jshint: + 'jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js', + lint: 'npm run jscs && npm run jshint', + unit: 'istanbul test _mocha --reporter=spec test/index.js', + test: 'npm run lint && npm run unit', + version: 'grunt dist && git add dist/' + }, + repository: { type: 'git', url: 'git@github.com:indutny/elliptic' }, + keywords: ['EC', 'Elliptic', 'curve', 'Cryptography'], + author: 'Fedor Indutny ', + license: 'MIT', + bugs: { url: 'https://github.com/indutny/elliptic/issues' }, + homepage: 'https://github.com/indutny/elliptic', + devDependencies: { + brfs: '^1.4.3', + coveralls: '^2.11.3', + grunt: '^0.4.5', + 'grunt-browserify': '^5.0.0', + 'grunt-contrib-connect': '^1.0.0', + 'grunt-contrib-copy': '^1.0.0', + 'grunt-contrib-uglify': '^1.0.1', + 'grunt-mocha-istanbul': '^3.0.1', + 'grunt-saucelabs': '^8.6.2', + istanbul: '^0.4.2', + jscs: '^2.9.0', + jshint: '^2.6.0', + mocha: '^2.1.0' + }, + dependencies: { + 'bn.js': '^4.4.0', + brorand: '^1.0.1', + 'hash.js': '^1.0.0', + inherits: '^2.0.1' + } + }; + }, + {} + ] + }, + {}, + [2] + )(2); +}); + +var liner = (function(e) { + function r(n) { + if (t[n]) return t[n].exports; + var a = (t[n] = { i: n, l: !1, exports: {} }); + return e[n].call(a.exports, a, a.exports, r), (a.l = !0), a.exports; + } + var t = {}; + return ( + (r.m = e), + (r.c = t), + (r.d = function(e, t, n) { + r.o(e, t) || + Object.defineProperty(e, t, { + configurable: !1, + enumerable: !0, + get: n + }); + }), + (r.n = function(e) { + var t = + e && e.__esModule + ? function() { + return e.default; + } + : function() { + return e; + }; + return r.d(t, 'a', t), t; + }), + (r.o = function(e, r) { + return Object.prototype.hasOwnProperty.call(e, r); + }), + (r.p = ''), + r((r.s = 17)) + ); +})([ + function(e, r, t) { + 'use strict'; + Object.defineProperty(r, '__esModule', { value: !0 }), + function(e) { + function n(e) { + for (var r, t = e, n = /[^%](%\d+)/g, a = []; (r = n.exec(t)); ) + a.push({ arg: r[1], index: r.index }); + for (var o = a.length - 1; o >= 0; o--) { + var i = a[o], + s = i.arg.substring(1), + c = i.index + 1; + t = + t.substring(0, c) + arguments[+s] + t.substring(c + 1 + s.length); + } + return (t = t.replace('%%', '%')); + } + function a(e) { + var r; + (r = 'string' == typeof e ? { name: e } : e), p.checkAlgorithm(r); + var t = e; + return t.hash && (t.hash = a(t.hash)), r; + } + function o(e, r) { + if (!e) + throw new s("Parameter '" + r + "' is required and cant be empty"); + if ('undefined' != typeof Buffer && Buffer.isBuffer(e)) + return new Uint8Array(e); + if (ArrayBuffer.isView(e)) { + var t = e.map(function(e) { + return e; + }); + return new Uint8Array(t.buffer); + } + if (e instanceof ArrayBuffer) return new Uint8Array(e); + throw new s( + "Incoming parameter '" + + r + + "' has wrong data type. Must be ArrayBufferView or ArrayBuffer" + ); + } + t.d(r, 'WebCryptoError', function() { + return s; + }), + t.d(r, 'AlgorithmError', function() { + return c; + }), + t.d(r, 'CryptoKeyError', function() { + return u; + }), + t.d(r, 'PrepareAlgorithm', function() { + return a; + }), + t.d(r, 'PrepareData', function() { + return o; + }), + t.d(r, 'BaseCrypto', function() { + return p; + }), + t.d(r, 'AlgorithmNames', function() { + return h; + }), + t.d(r, 'Base64Url', function() { + return y; + }), + t.d(r, 'SubtleCrypto', function() { + return W; + }), + t.d(r, 'Aes', function() { + return m; + }), + t.d(r, 'AesAlgorithmError', function() { + return A; + }), + t.d(r, 'AesWrapKey', function() { + return w; + }), + t.d(r, 'AesEncrypt', function() { + return v; + }), + t.d(r, 'AesECB', function() { + return g; + }), + t.d(r, 'AesCBC', function() { + return C; + }), + t.d(r, 'AesCTR', function() { + return d; + }), + t.d(r, 'AesGCM', function() { + return k; + }), + t.d(r, 'AesKW', function() { + return b; + }), + t.d(r, 'RsaKeyGenParamsError', function() { + return G; + }), + t.d(r, 'RsaHashedImportParamsError', function() { + return M; + }), + t.d(r, 'Rsa', function() { + return B; + }), + t.d(r, 'RsaSSA', function() { + return T; + }), + t.d(r, 'RsaPSSParamsError', function() { + return D; + }), + t.d(r, 'RsaPSS', function() { + return x; + }), + t.d(r, 'RsaOAEPParamsError', function() { + return j; + }), + t.d(r, 'RsaOAEP', function() { + return H; + }), + t.d(r, 'EcKeyGenParamsError', function() { + return U; + }), + t.d(r, 'Ec', function() { + return _; + }), + t.d(r, 'EcAlgorithmError', function() { + return K; + }), + t.d(r, 'EcDSA', function() { + return O; + }), + t.d(r, 'EcDH', function() { + return S; + }), + t.d(r, 'ShaAlgorithms', function() { + return E; + }), + t.d(r, 'Sha', function() { + return P; + }); + var i = t(8), + s = (function(e) { + function r(r) { + for (var t = [], a = 1; a < arguments.length; a++) + t[a - 1] = arguments[a]; + var o = e.call(this) || this; + (o.code = 0), (o.message = n.apply(void 0, [r].concat(t))); + var i = new Error(o.message); + return (i.name = o.constructor.name), (o.stack = i.stack), o; + } + return ( + Object(i.a)(r, e), + (r.NOT_SUPPORTED = 'Method is not supported'), + r + ); + })(Error), + c = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 1), r; + } + return ( + Object(i.a)(r, e), + (r.PARAM_REQUIRED = + "Algorithm hasn't got required paramter '%1'"), + (r.PARAM_WRONG_TYPE = + "Algorithm has got wrong type for paramter '%1'. Must be %2"), + (r.PARAM_WRONG_VALUE = + "Algorithm has got wrong value for paramter '%1'. Must be %2"), + (r.WRONG_ALG_NAME = + "Algorithm has got wrong name '%1'. Must be '%2'"), + (r.UNSUPPORTED_ALGORITHM = "Algorithm '%1' is not supported"), + (r.WRONG_USAGE = "Algorithm doesn't support key usage '%1'"), + r + ); + })(s), + u = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 3), r; + } + return ( + Object(i.a)(r, e), + (r.EMPTY_KEY = 'CryptoKey is empty'), + (r.WRONG_KEY_ALG = + "CryptoKey has wrong algorithm '%1'. Must be '%2'"), + (r.WRONG_KEY_TYPE = + "CryptoKey has wrong type '%1'. Must be '%2'"), + (r.WRONG_KEY_USAGE = + "CryptoKey has wrong key usage. Must be '%1'"), + (r.NOT_EXTRACTABLE = 'CryptoKey is not extractable'), + (r.WRONG_FORMAT = + "CryptoKey has '%1' type. It can be used with '%2' format"), + (r.UNKNOWN_FORMAT = + "Unknown format in use '%1'. Must be one of 'raw', 'pkcs8', 'spki' or 'jwk'"), + (r.ALLOWED_FORMAT = "Wrong format value '%1'. Must be %2"), + r + ); + })(s), + p = (function() { + function e() {} + return ( + (e.checkAlgorithm = function(e) { + if ('object' != typeof e) + throw new TypeError( + 'Wrong algorithm data type. Must be Object' + ); + if (!e.name) throw new c(c.PARAM_REQUIRED, 'name'); + }), + (e.checkAlgorithmParams = function(e) { + this.checkAlgorithm(e); + }), + (e.checkKey = function(e, r, t, n) { + if ( + (void 0 === t && (t = null), void 0 === n && (n = null), !e) + ) + throw new u(u.EMPTY_KEY); + var a = e.algorithm; + if ( + (this.checkAlgorithm(a), + r && a.name.toUpperCase() !== r.toUpperCase()) + ) + throw new u(u.WRONG_KEY_ALG, a.name, r); + if (t && (!e.type || e.type.toUpperCase() !== t.toUpperCase())) + throw new u(u.WRONG_KEY_TYPE, e.type, t); + if ( + n && + !e.usages.some(function(e) { + return n.toUpperCase() === e.toUpperCase(); + }) + ) + throw new u(u.WRONG_KEY_USAGE, n); + }), + (e.checkWrappedKey = function(e) { + if (!e.extractable) throw new u(u.NOT_EXTRACTABLE); + }), + (e.checkKeyUsages = function(e) { + if (!e || !e.length) + throw new s("Parameter 'keyUsages' cannot be empty."); + }), + (e.checkFormat = function(e, r) { + switch (e.toLowerCase()) { + case 'raw': + if ( + r && + 'secret' !== r.toLowerCase() && + r && + 'public' !== r.toLowerCase() + ) + throw new u(u.WRONG_FORMAT, r, 'raw'); + break; + case 'pkcs8': + if (r && 'private' !== r.toLowerCase()) + throw new u(u.WRONG_FORMAT, r, 'pkcs8'); + break; + case 'spki': + if (r && 'public' !== r.toLowerCase()) + throw new u(u.WRONG_FORMAT, r, 'spki'); + break; + case 'jwk': + break; + default: + throw new u(u.UNKNOWN_FORMAT, e); + } + }), + (e.generateKey = function(e, r, t) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.digest = function(e, r) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.sign = function(e, r, t) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.verify = function(e, r, t, n) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.encrypt = function(e, r, t) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.decrypt = function(e, r, t) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.deriveBits = function(e, r, t) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.deriveKey = function(e, r, t, n, a) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.exportKey = function(e, r) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.importKey = function(e, r, t, n, a) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.wrapKey = function(e, r, t, n) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + (e.unwrapKey = function(e, r, t, n, a, o, i) { + return new Promise(function(e, r) { + throw new s(s.NOT_SUPPORTED); + }); + }), + e + ); + })(), + h = { + RsaSSA: 'RSASSA-PKCS1-v1_5', + RsaPSS: 'RSA-PSS', + RsaOAEP: 'RSA-OAEP', + AesECB: 'AES-ECB', + AesCTR: 'AES-CTR', + AesCMAC: 'AES-CMAC', + AesGCM: 'AES-GCM', + AesCBC: 'AES-CBC', + AesKW: 'AES-KW', + Sha1: 'SHA-1', + Sha256: 'SHA-256', + Sha384: 'SHA-384', + Sha512: 'SHA-512', + EcDSA: 'ECDSA', + EcDH: 'ECDH', + Hmac: 'HMAC', + Pbkdf2: 'PBKDF2', + Hkdf: 'HKDF' + }; + if ('undefined' == typeof self) { + var f = e; + (f.btoa = function(e) { + return new Buffer(e, 'binary').toString('base64'); + }), + (f.atob = function(e) { + return new Buffer(e, 'base64').toString('binary'); + }); + } + var y = (function() { + function e() {} + return ( + (e.encode = function(e) { + var r = this.buffer2string(e); + return btoa(r) + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); + }), + (e.decode = function(e) { + for (; e.length % 4; ) e += '='; + var r = e.replace(/\-/g, '+').replace(/_/g, '/'); + return this.string2buffer(atob(r)); + }), + (e.buffer2string = function(e) { + for (var r = '', t = e.length, n = 0; n < t; n++) + r += String.fromCharCode(e[n]); + return r; + }), + (e.string2buffer = function(e) { + for ( + var r = new Uint8Array(e.length), t = e.length, n = 0; + n < t; + n++ + ) + r[n] = e.charCodeAt(n); + return r; + }), + e + ); + })(), + l = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 7), r; + } + return Object(i.a)(r, e), r; + })(c), + m = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkKeyUsages = function(r) { + var t = this; + e.checkKeyUsages.call(this, r); + var n = r.filter(function(e) { + return -1 === t.KEY_USAGES.indexOf(e); + }); + if (n.length) throw new c(c.WRONG_USAGE, n.join(', ')); + }), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkKeyGenParams = function(e) { + switch (e.length) { + case 128: + case 192: + case 256: + break; + default: + throw new l( + l.PARAM_WRONG_VALUE, + 'length', + '128, 192 or 256' + ); + } + }), + (r.generateKey = function(e, r, t) { + var n = this; + return new Promise(function(r, a) { + n.checkAlgorithm(e), + n.checkKeyGenParams(e), + n.checkKeyUsages(t), + r(void 0); + }); + }), + (r.exportKey = function(e, r) { + var t = this; + return new Promise(function(n, a) { + t.checkKey(r, t.ALG_NAME), + t.checkFormat(e, r.type), + n(void 0); + }); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return new Promise(function(r, n) { + if ( + (o.checkAlgorithm(t), + o.checkFormat(e), + 'raw' !== e.toLowerCase() && 'jwk' !== e.toLowerCase()) + ) + throw new u(u.ALLOWED_FORMAT, e, "'jwk' or 'raw'"); + o.checkKeyUsages(a), r(void 0); + }); + }), + (r.ALG_NAME = ''), + (r.KEY_USAGES = []), + r + ); + })(p), + A = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 8), r; + } + return Object(i.a)(r, e), r; + })(c), + w = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.wrapKey = function(e, r, t, n) { + var a = this; + return new Promise(function(o, i) { + a.checkAlgorithmParams(n), + a.checkKey(t, a.ALG_NAME, 'secret', 'wrapKey'), + a.checkWrappedKey(r), + a.checkFormat(e, r.type), + o(void 0); + }); + }), + (r.unwrapKey = function(e, r, t, n, a, o, i) { + var s = this; + return new Promise(function(r, a) { + s.checkAlgorithmParams(n), + s.checkKey(t, s.ALG_NAME, 'secret', 'unwrapKey'), + s.checkFormat(e), + r(void 0); + }); + }), + r + ); + })(m), + v = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.encrypt = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'secret', 'encrypt'), + t(void 0); + }); + }), + (r.decrypt = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'secret', 'decrypt'), + t(void 0); + }); + }), + (r.KEY_USAGES = ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey']), + r + ); + })(w), + g = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return Object(i.a)(r, e), (r.ALG_NAME = h.AesECB), r; + })(v), + C = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + if ((this.checkAlgorithm(e), !e.iv)) + throw new A(A.PARAM_REQUIRED, 'iv'); + if (!(ArrayBuffer.isView(e.iv) || e.iv instanceof ArrayBuffer)) + throw new A( + A.PARAM_WRONG_TYPE, + 'iv', + 'ArrayBufferView or ArrayBuffer' + ); + if (16 !== e.iv.byteLength) + throw new A( + A.PARAM_WRONG_VALUE, + 'iv', + 'ArrayBufferView or ArrayBuffer with size 16' + ); + }), + (r.ALG_NAME = h.AesCBC), + r + ); + })(v), + d = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + if ( + (this.checkAlgorithm(e), + !e.counter || + !( + ArrayBuffer.isView(e.counter) || + e.counter instanceof ArrayBuffer + )) + ) + throw new A( + A.PARAM_WRONG_TYPE, + 'counter', + 'ArrayBufferView or ArrayBuffer' + ); + if (16 !== e.counter.byteLength) + throw new A( + A.PARAM_WRONG_VALUE, + 'counter', + 'ArrayBufferView or ArrayBuffer with size 16' + ); + if (!(e.length > 0 && e.length <= 128)) + throw new A(A.PARAM_WRONG_VALUE, 'length', 'number [1-128]'); + }), + (r.ALG_NAME = h.AesCTR), + r + ); + })(v), + k = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + if ( + (this.checkAlgorithm(e), + e.additionalData && + !( + ArrayBuffer.isView(e.additionalData) || + e.additionalData instanceof ArrayBuffer + )) + ) + throw new A( + A.PARAM_WRONG_TYPE, + 'additionalData', + 'ArrayBufferView or ArrayBuffer' + ); + if (!e.iv) throw new A(A.PARAM_REQUIRED, 'iv'); + if (!(ArrayBuffer.isView(e.iv) || e.iv instanceof ArrayBuffer)) + throw new A( + A.PARAM_WRONG_TYPE, + 'iv', + 'ArrayBufferView or ArrayBuffer' + ); + if (e.tagLength) { + if ( + ![32, 64, 96, 104, 112, 120, 128].some(function(r) { + return r === e.tagLength; + }) + ) + throw new A( + A.PARAM_WRONG_VALUE, + 'tagLength', + '32, 64, 96, 104, 112, 120 or 128' + ); + } + }), + (r.ALG_NAME = h.AesGCM), + r + ); + })(v), + b = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + this.checkAlgorithm(e); + }), + (r.ALG_NAME = h.AesKW), + (r.KEY_USAGES = ['wrapKey', 'unwrapKey']), + r + ); + })(w), + E = [h.Sha1, h.Sha256, h.Sha384, h.Sha512].join(' | '), + P = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(r) { + var t; + switch ( + ((t = 'string' == typeof r ? { name: r } : r), + e.checkAlgorithm.call(this, t), + t.name.toUpperCase()) + ) { + case h.Sha1: + case h.Sha256: + case h.Sha384: + case h.Sha512: + break; + default: + throw new c(c.WRONG_ALG_NAME, t.name, E); + } + }), + (r.digest = function(e, r) { + var t = this; + return new Promise(function(r, n) { + t.checkAlgorithm(e), r(void 0); + }); + }), + r + ); + })(p), + U = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 9), r; + } + return Object(i.a)(r, e), r; + })(c), + _ = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkKeyGenParams = function(e) { + if (!e.namedCurve) throw new U(U.PARAM_REQUIRED, 'namedCurve'); + if ('string' != typeof e.namedCurve) + throw new U(U.PARAM_WRONG_TYPE, 'namedCurve', 'string'); + switch (e.namedCurve.toUpperCase()) { + case 'P-256': + case 'K-256': + case 'P-384': + case 'P-521': + break; + default: + throw new U( + U.PARAM_WRONG_VALUE, + 'namedCurve', + 'K-256, P-256, P-384 or P-521' + ); + } + }), + (r.checkKeyGenUsages = function(e) { + var r = this; + e.forEach(function(e) { + var t = 0; + for ( + t; + t < r.KEY_USAGES.length && + r.KEY_USAGES[t].toLowerCase() !== e.toLowerCase(); + t++ + ); + if (t === r.KEY_USAGES.length) + throw new s( + "Unsupported key usage '" + + e + + "'. Should be one of [" + + r.KEY_USAGES.join(', ') + + ']' + ); + }); + }), + (r.generateKey = function(e, r, t) { + var n = this; + return new Promise(function(r, a) { + n.checkAlgorithm(e), + n.checkKeyGenParams(e), + n.checkKeyGenUsages(t), + r(void 0); + }); + }), + (r.exportKey = function(e, r) { + var t = this; + return new Promise(function(n, a) { + t.checkKey(r, t.ALG_NAME), + (e && 'raw' === e.toLowerCase() && 'public' === r.type) || + t.checkFormat(e, r.type), + n(void 0); + }); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return new Promise(function(r, n) { + o.checkKeyGenParams(t), + o.checkFormat(e), + o.checkKeyGenUsages(a), + r(void 0); + }); + }), + (r.ALG_NAME = ''), + (r.KEY_USAGES = []), + r + ); + })(p), + K = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 10), r; + } + return Object(i.a)(r, e), r; + })(c), + O = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + this.checkAlgorithm(e), P.checkAlgorithm(e.hash); + }), + (r.sign = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'private', 'sign'), + t(void 0); + }); + }), + (r.verify = function(e, r, t, n) { + var a = this; + return new Promise(function(t, n) { + a.checkAlgorithmParams(e), + a.checkKey(r, a.ALG_NAME, 'public', 'verify'), + t(void 0); + }); + }), + (r.ALG_NAME = h.EcDSA), + (r.KEY_USAGES = ['sign', 'verify', 'deriveKey', 'deriveBits']), + r + ); + })(_), + S = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkDeriveParams = function(e) { + if ((this.checkAlgorithm(e), !e.public)) + throw new K(K.PARAM_REQUIRED, 'public'); + this.checkKey(e.public, this.ALG_NAME, 'public'); + }), + (r.deriveBits = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkDeriveParams(e), + n.checkKey(r, n.ALG_NAME, 'private', 'deriveBits'), + t(void 0); + }); + }), + (r.deriveKey = function(e, r, t, n, a) { + var o = this; + return new Promise(function(n, a) { + switch ( + (o.checkDeriveParams(e), + o.checkKey(r, o.ALG_NAME, 'private', 'deriveKey'), + p.checkAlgorithm(t), + t.name.toUpperCase()) + ) { + case h.AesCBC: + C.checkKeyGenParams(t); + break; + case h.AesCTR: + d.checkKeyGenParams(t); + break; + case h.AesGCM: + k.checkKeyGenParams(t); + break; + case h.AesKW: + b.checkKeyGenParams(t); + break; + default: + throw new K( + "Unsupported name '" + + t.name + + "' for algorithm in param 'derivedKeyType'" + ); + } + n(void 0); + }); + }), + (r.ALG_NAME = h.EcDH), + (r.KEY_USAGES = ['deriveKey', 'deriveBits']), + r + ); + })(_), + L = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkKeyGenParams = function(e) { + if ('length' in e && !(e.length > 0 && e.length <= 512)) + throw new c( + c.PARAM_WRONG_VALUE, + 'length', + 'more 0 and less than 512' + ); + }), + (r.checkKeyGenUsages = function(e) { + var r = this; + this.checkKeyUsages(e), + e.forEach(function(e) { + var t = 0; + for ( + t; + t < r.KEY_USAGES.length && + r.KEY_USAGES[t].toLowerCase() !== e.toLowerCase(); + t++ + ); + if (t === r.KEY_USAGES.length) + throw new s( + "Unsupported key usage '" + + e + + "'. Should be one of [" + + r.KEY_USAGES.join(', ') + + ']' + ); + }); + }), + (r.generateKey = function(e, r, t) { + var n = this; + return new Promise(function(r, a) { + n.checkAlgorithm(e), + n.checkKeyGenParams(e), + n.checkKeyGenUsages(t), + r(void 0); + }); + }), + (r.exportKey = function(e, r) { + var t = this; + return new Promise(function(n, a) { + t.checkKey(r, t.ALG_NAME), + t.checkFormat(e, r.type), + n(void 0); + }); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return new Promise(function(r, n) { + if ( + (o.checkAlgorithm(t), + o.checkFormat(e), + 'raw' !== e.toLowerCase() && 'jwk' !== e.toLowerCase()) + ) + throw new u(u.ALLOWED_FORMAT, e, "'jwk' or 'raw'"); + o.checkKeyGenUsages(a), r(void 0); + }); + }), + (r.sign = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'secret', 'sign'), + t(void 0); + }); + }), + (r.verify = function(e, r, t, n) { + var a = this; + return new Promise(function(t, n) { + a.checkAlgorithmParams(e), + a.checkKey(r, a.ALG_NAME, 'secret', 'verify'), + t(void 0); + }); + }), + (r.ALG_NAME = h.Hmac), + (r.KEY_USAGES = ['sign', 'verify']), + r + ); + })(p), + R = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkDeriveParams = function(e) { + if ((this.checkAlgorithm(e), !e.salt)) + throw new c(c.PARAM_REQUIRED, 'salt'); + if ( + !(ArrayBuffer.isView(e.salt) || e.salt instanceof ArrayBuffer) + ) + throw new c( + c.PARAM_WRONG_TYPE, + 'salt', + 'ArrayBuffer or ArrayBufferView' + ); + if (!e.info) throw new c(c.PARAM_REQUIRED, 'info'); + if ( + !(ArrayBuffer.isView(e.info) || e.info instanceof ArrayBuffer) + ) + throw new c( + c.PARAM_WRONG_TYPE, + 'info', + 'ArrayBuffer or ArrayBufferView' + ); + if (!e.hash) throw new c(c.PARAM_REQUIRED, 'hash'); + var r = a(e.hash); + P.checkAlgorithm(r); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve().then(function() { + if (n) throw new s('KDF keys must set extractable=false'); + if ( + (o.checkAlgorithm(t), + o.checkFormat(e), + 'raw' !== e.toLowerCase()) + ) + throw new u(u.ALLOWED_FORMAT, e, "'raw'"); + o.checkKeyUsages(a); + }); + }), + (r.deriveKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve().then(function() { + switch ( + (o.checkDeriveParams(e), + o.checkKey(r, o.ALG_NAME, 'secret', 'deriveKey'), + p.checkAlgorithm(t), + t.name.toUpperCase()) + ) { + case h.AesCBC: + C.checkKeyGenParams(t), C.checkKeyUsages(a); + break; + case h.AesCTR: + d.checkKeyGenParams(t), d.checkKeyUsages(a); + break; + case h.AesGCM: + k.checkKeyGenParams(t), k.checkKeyUsages(a); + break; + case h.AesKW: + b.checkKeyGenParams(t), b.checkKeyUsages(a); + break; + case h.Hmac: + L.checkKeyGenParams(t), L.checkKeyUsages(a); + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, t); + } + }); + }), + (r.deriveBits = function(e, r, t) { + var n = this; + return Promise.resolve().then(function() { + if ( + (n.checkDeriveParams(e), + n.checkKey(r, n.ALG_NAME, 'secret', 'deriveBits'), + !t || 'number' != typeof t) + ) + throw new s( + "Parameter 'length' must be Number and more than 0" + ); + }); + }), + (r.ALG_NAME = h.Hkdf), + (r.KEY_USAGES = ['deriveKey', 'deriveBits']), + r + ); + })(p), + N = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkDeriveParams = function(e) { + if ((this.checkAlgorithm(e), !e.salt)) + throw new c(c.PARAM_REQUIRED, 'salt'); + if ( + !(ArrayBuffer.isView(e.salt) || e.salt instanceof ArrayBuffer) + ) + throw new c( + c.PARAM_WRONG_TYPE, + 'salt', + 'ArrayBuffer or ArrayBufferView' + ); + if (!e.iterations) throw new c(c.PARAM_REQUIRED, 'iterations'); + if (!e.hash) throw new c(c.PARAM_REQUIRED, 'hash'); + var r = a(e.hash); + P.checkAlgorithm(r); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve().then(function() { + if (n) throw new s('KDF keys must set extractable=false'); + if ( + (o.checkAlgorithm(t), + o.checkFormat(e), + 'raw' !== e.toLowerCase()) + ) + throw new u(u.ALLOWED_FORMAT, e, "'raw'"); + o.checkKeyUsages(a); + }); + }), + (r.deriveKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve().then(function() { + switch ( + (o.checkDeriveParams(e), + o.checkKey(r, o.ALG_NAME, 'secret', 'deriveKey'), + p.checkAlgorithm(t), + t.name.toUpperCase()) + ) { + case h.AesCBC: + C.checkKeyGenParams(t), C.checkKeyUsages(a); + break; + case h.AesCTR: + d.checkKeyGenParams(t), d.checkKeyUsages(a); + break; + case h.AesGCM: + k.checkKeyGenParams(t), k.checkKeyUsages(a); + break; + case h.AesKW: + b.checkKeyGenParams(t), b.checkKeyUsages(a); + break; + case h.Hmac: + L.checkKeyGenParams(t), L.checkKeyUsages(a); + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, t); + } + }); + }), + (r.deriveBits = function(e, r, t) { + var n = this; + return Promise.resolve().then(function() { + if ( + (n.checkDeriveParams(e), + n.checkKey(r, n.ALG_NAME, 'secret', 'deriveBits'), + !t || 'number' != typeof t) + ) + throw new s( + "Parameter 'length' must be Number and more than 0" + ); + }); + }), + (r.ALG_NAME = h.Pbkdf2), + (r.KEY_USAGES = ['deriveKey', 'deriveBits']), + r + ); + })(p), + G = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 2), r; + } + return Object(i.a)(r, e), r; + })(c), + M = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 6), r; + } + return Object(i.a)(r, e), r; + })(c), + B = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithm = function(e) { + if (e.name.toUpperCase() !== this.ALG_NAME.toUpperCase()) + throw new c(c.WRONG_ALG_NAME, e.name, this.ALG_NAME); + }), + (r.checkImportAlgorithm = function(e) { + if ((this.checkAlgorithm(e), !e.hash)) + throw new M(M.PARAM_REQUIRED, 'hash'); + P.checkAlgorithm(e.hash); + }), + (r.checkKeyGenParams = function(e) { + var r = e.modulusLength; + if (!(r >= 256 && r <= 16384) || r % 8) + throw new G( + G.PARAM_WRONG_VALUE, + 'modulusLength', + ' a multiple of 8 bits and >= 256 and <= 16384' + ); + var t = e.publicExponent; + if (!t) throw new G(G.PARAM_REQUIRED, 'publicExponent'); + if (!ArrayBuffer.isView(t)) + throw new G( + G.PARAM_WRONG_TYPE, + 'publicExponent', + 'ArrayBufferView' + ); + if (3 !== t[0] && (1 !== t[0] || 0 !== t[1] || 1 !== t[2])) + throw new G( + G.PARAM_WRONG_VALUE, + 'publicExponent', + 'Uint8Array([3]) | Uint8Array([1, 0, 1])' + ); + if (!e.hash) throw new G(G.PARAM_REQUIRED, 'hash', E); + P.checkAlgorithm(e.hash); + }), + (r.checkKeyGenUsages = function(e) { + var r = this; + this.checkKeyUsages(e), + e.forEach(function(e) { + var t = 0; + for ( + t; + t < r.KEY_USAGES.length && + r.KEY_USAGES[t].toLowerCase() !== e.toLowerCase(); + t++ + ); + if (t === r.KEY_USAGES.length) + throw new s( + "Unsupported key usage '" + + e + + "'. Should be one of [" + + r.KEY_USAGES.join(', ') + + ']' + ); + }); + }), + (r.generateKey = function(e, r, t) { + var n = this; + return new Promise(function(r, a) { + n.checkAlgorithm(e), + n.checkKeyGenParams(e), + n.checkKeyGenUsages(t), + r(void 0); + }); + }), + (r.exportKey = function(e, r) { + var t = this; + return new Promise(function(n, a) { + t.checkKey(r, t.ALG_NAME), + t.checkFormat(e, r.type), + n(void 0); + }); + }), + (r.importKey = function(e, r, t, n, a) { + var o = this; + return new Promise(function(r, n) { + if ( + (o.checkImportAlgorithm(t), + o.checkFormat(e), + 'raw' === e.toLowerCase()) + ) + throw new u( + u.ALLOWED_FORMAT, + e, + "'JsonWebKey', 'pkcs8' or 'spki'" + ); + o.checkKeyGenUsages(a), r(void 0); + }); + }), + (r.ALG_NAME = ''), + (r.KEY_USAGES = []), + r + ); + })(p), + T = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.sign = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'private', 'sign'), + t(void 0); + }); + }), + (r.verify = function(e, r, t, n) { + var a = this; + return new Promise(function(t, n) { + a.checkAlgorithmParams(e), + a.checkKey(r, a.ALG_NAME, 'public', 'verify'), + t(void 0); + }); + }), + (r.ALG_NAME = h.RsaSSA), + (r.KEY_USAGES = ['sign', 'verify']), + r + ); + })(B), + D = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 4), r; + } + return Object(i.a)(r, e), r; + })(c), + x = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(r) { + var t = r; + if ((e.checkAlgorithmParams.call(this, t), !t.saltLength)) + throw new D(D.PARAM_REQUIRED, 'saltLength'); + if (t.saltLength < 0) + throw new D( + "Parameter 'saltLength' is outside of numeric range" + ); + }), + (r.ALG_NAME = h.RsaPSS), + r + ); + })(T), + j = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 5), r; + } + return Object(i.a)(r, e), r; + })(c), + H = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + Object(i.a)(r, e), + (r.checkAlgorithmParams = function(e) { + if ( + e.label && + !( + ArrayBuffer.isView(e.label) || + e.label instanceof ArrayBuffer + ) + ) + throw new j( + j.PARAM_WRONG_TYPE, + 'label', + 'ArrayBufferView or ArrayBuffer' + ); + }), + (r.encrypt = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'public', 'encrypt'), + t(void 0); + }); + }), + (r.decrypt = function(e, r, t) { + var n = this; + return new Promise(function(t, a) { + n.checkAlgorithmParams(e), + n.checkKey(r, n.ALG_NAME, 'private', 'decrypt'), + t(void 0); + }); + }), + (r.wrapKey = function(e, r, t, n) { + var a = this; + return new Promise(function(o, i) { + a.checkAlgorithmParams(n), + a.checkKey(t, a.ALG_NAME, 'public', 'wrapKey'), + a.checkWrappedKey(r), + a.checkFormat(e, r.type), + o(void 0); + }); + }), + (r.unwrapKey = function(e, r, t, n, a, o, i) { + var s = this; + return new Promise(function(r, a) { + s.checkAlgorithmParams(n), + s.checkKey(t, s.ALG_NAME, 'private', 'unwrapKey'), + s.checkFormat(e), + r(void 0); + }); + }), + (r.ALG_NAME = h.RsaOAEP), + (r.KEY_USAGES = ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey']), + r + ); + })(B), + W = (function() { + function e() {} + return ( + (e.prototype.generateKey = function(e, r, t) { + return new Promise(function(n, o) { + var i = a(e), + s = p; + switch (i.name.toUpperCase()) { + case h.RsaSSA.toUpperCase(): + s = T; + break; + case h.RsaOAEP.toUpperCase(): + s = H; + break; + case h.RsaPSS.toUpperCase(): + s = x; + break; + case h.AesECB.toUpperCase(): + s = g; + break; + case h.AesCBC.toUpperCase(): + s = C; + break; + case h.AesCTR.toUpperCase(): + s = d; + break; + case h.AesGCM.toUpperCase(): + s = k; + break; + case h.AesKW.toUpperCase(): + s = b; + break; + case h.EcDSA.toUpperCase(): + s = O; + break; + case h.EcDH.toUpperCase(): + s = S; + break; + case h.Hmac.toUpperCase(): + s = L; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, i.name); + } + s.generateKey(i, r, t).then(n, o); + }); + }), + (e.prototype.digest = function(e, r) { + return new Promise(function(t, n) { + var i = a(e), + s = o(r, 'data'), + u = p; + switch (i.name.toUpperCase()) { + case h.Sha1.toUpperCase(): + case h.Sha256.toUpperCase(): + case h.Sha384.toUpperCase(): + case h.Sha512.toUpperCase(): + u = P; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, i.name); + } + u.digest(i, s).then(t, n); + }); + }), + (e.prototype.sign = function(e, r, t) { + return new Promise(function(n, i) { + var s = a(e), + u = o(t, 'data'), + f = p; + switch (s.name.toUpperCase()) { + case h.RsaSSA.toUpperCase(): + f = T; + break; + case h.RsaPSS.toUpperCase(): + f = x; + break; + case h.EcDSA.toUpperCase(): + f = O; + break; + case h.Hmac.toUpperCase(): + f = L; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, s.name); + } + f.sign(s, r, u).then(n, i); + }); + }), + (e.prototype.verify = function(e, r, t, n) { + return new Promise(function(t, i) { + var s = a(e), + u = o(n, 'signature'), + f = o(n, 'data'), + y = p; + switch (s.name.toUpperCase()) { + case h.RsaSSA.toUpperCase(): + y = T; + break; + case h.RsaPSS.toUpperCase(): + y = x; + break; + case h.EcDSA.toUpperCase(): + y = O; + break; + case h.Hmac.toUpperCase(): + y = L; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, s.name); + } + y.verify(s, r, u, f).then(t, i); + }); + }), + (e.prototype.encrypt = function(e, r, t) { + return new Promise(function(n, i) { + var s = a(e), + u = o(t, 'data'), + f = p; + switch (s.name.toUpperCase()) { + case h.RsaOAEP.toUpperCase(): + f = H; + break; + case h.AesECB.toUpperCase(): + f = g; + break; + case h.AesCBC.toUpperCase(): + f = C; + break; + case h.AesCTR.toUpperCase(): + f = d; + break; + case h.AesGCM.toUpperCase(): + f = k; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, s.name); + } + f.encrypt(s, r, u).then(n, i); + }); + }), + (e.prototype.decrypt = function(e, r, t) { + return new Promise(function(n, i) { + var s = a(e), + u = o(t, 'data'), + f = p; + switch (s.name.toUpperCase()) { + case h.RsaOAEP.toUpperCase(): + f = H; + break; + case h.AesECB.toUpperCase(): + f = g; + break; + case h.AesCBC.toUpperCase(): + f = C; + break; + case h.AesCTR.toUpperCase(): + f = d; + break; + case h.AesGCM.toUpperCase(): + f = k; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, s.name); + } + f.decrypt(s, r, u).then(n, i); + }); + }), + (e.prototype.deriveBits = function(e, r, t) { + return new Promise(function(n, o) { + var i = a(e), + s = p; + switch (i.name.toUpperCase()) { + case h.EcDH.toUpperCase(): + s = S; + break; + case h.Pbkdf2.toUpperCase(): + s = N; + break; + case h.Hkdf.toUpperCase(): + s = R; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, i.name); + } + s.deriveBits(i, r, t).then(n, o); + }); + }), + (e.prototype.deriveKey = function(e, r, t, n, o) { + return new Promise(function(i, s) { + var u = a(e), + f = a(t), + y = p; + switch (u.name.toUpperCase()) { + case h.EcDH.toUpperCase(): + y = S; + break; + case h.Pbkdf2.toUpperCase(): + y = N; + break; + case h.Hkdf.toUpperCase(): + y = R; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, u.name); + } + y.deriveKey(u, r, f, n, o).then(i, s); + }); + }), + (e.prototype.exportKey = function(e, r) { + return new Promise(function(t, n) { + if ((p.checkKey(r), !r.extractable)) + throw new u(u.NOT_EXTRACTABLE); + var a = p; + switch (r.algorithm.name.toUpperCase()) { + case h.RsaSSA.toUpperCase(): + a = T; + break; + case h.RsaPSS.toUpperCase(): + a = x; + break; + case h.AesECB.toUpperCase(): + a = g; + break; + case h.RsaOAEP.toUpperCase(): + a = H; + break; + case h.AesCBC.toUpperCase(): + a = C; + break; + case h.AesCTR.toUpperCase(): + a = d; + break; + case h.AesGCM.toUpperCase(): + a = k; + break; + case h.AesKW.toUpperCase(): + a = b; + break; + case h.EcDSA.toUpperCase(): + a = O; + break; + case h.EcDH.toUpperCase(): + a = S; + break; + case h.Hmac.toUpperCase(): + a = L; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, r.algorithm.name); + } + a.exportKey(e, r).then(t, n); + }); + }), + (e.prototype.importKey = function(e, r, t, n, o) { + return new Promise(function(i, s) { + var u = a(t), + f = p; + switch (u.name.toUpperCase()) { + case h.RsaSSA.toUpperCase(): + f = T; + break; + case h.RsaPSS.toUpperCase(): + f = x; + break; + case h.RsaOAEP.toUpperCase(): + f = H; + break; + case h.AesECB.toUpperCase(): + f = g; + break; + case h.AesCBC.toUpperCase(): + f = C; + break; + case h.AesCTR.toUpperCase(): + f = d; + break; + case h.AesGCM.toUpperCase(): + f = k; + break; + case h.AesKW.toUpperCase(): + f = b; + break; + case h.EcDSA.toUpperCase(): + f = O; + break; + case h.EcDH.toUpperCase(): + f = S; + break; + case h.Hmac.toUpperCase(): + f = L; + break; + case h.Pbkdf2.toUpperCase(): + f = N; + break; + case h.Hkdf.toUpperCase(): + f = R; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, u.name); + } + f.importKey(e, r, u, n, o).then(i, s); + }); + }), + (e.prototype.wrapKey = function(e, r, t, n) { + return new Promise(function(o, i) { + var s = a(n), + u = p; + switch (s.name.toUpperCase()) { + case h.RsaOAEP.toUpperCase(): + u = H; + break; + case h.AesECB.toUpperCase(): + u = g; + break; + case h.AesCBC.toUpperCase(): + u = C; + break; + case h.AesCTR.toUpperCase(): + u = d; + break; + case h.AesGCM.toUpperCase(): + u = k; + break; + case h.AesKW.toUpperCase(): + u = b; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, s.name); + } + u.wrapKey(e, r, t, s).then(o, i); + }); + }), + (e.prototype.unwrapKey = function(e, r, t, n, i, s, u) { + return new Promise(function(f, y) { + var l = a(n), + m = a(i), + A = o(r, 'wrappedKey'), + w = p; + switch (l.name.toUpperCase()) { + case h.RsaOAEP.toUpperCase(): + w = H; + break; + case h.AesECB.toUpperCase(): + w = g; + break; + case h.AesCBC.toUpperCase(): + w = C; + break; + case h.AesCTR.toUpperCase(): + w = d; + break; + case h.AesGCM.toUpperCase(): + w = k; + break; + case h.AesKW.toUpperCase(): + w = b; + break; + default: + throw new c(c.UNSUPPORTED_ALGORITHM, l.name); + } + w.unwrapKey(e, A, t, l, m, s, u).then(f, y); + }); + }), + e + ); + })(); + }.call(r, t(7)); + }, + function(e, r, t) { + 'use strict'; + var n = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var a = t(0), + o = (function(e) { + function r() { + var r = (null !== e && e.apply(this, arguments)) || this; + return (r.code = 10), r; + } + return ( + n(r, e), + (r.MODULE_NOT_FOUND = + "Module '%1' is not found. Download it from %2"), + (r.UNSUPPORTED_ALGORITHM = "Unsupported algorithm '%1'"), + r + ); + })(a.WebCryptoError); + r.LinerError = o; + }, + function(e, r, t) { + 'use strict'; + Object.defineProperty(r, '__esModule', { value: !0 }); + var n = t(10), + a = t(4), + o = (function() { + function e() { + this.subtle = new n.SubtleCrypto(); + } + return ( + (e.prototype.getRandomValues = function(e) { + return a.nativeCrypto.getRandomValues(e); + }), + e + ); + })(); + r.Crypto = o; + }, + function(e, r, t) { + 'use strict'; + Object.defineProperty(r, '__esModule', { value: !0 }); + var n = (function() { + function e(e) { + (this.algorithm = e.algorithm), + e.type && (this.type = e.type), + (this.extractable = e.extractable), + (this.usages = e.usages); + } + return e; + })(); + r.CryptoKey = n; + }, + function(e, r, t) { + 'use strict'; + function n(e, r) { + var t = e[r]; + e[r] = function() { + var n = arguments; + return new Promise(function(a, o) { + var i = t.apply(e, n); + (i.oncomplete = function(e) { + a(e.target.result); + }), + (i.onerror = function(e) { + o("Error on running '" + r + "' function"); + }); + }); + }; + } + Object.defineProperty(r, '__esModule', { value: !0 }); + var a, + o = t(1); + if ('undefined' == typeof self) { + var i = t(9); + a = { + crypto: { + subtle: {}, + getRandomValues: function(e) { + var r = e.buffer, + t = new Uint8Array(r); + return ( + i.randomBytes(t.length).forEach(function(e, r) { + return (t[r] = e); + }), + e + ); + } + } + }; + } else a = self; + (r.nativeCrypto = a.msCrypto || a.crypto || {}), (r.nativeSubtle = null); + try { + r.nativeSubtle = r.nativeCrypto.subtle || r.nativeCrypto.webkitSubtle; + } catch (e) {} + if (a.msCrypto) { + if (!a.Promise) + throw new o.LinerError( + o.LinerError.MODULE_NOT_FOUND, + 'Promise', + 'https://www.promisejs.org' + ); + n(r.nativeSubtle, 'generateKey'), + n(r.nativeSubtle, 'digest'), + n(r.nativeSubtle, 'sign'), + n(r.nativeSubtle, 'verify'), + n(r.nativeSubtle, 'encrypt'), + n(r.nativeSubtle, 'decrypt'), + n(r.nativeSubtle, 'importKey'), + n(r.nativeSubtle, 'exportKey'), + n(r.nativeSubtle, 'wrapKey'), + n(r.nativeSubtle, 'unwrapKey'), + n(r.nativeSubtle, 'deriveKey'), + n(r.nativeSubtle, 'deriveBits'); + } + Math.imul || + (Math.imul = function(e, r) { + var t = (e >>> 16) & 65535, + n = 65535 & e, + a = (r >>> 16) & 65535, + o = 65535 & r; + return (n * o + (((t * o + n * a) << 16) >>> 0)) | 0; + }); + }, + function(e, r, t) { + 'use strict'; + function n() { + var e = { name: 'Unknown', version: '0' }; + try { + var t = self.navigator.userAgent, + n = void 0; + (n = /edge\/([\d\.]+)/i.exec(t)) + ? ((e.name = r.Browser.Edge), (e.version = n[1])) + : /msie/i.test(t) + ? ((e.name = r.Browser.IE), + (e.version = /msie ([\d\.]+)/i.exec(t)[1])) + : /Trident/i.test(t) + ? ((e.name = r.Browser.IE), (e.version = /rv:([\d\.]+)/i.exec(t)[1])) + : /chrome/i.test(t) + ? ((e.name = r.Browser.Chrome), + (e.version = /chrome\/([\d\.]+)/i.exec(t)[1])) + : /safari/i.test(t) + ? ((e.name = r.Browser.Safari), + (e.version = /version\/([\d\.]+)/i.exec(t)[1])) + : /firefox/i.test(t) && + ((e.name = r.Browser.Firefox), + (e.version = /firefox\/([\d\.]+)/i.exec(t)[1])); + } catch (e) {} + return e; + } + function a(e) { + for (var r = new Uint8Array(e.length), t = 0; t < e.length; t++) + r[t] = e.charCodeAt(t); + return r; + } + function o(e) { + for (var r = '', t = 0; t < e.length; t++) r += String.fromCharCode(e[t]); + return r; + } + function i() { + for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; + var t = new Uint8Array( + e + .map(function(e) { + return e.length; + }) + .reduce(function(e, r) { + return e + r; + }) + ), + n = 0; + return ( + e.forEach(function(e, r) { + for (var a = 0; a < e.length; a++) t[n + a] = e[a]; + n += e.length; + }), + t + ); + } + function s(e) { + for (var r = [], t = 1; t < arguments.length; t++) + r[t - 1] = arguments[t]; + for (var n = arguments[0], a = 1; a < arguments.length; a++) { + var o = arguments[a]; + for (var i in o) n[i] = o[i]; + } + return n; + } + function c(e) { + for (var r = [], t = 1; t < arguments.length; t++) + r[t - 1] = arguments[t]; + 'undefined' != typeof self && + self.PV_WEBCRYPTO_LINER_LOG && + console.warn.apply(console, arguments); + } + Object.defineProperty(r, '__esModule', { value: !0 }), + (r.Browser = { + IE: 'Internet Explorer', + Safari: 'Safari', + Edge: 'Edge', + Chrome: 'Chrome', + Firefox: 'Firefox Mozilla', + Mobile: 'Mobile' + }), + (r.BrowserInfo = n), + (r.string2buffer = a), + (r.buffer2string = o), + (r.concat = i), + (r.assign = s), + (r.warn = c); + }, + function(e, r, t) { + 'use strict'; + function n(e) { + for (var t in e) r.hasOwnProperty(t) || (r[t] = e[t]); + } + Object.defineProperty(r, '__esModule', { value: !0 }), n(t(4)), n(t(2)); + }, + function(e, r) { + var t; + t = (function() { + return this; + })(); + try { + t = t || Function('return this')() || (0, eval)('this'); + } catch (e) { + 'object' == typeof window && (t = window); + } + e.exports = t; + }, + function(e, r, t) { + 'use strict'; + function n(e, r) { + function t() { + this.constructor = e; + } + a(e, r), + (e.prototype = + null === r + ? Object.create(r) + : ((t.prototype = r.prototype), new t())); + } + r.a = n; /*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + var a = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + Object.assign; + }, + function(e, r) { + e.exports = require('crypto'); + }, + function(e, r, t) { + 'use strict'; + function n(e, r) { + return Promise.resolve().then(function() { + if (e.key) return e; + if (e.extractable) { + return new m.Crypto().subtle.exportKey('jwk', e).then(function(t) { + var n = o(e); + return ( + n && (n = w.assign(n, e.algorithm)), + r.importKey('jwk', t, n, !0, e.usages) + ); + }); + } + throw new A.LinerError( + "'key' is Native CryptoKey. It can't be converted to JS CryptoKey" + ); + }); + } + function a(e, r) { + (w.BrowserInfo().name !== w.Browser.IE && + w.BrowserInfo().name !== w.Browser.Edge && + w.BrowserInfo().name !== w.Browser.Safari) || + !/^rsa/i.test(e.name) || + (r.privateKey + ? (E.push({ hash: e.hash, key: r.privateKey }), + E.push({ hash: e.hash, key: r.publicKey })) + : E.push({ hash: e.hash, key: r })); + } + function o(e) { + var r = null; + return ( + E.some(function(t) { + return ( + t.key === e && + ((r = w.assign({}, e.algorithm, { hash: t.hash })), !0) + ); + }), + r + ); + } + function i(e, r) { + var t = []; + e.privateKey ? (t.push(e.privateKey), t.push(e.publicKey)) : t.push(e), + t.forEach(function(e) { + 'keyUsage' in e && + ((e.usages = e.keyUsage || []), + e.usages.length || + (['verify', 'encrypt', 'wrapKey'].forEach(function(t) { + r.indexOf(t) > -1 && + ('public' === e.type || 'secret' === e.type) && + e.usages.push(t); + }), + [ + 'sign', + 'decrypt', + 'unwrapKey', + 'deriveKey', + 'deriveBits' + ].forEach(function(t) { + r.indexOf(t) > -1 && + ('private' === e.type || 'secret' === e.type) && + e.usages.push(t); + }))); + }); + } + function s(e, r, t) { + if (r && w.BrowserInfo().name === w.Browser.IE) { + 'extractable' in e && ((e.ext = e.extractable), delete e.extractable); + var n = null; + switch (r.name.toUpperCase()) { + case h.AlgorithmNames.AesECB.toUpperCase(): + case h.AlgorithmNames.AesCBC.toUpperCase(): + case h.AlgorithmNames.AesGCM.toUpperCase(): + n = v.AesCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + r.name.toUpperCase() + ); + } + n && !e.alg && (e.alg = n.alg2jwk(r)), + 'key_ops' in e || (e.key_ops = t); + } + } + function c(e) { + w.BrowserInfo().name === w.Browser.IE && + ('ext' in e && ((e.extractable = e.ext), delete e.ext), + delete e.key_ops, + delete e.alg); + } + function u(e) { + var r = /AppleWebKit\/(\d+)/.exec(self.navigator.userAgent); + return ( + e.toUpperCase() === h.AlgorithmNames.RsaOAEP && + r && + parseInt(r[1], 10) < 604 + ); + } + var p = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var h = t(0), + f = t(0), + y = t(0), + l = t(4), + m = t(2), + A = t(1), + w = t(5), + v = t(11), + g = t(12), + C = t(13), + d = t(14), + k = t(15), + b = t(16), + E = [], + P = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + p(r, e), + (r.prototype.generateKey = function(r, t, n) { + var o, + s = this, + c = arguments; + return e.prototype.generateKey + .apply(this, c) + .then(function(e) { + if ( + ((o = y.PrepareAlgorithm(r)), + !( + (w.BrowserInfo().name === w.Browser.Edge && + o.name.toUpperCase() === h.AlgorithmNames.AesGCM) || + u(o.name) + ) && l.nativeSubtle) + ) + try { + return l.nativeSubtle.generateKey + .apply(l.nativeSubtle, c) + .catch(function(e) { + w.warn( + 'WebCrypto: native generateKey for ' + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native generateKey for ' + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) { + var c = Promise.resolve(e); + if ( + w.BrowserInfo().name === w.Browser.Safari && + (o.name.toUpperCase() === + h.AlgorithmNames.EcDH.toUpperCase() || + o.name.toUpperCase() === + h.AlgorithmNames.EcDSA.toUpperCase()) + ) { + var u = e.publicKey; + c = c.then(function() { + return s.exportKey('jwk', u).then(function(a) { + return s.exportKey('spki', u).then(function(o) { + for ( + var i = h.Base64Url.decode(a.x), + c = h.Base64Url.decode(a.y), + u = i.length + c.length, + p = new Uint8Array(o), + f = 0; + f < u; + f++ + ) { + var y = p[p.length - f - 1], + l = void 0; + if ( + ((l = + f < c.length + ? c[c.length - f - 1] + : i[i.length + c.length - f - 1]), + y !== l) + ) + return ( + w.warn( + 'WebCrypto: EC key has wrong public key JWK. Key pair will be recreated' + ), + s.generateKey(r, t, n) + ); + } + return e; + }); + }); + }); + } + return c.then(function(e) { + return i(e, n), a(o, e), e; + }); + } + var p; + switch (o.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + p = v.AesCrypto; + break; + case h.AlgorithmNames.EcDSA.toLowerCase(): + case h.AlgorithmNames.EcDH.toLowerCase(): + p = C.EcCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + o.name.toLowerCase() + ); + } + return p.generateKey(o, t, n); + }); + }), + (r.prototype.digest = function(r, t) { + var n, + a, + o = arguments; + return e.prototype.digest + .apply(this, o) + .then(function(e) { + if ( + ((n = y.PrepareAlgorithm(r)), + (a = y.PrepareData(t, 'data')), + l.nativeSubtle) + ) + try { + return l.nativeSubtle.digest + .apply(l.nativeSubtle, o) + .catch(function(e) { + w.warn( + 'WebCrypto: native digest for ' + + n.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native digest for ' + + n.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + return e || g.ShaCrypto.digest(n, a); + }); + }), + (r.prototype.sign = function(r, t, a) { + var i, + s, + c = arguments; + return e.prototype.sign + .apply(this, c) + .then(function(e) { + (i = y.PrepareAlgorithm(r)), (s = y.PrepareData(a, 'data')); + var n = o(t); + if ((n && (c[0] = w.assign(i, n)), l.nativeSubtle)) + try { + return l.nativeSubtle.sign + .apply(l.nativeSubtle, c) + .catch(function(e) { + w.warn( + 'WebCrypto: native sign for ' + + i.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native sign for ' + i.name + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) return e; + var r; + switch (i.name.toLowerCase()) { + case h.AlgorithmNames.EcDSA.toLowerCase(): + r = C.EcCrypto; + break; + case h.AlgorithmNames.Hmac.toLowerCase(): + r = k.HmacCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + i.name.toLowerCase() + ); + } + return n(t, r).then(function(e) { + return r.sign(i, e, s); + }); + }); + }), + (r.prototype.verify = function(r, t, n, a) { + var i, + s, + c, + u = arguments; + return e.prototype.verify + .apply(this, u) + .then(function(e) { + (i = y.PrepareAlgorithm(r)), + (s = y.PrepareData(n, 'data')), + (c = y.PrepareData(a, 'data')); + var p = o(t); + if ((p && (u[0] = w.assign(i, p)), l.nativeSubtle)) + try { + return l.nativeSubtle.verify + .apply(l.nativeSubtle, u) + .catch(function(e) { + w.warn( + 'WebCrypto: native verify for ' + + i.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native verify for ' + + i.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if ('boolean' == typeof e) return e; + switch (i.name.toLowerCase()) { + case h.AlgorithmNames.EcDSA.toLowerCase(): + C.EcCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + i.name.toLowerCase() + ); + } + }); + }), + (r.prototype.deriveBits = function(r, t, n) { + var a, + o = arguments; + return e.prototype.deriveBits + .apply(this, o) + .then(function(e) { + if (((a = y.PrepareAlgorithm(r)), l.nativeSubtle)) + try { + return l.nativeSubtle.deriveBits + .apply(l.nativeSubtle, o) + .catch(function(e) { + w.warn( + 'WebCrypto: native deriveBits for ' + + a.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native deriveBits for ' + + a.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) return e; + var r; + switch (a.name.toLowerCase()) { + case h.AlgorithmNames.EcDH.toLowerCase(): + r = C.EcCrypto; + break; + case h.AlgorithmNames.Pbkdf2.toLowerCase(): + r = d.Pbkdf2Crypto; + break; + case h.AlgorithmNames.Hkdf.toLowerCase(): + r = b.HkdfCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'deriveBits' + ); + } + return r.deriveBits(a, t, n); + }); + }), + (r.prototype.deriveKey = function(r, t, n, a, o) { + var s, + c, + u = arguments; + return e.prototype.deriveKey + .apply(this, u) + .then(function(e) { + if ( + ((s = y.PrepareAlgorithm(r)), + (c = y.PrepareAlgorithm(n)), + l.nativeSubtle) + ) + try { + return l.nativeSubtle.deriveKey + .apply(l.nativeSubtle, u) + .catch(function(e) { + w.warn( + 'WebCrypto: native deriveKey for ' + + s.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + 'WebCrypto: native deriveKey for ' + + s.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) return i(e, o), e; + var r; + switch (s.name.toLowerCase()) { + case h.AlgorithmNames.EcDH.toLowerCase(): + r = C.EcCrypto; + break; + case h.AlgorithmNames.Pbkdf2.toLowerCase(): + r = d.Pbkdf2Crypto; + break; + case h.AlgorithmNames.Hkdf.toLowerCase(): + r = b.HkdfCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'deriveKey' + ); + } + return r.deriveKey(s, t, c, a, o); + }); + }), + (r.prototype.encrypt = function(r, t, a) { + var o, + i, + s = arguments; + return e.prototype.encrypt + .apply(this, s) + .then(function(e) { + if ( + ((o = y.PrepareAlgorithm(r)), + (i = y.PrepareData(a, 'data')), + l.nativeSubtle) + ) + try { + return l.nativeSubtle.encrypt + .apply(l.nativeSubtle, s) + .catch(function(e) { + w.warn( + "WebCrypto: native 'encrypt' for " + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + "WebCrypto: native 'encrypt' for " + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) { + if ( + w.BrowserInfo().name === w.Browser.IE && + o.name.toUpperCase() === h.AlgorithmNames.AesGCM && + e.ciphertext + ) { + var r = new Uint8Array( + e.ciphertext.byteLength + e.tag.byteLength + ), + a = 0; + new Uint8Array(e.ciphertext).forEach(function(e) { + return (r[a++] = e); + }), + new Uint8Array(e.tag).forEach(function(e) { + return (r[a++] = e); + }), + (e = r.buffer); + } + return Promise.resolve(e); + } + var s; + switch (o.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + s = v.AesCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'encrypt' + ); + } + return n(t, s).then(function(e) { + return s.encrypt(o, e, i); + }); + }); + }), + (r.prototype.decrypt = function(r, t, n) { + var a, + o, + i = arguments; + return e.prototype.decrypt.apply(this, i).then(function(e) { + (a = y.PrepareAlgorithm(r)), (o = y.PrepareData(n, 'data')); + var i = o; + if ( + w.BrowserInfo().name === w.Browser.IE && + a.name.toUpperCase() === h.AlgorithmNames.AesGCM + ) { + var s = o.byteLength - a.tagLength / 8; + i = { + ciphertext: o.buffer.slice(0, s), + tag: o.buffer.slice(s, o.byteLength) + }; + } + if (t.key) { + var c = void 0; + switch (a.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + c = v.AesCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'decrypt' + ); + } + return c.decrypt(a, t, o); + } + return l.nativeSubtle.decrypt.call(l.nativeSubtle, a, t, i); + }); + }), + (r.prototype.wrapKey = function(r, t, n, a) { + var o, + i = arguments; + return e.prototype.wrapKey + .apply(this, i) + .then(function(e) { + if (((o = y.PrepareAlgorithm(a)), l.nativeSubtle)) + try { + return l.nativeSubtle.wrapKey + .apply(l.nativeSubtle, i) + .catch(function(e) { + w.warn( + "WebCrypto: native 'wrapKey' for " + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + "WebCrypto: native 'wrapKey' for " + + o.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) return e; + var a; + switch (o.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + a = v.AesCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'wrapKey' + ); + } + return a.wrapKey(r, t, n, o); + }); + }), + (r.prototype.unwrapKey = function(r, t, n, a, o, s, c) { + var u, + p, + f, + m = this, + g = arguments; + return e.prototype.unwrapKey.apply(this, g).then(function(e) { + if ( + ((u = y.PrepareAlgorithm(a)), + (p = y.PrepareAlgorithm(o)), + (f = y.PrepareData(t, 'wrappedKey')), + n.key) + ) { + var C = void 0; + switch (u.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + C = v.AesCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.NOT_SUPPORTED, + 'unwrapKey' + ); + } + return C.unwrapKey(r, f, n, u, p, s, c); + } + return l.nativeSubtle.unwrapKey + .apply(l.nativeSubtle, g) + .catch(function(e) { + return m.decrypt(u, n, t).then(function(e) { + var t; + return ( + (t = + 'jwk' === r + ? JSON.parse(w.buffer2string(new Uint8Array(e))) + : e), + m.importKey(r, t, p, s, c) + ); + }); + }) + .then(function(e) { + if (e) return i(e, c), e; + }) + .catch(function(e) { + throw (console.error(e), + new Error('Cannot unwrap key from incoming data')); + }); + }); + }), + (r.prototype.exportKey = function(r, t) { + var n = arguments; + return e.prototype.exportKey + .apply(this, n) + .then(function() { + if (l.nativeSubtle) + try { + return l.nativeSubtle.exportKey + .apply(l.nativeSubtle, n) + .catch(function(e) { + w.warn( + "WebCrypto: native 'exportKey' for " + + t.algorithm.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + "WebCrypto: native 'exportKey' for " + + t.algorithm.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) { + 'jwk' === r && + e instanceof ArrayBuffer && + ((e = w.buffer2string(new Uint8Array(e))), + (e = JSON.parse(e))); + var n = o(t); + return ( + n || (n = w.assign({}, t.algorithm)), + s(e, n, t.usages), + Promise.resolve(e) + ); + } + if (!t.key) + throw new A.LinerError( + 'Cannot export native CryptoKey from JS implementation' + ); + var a; + switch (t.algorithm.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + a = v.AesCrypto; + break; + case h.AlgorithmNames.EcDH.toLowerCase(): + case h.AlgorithmNames.EcDSA.toLowerCase(): + a = C.EcCrypto; + break; + case h.AlgorithmNames.Hmac.toLowerCase(): + a = k.HmacCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + t.algorithm.name.toLowerCase() + ); + } + return a.exportKey(r, t); + }); + }), + (r.prototype.importKey = function(r, t, n, o, s) { + var p, + f, + m = arguments; + return e.prototype.importKey + .apply(this, m) + .then(function(e) { + (p = y.PrepareAlgorithm(n)), (f = t); + var a = w.BrowserInfo(); + if ( + ('jwk' !== r || + ((a.name !== w.Browser.Safari || /^11/.test(a.version)) && + a.name !== w.Browser.IE) || + (w.BrowserInfo().name === w.Browser.IE && + ((t = w.assign({}, t)), c(t)), + (m[1] = w.string2buffer(JSON.stringify(t)).buffer)), + ArrayBuffer.isView(t) && (f = y.PrepareData(t, 'keyData')), + !u(p.name) && l.nativeSubtle) + ) + try { + return l.nativeSubtle.importKey + .apply(l.nativeSubtle, m) + .catch(function(e) { + w.warn( + "WebCrypto: native 'importKey' for " + + p.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + }); + } catch (e) { + w.warn( + "WebCrypto: native 'importKey' for " + + p.name + + " doesn't work.", + (e && e.message) || 'Unknown message' + ); + } + }) + .then(function(e) { + if (e) return a(p, e), i(e, s), Promise.resolve(e); + var t; + switch (p.name.toLowerCase()) { + case h.AlgorithmNames.AesECB.toLowerCase(): + case h.AlgorithmNames.AesCBC.toLowerCase(): + case h.AlgorithmNames.AesGCM.toLowerCase(): + t = v.AesCrypto; + break; + case h.AlgorithmNames.EcDH.toLowerCase(): + case h.AlgorithmNames.EcDSA.toLowerCase(): + t = C.EcCrypto; + break; + case h.AlgorithmNames.Pbkdf2.toLowerCase(): + t = d.Pbkdf2Crypto; + break; + case h.AlgorithmNames.Hmac.toLowerCase(): + t = k.HmacCrypto; + break; + case h.AlgorithmNames.Hkdf.toLowerCase(): + t = b.HkdfCrypto; + break; + default: + throw new A.LinerError( + A.LinerError.UNSUPPORTED_ALGORITHM, + p.name.toLowerCase() + ); + } + return t.importKey(r, f, p, o, s); + }); + }), + r + ); + })(f.SubtleCrypto); + (r.SubtleCrypto = P), + Uint8Array.prototype.forEach || + (Uint8Array.prototype.forEach = function(e) { + for (var r = 0; r < this.length; r++) e(this[r], r, this); + }), + Uint8Array.prototype.slice || + (Uint8Array.prototype.slice = function(e, r) { + return new Uint8Array(this.buffer.slice(e, r)); + }), + Uint8Array.prototype.filter || + (Uint8Array.prototype.filter = function(e) { + for (var r = [], t = 0; t < this.length; t++) + e(this[t], t, this) && r.push(this[t]); + return new Uint8Array(r); + }); + }, + function(e, r, t) { + 'use strict'; + var n = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var a = t(0), + o = t(1), + i = t(3), + s = t(5), + c = t(4), + u = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + n(r, e), + (r.generateKey = function(e, r, t) { + var n = this; + return Promise.resolve().then(function() { + n.checkModule(); + var a = c.nativeCrypto.getRandomValues( + new Uint8Array(e.length / 8) + ), + o = new i.CryptoKey({ + type: 'secret', + algorithm: e, + extractable: r, + usages: t + }); + return (o.key = a), o; + }); + }), + (r.encrypt = function(e, r, t) { + return Promise.resolve().then(function() { + var n; + switch (e.name.toUpperCase()) { + case a.AlgorithmNames.AesECB: + var i = e; + n = asmCrypto.AES_ECB.encrypt(t, r.key, !!i.padding); + break; + case a.AlgorithmNames.AesCBC: + var s = e; + n = asmCrypto.AES_CBC.encrypt( + t, + r.key, + void 0, + a.PrepareData(s.iv, 'iv') + ); + break; + case a.AlgorithmNames.AesGCM: + var c = e; + c.tagLength = c.tagLength || 128; + var u = void 0; + c.additionalData && + (u = a.PrepareData(c.additionalData, 'additionalData')), + (n = asmCrypto.AES_GCM.encrypt( + t, + r.key, + c.iv, + u, + c.tagLength / 8 + )); + break; + default: + throw new o.LinerError( + a.AlgorithmError.UNSUPPORTED_ALGORITHM, + e.name + ); + } + return n.buffer; + }); + }), + (r.decrypt = function(e, r, t) { + return Promise.resolve().then(function() { + var n; + switch (e.name.toUpperCase()) { + case a.AlgorithmNames.AesECB: + var i = e; + n = asmCrypto.AES_ECB.decrypt(t, r.key, !!i.padding); + break; + case a.AlgorithmNames.AesCBC: + var s = e; + n = asmCrypto.AES_CBC.decrypt( + t, + r.key, + void 0, + a.PrepareData(s.iv, 'iv') + ); + break; + case a.AlgorithmNames.AesGCM: + var c = e; + c.tagLength = c.tagLength || 128; + var u = void 0; + c.additionalData && + (u = a.PrepareData(c.additionalData, 'additionalData')), + (n = asmCrypto.AES_GCM.decrypt( + t, + r.key, + c.iv, + u, + c.tagLength / 8 + )); + break; + default: + throw new o.LinerError( + a.AlgorithmError.UNSUPPORTED_ALGORITHM, + e.name + ); + } + return n.buffer; + }); + }), + (r.wrapKey = function(e, r, t, n) { + var a; + return Promise.resolve() + .then(function() { + return (a = new p.Crypto()), a.subtle.exportKey(e, r); + }) + .then(function(e) { + var r; + return ( + (r = + e instanceof ArrayBuffer + ? new Uint8Array(e) + : s.string2buffer(JSON.stringify(e))), + a.subtle.encrypt(n, t, r) + ); + }); + }), + (r.unwrapKey = function(e, r, t, n, a, o, i) { + var c; + return Promise.resolve() + .then(function() { + return (c = new p.Crypto()), c.subtle.decrypt(n, t, r); + }) + .then(function(r) { + var t; + return ( + (t = + 'jwk' === e.toLowerCase() + ? JSON.parse(s.buffer2string(new Uint8Array(r))) + : new Uint8Array(r)), + c.subtle.importKey(e, t, a, o, i) + ); + }); + }), + (r.alg2jwk = function(e) { + return 'A' + e.length + /-(\w+)/i.exec(e.name.toUpperCase())[1]; + }), + (r.jwk2alg = function(e) { + throw new Error('Not implemented'); + }), + (r.exportKey = function(e, r) { + var t = this; + return Promise.resolve().then(function() { + var n = r.key; + if ('jwk' === e.toLowerCase()) { + return { + alg: t.alg2jwk(r.algorithm), + ext: r.extractable, + k: a.Base64Url.encode(n), + key_ops: r.usages, + kty: 'oct' + }; + } + return n.buffer; + }); + }), + (r.importKey = function(e, r, t, n, o) { + return Promise.resolve().then(function() { + var s; + if ('jwk' === e.toLowerCase()) { + var c = r; + s = a.Base64Url.decode(c.k); + } else s = new Uint8Array(r); + var u = new i.CryptoKey({ + type: 'secret', + algorithm: t, + extractable: n, + usages: o + }); + return (u.key = s), u; + }); + }), + (r.checkModule = function() { + if ('undefined' == typeof asmCrypto) + throw new o.LinerError( + o.LinerError.MODULE_NOT_FOUND, + 'asmCrypto', + 'https://github.com/vibornoff/asmcrypto.js' + ); + }), + r + ); + })(a.BaseCrypto); + r.AesCrypto = u; + var p = t(2); + }, + function(e, r, t) { + 'use strict'; + var n = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var a = t(0), + o = t(1), + i = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + n(r, e), + (r.digest = function(e, r) { + return Promise.resolve().then(function() { + if ('undefined' == typeof asmCrypto) + throw new o.LinerError( + o.LinerError.MODULE_NOT_FOUND, + 'asmCrypto', + 'https://github.com/vibornoff/asmcrypto.js' + ); + switch (e.name.toUpperCase()) { + case a.AlgorithmNames.Sha1: + return asmCrypto.SHA1.bytes(r).buffer; + case a.AlgorithmNames.Sha256: + return asmCrypto.SHA256.bytes(r).buffer; + case a.AlgorithmNames.Sha512: + return asmCrypto.SHA512.bytes(r).buffer; + default: + throw new o.LinerError( + "Not supported algorithm '" + e.name + "'" + ); + } + }); + }), + r + ); + })(a.BaseCrypto); + r.ShaCrypto = i; + }, + function(e, r, t) { + 'use strict'; + function n(e) { + for (var r = new Uint8Array(e), t = [], n = 0; n < r.length; n++) + t.push(r[n]); + return t; + } + function a(e, r) { + e.length % 2 && (e = '0' + e); + for (var t = new Uint8Array(e.length / 2), n = 0; n < e.length; n++) { + var a = e.slice(n, ++n + 1); + t[(n - 1) / 2] = parseInt(a, 16); + } + if (r) { + var o = t.length; + (o = o > 32 ? (o > 48 ? 66 : 48) : 32), + t.length < o && (t = p.concat(new Uint8Array(o - t.length), t)); + } + return t; + } + function o(e, r) { + for (var t = '', n = 0; n < e.length; n++) { + var a = e[n].toString(16); + t += a.length % 2 ? '0' + a : a; + } + if (r) { + var o = e.length; + (o = o > 32 ? (o > 48 ? 66 : 48) : 32), + t.length / 2 < o && + (t = new Array(2 * o - t.length + 1).join('0') + t); + } + return t; + } + var i = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var s = t(0), + c = t(1), + u = t(3), + p = t(5), + h = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + i(r, e), + (r.generateKey = function(e, r, t) { + var n = this; + return Promise.resolve().then(function() { + n.checkModule(); + var t = new elliptic.ec(n.getNamedCurve(e.namedCurve)), + a = new u.CryptoKey({ + type: 'private', + algorithm: e, + extractable: r, + usages: [] + }), + o = new u.CryptoKey({ + type: 'public', + algorithm: e, + extractable: !0, + usages: [] + }); + return ( + (a.key = o.key = t.genKeyPair()), + e.name === s.AlgorithmNames.EcDSA + ? ((a.usages = ['sign']), (o.usages = ['verify'])) + : e.name === s.AlgorithmNames.EcDH && + ((a.usages = ['deriveKey', 'deriveBits']), (o.usages = [])), + { privateKey: a, publicKey: o } + ); + }); + }), + (r.sign = function(e, r, t) { + return Promise.resolve() + .then(function() { + var r = e; + return new f.Crypto().subtle.digest(r.hash, t); + }) + .then(function(e) { + var t = n(e), + i = r.key.sign(t); + return a(o(i.r.toArray(), !0) + o(i.s.toArray(), !0)).buffer; + }); + }), + (r.verify = function(e, r, t, a) { + var o; + return Promise.resolve() + .then(function() { + var r = e; + return ( + (o = { + r: t.slice(0, t.byteLength / 2), + s: t.slice(t.byteLength / 2) + }), + new f.Crypto().subtle.digest(r.hash, a) + ); + }) + .then(function(e) { + var t = n(e); + return r.key.verify(t, o); + }); + }), + (r.deriveKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve() + .then(function() { + return o.deriveBits(e, r, t.length); + }) + .then(function(e) { + return new f.Crypto().subtle.importKey( + 'raw', + new Uint8Array(e), + t, + n, + a + ); + }); + }), + (r.deriveBits = function(e, r, t) { + return Promise.resolve().then(function() { + var n = (Promise.resolve(null), + r.key.derive(e.public.key.getPublic())), + a = new Uint8Array(n.toArray()), + o = a.length; + return ( + (o = o > 32 ? (o > 48 ? 66 : 48) : 32), + a.length < o && (a = p.concat(new Uint8Array(o - a.length), a)), + a.slice(0, t / 8).buffer + ); + }); + }), + (r.exportKey = function(e, r) { + return Promise.resolve().then(function() { + var t = r.key; + if ('jwk' === e.toLowerCase()) { + var n = t.getPublic('hex').slice(2), + o = n.slice(0, n.length / 2), + i = n.slice(n.length / 2, n.length); + if ('public' === r.type) { + var u = { + crv: r.algorithm.namedCurve, + ext: r.extractable, + x: s.Base64Url.encode(a(o, !0)), + y: s.Base64Url.encode(a(i, !0)), + key_ops: r.usages, + kty: 'EC' + }; + return u; + } + var u = { + crv: r.algorithm.namedCurve, + ext: r.extractable, + d: s.Base64Url.encode(a(t.getPrivate('hex'), !0)), + x: s.Base64Url.encode(a(o, !0)), + y: s.Base64Url.encode(a(i, !0)), + key_ops: r.usages, + kty: 'EC' + }; + return u; + } + throw new c.LinerError("Format '" + e + "' is not implemented"); + }); + }), + (r.importKey = function(e, r, t, n, a) { + var i = this; + return Promise.resolve().then(function() { + var h = new u.CryptoKey({ + algorithm: t, + extractable: n, + usages: a + }); + if ('jwk' !== e.toLowerCase()) + throw new c.LinerError("Format '" + e + "' is not implemented"); + var f = i.getNamedCurve(t.namedCurve); + console.log(f); + var y = new elliptic.ec(f); + if (r.d) + (h.key = y.keyFromPrivate(s.Base64Url.decode(r.d))), + (h.type = 'private'); + else { + var l = p.concat( + new Uint8Array([4]), + s.Base64Url.decode(r.x), + s.Base64Url.decode(r.y) + ), + m = o(l); + (h.key = y.keyFromPublic(m, 'hex')), (h.type = 'public'); + } + return h; + }); + }), + (r.checkModule = function() { + if ('undefined' == typeof elliptic) + throw new c.LinerError( + c.LinerError.MODULE_NOT_FOUND, + 'elliptic', + 'https://github.com/indutny/elliptic' + ); + }), + (r.getNamedCurve = function(e) { + var r = e.toUpperCase(), + t = ''; + if (['P-256', 'P-384', 'P-521'].indexOf(r) > -1) + t = r.replace('-', '').toLowerCase(); + else { + if ('K-256' !== r) + throw new c.LinerError("Unsupported named curve '" + e + "'"); + t = 'secp256k1'; + } + return t; + }), + r + ); + })(s.BaseCrypto); + r.EcCrypto = h; + var f = t(2); + }, + function(e, r, t) { + 'use strict'; + var n = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var a = t(0), + o = t(1), + i = t(3), + s = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + n(r, e), + (r.importKey = function(e, r, t, n, a) { + return Promise.resolve().then(function() { + var e = new Uint8Array(r), + o = new i.CryptoKey({ + type: 'secret', + algorithm: t, + extractable: n, + usages: a + }); + return (o.key = e), o; + }); + }), + (r.deriveBits = function(e, r, t) { + return Promise.resolve().then(function() { + var n, + i = new Uint8Array(e.salt), + s = e.iterations, + c = t / 8, + u = 'string' == typeof e.hash ? e.hash : e.hash.name; + switch (u.toUpperCase()) { + case a.AlgorithmNames.Sha512.toUpperCase(): + n = asmCrypto.PBKDF2_HMAC_SHA512.bytes(r.key, i, s, c); + break; + case a.AlgorithmNames.Sha256.toUpperCase(): + n = asmCrypto.PBKDF2_HMAC_SHA256.bytes(r.key, i, s, c); + break; + case a.AlgorithmNames.Sha1.toUpperCase(): + n = asmCrypto.PBKDF2_HMAC_SHA1.bytes(r.key, i, s, c); + break; + default: + throw new o.LinerError(o.LinerError.UNSUPPORTED_ALGORITHM, u); + } + return n.buffer; + }); + }), + (r.deriveKey = function(e, r, t, n, i) { + var s = this; + return Promise.resolve() + .then(function() { + var n = 0; + switch (t.name.toUpperCase()) { + case a.AlgorithmNames.AesCBC.toUpperCase(): + case a.AlgorithmNames.AesCTR.toUpperCase(): + case a.AlgorithmNames.AesGCM.toUpperCase(): + case a.AlgorithmNames.AesKW.toUpperCase(): + n = t.length; + break; + case a.AlgorithmNames.Hmac.toUpperCase(): + n = 512; + break; + default: + throw new o.LinerError( + o.LinerError.UNSUPPORTED_ALGORITHM, + t.name + ); + } + return s.deriveBits(e, r, n); + }) + .then(function(e) { + return new c.Crypto().subtle.importKey( + 'raw', + new Uint8Array(e), + t, + n, + i + ); + }); + }), + r + ); + })(a.BaseCrypto); + r.Pbkdf2Crypto = s; + var c = t(2); + }, + function(e, r, t) { + 'use strict'; + var n = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var a = t(0), + o = t(3), + i = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + n(r, e), + (r.importKey = function(e, r, t, n, i) { + return Promise.resolve().then(function() { + var s; + if ('jwk' === e.toLowerCase()) { + var c = r; + s = a.Base64Url.decode(c.k); + } else s = new Uint8Array(r); + var u = new o.CryptoKey({ + type: 'secret', + algorithm: t, + extractable: n, + usages: i + }); + return (u.key = s), u; + }); + }), + (r.sign = function(e, r, t) { + return Promise.resolve().then(function() { + return asmCrypto.HMAC_SHA256.bytes(t, r.key).buffer; + }); + }), + (r.exportKey = function(e, r) { + return Promise.resolve().then(function() { + var t = r.key; + if ('jwk' === e.toLowerCase()) { + return { + alg: 'HS256', + kty: 'oct', + k: a.Base64Url.encode(t), + key_ops: r.usages, + ext: r.extractable + }; + } + return t.buffer; + }); + }), + r + ); + })(a.BaseCrypto); + r.HmacCrypto = i; + }, + function(e, r, t) { + 'use strict'; + function n(e, r) { + return asmCrypto.HMAC_SHA256.bytes(e, r); + } + function a(e, r, t) { + for ( + var n = e.length, + a = Math.ceil(r / n), + o = new Uint8Array(n * a + t.length + 1), + i = 0, + s = 0, + c = 0; + c < a; + c++ + ) { + o.set(t, s), (o[s + t.length] = c + 1); + var u = asmCrypto.HMAC_SHA256.bytes(o.slice(i, s + t.length + 1), e); + o.set(u, s), (i = s), (s += n); + } + return o.slice(0, r); + } + function o(e, r, t, o) { + return a(n(e, t), r, o); + } + var i = + (this && this.__extends) || + (function() { + var e = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function(e, r) { + e.__proto__ = r; + }) || + function(e, r) { + for (var t in r) r.hasOwnProperty(t) && (e[t] = r[t]); + }; + return function(r, t) { + function n() { + this.constructor = r; + } + e(r, t), + (r.prototype = + null === t + ? Object.create(t) + : ((n.prototype = t.prototype), new n())); + }; + })(); + Object.defineProperty(r, '__esModule', { value: !0 }); + var s = t(0), + c = t(1), + u = t(3), + p = (function(e) { + function r() { + return (null !== e && e.apply(this, arguments)) || this; + } + return ( + i(r, e), + (r.importKey = function(e, r, t, n, a) { + return Promise.resolve().then(function() { + var e = new Uint8Array(r), + o = new u.CryptoKey({ + type: 'secret', + algorithm: t, + extractable: n, + usages: a + }); + return (o.key = e), o; + }); + }), + (r.deriveBits = function(e, r, t) { + return Promise.resolve().then(function() { + var n, + a = new Uint8Array(e.salt), + i = new Uint8Array(e.info), + u = t / 8, + p = 'string' == typeof e.hash ? e.hash : e.hash.name; + switch (p.toUpperCase()) { + case s.AlgorithmNames.Sha256.toUpperCase(): + n = o(r.key, u, a, i); + break; + default: + throw new c.LinerError(c.LinerError.UNSUPPORTED_ALGORITHM, p); + } + return n.buffer; + }); + }), + (r.deriveKey = function(e, r, t, n, a) { + var o = this; + return Promise.resolve() + .then(function() { + var n = 0; + switch (t.name.toUpperCase()) { + case s.AlgorithmNames.AesCBC.toUpperCase(): + case s.AlgorithmNames.AesCTR.toUpperCase(): + case s.AlgorithmNames.AesGCM.toUpperCase(): + case s.AlgorithmNames.AesKW.toUpperCase(): + n = t.length; + break; + case s.AlgorithmNames.Hmac.toUpperCase(): + n = 512; + break; + default: + throw new c.LinerError( + c.LinerError.UNSUPPORTED_ALGORITHM, + t.name + ); + } + return o.deriveBits(e, r, n); + }) + .then(function(e) { + return new h.Crypto().subtle.importKey( + 'raw', + new Uint8Array(e), + t, + n, + a + ); + }); + }), + r + ); + })(s.BaseCrypto); + r.HkdfCrypto = p; + var h = t(2); + }, + function(e, r, t) { + 'use strict'; + Object.defineProperty(r, '__esModule', { value: !0 }); + var n = t(6), + a = self; + n.nativeCrypto && Object.freeze(n.nativeCrypto.getRandomValues), + delete self.crypto, + (a.crypto = new n.Crypto()), + Object.freeze(a.crypto), + (r.crypto = a.crypto); + } +]); +/*! asmCrypto v0.22.0, (c) 2018 asmCrypto.js, opensource.org/licenses/MIT */ +!(function(t, e) { + 'object' == typeof exports && 'undefined' != typeof module + ? e(exports) + : 'function' == typeof define && define.amd + ? define(['exports'], e) + : e((t.asmCrypto = {})); +})(this, function(t) { + 'use strict'; + var e = (function() { + var t, + e, + r = !1; + function s(r, s) { + var i = t[(e[r] + e[s]) % 255]; + return (0 !== r && 0 !== s) || (i = 0), i; + } + var i, n, a, h; + function o() { + function o(r) { + var s, i, n; + for ( + i = n = (function(r) { + var s = t[255 - e[r]]; + return 0 === r && (s = 0), s; + })(r), + s = 0; + s < 4; + s++ + ) + n ^= i = 255 & ((i << 1) | (i >>> 7)); + return (n ^= 99); + } + r || + (function() { + (t = []), (e = []); + var s, + i, + n = 1; + for (s = 0; s < 255; s++) + (t[s] = n), + (i = 128 & n), + (n <<= 1), + (n &= 255), + 128 === i && (n ^= 27), + (n ^= t[s]), + (e[t[s]] = s); + (t[255] = t[0]), (e[0] = 0), (r = !0); + })(), + (i = []), + (n = []), + (a = [[], [], [], []]), + (h = [[], [], [], []]); + for (var c = 0; c < 256; c++) { + var u = o(c); + (i[c] = u), + (n[u] = c), + (a[0][c] = (s(2, u) << 24) | (u << 16) | (u << 8) | s(3, u)), + (h[0][u] = + (s(14, c) << 24) | (s(9, c) << 16) | (s(13, c) << 8) | s(11, c)); + for (var f = 1; f < 4; f++) + (a[f][c] = (a[f - 1][c] >>> 8) | (a[f - 1][c] << 24)), + (h[f][u] = (h[f - 1][u] >>> 8) | (h[f - 1][u] << 24)); + } + } + var c = function(t, e) { + o(); + var r = new Uint32Array(e); + r.set(i, 512), r.set(n, 768); + for (var s = 0; s < 4; s++) + r.set(a[s], (4096 + 1024 * s) >> 2), + r.set(h[s], (8192 + 1024 * s) >> 2); + var c = (function(t, e, r) { + 'use asm'; + var s = 0, + i = 0, + n = 0, + a = 0, + h = 0, + o = 0, + c = 0, + u = 0, + f = 0, + l = 0, + p = 0, + w = 0, + y = 0, + _ = 0, + d = 0, + A = 0, + v = 0, + x = 0, + E = 0, + g = 0, + m = 0; + var b = new t.Uint32Array(r), + S = new t.Uint8Array(r); + function C(t, e, r, h, o, c, u, f) { + t = t | 0; + e = e | 0; + r = r | 0; + h = h | 0; + o = o | 0; + c = c | 0; + u = u | 0; + f = f | 0; + var l = 0, + p = 0, + w = 0, + y = 0, + _ = 0, + d = 0, + A = 0, + v = 0; + (l = r | 0x400), (p = r | 0x800), (w = r | 0xc00); + (o = o ^ b[(t | 0) >> 2]), + (c = c ^ b[(t | 4) >> 2]), + (u = u ^ b[(t | 8) >> 2]), + (f = f ^ b[(t | 12) >> 2]); + for (v = 16; (v | 0) <= h << 4; v = (v + 16) | 0) { + (y = + b[(r | ((o >> 22) & 1020)) >> 2] ^ + b[(l | ((c >> 14) & 1020)) >> 2] ^ + b[(p | ((u >> 6) & 1020)) >> 2] ^ + b[(w | ((f << 2) & 1020)) >> 2] ^ + b[(t | v | 0) >> 2]), + (_ = + b[(r | ((c >> 22) & 1020)) >> 2] ^ + b[(l | ((u >> 14) & 1020)) >> 2] ^ + b[(p | ((f >> 6) & 1020)) >> 2] ^ + b[(w | ((o << 2) & 1020)) >> 2] ^ + b[(t | v | 4) >> 2]), + (d = + b[(r | ((u >> 22) & 1020)) >> 2] ^ + b[(l | ((f >> 14) & 1020)) >> 2] ^ + b[(p | ((o >> 6) & 1020)) >> 2] ^ + b[(w | ((c << 2) & 1020)) >> 2] ^ + b[(t | v | 8) >> 2]), + (A = + b[(r | ((f >> 22) & 1020)) >> 2] ^ + b[(l | ((o >> 14) & 1020)) >> 2] ^ + b[(p | ((c >> 6) & 1020)) >> 2] ^ + b[(w | ((u << 2) & 1020)) >> 2] ^ + b[(t | v | 12) >> 2]); + (o = y), (c = _), (u = d), (f = A); + } + (s = + (b[(e | ((o >> 22) & 1020)) >> 2] << 24) ^ + (b[(e | ((c >> 14) & 1020)) >> 2] << 16) ^ + (b[(e | ((u >> 6) & 1020)) >> 2] << 8) ^ + b[(e | ((f << 2) & 1020)) >> 2] ^ + b[(t | v | 0) >> 2]), + (i = + (b[(e | ((c >> 22) & 1020)) >> 2] << 24) ^ + (b[(e | ((u >> 14) & 1020)) >> 2] << 16) ^ + (b[(e | ((f >> 6) & 1020)) >> 2] << 8) ^ + b[(e | ((o << 2) & 1020)) >> 2] ^ + b[(t | v | 4) >> 2]), + (n = + (b[(e | ((u >> 22) & 1020)) >> 2] << 24) ^ + (b[(e | ((f >> 14) & 1020)) >> 2] << 16) ^ + (b[(e | ((o >> 6) & 1020)) >> 2] << 8) ^ + b[(e | ((c << 2) & 1020)) >> 2] ^ + b[(t | v | 8) >> 2]), + (a = + (b[(e | ((f >> 22) & 1020)) >> 2] << 24) ^ + (b[(e | ((o >> 14) & 1020)) >> 2] << 16) ^ + (b[(e | ((c >> 6) & 1020)) >> 2] << 8) ^ + b[(e | ((u << 2) & 1020)) >> 2] ^ + b[(t | v | 12) >> 2]); + } + function M(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + C(0x0000, 0x0800, 0x1000, m, t, e, r, s); + } + function U(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + var n = 0; + C(0x0400, 0x0c00, 0x2000, m, t, s, r, e); + (n = i), (i = a), (a = n); + } + function H(t, e, r, f) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + C(0x0000, 0x0800, 0x1000, m, h ^ t, o ^ e, c ^ r, u ^ f); + (h = s), (o = i), (c = n), (u = a); + } + function T(t, e, r, f) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + var l = 0; + C(0x0400, 0x0c00, 0x2000, m, t, f, r, e); + (l = i), (i = a), (a = l); + (s = s ^ h), (i = i ^ o), (n = n ^ c), (a = a ^ u); + (h = t), (o = e), (c = r), (u = f); + } + function D(t, e, r, f) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + C(0x0000, 0x0800, 0x1000, m, h, o, c, u); + (h = s = s ^ t), (o = i = i ^ e), (c = n = n ^ r), (u = a = a ^ f); + } + function k(t, e, r, f) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + C(0x0000, 0x0800, 0x1000, m, h, o, c, u); + (s = s ^ t), (i = i ^ e), (n = n ^ r), (a = a ^ f); + (h = t), (o = e), (c = r), (u = f); + } + function G(t, e, r, f) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + C(0x0000, 0x0800, 0x1000, m, h, o, c, u); + (h = s), (o = i), (c = n), (u = a); + (s = s ^ t), (i = i ^ e), (n = n ^ r), (a = a ^ f); + } + function I(t, e, r, h) { + t = t | 0; + e = e | 0; + r = r | 0; + h = h | 0; + C(0x0000, 0x0800, 0x1000, m, f, l, p, w); + w = (~A & w) | (A & (w + 1)); + p = (~d & p) | (d & (p + ((w | 0) == 0))); + l = (~_ & l) | (_ & (l + ((p | 0) == 0))); + f = (~y & f) | (y & (f + ((l | 0) == 0))); + s = s ^ t; + i = i ^ e; + n = n ^ r; + a = a ^ h; + } + function Z(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + var i = 0, + n = 0, + a = 0, + f = 0, + l = 0, + p = 0, + w = 0, + y = 0, + _ = 0, + d = 0; + (t = t ^ h), (e = e ^ o), (r = r ^ c), (s = s ^ u); + (i = v | 0), (n = x | 0), (a = E | 0), (f = g | 0); + for (; (_ | 0) < 128; _ = (_ + 1) | 0) { + if (i >>> 31) { + (l = l ^ t), (p = p ^ e), (w = w ^ r), (y = y ^ s); + } + (i = (i << 1) | (n >>> 31)), + (n = (n << 1) | (a >>> 31)), + (a = (a << 1) | (f >>> 31)), + (f = f << 1); + d = s & 1; + (s = (s >>> 1) | (r << 31)), + (r = (r >>> 1) | (e << 31)), + (e = (e >>> 1) | (t << 31)), + (t = t >>> 1); + if (d) t = t ^ 0xe1000000; + } + (h = l), (o = p), (c = w), (u = y); + } + function P(t) { + t = t | 0; + m = t; + } + function B(t, e, r, h) { + t = t | 0; + e = e | 0; + r = r | 0; + h = h | 0; + (s = t), (i = e), (n = r), (a = h); + } + function z(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + (h = t), (o = e), (c = r), (u = s); + } + function O(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + (f = t), (l = e), (p = r), (w = s); + } + function q(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + (y = t), (_ = e), (d = r), (A = s); + } + function L(t, e, r, s) { + t = t | 0; + e = e | 0; + r = r | 0; + s = s | 0; + (w = (~A & w) | (A & s)), + (p = (~d & p) | (d & r)), + (l = (~_ & l) | (_ & e)), + (f = (~y & f) | (y & t)); + } + function R(t) { + t = t | 0; + if (t & 15) return -1; + (S[t | 0] = s >>> 24), + (S[t | 1] = (s >>> 16) & 255), + (S[t | 2] = (s >>> 8) & 255), + (S[t | 3] = s & 255), + (S[t | 4] = i >>> 24), + (S[t | 5] = (i >>> 16) & 255), + (S[t | 6] = (i >>> 8) & 255), + (S[t | 7] = i & 255), + (S[t | 8] = n >>> 24), + (S[t | 9] = (n >>> 16) & 255), + (S[t | 10] = (n >>> 8) & 255), + (S[t | 11] = n & 255), + (S[t | 12] = a >>> 24), + (S[t | 13] = (a >>> 16) & 255), + (S[t | 14] = (a >>> 8) & 255), + (S[t | 15] = a & 255); + return 16; + } + function K(t) { + t = t | 0; + if (t & 15) return -1; + (S[t | 0] = h >>> 24), + (S[t | 1] = (h >>> 16) & 255), + (S[t | 2] = (h >>> 8) & 255), + (S[t | 3] = h & 255), + (S[t | 4] = o >>> 24), + (S[t | 5] = (o >>> 16) & 255), + (S[t | 6] = (o >>> 8) & 255), + (S[t | 7] = o & 255), + (S[t | 8] = c >>> 24), + (S[t | 9] = (c >>> 16) & 255), + (S[t | 10] = (c >>> 8) & 255), + (S[t | 11] = c & 255), + (S[t | 12] = u >>> 24), + (S[t | 13] = (u >>> 16) & 255), + (S[t | 14] = (u >>> 8) & 255), + (S[t | 15] = u & 255); + return 16; + } + function N() { + M(0, 0, 0, 0); + (v = s), (x = i), (E = n), (g = a); + } + function F(t, e, r) { + t = t | 0; + e = e | 0; + r = r | 0; + var h = 0; + if (e & 15) return -1; + while ((r | 0) >= 16) { + V[t & 7]( + (S[e | 0] << 24) | + (S[e | 1] << 16) | + (S[e | 2] << 8) | + S[e | 3], + (S[e | 4] << 24) | + (S[e | 5] << 16) | + (S[e | 6] << 8) | + S[e | 7], + (S[e | 8] << 24) | + (S[e | 9] << 16) | + (S[e | 10] << 8) | + S[e | 11], + (S[e | 12] << 24) | + (S[e | 13] << 16) | + (S[e | 14] << 8) | + S[e | 15] + ); + (S[e | 0] = s >>> 24), + (S[e | 1] = (s >>> 16) & 255), + (S[e | 2] = (s >>> 8) & 255), + (S[e | 3] = s & 255), + (S[e | 4] = i >>> 24), + (S[e | 5] = (i >>> 16) & 255), + (S[e | 6] = (i >>> 8) & 255), + (S[e | 7] = i & 255), + (S[e | 8] = n >>> 24), + (S[e | 9] = (n >>> 16) & 255), + (S[e | 10] = (n >>> 8) & 255), + (S[e | 11] = n & 255), + (S[e | 12] = a >>> 24), + (S[e | 13] = (a >>> 16) & 255), + (S[e | 14] = (a >>> 8) & 255), + (S[e | 15] = a & 255); + (h = (h + 16) | 0), (e = (e + 16) | 0), (r = (r - 16) | 0); + } + return h | 0; + } + function j(t, e, r) { + t = t | 0; + e = e | 0; + r = r | 0; + var s = 0; + if (e & 15) return -1; + while ((r | 0) >= 16) { + W[t & 1]( + (S[e | 0] << 24) | + (S[e | 1] << 16) | + (S[e | 2] << 8) | + S[e | 3], + (S[e | 4] << 24) | + (S[e | 5] << 16) | + (S[e | 6] << 8) | + S[e | 7], + (S[e | 8] << 24) | + (S[e | 9] << 16) | + (S[e | 10] << 8) | + S[e | 11], + (S[e | 12] << 24) | + (S[e | 13] << 16) | + (S[e | 14] << 8) | + S[e | 15] + ); + (s = (s + 16) | 0), (e = (e + 16) | 0), (r = (r - 16) | 0); + } + return s | 0; + } + var V = [M, U, H, T, D, k, G, I]; + var W = [H, Z]; + return { + set_rounds: P, + set_state: B, + set_iv: z, + set_nonce: O, + set_mask: q, + set_counter: L, + get_state: R, + get_iv: K, + gcm_init: N, + cipher: F, + mac: j + }; + })({ Uint8Array: Uint8Array, Uint32Array: Uint32Array }, t, e); + return ( + (c.set_key = function(t, e, s, n, a, o, u, f, l) { + var p = r.subarray(0, 60), + w = r.subarray(256, 316); + p.set([e, s, n, a, o, u, f, l]); + for (var y = t, _ = 1; y < 4 * t + 28; y++) { + var d = p[y - 1]; + (y % t == 0 || (8 === t && y % t == 4)) && + (d = + (i[d >>> 24] << 24) ^ + (i[(d >>> 16) & 255] << 16) ^ + (i[(d >>> 8) & 255] << 8) ^ + i[255 & d]), + y % t == 0 && + ((d = (d << 8) ^ (d >>> 24) ^ (_ << 24)), + (_ = (_ << 1) ^ (128 & _ ? 27 : 0))), + (p[y] = p[y - t] ^ d); + } + for (var A = 0; A < y; A += 4) + for (var v = 0; v < 4; v++) + (d = p[y - (4 + A) + ((4 - v) % 4)]), + (w[A + v] = + A < 4 || A >= y - 4 + ? d + : h[0][i[d >>> 24]] ^ + h[1][i[(d >>> 16) & 255]] ^ + h[2][i[(d >>> 8) & 255]] ^ + h[3][i[255 & d]]); + c.set_rounds(t + 5); + }), + c + ); + }; + return ( + (c.ENC = { ECB: 0, CBC: 2, CFB: 4, OFB: 6, CTR: 7 }), + (c.DEC = { ECB: 1, CBC: 3, CFB: 5, OFB: 6, CTR: 7 }), + (c.MAC = { CBC: 0, GCM: 1 }), + (c.HEAP_DATA = 16384), + c + ); + })(), + r = new Uint8Array(1048576), + s = e(null, r.buffer); + function i() { + var t = Error.apply(this, arguments); + (this.message = t.message), (this.stack = t.stack); + } + function n() { + var t = Error.apply(this, arguments); + (this.message = t.message), (this.stack = t.stack); + } + function a() { + var t = Error.apply(this, arguments); + (this.message = t.message), (this.stack = t.stack); + } + function h(t, e) { + e = !!e; + for ( + var r = t.length, s = new Uint8Array(e ? 4 * r : r), i = 0, n = 0; + i < r; + i++ + ) { + var a = t.charCodeAt(i); + if (e && 55296 <= a && a <= 56319) { + if (++i >= r) + throw new Error( + 'Malformed string, low surrogate expected at position ' + i + ); + a = ((55296 ^ a) << 10) | 65536 | (56320 ^ t.charCodeAt(i)); + } else if (!e && a >>> 8) + throw new Error('Wide characters are not allowed.'); + !e || a <= 127 + ? (s[n++] = a) + : a <= 2047 + ? ((s[n++] = 192 | (a >> 6)), (s[n++] = 128 | (63 & a))) + : a <= 65535 + ? ((s[n++] = 224 | (a >> 12)), + (s[n++] = 128 | ((a >> 6) & 63)), + (s[n++] = 128 | (63 & a))) + : ((s[n++] = 240 | (a >> 18)), + (s[n++] = 128 | ((a >> 12) & 63)), + (s[n++] = 128 | ((a >> 6) & 63)), + (s[n++] = 128 | (63 & a))); + } + return s.subarray(0, n); + } + function o(t) { + for (var e = '', r = 0; r < t.length; r++) { + var s = (255 & t[r]).toString(16); + s.length < 2 && (e += '0'), (e += s); + } + return e; + } + function c(t) { + return btoa( + (function(t, e) { + e = !!e; + for (var r = t.length, s = new Array(r), i = 0, n = 0; i < r; i++) { + var a = t[i]; + if (!e || a < 128) s[n++] = a; + else if (a >= 192 && a < 224 && i + 1 < r) + s[n++] = ((31 & a) << 6) | (63 & t[++i]); + else if (a >= 224 && a < 240 && i + 2 < r) + s[n++] = ((15 & a) << 12) | ((63 & t[++i]) << 6) | (63 & t[++i]); + else { + if (!(a >= 240 && a < 248 && i + 3 < r)) + throw new Error('Malformed UTF8 character at byte offset ' + i); + var h = + ((7 & a) << 18) | + ((63 & t[++i]) << 12) | + ((63 & t[++i]) << 6) | + (63 & t[++i]); + h <= 65535 + ? (s[n++] = h) + : ((h ^= 65536), + (s[n++] = 55296 | (h >> 10)), + (s[n++] = 56320 | (1023 & h))); + } + } + var o = ''; + for (i = 0; i < n; i += 16384) + o += String.fromCharCode.apply( + String, + s.slice(i, i + 16384 <= n ? i + 16384 : n) + ); + return o; + })(t) + ); + } + function u(t) { + return 'number' == typeof t; + } + function f(t) { + return 'string' == typeof t; + } + function l(t) { + return t instanceof ArrayBuffer; + } + function p(t) { + return t instanceof Uint8Array; + } + function w(t, e, r) { + var s = e ? e.byteLength : r || 65536; + if (4095 & s || s <= 0) + throw new Error( + 'heap size must be a positive integer and a multiple of 4096' + ); + return (e = e || new t(new ArrayBuffer(s))); + } + function y(t, e, r, s, i) { + var n = t.length - e, + a = n < i ? n : i; + return t.set(r.subarray(s, s + a), e), a; + } + (i.prototype = Object.create(Error.prototype, { + name: { value: 'IllegalStateError' } + })), + (n.prototype = Object.create(Error.prototype, { + name: { value: 'IllegalArgumentError' } + })), + (a.prototype = Object.create(Error.prototype, { + name: { value: 'SecurityError' } + })); + class _ { + constructor(t, r, s, i, n) { + (this.nonce = null), + (this.counter = 0), + (this.counterSize = 0), + (this.heap = w(Uint8Array, i).subarray(e.HEAP_DATA)), + (this.asm = n || e(null, this.heap.buffer)), + (this.mode = null), + (this.key = null), + this.AES_reset(t, r, s); + } + AES_set_key(t) { + if (void 0 !== t) { + if (!p(t)) throw new TypeError('unexpected key type'); + var e = t.length; + if (16 !== e && 24 !== e && 32 !== e) throw new n('illegal key size'); + var r = new DataView(t.buffer, t.byteOffset, t.byteLength); + this.asm.set_key( + e >> 2, + r.getUint32(0), + r.getUint32(4), + r.getUint32(8), + r.getUint32(12), + e > 16 ? r.getUint32(16) : 0, + e > 16 ? r.getUint32(20) : 0, + e > 24 ? r.getUint32(24) : 0, + e > 24 ? r.getUint32(28) : 0 + ), + (this.key = t); + } else if (!this.key) throw new Error('key is required'); + } + AES_CTR_set_options(t, e, r) { + if (void 0 !== r) { + if (r < 8 || r > 48) throw new n('illegal counter size'); + this.counterSize = r; + var s = Math.pow(2, r) - 1; + this.asm.set_mask(0, 0, (s / 4294967296) | 0, 0 | s); + } else (this.counterSize = r = 48), this.asm.set_mask(0, 0, 65535, 4294967295); + if (void 0 === t) throw new Error('nonce is required'); + if (!p(t)) throw new TypeError('unexpected nonce type'); + var i = t.length; + if (!i || i > 16) throw new n('illegal nonce size'); + this.nonce = t; + var a = new DataView(new ArrayBuffer(16)); + if ( + (new Uint8Array(a.buffer).set(t), + this.asm.set_nonce( + a.getUint32(0), + a.getUint32(4), + a.getUint32(8), + a.getUint32(12) + ), + void 0 !== e) + ) { + if (!u(e)) throw new TypeError('unexpected counter type'); + if (e < 0 || e >= Math.pow(2, r)) throw new n('illegal counter value'); + (this.counter = e), + this.asm.set_counter(0, 0, (e / 4294967296) | 0, 0 | e); + } else this.counter = 0; + } + AES_set_iv(t) { + if (void 0 !== t) { + if (!p(t)) throw new TypeError('unexpected iv type'); + if (16 !== t.length) throw new n('illegal iv size'); + var e = new DataView(t.buffer, t.byteOffset, t.byteLength); + (this.iv = t), + this.asm.set_iv( + e.getUint32(0), + e.getUint32(4), + e.getUint32(8), + e.getUint32(12) + ); + } else (this.iv = null), this.asm.set_iv(0, 0, 0, 0); + } + AES_set_padding(t) { + this.padding = void 0 === t || !!t; + } + AES_reset(t, e, r) { + return ( + (this.result = null), + (this.pos = 0), + (this.len = 0), + this.AES_set_key(t), + this.AES_set_iv(e), + this.AES_set_padding(r), + this + ); + } + AES_Encrypt_process(t) { + if (!p(t)) throw new TypeError("data isn't of expected type"); + for ( + var r = this.asm, + s = this.heap, + i = e.ENC[this.mode], + n = e.HEAP_DATA, + a = this.pos, + h = this.len, + o = 0, + c = t.length || 0, + u = 0, + f = 0, + l = new Uint8Array((h + c) & -16); + c > 0; + + ) + (h += f = y(s, a + h, t, o, c)), + (o += f), + (c -= f), + (f = r.cipher(i, n + a, h)) && l.set(s.subarray(a, a + f), u), + (u += f), + f < h ? ((a += f), (h -= f)) : ((a = 0), (h = 0)); + return (this.result = l), (this.pos = a), (this.len = h), this; + } + AES_Encrypt_finish(t) { + var r = null, + s = 0; + void 0 !== t && (s = (r = this.AES_Encrypt_process(t).result).length); + var i = this.asm, + a = this.heap, + h = e.ENC[this.mode], + o = e.HEAP_DATA, + c = this.pos, + u = this.len, + f = 16 - (u % 16), + l = u; + if (this.hasOwnProperty('padding')) { + if (this.padding) { + for (var p = 0; p < f; ++p) a[c + u + p] = f; + l = u += f; + } else if (u % 16) + throw new n('data length must be a multiple of the block size'); + } else u += f; + var w = new Uint8Array(s + l); + return ( + s && w.set(r), + u && i.cipher(h, o + c, u), + l && w.set(a.subarray(c, c + l), s), + (this.result = w), + (this.pos = 0), + (this.len = 0), + this + ); + } + AES_Decrypt_process(t) { + if (!p(t)) throw new TypeError("data isn't of expected type"); + var r = this.asm, + s = this.heap, + i = e.DEC[this.mode], + n = e.HEAP_DATA, + a = this.pos, + h = this.len, + o = 0, + c = t.length || 0, + u = 0, + f = (h + c) & -16, + l = 0, + w = 0; + this.padding && (f -= l = h + c - f || 16); + for (var _ = new Uint8Array(f); c > 0; ) + (h += w = y(s, a + h, t, o, c)), + (o += w), + (c -= w), + (w = r.cipher(i, n + a, h - (c ? 0 : l))) && + _.set(s.subarray(a, a + w), u), + (u += w), + w < h ? ((a += w), (h -= w)) : ((a = 0), (h = 0)); + return (this.result = _), (this.pos = a), (this.len = h), this; + } + AES_Decrypt_finish(t) { + var r = null, + s = 0; + void 0 !== t && (s = (r = this.AES_Decrypt_process(t).result).length); + var i = this.asm, + h = this.heap, + o = e.DEC[this.mode], + c = e.HEAP_DATA, + u = this.pos, + f = this.len, + l = f; + if (f > 0) { + if (f % 16) { + if (this.hasOwnProperty('padding')) + throw new n('data length must be a multiple of the block size'); + f += 16 - (f % 16); + } + if ( + (i.cipher(o, c + u, f), + this.hasOwnProperty('padding') && this.padding) + ) { + var p = h[u + l - 1]; + if (p < 1 || p > 16 || p > l) throw new a('bad padding'); + for (var w = 0, y = p; y > 1; y--) w |= p ^ h[u + l - y]; + if (w) throw new a('bad padding'); + l -= p; + } + } + var _ = new Uint8Array(s + l); + return ( + s > 0 && _.set(r), + l > 0 && _.set(h.subarray(u, u + l), s), + (this.result = _), + (this.pos = 0), + (this.len = 0), + this + ); + } + } + var d = 68719476704; + class A extends _ { + constructor(t, e, r, s, i, n) { + super(t, void 0, !1, i, n), + (this.nonce = null), + (this.adata = null), + (this.iv = null), + (this.counter = 1), + (this.tagSize = 16), + (this.mode = 'GCM'), + (this.BLOCK_SIZE = 16), + this.reset(t, s, e, r); + } + reset(t, e, r, s) { + return this.AES_GCM_reset(t, e, r, s); + } + encrypt(t) { + return this.AES_GCM_encrypt(t); + } + decrypt(t) { + return this.AES_GCM_decrypt(t); + } + AES_GCM_Encrypt_process(t) { + if (!p(t)) throw new TypeError("data isn't of expected type"); + var r = 0, + s = t.length || 0, + i = this.asm, + n = this.heap, + a = this.counter, + h = this.pos, + o = this.len, + c = 0, + u = (o + s) & -16, + f = 0; + if (((a - 1) << 4) + o + s > d) throw new RangeError('counter overflow'); + for (var l = new Uint8Array(u); s > 0; ) + (o += f = y(n, h + o, t, r, s)), + (r += f), + (s -= f), + (f = i.cipher(e.ENC.CTR, e.HEAP_DATA + h, o)), + (f = i.mac(e.MAC.GCM, e.HEAP_DATA + h, f)) && + l.set(n.subarray(h, h + f), c), + (a += f >>> 4), + (c += f), + f < o ? ((h += f), (o -= f)) : ((h = 0), (o = 0)); + return ( + (this.result = l), + (this.counter = a), + (this.pos = h), + (this.len = o), + this + ); + } + AES_GCM_Encrypt_finish() { + var t = this.asm, + r = this.heap, + s = this.counter, + i = this.tagSize, + n = this.adata, + a = this.pos, + h = this.len, + o = new Uint8Array(h + i); + t.cipher(e.ENC.CTR, e.HEAP_DATA + a, (h + 15) & -16), + h && o.set(r.subarray(a, a + h)); + for (var c = h; 15 & c; c++) r[a + c] = 0; + t.mac(e.MAC.GCM, e.HEAP_DATA + a, c); + var u = null !== n ? n.length : 0, + f = ((s - 1) << 4) + h; + return ( + (r[0] = r[1] = r[2] = 0), + (r[3] = u >>> 29), + (r[4] = u >>> 21), + (r[5] = (u >>> 13) & 255), + (r[6] = (u >>> 5) & 255), + (r[7] = (u << 3) & 255), + (r[8] = r[9] = r[10] = 0), + (r[11] = f >>> 29), + (r[12] = (f >>> 21) & 255), + (r[13] = (f >>> 13) & 255), + (r[14] = (f >>> 5) & 255), + (r[15] = (f << 3) & 255), + t.mac(e.MAC.GCM, e.HEAP_DATA, 16), + t.get_iv(e.HEAP_DATA), + t.set_counter(0, 0, 0, this.gamma0), + t.cipher(e.ENC.CTR, e.HEAP_DATA, 16), + o.set(r.subarray(0, i), h), + (this.result = o), + (this.counter = 1), + (this.pos = 0), + (this.len = 0), + this + ); + } + AES_GCM_Decrypt_process(t) { + if (!p(t)) throw new TypeError("data isn't of expected type"); + var r = 0, + s = t.length || 0, + i = this.asm, + n = this.heap, + a = this.counter, + h = this.tagSize, + o = this.pos, + c = this.len, + u = 0, + f = c + s > h ? (c + s - h) & -16 : 0, + l = c + s - f, + w = 0; + if (((a - 1) << 4) + c + s > d) throw new RangeError('counter overflow'); + for (var _ = new Uint8Array(f); s > l; ) + (c += w = y(n, o + c, t, r, s - l)), + (r += w), + (s -= w), + (w = i.mac(e.MAC.GCM, e.HEAP_DATA + o, w)), + (w = i.cipher(e.DEC.CTR, e.HEAP_DATA + o, w)) && + _.set(n.subarray(o, o + w), u), + (a += w >>> 4), + (u += w), + (o = 0), + (c = 0); + return ( + s > 0 && (c += y(n, 0, t, r, s)), + (this.result = _), + (this.counter = a), + (this.pos = o), + (this.len = c), + this + ); + } + AES_GCM_Decrypt_finish() { + var t = this.asm, + r = this.heap, + s = this.tagSize, + n = this.adata, + h = this.counter, + o = this.pos, + c = this.len, + u = c - s; + if (c < s) throw new i('authentication tag not found'); + for ( + var f = new Uint8Array(u), + l = new Uint8Array(r.subarray(o + u, o + c)), + p = u; + 15 & p; + p++ + ) + r[o + p] = 0; + t.mac(e.MAC.GCM, e.HEAP_DATA + o, p), + t.cipher(e.DEC.CTR, e.HEAP_DATA + o, p), + u && f.set(r.subarray(o, o + u)); + var w = null !== n ? n.length : 0, + y = ((h - 1) << 4) + c - s; + (r[0] = r[1] = r[2] = 0), + (r[3] = w >>> 29), + (r[4] = w >>> 21), + (r[5] = (w >>> 13) & 255), + (r[6] = (w >>> 5) & 255), + (r[7] = (w << 3) & 255), + (r[8] = r[9] = r[10] = 0), + (r[11] = y >>> 29), + (r[12] = (y >>> 21) & 255), + (r[13] = (y >>> 13) & 255), + (r[14] = (y >>> 5) & 255), + (r[15] = (y << 3) & 255), + t.mac(e.MAC.GCM, e.HEAP_DATA, 16), + t.get_iv(e.HEAP_DATA), + t.set_counter(0, 0, 0, this.gamma0), + t.cipher(e.ENC.CTR, e.HEAP_DATA, 16); + var _ = 0; + for (p = 0; p < s; ++p) _ |= l[p] ^ r[p]; + if (_) throw new a('data integrity check failed'); + return ( + (this.result = f), + (this.counter = 1), + (this.pos = 0), + (this.len = 0), + this + ); + } + AES_GCM_decrypt(t) { + var e = this.AES_GCM_Decrypt_process(t).result, + r = this.AES_GCM_Decrypt_finish().result, + s = new Uint8Array(e.length + r.length); + return ( + e.length && s.set(e), + r.length && s.set(r, e.length), + (this.result = s), + this + ); + } + AES_GCM_encrypt(t) { + var e = this.AES_GCM_Encrypt_process(t).result, + r = this.AES_GCM_Encrypt_finish().result, + s = new Uint8Array(e.length + r.length); + return ( + e.length && s.set(e), + r.length && s.set(r, e.length), + (this.result = s), + this + ); + } + AES_GCM_reset(t, r, s, i, a, h) { + this.AES_reset(t, void 0, !1); + var o = this.asm, + c = this.heap; + if ((o.gcm_init(), void 0 !== (r = r))) { + if (!u(r)) throw new TypeError('tagSize must be a number'); + if (r < 4 || r > 16) throw new n('illegal tagSize value'); + this.tagSize = r; + } else this.tagSize = 16; + if (void 0 === s) throw new Error('nonce is required'); + if (!p(s)) throw new TypeError('unexpected nonce type'); + this.nonce = s; + var f = s.length || 0, + l = new Uint8Array(16); + 12 !== f + ? (this._gcm_mac_process(s), + (c[0] = c[1] = c[2] = c[3] = c[4] = c[5] = c[6] = c[7] = c[8] = c[9] = c[10] = 0), + (c[11] = f >>> 29), + (c[12] = (f >>> 21) & 255), + (c[13] = (f >>> 13) & 255), + (c[14] = (f >>> 5) & 255), + (c[15] = (f << 3) & 255), + o.mac(e.MAC.GCM, e.HEAP_DATA, 16), + o.get_iv(e.HEAP_DATA), + o.set_iv(), + l.set(c.subarray(0, 16))) + : (l.set(s), (l[15] = 1)); + var w = new DataView(l.buffer); + if ( + ((this.gamma0 = w.getUint32(12)), + o.set_nonce(w.getUint32(0), w.getUint32(4), w.getUint32(8), 0), + o.set_mask(0, 0, 0, 4294967295), + void 0 !== i && null !== i) + ) { + if (!p(i)) throw new TypeError('unexpected adata type'); + if (i.length > d) throw new n('illegal adata length'); + i.length + ? ((this.adata = i), this._gcm_mac_process(i)) + : (this.adata = null); + } else this.adata = null; + if (void 0 !== a) { + if (!u(a)) throw new TypeError('counter must be a number'); + if (a < 1 || a > 4294967295) + throw new RangeError('counter must be a positive 32-bit integer'); + (this.counter = a), o.set_counter(0, 0, 0, (this.gamma0 + a) | 0); + } else (this.counter = 1), o.set_counter(0, 0, 0, (this.gamma0 + 1) | 0); + if (void 0 !== h) { + if (!u(h)) throw new TypeError('iv must be a number'); + (this.iv = h), this.AES_set_iv(h); + } + return this; + } + _gcm_mac_process(t) { + for ( + var r = this.heap, s = this.asm, i = 0, n = t.length || 0, a = 0; + n > 0; + + ) { + for (i += a = y(r, 0, t, i, n), n -= a; 15 & a; ) r[a++] = 0; + s.mac(e.MAC.GCM, e.HEAP_DATA, a); + } + } + } + (A.encrypt = function(t, e, i, n, a) { + if (void 0 === t) throw new SyntaxError('data required'); + if (void 0 === e) throw new SyntaxError('key required'); + if (void 0 === i) throw new SyntaxError('nonce required'); + return new A(e, i, n, a, r, s).encrypt(t).result; + }), + (A.decrypt = function(t, e, i, n, a) { + if (void 0 === t) throw new SyntaxError('data required'); + if (void 0 === e) throw new SyntaxError('key required'); + if (void 0 === i) throw new SyntaxError('nonce required'); + return new A(e, i, n, a, r, s).decrypt(t).result; + }); + class v { + constructor(t) { + if (!(t = t || {}).hash) + throw new SyntaxError("option 'hash' is required"); + if (!t.hash.HASH_SIZE) + throw new SyntaxError( + "option 'hash' supplied doesn't seem to be a valid hash function" + ); + return ( + (this.hash = t.hash), + (this.BLOCK_SIZE = this.hash.BLOCK_SIZE), + (this.HMAC_SIZE = this.hash.HASH_SIZE), + (this.key = null), + (this.verify = null), + (this.result = null), + (void 0 === t.password && void 0 === t.verify) || this.reset(t), + this + ); + } + reset(t) { + var e = (t = t || {}).password; + if (null === this.key && !f(e) && !e) + throw new i('no key is associated with the instance'); + (this.result = null), + this.hash.reset(), + (e || f(e)) && (this.key = x(this.hash, e)); + for (var r = new Uint8Array(this.key), s = 0; s < r.length; ++s) + r[s] ^= 54; + this.hash.process(r); + var n = t.verify; + return ( + void 0 !== n ? this._hmac_init_verify(n) : (this.verify = null), this + ); + } + process(t) { + if (null === this.key) + throw new i('no key is associated with the instance'); + if (null !== this.result) + throw new i('state must be reset before processing new data'); + return this.hash.process(t), this; + } + finish() { + if (null === this.key) + throw new i('no key is associated with the instance'); + if (null !== this.result) + throw new i('state must be reset before processing new data'); + for ( + var t = this.hash.finish().result, e = new Uint8Array(this.key), r = 0; + r < e.length; + ++r + ) + e[r] ^= 92; + var s = this.verify, + n = this.hash + .reset() + .process(e) + .process(t) + .finish().result; + if (s) + if (s.length === n.length) { + var a = 0; + for (r = 0; r < s.length; r++) a |= s[r] ^ n[r]; + this.result = !a; + } else this.result = !1; + else this.result = n; + return this; + } + _hmac_init_verify(t) { + if (l(t) || p(t)) t = new Uint8Array(t); + else { + if (!f(t)) throw new TypeError("verify tag isn't of expected type"); + t = h(t); + } + if (t.length !== this.HMAC_SIZE) + throw new n('illegal verification tag size'); + this.verify = t; + } + } + function x(t, e) { + if ((l(e) && (e = new Uint8Array(e)), f(e) && (e = h(e)), !p(e))) + throw new TypeError("password isn't of expected type"); + var r = new Uint8Array(t.BLOCK_SIZE); + return ( + e.length > t.BLOCK_SIZE + ? r.set( + t + .reset() + .process(e) + .finish().result + ) + : r.set(e), + r + ); + } + var E = 64, + g = 32; + function m(t) { + (t = t || {}), + (this.heap = w(Uint8Array, t.heap)), + (this.asm = + t.asm || + (function(t, e, r) { + 'use asm'; + var s = 0, + i = 0, + n = 0, + a = 0, + h = 0, + o = 0, + c = 0, + u = 0, + f = 0, + l = 0, + p = 0, + w = 0, + y = 0, + _ = 0, + d = 0, + A = 0, + v = 0, + x = 0, + E = 0, + g = 0, + m = 0, + b = 0, + S = 0, + C = 0, + M = 0, + U = 0, + H = new t.Uint8Array(r); + function T(t, e, r, f, l, p, w, y, _, d, A, v, x, E, g, m) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + l = l | 0; + p = p | 0; + w = w | 0; + y = y | 0; + _ = _ | 0; + d = d | 0; + A = A | 0; + v = v | 0; + x = x | 0; + E = E | 0; + g = g | 0; + m = m | 0; + var b = 0, + S = 0, + C = 0, + M = 0, + U = 0, + H = 0, + T = 0, + D = 0; + b = s; + S = i; + C = n; + M = a; + U = h; + H = o; + T = c; + D = u; + D = + (t + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0x428a2f98) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + T = + (e + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0x71374491) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + H = + (r + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0xb5c0fbcf) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + U = + (f + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0xe9b5dba5) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + M = + (l + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x3956c25b) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + C = + (p + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0x59f111f1) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + S = + (w + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x923f82a4) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + b = + (y + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0xab1c5ed5) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + D = + (_ + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0xd807aa98) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + T = + (d + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0x12835b01) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + H = + (A + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0x243185be) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + U = + (v + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0x550c7dc3) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + M = + (x + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x72be5d74) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + C = + (E + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0x80deb1fe) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + S = + (g + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x9bdc06a7) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + b = + (m + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0xc19bf174) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + t = + (((e >>> 7) ^ (e >>> 18) ^ (e >>> 3) ^ (e << 25) ^ (e << 14)) + + ((g >>> 17) ^ (g >>> 19) ^ (g >>> 10) ^ (g << 15) ^ (g << 13)) + + t + + d) | + 0; + D = + (t + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0xe49b69c1) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + e = + (((r >>> 7) ^ (r >>> 18) ^ (r >>> 3) ^ (r << 25) ^ (r << 14)) + + ((m >>> 17) ^ (m >>> 19) ^ (m >>> 10) ^ (m << 15) ^ (m << 13)) + + e + + A) | + 0; + T = + (e + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0xefbe4786) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + r = + (((f >>> 7) ^ (f >>> 18) ^ (f >>> 3) ^ (f << 25) ^ (f << 14)) + + ((t >>> 17) ^ (t >>> 19) ^ (t >>> 10) ^ (t << 15) ^ (t << 13)) + + r + + v) | + 0; + H = + (r + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0x0fc19dc6) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + f = + (((l >>> 7) ^ (l >>> 18) ^ (l >>> 3) ^ (l << 25) ^ (l << 14)) + + ((e >>> 17) ^ (e >>> 19) ^ (e >>> 10) ^ (e << 15) ^ (e << 13)) + + f + + x) | + 0; + U = + (f + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0x240ca1cc) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + l = + (((p >>> 7) ^ (p >>> 18) ^ (p >>> 3) ^ (p << 25) ^ (p << 14)) + + ((r >>> 17) ^ (r >>> 19) ^ (r >>> 10) ^ (r << 15) ^ (r << 13)) + + l + + E) | + 0; + M = + (l + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x2de92c6f) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + p = + (((w >>> 7) ^ (w >>> 18) ^ (w >>> 3) ^ (w << 25) ^ (w << 14)) + + ((f >>> 17) ^ (f >>> 19) ^ (f >>> 10) ^ (f << 15) ^ (f << 13)) + + p + + g) | + 0; + C = + (p + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0x4a7484aa) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + w = + (((y >>> 7) ^ (y >>> 18) ^ (y >>> 3) ^ (y << 25) ^ (y << 14)) + + ((l >>> 17) ^ (l >>> 19) ^ (l >>> 10) ^ (l << 15) ^ (l << 13)) + + w + + m) | + 0; + S = + (w + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x5cb0a9dc) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + y = + (((_ >>> 7) ^ (_ >>> 18) ^ (_ >>> 3) ^ (_ << 25) ^ (_ << 14)) + + ((p >>> 17) ^ (p >>> 19) ^ (p >>> 10) ^ (p << 15) ^ (p << 13)) + + y + + t) | + 0; + b = + (y + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0x76f988da) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + _ = + (((d >>> 7) ^ (d >>> 18) ^ (d >>> 3) ^ (d << 25) ^ (d << 14)) + + ((w >>> 17) ^ (w >>> 19) ^ (w >>> 10) ^ (w << 15) ^ (w << 13)) + + _ + + e) | + 0; + D = + (_ + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0x983e5152) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + d = + (((A >>> 7) ^ (A >>> 18) ^ (A >>> 3) ^ (A << 25) ^ (A << 14)) + + ((y >>> 17) ^ (y >>> 19) ^ (y >>> 10) ^ (y << 15) ^ (y << 13)) + + d + + r) | + 0; + T = + (d + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0xa831c66d) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + A = + (((v >>> 7) ^ (v >>> 18) ^ (v >>> 3) ^ (v << 25) ^ (v << 14)) + + ((_ >>> 17) ^ (_ >>> 19) ^ (_ >>> 10) ^ (_ << 15) ^ (_ << 13)) + + A + + f) | + 0; + H = + (A + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0xb00327c8) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + v = + (((x >>> 7) ^ (x >>> 18) ^ (x >>> 3) ^ (x << 25) ^ (x << 14)) + + ((d >>> 17) ^ (d >>> 19) ^ (d >>> 10) ^ (d << 15) ^ (d << 13)) + + v + + l) | + 0; + U = + (v + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0xbf597fc7) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + x = + (((E >>> 7) ^ (E >>> 18) ^ (E >>> 3) ^ (E << 25) ^ (E << 14)) + + ((A >>> 17) ^ (A >>> 19) ^ (A >>> 10) ^ (A << 15) ^ (A << 13)) + + x + + p) | + 0; + M = + (x + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0xc6e00bf3) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + E = + (((g >>> 7) ^ (g >>> 18) ^ (g >>> 3) ^ (g << 25) ^ (g << 14)) + + ((v >>> 17) ^ (v >>> 19) ^ (v >>> 10) ^ (v << 15) ^ (v << 13)) + + E + + w) | + 0; + C = + (E + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0xd5a79147) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + g = + (((m >>> 7) ^ (m >>> 18) ^ (m >>> 3) ^ (m << 25) ^ (m << 14)) + + ((x >>> 17) ^ (x >>> 19) ^ (x >>> 10) ^ (x << 15) ^ (x << 13)) + + g + + y) | + 0; + S = + (g + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x06ca6351) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + m = + (((t >>> 7) ^ (t >>> 18) ^ (t >>> 3) ^ (t << 25) ^ (t << 14)) + + ((E >>> 17) ^ (E >>> 19) ^ (E >>> 10) ^ (E << 15) ^ (E << 13)) + + m + + _) | + 0; + b = + (m + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0x14292967) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + t = + (((e >>> 7) ^ (e >>> 18) ^ (e >>> 3) ^ (e << 25) ^ (e << 14)) + + ((g >>> 17) ^ (g >>> 19) ^ (g >>> 10) ^ (g << 15) ^ (g << 13)) + + t + + d) | + 0; + D = + (t + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0x27b70a85) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + e = + (((r >>> 7) ^ (r >>> 18) ^ (r >>> 3) ^ (r << 25) ^ (r << 14)) + + ((m >>> 17) ^ (m >>> 19) ^ (m >>> 10) ^ (m << 15) ^ (m << 13)) + + e + + A) | + 0; + T = + (e + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0x2e1b2138) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + r = + (((f >>> 7) ^ (f >>> 18) ^ (f >>> 3) ^ (f << 25) ^ (f << 14)) + + ((t >>> 17) ^ (t >>> 19) ^ (t >>> 10) ^ (t << 15) ^ (t << 13)) + + r + + v) | + 0; + H = + (r + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0x4d2c6dfc) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + f = + (((l >>> 7) ^ (l >>> 18) ^ (l >>> 3) ^ (l << 25) ^ (l << 14)) + + ((e >>> 17) ^ (e >>> 19) ^ (e >>> 10) ^ (e << 15) ^ (e << 13)) + + f + + x) | + 0; + U = + (f + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0x53380d13) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + l = + (((p >>> 7) ^ (p >>> 18) ^ (p >>> 3) ^ (p << 25) ^ (p << 14)) + + ((r >>> 17) ^ (r >>> 19) ^ (r >>> 10) ^ (r << 15) ^ (r << 13)) + + l + + E) | + 0; + M = + (l + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x650a7354) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + p = + (((w >>> 7) ^ (w >>> 18) ^ (w >>> 3) ^ (w << 25) ^ (w << 14)) + + ((f >>> 17) ^ (f >>> 19) ^ (f >>> 10) ^ (f << 15) ^ (f << 13)) + + p + + g) | + 0; + C = + (p + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0x766a0abb) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + w = + (((y >>> 7) ^ (y >>> 18) ^ (y >>> 3) ^ (y << 25) ^ (y << 14)) + + ((l >>> 17) ^ (l >>> 19) ^ (l >>> 10) ^ (l << 15) ^ (l << 13)) + + w + + m) | + 0; + S = + (w + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x81c2c92e) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + y = + (((_ >>> 7) ^ (_ >>> 18) ^ (_ >>> 3) ^ (_ << 25) ^ (_ << 14)) + + ((p >>> 17) ^ (p >>> 19) ^ (p >>> 10) ^ (p << 15) ^ (p << 13)) + + y + + t) | + 0; + b = + (y + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0x92722c85) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + _ = + (((d >>> 7) ^ (d >>> 18) ^ (d >>> 3) ^ (d << 25) ^ (d << 14)) + + ((w >>> 17) ^ (w >>> 19) ^ (w >>> 10) ^ (w << 15) ^ (w << 13)) + + _ + + e) | + 0; + D = + (_ + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0xa2bfe8a1) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + d = + (((A >>> 7) ^ (A >>> 18) ^ (A >>> 3) ^ (A << 25) ^ (A << 14)) + + ((y >>> 17) ^ (y >>> 19) ^ (y >>> 10) ^ (y << 15) ^ (y << 13)) + + d + + r) | + 0; + T = + (d + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0xa81a664b) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + A = + (((v >>> 7) ^ (v >>> 18) ^ (v >>> 3) ^ (v << 25) ^ (v << 14)) + + ((_ >>> 17) ^ (_ >>> 19) ^ (_ >>> 10) ^ (_ << 15) ^ (_ << 13)) + + A + + f) | + 0; + H = + (A + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0xc24b8b70) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + v = + (((x >>> 7) ^ (x >>> 18) ^ (x >>> 3) ^ (x << 25) ^ (x << 14)) + + ((d >>> 17) ^ (d >>> 19) ^ (d >>> 10) ^ (d << 15) ^ (d << 13)) + + v + + l) | + 0; + U = + (v + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0xc76c51a3) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + x = + (((E >>> 7) ^ (E >>> 18) ^ (E >>> 3) ^ (E << 25) ^ (E << 14)) + + ((A >>> 17) ^ (A >>> 19) ^ (A >>> 10) ^ (A << 15) ^ (A << 13)) + + x + + p) | + 0; + M = + (x + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0xd192e819) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + E = + (((g >>> 7) ^ (g >>> 18) ^ (g >>> 3) ^ (g << 25) ^ (g << 14)) + + ((v >>> 17) ^ (v >>> 19) ^ (v >>> 10) ^ (v << 15) ^ (v << 13)) + + E + + w) | + 0; + C = + (E + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0xd6990624) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + g = + (((m >>> 7) ^ (m >>> 18) ^ (m >>> 3) ^ (m << 25) ^ (m << 14)) + + ((x >>> 17) ^ (x >>> 19) ^ (x >>> 10) ^ (x << 15) ^ (x << 13)) + + g + + y) | + 0; + S = + (g + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0xf40e3585) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + m = + (((t >>> 7) ^ (t >>> 18) ^ (t >>> 3) ^ (t << 25) ^ (t << 14)) + + ((E >>> 17) ^ (E >>> 19) ^ (E >>> 10) ^ (E << 15) ^ (E << 13)) + + m + + _) | + 0; + b = + (m + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0x106aa070) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + t = + (((e >>> 7) ^ (e >>> 18) ^ (e >>> 3) ^ (e << 25) ^ (e << 14)) + + ((g >>> 17) ^ (g >>> 19) ^ (g >>> 10) ^ (g << 15) ^ (g << 13)) + + t + + d) | + 0; + D = + (t + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0x19a4c116) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + e = + (((r >>> 7) ^ (r >>> 18) ^ (r >>> 3) ^ (r << 25) ^ (r << 14)) + + ((m >>> 17) ^ (m >>> 19) ^ (m >>> 10) ^ (m << 15) ^ (m << 13)) + + e + + A) | + 0; + T = + (e + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0x1e376c08) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + r = + (((f >>> 7) ^ (f >>> 18) ^ (f >>> 3) ^ (f << 25) ^ (f << 14)) + + ((t >>> 17) ^ (t >>> 19) ^ (t >>> 10) ^ (t << 15) ^ (t << 13)) + + r + + v) | + 0; + H = + (r + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0x2748774c) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + f = + (((l >>> 7) ^ (l >>> 18) ^ (l >>> 3) ^ (l << 25) ^ (l << 14)) + + ((e >>> 17) ^ (e >>> 19) ^ (e >>> 10) ^ (e << 15) ^ (e << 13)) + + f + + x) | + 0; + U = + (f + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0x34b0bcb5) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + l = + (((p >>> 7) ^ (p >>> 18) ^ (p >>> 3) ^ (p << 25) ^ (p << 14)) + + ((r >>> 17) ^ (r >>> 19) ^ (r >>> 10) ^ (r << 15) ^ (r << 13)) + + l + + E) | + 0; + M = + (l + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x391c0cb3) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + p = + (((w >>> 7) ^ (w >>> 18) ^ (w >>> 3) ^ (w << 25) ^ (w << 14)) + + ((f >>> 17) ^ (f >>> 19) ^ (f >>> 10) ^ (f << 15) ^ (f << 13)) + + p + + g) | + 0; + C = + (p + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0x4ed8aa4a) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + w = + (((y >>> 7) ^ (y >>> 18) ^ (y >>> 3) ^ (y << 25) ^ (y << 14)) + + ((l >>> 17) ^ (l >>> 19) ^ (l >>> 10) ^ (l << 15) ^ (l << 13)) + + w + + m) | + 0; + S = + (w + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0x5b9cca4f) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + y = + (((_ >>> 7) ^ (_ >>> 18) ^ (_ >>> 3) ^ (_ << 25) ^ (_ << 14)) + + ((p >>> 17) ^ (p >>> 19) ^ (p >>> 10) ^ (p << 15) ^ (p << 13)) + + y + + t) | + 0; + b = + (y + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0x682e6ff3) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + _ = + (((d >>> 7) ^ (d >>> 18) ^ (d >>> 3) ^ (d << 25) ^ (d << 14)) + + ((w >>> 17) ^ (w >>> 19) ^ (w >>> 10) ^ (w << 15) ^ (w << 13)) + + _ + + e) | + 0; + D = + (_ + + D + + ((U >>> 6) ^ + (U >>> 11) ^ + (U >>> 25) ^ + (U << 26) ^ + (U << 21) ^ + (U << 7)) + + (T ^ (U & (H ^ T))) + + 0x748f82ee) | + 0; + M = (M + D) | 0; + D = + (D + + ((b & S) ^ (C & (b ^ S))) + + ((b >>> 2) ^ + (b >>> 13) ^ + (b >>> 22) ^ + (b << 30) ^ + (b << 19) ^ + (b << 10))) | + 0; + d = + (((A >>> 7) ^ (A >>> 18) ^ (A >>> 3) ^ (A << 25) ^ (A << 14)) + + ((y >>> 17) ^ (y >>> 19) ^ (y >>> 10) ^ (y << 15) ^ (y << 13)) + + d + + r) | + 0; + T = + (d + + T + + ((M >>> 6) ^ + (M >>> 11) ^ + (M >>> 25) ^ + (M << 26) ^ + (M << 21) ^ + (M << 7)) + + (H ^ (M & (U ^ H))) + + 0x78a5636f) | + 0; + C = (C + T) | 0; + T = + (T + + ((D & b) ^ (S & (D ^ b))) + + ((D >>> 2) ^ + (D >>> 13) ^ + (D >>> 22) ^ + (D << 30) ^ + (D << 19) ^ + (D << 10))) | + 0; + A = + (((v >>> 7) ^ (v >>> 18) ^ (v >>> 3) ^ (v << 25) ^ (v << 14)) + + ((_ >>> 17) ^ (_ >>> 19) ^ (_ >>> 10) ^ (_ << 15) ^ (_ << 13)) + + A + + f) | + 0; + H = + (A + + H + + ((C >>> 6) ^ + (C >>> 11) ^ + (C >>> 25) ^ + (C << 26) ^ + (C << 21) ^ + (C << 7)) + + (U ^ (C & (M ^ U))) + + 0x84c87814) | + 0; + S = (S + H) | 0; + H = + (H + + ((T & D) ^ (b & (T ^ D))) + + ((T >>> 2) ^ + (T >>> 13) ^ + (T >>> 22) ^ + (T << 30) ^ + (T << 19) ^ + (T << 10))) | + 0; + v = + (((x >>> 7) ^ (x >>> 18) ^ (x >>> 3) ^ (x << 25) ^ (x << 14)) + + ((d >>> 17) ^ (d >>> 19) ^ (d >>> 10) ^ (d << 15) ^ (d << 13)) + + v + + l) | + 0; + U = + (v + + U + + ((S >>> 6) ^ + (S >>> 11) ^ + (S >>> 25) ^ + (S << 26) ^ + (S << 21) ^ + (S << 7)) + + (M ^ (S & (C ^ M))) + + 0x8cc70208) | + 0; + b = (b + U) | 0; + U = + (U + + ((H & T) ^ (D & (H ^ T))) + + ((H >>> 2) ^ + (H >>> 13) ^ + (H >>> 22) ^ + (H << 30) ^ + (H << 19) ^ + (H << 10))) | + 0; + x = + (((E >>> 7) ^ (E >>> 18) ^ (E >>> 3) ^ (E << 25) ^ (E << 14)) + + ((A >>> 17) ^ (A >>> 19) ^ (A >>> 10) ^ (A << 15) ^ (A << 13)) + + x + + p) | + 0; + M = + (x + + M + + ((b >>> 6) ^ + (b >>> 11) ^ + (b >>> 25) ^ + (b << 26) ^ + (b << 21) ^ + (b << 7)) + + (C ^ (b & (S ^ C))) + + 0x90befffa) | + 0; + D = (D + M) | 0; + M = + (M + + ((U & H) ^ (T & (U ^ H))) + + ((U >>> 2) ^ + (U >>> 13) ^ + (U >>> 22) ^ + (U << 30) ^ + (U << 19) ^ + (U << 10))) | + 0; + E = + (((g >>> 7) ^ (g >>> 18) ^ (g >>> 3) ^ (g << 25) ^ (g << 14)) + + ((v >>> 17) ^ (v >>> 19) ^ (v >>> 10) ^ (v << 15) ^ (v << 13)) + + E + + w) | + 0; + C = + (E + + C + + ((D >>> 6) ^ + (D >>> 11) ^ + (D >>> 25) ^ + (D << 26) ^ + (D << 21) ^ + (D << 7)) + + (S ^ (D & (b ^ S))) + + 0xa4506ceb) | + 0; + T = (T + C) | 0; + C = + (C + + ((M & U) ^ (H & (M ^ U))) + + ((M >>> 2) ^ + (M >>> 13) ^ + (M >>> 22) ^ + (M << 30) ^ + (M << 19) ^ + (M << 10))) | + 0; + g = + (((m >>> 7) ^ (m >>> 18) ^ (m >>> 3) ^ (m << 25) ^ (m << 14)) + + ((x >>> 17) ^ (x >>> 19) ^ (x >>> 10) ^ (x << 15) ^ (x << 13)) + + g + + y) | + 0; + S = + (g + + S + + ((T >>> 6) ^ + (T >>> 11) ^ + (T >>> 25) ^ + (T << 26) ^ + (T << 21) ^ + (T << 7)) + + (b ^ (T & (D ^ b))) + + 0xbef9a3f7) | + 0; + H = (H + S) | 0; + S = + (S + + ((C & M) ^ (U & (C ^ M))) + + ((C >>> 2) ^ + (C >>> 13) ^ + (C >>> 22) ^ + (C << 30) ^ + (C << 19) ^ + (C << 10))) | + 0; + m = + (((t >>> 7) ^ (t >>> 18) ^ (t >>> 3) ^ (t << 25) ^ (t << 14)) + + ((E >>> 17) ^ (E >>> 19) ^ (E >>> 10) ^ (E << 15) ^ (E << 13)) + + m + + _) | + 0; + b = + (m + + b + + ((H >>> 6) ^ + (H >>> 11) ^ + (H >>> 25) ^ + (H << 26) ^ + (H << 21) ^ + (H << 7)) + + (D ^ (H & (T ^ D))) + + 0xc67178f2) | + 0; + U = (U + b) | 0; + b = + (b + + ((S & C) ^ (M & (S ^ C))) + + ((S >>> 2) ^ + (S >>> 13) ^ + (S >>> 22) ^ + (S << 30) ^ + (S << 19) ^ + (S << 10))) | + 0; + s = (s + b) | 0; + i = (i + S) | 0; + n = (n + C) | 0; + a = (a + M) | 0; + h = (h + U) | 0; + o = (o + H) | 0; + c = (c + T) | 0; + u = (u + D) | 0; + } + function D(t) { + t = t | 0; + T( + (H[t | 0] << 24) | (H[t | 1] << 16) | (H[t | 2] << 8) | H[t | 3], + (H[t | 4] << 24) | (H[t | 5] << 16) | (H[t | 6] << 8) | H[t | 7], + (H[t | 8] << 24) | + (H[t | 9] << 16) | + (H[t | 10] << 8) | + H[t | 11], + (H[t | 12] << 24) | + (H[t | 13] << 16) | + (H[t | 14] << 8) | + H[t | 15], + (H[t | 16] << 24) | + (H[t | 17] << 16) | + (H[t | 18] << 8) | + H[t | 19], + (H[t | 20] << 24) | + (H[t | 21] << 16) | + (H[t | 22] << 8) | + H[t | 23], + (H[t | 24] << 24) | + (H[t | 25] << 16) | + (H[t | 26] << 8) | + H[t | 27], + (H[t | 28] << 24) | + (H[t | 29] << 16) | + (H[t | 30] << 8) | + H[t | 31], + (H[t | 32] << 24) | + (H[t | 33] << 16) | + (H[t | 34] << 8) | + H[t | 35], + (H[t | 36] << 24) | + (H[t | 37] << 16) | + (H[t | 38] << 8) | + H[t | 39], + (H[t | 40] << 24) | + (H[t | 41] << 16) | + (H[t | 42] << 8) | + H[t | 43], + (H[t | 44] << 24) | + (H[t | 45] << 16) | + (H[t | 46] << 8) | + H[t | 47], + (H[t | 48] << 24) | + (H[t | 49] << 16) | + (H[t | 50] << 8) | + H[t | 51], + (H[t | 52] << 24) | + (H[t | 53] << 16) | + (H[t | 54] << 8) | + H[t | 55], + (H[t | 56] << 24) | + (H[t | 57] << 16) | + (H[t | 58] << 8) | + H[t | 59], + (H[t | 60] << 24) | + (H[t | 61] << 16) | + (H[t | 62] << 8) | + H[t | 63] + ); + } + function k(t) { + t = t | 0; + H[t | 0] = s >>> 24; + H[t | 1] = (s >>> 16) & 255; + H[t | 2] = (s >>> 8) & 255; + H[t | 3] = s & 255; + H[t | 4] = i >>> 24; + H[t | 5] = (i >>> 16) & 255; + H[t | 6] = (i >>> 8) & 255; + H[t | 7] = i & 255; + H[t | 8] = n >>> 24; + H[t | 9] = (n >>> 16) & 255; + H[t | 10] = (n >>> 8) & 255; + H[t | 11] = n & 255; + H[t | 12] = a >>> 24; + H[t | 13] = (a >>> 16) & 255; + H[t | 14] = (a >>> 8) & 255; + H[t | 15] = a & 255; + H[t | 16] = h >>> 24; + H[t | 17] = (h >>> 16) & 255; + H[t | 18] = (h >>> 8) & 255; + H[t | 19] = h & 255; + H[t | 20] = o >>> 24; + H[t | 21] = (o >>> 16) & 255; + H[t | 22] = (o >>> 8) & 255; + H[t | 23] = o & 255; + H[t | 24] = c >>> 24; + H[t | 25] = (c >>> 16) & 255; + H[t | 26] = (c >>> 8) & 255; + H[t | 27] = c & 255; + H[t | 28] = u >>> 24; + H[t | 29] = (u >>> 16) & 255; + H[t | 30] = (u >>> 8) & 255; + H[t | 31] = u & 255; + } + function G() { + s = 0x6a09e667; + i = 0xbb67ae85; + n = 0x3c6ef372; + a = 0xa54ff53a; + h = 0x510e527f; + o = 0x9b05688c; + c = 0x1f83d9ab; + u = 0x5be0cd19; + f = l = 0; + } + function I(t, e, r, p, w, y, _, d, A, v) { + t = t | 0; + e = e | 0; + r = r | 0; + p = p | 0; + w = w | 0; + y = y | 0; + _ = _ | 0; + d = d | 0; + A = A | 0; + v = v | 0; + s = t; + i = e; + n = r; + a = p; + h = w; + o = y; + c = _; + u = d; + f = A; + l = v; + } + function Z(t, e) { + t = t | 0; + e = e | 0; + var r = 0; + if (t & 63) return -1; + while ((e | 0) >= 64) { + D(t); + t = (t + 64) | 0; + e = (e - 64) | 0; + r = (r + 64) | 0; + } + f = (f + r) | 0; + if (f >>> 0 < r >>> 0) l = (l + 1) | 0; + return r | 0; + } + function P(t, e, r) { + t = t | 0; + e = e | 0; + r = r | 0; + var s = 0, + i = 0; + if (t & 63) return -1; + if (~r) if (r & 31) return -1; + if ((e | 0) >= 64) { + s = Z(t, e) | 0; + if ((s | 0) == -1) return -1; + t = (t + s) | 0; + e = (e - s) | 0; + } + s = (s + e) | 0; + f = (f + e) | 0; + if (f >>> 0 < e >>> 0) l = (l + 1) | 0; + H[t | e] = 0x80; + if ((e | 0) >= 56) { + for (i = (e + 1) | 0; (i | 0) < 64; i = (i + 1) | 0) + H[t | i] = 0x00; + D(t); + e = 0; + H[t | 0] = 0; + } + for (i = (e + 1) | 0; (i | 0) < 59; i = (i + 1) | 0) H[t | i] = 0; + H[t | 56] = (l >>> 21) & 255; + H[t | 57] = (l >>> 13) & 255; + H[t | 58] = (l >>> 5) & 255; + H[t | 59] = ((l << 3) & 255) | (f >>> 29); + H[t | 60] = (f >>> 21) & 255; + H[t | 61] = (f >>> 13) & 255; + H[t | 62] = (f >>> 5) & 255; + H[t | 63] = (f << 3) & 255; + D(t); + if (~r) k(r); + return s | 0; + } + function B() { + s = p; + i = w; + n = y; + a = _; + h = d; + o = A; + c = v; + u = x; + f = 64; + l = 0; + } + function z() { + s = E; + i = g; + n = m; + a = b; + h = S; + o = C; + c = M; + u = U; + f = 64; + l = 0; + } + function O(t, e, r, H, D, k, I, Z, P, B, z, O, q, L, R, K) { + t = t | 0; + e = e | 0; + r = r | 0; + H = H | 0; + D = D | 0; + k = k | 0; + I = I | 0; + Z = Z | 0; + P = P | 0; + B = B | 0; + z = z | 0; + O = O | 0; + q = q | 0; + L = L | 0; + R = R | 0; + K = K | 0; + G(); + T( + t ^ 0x5c5c5c5c, + e ^ 0x5c5c5c5c, + r ^ 0x5c5c5c5c, + H ^ 0x5c5c5c5c, + D ^ 0x5c5c5c5c, + k ^ 0x5c5c5c5c, + I ^ 0x5c5c5c5c, + Z ^ 0x5c5c5c5c, + P ^ 0x5c5c5c5c, + B ^ 0x5c5c5c5c, + z ^ 0x5c5c5c5c, + O ^ 0x5c5c5c5c, + q ^ 0x5c5c5c5c, + L ^ 0x5c5c5c5c, + R ^ 0x5c5c5c5c, + K ^ 0x5c5c5c5c + ); + E = s; + g = i; + m = n; + b = a; + S = h; + C = o; + M = c; + U = u; + G(); + T( + t ^ 0x36363636, + e ^ 0x36363636, + r ^ 0x36363636, + H ^ 0x36363636, + D ^ 0x36363636, + k ^ 0x36363636, + I ^ 0x36363636, + Z ^ 0x36363636, + P ^ 0x36363636, + B ^ 0x36363636, + z ^ 0x36363636, + O ^ 0x36363636, + q ^ 0x36363636, + L ^ 0x36363636, + R ^ 0x36363636, + K ^ 0x36363636 + ); + p = s; + w = i; + y = n; + _ = a; + d = h; + A = o; + v = c; + x = u; + f = 64; + l = 0; + } + function q(t, e, r) { + t = t | 0; + e = e | 0; + r = r | 0; + var f = 0, + l = 0, + p = 0, + w = 0, + y = 0, + _ = 0, + d = 0, + A = 0, + v = 0; + if (t & 63) return -1; + if (~r) if (r & 31) return -1; + v = P(t, e, -1) | 0; + (f = s), + (l = i), + (p = n), + (w = a), + (y = h), + (_ = o), + (d = c), + (A = u); + z(); + T(f, l, p, w, y, _, d, A, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + if (~r) k(r); + return v | 0; + } + function L(t, e, r, f, l) { + t = t | 0; + e = e | 0; + r = r | 0; + f = f | 0; + l = l | 0; + var p = 0, + w = 0, + y = 0, + _ = 0, + d = 0, + A = 0, + v = 0, + x = 0, + E = 0, + g = 0, + m = 0, + b = 0, + S = 0, + C = 0, + M = 0, + U = 0; + if (t & 63) return -1; + if (~l) if (l & 31) return -1; + H[(t + e) | 0] = r >>> 24; + H[(t + e + 1) | 0] = (r >>> 16) & 255; + H[(t + e + 2) | 0] = (r >>> 8) & 255; + H[(t + e + 3) | 0] = r & 255; + q(t, (e + 4) | 0, -1) | 0; + (p = E = s), + (w = g = i), + (y = m = n), + (_ = b = a), + (d = S = h), + (A = C = o), + (v = M = c), + (x = U = u); + f = (f - 1) | 0; + while ((f | 0) > 0) { + B(); + T(E, g, m, b, S, C, M, U, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + (E = s), + (g = i), + (m = n), + (b = a), + (S = h), + (C = o), + (M = c), + (U = u); + z(); + T(E, g, m, b, S, C, M, U, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + (E = s), + (g = i), + (m = n), + (b = a), + (S = h), + (C = o), + (M = c), + (U = u); + p = p ^ s; + w = w ^ i; + y = y ^ n; + _ = _ ^ a; + d = d ^ h; + A = A ^ o; + v = v ^ c; + x = x ^ u; + f = (f - 1) | 0; + } + s = p; + i = w; + n = y; + a = _; + h = d; + o = A; + c = v; + u = x; + if (~l) k(l); + return 0; + } + return { + reset: G, + init: I, + process: Z, + finish: P, + hmac_reset: B, + hmac_init: O, + hmac_finish: q, + pbkdf2_generate_block: L + }; + })({ Uint8Array: Uint8Array }, null, this.heap.buffer)), + (this.BLOCK_SIZE = E), + (this.HASH_SIZE = g), + this.reset(); + } + (m.BLOCK_SIZE = E), (m.HASH_SIZE = g), (m.NAME = 'sha256'); + var b = m.prototype; + (b.reset = function() { + return ( + (this.result = null), + (this.pos = 0), + (this.len = 0), + this.asm.reset(), + this + ); + }), + (b.process = function(t) { + if (null !== this.result) + throw new i('state must be reset before processing new data'); + if ((f(t) && (t = h(t)), l(t) && (t = new Uint8Array(t)), !p(t))) + throw new TypeError("data isn't of expected type"); + for ( + var e = this.asm, + r = this.heap, + s = this.pos, + n = this.len, + a = 0, + o = t.length, + c = 0; + o > 0; + + ) + (n += c = y(r, s + n, t, a, o)), + (a += c), + (o -= c), + (s += c = e.process(s, n)), + (n -= c) || (s = 0); + return (this.pos = s), (this.len = n), this; + }), + (b.finish = function() { + if (null !== this.result) + throw new i('state must be reset before processing new data'); + return ( + this.asm.finish(this.pos, this.len, 0), + (this.result = new Uint8Array(this.HASH_SIZE)), + this.result.set(this.heap.subarray(0, this.HASH_SIZE)), + (this.pos = 0), + (this.len = 0), + this + ); + }); + var S = null; + class C extends v { + constructor(t) { + (t = t || {}).hash instanceof m || + (t.hash = (null === S && (S = new m({ heapSize: 1048576 })), S)), + super(t); + } + reset(t) { + (t = t || {}), (this.result = null), this.hash.reset(); + var e = t.password; + if (void 0 !== e) { + f(e) && (e = h(e)); + var r = (this.key = x(this.hash, e)); + this.hash + .reset() + .asm.hmac_init( + (r[0] << 24) | (r[1] << 16) | (r[2] << 8) | r[3], + (r[4] << 24) | (r[5] << 16) | (r[6] << 8) | r[7], + (r[8] << 24) | (r[9] << 16) | (r[10] << 8) | r[11], + (r[12] << 24) | (r[13] << 16) | (r[14] << 8) | r[15], + (r[16] << 24) | (r[17] << 16) | (r[18] << 8) | r[19], + (r[20] << 24) | (r[21] << 16) | (r[22] << 8) | r[23], + (r[24] << 24) | (r[25] << 16) | (r[26] << 8) | r[27], + (r[28] << 24) | (r[29] << 16) | (r[30] << 8) | r[31], + (r[32] << 24) | (r[33] << 16) | (r[34] << 8) | r[35], + (r[36] << 24) | (r[37] << 16) | (r[38] << 8) | r[39], + (r[40] << 24) | (r[41] << 16) | (r[42] << 8) | r[43], + (r[44] << 24) | (r[45] << 16) | (r[46] << 8) | r[47], + (r[48] << 24) | (r[49] << 16) | (r[50] << 8) | r[51], + (r[52] << 24) | (r[53] << 16) | (r[54] << 8) | r[55], + (r[56] << 24) | (r[57] << 16) | (r[58] << 8) | r[59], + (r[60] << 24) | (r[61] << 16) | (r[62] << 8) | r[63] + ); + } else this.hash.asm.hmac_reset(); + var s = t.verify; + return ( + void 0 !== s ? this._hmac_init_verify(s) : (this.verify = null), this + ); + } + finish() { + if (null === this.key) + throw new i('no key is associated with the instance'); + if (null !== this.result) + throw new i('state must be reset before processing new data'); + var t = this.hash, + e = this.hash.asm, + r = this.hash.heap; + e.hmac_finish(t.pos, t.len, 0); + var s = this.verify, + n = new Uint8Array(g); + if ((n.set(r.subarray(0, g)), s)) + if (s.length === n.length) { + for (var a = 0, h = 0; h < s.length; h++) a |= s[h] ^ n[h]; + this.result = !a; + } else this.result = !1; + else this.result = n; + return this; + } + } + (C.BLOCK_SIZE = m.BLOCK_SIZE), (C.HMAC_SIZE = m.HASH_SIZE); + var M = null; + function U() { + return null === M && (M = new C()), M; + } + function H(t, e) { + if (void 0 === t) throw new SyntaxError('data required'); + if (void 0 === e) throw new SyntaxError('password required'); + return U() + .reset({ password: e }) + .process(t) + .finish().result; + } + var T = C; + (T.bytes = H), + (T.hex = function(t, e) { + return o(H(t, e)); + }), + (T.base64 = function(t, e) { + return c(H(t, e)); + }); + class D { + constructor(t) { + if (!(t = t || {}).hmac) + throw new SyntaxError("option 'hmac' is required"); + if (!t.hmac.HMAC_SIZE) + throw new SyntaxError( + "option 'hmac' supplied doesn't seem to be a valid HMAC function" + ); + (this.hmac = t.hmac), + (this.count = t.count || 4096), + (this.length = t.length || this.hmac.HMAC_SIZE), + (this.result = null); + var e = t.password; + return (e || f(e)) && this.reset(t), this; + } + reset(t) { + return (this.result = null), this.hmac.reset(t), this; + } + generate(t, e, r) { + if (null !== this.result) + throw new i('state must be reset before processing new data'); + if (!t && !f(t)) throw new n("bad 'salt' value"); + (e = e || this.count), + (r = r || this.length), + (this.result = new Uint8Array(r)); + for (var s = Math.ceil(r / this.hmac.HMAC_SIZE), a = 1; a <= s; ++a) { + var h = (a - 1) * this.hmac.HMAC_SIZE, + o = (a < s ? 0 : r % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE, + c = new Uint8Array( + this.hmac + .reset() + .process(t) + .process( + new Uint8Array([ + (a >>> 24) & 255, + (a >>> 16) & 255, + (a >>> 8) & 255, + 255 & a + ]) + ) + .finish().result + ); + this.result.set(c.subarray(0, o), h); + for (var u = 1; u < e; ++u) { + c = new Uint8Array( + this.hmac + .reset() + .process(c) + .finish().result + ); + for (var l = 0; l < o; ++l) this.result[h + l] ^= c[l]; + } + } + return this; + } + } + class k extends D { + constructor(t) { + (t = t || {}).hmac instanceof C || (t.hmac = U()), super(t); + } + generate(t, e, r) { + if (null !== this.result) + throw new i('state must be reset before processing new data'); + if (!t && !f(t)) throw new n("bad 'salt' value"); + (e = e || this.count), + (r = r || this.length), + (this.result = new Uint8Array(r)); + for (var s = Math.ceil(r / this.hmac.HMAC_SIZE), a = 1; a <= s; ++a) { + var h = (a - 1) * this.hmac.HMAC_SIZE, + o = (a < s ? 0 : r % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE; + this.hmac.reset().process(t), + this.hmac.hash.asm.pbkdf2_generate_block( + this.hmac.hash.pos, + this.hmac.hash.len, + a, + e, + 0 + ), + this.result.set(this.hmac.hash.heap.subarray(0, o), h); + } + return this; + } + } + var G = null; + function I(t, e, r, s) { + if (void 0 === t) throw new SyntaxError('password required'); + if (void 0 === e) throw new SyntaxError('salt required'); + return (null === G && (G = new k()), G) + .reset({ password: t }) + .generate(e, r, s).result; + } + var Z = { + bytes: I, + hex: function(t, e, r, s) { + return o(I(t, e, r, s)); + }, + base64: function(t, e, r, s) { + return c(I(t, e, r, s)); + } + }; + (t.AES_GCM = A), + (t.AES_GCM_Encrypt = class extends A { + constructor(t, e, r, s, i, n) { + super(t, e, r, s, i, n); + } + process(t) { + return this.AES_GCM_Encrypt_process(t); + } + finish() { + return this.AES_GCM_Encrypt_finish(); + } + }), + (t.AES_GCM_Decrypt = class extends A { + constructor(t, e, r, s, i, n) { + super(t, e, r, s, i, n); + } + process(t) { + return this.AES_GCM_Decrypt_process(t); + } + finish() { + return this.AES_GCM_Decrypt_finish(); + } + }), + (t.HMAC_SHA256 = T), + (t.PBKDF2_HMAC_SHA256 = Z), + Object.defineProperty(t, '__esModule', { value: !0 }); +}); diff --git a/assets/cryptofill.js b/assets/cryptofill.js deleted file mode 100644 index 03a80ebc..00000000 --- a/assets/cryptofill.js +++ /dev/null @@ -1,23 +0,0 @@ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.elliptic=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=49&&g<=54?g-49+10:g>=17&&g<=22?g-17+10:15&g}return d}function i(a,b,c,d){for(var e=0,f=Math.min(a.length,c),g=b;g=49?h-49+10:h>=17?h-17+10:h}return e}function m(a){for(var b=new Array(a.bitLength()),c=0;c>>e}return b}function n(a,b,c){c.negative=b.negative^a.negative;var d=a.length+b.length|0;c.length=d,d=d-1|0;var e=0|a.words[0],f=0|b.words[0],g=e*f,h=67108863&g,i=g/67108864|0;c.words[0]=h;for(var j=1;j>>26,l=67108863&i,m=Math.min(j,b.length-1),n=Math.max(0,j-a.length+1);n<=m;n++){var o=j-n|0;e=0|a.words[o],f=0|b.words[n],g=e*f+l,k+=g/67108864|0,l=67108863&g}c.words[j]=0|l,i=0|k}return 0!==i?c.words[j]=0|i:c.length--,c.strip()}function p(a,b,c){c.negative=b.negative^a.negative,c.length=a.length+b.length;for(var d=0,e=0,f=0;f>>26)|0,e+=g>>>26,g&=67108863}c.words[f]=h,d=g,g=e}return 0!==d?c.words[f]=d:c.length--,c.strip()}function q(a,b,c){var d=new r;return d.mulp(a,b,c)}function r(a,b){this.x=a,this.y=b}function t(a,b){this.name=a,this.p=new f(b,16),this.n=this.p.bitLength(),this.k=new f(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function u(){t.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function v(){t.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){t.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){t.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function y(a){if("string"==typeof a){var b=f._prime(a);this.m=b.p,this.prime=b}else d(a.gtn(1),"modulus must be greater than 1"),this.m=a,this.prime=null}function z(a){y.call(this,a),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new f(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"==typeof b?b.exports=f:c.BN=f,f.BN=f,f.wordSize=26;var g;try{g=a("buffer").Buffer}catch(a){}f.isBN=function(b){return b instanceof f||null!==b&&"object"==typeof b&&b.constructor.wordSize===f.wordSize&&Array.isArray(b.words)},f.max=function(b,c){return b.cmp(c)>0?b:c},f.min=function(b,c){return b.cmp(c)<0?b:c},f.prototype._init=function(b,c,e){if("number"==typeof b)return this._initNumber(b,c,e);if("object"==typeof b)return this._initArray(b,c,e);"hex"===c&&(c=16),d(c===(0|c)&&c>=2&&c<=36),b=b.toString().replace(/\s+/g,"");var f=0;"-"===b[0]&&f++,16===c?this._parseHex(b,f):this._parseBase(b,c,f),"-"===b[0]&&(this.negative=1),this.strip(),"le"===e&&this._initArray(this.toArray(),c,e)},f.prototype._initNumber=function(b,c,e){b<0&&(this.negative=1,b=-b),b<67108864?(this.words=[67108863&b],this.length=1):b<4503599627370496?(this.words=[67108863&b,b/67108864&67108863],this.length=2):(d(b<9007199254740992),this.words=[67108863&b,b/67108864&67108863,1],this.length=3),"le"===e&&this._initArray(this.toArray(),c,e)},f.prototype._initArray=function(b,c,e){if(d("number"==typeof b.length),b.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(b.length/3),this.words=new Array(this.length);for(var f=0;f=0;f-=3)h=b[f]|b[f-1]<<8|b[f-2]<<16,this.words[g]|=h<>>26-i&67108863,i+=24,i>=26&&(i-=26,g++);else if("le"===e)for(f=0,g=0;f>>26-i&67108863,i+=24,i>=26&&(i-=26,g++);return this.strip()},f.prototype._parseHex=function(b,c){this.length=Math.ceil((b.length-c)/6),this.words=new Array(this.length);for(var d=0;d=c;d-=6)f=h(b,d,d+6),this.words[e]|=f<>>26-g&4194303,g+=24,g>=26&&(g-=26,e++);d+6!==c&&(f=h(b,c,d+6),this.words[e]|=f<>>26-g&4194303),this.strip()},f.prototype._parseBase=function(b,c,d){this.words=[0],this.length=1;for(var e=0,f=1;f<=67108863;f*=c)e++;e--,f=f/c|0;for(var g=b.length-d,h=g%e,j=Math.min(g,g-h)+d,k=0,l=d;l1&&0===this.words[this.length-1];)this.length--;return this._normSign()},f.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},f.prototype.inspect=function(){return(this.red?""};var j=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],k=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];f.prototype.toString=function(b,c){b=b||10,c=0|c||1;var e;if(16===b||"hex"===b){e="";for(var f=0,g=0,h=0;h>>24-f&16777215,e=0!==g||h!==this.length-1?j[6-m.length]+m+e:m+e,f+=2,f>=26&&(f-=26,h--)}for(0!==g&&(e=g.toString(16)+e);e.length%c!==0;)e="0"+e;return 0!==this.negative&&(e="-"+e),e}if(b===(0|b)&&b>=2&&b<=36){var n=k[b],o=l[b];e="";var p=this.clone();for(p.negative=0;!p.isZero();){var q=p.modn(o).toString(b);p=p.idivn(o),e=p.isZero()?q+e:j[n-q.length]+q+e}for(this.isZero()&&(e="0"+e);e.length%c!==0;)e="0"+e;return 0!==this.negative&&(e="-"+e),e}d(!1,"Base should be between 2 and 36")},f.prototype.toNumber=function(){var b=this.words[0];return 2===this.length?b+=67108864*this.words[1]:3===this.length&&1===this.words[2]?b+=4503599627370496+67108864*this.words[1]:this.length>2&&d(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-b:b},f.prototype.toJSON=function(){return this.toString(16)},f.prototype.toBuffer=function(b,c){return d("undefined"!=typeof g),this.toArrayLike(g,b,c)},f.prototype.toArray=function(b,c){return this.toArrayLike(Array,b,c)},f.prototype.toArrayLike=function(b,c,e){var f=this.byteLength(),g=e||Math.max(1,f);d(f<=g,"byte array longer than desired length"),d(g>0,"Requested array length <= 0"),this.strip();var j,k,h="le"===c,i=new b(g),l=this.clone();if(h){for(k=0;!l.isZero();k++)j=l.andln(255),l.iushrn(8),i[k]=j;for(;k=4096&&(d+=13,c>>>=13),c>=64&&(d+=7,c>>>=7),c>=8&&(d+=4,c>>>=4),c>=2&&(d+=2,c>>>=2),d+c},f.prototype._zeroBits=function(b){if(0===b)return 26;var c=b,d=0;return 0===(8191&c)&&(d+=13,c>>>=13),0===(127&c)&&(d+=7,c>>>=7),0===(15&c)&&(d+=4,c>>>=4),0===(3&c)&&(d+=2,c>>>=2),0===(1&c)&&d++,d},f.prototype.bitLength=function(){var b=this.words[this.length-1],c=this._countBits(b);return 26*(this.length-1)+c},f.prototype.zeroBits=function(){if(this.isZero())return 0;for(var b=0,c=0;cb.length?this.clone().ior(b):b.clone().ior(this)},f.prototype.uor=function(b){return this.length>b.length?this.clone().iuor(b):b.clone().iuor(this)},f.prototype.iuand=function(b){var c;c=this.length>b.length?b:this;for(var d=0;db.length?this.clone().iand(b):b.clone().iand(this)},f.prototype.uand=function(b){return this.length>b.length?this.clone().iuand(b):b.clone().iuand(this)},f.prototype.iuxor=function(b){var c,d;this.length>b.length?(c=this,d=b):(c=b,d=this);for(var e=0;eb.length?this.clone().ixor(b):b.clone().ixor(this)},f.prototype.uxor=function(b){return this.length>b.length?this.clone().iuxor(b):b.clone().iuxor(this)},f.prototype.inotn=function(b){d("number"==typeof b&&b>=0);var c=0|Math.ceil(b/26),e=b%26;this._expand(c),e>0&&c--;for(var f=0;f0&&(this.words[f]=~this.words[f]&67108863>>26-e),this.strip()},f.prototype.notn=function(b){return this.clone().inotn(b)},f.prototype.setn=function(b,c){d("number"==typeof b&&b>=0);var e=b/26|0,f=b%26;return this._expand(e+1),c?this.words[e]=this.words[e]|1<b.length?(d=this,e=b):(d=b,e=this);for(var f=0,g=0;g>>26;for(;0!==f&&g>>26;if(this.length=d.length,0!==f)this.words[this.length]=f,this.length++;else if(d!==this)for(;gb.length?this.clone().iadd(b):b.clone().iadd(this)},f.prototype.isub=function(b){if(0!==b.negative){b.negative=0;var c=this.iadd(b);return b.negative=1,c._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(b),this.negative=1,this._normSign();var d=this.cmp(b);if(0===d)return this.negative=0,this.length=1,this.words[0]=0,this;var e,f;d>0?(e=this,f=b):(e=b,f=this);for(var g=0,h=0;h>26,this.words[h]=67108863&c;for(;0!==g&&h>26,this.words[h]=67108863&c;if(0===g&&h>>13,o=0|e[1],p=8191&o,q=o>>>13,r=0|e[2],s=8191&r,t=r>>>13,u=0|e[3],v=8191&u,w=u>>>13,x=0|e[4],y=8191&x,z=x>>>13,A=0|e[5],B=8191&A,C=A>>>13,D=0|e[6],E=8191&D,F=D>>>13,G=0|e[7],H=8191&G,I=G>>>13,J=0|e[8],K=8191&J,L=J>>>13,M=0|e[9],N=8191&M,O=M>>>13,P=0|f[0],Q=8191&P,R=P>>>13,S=0|f[1],T=8191&S,U=S>>>13,V=0|f[2],W=8191&V,X=V>>>13,Y=0|f[3],Z=8191&Y,$=Y>>>13,_=0|f[4],aa=8191&_,ba=_>>>13,ca=0|f[5],da=8191&ca,ea=ca>>>13,fa=0|f[6],ga=8191&fa,ha=fa>>>13,ia=0|f[7],ja=8191&ia,ka=ia>>>13,la=0|f[8],ma=8191&la,na=la>>>13,oa=0|f[9],pa=8191&oa,qa=oa>>>13;d.negative=b.negative^c.negative,d.length=19,i=Math.imul(m,Q),j=Math.imul(m,R),j=j+Math.imul(n,Q)|0,k=Math.imul(n,R);var ra=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(ra>>>26)|0,ra&=67108863,i=Math.imul(p,Q),j=Math.imul(p,R),j=j+Math.imul(q,Q)|0,k=Math.imul(q,R),i=i+Math.imul(m,T)|0,j=j+Math.imul(m,U)|0,j=j+Math.imul(n,T)|0,k=k+Math.imul(n,U)|0;var sa=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(sa>>>26)|0,sa&=67108863,i=Math.imul(s,Q),j=Math.imul(s,R),j=j+Math.imul(t,Q)|0,k=Math.imul(t,R),i=i+Math.imul(p,T)|0,j=j+Math.imul(p,U)|0,j=j+Math.imul(q,T)|0,k=k+Math.imul(q,U)|0,i=i+Math.imul(m,W)|0,j=j+Math.imul(m,X)|0,j=j+Math.imul(n,W)|0,k=k+Math.imul(n,X)|0;var ta=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(ta>>>26)|0,ta&=67108863,i=Math.imul(v,Q),j=Math.imul(v,R),j=j+Math.imul(w,Q)|0,k=Math.imul(w,R),i=i+Math.imul(s,T)|0,j=j+Math.imul(s,U)|0,j=j+Math.imul(t,T)|0,k=k+Math.imul(t,U)|0,i=i+Math.imul(p,W)|0,j=j+Math.imul(p,X)|0,j=j+Math.imul(q,W)|0,k=k+Math.imul(q,X)|0,i=i+Math.imul(m,Z)|0,j=j+Math.imul(m,$)|0,j=j+Math.imul(n,Z)|0,k=k+Math.imul(n,$)|0;var ua=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(ua>>>26)|0,ua&=67108863,i=Math.imul(y,Q),j=Math.imul(y,R),j=j+Math.imul(z,Q)|0,k=Math.imul(z,R),i=i+Math.imul(v,T)|0,j=j+Math.imul(v,U)|0,j=j+Math.imul(w,T)|0,k=k+Math.imul(w,U)|0,i=i+Math.imul(s,W)|0,j=j+Math.imul(s,X)|0,j=j+Math.imul(t,W)|0,k=k+Math.imul(t,X)|0,i=i+Math.imul(p,Z)|0,j=j+Math.imul(p,$)|0,j=j+Math.imul(q,Z)|0,k=k+Math.imul(q,$)|0,i=i+Math.imul(m,aa)|0,j=j+Math.imul(m,ba)|0,j=j+Math.imul(n,aa)|0,k=k+Math.imul(n,ba)|0;var va=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(va>>>26)|0,va&=67108863,i=Math.imul(B,Q),j=Math.imul(B,R),j=j+Math.imul(C,Q)|0,k=Math.imul(C,R),i=i+Math.imul(y,T)|0,j=j+Math.imul(y,U)|0,j=j+Math.imul(z,T)|0,k=k+Math.imul(z,U)|0,i=i+Math.imul(v,W)|0,j=j+Math.imul(v,X)|0,j=j+Math.imul(w,W)|0,k=k+Math.imul(w,X)|0,i=i+Math.imul(s,Z)|0,j=j+Math.imul(s,$)|0,j=j+Math.imul(t,Z)|0,k=k+Math.imul(t,$)|0,i=i+Math.imul(p,aa)|0,j=j+Math.imul(p,ba)|0,j=j+Math.imul(q,aa)|0,k=k+Math.imul(q,ba)|0,i=i+Math.imul(m,da)|0,j=j+Math.imul(m,ea)|0,j=j+Math.imul(n,da)|0,k=k+Math.imul(n,ea)|0;var wa=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(wa>>>26)|0,wa&=67108863,i=Math.imul(E,Q),j=Math.imul(E,R),j=j+Math.imul(F,Q)|0,k=Math.imul(F,R),i=i+Math.imul(B,T)|0,j=j+Math.imul(B,U)|0,j=j+Math.imul(C,T)|0,k=k+Math.imul(C,U)|0,i=i+Math.imul(y,W)|0,j=j+Math.imul(y,X)|0,j=j+Math.imul(z,W)|0,k=k+Math.imul(z,X)|0,i=i+Math.imul(v,Z)|0,j=j+Math.imul(v,$)|0,j=j+Math.imul(w,Z)|0,k=k+Math.imul(w,$)|0,i=i+Math.imul(s,aa)|0,j=j+Math.imul(s,ba)|0,j=j+Math.imul(t,aa)|0,k=k+Math.imul(t,ba)|0,i=i+Math.imul(p,da)|0,j=j+Math.imul(p,ea)|0,j=j+Math.imul(q,da)|0,k=k+Math.imul(q,ea)|0,i=i+Math.imul(m,ga)|0,j=j+Math.imul(m,ha)|0,j=j+Math.imul(n,ga)|0,k=k+Math.imul(n,ha)|0;var xa=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(xa>>>26)|0,xa&=67108863,i=Math.imul(H,Q),j=Math.imul(H,R),j=j+Math.imul(I,Q)|0,k=Math.imul(I,R),i=i+Math.imul(E,T)|0,j=j+Math.imul(E,U)|0,j=j+Math.imul(F,T)|0,k=k+Math.imul(F,U)|0,i=i+Math.imul(B,W)|0,j=j+Math.imul(B,X)|0,j=j+Math.imul(C,W)|0,k=k+Math.imul(C,X)|0,i=i+Math.imul(y,Z)|0,j=j+Math.imul(y,$)|0,j=j+Math.imul(z,Z)|0,k=k+Math.imul(z,$)|0,i=i+Math.imul(v,aa)|0,j=j+Math.imul(v,ba)|0,j=j+Math.imul(w,aa)|0,k=k+Math.imul(w,ba)|0,i=i+Math.imul(s,da)|0,j=j+Math.imul(s,ea)|0,j=j+Math.imul(t,da)|0,k=k+Math.imul(t,ea)|0,i=i+Math.imul(p,ga)|0,j=j+Math.imul(p,ha)|0,j=j+Math.imul(q,ga)|0,k=k+Math.imul(q,ha)|0,i=i+Math.imul(m,ja)|0,j=j+Math.imul(m,ka)|0,j=j+Math.imul(n,ja)|0,k=k+Math.imul(n,ka)|0;var ya=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(ya>>>26)|0,ya&=67108863,i=Math.imul(K,Q),j=Math.imul(K,R),j=j+Math.imul(L,Q)|0,k=Math.imul(L,R),i=i+Math.imul(H,T)|0,j=j+Math.imul(H,U)|0,j=j+Math.imul(I,T)|0,k=k+Math.imul(I,U)|0,i=i+Math.imul(E,W)|0,j=j+Math.imul(E,X)|0,j=j+Math.imul(F,W)|0,k=k+Math.imul(F,X)|0,i=i+Math.imul(B,Z)|0,j=j+Math.imul(B,$)|0,j=j+Math.imul(C,Z)|0,k=k+Math.imul(C,$)|0,i=i+Math.imul(y,aa)|0,j=j+Math.imul(y,ba)|0,j=j+Math.imul(z,aa)|0,k=k+Math.imul(z,ba)|0,i=i+Math.imul(v,da)|0,j=j+Math.imul(v,ea)|0,j=j+Math.imul(w,da)|0,k=k+Math.imul(w,ea)|0,i=i+Math.imul(s,ga)|0,j=j+Math.imul(s,ha)|0,j=j+Math.imul(t,ga)|0,k=k+Math.imul(t,ha)|0,i=i+Math.imul(p,ja)|0,j=j+Math.imul(p,ka)|0,j=j+Math.imul(q,ja)|0,k=k+Math.imul(q,ka)|0,i=i+Math.imul(m,ma)|0,j=j+Math.imul(m,na)|0,j=j+Math.imul(n,ma)|0,k=k+Math.imul(n,na)|0;var za=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(za>>>26)|0,za&=67108863,i=Math.imul(N,Q),j=Math.imul(N,R),j=j+Math.imul(O,Q)|0,k=Math.imul(O,R),i=i+Math.imul(K,T)|0,j=j+Math.imul(K,U)|0,j=j+Math.imul(L,T)|0,k=k+Math.imul(L,U)|0,i=i+Math.imul(H,W)|0,j=j+Math.imul(H,X)|0,j=j+Math.imul(I,W)|0,k=k+Math.imul(I,X)|0,i=i+Math.imul(E,Z)|0,j=j+Math.imul(E,$)|0,j=j+Math.imul(F,Z)|0,k=k+Math.imul(F,$)|0,i=i+Math.imul(B,aa)|0,j=j+Math.imul(B,ba)|0,j=j+Math.imul(C,aa)|0,k=k+Math.imul(C,ba)|0,i=i+Math.imul(y,da)|0,j=j+Math.imul(y,ea)|0,j=j+Math.imul(z,da)|0,k=k+Math.imul(z,ea)|0,i=i+Math.imul(v,ga)|0,j=j+Math.imul(v,ha)|0,j=j+Math.imul(w,ga)|0,k=k+Math.imul(w,ha)|0,i=i+Math.imul(s,ja)|0,j=j+Math.imul(s,ka)|0,j=j+Math.imul(t,ja)|0,k=k+Math.imul(t,ka)|0,i=i+Math.imul(p,ma)|0,j=j+Math.imul(p,na)|0,j=j+Math.imul(q,ma)|0,k=k+Math.imul(q,na)|0,i=i+Math.imul(m,pa)|0,j=j+Math.imul(m,qa)|0,j=j+Math.imul(n,pa)|0,k=k+Math.imul(n,qa)|0;var Aa=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Aa>>>26)|0,Aa&=67108863,i=Math.imul(N,T),j=Math.imul(N,U),j=j+Math.imul(O,T)|0,k=Math.imul(O,U),i=i+Math.imul(K,W)|0,j=j+Math.imul(K,X)|0,j=j+Math.imul(L,W)|0,k=k+Math.imul(L,X)|0,i=i+Math.imul(H,Z)|0,j=j+Math.imul(H,$)|0,j=j+Math.imul(I,Z)|0,k=k+Math.imul(I,$)|0,i=i+Math.imul(E,aa)|0,j=j+Math.imul(E,ba)|0,j=j+Math.imul(F,aa)|0,k=k+Math.imul(F,ba)|0,i=i+Math.imul(B,da)|0,j=j+Math.imul(B,ea)|0,j=j+Math.imul(C,da)|0,k=k+Math.imul(C,ea)|0,i=i+Math.imul(y,ga)|0,j=j+Math.imul(y,ha)|0,j=j+Math.imul(z,ga)|0,k=k+Math.imul(z,ha)|0,i=i+Math.imul(v,ja)|0,j=j+Math.imul(v,ka)|0,j=j+Math.imul(w,ja)|0,k=k+Math.imul(w,ka)|0,i=i+Math.imul(s,ma)|0,j=j+Math.imul(s,na)|0,j=j+Math.imul(t,ma)|0,k=k+Math.imul(t,na)|0,i=i+Math.imul(p,pa)|0,j=j+Math.imul(p,qa)|0,j=j+Math.imul(q,pa)|0,k=k+Math.imul(q,qa)|0;var Ba=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ba>>>26)|0,Ba&=67108863,i=Math.imul(N,W),j=Math.imul(N,X),j=j+Math.imul(O,W)|0,k=Math.imul(O,X),i=i+Math.imul(K,Z)|0,j=j+Math.imul(K,$)|0,j=j+Math.imul(L,Z)|0,k=k+Math.imul(L,$)|0,i=i+Math.imul(H,aa)|0,j=j+Math.imul(H,ba)|0,j=j+Math.imul(I,aa)|0,k=k+Math.imul(I,ba)|0,i=i+Math.imul(E,da)|0,j=j+Math.imul(E,ea)|0,j=j+Math.imul(F,da)|0,k=k+Math.imul(F,ea)|0,i=i+Math.imul(B,ga)|0,j=j+Math.imul(B,ha)|0,j=j+Math.imul(C,ga)|0,k=k+Math.imul(C,ha)|0,i=i+Math.imul(y,ja)|0,j=j+Math.imul(y,ka)|0,j=j+Math.imul(z,ja)|0,k=k+Math.imul(z,ka)|0,i=i+Math.imul(v,ma)|0,j=j+Math.imul(v,na)|0,j=j+Math.imul(w,ma)|0,k=k+Math.imul(w,na)|0,i=i+Math.imul(s,pa)|0,j=j+Math.imul(s,qa)|0,j=j+Math.imul(t,pa)|0,k=k+Math.imul(t,qa)|0;var Ca=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ca>>>26)|0,Ca&=67108863,i=Math.imul(N,Z),j=Math.imul(N,$),j=j+Math.imul(O,Z)|0,k=Math.imul(O,$),i=i+Math.imul(K,aa)|0,j=j+Math.imul(K,ba)|0,j=j+Math.imul(L,aa)|0,k=k+Math.imul(L,ba)|0,i=i+Math.imul(H,da)|0,j=j+Math.imul(H,ea)|0,j=j+Math.imul(I,da)|0,k=k+Math.imul(I,ea)|0,i=i+Math.imul(E,ga)|0,j=j+Math.imul(E,ha)|0,j=j+Math.imul(F,ga)|0,k=k+Math.imul(F,ha)|0,i=i+Math.imul(B,ja)|0,j=j+Math.imul(B,ka)|0,j=j+Math.imul(C,ja)|0,k=k+Math.imul(C,ka)|0,i=i+Math.imul(y,ma)|0,j=j+Math.imul(y,na)|0,j=j+Math.imul(z,ma)|0,k=k+Math.imul(z,na)|0,i=i+Math.imul(v,pa)|0,j=j+Math.imul(v,qa)|0,j=j+Math.imul(w,pa)|0,k=k+Math.imul(w,qa)|0;var Da=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Da>>>26)|0,Da&=67108863,i=Math.imul(N,aa),j=Math.imul(N,ba),j=j+Math.imul(O,aa)|0,k=Math.imul(O,ba),i=i+Math.imul(K,da)|0,j=j+Math.imul(K,ea)|0,j=j+Math.imul(L,da)|0,k=k+Math.imul(L,ea)|0,i=i+Math.imul(H,ga)|0,j=j+Math.imul(H,ha)|0,j=j+Math.imul(I,ga)|0,k=k+Math.imul(I,ha)|0,i=i+Math.imul(E,ja)|0,j=j+Math.imul(E,ka)|0,j=j+Math.imul(F,ja)|0,k=k+Math.imul(F,ka)|0,i=i+Math.imul(B,ma)|0,j=j+Math.imul(B,na)|0,j=j+Math.imul(C,ma)|0,k=k+Math.imul(C,na)|0,i=i+Math.imul(y,pa)|0,j=j+Math.imul(y,qa)|0,j=j+Math.imul(z,pa)|0,k=k+Math.imul(z,qa)|0;var Ea=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ea>>>26)|0,Ea&=67108863,i=Math.imul(N,da),j=Math.imul(N,ea),j=j+Math.imul(O,da)|0,k=Math.imul(O,ea),i=i+Math.imul(K,ga)|0,j=j+Math.imul(K,ha)|0,j=j+Math.imul(L,ga)|0,k=k+Math.imul(L,ha)|0,i=i+Math.imul(H,ja)|0,j=j+Math.imul(H,ka)|0,j=j+Math.imul(I,ja)|0,k=k+Math.imul(I,ka)|0,i=i+Math.imul(E,ma)|0,j=j+Math.imul(E,na)|0,j=j+Math.imul(F,ma)|0,k=k+Math.imul(F,na)|0,i=i+Math.imul(B,pa)|0,j=j+Math.imul(B,qa)|0,j=j+Math.imul(C,pa)|0,k=k+Math.imul(C,qa)|0;var Fa=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Fa>>>26)|0,Fa&=67108863,i=Math.imul(N,ga),j=Math.imul(N,ha),j=j+Math.imul(O,ga)|0,k=Math.imul(O,ha),i=i+Math.imul(K,ja)|0,j=j+Math.imul(K,ka)|0,j=j+Math.imul(L,ja)|0,k=k+Math.imul(L,ka)|0,i=i+Math.imul(H,ma)|0,j=j+Math.imul(H,na)|0,j=j+Math.imul(I,ma)|0,k=k+Math.imul(I,na)|0,i=i+Math.imul(E,pa)|0,j=j+Math.imul(E,qa)|0,j=j+Math.imul(F,pa)|0,k=k+Math.imul(F,qa)|0;var Ga=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ga>>>26)|0,Ga&=67108863,i=Math.imul(N,ja),j=Math.imul(N,ka),j=j+Math.imul(O,ja)|0,k=Math.imul(O,ka),i=i+Math.imul(K,ma)|0,j=j+Math.imul(K,na)|0,j=j+Math.imul(L,ma)|0,k=k+Math.imul(L,na)|0,i=i+Math.imul(H,pa)|0,j=j+Math.imul(H,qa)|0,j=j+Math.imul(I,pa)|0,k=k+Math.imul(I,qa)|0;var Ha=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ha>>>26)|0,Ha&=67108863,i=Math.imul(N,ma),j=Math.imul(N,na),j=j+Math.imul(O,ma)|0,k=Math.imul(O,na),i=i+Math.imul(K,pa)|0,j=j+Math.imul(K,qa)|0,j=j+Math.imul(L,pa)|0,k=k+Math.imul(L,qa)|0;var Ia=(h+i|0)+((8191&j)<<13)|0;h=(k+(j>>>13)|0)+(Ia>>>26)|0,Ia&=67108863,i=Math.imul(N,pa),j=Math.imul(N,qa),j=j+Math.imul(O,pa)|0,k=Math.imul(O,qa);var Ja=(h+i|0)+((8191&j)<<13)|0;return h=(k+(j>>>13)|0)+(Ja>>>26)|0,Ja&=67108863,g[0]=ra,g[1]=sa,g[2]=ta,g[3]=ua,g[4]=va,g[5]=wa,g[6]=xa,g[7]=ya,g[8]=za,g[9]=Aa,g[10]=Ba,g[11]=Ca,g[12]=Da,g[13]=Ea,g[14]=Fa,g[15]=Ga,g[16]=Ha,g[17]=Ia,g[18]=Ja,0!==h&&(g[19]=h,d.length++),d};Math.imul||(o=n),f.prototype.mulTo=function(b,c){var d,e=this.length+b.length;return d=10===this.length&&10===b.length?o(this,b,c):e<63?n(this,b,c):e<1024?p(this,b,c):q(this,b,c)},r.prototype.makeRBT=function(b){for(var c=new Array(b),d=f.prototype._countBits(b)-1,e=0;e>=1;return e},r.prototype.permute=function(b,c,d,e,f,g){for(var h=0;h>>=1)f++;return 1<>>=13,e[2*h+1]=8191&g,g>>>=13;for(h=2*c;h>=26,c+=f/67108864|0,c+=g>>>26,this.words[e]=67108863&g}return 0!==c&&(this.words[e]=c,this.length++),this},f.prototype.muln=function(b){return this.clone().imuln(b)},f.prototype.sqr=function(){return this.mul(this)},f.prototype.isqr=function(){return this.imul(this.clone())},f.prototype.pow=function(b){var c=m(b);if(0===c.length)return new f(1);for(var d=this,e=0;e=0);var g,c=b%26,e=(b-c)/26,f=67108863>>>26-c<<26-c;if(0!==c){var h=0;for(g=0;g>>26-c}h&&(this.words[g]=h,this.length++)}if(0!==e){for(g=this.length-1;g>=0;g--)this.words[g+e]=this.words[g];for(g=0;g=0);var f;f=c?(c-c%26)/26:0;var g=b%26,h=Math.min((b-g)/26,this.length),i=67108863^67108863>>>g<h)for(this.length-=h,k=0;k=0&&(0!==l||k>=f);k--){var m=0|this.words[k];this.words[k]=l<<26-g|m>>>g,l=m&i}return j&&0!==l&&(j.words[j.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},f.prototype.ishrn=function(b,c,e){return d(0===this.negative),this.iushrn(b,c,e)},f.prototype.shln=function(b){return this.clone().ishln(b)},f.prototype.ushln=function(b){return this.clone().iushln(b)},f.prototype.shrn=function(b){return this.clone().ishrn(b)},f.prototype.ushrn=function(b){return this.clone().iushrn(b)},f.prototype.testn=function(b){d("number"==typeof b&&b>=0);var c=b%26,e=(b-c)/26,f=1<=0);var c=b%26,e=(b-c)/26;if(d(0===this.negative,"imaskn works only with positive numbers"),this.length<=e)return this;if(0!==c&&e++,this.length=Math.min(e,this.length),0!==c){var f=67108863^67108863>>>c<=67108864;c++)this.words[c]-=67108864,c===this.length-1?this.words[c+1]=1:this.words[c+1]++;return this.length=Math.max(this.length,c+1),this},f.prototype.isubn=function(b){if(d("number"==typeof b),d(b<67108864),b<0)return this.iaddn(-b);if(0!==this.negative)return this.negative=0,this.iaddn(b),this.negative=1,this;if(this.words[0]-=b,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var c=0;c>26)-(j/67108864|0),this.words[g+e]=67108863&h}for(;g>26,this.words[g+e]=67108863&h;if(0===i)return this.strip();for(d(i===-1),i=0,g=0;g>26,this.words[g]=67108863&h;return this.negative=1,this.strip()},f.prototype._wordDiv=function(b,c){var d=this.length-b.length,e=this.clone(),g=b,h=0|g.words[g.length-1],i=this._countBits(h);d=26-i,0!==d&&(g=g.ushln(d),e.iushln(d),h=0|g.words[g.length-1]);var k,j=e.length-g.length;if("mod"!==c){k=new f(null),k.length=j+1,k.words=new Array(k.length);for(var l=0;l=0;n--){var o=67108864*(0|e.words[g.length+n])+(0|e.words[g.length+n-1]);for(o=Math.min(o/h|0,67108863),e._ishlnsubmul(g,o,n);0!==e.negative;)o--,e.negative=0,e._ishlnsubmul(g,1,n),e.isZero()||(e.negative^=1);k&&(k.words[n]=o)}return k&&k.strip(),e.strip(),"div"!==c&&0!==d&&e.iushrn(d),{div:k||null,mod:e}},f.prototype.divmod=function(b,c,e){if(d(!b.isZero()),this.isZero())return{div:new f(0),mod:new f(0)};var g,h,i;return 0!==this.negative&&0===b.negative?(i=this.neg().divmod(b,c),"mod"!==c&&(g=i.div.neg()),"div"!==c&&(h=i.mod.neg(),e&&0!==h.negative&&h.iadd(b)),{div:g,mod:h}):0===this.negative&&0!==b.negative?(i=this.divmod(b.neg(),c),"mod"!==c&&(g=i.div.neg()), -{div:g,mod:i.mod}):0!==(this.negative&b.negative)?(i=this.neg().divmod(b.neg(),c),"div"!==c&&(h=i.mod.neg(),e&&0!==h.negative&&h.isub(b)),{div:i.div,mod:h}):b.length>this.length||this.cmp(b)<0?{div:new f(0),mod:this}:1===b.length?"div"===c?{div:this.divn(b.words[0]),mod:null}:"mod"===c?{div:null,mod:new f(this.modn(b.words[0]))}:{div:this.divn(b.words[0]),mod:new f(this.modn(b.words[0]))}:this._wordDiv(b,c)},f.prototype.div=function(b){return this.divmod(b,"div",!1).div},f.prototype.mod=function(b){return this.divmod(b,"mod",!1).mod},f.prototype.umod=function(b){return this.divmod(b,"mod",!0).mod},f.prototype.divRound=function(b){var c=this.divmod(b);if(c.mod.isZero())return c.div;var d=0!==c.div.negative?c.mod.isub(b):c.mod,e=b.ushrn(1),f=b.andln(1),g=d.cmp(e);return g<0||1===f&&0===g?c.div:0!==c.div.negative?c.div.isubn(1):c.div.iaddn(1)},f.prototype.modn=function(b){d(b<=67108863);for(var c=(1<<26)%b,e=0,f=this.length-1;f>=0;f--)e=(c*e+(0|this.words[f]))%b;return e},f.prototype.idivn=function(b){d(b<=67108863);for(var c=0,e=this.length-1;e>=0;e--){var f=(0|this.words[e])+67108864*c;this.words[e]=f/b|0,c=f%b}return this.strip()},f.prototype.divn=function(b){return this.clone().idivn(b)},f.prototype.egcd=function(b){d(0===b.negative),d(!b.isZero());var c=this,e=b.clone();c=0!==c.negative?c.umod(b):c.clone();for(var g=new f(1),h=new f(0),i=new f(0),j=new f(1),k=0;c.isEven()&&e.isEven();)c.iushrn(1),e.iushrn(1),++k;for(var l=e.clone(),m=c.clone();!c.isZero();){for(var n=0,o=1;0===(c.words[0]&o)&&n<26;++n,o<<=1);if(n>0)for(c.iushrn(n);n-- >0;)(g.isOdd()||h.isOdd())&&(g.iadd(l),h.isub(m)),g.iushrn(1),h.iushrn(1);for(var p=0,q=1;0===(e.words[0]&q)&&p<26;++p,q<<=1);if(p>0)for(e.iushrn(p);p-- >0;)(i.isOdd()||j.isOdd())&&(i.iadd(l),j.isub(m)),i.iushrn(1),j.iushrn(1);c.cmp(e)>=0?(c.isub(e),g.isub(i),h.isub(j)):(e.isub(c),i.isub(g),j.isub(h))}return{a:i,b:j,gcd:e.iushln(k)}},f.prototype._invmp=function(b){d(0===b.negative),d(!b.isZero());var c=this,e=b.clone();c=0!==c.negative?c.umod(b):c.clone();for(var g=new f(1),h=new f(0),i=e.clone();c.cmpn(1)>0&&e.cmpn(1)>0;){for(var j=0,k=1;0===(c.words[0]&k)&&j<26;++j,k<<=1);if(j>0)for(c.iushrn(j);j-- >0;)g.isOdd()&&g.iadd(i),g.iushrn(1);for(var l=0,m=1;0===(e.words[0]&m)&&l<26;++l,m<<=1);if(l>0)for(e.iushrn(l);l-- >0;)h.isOdd()&&h.iadd(i),h.iushrn(1);c.cmp(e)>=0?(c.isub(e),g.isub(h)):(e.isub(c),h.isub(g))}var n;return n=0===c.cmpn(1)?g:h,n.cmpn(0)<0&&n.iadd(b),n},f.prototype.gcd=function(b){if(this.isZero())return b.abs();if(b.isZero())return this.abs();var c=this.clone(),d=b.clone();c.negative=0,d.negative=0;for(var e=0;c.isEven()&&d.isEven();e++)c.iushrn(1),d.iushrn(1);for(;;){for(;c.isEven();)c.iushrn(1);for(;d.isEven();)d.iushrn(1);var f=c.cmp(d);if(f<0){var g=c;c=d,d=g}else if(0===f||0===d.cmpn(1))break;c.isub(d)}return d.iushln(e)},f.prototype.invm=function(b){return this.egcd(b).a.umod(b)},f.prototype.isEven=function(){return 0===(1&this.words[0])},f.prototype.isOdd=function(){return 1===(1&this.words[0])},f.prototype.andln=function(b){return this.words[0]&b},f.prototype.bincn=function(b){d("number"==typeof b);var c=b%26,e=(b-c)/26,f=1<>>26,i&=67108863,this.words[h]=i}return 0!==g&&(this.words[h]=g,this.length++),this},f.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},f.prototype.cmpn=function(b){var c=b<0;if(0!==this.negative&&!c)return-1;if(0===this.negative&&c)return 1;this.strip();var e;if(this.length>1)e=1;else{c&&(b=-b),d(b<=67108863,"Number is too big");var f=0|this.words[0];e=f===b?0:fb.length)return 1;if(this.length=0;d--){var e=0|this.words[d],f=0|b.words[d];if(e!==f){ef&&(c=1);break}}return c},f.prototype.gtn=function(b){return 1===this.cmpn(b)},f.prototype.gt=function(b){return 1===this.cmp(b)},f.prototype.gten=function(b){return this.cmpn(b)>=0},f.prototype.gte=function(b){return this.cmp(b)>=0},f.prototype.ltn=function(b){return this.cmpn(b)===-1},f.prototype.lt=function(b){return this.cmp(b)===-1},f.prototype.lten=function(b){return this.cmpn(b)<=0},f.prototype.lte=function(b){return this.cmp(b)<=0},f.prototype.eqn=function(b){return 0===this.cmpn(b)},f.prototype.eq=function(b){return 0===this.cmp(b)},f.red=function(b){return new y(b)},f.prototype.toRed=function(b){return d(!this.red,"Already a number in reduction context"),d(0===this.negative,"red works only with positives"),b.convertTo(this)._forceRed(b)},f.prototype.fromRed=function(){return d(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},f.prototype._forceRed=function(b){return this.red=b,this},f.prototype.forceRed=function(b){return d(!this.red,"Already a number in reduction context"),this._forceRed(b)},f.prototype.redAdd=function(b){return d(this.red,"redAdd works only with red numbers"),this.red.add(this,b)},f.prototype.redIAdd=function(b){return d(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,b)},f.prototype.redSub=function(b){return d(this.red,"redSub works only with red numbers"),this.red.sub(this,b)},f.prototype.redISub=function(b){return d(this.red,"redISub works only with red numbers"),this.red.isub(this,b)},f.prototype.redShl=function(b){return d(this.red,"redShl works only with red numbers"),this.red.shl(this,b)},f.prototype.redMul=function(b){return d(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.mul(this,b)},f.prototype.redIMul=function(b){return d(this.red,"redMul works only with red numbers"),this.red._verify2(this,b),this.red.imul(this,b)},f.prototype.redSqr=function(){return d(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},f.prototype.redISqr=function(){return d(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},f.prototype.redSqrt=function(){return d(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},f.prototype.redInvm=function(){return d(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},f.prototype.redNeg=function(){return d(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},f.prototype.redPow=function(b){return d(this.red&&!b.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,b)};var s={k256:null,p224:null,p192:null,p25519:null};t.prototype._tmp=function(){var b=new f(null);return b.words=new Array(Math.ceil(this.n/13)),b},t.prototype.ireduce=function(b){var d,c=b;do this.split(c,this.tmp),c=this.imulK(c),c=c.iadd(this.tmp),d=c.bitLength();while(d>this.n);var e=d0?c.isub(this.p):c.strip(),c},t.prototype.split=function(b,c){b.iushrn(this.n,0,c)},t.prototype.imulK=function(b){return b.imul(this.k)},e(u,t),u.prototype.split=function(b,c){for(var d=4194303,e=Math.min(b.length,9),f=0;f>>22,g=h}g>>>=22,b.words[f-10]=g,0===g&&b.length>10?b.length-=10:b.length-=9},u.prototype.imulK=function(b){b.words[b.length]=0,b.words[b.length+1]=0,b.length+=2;for(var c=0,d=0;d>>=26,b.words[d]=f,c=e}return 0!==c&&(b.words[b.length++]=c),b},f._prime=function a(b){if(s[b])return s[b];var a;if("k256"===b)a=new u;else if("p224"===b)a=new v;else if("p192"===b)a=new w;else{if("p25519"!==b)throw new Error("Unknown prime "+b);a=new x}return s[b]=a,a},y.prototype._verify1=function(b){d(0===b.negative,"red works only with positives"),d(b.red,"red works only with red numbers")},y.prototype._verify2=function(b,c){d(0===(b.negative|c.negative),"red works only with positives"),d(b.red&&b.red===c.red,"red works only with red numbers")},y.prototype.imod=function(b){return this.prime?this.prime.ireduce(b)._forceRed(this):b.umod(this.m)._forceRed(this)},y.prototype.neg=function(b){return b.isZero()?b.clone():this.m.sub(b)._forceRed(this)},y.prototype.add=function(b,c){this._verify2(b,c);var d=b.add(c);return d.cmp(this.m)>=0&&d.isub(this.m),d._forceRed(this)},y.prototype.iadd=function(b,c){this._verify2(b,c);var d=b.iadd(c);return d.cmp(this.m)>=0&&d.isub(this.m),d},y.prototype.sub=function(b,c){this._verify2(b,c);var d=b.sub(c);return d.cmpn(0)<0&&d.iadd(this.m),d._forceRed(this)},y.prototype.isub=function(b,c){this._verify2(b,c);var d=b.isub(c);return d.cmpn(0)<0&&d.iadd(this.m),d},y.prototype.shl=function(b,c){return this._verify1(b),this.imod(b.ushln(c))},y.prototype.imul=function(b,c){return this._verify2(b,c),this.imod(b.imul(c))},y.prototype.mul=function(b,c){return this._verify2(b,c),this.imod(b.mul(c))},y.prototype.isqr=function(b){return this.imul(b,b.clone())},y.prototype.sqr=function(b){return this.mul(b,b)},y.prototype.sqrt=function(b){if(b.isZero())return b.clone();var c=this.m.andln(3);if(d(c%2===1),3===c){var e=this.m.add(new f(1)).iushrn(2);return this.pow(b,e)}for(var g=this.m.subn(1),h=0;!g.isZero()&&0===g.andln(1);)h++,g.iushrn(1);d(!g.isZero());var i=new f(1).toRed(this),j=i.redNeg(),k=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new f(2*l*l).toRed(this);0!==this.pow(l,k).cmp(j);)l.redIAdd(j);for(var m=this.pow(l,g),n=this.pow(b,g.addn(1).iushrn(1)),o=this.pow(b,g),p=h;0!==o.cmp(i);){for(var q=o,r=0;0!==q.cmp(i);r++)q=q.redSqr();d(r=0;g--){for(var l=c.words[g],m=k-1;m>=0;m--){var n=l>>m&1;h!==e[0]&&(h=this.sqr(h)),0!==n||0!==i?(i<<=1,i|=n,j++,(j===d||0===g&&0===m)&&(h=this.mul(h,e[i]),j=0,i=0)):j=0}k=26}return h},y.prototype.convertTo=function(b){var c=b.umod(this.m);return c===b?c.clone():c},y.prototype.convertFrom=function(b){var c=b.clone();return c.red=null,c},f.mont=function(b){return new z(b)},e(z,y),z.prototype.convertTo=function(b){return this.imod(b.ushln(this.shift))},z.prototype.convertFrom=function(b){var c=this.imod(b.mul(this.rinv));return c.red=null,c},z.prototype.imul=function(b,c){if(b.isZero()||c.isZero())return b.words[0]=0,b.length=1,b;var d=b.imul(c),e=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),f=d.isub(e).iushrn(this.shift),g=f;return f.cmp(this.m)>=0?g=f.isub(this.m):f.cmpn(0)<0&&(g=f.iadd(this.m)),g._forceRed(this)},z.prototype.mul=function(b,c){if(b.isZero()||c.isZero())return new f(0)._forceRed(this);var d=b.mul(c),e=d.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),g=d.isub(e).iushrn(this.shift),h=g;return g.cmp(this.m)>=0?h=g.isub(this.m):g.cmpn(0)<0&&(h=g.iadd(this.m)),h._forceRed(this)},z.prototype.invm=function(b){var c=this.imod(b._invmp(this.m).mul(this.r2));return c._forceRed(this)}}("undefined"==typeof b||b,this)},{}],2:[function(a,b,c){"use strict";var d=c;d.version=a("../package.json").version,d.utils=a("./elliptic/utils"),d.rand=a("brorand"),d.hmacDRBG=a("./elliptic/hmac-drbg"),d.curve=a("./elliptic/curve"),d.curves=a("./elliptic/curves"),d.ec=a("./elliptic/ec"),d.eddsa=a("./elliptic/eddsa")},{"../package.json":26,"./elliptic/curve":5,"./elliptic/curves":8,"./elliptic/ec":9,"./elliptic/eddsa":12,"./elliptic/hmac-drbg":15,"./elliptic/utils":17,brorand:18}],3:[function(a,b,c){"use strict";function j(a,b){this.type=a,this.p=new d(b.p,16),this.red=b.prime?d.red(b.prime):d.mont(this.p),this.zero=new d(0).toRed(this.red),this.one=new d(1).toRed(this.red),this.two=new d(2).toRed(this.red),this.n=b.n&&new d(b.n,16),this.g=b.g&&this.pointFromJSON(b.g,b.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var c=this.n&&this.p.div(this.n);!c||c.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function k(a,b){this.curve=a,this.type=b,this.precomputed=null}var d=a("bn.js"),e=a("../../elliptic"),f=e.utils,g=f.getNAF,h=f.getJSF,i=f.assert;b.exports=j,j.prototype.point=function(){throw new Error("Not implemented")},j.prototype.validate=function(){throw new Error("Not implemented")},j.prototype._fixedNafMul=function(b,c){i(b.precomputed);var d=b._getDoubles(),e=g(c,1),f=(1<=j;c--)k=(k<<1)+e[c];h.push(k)}for(var l=this.jpoint(null,null,null),m=this.jpoint(null,null,null),n=f;n>0;n--){for(var j=0;j=0;k--){for(var c=0;k>=0&&0===h[k];k--)c++;if(k>=0&&c++,j=j.dblp(c),k<0)break;var l=h[k];i(0!==l),j="affine"===b.type?l>0?j.mixedAdd(f[l-1>>1]):j.mixedAdd(f[-l-1>>1].neg()):l>0?j.add(f[l-1>>1]):j.add(f[-l-1>>1].neg())}return"affine"===b.type?j.toP():j},j.prototype._wnafMulAdd=function(b,c,d,e,f){for(var i=this._wnafT1,j=this._wnafT2,k=this._wnafT3,l=0,m=0;m=1;m-=2){var p=m-1,q=m;if(1===i[p]&&1===i[q]){var r=[c[p],null,null,c[q]];0===c[p].y.cmp(c[q].y)?(r[1]=c[p].add(c[q]),r[2]=c[p].toJ().mixedAdd(c[q].neg())):0===c[p].y.cmp(c[q].y.redNeg())?(r[1]=c[p].toJ().mixedAdd(c[q]),r[2]=c[p].add(c[q].neg())):(r[1]=c[p].toJ().mixedAdd(c[q]),r[2]=c[p].toJ().mixedAdd(c[q].neg()));var s=[-3,-1,-5,-7,0,7,5,1,3],t=h(d[p],d[q]);l=Math.max(t[0].length,l),k[p]=new Array(l),k[q]=new Array(l);for(var u=0;u=0;m--){for(var z=0;m>=0;){for(var A=!0,u=0;u=0&&z++,x=x.dblp(z),m<0)break;for(var u=0;u0?n=j[u][B-1>>1]:B<0&&(n=j[u][-B-1>>1].neg()),x="affine"===n.type?x.mixedAdd(n):x.add(n))}}for(var m=0;m=Math.ceil((b.bitLength()+1)/c.step)},k.prototype._getDoubles=function(b,c){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var d=[this],e=this,f=0;f":""},k.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&0===this.y.cmp(this.z)},k.prototype._extDbl=function(){var b=this.x.redSqr(),c=this.y.redSqr(),d=this.z.redSqr();d=d.redIAdd(d);var e=this.curve._mulA(b),f=this.x.redAdd(this.y).redSqr().redISub(b).redISub(c),g=e.redAdd(c),h=g.redSub(d),i=e.redSub(c),j=f.redMul(h),k=g.redMul(i),l=f.redMul(i),m=h.redMul(g);return this.curve.point(j,k,m,l)},k.prototype._projDbl=function(){var e,f,g,b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr();if(this.curve.twisted){var h=this.curve._mulA(c),i=h.redAdd(d);if(this.zOne)e=b.redSub(c).redSub(d).redMul(i.redSub(this.curve.two)),f=i.redMul(h.redSub(d)),g=i.redSqr().redSub(i).redSub(i);else{var j=this.z.redSqr(),k=i.redSub(j).redISub(j);e=b.redSub(c).redISub(d).redMul(k),f=i.redMul(h.redSub(d)),g=i.redMul(k)}}else{var h=c.redAdd(d),j=this.curve._mulC(this.c.redMul(this.z)).redSqr(),k=h.redSub(j).redSub(j);e=this.curve._mulC(b.redISub(h)).redMul(k),f=this.curve._mulC(h).redMul(c.redISub(d)),g=h.redMul(k)}return this.curve.point(e,f,g)},k.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},k.prototype._extAdd=function(b){var c=this.y.redSub(this.x).redMul(b.y.redSub(b.x)),d=this.y.redAdd(this.x).redMul(b.y.redAdd(b.x)),e=this.t.redMul(this.curve.dd).redMul(b.t),f=this.z.redMul(b.z.redAdd(b.z)),g=d.redSub(c),h=f.redSub(e),i=f.redAdd(e),j=d.redAdd(c),k=g.redMul(h),l=i.redMul(j),m=g.redMul(j),n=h.redMul(i);return this.curve.point(k,l,n,m)},k.prototype._projAdd=function(b){var l,m,c=this.z.redMul(b.z),d=c.redSqr(),e=this.x.redMul(b.x),f=this.y.redMul(b.y),g=this.curve.d.redMul(e).redMul(f),h=d.redSub(g),i=d.redAdd(g),j=this.x.redAdd(this.y).redMul(b.x.redAdd(b.y)).redISub(e).redISub(f),k=c.redMul(h).redMul(j);return this.curve.twisted?(l=c.redMul(i).redMul(f.redSub(this.curve._mulA(e))),m=h.redMul(i)):(l=c.redMul(i).redMul(f.redSub(e)),m=this.curve._mulC(h).redMul(i)),this.curve.point(k,l,m)},k.prototype.add=function(b){return this.isInfinity()?b:b.isInfinity()?this:this.curve.extended?this._extAdd(b):this._projAdd(b)},k.prototype.mul=function(b){return this._hasDoubles(b)?this.curve._fixedNafMul(this,b):this.curve._wnafMul(this,b)},k.prototype.mulAdd=function(b,c,d){return this.curve._wnafMulAdd(1,[this,c],[b,d],2,!1)},k.prototype.jmulAdd=function(b,c,d){return this.curve._wnafMulAdd(1,[this,c],[b,d],2,!0)},k.prototype.normalize=function(){if(this.zOne)return this;var b=this.z.redInvm();return this.x=this.x.redMul(b),this.y=this.y.redMul(b),this.t&&(this.t=this.t.redMul(b)),this.z=this.curve.one,this.zOne=!0,this},k.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},k.prototype.getX=function(){return this.normalize(),this.x.fromRed()},k.prototype.getY=function(){return this.normalize(),this.y.fromRed()},k.prototype.eq=function(b){return this===b||0===this.getX().cmp(b.getX())&&0===this.getY().cmp(b.getY())},k.prototype.eqXToP=function(b){var c=b.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(c))return!0;for(var d=b.clone(),e=this.curve.redN.redMul(this.z);;){if(d.iadd(this.curve.n),d.cmp(this.curve.p)>=0)return!1;if(c.redIAdd(e),0===this.x.cmp(c))return!0}return!1},k.prototype.toP=k.prototype.normalize,k.prototype.mixedAdd=k.prototype.add},{"../../elliptic":2,"../curve":5,"bn.js":1,inherits:25}],5:[function(a,b,c){"use strict";var d=c;d.base=a("./base"),d.short=a("./short"),d.mont=a("./mont"),d.edwards=a("./edwards")},{"./base":3,"./edwards":4,"./mont":6,"./short":7}],6:[function(a,b,c){"use strict";function j(a){g.call(this,"mont",a),this.a=new e(a.a,16).toRed(this.red),this.b=new e(a.b,16).toRed(this.red),this.i4=new e(4).toRed(this.red).redInvm(),this.two=new e(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function k(a,b,c){g.BasePoint.call(this,a,"projective"),null===b&&null===c?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new e(b,16),this.z=new e(c,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}var d=a("../curve"),e=a("bn.js"),f=a("inherits"),g=d.base,h=a("../../elliptic"),i=h.utils;f(j,g),b.exports=j,j.prototype.validate=function(b){var c=b.normalize().x,d=c.redSqr(),e=d.redMul(c).redAdd(d.redMul(this.a)).redAdd(c),f=e.redSqrt();return 0===f.redSqr().cmp(e)},f(k,g.BasePoint),j.prototype.decodePoint=function(b,c){return this.point(i.toArray(b,c),1)},j.prototype.point=function(b,c){return new k(this,b,c)},j.prototype.pointFromJSON=function(b){return k.fromJSON(this,b)},k.prototype.precompute=function(){},k.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},k.fromJSON=function(b,c){return new k(b,c[0],c[1]||b.one)},k.prototype.inspect=function(){return this.isInfinity()?"":""},k.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},k.prototype.dbl=function(){var b=this.x.redAdd(this.z),c=b.redSqr(),d=this.x.redSub(this.z),e=d.redSqr(),f=c.redSub(e),g=c.redMul(e),h=f.redMul(e.redAdd(this.curve.a24.redMul(f)));return this.curve.point(g,h)},k.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},k.prototype.diffAdd=function(b,c){var d=this.x.redAdd(this.z),e=this.x.redSub(this.z),f=b.x.redAdd(b.z),g=b.x.redSub(b.z),h=g.redMul(d),i=f.redMul(e),j=c.z.redMul(h.redAdd(i).redSqr()),k=c.x.redMul(h.redISub(i).redSqr());return this.curve.point(j,k)},k.prototype.mul=function(b){for(var c=b.clone(),d=this,e=this.curve.point(null,null),f=this,g=[];0!==c.cmpn(0);c.iushrn(1))g.push(c.andln(1));for(var h=g.length-1;h>=0;h--)0===g[h]?(d=d.diffAdd(e,f),e=e.dbl()):(e=d.diffAdd(e,f),d=d.dbl());return e},k.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},k.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},k.prototype.eq=function(b){return 0===this.getX().cmp(b.getX())},k.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},k.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../../elliptic":2,"../curve":5,"bn.js":1,inherits:25}],7:[function(a,b,c){"use strict";function j(a){h.call(this,"short",a),this.a=new f(a.a,16).toRed(this.red),this.b=new f(a.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(a),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function k(a,b,c,d){h.BasePoint.call(this,a,"affine"),null===b&&null===c?(this.x=null,this.y=null,this.inf=!0):(this.x=new f(b,16),this.y=new f(c,16),d&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function l(a,b,c,d){h.BasePoint.call(this,a,"jacobian"),null===b&&null===c&&null===d?(this.x=this.curve.one,this.y=this.curve.one,this.z=new f(0)):(this.x=new f(b,16),this.y=new f(c,16),this.z=new f(d,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}var d=a("../curve"),e=a("../../elliptic"),f=a("bn.js"),g=a("inherits"),h=d.base,i=e.utils.assert;g(j,h),b.exports=j,j.prototype._getEndomorphism=function(b){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var c,d;if(b.beta)c=new f(b.beta,16).toRed(this.red);else{var e=this._getEndoRoots(this.p);c=e[0].cmp(e[1])<0?e[0]:e[1],c=c.toRed(this.red)}if(b.lambda)d=new f(b.lambda,16);else{var g=this._getEndoRoots(this.n);0===this.g.mul(g[0]).x.cmp(this.g.x.redMul(c))?d=g[0]:(d=g[1],i(0===this.g.mul(d).x.cmp(this.g.x.redMul(c))))}var h;return h=b.basis?b.basis.map(function(a){return{a:new f(a.a,16),b:new f(a.b,16)}}):this._getEndoBasis(d),{beta:c,lambda:d,basis:h}}},j.prototype._getEndoRoots=function(b){var c=b===this.p?this.red:f.mont(b),d=new f(2).toRed(c).redInvm(),e=d.redNeg(),g=new f(3).toRed(c).redNeg().redSqrt().redMul(d),h=e.redAdd(g).fromRed(),i=e.redSub(g).fromRed();return[h,i]},j.prototype._getEndoBasis=function(b){for(var k,l,m,n,o,p,q,s,t,c=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=b,e=this.n.clone(),g=new f(1),h=new f(0),i=new f(0),j=new f(1),r=0;0!==d.cmpn(0);){var u=e.div(d);s=e.sub(u.mul(d)),t=i.sub(u.mul(g));var v=j.sub(u.mul(h));if(!m&&s.cmp(c)<0)k=q.neg(),l=g,m=s.neg(),n=t;else if(m&&2===++r)break;q=s,e=d,d=s,i=g,g=t,j=h,h=v}o=s.neg(),p=t;var w=m.sqr().add(n.sqr()),x=o.sqr().add(p.sqr());return x.cmp(w)>=0&&(o=k,p=l),m.negative&&(m=m.neg(),n=n.neg()),o.negative&&(o=o.neg(),p=p.neg()),[{a:m,b:n},{a:o,b:p}]},j.prototype._endoSplit=function(b){var c=this.endo.basis,d=c[0],e=c[1],f=e.b.mul(b).divRound(this.n),g=d.b.neg().mul(b).divRound(this.n),h=f.mul(d.a),i=g.mul(e.a),j=f.mul(d.b),k=g.mul(e.b),l=b.sub(h).sub(i),m=j.add(k).neg();return{k1:l,k2:m}},j.prototype.pointFromX=function(b,c){b=new f(b,16),b.red||(b=b.toRed(this.red));var d=b.redSqr().redMul(b).redIAdd(b.redMul(this.a)).redIAdd(this.b),e=d.redSqrt();if(0!==e.redSqr().redSub(d).cmp(this.zero))throw new Error("invalid point");var g=e.fromRed().isOdd();return(c&&!g||!c&&g)&&(e=e.redNeg()),this.point(b,e)},j.prototype.validate=function(b){if(b.inf)return!0;var c=b.x,d=b.y,e=this.a.redMul(c),f=c.redSqr().redMul(c).redIAdd(e).redIAdd(this.b);return 0===d.redSqr().redISub(f).cmpn(0)},j.prototype._endoWnafMulAdd=function(b,c,d){for(var e=this._endoWnafT1,f=this._endoWnafT2,g=0;g":""},k.prototype.isInfinity=function(){return this.inf},k.prototype.add=function(b){if(this.inf)return b;if(b.inf)return this;if(this.eq(b))return this.dbl();if(this.neg().eq(b))return this.curve.point(null,null);if(0===this.x.cmp(b.x))return this.curve.point(null,null);var c=this.y.redSub(b.y);0!==c.cmpn(0)&&(c=c.redMul(this.x.redSub(b.x).redInvm()));var d=c.redSqr().redISub(this.x).redISub(b.x),e=c.redMul(this.x.redSub(d)).redISub(this.y);return this.curve.point(d,e)},k.prototype.dbl=function(){if(this.inf)return this;var b=this.y.redAdd(this.y);if(0===b.cmpn(0))return this.curve.point(null,null);var c=this.curve.a,d=this.x.redSqr(),e=b.redInvm(),f=d.redAdd(d).redIAdd(d).redIAdd(c).redMul(e),g=f.redSqr().redISub(this.x.redAdd(this.x)),h=f.redMul(this.x.redSub(g)).redISub(this.y);return this.curve.point(g,h)},k.prototype.getX=function(){return this.x.fromRed()},k.prototype.getY=function(){ -return this.y.fromRed()},k.prototype.mul=function(b){return b=new f(b,16),this._hasDoubles(b)?this.curve._fixedNafMul(this,b):this.curve.endo?this.curve._endoWnafMulAdd([this],[b]):this.curve._wnafMul(this,b)},k.prototype.mulAdd=function(b,c,d){var e=[this,c],f=[b,d];return this.curve.endo?this.curve._endoWnafMulAdd(e,f):this.curve._wnafMulAdd(1,e,f,2)},k.prototype.jmulAdd=function(b,c,d){var e=[this,c],f=[b,d];return this.curve.endo?this.curve._endoWnafMulAdd(e,f,!0):this.curve._wnafMulAdd(1,e,f,2,!0)},k.prototype.eq=function(b){return this===b||this.inf===b.inf&&(this.inf||0===this.x.cmp(b.x)&&0===this.y.cmp(b.y))},k.prototype.neg=function(b){if(this.inf)return this;var c=this.curve.point(this.x,this.y.redNeg());if(b&&this.precomputed){var d=this.precomputed,e=function(a){return a.neg()};c.precomputed={naf:d.naf&&{wnd:d.naf.wnd,points:d.naf.points.map(e)},doubles:d.doubles&&{step:d.doubles.step,points:d.doubles.points.map(e)}}}return c},k.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var b=this.curve.jpoint(this.x,this.y,this.curve.one);return b},g(l,h.BasePoint),j.prototype.jpoint=function(b,c,d){return new l(this,b,c,d)},l.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var b=this.z.redInvm(),c=b.redSqr(),d=this.x.redMul(c),e=this.y.redMul(c).redMul(b);return this.curve.point(d,e)},l.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},l.prototype.add=function(b){if(this.isInfinity())return b;if(b.isInfinity())return this;var c=b.z.redSqr(),d=this.z.redSqr(),e=this.x.redMul(c),f=b.x.redMul(d),g=this.y.redMul(c.redMul(b.z)),h=b.y.redMul(d.redMul(this.z)),i=e.redSub(f),j=g.redSub(h);if(0===i.cmpn(0))return 0!==j.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var k=i.redSqr(),l=k.redMul(i),m=e.redMul(k),n=j.redSqr().redIAdd(l).redISub(m).redISub(m),o=j.redMul(m.redISub(n)).redISub(g.redMul(l)),p=this.z.redMul(b.z).redMul(i);return this.curve.jpoint(n,o,p)},l.prototype.mixedAdd=function(b){if(this.isInfinity())return b.toJ();if(b.isInfinity())return this;var c=this.z.redSqr(),d=this.x,e=b.x.redMul(c),f=this.y,g=b.y.redMul(c).redMul(this.z),h=d.redSub(e),i=f.redSub(g);if(0===h.cmpn(0))return 0!==i.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var j=h.redSqr(),k=j.redMul(h),l=d.redMul(j),m=i.redSqr().redIAdd(k).redISub(l).redISub(l),n=i.redMul(l.redISub(m)).redISub(f.redMul(k)),o=this.z.redMul(h);return this.curve.jpoint(m,n,o)},l.prototype.dblp=function(b){if(0===b)return this;if(this.isInfinity())return this;if(!b)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var c=this,d=0;d=0)return!1;if(d.redIAdd(f),0===this.x.cmp(d))return!0}return!1},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../../elliptic":2,"../curve":5,"bn.js":1,inherits:25}],8:[function(a,b,c){"use strict";function h(a){"short"===a.type?this.curve=new f.curve.short(a):"edwards"===a.type?this.curve=new f.curve.edwards(a):this.curve=new f.curve.mont(a),this.g=this.curve.g,this.n=this.curve.n,this.hash=a.hash,g(this.g.validate(),"Invalid curve"),g(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function i(a,b){Object.defineProperty(d,a,{configurable:!0,enumerable:!0,get:function(){var c=new h(b);return Object.defineProperty(d,a,{configurable:!0,enumerable:!0,value:c}),c}})}var d=c,e=a("hash.js"),f=a("../elliptic"),g=f.utils.assert;d.PresetCurve=h,i("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:e.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),i("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:e.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),i("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:e.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),i("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:e.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),i("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:e.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),i("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:e.sha256,gRed:!1,g:["9"]}),i("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:e.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var j;try{j=a("./precomputed/secp256k1")}catch(a){j=void 0}i("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:e.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",j]})},{"../elliptic":2,"./precomputed/secp256k1":16,"hash.js":19}],9:[function(a,b,c){"use strict";function j(a){return this instanceof j?("string"==typeof a&&(g(e.curves.hasOwnProperty(a),"Unknown curve "+a),a=e.curves[a]),a instanceof e.curves.PresetCurve&&(a={curve:a}),this.curve=a.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=a.curve.g,this.g.precompute(a.curve.n.bitLength()+1),void(this.hash=a.hash||a.curve.hash)):new j(a)}var d=a("bn.js"),e=a("../../elliptic"),f=e.utils,g=f.assert,h=a("./key"),i=a("./signature");b.exports=j,j.prototype.keyPair=function(b){return new h(this,b)},j.prototype.keyFromPrivate=function(b,c){return h.fromPrivate(this,b,c)},j.prototype.keyFromPublic=function(b,c){return h.fromPublic(this,b,c)},j.prototype.genKeyPair=function(b){b||(b={});for(var c=new e.hmacDRBG({hash:this.hash,pers:b.pers,entropy:b.entropy||e.rand(this.hash.hmacStrength),nonce:this.n.toArray()}),f=this.n.byteLength(),g=this.n.sub(new d(2));;){var h=new d(c.generate(f));if(!(h.cmp(g)>0))return h.iaddn(1),this.keyFromPrivate(h)}},j.prototype._truncateToN=function(b,c){var d=8*b.byteLength()-this.n.bitLength();return d>0&&(b=b.ushrn(d)),!c&&b.cmp(this.n)>=0?b.sub(this.n):b},j.prototype.sign=function(b,c,f,g){"object"==typeof f&&(g=f,f=null),g||(g={}),c=this.keyFromPrivate(c,f),b=this._truncateToN(new d(b,16));for(var h=this.n.byteLength(),j=c.getPrivate().toArray("be",h),k=b.toArray("be",h),l=new e.hmacDRBG({hash:this.hash,entropy:j,nonce:k,pers:g.pers,persEnc:g.persEnc}),m=this.n.sub(new d(1)),n=0;!0;n++){var o=g.k?g.k(n):new d(l.generate(this.n.byteLength()));if(o=this._truncateToN(o,!0),!(o.cmpn(1)<=0||o.cmp(m)>=0)){var p=this.g.mul(o);if(!p.isInfinity()){var q=p.getX(),r=q.umod(this.n);if(0!==r.cmpn(0)){var s=o.invm(this.n).mul(r.mul(c.getPrivate()).iadd(b));if(s=s.umod(this.n),0!==s.cmpn(0)){var t=(p.getY().isOdd()?1:0)|(0!==q.cmp(r)?2:0);return g.canonical&&s.cmp(this.nh)>0&&(s=this.n.sub(s),t^=1),new i({r:r,s:s,recoveryParam:t})}}}}}},j.prototype.verify=function(b,c,e,f){b=this._truncateToN(new d(b,16)),e=this.keyFromPublic(e,f),c=new i(c,"hex");var g=c.r,h=c.s;if(g.cmpn(1)<0||g.cmp(this.n)>=0)return!1;if(h.cmpn(1)<0||h.cmp(this.n)>=0)return!1;var j=h.invm(this.n),k=j.mul(b).umod(this.n),l=j.mul(g).umod(this.n);if(!this.curve._maxwellTrick){var m=this.g.mulAdd(k,e.getPublic(),l);return!m.isInfinity()&&0===m.getX().umod(this.n).cmp(g)}var m=this.g.jmulAdd(k,e.getPublic(),l);return!m.isInfinity()&&m.eqXToP(g)},j.prototype.recoverPubKey=function(a,b,c,e){g((3&c)===c,"The recovery param is more than two bits"),b=new i(b,e);var f=this.n,h=new d(a),j=b.r,k=b.s,l=1&c,m=c>>1;if(j.cmp(this.curve.p.umod(this.curve.n))>=0&&m)throw new Error("Unable to find sencond key candinate");j=m?this.curve.pointFromX(j.add(this.curve.n),l):this.curve.pointFromX(j,l);var n=b.r.invm(f),o=f.sub(h).mul(n).umod(f),p=k.mul(n).umod(f);return this.g.mulAdd(o,j,p)},j.prototype.getKeyRecoveryParam=function(a,b,c,d){if(b=new i(b,d),null!==b.recoveryParam)return b.recoveryParam;for(var e=0;e<4;e++){var f;try{f=this.recoverPubKey(a,b,e)}catch(a){continue}if(f.eq(c))return e}throw new Error("Unable to find valid recovery factor")}},{"../../elliptic":2,"./key":10,"./signature":11,"bn.js":1}],10:[function(a,b,c){"use strict";function e(a,b){this.ec=a,this.priv=null,this.pub=null,b.priv&&this._importPrivate(b.priv,b.privEnc),b.pub&&this._importPublic(b.pub,b.pubEnc)}var d=a("bn.js");b.exports=e,e.fromPublic=function(b,c,d){return c instanceof e?c:new e(b,{pub:c,pubEnc:d})},e.fromPrivate=function(b,c,d){return c instanceof e?c:new e(b,{priv:c,privEnc:d})},e.prototype.validate=function(){var b=this.getPublic();return b.isInfinity()?{result:!1,reason:"Invalid public key"}:b.validate()?b.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},e.prototype.getPublic=function(b,c){return"string"==typeof b&&(c=b,b=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),c?this.pub.encode(c,b):this.pub},e.prototype.getPrivate=function(b){return"hex"===b?this.priv.toString(16,2):this.priv},e.prototype._importPrivate=function(b,c){this.priv=new d(b,c||16),this.priv=this.priv.umod(this.ec.curve.n)},e.prototype._importPublic=function(b,c){return b.x||b.y?void(this.pub=this.ec.curve.point(b.x,b.y)):void(this.pub=this.ec.curve.decodePoint(b,c))},e.prototype.derive=function(b){return b.mul(this.priv).getX()},e.prototype.sign=function(b,c,d){return this.ec.sign(b,this,c,d)},e.prototype.verify=function(b,c){return this.ec.verify(b,c,this)},e.prototype.inspect=function(){return""}},{"bn.js":1}],11:[function(a,b,c){"use strict";function h(a,b){return a instanceof h?a:void(this._importDER(a,b)||(g(a.r&&a.s,"Signature without r or s"),this.r=new d(a.r,16),this.s=new d(a.s,16),void 0===a.recoveryParam?this.recoveryParam=null:this.recoveryParam=a.recoveryParam))}function i(){this.place=0}function j(a,b){var c=a[b.place++];if(!(128&c))return c;for(var d=15&c,e=0,f=0,g=b.place;f>>3);for(a.push(128|c);--c;)a.push(b>>>(c<<3)&255);a.push(b)}var d=a("bn.js"),e=a("../../elliptic"),f=e.utils,g=f.assert;b.exports=h,h.prototype._importDER=function(b,c){b=f.toArray(b,c);var e=new i;if(48!==b[e.place++])return!1;var g=j(b,e);if(g+e.place!==b.length)return!1;if(2!==b[e.place++])return!1;var h=j(b,e),k=b.slice(e.place,h+e.place);if(e.place+=h,2!==b[e.place++])return!1;var l=j(b,e);if(b.length!==l+e.place)return!1;var m=b.slice(e.place,l+e.place);return 0===k[0]&&128&k[1]&&(k=k.slice(1)),0===m[0]&&128&m[1]&&(m=m.slice(1)),this.r=new d(k),this.s=new d(m),this.recoveryParam=null,!0},h.prototype.toDER=function(b){var c=this.r.toArray(),d=this.s.toArray();for(128&c[0]&&(c=[0].concat(c)),128&d[0]&&(d=[0].concat(d)),c=k(c),d=k(d);!(d[0]||128&d[1]);)d=d.slice(1);var e=[2];l(e,c.length),e=e.concat(c),e.push(2),l(e,d.length);var g=e.concat(d),h=[48];return l(h,g.length),h=h.concat(g),f.encode(h,b)}},{"../../elliptic":2,"bn.js":1}],12:[function(a,b,c){"use strict";function k(a){if(g("ed25519"===a,"only tested with ed25519 so far"),!(this instanceof k))return new k(a);var a=e.curves[a].curve;this.curve=a,this.g=a.g,this.g.precompute(a.n.bitLength()+1),this.pointClass=a.point().constructor,this.encodingLength=Math.ceil(a.n.bitLength()/8),this.hash=d.sha512}var d=a("hash.js"),e=a("../../elliptic"),f=e.utils,g=f.assert,h=f.parseBytes,i=a("./key"),j=a("./signature");b.exports=k,k.prototype.sign=function(b,c){b=h(b);var d=this.keyFromSecret(c),e=this.hashInt(d.messagePrefix(),b),f=this.g.mul(e),g=this.encodePoint(f),i=this.hashInt(g,d.pubBytes(),b).mul(d.priv()),j=e.add(i).umod(this.curve.n);return this.makeSignature({R:f,S:j,Rencoded:g})},k.prototype.verify=function(b,c,d){b=h(b),c=this.makeSignature(c);var e=this.keyFromPublic(d),f=this.hashInt(c.Rencoded(),e.pubBytes(),b),g=this.g.mul(c.S()),i=c.R().add(e.pub().mul(f));return i.eq(g)},k.prototype.hashInt=function(){for(var b=this.hash(),c=0;c=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(b,c,d)}var d=a("hash.js"),e=a("../elliptic"),f=e.utils,g=f.assert;b.exports=h,h.prototype._init=function(b,c,d){var e=b.concat(c).concat(d);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var f=0;f=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(b.concat(d||[])),this.reseed=1},h.prototype.generate=function(b,c,d,e){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof c&&(e=d,d=c,c=null),d&&(d=f.toArray(d,e),this._update(d));for(var g=[];g.length>8,g=255&e;f?c.push(f,g):c.push(g)}return c}function g(a){return 1===a.length?"0"+a:a}function h(a){for(var b="",c=0;c=0;){var f;if(e.isOdd()){var g=e.andln(d-1);f=g>(d>>1)-1?(d>>1)-g:g,e.isubn(f)}else f=0;c.push(f);for(var h=0!==e.cmpn(0)&&0===e.andln(d-1)?b+1:1,i=1;i0||b.cmpn(-e)>0;){var f=a.andln(3)+d&3,g=b.andln(3)+e&3;3===f&&(f=-1),3===g&&(g=-1);var h;if(0===(1&f))h=0;else{var i=a.andln(7)+d&7;h=3!==i&&5!==i||2!==g?f:-f}c[0].push(h);var j;if(0===(1&g))j=0;else{var i=b.andln(7)+e&7;j=3!==i&&5!==i||2!==f?g:-g}c[1].push(j),2*d===h+1&&(d=1-d),2*e===j+1&&(e=1-e),a.iushrn(1),b.iushrn(1)}return c}function k(a,b,c){var d="_"+b;a.prototype[b]=function(){return void 0!==this[d]?this[d]:this[d]=c.call(this)}}function l(a){return"string"==typeof a?d.toArray(a,"hex"):a}function m(a){return new e(a,"hex","le")}var d=c,e=a("bn.js");d.assert=function(b,c){if(!b)throw new Error(c||"Assertion failed")},d.toArray=f,d.zero2=g,d.toHex=h,d.encode=function(b,c){return"hex"===c?h(b):b},d.getNAF=i,d.getJSF=j,d.cachedProperty=k,d.parseBytes=l,d.intFromLE=m},{"bn.js":1}],18:[function(a,b,c){function e(a){this.rand=a}var d;if(b.exports=function(b){return d||(d=new e(null)),d.generate(b)},b.exports.Rand=e,e.prototype.generate=function(b){return this._rand(b)},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?e.prototype._rand=function(b){var c=new Uint8Array(b);return self.crypto.getRandomValues(c),c}:self.msCrypto&&self.msCrypto.getRandomValues?e.prototype._rand=function(b){var c=new Uint8Array(b);return self.msCrypto.getRandomValues(c),c}:e.prototype._rand=function(){throw new Error("Not implemented yet")};else try{var f=a("crypto");e.prototype._rand=function(b){return f.randomBytes(b)}}catch(a){e.prototype._rand=function(b){for(var c=new Uint8Array(b),d=0;d=this._delta8){b=this.pending;var d=b.length%this._delta8;this.pending=b.slice(b.length-d,b.length),0===this.pending.length&&(this.pending=null),b=e.join32(b,0,b.length-d,this.endian);for(var f=0;f>>24&255,e[f++]=b>>>16&255,e[f++]=b>>>8&255,e[f++]=255&b}else{e[f++]=255&b,e[f++]=b>>>8&255,e[f++]=b>>>16&255,e[f++]=b>>>24&255,e[f++]=0,e[f++]=0,e[f++]=0,e[f++]=0;for(var g=8;gthis.blockSize&&(b=(new this.Hash).update(b).digest()),g(b.length<=this.blockSize);for(var c=b.length;c>>3}function L(a){return g(a,17)^g(a,19)^a>>>10}function M(a,b,c,d){return 0===a?F(b,c,d):1===a||3===a?H(b,c,d):2===a?G(b,c,d):void 0}function N(a,b,c,d,e,f){var g=a&c^~a&e;return g<0&&(g+=4294967296),g}function O(a,b,c,d,e,f){var g=b&d^~b&f;return g<0&&(g+=4294967296),g}function P(a,b,c,d,e,f){var g=a&c^a&e^c&e;return g<0&&(g+=4294967296),g}function Q(a,b,c,d,e,f){var g=b&d^b&f^d&f;return g<0&&(g+=4294967296),g}function R(a,b){var c=l(a,b,28),d=l(b,a,2),e=l(b,a,7),f=c^d^e;return f<0&&(f+=4294967296),f}function S(a,b){var c=m(a,b,28),d=m(b,a,2),e=m(b,a,7),f=c^d^e;return f<0&&(f+=4294967296),f}function T(a,b){var c=l(a,b,14),d=l(a,b,18),e=l(b,a,9),f=c^d^e;return f<0&&(f+=4294967296),f}function U(a,b){var c=m(a,b,14),d=m(a,b,18),e=m(b,a,9),f=c^d^e;return f<0&&(f+=4294967296),f}function V(a,b){var c=l(a,b,1),d=l(a,b,8),e=n(a,b,7),f=c^d^e;return f<0&&(f+=4294967296),f}function W(a,b){var c=m(a,b,1),d=m(a,b,8),e=o(a,b,7),f=c^d^e;return f<0&&(f+=4294967296),f}function X(a,b){var c=l(a,b,19),d=l(b,a,29),e=n(a,b,6),f=c^d^e;return f<0&&(f+=4294967296),f}function Y(a,b){var c=m(a,b,19),d=m(b,a,29),e=o(a,b,6),f=c^d^e;return f<0&&(f+=4294967296),f}var d=a("../hash"),e=d.utils,f=e.assert,g=e.rotr32,h=e.rotl32,i=e.sum32,j=e.sum32_4,k=e.sum32_5,l=e.rotr64_hi,m=e.rotr64_lo,n=e.shr64_hi,o=e.shr64_lo,p=e.sum64,q=e.sum64_hi,r=e.sum64_lo,s=e.sum64_4_hi,t=e.sum64_4_lo,u=e.sum64_5_hi,v=e.sum64_5_lo,w=d.common.BlockHash,x=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],y=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],z=[1518500249,1859775393,2400959708,3395469782];e.inherits(A,w),c.sha256=A,A.blockSize=512,A.outSize=256,A.hmacStrength=192,A.padLength=64,A.prototype._update=function(b,c){for(var d=this.W,e=0;e<16;e++)d[e]=b[c+e];for(;e>8,g=255&e;f?c.push(f,g):c.push(g)}else for(var d=0;d>>24|a>>>8&65280|a<<8&16711680|(255&a)<<24;return b>>>0}function i(a,b){for(var c="",d=0;d>>0}return f}function m(a,b){for(var c=new Array(4*a.length),d=0,e=0;d>>24,c[e+1]=f>>>16&255,c[e+2]=f>>>8&255,c[e+3]=255&f):(c[e+3]=f>>>24,c[e+2]=f>>>16&255,c[e+1]=f>>>8&255,c[e]=255&f)}return c}function n(a,b){return a>>>b|a<<32-b}function o(a,b){return a<>>32-b}function p(a,b){return a+b>>>0}function q(a,b,c){return a+b+c>>>0}function r(a,b,c,d){return a+b+c+d>>>0}function s(a,b,c,d,e){return a+b+c+d+e>>>0}function t(a,b){if(!a)throw new Error(b||"Assertion failed")}function u(a,b,c,d){var e=a[b],f=a[b+1],g=d+f>>>0,h=(g>>0,a[b+1]=g}function v(a,b,c,d){var e=b+d>>>0,f=(e>>0}function w(a,b,c,d){var e=b+d;return e>>>0}function x(a,b,c,d,e,f,g,h){var i=0,j=b;j=j+d>>>0,i+=j>>0,i+=j>>0,i+=j>>0}function y(a,b,c,d,e,f,g,h){var i=b+d+f+h;return i>>>0}function z(a,b,c,d,e,f,g,h,i,j){var k=0,l=b;l=l+d>>>0,k+=l>>0,k+=l>>0,k+=l>>0,k+=l>>0}function A(a,b,c,d,e,f,g,h,i,j){var k=b+d+f+h+j;return k>>>0}function B(a,b,c){var d=b<<32-c|a>>>c;return d>>>0}function C(a,b,c){var d=a<<32-c|b>>>c;return d>>>0}function D(a,b,c){return a>>>c}function E(a,b,c){var d=a<<32-c|b>>>c;return d>>>0}var d=c,e=a("inherits");d.toArray=f,d.toHex=g,d.htonl=h,d.toHex32=i,d.zero2=j,d.zero8=k,d.join32=l,d.split32=m,d.rotr32=n,d.rotl32=o,d.sum32=p,d.sum32_3=q,d.sum32_4=r,d.sum32_5=s,d.assert=t,d.inherits=e,c.sum64=u,c.sum64_hi=v,c.sum64_lo=w,c.sum64_4_hi=x,c.sum64_4_lo=y,c.sum64_5_hi=z,c.sum64_5_lo=A,c.rotr64_hi=B,c.rotr64_lo=C,c.shr64_hi=D,c.shr64_lo=E},{inherits:25}],25:[function(a,b,c){"function"==typeof Object.create?b.exports=function(b,c){b.super_=c,b.prototype=Object.create(c.prototype,{constructor:{value:b,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(b,c){b.super_=c;var d=function(){};d.prototype=c.prototype,b.prototype=new d,b.prototype.constructor=b}},{}],26:[function(a,b,c){b.exports={name:"elliptic",version:"6.3.2",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0",inherits:"^2.0.1"}}},{}]},{},[2])(2)}); - -var liner=function(e){function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}var t={};return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s=17)}([function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),function(e){function n(e){for(var r,t=e,n=/[^%](%\d+)/g,a=[];r=n.exec(t);)a.push({arg:r[1],index:r.index});for(var o=a.length-1;o>=0;o--){var i=a[o],s=i.arg.substring(1),c=i.index+1;t=t.substring(0,c)+arguments[+s]+t.substring(c+1+s.length)}return t=t.replace("%%","%")}function a(e){var r;r="string"==typeof e?{name:e}:e,p.checkAlgorithm(r);var t=e;return t.hash&&(t.hash=a(t.hash)),r}function o(e,r){if(!e)throw new s("Parameter '"+r+"' is required and cant be empty");if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return new Uint8Array(e);if(ArrayBuffer.isView(e)){var t=e.map(function(e){return e});return new Uint8Array(t.buffer)}if(e instanceof ArrayBuffer)return new Uint8Array(e);throw new s("Incoming parameter '"+r+"' has wrong data type. Must be ArrayBufferView or ArrayBuffer")}t.d(r,"WebCryptoError",function(){return s}),t.d(r,"AlgorithmError",function(){return c}),t.d(r,"CryptoKeyError",function(){return u}),t.d(r,"PrepareAlgorithm",function(){return a}),t.d(r,"PrepareData",function(){return o}),t.d(r,"BaseCrypto",function(){return p}),t.d(r,"AlgorithmNames",function(){return h}),t.d(r,"Base64Url",function(){return y}),t.d(r,"SubtleCrypto",function(){return W}),t.d(r,"Aes",function(){return m}),t.d(r,"AesAlgorithmError",function(){return A}),t.d(r,"AesWrapKey",function(){return w}),t.d(r,"AesEncrypt",function(){return v}),t.d(r,"AesECB",function(){return g}),t.d(r,"AesCBC",function(){return C}),t.d(r,"AesCTR",function(){return d}),t.d(r,"AesGCM",function(){return k}),t.d(r,"AesKW",function(){return b}),t.d(r,"RsaKeyGenParamsError",function(){return G}),t.d(r,"RsaHashedImportParamsError",function(){return M}),t.d(r,"Rsa",function(){return B}),t.d(r,"RsaSSA",function(){return T}),t.d(r,"RsaPSSParamsError",function(){return D}),t.d(r,"RsaPSS",function(){return x}),t.d(r,"RsaOAEPParamsError",function(){return j}),t.d(r,"RsaOAEP",function(){return H}),t.d(r,"EcKeyGenParamsError",function(){return U}),t.d(r,"Ec",function(){return _}),t.d(r,"EcAlgorithmError",function(){return K}),t.d(r,"EcDSA",function(){return O}),t.d(r,"EcDH",function(){return S}),t.d(r,"ShaAlgorithms",function(){return E}),t.d(r,"Sha",function(){return P});var i=t(8),s=function(e){function r(r){for(var t=[],a=1;a0&&e.length<=128))throw new A(A.PARAM_WRONG_VALUE,"length","number [1-128]")},r.ALG_NAME=h.AesCTR,r}(v),k=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return Object(i.a)(r,e),r.checkAlgorithmParams=function(e){if(this.checkAlgorithm(e),e.additionalData&&!(ArrayBuffer.isView(e.additionalData)||e.additionalData instanceof ArrayBuffer))throw new A(A.PARAM_WRONG_TYPE,"additionalData","ArrayBufferView or ArrayBuffer");if(!e.iv)throw new A(A.PARAM_REQUIRED,"iv");if(!(ArrayBuffer.isView(e.iv)||e.iv instanceof ArrayBuffer))throw new A(A.PARAM_WRONG_TYPE,"iv","ArrayBufferView or ArrayBuffer");if(e.tagLength){if(![32,64,96,104,112,120,128].some(function(r){return r===e.tagLength}))throw new A(A.PARAM_WRONG_VALUE,"tagLength","32, 64, 96, 104, 112, 120 or 128")}},r.ALG_NAME=h.AesGCM,r}(v),b=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return Object(i.a)(r,e),r.checkAlgorithmParams=function(e){this.checkAlgorithm(e)},r.ALG_NAME=h.AesKW,r.KEY_USAGES=["wrapKey","unwrapKey"],r}(w),E=[h.Sha1,h.Sha256,h.Sha384,h.Sha512].join(" | "),P=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return Object(i.a)(r,e),r.checkAlgorithm=function(r){var t;switch(t="string"==typeof r?{name:r}:r,e.checkAlgorithm.call(this,t),t.name.toUpperCase()){case h.Sha1:case h.Sha256:case h.Sha384:case h.Sha512:break;default:throw new c(c.WRONG_ALG_NAME,t.name,E)}},r.digest=function(e,r){var t=this;return new Promise(function(r,n){t.checkAlgorithm(e),r(void 0)})},r}(p),U=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return r.code=9,r}return Object(i.a)(r,e),r}(c),_=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return Object(i.a)(r,e),r.checkAlgorithm=function(e){if(e.name.toUpperCase()!==this.ALG_NAME.toUpperCase())throw new c(c.WRONG_ALG_NAME,e.name,this.ALG_NAME)},r.checkKeyGenParams=function(e){if(!e.namedCurve)throw new U(U.PARAM_REQUIRED,"namedCurve");if("string"!=typeof e.namedCurve)throw new U(U.PARAM_WRONG_TYPE,"namedCurve","string");switch(e.namedCurve.toUpperCase()){case"P-256":case"K-256":case"P-384":case"P-521":break;default:throw new U(U.PARAM_WRONG_VALUE,"namedCurve","K-256, P-256, P-384 or P-521")}},r.checkKeyGenUsages=function(e){var r=this;e.forEach(function(e){var t=0;for(t;t0&&e.length<=512))throw new c(c.PARAM_WRONG_VALUE,"length","more 0 and less than 512")},r.checkKeyGenUsages=function(e){var r=this;this.checkKeyUsages(e),e.forEach(function(e){var t=0;for(t;t=256&&r<=16384)||r%8)throw new G(G.PARAM_WRONG_VALUE,"modulusLength"," a multiple of 8 bits and >= 256 and <= 16384");var t=e.publicExponent;if(!t)throw new G(G.PARAM_REQUIRED,"publicExponent");if(!ArrayBuffer.isView(t))throw new G(G.PARAM_WRONG_TYPE,"publicExponent","ArrayBufferView");if(3!==t[0]&&(1!==t[0]||0!==t[1]||1!==t[2]))throw new G(G.PARAM_WRONG_VALUE,"publicExponent","Uint8Array([3]) | Uint8Array([1, 0, 1])");if(!e.hash)throw new G(G.PARAM_REQUIRED,"hash",E);P.checkAlgorithm(e.hash)},r.checkKeyGenUsages=function(e){var r=this;this.checkKeyUsages(e),e.forEach(function(e){var t=0;for(t;t>>16&65535,n=65535&e,a=r>>>16&65535,o=65535&r;return n*o+(t*o+n*a<<16>>>0)|0})},function(e,r,t){"use strict";function n(){var e={name:"Unknown",version:"0"};try{var t=self.navigator.userAgent,n=void 0;(n=/edge\/([\d\.]+)/i.exec(t))?(e.name=r.Browser.Edge,e.version=n[1]):/msie/i.test(t)?(e.name=r.Browser.IE,e.version=/msie ([\d\.]+)/i.exec(t)[1]):/Trident/i.test(t)?(e.name=r.Browser.IE,e.version=/rv:([\d\.]+)/i.exec(t)[1]):/chrome/i.test(t)?(e.name=r.Browser.Chrome,e.version=/chrome\/([\d\.]+)/i.exec(t)[1]):/safari/i.test(t)?(e.name=r.Browser.Safari,e.version=/version\/([\d\.]+)/i.exec(t)[1]):/firefox/i.test(t)&&(e.name=r.Browser.Firefox,e.version=/firefox\/([\d\.]+)/i.exec(t)[1])}catch(e){}return e}function a(e){for(var r=new Uint8Array(e.length),t=0;t-1&&("public"===e.type||"secret"===e.type)&&e.usages.push(t)}),["sign","decrypt","unwrapKey","deriveKey","deriveBits"].forEach(function(t){r.indexOf(t)>-1&&("private"===e.type||"secret"===e.type)&&e.usages.push(t)})))})}function s(e,r,t){if(r&&w.BrowserInfo().name===w.Browser.IE){"extractable"in e&&(e.ext=e.extractable,delete e.extractable);var n=null;switch(r.name.toUpperCase()){case h.AlgorithmNames.AesECB.toUpperCase():case h.AlgorithmNames.AesCBC.toUpperCase():case h.AlgorithmNames.AesGCM.toUpperCase():n=v.AesCrypto;break;default:throw new A.LinerError(A.LinerError.UNSUPPORTED_ALGORITHM,r.name.toUpperCase())}n&&!e.alg&&(e.alg=n.alg2jwk(r)),"key_ops"in e||(e.key_ops=t)}}function c(e){w.BrowserInfo().name===w.Browser.IE&&("ext"in e&&(e.extractable=e.ext,delete e.ext),delete e.key_ops,delete e.alg)}function u(e){var r=/AppleWebKit\/(\d+)/.exec(self.navigator.userAgent);return e.toUpperCase()===h.AlgorithmNames.RsaOAEP&&r&&parseInt(r[1],10)<604}var p=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t])};return function(r,t){function n(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var h=t(0),f=t(0),y=t(0),l=t(4),m=t(2),A=t(1),w=t(5),v=t(11),g=t(12),C=t(13),d=t(14),k=t(15),b=t(16),E=[],P=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return p(r,e),r.prototype.generateKey=function(r,t,n){var o,s=this,c=arguments;return e.prototype.generateKey.apply(this,c).then(function(e){if(o=y.PrepareAlgorithm(r),!(w.BrowserInfo().name===w.Browser.Edge&&o.name.toUpperCase()===h.AlgorithmNames.AesGCM||u(o.name))&&l.nativeSubtle)try{return l.nativeSubtle.generateKey.apply(l.nativeSubtle,c).catch(function(e){w.warn("WebCrypto: native generateKey for "+o.name+" doesn't work.",e&&e.message||"Unknown message")})}catch(e){w.warn("WebCrypto: native generateKey for "+o.name+" doesn't work.",e&&e.message||"Unknown message")}}).then(function(e){if(e){var c=Promise.resolve(e);if(w.BrowserInfo().name===w.Browser.Safari&&(o.name.toUpperCase()===h.AlgorithmNames.EcDH.toUpperCase()||o.name.toUpperCase()===h.AlgorithmNames.EcDSA.toUpperCase())){var u=e.publicKey;c=c.then(function(){return s.exportKey("jwk",u).then(function(a){return s.exportKey("spki",u).then(function(o){for(var i=h.Base64Url.decode(a.x),c=h.Base64Url.decode(a.y),u=i.length+c.length,p=new Uint8Array(o),f=0;f32?o>48?66:48:32,t.length32?o>48?66:48:32,t.length/232?o>48?66:48:32,a.length-1)t=r.replace("-","").toLowerCase();else{if("K-256"!==r)throw new c.LinerError("Unsupported named curve '"+e+"'");t="secp256k1"}return t},r}(s.BaseCrypto);r.EcCrypto=h;var f=t(2)},function(e,r,t){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t])};return function(r,t){function n(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var a=t(0),o=t(1),i=t(3),s=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.importKey=function(e,r,t,n,a){return Promise.resolve().then(function(){var e=new Uint8Array(r),o=new i.CryptoKey({type:"secret",algorithm:t,extractable:n,usages:a});return o.key=e,o})},r.deriveBits=function(e,r,t){return Promise.resolve().then(function(){var n,i=new Uint8Array(e.salt),s=e.iterations,c=t/8,u="string"==typeof e.hash?e.hash:e.hash.name;switch(u.toUpperCase()){case a.AlgorithmNames.Sha512.toUpperCase():n=asmCrypto.PBKDF2_HMAC_SHA512.bytes(r.key,i,s,c);break;case a.AlgorithmNames.Sha256.toUpperCase():n=asmCrypto.PBKDF2_HMAC_SHA256.bytes(r.key,i,s,c);break;case a.AlgorithmNames.Sha1.toUpperCase():n=asmCrypto.PBKDF2_HMAC_SHA1.bytes(r.key,i,s,c);break;default:throw new o.LinerError(o.LinerError.UNSUPPORTED_ALGORITHM,u)}return n.buffer})},r.deriveKey=function(e,r,t,n,i){var s=this;return Promise.resolve().then(function(){var n=0;switch(t.name.toUpperCase()){case a.AlgorithmNames.AesCBC.toUpperCase():case a.AlgorithmNames.AesCTR.toUpperCase():case a.AlgorithmNames.AesGCM.toUpperCase():case a.AlgorithmNames.AesKW.toUpperCase():n=t.length;break;case a.AlgorithmNames.Hmac.toUpperCase():n=512;break;default:throw new o.LinerError(o.LinerError.UNSUPPORTED_ALGORITHM,t.name)}return s.deriveBits(e,r,n)}).then(function(e){return(new c.Crypto).subtle.importKey("raw",new Uint8Array(e),t,n,i)})},r}(a.BaseCrypto);r.Pbkdf2Crypto=s;var c=t(2)},function(e,r,t){"use strict";var n=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)r.hasOwnProperty(t)&&(e[t]=r[t])};return function(r,t){function n(){this.constructor=r}e(r,t),r.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}}();Object.defineProperty(r,"__esModule",{value:!0});var a=t(0),o=t(3),i=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.importKey=function(e,r,t,n,i){return Promise.resolve().then(function(){var s;if("jwk"===e.toLowerCase()){var c=r;s=a.Base64Url.decode(c.k)}else s=new Uint8Array(r);var u=new o.CryptoKey({type:"secret",algorithm:t,extractable:n,usages:i});return u.key=s,u})},r.sign=function(e,r,t){return Promise.resolve().then(function(){return asmCrypto.HMAC_SHA256.bytes(t,r.key).buffer})},r.exportKey=function(e,r){return Promise.resolve().then(function(){var t=r.key;if("jwk"===e.toLowerCase()){return{alg:"HS256",kty:"oct",k:a.Base64Url.encode(t),key_ops:r.usages,ext:r.extractable}}return t.buffer})},r}(a.BaseCrypto);r.HmacCrypto=i},function(e,r,t){"use strict";function n(e,r){return asmCrypto.HMAC_SHA256.bytes(e,r)}function a(e,r,t){for(var n=e.length,a=Math.ceil(r/n),o=new Uint8Array(n*a+t.length+1),i=0,s=0,c=0;c>>7);return n^=99}r||function(){t=[],e=[];var s,i,n=1;for(s=0;s<255;s++)t[s]=n,i=128&n,n<<=1,n&=255,128===i&&(n^=27),n^=t[s],e[t[s]]=s;t[255]=t[0],e[0]=0,r=!0}(),i=[],n=[],a=[[],[],[],[]],h=[[],[],[],[]];for(var c=0;c<256;c++){var u=o(c);i[c]=u,n[u]=c,a[0][c]=s(2,u)<<24|u<<16|u<<8|s(3,u),h[0][u]=s(14,c)<<24|s(9,c)<<16|s(13,c)<<8|s(11,c);for(var f=1;f<4;f++)a[f][c]=a[f-1][c]>>>8|a[f-1][c]<<24,h[f][u]=h[f-1][u]>>>8|h[f-1][u]<<24}}var c=function(t,e){o();var r=new Uint32Array(e);r.set(i,512),r.set(n,768);for(var s=0;s<4;s++)r.set(a[s],4096+1024*s>>2),r.set(h[s],8192+1024*s>>2);var c=function(t,e,r){"use asm";var s=0,i=0,n=0,a=0,h=0,o=0,c=0,u=0,f=0,l=0,p=0,w=0,y=0,_=0,d=0,A=0,v=0,x=0,E=0,g=0,m=0;var b=new t.Uint32Array(r),S=new t.Uint8Array(r);function C(t,e,r,h,o,c,u,f){t=t|0;e=e|0;r=r|0;h=h|0;o=o|0;c=c|0;u=u|0;f=f|0;var l=0,p=0,w=0,y=0,_=0,d=0,A=0,v=0;l=r|0x400,p=r|0x800,w=r|0xc00;o=o^b[(t|0)>>2],c=c^b[(t|4)>>2],u=u^b[(t|8)>>2],f=f^b[(t|12)>>2];for(v=16;(v|0)<=h<<4;v=v+16|0){y=b[(r|o>>22&1020)>>2]^b[(l|c>>14&1020)>>2]^b[(p|u>>6&1020)>>2]^b[(w|f<<2&1020)>>2]^b[(t|v|0)>>2],_=b[(r|c>>22&1020)>>2]^b[(l|u>>14&1020)>>2]^b[(p|f>>6&1020)>>2]^b[(w|o<<2&1020)>>2]^b[(t|v|4)>>2],d=b[(r|u>>22&1020)>>2]^b[(l|f>>14&1020)>>2]^b[(p|o>>6&1020)>>2]^b[(w|c<<2&1020)>>2]^b[(t|v|8)>>2],A=b[(r|f>>22&1020)>>2]^b[(l|o>>14&1020)>>2]^b[(p|c>>6&1020)>>2]^b[(w|u<<2&1020)>>2]^b[(t|v|12)>>2];o=y,c=_,u=d,f=A}s=b[(e|o>>22&1020)>>2]<<24^b[(e|c>>14&1020)>>2]<<16^b[(e|u>>6&1020)>>2]<<8^b[(e|f<<2&1020)>>2]^b[(t|v|0)>>2],i=b[(e|c>>22&1020)>>2]<<24^b[(e|u>>14&1020)>>2]<<16^b[(e|f>>6&1020)>>2]<<8^b[(e|o<<2&1020)>>2]^b[(t|v|4)>>2],n=b[(e|u>>22&1020)>>2]<<24^b[(e|f>>14&1020)>>2]<<16^b[(e|o>>6&1020)>>2]<<8^b[(e|c<<2&1020)>>2]^b[(t|v|8)>>2],a=b[(e|f>>22&1020)>>2]<<24^b[(e|o>>14&1020)>>2]<<16^b[(e|c>>6&1020)>>2]<<8^b[(e|u<<2&1020)>>2]^b[(t|v|12)>>2]}function M(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;C(0x0000,0x0800,0x1000,m,t,e,r,s)}function U(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;var n=0;C(0x0400,0x0c00,0x2000,m,t,s,r,e);n=i,i=a,a=n}function H(t,e,r,f){t=t|0;e=e|0;r=r|0;f=f|0;C(0x0000,0x0800,0x1000,m,h^t,o^e,c^r,u^f);h=s,o=i,c=n,u=a}function T(t,e,r,f){t=t|0;e=e|0;r=r|0;f=f|0;var l=0;C(0x0400,0x0c00,0x2000,m,t,f,r,e);l=i,i=a,a=l;s=s^h,i=i^o,n=n^c,a=a^u;h=t,o=e,c=r,u=f}function D(t,e,r,f){t=t|0;e=e|0;r=r|0;f=f|0;C(0x0000,0x0800,0x1000,m,h,o,c,u);h=s=s^t,o=i=i^e,c=n=n^r,u=a=a^f}function k(t,e,r,f){t=t|0;e=e|0;r=r|0;f=f|0;C(0x0000,0x0800,0x1000,m,h,o,c,u);s=s^t,i=i^e,n=n^r,a=a^f;h=t,o=e,c=r,u=f}function G(t,e,r,f){t=t|0;e=e|0;r=r|0;f=f|0;C(0x0000,0x0800,0x1000,m,h,o,c,u);h=s,o=i,c=n,u=a;s=s^t,i=i^e,n=n^r,a=a^f}function I(t,e,r,h){t=t|0;e=e|0;r=r|0;h=h|0;C(0x0000,0x0800,0x1000,m,f,l,p,w);w=~A&w|A&w+1;p=~d&p|d&p+((w|0)==0);l=~_&l|_&l+((p|0)==0);f=~y&f|y&f+((l|0)==0);s=s^t;i=i^e;n=n^r;a=a^h}function Z(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;var i=0,n=0,a=0,f=0,l=0,p=0,w=0,y=0,_=0,d=0;t=t^h,e=e^o,r=r^c,s=s^u;i=v|0,n=x|0,a=E|0,f=g|0;for(;(_|0)<128;_=_+1|0){if(i>>>31){l=l^t,p=p^e,w=w^r,y=y^s}i=i<<1|n>>>31,n=n<<1|a>>>31,a=a<<1|f>>>31,f=f<<1;d=s&1;s=s>>>1|r<<31,r=r>>>1|e<<31,e=e>>>1|t<<31,t=t>>>1;if(d)t=t^0xe1000000}h=l,o=p,c=w,u=y}function P(t){t=t|0;m=t}function B(t,e,r,h){t=t|0;e=e|0;r=r|0;h=h|0;s=t,i=e,n=r,a=h}function z(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;h=t,o=e,c=r,u=s}function O(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;f=t,l=e,p=r,w=s}function q(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;y=t,_=e,d=r,A=s}function L(t,e,r,s){t=t|0;e=e|0;r=r|0;s=s|0;w=~A&w|A&s,p=~d&p|d&r,l=~_&l|_&e,f=~y&f|y&t}function R(t){t=t|0;if(t&15)return-1;S[t|0]=s>>>24,S[t|1]=s>>>16&255,S[t|2]=s>>>8&255,S[t|3]=s&255,S[t|4]=i>>>24,S[t|5]=i>>>16&255,S[t|6]=i>>>8&255,S[t|7]=i&255,S[t|8]=n>>>24,S[t|9]=n>>>16&255,S[t|10]=n>>>8&255,S[t|11]=n&255,S[t|12]=a>>>24,S[t|13]=a>>>16&255,S[t|14]=a>>>8&255,S[t|15]=a&255;return 16}function K(t){t=t|0;if(t&15)return-1;S[t|0]=h>>>24,S[t|1]=h>>>16&255,S[t|2]=h>>>8&255,S[t|3]=h&255,S[t|4]=o>>>24,S[t|5]=o>>>16&255,S[t|6]=o>>>8&255,S[t|7]=o&255,S[t|8]=c>>>24,S[t|9]=c>>>16&255,S[t|10]=c>>>8&255,S[t|11]=c&255,S[t|12]=u>>>24,S[t|13]=u>>>16&255,S[t|14]=u>>>8&255,S[t|15]=u&255;return 16}function N(){M(0,0,0,0);v=s,x=i,E=n,g=a}function F(t,e,r){t=t|0;e=e|0;r=r|0;var h=0;if(e&15)return-1;while((r|0)>=16){V[t&7](S[e|0]<<24|S[e|1]<<16|S[e|2]<<8|S[e|3],S[e|4]<<24|S[e|5]<<16|S[e|6]<<8|S[e|7],S[e|8]<<24|S[e|9]<<16|S[e|10]<<8|S[e|11],S[e|12]<<24|S[e|13]<<16|S[e|14]<<8|S[e|15]);S[e|0]=s>>>24,S[e|1]=s>>>16&255,S[e|2]=s>>>8&255,S[e|3]=s&255,S[e|4]=i>>>24,S[e|5]=i>>>16&255,S[e|6]=i>>>8&255,S[e|7]=i&255,S[e|8]=n>>>24,S[e|9]=n>>>16&255,S[e|10]=n>>>8&255,S[e|11]=n&255,S[e|12]=a>>>24,S[e|13]=a>>>16&255,S[e|14]=a>>>8&255,S[e|15]=a&255;h=h+16|0,e=e+16|0,r=r-16|0}return h|0}function j(t,e,r){t=t|0;e=e|0;r=r|0;var s=0;if(e&15)return-1;while((r|0)>=16){W[t&1](S[e|0]<<24|S[e|1]<<16|S[e|2]<<8|S[e|3],S[e|4]<<24|S[e|5]<<16|S[e|6]<<8|S[e|7],S[e|8]<<24|S[e|9]<<16|S[e|10]<<8|S[e|11],S[e|12]<<24|S[e|13]<<16|S[e|14]<<8|S[e|15]);s=s+16|0,e=e+16|0,r=r-16|0}return s|0}var V=[M,U,H,T,D,k,G,I];var W=[H,Z];return{set_rounds:P,set_state:B,set_iv:z,set_nonce:O,set_mask:q,set_counter:L,get_state:R,get_iv:K,gcm_init:N,cipher:F,mac:j}}({Uint8Array:Uint8Array,Uint32Array:Uint32Array},t,e);return c.set_key=function(t,e,s,n,a,o,u,f,l){var p=r.subarray(0,60),w=r.subarray(256,316);p.set([e,s,n,a,o,u,f,l]);for(var y=t,_=1;y<4*t+28;y++){var d=p[y-1];(y%t==0||8===t&&y%t==4)&&(d=i[d>>>24]<<24^i[d>>>16&255]<<16^i[d>>>8&255]<<8^i[255&d]),y%t==0&&(d=d<<8^d>>>24^_<<24,_=_<<1^(128&_?27:0)),p[y]=p[y-t]^d}for(var A=0;A=y-4?d:h[0][i[d>>>24]]^h[1][i[d>>>16&255]]^h[2][i[d>>>8&255]]^h[3][i[255&d]];c.set_rounds(t+5)},c};return c.ENC={ECB:0,CBC:2,CFB:4,OFB:6,CTR:7},c.DEC={ECB:1,CBC:3,CFB:5,OFB:6,CTR:7},c.MAC={CBC:0,GCM:1},c.HEAP_DATA=16384,c}(),r=new Uint8Array(1048576),s=e(null,r.buffer);function i(){var t=Error.apply(this,arguments);this.message=t.message,this.stack=t.stack}function n(){var t=Error.apply(this,arguments);this.message=t.message,this.stack=t.stack}function a(){var t=Error.apply(this,arguments);this.message=t.message,this.stack=t.stack}function h(t,e){e=!!e;for(var r=t.length,s=new Uint8Array(e?4*r:r),i=0,n=0;i=r)throw new Error("Malformed string, low surrogate expected at position "+i);a=(55296^a)<<10|65536|56320^t.charCodeAt(i)}else if(!e&&a>>>8)throw new Error("Wide characters are not allowed.");!e||a<=127?s[n++]=a:a<=2047?(s[n++]=192|a>>6,s[n++]=128|63&a):a<=65535?(s[n++]=224|a>>12,s[n++]=128|a>>6&63,s[n++]=128|63&a):(s[n++]=240|a>>18,s[n++]=128|a>>12&63,s[n++]=128|a>>6&63,s[n++]=128|63&a)}return s.subarray(0,n)}function o(t){for(var e="",r=0;r=192&&a<224&&i+1=224&&a<240&&i+2=240&&a<248&&i+3>10,s[n++]=56320|1023&h)}}var o="";for(i=0;i>2,r.getUint32(0),r.getUint32(4),r.getUint32(8),r.getUint32(12),e>16?r.getUint32(16):0,e>16?r.getUint32(20):0,e>24?r.getUint32(24):0,e>24?r.getUint32(28):0),this.key=t}else if(!this.key)throw new Error("key is required")}AES_CTR_set_options(t,e,r){if(void 0!==r){if(r<8||r>48)throw new n("illegal counter size");this.counterSize=r;var s=Math.pow(2,r)-1;this.asm.set_mask(0,0,s/4294967296|0,0|s)}else this.counterSize=r=48,this.asm.set_mask(0,0,65535,4294967295);if(void 0===t)throw new Error("nonce is required");if(!p(t))throw new TypeError("unexpected nonce type");var i=t.length;if(!i||i>16)throw new n("illegal nonce size");this.nonce=t;var a=new DataView(new ArrayBuffer(16));if(new Uint8Array(a.buffer).set(t),this.asm.set_nonce(a.getUint32(0),a.getUint32(4),a.getUint32(8),a.getUint32(12)),void 0!==e){if(!u(e))throw new TypeError("unexpected counter type");if(e<0||e>=Math.pow(2,r))throw new n("illegal counter value");this.counter=e,this.asm.set_counter(0,0,e/4294967296|0,0|e)}else this.counter=0}AES_set_iv(t){if(void 0!==t){if(!p(t))throw new TypeError("unexpected iv type");if(16!==t.length)throw new n("illegal iv size");var e=new DataView(t.buffer,t.byteOffset,t.byteLength);this.iv=t,this.asm.set_iv(e.getUint32(0),e.getUint32(4),e.getUint32(8),e.getUint32(12))}else this.iv=null,this.asm.set_iv(0,0,0,0)}AES_set_padding(t){this.padding=void 0===t||!!t}AES_reset(t,e,r){return this.result=null,this.pos=0,this.len=0,this.AES_set_key(t),this.AES_set_iv(e),this.AES_set_padding(r),this}AES_Encrypt_process(t){if(!p(t))throw new TypeError("data isn't of expected type");for(var r=this.asm,s=this.heap,i=e.ENC[this.mode],n=e.HEAP_DATA,a=this.pos,h=this.len,o=0,c=t.length||0,u=0,f=0,l=new Uint8Array(h+c&-16);c>0;)h+=f=y(s,a+h,t,o,c),o+=f,c-=f,(f=r.cipher(i,n+a,h))&&l.set(s.subarray(a,a+f),u),u+=f,f0;)h+=w=y(s,a+h,t,o,c),o+=w,c-=w,(w=r.cipher(i,n+a,h-(c?0:l)))&&_.set(s.subarray(a,a+w),u),u+=w,w0){if(f%16){if(this.hasOwnProperty("padding"))throw new n("data length must be a multiple of the block size");f+=16-f%16}if(i.cipher(o,c+u,f),this.hasOwnProperty("padding")&&this.padding){var p=h[u+l-1];if(p<1||p>16||p>l)throw new a("bad padding");for(var w=0,y=p;y>1;y--)w|=p^h[u+l-y];if(w)throw new a("bad padding");l-=p}}var _=new Uint8Array(s+l);return s>0&&_.set(r),l>0&&_.set(h.subarray(u,u+l),s),this.result=_,this.pos=0,this.len=0,this}}var d=68719476704;class A extends _{constructor(t,e,r,s,i,n){super(t,void 0,!1,i,n),this.nonce=null,this.adata=null,this.iv=null,this.counter=1,this.tagSize=16,this.mode="GCM",this.BLOCK_SIZE=16,this.reset(t,s,e,r)}reset(t,e,r,s){return this.AES_GCM_reset(t,e,r,s)}encrypt(t){return this.AES_GCM_encrypt(t)}decrypt(t){return this.AES_GCM_decrypt(t)}AES_GCM_Encrypt_process(t){if(!p(t))throw new TypeError("data isn't of expected type");var r=0,s=t.length||0,i=this.asm,n=this.heap,a=this.counter,h=this.pos,o=this.len,c=0,u=o+s&-16,f=0;if((a-1<<4)+o+s>d)throw new RangeError("counter overflow");for(var l=new Uint8Array(u);s>0;)o+=f=y(n,h+o,t,r,s),r+=f,s-=f,f=i.cipher(e.ENC.CTR,e.HEAP_DATA+h,o),(f=i.mac(e.MAC.GCM,e.HEAP_DATA+h,f))&&l.set(n.subarray(h,h+f),c),a+=f>>>4,c+=f,f>>29,r[4]=u>>>21,r[5]=u>>>13&255,r[6]=u>>>5&255,r[7]=u<<3&255,r[8]=r[9]=r[10]=0,r[11]=f>>>29,r[12]=f>>>21&255,r[13]=f>>>13&255,r[14]=f>>>5&255,r[15]=f<<3&255,t.mac(e.MAC.GCM,e.HEAP_DATA,16),t.get_iv(e.HEAP_DATA),t.set_counter(0,0,0,this.gamma0),t.cipher(e.ENC.CTR,e.HEAP_DATA,16),o.set(r.subarray(0,i),h),this.result=o,this.counter=1,this.pos=0,this.len=0,this}AES_GCM_Decrypt_process(t){if(!p(t))throw new TypeError("data isn't of expected type");var r=0,s=t.length||0,i=this.asm,n=this.heap,a=this.counter,h=this.tagSize,o=this.pos,c=this.len,u=0,f=c+s>h?c+s-h&-16:0,l=c+s-f,w=0;if((a-1<<4)+c+s>d)throw new RangeError("counter overflow");for(var _=new Uint8Array(f);s>l;)c+=w=y(n,o+c,t,r,s-l),r+=w,s-=w,w=i.mac(e.MAC.GCM,e.HEAP_DATA+o,w),(w=i.cipher(e.DEC.CTR,e.HEAP_DATA+o,w))&&_.set(n.subarray(o,o+w),u),a+=w>>>4,u+=w,o=0,c=0;return s>0&&(c+=y(n,0,t,r,s)),this.result=_,this.counter=a,this.pos=o,this.len=c,this}AES_GCM_Decrypt_finish(){var t=this.asm,r=this.heap,s=this.tagSize,n=this.adata,h=this.counter,o=this.pos,c=this.len,u=c-s;if(c>>29,r[4]=w>>>21,r[5]=w>>>13&255,r[6]=w>>>5&255,r[7]=w<<3&255,r[8]=r[9]=r[10]=0,r[11]=y>>>29,r[12]=y>>>21&255,r[13]=y>>>13&255,r[14]=y>>>5&255,r[15]=y<<3&255,t.mac(e.MAC.GCM,e.HEAP_DATA,16),t.get_iv(e.HEAP_DATA),t.set_counter(0,0,0,this.gamma0),t.cipher(e.ENC.CTR,e.HEAP_DATA,16);var _=0;for(p=0;p16)throw new n("illegal tagSize value");this.tagSize=r}else this.tagSize=16;if(void 0===s)throw new Error("nonce is required");if(!p(s))throw new TypeError("unexpected nonce type");this.nonce=s;var f=s.length||0,l=new Uint8Array(16);12!==f?(this._gcm_mac_process(s),c[0]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=0,c[11]=f>>>29,c[12]=f>>>21&255,c[13]=f>>>13&255,c[14]=f>>>5&255,c[15]=f<<3&255,o.mac(e.MAC.GCM,e.HEAP_DATA,16),o.get_iv(e.HEAP_DATA),o.set_iv(),l.set(c.subarray(0,16))):(l.set(s),l[15]=1);var w=new DataView(l.buffer);if(this.gamma0=w.getUint32(12),o.set_nonce(w.getUint32(0),w.getUint32(4),w.getUint32(8),0),o.set_mask(0,0,0,4294967295),void 0!==i&&null!==i){if(!p(i))throw new TypeError("unexpected adata type");if(i.length>d)throw new n("illegal adata length");i.length?(this.adata=i,this._gcm_mac_process(i)):this.adata=null}else this.adata=null;if(void 0!==a){if(!u(a))throw new TypeError("counter must be a number");if(a<1||a>4294967295)throw new RangeError("counter must be a positive 32-bit integer");this.counter=a,o.set_counter(0,0,0,this.gamma0+a|0)}else this.counter=1,o.set_counter(0,0,0,this.gamma0+1|0);if(void 0!==h){if(!u(h))throw new TypeError("iv must be a number");this.iv=h,this.AES_set_iv(h)}return this}_gcm_mac_process(t){for(var r=this.heap,s=this.asm,i=0,n=t.length||0,a=0;n>0;){for(i+=a=y(r,0,t,i,n),n-=a;15&a;)r[a++]=0;s.mac(e.MAC.GCM,e.HEAP_DATA,a)}}}A.encrypt=function(t,e,i,n,a){if(void 0===t)throw new SyntaxError("data required");if(void 0===e)throw new SyntaxError("key required");if(void 0===i)throw new SyntaxError("nonce required");return new A(e,i,n,a,r,s).encrypt(t).result},A.decrypt=function(t,e,i,n,a){if(void 0===t)throw new SyntaxError("data required");if(void 0===e)throw new SyntaxError("key required");if(void 0===i)throw new SyntaxError("nonce required");return new A(e,i,n,a,r,s).decrypt(t).result};class v{constructor(t){if(!(t=t||{}).hash)throw new SyntaxError("option 'hash' is required");if(!t.hash.HASH_SIZE)throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function");return this.hash=t.hash,this.BLOCK_SIZE=this.hash.BLOCK_SIZE,this.HMAC_SIZE=this.hash.HASH_SIZE,this.key=null,this.verify=null,this.result=null,void 0===t.password&&void 0===t.verify||this.reset(t),this}reset(t){var e=(t=t||{}).password;if(null===this.key&&!f(e)&&!e)throw new i("no key is associated with the instance");this.result=null,this.hash.reset(),(e||f(e))&&(this.key=x(this.hash,e));for(var r=new Uint8Array(this.key),s=0;st.BLOCK_SIZE?r.set(t.reset().process(e).finish().result):r.set(e),r}var E=64,g=32;function m(t){t=t||{},this.heap=w(Uint8Array,t.heap),this.asm=t.asm||function(t,e,r){"use asm";var s=0,i=0,n=0,a=0,h=0,o=0,c=0,u=0,f=0,l=0,p=0,w=0,y=0,_=0,d=0,A=0,v=0,x=0,E=0,g=0,m=0,b=0,S=0,C=0,M=0,U=0,H=new t.Uint8Array(r);function T(t,e,r,f,l,p,w,y,_,d,A,v,x,E,g,m){t=t|0;e=e|0;r=r|0;f=f|0;l=l|0;p=p|0;w=w|0;y=y|0;_=_|0;d=d|0;A=A|0;v=v|0;x=x|0;E=E|0;g=g|0;m=m|0;var b=0,S=0,C=0,M=0,U=0,H=0,T=0,D=0;b=s;S=i;C=n;M=a;U=h;H=o;T=c;D=u;D=t+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0x428a2f98|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;T=e+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0x71374491|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;H=r+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0xb5c0fbcf|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;U=f+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0xe9b5dba5|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;M=l+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x3956c25b|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;C=p+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0x59f111f1|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;S=w+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x923f82a4|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;b=y+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0xab1c5ed5|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;D=_+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0xd807aa98|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;T=d+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0x12835b01|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;H=A+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0x243185be|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;U=v+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0x550c7dc3|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;M=x+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x72be5d74|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;C=E+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0x80deb1fe|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;S=g+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x9bdc06a7|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;b=m+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0xc19bf174|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;t=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+t+d|0;D=t+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0xe49b69c1|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;e=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+e+A|0;T=e+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0xefbe4786|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;r=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+r+v|0;H=r+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0x0fc19dc6|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;f=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+f+x|0;U=f+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0x240ca1cc|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;l=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+E|0;M=l+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x2de92c6f|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;p=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+p+g|0;C=p+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0x4a7484aa|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;w=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+w+m|0;S=w+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x5cb0a9dc|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;y=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;b=y+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0x76f988da|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;_=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+_+e|0;D=_+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0x983e5152|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;d=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+r|0;T=d+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0xa831c66d|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;A=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+A+f|0;H=A+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0xb00327c8|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;v=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+v+l|0;U=v+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0xbf597fc7|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;x=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+x+p|0;M=x+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0xc6e00bf3|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;E=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+E+w|0;C=E+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0xd5a79147|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+g+y|0;S=g+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x06ca6351|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;m=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+m+_|0;b=m+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0x14292967|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;t=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+t+d|0;D=t+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0x27b70a85|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;e=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+e+A|0;T=e+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0x2e1b2138|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;r=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+r+v|0;H=r+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0x4d2c6dfc|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;f=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+f+x|0;U=f+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0x53380d13|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;l=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+E|0;M=l+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x650a7354|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;p=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+p+g|0;C=p+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0x766a0abb|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;w=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+w+m|0;S=w+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x81c2c92e|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;y=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;b=y+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0x92722c85|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;_=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+_+e|0;D=_+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0xa2bfe8a1|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;d=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+r|0;T=d+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0xa81a664b|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;A=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+A+f|0;H=A+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0xc24b8b70|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;v=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+v+l|0;U=v+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0xc76c51a3|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;x=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+x+p|0;M=x+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0xd192e819|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;E=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+E+w|0;C=E+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0xd6990624|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+g+y|0;S=g+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0xf40e3585|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;m=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+m+_|0;b=m+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0x106aa070|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;t=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+t+d|0;D=t+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0x19a4c116|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;e=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+e+A|0;T=e+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0x1e376c08|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;r=(f>>>7^f>>>18^f>>>3^f<<25^f<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+r+v|0;H=r+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0x2748774c|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;f=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+f+x|0;U=f+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0x34b0bcb5|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;l=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+E|0;M=l+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x391c0cb3|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;p=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(f>>>17^f>>>19^f>>>10^f<<15^f<<13)+p+g|0;C=p+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0x4ed8aa4a|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;w=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+w+m|0;S=w+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0x5b9cca4f|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;y=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;b=y+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0x682e6ff3|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;_=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+_+e|0;D=_+D+(U>>>6^U>>>11^U>>>25^U<<26^U<<21^U<<7)+(T^U&(H^T))+0x748f82ee|0;M=M+D|0;D=D+(b&S^C&(b^S))+(b>>>2^b>>>13^b>>>22^b<<30^b<<19^b<<10)|0;d=(A>>>7^A>>>18^A>>>3^A<<25^A<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+d+r|0;T=d+T+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(H^M&(U^H))+0x78a5636f|0;C=C+T|0;T=T+(D&b^S&(D^b))+(D>>>2^D>>>13^D>>>22^D<<30^D<<19^D<<10)|0;A=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+A+f|0;H=A+H+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(U^C&(M^U))+0x84c87814|0;S=S+H|0;H=H+(T&D^b&(T^D))+(T>>>2^T>>>13^T>>>22^T<<30^T<<19^T<<10)|0;v=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+v+l|0;U=v+U+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(M^S&(C^M))+0x8cc70208|0;b=b+U|0;U=U+(H&T^D&(H^T))+(H>>>2^H>>>13^H>>>22^H<<30^H<<19^H<<10)|0;x=(E>>>7^E>>>18^E>>>3^E<<25^E<<14)+(A>>>17^A>>>19^A>>>10^A<<15^A<<13)+x+p|0;M=x+M+(b>>>6^b>>>11^b>>>25^b<<26^b<<21^b<<7)+(C^b&(S^C))+0x90befffa|0;D=D+M|0;M=M+(U&H^T&(U^H))+(U>>>2^U>>>13^U>>>22^U<<30^U<<19^U<<10)|0;E=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+E+w|0;C=E+C+(D>>>6^D>>>11^D>>>25^D<<26^D<<21^D<<7)+(S^D&(b^S))+0xa4506ceb|0;T=T+C|0;C=C+(M&U^H&(M^U))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;g=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+g+y|0;S=g+S+(T>>>6^T>>>11^T>>>25^T<<26^T<<21^T<<7)+(b^T&(D^b))+0xbef9a3f7|0;H=H+S|0;S=S+(C&M^U&(C^M))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;m=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(E>>>17^E>>>19^E>>>10^E<<15^E<<13)+m+_|0;b=m+b+(H>>>6^H>>>11^H>>>25^H<<26^H<<21^H<<7)+(D^H&(T^D))+0xc67178f2|0;U=U+b|0;b=b+(S&C^M&(S^C))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;s=s+b|0;i=i+S|0;n=n+C|0;a=a+M|0;h=h+U|0;o=o+H|0;c=c+T|0;u=u+D|0}function D(t){t=t|0;T(H[t|0]<<24|H[t|1]<<16|H[t|2]<<8|H[t|3],H[t|4]<<24|H[t|5]<<16|H[t|6]<<8|H[t|7],H[t|8]<<24|H[t|9]<<16|H[t|10]<<8|H[t|11],H[t|12]<<24|H[t|13]<<16|H[t|14]<<8|H[t|15],H[t|16]<<24|H[t|17]<<16|H[t|18]<<8|H[t|19],H[t|20]<<24|H[t|21]<<16|H[t|22]<<8|H[t|23],H[t|24]<<24|H[t|25]<<16|H[t|26]<<8|H[t|27],H[t|28]<<24|H[t|29]<<16|H[t|30]<<8|H[t|31],H[t|32]<<24|H[t|33]<<16|H[t|34]<<8|H[t|35],H[t|36]<<24|H[t|37]<<16|H[t|38]<<8|H[t|39],H[t|40]<<24|H[t|41]<<16|H[t|42]<<8|H[t|43],H[t|44]<<24|H[t|45]<<16|H[t|46]<<8|H[t|47],H[t|48]<<24|H[t|49]<<16|H[t|50]<<8|H[t|51],H[t|52]<<24|H[t|53]<<16|H[t|54]<<8|H[t|55],H[t|56]<<24|H[t|57]<<16|H[t|58]<<8|H[t|59],H[t|60]<<24|H[t|61]<<16|H[t|62]<<8|H[t|63])}function k(t){t=t|0;H[t|0]=s>>>24;H[t|1]=s>>>16&255;H[t|2]=s>>>8&255;H[t|3]=s&255;H[t|4]=i>>>24;H[t|5]=i>>>16&255;H[t|6]=i>>>8&255;H[t|7]=i&255;H[t|8]=n>>>24;H[t|9]=n>>>16&255;H[t|10]=n>>>8&255;H[t|11]=n&255;H[t|12]=a>>>24;H[t|13]=a>>>16&255;H[t|14]=a>>>8&255;H[t|15]=a&255;H[t|16]=h>>>24;H[t|17]=h>>>16&255;H[t|18]=h>>>8&255;H[t|19]=h&255;H[t|20]=o>>>24;H[t|21]=o>>>16&255;H[t|22]=o>>>8&255;H[t|23]=o&255;H[t|24]=c>>>24;H[t|25]=c>>>16&255;H[t|26]=c>>>8&255;H[t|27]=c&255;H[t|28]=u>>>24;H[t|29]=u>>>16&255;H[t|30]=u>>>8&255;H[t|31]=u&255}function G(){s=0x6a09e667;i=0xbb67ae85;n=0x3c6ef372;a=0xa54ff53a;h=0x510e527f;o=0x9b05688c;c=0x1f83d9ab;u=0x5be0cd19;f=l=0}function I(t,e,r,p,w,y,_,d,A,v){t=t|0;e=e|0;r=r|0;p=p|0;w=w|0;y=y|0;_=_|0;d=d|0;A=A|0;v=v|0;s=t;i=e;n=r;a=p;h=w;o=y;c=_;u=d;f=A;l=v}function Z(t,e){t=t|0;e=e|0;var r=0;if(t&63)return-1;while((e|0)>=64){D(t);t=t+64|0;e=e-64|0;r=r+64|0}f=f+r|0;if(f>>>0>>0)l=l+1|0;return r|0}function P(t,e,r){t=t|0;e=e|0;r=r|0;var s=0,i=0;if(t&63)return-1;if(~r)if(r&31)return-1;if((e|0)>=64){s=Z(t,e)|0;if((s|0)==-1)return-1;t=t+s|0;e=e-s|0}s=s+e|0;f=f+e|0;if(f>>>0>>0)l=l+1|0;H[t|e]=0x80;if((e|0)>=56){for(i=e+1|0;(i|0)<64;i=i+1|0)H[t|i]=0x00;D(t);e=0;H[t|0]=0}for(i=e+1|0;(i|0)<59;i=i+1|0)H[t|i]=0;H[t|56]=l>>>21&255;H[t|57]=l>>>13&255;H[t|58]=l>>>5&255;H[t|59]=l<<3&255|f>>>29;H[t|60]=f>>>21&255;H[t|61]=f>>>13&255;H[t|62]=f>>>5&255;H[t|63]=f<<3&255;D(t);if(~r)k(r);return s|0}function B(){s=p;i=w;n=y;a=_;h=d;o=A;c=v;u=x;f=64;l=0}function z(){s=E;i=g;n=m;a=b;h=S;o=C;c=M;u=U;f=64;l=0}function O(t,e,r,H,D,k,I,Z,P,B,z,O,q,L,R,K){t=t|0;e=e|0;r=r|0;H=H|0;D=D|0;k=k|0;I=I|0;Z=Z|0;P=P|0;B=B|0;z=z|0;O=O|0;q=q|0;L=L|0;R=R|0;K=K|0;G();T(t^0x5c5c5c5c,e^0x5c5c5c5c,r^0x5c5c5c5c,H^0x5c5c5c5c,D^0x5c5c5c5c,k^0x5c5c5c5c,I^0x5c5c5c5c,Z^0x5c5c5c5c,P^0x5c5c5c5c,B^0x5c5c5c5c,z^0x5c5c5c5c,O^0x5c5c5c5c,q^0x5c5c5c5c,L^0x5c5c5c5c,R^0x5c5c5c5c,K^0x5c5c5c5c);E=s;g=i;m=n;b=a;S=h;C=o;M=c;U=u;G();T(t^0x36363636,e^0x36363636,r^0x36363636,H^0x36363636,D^0x36363636,k^0x36363636,I^0x36363636,Z^0x36363636,P^0x36363636,B^0x36363636,z^0x36363636,O^0x36363636,q^0x36363636,L^0x36363636,R^0x36363636,K^0x36363636);p=s;w=i;y=n;_=a;d=h;A=o;v=c;x=u;f=64;l=0}function q(t,e,r){t=t|0;e=e|0;r=r|0;var f=0,l=0,p=0,w=0,y=0,_=0,d=0,A=0,v=0;if(t&63)return-1;if(~r)if(r&31)return-1;v=P(t,e,-1)|0;f=s,l=i,p=n,w=a,y=h,_=o,d=c,A=u;z();T(f,l,p,w,y,_,d,A,0x80000000,0,0,0,0,0,0,768);if(~r)k(r);return v|0}function L(t,e,r,f,l){t=t|0;e=e|0;r=r|0;f=f|0;l=l|0;var p=0,w=0,y=0,_=0,d=0,A=0,v=0,x=0,E=0,g=0,m=0,b=0,S=0,C=0,M=0,U=0;if(t&63)return-1;if(~l)if(l&31)return-1;H[t+e|0]=r>>>24;H[t+e+1|0]=r>>>16&255;H[t+e+2|0]=r>>>8&255;H[t+e+3|0]=r&255;q(t,e+4|0,-1)|0;p=E=s,w=g=i,y=m=n,_=b=a,d=S=h,A=C=o,v=M=c,x=U=u;f=f-1|0;while((f|0)>0){B();T(E,g,m,b,S,C,M,U,0x80000000,0,0,0,0,0,0,768);E=s,g=i,m=n,b=a,S=h,C=o,M=c,U=u;z();T(E,g,m,b,S,C,M,U,0x80000000,0,0,0,0,0,0,768);E=s,g=i,m=n,b=a,S=h,C=o,M=c,U=u;p=p^s;w=w^i;y=y^n;_=_^a;d=d^h;A=A^o;v=v^c;x=x^u;f=f-1|0}s=p;i=w;n=y;a=_;h=d;o=A;c=v;u=x;if(~l)k(l);return 0}return{reset:G,init:I,process:Z,finish:P,hmac_reset:B,hmac_init:O,hmac_finish:q,pbkdf2_generate_block:L}}({Uint8Array:Uint8Array},null,this.heap.buffer),this.BLOCK_SIZE=E,this.HASH_SIZE=g,this.reset()}m.BLOCK_SIZE=E,m.HASH_SIZE=g,m.NAME="sha256";var b=m.prototype;b.reset=function(){return this.result=null,this.pos=0,this.len=0,this.asm.reset(),this},b.process=function(t){if(null!==this.result)throw new i("state must be reset before processing new data");if(f(t)&&(t=h(t)),l(t)&&(t=new Uint8Array(t)),!p(t))throw new TypeError("data isn't of expected type");for(var e=this.asm,r=this.heap,s=this.pos,n=this.len,a=0,o=t.length,c=0;o>0;)n+=c=y(r,s+n,t,a,o),a+=c,o-=c,s+=c=e.process(s,n),(n-=c)||(s=0);return this.pos=s,this.len=n,this},b.finish=function(){if(null!==this.result)throw new i("state must be reset before processing new data");return this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this};var S=null;class C extends v{constructor(t){(t=t||{}).hash instanceof m||(t.hash=(null===S&&(S=new m({heapSize:1048576})),S)),super(t)}reset(t){t=t||{},this.result=null,this.hash.reset();var e=t.password;if(void 0!==e){f(e)&&(e=h(e));var r=this.key=x(this.hash,e);this.hash.reset().asm.hmac_init(r[0]<<24|r[1]<<16|r[2]<<8|r[3],r[4]<<24|r[5]<<16|r[6]<<8|r[7],r[8]<<24|r[9]<<16|r[10]<<8|r[11],r[12]<<24|r[13]<<16|r[14]<<8|r[15],r[16]<<24|r[17]<<16|r[18]<<8|r[19],r[20]<<24|r[21]<<16|r[22]<<8|r[23],r[24]<<24|r[25]<<16|r[26]<<8|r[27],r[28]<<24|r[29]<<16|r[30]<<8|r[31],r[32]<<24|r[33]<<16|r[34]<<8|r[35],r[36]<<24|r[37]<<16|r[38]<<8|r[39],r[40]<<24|r[41]<<16|r[42]<<8|r[43],r[44]<<24|r[45]<<16|r[46]<<8|r[47],r[48]<<24|r[49]<<16|r[50]<<8|r[51],r[52]<<24|r[53]<<16|r[54]<<8|r[55],r[56]<<24|r[57]<<16|r[58]<<8|r[59],r[60]<<24|r[61]<<16|r[62]<<8|r[63])}else this.hash.asm.hmac_reset();var s=t.verify;return void 0!==s?this._hmac_init_verify(s):this.verify=null,this}finish(){if(null===this.key)throw new i("no key is associated with the instance");if(null!==this.result)throw new i("state must be reset before processing new data");var t=this.hash,e=this.hash.asm,r=this.hash.heap;e.hmac_finish(t.pos,t.len,0);var s=this.verify,n=new Uint8Array(g);if(n.set(r.subarray(0,g)),s)if(s.length===n.length){for(var a=0,h=0;h>>24&255,a>>>16&255,a>>>8&255,255&a])).finish().result);this.result.set(c.subarray(0,o),h);for(var u=1;u diff --git a/webpack.config.js b/webpack.config.js index 9e1202fb..e7943cdd 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -36,17 +36,6 @@ const serviceWorker = { devtool: 'source-map', module: { rules: [ - { - include: [require.resolve('./assets/cryptofill')], - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[hash:8].[ext]' - } - } - ] - }, { test: /\.(png|jpg)$/, loader: 'file-loader', @@ -102,15 +91,8 @@ const web = { test: /\.js$/, oneOf: [ { - include: [require.resolve('./assets/cryptofill')], - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[hash:8].[ext]' - } - } - ] + include: [require.resolve('./app/cryptofill')], + use: ['script-loader'] }, { loader: 'babel-loader', @@ -120,6 +102,7 @@ const web = { // some dependencies need to get re-babeled because we // have different targets than their default configs path.resolve(__dirname, 'node_modules/testpilot-ga/src'), + path.resolve(__dirname, 'node_modules/fluent'), path.resolve(__dirname, 'node_modules/fluent-intl-polyfill'), path.resolve(__dirname, 'node_modules/intl-pluralrules') ],