@pooflabs/server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../node_modules/@tarobase/core/dist/index.mjs","../node_modules/tweetnacl/nacl-fast.js","../node_modules/base-x/src/index.js","../node_modules/bs58/index.js","../src/auth/providers/solana-keypair-provider.ts","../src/auth/index.ts","../src/global.ts"],"sourcesContent":["import axios from 'axios';\nimport { ComputeBudgetProgram, VersionedTransaction, TransactionMessage, PublicKey, Keypair, SystemProgram, TransactionInstruction } from '@solana/web3.js';\nimport require$$0 from 'crypto';\nimport * as anchor from '@coral-xyz/anchor';\nimport { Program } from '@coral-xyz/anchor';\n\nlet axiosClient;\nasync function getAxiosAuthClient() {\n if (!axiosClient) {\n const config = await getConfig();\n axiosClient = axios.create({\n baseURL: config.authApiUrl,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n return axiosClient;\n}\nasync function createSessionWithSignature(address, message, signature) {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session', {\n appId,\n address,\n message,\n signature,\n authMethod: config.authMethod\n });\n return response.data;\n}\nasync function createSessionWithPrivy(authToken, address, privyIdToken) {\n if (typeof window === 'undefined')\n return;\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session', {\n appId,\n authMethod: config.authMethod,\n authToken,\n idToken: privyIdToken,\n address\n });\n return response.data;\n}\nasync function refreshSession(refreshToken) {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session/refresh', {\n refreshToken,\n appId\n });\n return response.data;\n}\nasync function signSessionCreateMessage(_signMessageFunction) {\n}\n\nclass WebSessionManager {\n /* ------------------------------------------------------------------ */\n /* STORE */\n /* ------------------------------------------------------------------ */\n static async storeSession(address, accessToken, idToken, refreshToken) {\n if (typeof window === \"undefined\")\n return;\n const config = await getConfig();\n const currentAppId = config.appId;\n localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify({\n address,\n accessToken,\n idToken,\n refreshToken,\n appId: currentAppId,\n }));\n }\n /* ------------------------------------------------------------------ */\n /* GET */\n /* ------------------------------------------------------------------ */\n static async getSession() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return null;\n const sessionObj = JSON.parse(session);\n /* ---------- validate app-id ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n console.warn(\"Session appId mismatch. Stored session belongs to a different app. Logging out.\");\n this.clearSession();\n return null;\n }\n /* ---------- check JWT expiration ---------- */\n try {\n const { accessToken } = sessionObj;\n const { exp } = JSON.parse(atob(accessToken.split(\".\")[1]));\n if (Date.now() > exp * 1000) {\n const { refreshToken } = sessionObj;\n if (!refreshToken)\n return null;\n const refreshed = await refreshSession(refreshToken);\n if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {\n await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken);\n const newSession = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!newSession)\n return null;\n const newObj = JSON.parse(newSession);\n return { address: newObj.address, session: newObj };\n }\n return null;\n }\n }\n catch (err) {\n console.error(\"Error decoding access token:\", err);\n return null;\n }\n return { address: sessionObj.address, session: sessionObj };\n }\n /* ------------------------------------------------------------------ */\n /* CLEAR */\n /* ------------------------------------------------------------------ */\n static clearSession() {\n if (typeof window === \"undefined\")\n return;\n localStorage.removeItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* IS-AUTH */\n /* ------------------------------------------------------------------ */\n static isAuthenticated() {\n // NOTE: this remains synchronous to stay backward compatible\n return !!localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* TOKEN HELPERS */\n /* ------------------------------------------------------------------ */\n static getIdToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).idToken : null;\n }\n static getRefreshToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).refreshToken : null;\n }\n /* ------------------------------------------------------------------ */\n /* UPDATE TOKENS */\n /* ------------------------------------------------------------------ */\n static async updateIdTokenAndAccessToken(idToken, accessToken) {\n var _a;\n if (typeof window === \"undefined\")\n return;\n if (typeof window === \"undefined\")\n return;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return;\n const sessionObj = JSON.parse(session);\n /* ---------- app-id guard ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n console.warn(\"Session appId mismatch during token refresh. Logging out.\");\n this.clearSession();\n return;\n }\n sessionObj.idToken = idToken;\n sessionObj.accessToken = accessToken;\n (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);\n localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));\n }\n}\nWebSessionManager.TAROBASE_SESSION_STORAGE_KEY = \"tarobase_session_storage\";\n\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n const BASE_MAP = new Uint8Array(256);\n for (let j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (let i = 0; i < ALPHABET.length; i++) {\n const x = ALPHABET.charAt(i);\n const xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i;\n }\n const BASE = ALPHABET.length;\n const LEADER = ALPHABET.charAt(0);\n const FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n const iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n function encode (source) {\n // eslint-disable-next-line no-empty\n if (source instanceof Uint8Array) ; else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n let zeroes = 0;\n let length = 0;\n let pbegin = 0;\n const pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n const size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n const b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n let carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n let i = 0;\n for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n let it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n let str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n let psz = 0;\n // Skip and count leading '1's.\n let zeroes = 0;\n let length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n const size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n const b256 = new Uint8Array(size);\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n const charCode = source.charCodeAt(psz);\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n let carry = BASE_MAP[charCode];\n // Invalid character\n if (carry === 255) { return }\n let i = 0;\n for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n psz++;\n }\n // Skip leading zeroes in b256.\n let it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n const vch = new Uint8Array(zeroes + (size - it4));\n let j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch\n }\n function decode (string) {\n const buffer = decodeUnsafe(string);\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode,\n decodeUnsafe,\n decode\n }\n}\n\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nvar bs58 = base(ALPHABET);\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction commonjsRequire(path) {\n\tthrow new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n}\n\nvar naclFast = {exports: {}};\n\nvar hasRequiredNaclFast;\n\nfunction requireNaclFast () {\n\tif (hasRequiredNaclFast) return naclFast.exports;\n\thasRequiredNaclFast = 1;\n\t(function (module) {\n\t\t(function(nacl) {\n\n\t\t// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n\t\t// Public domain.\n\t\t//\n\t\t// Implementation derived from TweetNaCl version 20140427.\n\t\t// See for details: http://tweetnacl.cr.yp.to/\n\n\t\tvar gf = function(init) {\n\t\t var i, r = new Float64Array(16);\n\t\t if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n\t\t return r;\n\t\t};\n\n\t\t// Pluggable, initialized in high-level API below.\n\t\tvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\n\t\tvar _0 = new Uint8Array(16);\n\t\tvar _9 = new Uint8Array(32); _9[0] = 9;\n\n\t\tvar gf0 = gf(),\n\t\t gf1 = gf([1]),\n\t\t _121665 = gf([0xdb41, 1]),\n\t\t D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n\t\t D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n\t\t X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n\t\t Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n\t\t I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\n\t\tfunction ts64(x, i, h, l) {\n\t\t x[i] = (h >> 24) & 0xff;\n\t\t x[i+1] = (h >> 16) & 0xff;\n\t\t x[i+2] = (h >> 8) & 0xff;\n\t\t x[i+3] = h & 0xff;\n\t\t x[i+4] = (l >> 24) & 0xff;\n\t\t x[i+5] = (l >> 16) & 0xff;\n\t\t x[i+6] = (l >> 8) & 0xff;\n\t\t x[i+7] = l & 0xff;\n\t\t}\n\n\t\tfunction vn(x, xi, y, yi, n) {\n\t\t var i,d = 0;\n\t\t for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n\t\t return (1 & ((d - 1) >>> 8)) - 1;\n\t\t}\n\n\t\tfunction crypto_verify_16(x, xi, y, yi) {\n\t\t return vn(x,xi,y,yi,16);\n\t\t}\n\n\t\tfunction crypto_verify_32(x, xi, y, yi) {\n\t\t return vn(x,xi,y,yi,32);\n\t\t}\n\n\t\tfunction core_salsa20(o, p, k, c) {\n\t\t var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n\t\t j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n\t\t j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n\t\t j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n\t\t j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n\t\t j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n\t\t j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n\t\t j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n\t\t j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n\t\t j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n\t\t j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n\t\t j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n\t\t j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n\t\t j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n\t\t j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n\t\t j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n\t\t var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n\t\t x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n\t\t x15 = j15, u;\n\n\t\t for (var i = 0; i < 20; i += 2) {\n\t\t u = x0 + x12 | 0;\n\t\t x4 ^= u<<7 | u>>>(32-7);\n\t\t u = x4 + x0 | 0;\n\t\t x8 ^= u<<9 | u>>>(32-9);\n\t\t u = x8 + x4 | 0;\n\t\t x12 ^= u<<13 | u>>>(32-13);\n\t\t u = x12 + x8 | 0;\n\t\t x0 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x5 + x1 | 0;\n\t\t x9 ^= u<<7 | u>>>(32-7);\n\t\t u = x9 + x5 | 0;\n\t\t x13 ^= u<<9 | u>>>(32-9);\n\t\t u = x13 + x9 | 0;\n\t\t x1 ^= u<<13 | u>>>(32-13);\n\t\t u = x1 + x13 | 0;\n\t\t x5 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x10 + x6 | 0;\n\t\t x14 ^= u<<7 | u>>>(32-7);\n\t\t u = x14 + x10 | 0;\n\t\t x2 ^= u<<9 | u>>>(32-9);\n\t\t u = x2 + x14 | 0;\n\t\t x6 ^= u<<13 | u>>>(32-13);\n\t\t u = x6 + x2 | 0;\n\t\t x10 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x15 + x11 | 0;\n\t\t x3 ^= u<<7 | u>>>(32-7);\n\t\t u = x3 + x15 | 0;\n\t\t x7 ^= u<<9 | u>>>(32-9);\n\t\t u = x7 + x3 | 0;\n\t\t x11 ^= u<<13 | u>>>(32-13);\n\t\t u = x11 + x7 | 0;\n\t\t x15 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x0 + x3 | 0;\n\t\t x1 ^= u<<7 | u>>>(32-7);\n\t\t u = x1 + x0 | 0;\n\t\t x2 ^= u<<9 | u>>>(32-9);\n\t\t u = x2 + x1 | 0;\n\t\t x3 ^= u<<13 | u>>>(32-13);\n\t\t u = x3 + x2 | 0;\n\t\t x0 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x5 + x4 | 0;\n\t\t x6 ^= u<<7 | u>>>(32-7);\n\t\t u = x6 + x5 | 0;\n\t\t x7 ^= u<<9 | u>>>(32-9);\n\t\t u = x7 + x6 | 0;\n\t\t x4 ^= u<<13 | u>>>(32-13);\n\t\t u = x4 + x7 | 0;\n\t\t x5 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x10 + x9 | 0;\n\t\t x11 ^= u<<7 | u>>>(32-7);\n\t\t u = x11 + x10 | 0;\n\t\t x8 ^= u<<9 | u>>>(32-9);\n\t\t u = x8 + x11 | 0;\n\t\t x9 ^= u<<13 | u>>>(32-13);\n\t\t u = x9 + x8 | 0;\n\t\t x10 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x15 + x14 | 0;\n\t\t x12 ^= u<<7 | u>>>(32-7);\n\t\t u = x12 + x15 | 0;\n\t\t x13 ^= u<<9 | u>>>(32-9);\n\t\t u = x13 + x12 | 0;\n\t\t x14 ^= u<<13 | u>>>(32-13);\n\t\t u = x14 + x13 | 0;\n\t\t x15 ^= u<<18 | u>>>(32-18);\n\t\t }\n\t\t x0 = x0 + j0 | 0;\n\t\t x1 = x1 + j1 | 0;\n\t\t x2 = x2 + j2 | 0;\n\t\t x3 = x3 + j3 | 0;\n\t\t x4 = x4 + j4 | 0;\n\t\t x5 = x5 + j5 | 0;\n\t\t x6 = x6 + j6 | 0;\n\t\t x7 = x7 + j7 | 0;\n\t\t x8 = x8 + j8 | 0;\n\t\t x9 = x9 + j9 | 0;\n\t\t x10 = x10 + j10 | 0;\n\t\t x11 = x11 + j11 | 0;\n\t\t x12 = x12 + j12 | 0;\n\t\t x13 = x13 + j13 | 0;\n\t\t x14 = x14 + j14 | 0;\n\t\t x15 = x15 + j15 | 0;\n\n\t\t o[ 0] = x0 >>> 0 & 0xff;\n\t\t o[ 1] = x0 >>> 8 & 0xff;\n\t\t o[ 2] = x0 >>> 16 & 0xff;\n\t\t o[ 3] = x0 >>> 24 & 0xff;\n\n\t\t o[ 4] = x1 >>> 0 & 0xff;\n\t\t o[ 5] = x1 >>> 8 & 0xff;\n\t\t o[ 6] = x1 >>> 16 & 0xff;\n\t\t o[ 7] = x1 >>> 24 & 0xff;\n\n\t\t o[ 8] = x2 >>> 0 & 0xff;\n\t\t o[ 9] = x2 >>> 8 & 0xff;\n\t\t o[10] = x2 >>> 16 & 0xff;\n\t\t o[11] = x2 >>> 24 & 0xff;\n\n\t\t o[12] = x3 >>> 0 & 0xff;\n\t\t o[13] = x3 >>> 8 & 0xff;\n\t\t o[14] = x3 >>> 16 & 0xff;\n\t\t o[15] = x3 >>> 24 & 0xff;\n\n\t\t o[16] = x4 >>> 0 & 0xff;\n\t\t o[17] = x4 >>> 8 & 0xff;\n\t\t o[18] = x4 >>> 16 & 0xff;\n\t\t o[19] = x4 >>> 24 & 0xff;\n\n\t\t o[20] = x5 >>> 0 & 0xff;\n\t\t o[21] = x5 >>> 8 & 0xff;\n\t\t o[22] = x5 >>> 16 & 0xff;\n\t\t o[23] = x5 >>> 24 & 0xff;\n\n\t\t o[24] = x6 >>> 0 & 0xff;\n\t\t o[25] = x6 >>> 8 & 0xff;\n\t\t o[26] = x6 >>> 16 & 0xff;\n\t\t o[27] = x6 >>> 24 & 0xff;\n\n\t\t o[28] = x7 >>> 0 & 0xff;\n\t\t o[29] = x7 >>> 8 & 0xff;\n\t\t o[30] = x7 >>> 16 & 0xff;\n\t\t o[31] = x7 >>> 24 & 0xff;\n\n\t\t o[32] = x8 >>> 0 & 0xff;\n\t\t o[33] = x8 >>> 8 & 0xff;\n\t\t o[34] = x8 >>> 16 & 0xff;\n\t\t o[35] = x8 >>> 24 & 0xff;\n\n\t\t o[36] = x9 >>> 0 & 0xff;\n\t\t o[37] = x9 >>> 8 & 0xff;\n\t\t o[38] = x9 >>> 16 & 0xff;\n\t\t o[39] = x9 >>> 24 & 0xff;\n\n\t\t o[40] = x10 >>> 0 & 0xff;\n\t\t o[41] = x10 >>> 8 & 0xff;\n\t\t o[42] = x10 >>> 16 & 0xff;\n\t\t o[43] = x10 >>> 24 & 0xff;\n\n\t\t o[44] = x11 >>> 0 & 0xff;\n\t\t o[45] = x11 >>> 8 & 0xff;\n\t\t o[46] = x11 >>> 16 & 0xff;\n\t\t o[47] = x11 >>> 24 & 0xff;\n\n\t\t o[48] = x12 >>> 0 & 0xff;\n\t\t o[49] = x12 >>> 8 & 0xff;\n\t\t o[50] = x12 >>> 16 & 0xff;\n\t\t o[51] = x12 >>> 24 & 0xff;\n\n\t\t o[52] = x13 >>> 0 & 0xff;\n\t\t o[53] = x13 >>> 8 & 0xff;\n\t\t o[54] = x13 >>> 16 & 0xff;\n\t\t o[55] = x13 >>> 24 & 0xff;\n\n\t\t o[56] = x14 >>> 0 & 0xff;\n\t\t o[57] = x14 >>> 8 & 0xff;\n\t\t o[58] = x14 >>> 16 & 0xff;\n\t\t o[59] = x14 >>> 24 & 0xff;\n\n\t\t o[60] = x15 >>> 0 & 0xff;\n\t\t o[61] = x15 >>> 8 & 0xff;\n\t\t o[62] = x15 >>> 16 & 0xff;\n\t\t o[63] = x15 >>> 24 & 0xff;\n\t\t}\n\n\t\tfunction core_hsalsa20(o,p,k,c) {\n\t\t var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n\t\t j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n\t\t j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n\t\t j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n\t\t j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n\t\t j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n\t\t j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n\t\t j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n\t\t j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n\t\t j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n\t\t j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n\t\t j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n\t\t j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n\t\t j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n\t\t j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n\t\t j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n\t\t var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n\t\t x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n\t\t x15 = j15, u;\n\n\t\t for (var i = 0; i < 20; i += 2) {\n\t\t u = x0 + x12 | 0;\n\t\t x4 ^= u<<7 | u>>>(32-7);\n\t\t u = x4 + x0 | 0;\n\t\t x8 ^= u<<9 | u>>>(32-9);\n\t\t u = x8 + x4 | 0;\n\t\t x12 ^= u<<13 | u>>>(32-13);\n\t\t u = x12 + x8 | 0;\n\t\t x0 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x5 + x1 | 0;\n\t\t x9 ^= u<<7 | u>>>(32-7);\n\t\t u = x9 + x5 | 0;\n\t\t x13 ^= u<<9 | u>>>(32-9);\n\t\t u = x13 + x9 | 0;\n\t\t x1 ^= u<<13 | u>>>(32-13);\n\t\t u = x1 + x13 | 0;\n\t\t x5 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x10 + x6 | 0;\n\t\t x14 ^= u<<7 | u>>>(32-7);\n\t\t u = x14 + x10 | 0;\n\t\t x2 ^= u<<9 | u>>>(32-9);\n\t\t u = x2 + x14 | 0;\n\t\t x6 ^= u<<13 | u>>>(32-13);\n\t\t u = x6 + x2 | 0;\n\t\t x10 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x15 + x11 | 0;\n\t\t x3 ^= u<<7 | u>>>(32-7);\n\t\t u = x3 + x15 | 0;\n\t\t x7 ^= u<<9 | u>>>(32-9);\n\t\t u = x7 + x3 | 0;\n\t\t x11 ^= u<<13 | u>>>(32-13);\n\t\t u = x11 + x7 | 0;\n\t\t x15 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x0 + x3 | 0;\n\t\t x1 ^= u<<7 | u>>>(32-7);\n\t\t u = x1 + x0 | 0;\n\t\t x2 ^= u<<9 | u>>>(32-9);\n\t\t u = x2 + x1 | 0;\n\t\t x3 ^= u<<13 | u>>>(32-13);\n\t\t u = x3 + x2 | 0;\n\t\t x0 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x5 + x4 | 0;\n\t\t x6 ^= u<<7 | u>>>(32-7);\n\t\t u = x6 + x5 | 0;\n\t\t x7 ^= u<<9 | u>>>(32-9);\n\t\t u = x7 + x6 | 0;\n\t\t x4 ^= u<<13 | u>>>(32-13);\n\t\t u = x4 + x7 | 0;\n\t\t x5 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x10 + x9 | 0;\n\t\t x11 ^= u<<7 | u>>>(32-7);\n\t\t u = x11 + x10 | 0;\n\t\t x8 ^= u<<9 | u>>>(32-9);\n\t\t u = x8 + x11 | 0;\n\t\t x9 ^= u<<13 | u>>>(32-13);\n\t\t u = x9 + x8 | 0;\n\t\t x10 ^= u<<18 | u>>>(32-18);\n\n\t\t u = x15 + x14 | 0;\n\t\t x12 ^= u<<7 | u>>>(32-7);\n\t\t u = x12 + x15 | 0;\n\t\t x13 ^= u<<9 | u>>>(32-9);\n\t\t u = x13 + x12 | 0;\n\t\t x14 ^= u<<13 | u>>>(32-13);\n\t\t u = x14 + x13 | 0;\n\t\t x15 ^= u<<18 | u>>>(32-18);\n\t\t }\n\n\t\t o[ 0] = x0 >>> 0 & 0xff;\n\t\t o[ 1] = x0 >>> 8 & 0xff;\n\t\t o[ 2] = x0 >>> 16 & 0xff;\n\t\t o[ 3] = x0 >>> 24 & 0xff;\n\n\t\t o[ 4] = x5 >>> 0 & 0xff;\n\t\t o[ 5] = x5 >>> 8 & 0xff;\n\t\t o[ 6] = x5 >>> 16 & 0xff;\n\t\t o[ 7] = x5 >>> 24 & 0xff;\n\n\t\t o[ 8] = x10 >>> 0 & 0xff;\n\t\t o[ 9] = x10 >>> 8 & 0xff;\n\t\t o[10] = x10 >>> 16 & 0xff;\n\t\t o[11] = x10 >>> 24 & 0xff;\n\n\t\t o[12] = x15 >>> 0 & 0xff;\n\t\t o[13] = x15 >>> 8 & 0xff;\n\t\t o[14] = x15 >>> 16 & 0xff;\n\t\t o[15] = x15 >>> 24 & 0xff;\n\n\t\t o[16] = x6 >>> 0 & 0xff;\n\t\t o[17] = x6 >>> 8 & 0xff;\n\t\t o[18] = x6 >>> 16 & 0xff;\n\t\t o[19] = x6 >>> 24 & 0xff;\n\n\t\t o[20] = x7 >>> 0 & 0xff;\n\t\t o[21] = x7 >>> 8 & 0xff;\n\t\t o[22] = x7 >>> 16 & 0xff;\n\t\t o[23] = x7 >>> 24 & 0xff;\n\n\t\t o[24] = x8 >>> 0 & 0xff;\n\t\t o[25] = x8 >>> 8 & 0xff;\n\t\t o[26] = x8 >>> 16 & 0xff;\n\t\t o[27] = x8 >>> 24 & 0xff;\n\n\t\t o[28] = x9 >>> 0 & 0xff;\n\t\t o[29] = x9 >>> 8 & 0xff;\n\t\t o[30] = x9 >>> 16 & 0xff;\n\t\t o[31] = x9 >>> 24 & 0xff;\n\t\t}\n\n\t\tfunction crypto_core_salsa20(out,inp,k,c) {\n\t\t core_salsa20(out,inp,k,c);\n\t\t}\n\n\t\tfunction crypto_core_hsalsa20(out,inp,k,c) {\n\t\t core_hsalsa20(out,inp,k,c);\n\t\t}\n\n\t\tvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n\t\t // \"expand 32-byte k\"\n\n\t\tfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n\t\t var z = new Uint8Array(16), x = new Uint8Array(64);\n\t\t var u, i;\n\t\t for (i = 0; i < 16; i++) z[i] = 0;\n\t\t for (i = 0; i < 8; i++) z[i] = n[i];\n\t\t while (b >= 64) {\n\t\t crypto_core_salsa20(x,z,k,sigma);\n\t\t for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n\t\t u = 1;\n\t\t for (i = 8; i < 16; i++) {\n\t\t u = u + (z[i] & 0xff) | 0;\n\t\t z[i] = u & 0xff;\n\t\t u >>>= 8;\n\t\t }\n\t\t b -= 64;\n\t\t cpos += 64;\n\t\t mpos += 64;\n\t\t }\n\t\t if (b > 0) {\n\t\t crypto_core_salsa20(x,z,k,sigma);\n\t\t for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n\t\t }\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n\t\t var z = new Uint8Array(16), x = new Uint8Array(64);\n\t\t var u, i;\n\t\t for (i = 0; i < 16; i++) z[i] = 0;\n\t\t for (i = 0; i < 8; i++) z[i] = n[i];\n\t\t while (b >= 64) {\n\t\t crypto_core_salsa20(x,z,k,sigma);\n\t\t for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n\t\t u = 1;\n\t\t for (i = 8; i < 16; i++) {\n\t\t u = u + (z[i] & 0xff) | 0;\n\t\t z[i] = u & 0xff;\n\t\t u >>>= 8;\n\t\t }\n\t\t b -= 64;\n\t\t cpos += 64;\n\t\t }\n\t\t if (b > 0) {\n\t\t crypto_core_salsa20(x,z,k,sigma);\n\t\t for (i = 0; i < b; i++) c[cpos+i] = x[i];\n\t\t }\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_stream(c,cpos,d,n,k) {\n\t\t var s = new Uint8Array(32);\n\t\t crypto_core_hsalsa20(s,n,k,sigma);\n\t\t var sn = new Uint8Array(8);\n\t\t for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n\t\t return crypto_stream_salsa20(c,cpos,d,sn,s);\n\t\t}\n\n\t\tfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n\t\t var s = new Uint8Array(32);\n\t\t crypto_core_hsalsa20(s,n,k,sigma);\n\t\t var sn = new Uint8Array(8);\n\t\t for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n\t\t return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n\t\t}\n\n\t\t/*\n\t\t* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n\t\t* https://github.com/floodyberry/poly1305-donna\n\t\t*/\n\n\t\tvar poly1305 = function(key) {\n\t\t this.buffer = new Uint8Array(16);\n\t\t this.r = new Uint16Array(10);\n\t\t this.h = new Uint16Array(10);\n\t\t this.pad = new Uint16Array(8);\n\t\t this.leftover = 0;\n\t\t this.fin = 0;\n\n\t\t var t0, t1, t2, t3, t4, t5, t6, t7;\n\n\t\t t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n\t\t t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n\t\t t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n\t\t t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n\t\t t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n\t\t this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n\t\t t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n\t\t t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n\t\t t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n\t\t this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n\t\t this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n\t\t this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n\t\t this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n\t\t this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n\t\t this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n\t\t this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n\t\t this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n\t\t this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n\t\t};\n\n\t\tpoly1305.prototype.blocks = function(m, mpos, bytes) {\n\t\t var hibit = this.fin ? 0 : (1 << 11);\n\t\t var t0, t1, t2, t3, t4, t5, t6, t7, c;\n\t\t var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n\t\t var h0 = this.h[0],\n\t\t h1 = this.h[1],\n\t\t h2 = this.h[2],\n\t\t h3 = this.h[3],\n\t\t h4 = this.h[4],\n\t\t h5 = this.h[5],\n\t\t h6 = this.h[6],\n\t\t h7 = this.h[7],\n\t\t h8 = this.h[8],\n\t\t h9 = this.h[9];\n\n\t\t var r0 = this.r[0],\n\t\t r1 = this.r[1],\n\t\t r2 = this.r[2],\n\t\t r3 = this.r[3],\n\t\t r4 = this.r[4],\n\t\t r5 = this.r[5],\n\t\t r6 = this.r[6],\n\t\t r7 = this.r[7],\n\t\t r8 = this.r[8],\n\t\t r9 = this.r[9];\n\n\t\t while (bytes >= 16) {\n\t\t t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n\t\t t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n\t\t t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n\t\t t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n\t\t t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n\t\t h5 += ((t4 >>> 1)) & 0x1fff;\n\t\t t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n\t\t t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n\t\t t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n\t\t h9 += ((t7 >>> 5)) | hibit;\n\n\t\t c = 0;\n\n\t\t d0 = c;\n\t\t d0 += h0 * r0;\n\t\t d0 += h1 * (5 * r9);\n\t\t d0 += h2 * (5 * r8);\n\t\t d0 += h3 * (5 * r7);\n\t\t d0 += h4 * (5 * r6);\n\t\t c = (d0 >>> 13); d0 &= 0x1fff;\n\t\t d0 += h5 * (5 * r5);\n\t\t d0 += h6 * (5 * r4);\n\t\t d0 += h7 * (5 * r3);\n\t\t d0 += h8 * (5 * r2);\n\t\t d0 += h9 * (5 * r1);\n\t\t c += (d0 >>> 13); d0 &= 0x1fff;\n\n\t\t d1 = c;\n\t\t d1 += h0 * r1;\n\t\t d1 += h1 * r0;\n\t\t d1 += h2 * (5 * r9);\n\t\t d1 += h3 * (5 * r8);\n\t\t d1 += h4 * (5 * r7);\n\t\t c = (d1 >>> 13); d1 &= 0x1fff;\n\t\t d1 += h5 * (5 * r6);\n\t\t d1 += h6 * (5 * r5);\n\t\t d1 += h7 * (5 * r4);\n\t\t d1 += h8 * (5 * r3);\n\t\t d1 += h9 * (5 * r2);\n\t\t c += (d1 >>> 13); d1 &= 0x1fff;\n\n\t\t d2 = c;\n\t\t d2 += h0 * r2;\n\t\t d2 += h1 * r1;\n\t\t d2 += h2 * r0;\n\t\t d2 += h3 * (5 * r9);\n\t\t d2 += h4 * (5 * r8);\n\t\t c = (d2 >>> 13); d2 &= 0x1fff;\n\t\t d2 += h5 * (5 * r7);\n\t\t d2 += h6 * (5 * r6);\n\t\t d2 += h7 * (5 * r5);\n\t\t d2 += h8 * (5 * r4);\n\t\t d2 += h9 * (5 * r3);\n\t\t c += (d2 >>> 13); d2 &= 0x1fff;\n\n\t\t d3 = c;\n\t\t d3 += h0 * r3;\n\t\t d3 += h1 * r2;\n\t\t d3 += h2 * r1;\n\t\t d3 += h3 * r0;\n\t\t d3 += h4 * (5 * r9);\n\t\t c = (d3 >>> 13); d3 &= 0x1fff;\n\t\t d3 += h5 * (5 * r8);\n\t\t d3 += h6 * (5 * r7);\n\t\t d3 += h7 * (5 * r6);\n\t\t d3 += h8 * (5 * r5);\n\t\t d3 += h9 * (5 * r4);\n\t\t c += (d3 >>> 13); d3 &= 0x1fff;\n\n\t\t d4 = c;\n\t\t d4 += h0 * r4;\n\t\t d4 += h1 * r3;\n\t\t d4 += h2 * r2;\n\t\t d4 += h3 * r1;\n\t\t d4 += h4 * r0;\n\t\t c = (d4 >>> 13); d4 &= 0x1fff;\n\t\t d4 += h5 * (5 * r9);\n\t\t d4 += h6 * (5 * r8);\n\t\t d4 += h7 * (5 * r7);\n\t\t d4 += h8 * (5 * r6);\n\t\t d4 += h9 * (5 * r5);\n\t\t c += (d4 >>> 13); d4 &= 0x1fff;\n\n\t\t d5 = c;\n\t\t d5 += h0 * r5;\n\t\t d5 += h1 * r4;\n\t\t d5 += h2 * r3;\n\t\t d5 += h3 * r2;\n\t\t d5 += h4 * r1;\n\t\t c = (d5 >>> 13); d5 &= 0x1fff;\n\t\t d5 += h5 * r0;\n\t\t d5 += h6 * (5 * r9);\n\t\t d5 += h7 * (5 * r8);\n\t\t d5 += h8 * (5 * r7);\n\t\t d5 += h9 * (5 * r6);\n\t\t c += (d5 >>> 13); d5 &= 0x1fff;\n\n\t\t d6 = c;\n\t\t d6 += h0 * r6;\n\t\t d6 += h1 * r5;\n\t\t d6 += h2 * r4;\n\t\t d6 += h3 * r3;\n\t\t d6 += h4 * r2;\n\t\t c = (d6 >>> 13); d6 &= 0x1fff;\n\t\t d6 += h5 * r1;\n\t\t d6 += h6 * r0;\n\t\t d6 += h7 * (5 * r9);\n\t\t d6 += h8 * (5 * r8);\n\t\t d6 += h9 * (5 * r7);\n\t\t c += (d6 >>> 13); d6 &= 0x1fff;\n\n\t\t d7 = c;\n\t\t d7 += h0 * r7;\n\t\t d7 += h1 * r6;\n\t\t d7 += h2 * r5;\n\t\t d7 += h3 * r4;\n\t\t d7 += h4 * r3;\n\t\t c = (d7 >>> 13); d7 &= 0x1fff;\n\t\t d7 += h5 * r2;\n\t\t d7 += h6 * r1;\n\t\t d7 += h7 * r0;\n\t\t d7 += h8 * (5 * r9);\n\t\t d7 += h9 * (5 * r8);\n\t\t c += (d7 >>> 13); d7 &= 0x1fff;\n\n\t\t d8 = c;\n\t\t d8 += h0 * r8;\n\t\t d8 += h1 * r7;\n\t\t d8 += h2 * r6;\n\t\t d8 += h3 * r5;\n\t\t d8 += h4 * r4;\n\t\t c = (d8 >>> 13); d8 &= 0x1fff;\n\t\t d8 += h5 * r3;\n\t\t d8 += h6 * r2;\n\t\t d8 += h7 * r1;\n\t\t d8 += h8 * r0;\n\t\t d8 += h9 * (5 * r9);\n\t\t c += (d8 >>> 13); d8 &= 0x1fff;\n\n\t\t d9 = c;\n\t\t d9 += h0 * r9;\n\t\t d9 += h1 * r8;\n\t\t d9 += h2 * r7;\n\t\t d9 += h3 * r6;\n\t\t d9 += h4 * r5;\n\t\t c = (d9 >>> 13); d9 &= 0x1fff;\n\t\t d9 += h5 * r4;\n\t\t d9 += h6 * r3;\n\t\t d9 += h7 * r2;\n\t\t d9 += h8 * r1;\n\t\t d9 += h9 * r0;\n\t\t c += (d9 >>> 13); d9 &= 0x1fff;\n\n\t\t c = (((c << 2) + c)) | 0;\n\t\t c = (c + d0) | 0;\n\t\t d0 = c & 0x1fff;\n\t\t c = (c >>> 13);\n\t\t d1 += c;\n\n\t\t h0 = d0;\n\t\t h1 = d1;\n\t\t h2 = d2;\n\t\t h3 = d3;\n\t\t h4 = d4;\n\t\t h5 = d5;\n\t\t h6 = d6;\n\t\t h7 = d7;\n\t\t h8 = d8;\n\t\t h9 = d9;\n\n\t\t mpos += 16;\n\t\t bytes -= 16;\n\t\t }\n\t\t this.h[0] = h0;\n\t\t this.h[1] = h1;\n\t\t this.h[2] = h2;\n\t\t this.h[3] = h3;\n\t\t this.h[4] = h4;\n\t\t this.h[5] = h5;\n\t\t this.h[6] = h6;\n\t\t this.h[7] = h7;\n\t\t this.h[8] = h8;\n\t\t this.h[9] = h9;\n\t\t};\n\n\t\tpoly1305.prototype.finish = function(mac, macpos) {\n\t\t var g = new Uint16Array(10);\n\t\t var c, mask, f, i;\n\n\t\t if (this.leftover) {\n\t\t i = this.leftover;\n\t\t this.buffer[i++] = 1;\n\t\t for (; i < 16; i++) this.buffer[i] = 0;\n\t\t this.fin = 1;\n\t\t this.blocks(this.buffer, 0, 16);\n\t\t }\n\n\t\t c = this.h[1] >>> 13;\n\t\t this.h[1] &= 0x1fff;\n\t\t for (i = 2; i < 10; i++) {\n\t\t this.h[i] += c;\n\t\t c = this.h[i] >>> 13;\n\t\t this.h[i] &= 0x1fff;\n\t\t }\n\t\t this.h[0] += (c * 5);\n\t\t c = this.h[0] >>> 13;\n\t\t this.h[0] &= 0x1fff;\n\t\t this.h[1] += c;\n\t\t c = this.h[1] >>> 13;\n\t\t this.h[1] &= 0x1fff;\n\t\t this.h[2] += c;\n\n\t\t g[0] = this.h[0] + 5;\n\t\t c = g[0] >>> 13;\n\t\t g[0] &= 0x1fff;\n\t\t for (i = 1; i < 10; i++) {\n\t\t g[i] = this.h[i] + c;\n\t\t c = g[i] >>> 13;\n\t\t g[i] &= 0x1fff;\n\t\t }\n\t\t g[9] -= (1 << 13);\n\n\t\t mask = (c ^ 1) - 1;\n\t\t for (i = 0; i < 10; i++) g[i] &= mask;\n\t\t mask = ~mask;\n\t\t for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n\t\t this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n\t\t this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n\t\t this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n\t\t this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n\t\t this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n\t\t this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n\t\t this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n\t\t this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n\t\t f = this.h[0] + this.pad[0];\n\t\t this.h[0] = f & 0xffff;\n\t\t for (i = 1; i < 8; i++) {\n\t\t f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n\t\t this.h[i] = f & 0xffff;\n\t\t }\n\n\t\t mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n\t\t mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n\t\t mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n\t\t mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n\t\t mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n\t\t mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n\t\t mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n\t\t mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n\t\t mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n\t\t mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n\t\t mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n\t\t mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n\t\t mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n\t\t mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n\t\t mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n\t\t mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n\t\t};\n\n\t\tpoly1305.prototype.update = function(m, mpos, bytes) {\n\t\t var i, want;\n\n\t\t if (this.leftover) {\n\t\t want = (16 - this.leftover);\n\t\t if (want > bytes)\n\t\t want = bytes;\n\t\t for (i = 0; i < want; i++)\n\t\t this.buffer[this.leftover + i] = m[mpos+i];\n\t\t bytes -= want;\n\t\t mpos += want;\n\t\t this.leftover += want;\n\t\t if (this.leftover < 16)\n\t\t return;\n\t\t this.blocks(this.buffer, 0, 16);\n\t\t this.leftover = 0;\n\t\t }\n\n\t\t if (bytes >= 16) {\n\t\t want = bytes - (bytes % 16);\n\t\t this.blocks(m, mpos, want);\n\t\t mpos += want;\n\t\t bytes -= want;\n\t\t }\n\n\t\t if (bytes) {\n\t\t for (i = 0; i < bytes; i++)\n\t\t this.buffer[this.leftover + i] = m[mpos+i];\n\t\t this.leftover += bytes;\n\t\t }\n\t\t};\n\n\t\tfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n\t\t var s = new poly1305(k);\n\t\t s.update(m, mpos, n);\n\t\t s.finish(out, outpos);\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n\t\t var x = new Uint8Array(16);\n\t\t crypto_onetimeauth(x,0,m,mpos,n,k);\n\t\t return crypto_verify_16(h,hpos,x,0);\n\t\t}\n\n\t\tfunction crypto_secretbox(c,m,d,n,k) {\n\t\t var i;\n\t\t if (d < 32) return -1;\n\t\t crypto_stream_xor(c,0,m,0,d,n,k);\n\t\t crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n\t\t for (i = 0; i < 16; i++) c[i] = 0;\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_secretbox_open(m,c,d,n,k) {\n\t\t var i;\n\t\t var x = new Uint8Array(32);\n\t\t if (d < 32) return -1;\n\t\t crypto_stream(x,0,32,n,k);\n\t\t if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n\t\t crypto_stream_xor(m,0,c,0,d,n,k);\n\t\t for (i = 0; i < 32; i++) m[i] = 0;\n\t\t return 0;\n\t\t}\n\n\t\tfunction set25519(r, a) {\n\t\t var i;\n\t\t for (i = 0; i < 16; i++) r[i] = a[i]|0;\n\t\t}\n\n\t\tfunction car25519(o) {\n\t\t var i, v, c = 1;\n\t\t for (i = 0; i < 16; i++) {\n\t\t v = o[i] + c + 65535;\n\t\t c = Math.floor(v / 65536);\n\t\t o[i] = v - c * 65536;\n\t\t }\n\t\t o[0] += c-1 + 37 * (c-1);\n\t\t}\n\n\t\tfunction sel25519(p, q, b) {\n\t\t var t, c = ~(b-1);\n\t\t for (var i = 0; i < 16; i++) {\n\t\t t = c & (p[i] ^ q[i]);\n\t\t p[i] ^= t;\n\t\t q[i] ^= t;\n\t\t }\n\t\t}\n\n\t\tfunction pack25519(o, n) {\n\t\t var i, j, b;\n\t\t var m = gf(), t = gf();\n\t\t for (i = 0; i < 16; i++) t[i] = n[i];\n\t\t car25519(t);\n\t\t car25519(t);\n\t\t car25519(t);\n\t\t for (j = 0; j < 2; j++) {\n\t\t m[0] = t[0] - 0xffed;\n\t\t for (i = 1; i < 15; i++) {\n\t\t m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n\t\t m[i-1] &= 0xffff;\n\t\t }\n\t\t m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n\t\t b = (m[15]>>16) & 1;\n\t\t m[14] &= 0xffff;\n\t\t sel25519(t, m, 1-b);\n\t\t }\n\t\t for (i = 0; i < 16; i++) {\n\t\t o[2*i] = t[i] & 0xff;\n\t\t o[2*i+1] = t[i]>>8;\n\t\t }\n\t\t}\n\n\t\tfunction neq25519(a, b) {\n\t\t var c = new Uint8Array(32), d = new Uint8Array(32);\n\t\t pack25519(c, a);\n\t\t pack25519(d, b);\n\t\t return crypto_verify_32(c, 0, d, 0);\n\t\t}\n\n\t\tfunction par25519(a) {\n\t\t var d = new Uint8Array(32);\n\t\t pack25519(d, a);\n\t\t return d[0] & 1;\n\t\t}\n\n\t\tfunction unpack25519(o, n) {\n\t\t var i;\n\t\t for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n\t\t o[15] &= 0x7fff;\n\t\t}\n\n\t\tfunction A(o, a, b) {\n\t\t for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n\t\t}\n\n\t\tfunction Z(o, a, b) {\n\t\t for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n\t\t}\n\n\t\tfunction M(o, a, b) {\n\t\t var v, c,\n\t\t t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n\t\t t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n\t\t t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n\t\t t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n\t\t b0 = b[0],\n\t\t b1 = b[1],\n\t\t b2 = b[2],\n\t\t b3 = b[3],\n\t\t b4 = b[4],\n\t\t b5 = b[5],\n\t\t b6 = b[6],\n\t\t b7 = b[7],\n\t\t b8 = b[8],\n\t\t b9 = b[9],\n\t\t b10 = b[10],\n\t\t b11 = b[11],\n\t\t b12 = b[12],\n\t\t b13 = b[13],\n\t\t b14 = b[14],\n\t\t b15 = b[15];\n\n\t\t v = a[0];\n\t\t t0 += v * b0;\n\t\t t1 += v * b1;\n\t\t t2 += v * b2;\n\t\t t3 += v * b3;\n\t\t t4 += v * b4;\n\t\t t5 += v * b5;\n\t\t t6 += v * b6;\n\t\t t7 += v * b7;\n\t\t t8 += v * b8;\n\t\t t9 += v * b9;\n\t\t t10 += v * b10;\n\t\t t11 += v * b11;\n\t\t t12 += v * b12;\n\t\t t13 += v * b13;\n\t\t t14 += v * b14;\n\t\t t15 += v * b15;\n\t\t v = a[1];\n\t\t t1 += v * b0;\n\t\t t2 += v * b1;\n\t\t t3 += v * b2;\n\t\t t4 += v * b3;\n\t\t t5 += v * b4;\n\t\t t6 += v * b5;\n\t\t t7 += v * b6;\n\t\t t8 += v * b7;\n\t\t t9 += v * b8;\n\t\t t10 += v * b9;\n\t\t t11 += v * b10;\n\t\t t12 += v * b11;\n\t\t t13 += v * b12;\n\t\t t14 += v * b13;\n\t\t t15 += v * b14;\n\t\t t16 += v * b15;\n\t\t v = a[2];\n\t\t t2 += v * b0;\n\t\t t3 += v * b1;\n\t\t t4 += v * b2;\n\t\t t5 += v * b3;\n\t\t t6 += v * b4;\n\t\t t7 += v * b5;\n\t\t t8 += v * b6;\n\t\t t9 += v * b7;\n\t\t t10 += v * b8;\n\t\t t11 += v * b9;\n\t\t t12 += v * b10;\n\t\t t13 += v * b11;\n\t\t t14 += v * b12;\n\t\t t15 += v * b13;\n\t\t t16 += v * b14;\n\t\t t17 += v * b15;\n\t\t v = a[3];\n\t\t t3 += v * b0;\n\t\t t4 += v * b1;\n\t\t t5 += v * b2;\n\t\t t6 += v * b3;\n\t\t t7 += v * b4;\n\t\t t8 += v * b5;\n\t\t t9 += v * b6;\n\t\t t10 += v * b7;\n\t\t t11 += v * b8;\n\t\t t12 += v * b9;\n\t\t t13 += v * b10;\n\t\t t14 += v * b11;\n\t\t t15 += v * b12;\n\t\t t16 += v * b13;\n\t\t t17 += v * b14;\n\t\t t18 += v * b15;\n\t\t v = a[4];\n\t\t t4 += v * b0;\n\t\t t5 += v * b1;\n\t\t t6 += v * b2;\n\t\t t7 += v * b3;\n\t\t t8 += v * b4;\n\t\t t9 += v * b5;\n\t\t t10 += v * b6;\n\t\t t11 += v * b7;\n\t\t t12 += v * b8;\n\t\t t13 += v * b9;\n\t\t t14 += v * b10;\n\t\t t15 += v * b11;\n\t\t t16 += v * b12;\n\t\t t17 += v * b13;\n\t\t t18 += v * b14;\n\t\t t19 += v * b15;\n\t\t v = a[5];\n\t\t t5 += v * b0;\n\t\t t6 += v * b1;\n\t\t t7 += v * b2;\n\t\t t8 += v * b3;\n\t\t t9 += v * b4;\n\t\t t10 += v * b5;\n\t\t t11 += v * b6;\n\t\t t12 += v * b7;\n\t\t t13 += v * b8;\n\t\t t14 += v * b9;\n\t\t t15 += v * b10;\n\t\t t16 += v * b11;\n\t\t t17 += v * b12;\n\t\t t18 += v * b13;\n\t\t t19 += v * b14;\n\t\t t20 += v * b15;\n\t\t v = a[6];\n\t\t t6 += v * b0;\n\t\t t7 += v * b1;\n\t\t t8 += v * b2;\n\t\t t9 += v * b3;\n\t\t t10 += v * b4;\n\t\t t11 += v * b5;\n\t\t t12 += v * b6;\n\t\t t13 += v * b7;\n\t\t t14 += v * b8;\n\t\t t15 += v * b9;\n\t\t t16 += v * b10;\n\t\t t17 += v * b11;\n\t\t t18 += v * b12;\n\t\t t19 += v * b13;\n\t\t t20 += v * b14;\n\t\t t21 += v * b15;\n\t\t v = a[7];\n\t\t t7 += v * b0;\n\t\t t8 += v * b1;\n\t\t t9 += v * b2;\n\t\t t10 += v * b3;\n\t\t t11 += v * b4;\n\t\t t12 += v * b5;\n\t\t t13 += v * b6;\n\t\t t14 += v * b7;\n\t\t t15 += v * b8;\n\t\t t16 += v * b9;\n\t\t t17 += v * b10;\n\t\t t18 += v * b11;\n\t\t t19 += v * b12;\n\t\t t20 += v * b13;\n\t\t t21 += v * b14;\n\t\t t22 += v * b15;\n\t\t v = a[8];\n\t\t t8 += v * b0;\n\t\t t9 += v * b1;\n\t\t t10 += v * b2;\n\t\t t11 += v * b3;\n\t\t t12 += v * b4;\n\t\t t13 += v * b5;\n\t\t t14 += v * b6;\n\t\t t15 += v * b7;\n\t\t t16 += v * b8;\n\t\t t17 += v * b9;\n\t\t t18 += v * b10;\n\t\t t19 += v * b11;\n\t\t t20 += v * b12;\n\t\t t21 += v * b13;\n\t\t t22 += v * b14;\n\t\t t23 += v * b15;\n\t\t v = a[9];\n\t\t t9 += v * b0;\n\t\t t10 += v * b1;\n\t\t t11 += v * b2;\n\t\t t12 += v * b3;\n\t\t t13 += v * b4;\n\t\t t14 += v * b5;\n\t\t t15 += v * b6;\n\t\t t16 += v * b7;\n\t\t t17 += v * b8;\n\t\t t18 += v * b9;\n\t\t t19 += v * b10;\n\t\t t20 += v * b11;\n\t\t t21 += v * b12;\n\t\t t22 += v * b13;\n\t\t t23 += v * b14;\n\t\t t24 += v * b15;\n\t\t v = a[10];\n\t\t t10 += v * b0;\n\t\t t11 += v * b1;\n\t\t t12 += v * b2;\n\t\t t13 += v * b3;\n\t\t t14 += v * b4;\n\t\t t15 += v * b5;\n\t\t t16 += v * b6;\n\t\t t17 += v * b7;\n\t\t t18 += v * b8;\n\t\t t19 += v * b9;\n\t\t t20 += v * b10;\n\t\t t21 += v * b11;\n\t\t t22 += v * b12;\n\t\t t23 += v * b13;\n\t\t t24 += v * b14;\n\t\t t25 += v * b15;\n\t\t v = a[11];\n\t\t t11 += v * b0;\n\t\t t12 += v * b1;\n\t\t t13 += v * b2;\n\t\t t14 += v * b3;\n\t\t t15 += v * b4;\n\t\t t16 += v * b5;\n\t\t t17 += v * b6;\n\t\t t18 += v * b7;\n\t\t t19 += v * b8;\n\t\t t20 += v * b9;\n\t\t t21 += v * b10;\n\t\t t22 += v * b11;\n\t\t t23 += v * b12;\n\t\t t24 += v * b13;\n\t\t t25 += v * b14;\n\t\t t26 += v * b15;\n\t\t v = a[12];\n\t\t t12 += v * b0;\n\t\t t13 += v * b1;\n\t\t t14 += v * b2;\n\t\t t15 += v * b3;\n\t\t t16 += v * b4;\n\t\t t17 += v * b5;\n\t\t t18 += v * b6;\n\t\t t19 += v * b7;\n\t\t t20 += v * b8;\n\t\t t21 += v * b9;\n\t\t t22 += v * b10;\n\t\t t23 += v * b11;\n\t\t t24 += v * b12;\n\t\t t25 += v * b13;\n\t\t t26 += v * b14;\n\t\t t27 += v * b15;\n\t\t v = a[13];\n\t\t t13 += v * b0;\n\t\t t14 += v * b1;\n\t\t t15 += v * b2;\n\t\t t16 += v * b3;\n\t\t t17 += v * b4;\n\t\t t18 += v * b5;\n\t\t t19 += v * b6;\n\t\t t20 += v * b7;\n\t\t t21 += v * b8;\n\t\t t22 += v * b9;\n\t\t t23 += v * b10;\n\t\t t24 += v * b11;\n\t\t t25 += v * b12;\n\t\t t26 += v * b13;\n\t\t t27 += v * b14;\n\t\t t28 += v * b15;\n\t\t v = a[14];\n\t\t t14 += v * b0;\n\t\t t15 += v * b1;\n\t\t t16 += v * b2;\n\t\t t17 += v * b3;\n\t\t t18 += v * b4;\n\t\t t19 += v * b5;\n\t\t t20 += v * b6;\n\t\t t21 += v * b7;\n\t\t t22 += v * b8;\n\t\t t23 += v * b9;\n\t\t t24 += v * b10;\n\t\t t25 += v * b11;\n\t\t t26 += v * b12;\n\t\t t27 += v * b13;\n\t\t t28 += v * b14;\n\t\t t29 += v * b15;\n\t\t v = a[15];\n\t\t t15 += v * b0;\n\t\t t16 += v * b1;\n\t\t t17 += v * b2;\n\t\t t18 += v * b3;\n\t\t t19 += v * b4;\n\t\t t20 += v * b5;\n\t\t t21 += v * b6;\n\t\t t22 += v * b7;\n\t\t t23 += v * b8;\n\t\t t24 += v * b9;\n\t\t t25 += v * b10;\n\t\t t26 += v * b11;\n\t\t t27 += v * b12;\n\t\t t28 += v * b13;\n\t\t t29 += v * b14;\n\t\t t30 += v * b15;\n\n\t\t t0 += 38 * t16;\n\t\t t1 += 38 * t17;\n\t\t t2 += 38 * t18;\n\t\t t3 += 38 * t19;\n\t\t t4 += 38 * t20;\n\t\t t5 += 38 * t21;\n\t\t t6 += 38 * t22;\n\t\t t7 += 38 * t23;\n\t\t t8 += 38 * t24;\n\t\t t9 += 38 * t25;\n\t\t t10 += 38 * t26;\n\t\t t11 += 38 * t27;\n\t\t t12 += 38 * t28;\n\t\t t13 += 38 * t29;\n\t\t t14 += 38 * t30;\n\t\t // t15 left as is\n\n\t\t // first car\n\t\t c = 1;\n\t\t v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n\t\t v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n\t\t v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n\t\t v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n\t\t v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n\t\t v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n\t\t v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n\t\t v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n\t\t v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n\t\t v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n\t\t v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n\t\t v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n\t\t v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n\t\t v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n\t\t v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n\t\t v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n\t\t t0 += c-1 + 37 * (c-1);\n\n\t\t // second car\n\t\t c = 1;\n\t\t v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n\t\t v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n\t\t v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n\t\t v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n\t\t v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n\t\t v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n\t\t v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n\t\t v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n\t\t v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n\t\t v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n\t\t v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n\t\t v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n\t\t v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n\t\t v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n\t\t v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n\t\t v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n\t\t t0 += c-1 + 37 * (c-1);\n\n\t\t o[ 0] = t0;\n\t\t o[ 1] = t1;\n\t\t o[ 2] = t2;\n\t\t o[ 3] = t3;\n\t\t o[ 4] = t4;\n\t\t o[ 5] = t5;\n\t\t o[ 6] = t6;\n\t\t o[ 7] = t7;\n\t\t o[ 8] = t8;\n\t\t o[ 9] = t9;\n\t\t o[10] = t10;\n\t\t o[11] = t11;\n\t\t o[12] = t12;\n\t\t o[13] = t13;\n\t\t o[14] = t14;\n\t\t o[15] = t15;\n\t\t}\n\n\t\tfunction S(o, a) {\n\t\t M(o, a, a);\n\t\t}\n\n\t\tfunction inv25519(o, i) {\n\t\t var c = gf();\n\t\t var a;\n\t\t for (a = 0; a < 16; a++) c[a] = i[a];\n\t\t for (a = 253; a >= 0; a--) {\n\t\t S(c, c);\n\t\t if(a !== 2 && a !== 4) M(c, c, i);\n\t\t }\n\t\t for (a = 0; a < 16; a++) o[a] = c[a];\n\t\t}\n\n\t\tfunction pow2523(o, i) {\n\t\t var c = gf();\n\t\t var a;\n\t\t for (a = 0; a < 16; a++) c[a] = i[a];\n\t\t for (a = 250; a >= 0; a--) {\n\t\t S(c, c);\n\t\t if(a !== 1) M(c, c, i);\n\t\t }\n\t\t for (a = 0; a < 16; a++) o[a] = c[a];\n\t\t}\n\n\t\tfunction crypto_scalarmult(q, n, p) {\n\t\t var z = new Uint8Array(32);\n\t\t var x = new Float64Array(80), r, i;\n\t\t var a = gf(), b = gf(), c = gf(),\n\t\t d = gf(), e = gf(), f = gf();\n\t\t for (i = 0; i < 31; i++) z[i] = n[i];\n\t\t z[31]=(n[31]&127)|64;\n\t\t z[0]&=248;\n\t\t unpack25519(x,p);\n\t\t for (i = 0; i < 16; i++) {\n\t\t b[i]=x[i];\n\t\t d[i]=a[i]=c[i]=0;\n\t\t }\n\t\t a[0]=d[0]=1;\n\t\t for (i=254; i>=0; --i) {\n\t\t r=(z[i>>>3]>>>(i&7))&1;\n\t\t sel25519(a,b,r);\n\t\t sel25519(c,d,r);\n\t\t A(e,a,c);\n\t\t Z(a,a,c);\n\t\t A(c,b,d);\n\t\t Z(b,b,d);\n\t\t S(d,e);\n\t\t S(f,a);\n\t\t M(a,c,a);\n\t\t M(c,b,e);\n\t\t A(e,a,c);\n\t\t Z(a,a,c);\n\t\t S(b,a);\n\t\t Z(c,d,f);\n\t\t M(a,c,_121665);\n\t\t A(a,a,d);\n\t\t M(c,c,a);\n\t\t M(a,d,f);\n\t\t M(d,b,x);\n\t\t S(b,e);\n\t\t sel25519(a,b,r);\n\t\t sel25519(c,d,r);\n\t\t }\n\t\t for (i = 0; i < 16; i++) {\n\t\t x[i+16]=a[i];\n\t\t x[i+32]=c[i];\n\t\t x[i+48]=b[i];\n\t\t x[i+64]=d[i];\n\t\t }\n\t\t var x32 = x.subarray(32);\n\t\t var x16 = x.subarray(16);\n\t\t inv25519(x32,x32);\n\t\t M(x16,x16,x32);\n\t\t pack25519(q,x16);\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_scalarmult_base(q, n) {\n\t\t return crypto_scalarmult(q, n, _9);\n\t\t}\n\n\t\tfunction crypto_box_keypair(y, x) {\n\t\t randombytes(x, 32);\n\t\t return crypto_scalarmult_base(y, x);\n\t\t}\n\n\t\tfunction crypto_box_beforenm(k, y, x) {\n\t\t var s = new Uint8Array(32);\n\t\t crypto_scalarmult(s, x, y);\n\t\t return crypto_core_hsalsa20(k, _0, s, sigma);\n\t\t}\n\n\t\tvar crypto_box_afternm = crypto_secretbox;\n\t\tvar crypto_box_open_afternm = crypto_secretbox_open;\n\n\t\tfunction crypto_box(c, m, d, n, y, x) {\n\t\t var k = new Uint8Array(32);\n\t\t crypto_box_beforenm(k, y, x);\n\t\t return crypto_box_afternm(c, m, d, n, k);\n\t\t}\n\n\t\tfunction crypto_box_open(m, c, d, n, y, x) {\n\t\t var k = new Uint8Array(32);\n\t\t crypto_box_beforenm(k, y, x);\n\t\t return crypto_box_open_afternm(m, c, d, n, k);\n\t\t}\n\n\t\tvar K = [\n\t\t 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n\t\t 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n\t\t 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n\t\t 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n\t\t 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n\t\t 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n\t\t 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n\t\t 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n\t\t 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n\t\t 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n\t\t 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n\t\t 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n\t\t 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n\t\t 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n\t\t 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n\t\t 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n\t\t 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n\t\t 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n\t\t 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n\t\t 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n\t\t 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n\t\t 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n\t\t 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n\t\t 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n\t\t 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n\t\t 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n\t\t 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n\t\t 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n\t\t 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n\t\t 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n\t\t 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n\t\t 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n\t\t 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n\t\t 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n\t\t 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n\t\t 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n\t\t 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n\t\t 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n\t\t 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n\t\t 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n\t\t];\n\n\t\tfunction crypto_hashblocks_hl(hh, hl, m, n) {\n\t\t var wh = new Int32Array(16), wl = new Int32Array(16),\n\t\t bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n\t\t bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n\t\t th, tl, i, j, h, l, a, b, c, d;\n\n\t\t var ah0 = hh[0],\n\t\t ah1 = hh[1],\n\t\t ah2 = hh[2],\n\t\t ah3 = hh[3],\n\t\t ah4 = hh[4],\n\t\t ah5 = hh[5],\n\t\t ah6 = hh[6],\n\t\t ah7 = hh[7],\n\n\t\t al0 = hl[0],\n\t\t al1 = hl[1],\n\t\t al2 = hl[2],\n\t\t al3 = hl[3],\n\t\t al4 = hl[4],\n\t\t al5 = hl[5],\n\t\t al6 = hl[6],\n\t\t al7 = hl[7];\n\n\t\t var pos = 0;\n\t\t while (n >= 128) {\n\t\t for (i = 0; i < 16; i++) {\n\t\t j = 8 * i + pos;\n\t\t wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n\t\t wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n\t\t }\n\t\t for (i = 0; i < 80; i++) {\n\t\t bh0 = ah0;\n\t\t bh1 = ah1;\n\t\t bh2 = ah2;\n\t\t bh3 = ah3;\n\t\t bh4 = ah4;\n\t\t bh5 = ah5;\n\t\t bh6 = ah6;\n\t\t bh7 = ah7;\n\n\t\t bl0 = al0;\n\t\t bl1 = al1;\n\t\t bl2 = al2;\n\t\t bl3 = al3;\n\t\t bl4 = al4;\n\t\t bl5 = al5;\n\t\t bl6 = al6;\n\t\t bl7 = al7;\n\n\t\t // add\n\t\t h = ah7;\n\t\t l = al7;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t // Sigma1\n\t\t h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n\t\t l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // Ch\n\t\t h = (ah4 & ah5) ^ (~ah4 & ah6);\n\t\t l = (al4 & al5) ^ (~al4 & al6);\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // K\n\t\t h = K[i*2];\n\t\t l = K[i*2+1];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // w\n\t\t h = wh[i%16];\n\t\t l = wl[i%16];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t th = c & 0xffff | d << 16;\n\t\t tl = a & 0xffff | b << 16;\n\n\t\t // add\n\t\t h = th;\n\t\t l = tl;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t // Sigma0\n\t\t h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n\t\t l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // Maj\n\t\t h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n\t\t l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t bh7 = (c & 0xffff) | (d << 16);\n\t\t bl7 = (a & 0xffff) | (b << 16);\n\n\t\t // add\n\t\t h = bh3;\n\t\t l = bl3;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = th;\n\t\t l = tl;\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t bh3 = (c & 0xffff) | (d << 16);\n\t\t bl3 = (a & 0xffff) | (b << 16);\n\n\t\t ah1 = bh0;\n\t\t ah2 = bh1;\n\t\t ah3 = bh2;\n\t\t ah4 = bh3;\n\t\t ah5 = bh4;\n\t\t ah6 = bh5;\n\t\t ah7 = bh6;\n\t\t ah0 = bh7;\n\n\t\t al1 = bl0;\n\t\t al2 = bl1;\n\t\t al3 = bl2;\n\t\t al4 = bl3;\n\t\t al5 = bl4;\n\t\t al6 = bl5;\n\t\t al7 = bl6;\n\t\t al0 = bl7;\n\n\t\t if (i%16 === 15) {\n\t\t for (j = 0; j < 16; j++) {\n\t\t // add\n\t\t h = wh[j];\n\t\t l = wl[j];\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = wh[(j+9)%16];\n\t\t l = wl[(j+9)%16];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // sigma0\n\t\t th = wh[(j+1)%16];\n\t\t tl = wl[(j+1)%16];\n\t\t h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n\t\t l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t // sigma1\n\t\t th = wh[(j+14)%16];\n\t\t tl = wl[(j+14)%16];\n\t\t h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n\t\t l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t wh[j] = (c & 0xffff) | (d << 16);\n\t\t wl[j] = (a & 0xffff) | (b << 16);\n\t\t }\n\t\t }\n\t\t }\n\n\t\t // add\n\t\t h = ah0;\n\t\t l = al0;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[0];\n\t\t l = hl[0];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[0] = ah0 = (c & 0xffff) | (d << 16);\n\t\t hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah1;\n\t\t l = al1;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[1];\n\t\t l = hl[1];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[1] = ah1 = (c & 0xffff) | (d << 16);\n\t\t hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah2;\n\t\t l = al2;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[2];\n\t\t l = hl[2];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[2] = ah2 = (c & 0xffff) | (d << 16);\n\t\t hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah3;\n\t\t l = al3;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[3];\n\t\t l = hl[3];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[3] = ah3 = (c & 0xffff) | (d << 16);\n\t\t hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah4;\n\t\t l = al4;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[4];\n\t\t l = hl[4];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[4] = ah4 = (c & 0xffff) | (d << 16);\n\t\t hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah5;\n\t\t l = al5;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[5];\n\t\t l = hl[5];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[5] = ah5 = (c & 0xffff) | (d << 16);\n\t\t hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah6;\n\t\t l = al6;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[6];\n\t\t l = hl[6];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[6] = ah6 = (c & 0xffff) | (d << 16);\n\t\t hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n\t\t h = ah7;\n\t\t l = al7;\n\n\t\t a = l & 0xffff; b = l >>> 16;\n\t\t c = h & 0xffff; d = h >>> 16;\n\n\t\t h = hh[7];\n\t\t l = hl[7];\n\n\t\t a += l & 0xffff; b += l >>> 16;\n\t\t c += h & 0xffff; d += h >>> 16;\n\n\t\t b += a >>> 16;\n\t\t c += b >>> 16;\n\t\t d += c >>> 16;\n\n\t\t hh[7] = ah7 = (c & 0xffff) | (d << 16);\n\t\t hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n\t\t pos += 128;\n\t\t n -= 128;\n\t\t }\n\n\t\t return n;\n\t\t}\n\n\t\tfunction crypto_hash(out, m, n) {\n\t\t var hh = new Int32Array(8),\n\t\t hl = new Int32Array(8),\n\t\t x = new Uint8Array(256),\n\t\t i, b = n;\n\n\t\t hh[0] = 0x6a09e667;\n\t\t hh[1] = 0xbb67ae85;\n\t\t hh[2] = 0x3c6ef372;\n\t\t hh[3] = 0xa54ff53a;\n\t\t hh[4] = 0x510e527f;\n\t\t hh[5] = 0x9b05688c;\n\t\t hh[6] = 0x1f83d9ab;\n\t\t hh[7] = 0x5be0cd19;\n\n\t\t hl[0] = 0xf3bcc908;\n\t\t hl[1] = 0x84caa73b;\n\t\t hl[2] = 0xfe94f82b;\n\t\t hl[3] = 0x5f1d36f1;\n\t\t hl[4] = 0xade682d1;\n\t\t hl[5] = 0x2b3e6c1f;\n\t\t hl[6] = 0xfb41bd6b;\n\t\t hl[7] = 0x137e2179;\n\n\t\t crypto_hashblocks_hl(hh, hl, m, n);\n\t\t n %= 128;\n\n\t\t for (i = 0; i < n; i++) x[i] = m[b-n+i];\n\t\t x[n] = 128;\n\n\t\t n = 256-128*(n<112?1:0);\n\t\t x[n-9] = 0;\n\t\t ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n\t\t crypto_hashblocks_hl(hh, hl, x, n);\n\n\t\t for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n\t\t return 0;\n\t\t}\n\n\t\tfunction add(p, q) {\n\t\t var a = gf(), b = gf(), c = gf(),\n\t\t d = gf(), e = gf(), f = gf(),\n\t\t g = gf(), h = gf(), t = gf();\n\n\t\t Z(a, p[1], p[0]);\n\t\t Z(t, q[1], q[0]);\n\t\t M(a, a, t);\n\t\t A(b, p[0], p[1]);\n\t\t A(t, q[0], q[1]);\n\t\t M(b, b, t);\n\t\t M(c, p[3], q[3]);\n\t\t M(c, c, D2);\n\t\t M(d, p[2], q[2]);\n\t\t A(d, d, d);\n\t\t Z(e, b, a);\n\t\t Z(f, d, c);\n\t\t A(g, d, c);\n\t\t A(h, b, a);\n\n\t\t M(p[0], e, f);\n\t\t M(p[1], h, g);\n\t\t M(p[2], g, f);\n\t\t M(p[3], e, h);\n\t\t}\n\n\t\tfunction cswap(p, q, b) {\n\t\t var i;\n\t\t for (i = 0; i < 4; i++) {\n\t\t sel25519(p[i], q[i], b);\n\t\t }\n\t\t}\n\n\t\tfunction pack(r, p) {\n\t\t var tx = gf(), ty = gf(), zi = gf();\n\t\t inv25519(zi, p[2]);\n\t\t M(tx, p[0], zi);\n\t\t M(ty, p[1], zi);\n\t\t pack25519(r, ty);\n\t\t r[31] ^= par25519(tx) << 7;\n\t\t}\n\n\t\tfunction scalarmult(p, q, s) {\n\t\t var b, i;\n\t\t set25519(p[0], gf0);\n\t\t set25519(p[1], gf1);\n\t\t set25519(p[2], gf1);\n\t\t set25519(p[3], gf0);\n\t\t for (i = 255; i >= 0; --i) {\n\t\t b = (s[(i/8)|0] >> (i&7)) & 1;\n\t\t cswap(p, q, b);\n\t\t add(q, p);\n\t\t add(p, p);\n\t\t cswap(p, q, b);\n\t\t }\n\t\t}\n\n\t\tfunction scalarbase(p, s) {\n\t\t var q = [gf(), gf(), gf(), gf()];\n\t\t set25519(q[0], X);\n\t\t set25519(q[1], Y);\n\t\t set25519(q[2], gf1);\n\t\t M(q[3], X, Y);\n\t\t scalarmult(p, q, s);\n\t\t}\n\n\t\tfunction crypto_sign_keypair(pk, sk, seeded) {\n\t\t var d = new Uint8Array(64);\n\t\t var p = [gf(), gf(), gf(), gf()];\n\t\t var i;\n\n\t\t if (!seeded) randombytes(sk, 32);\n\t\t crypto_hash(d, sk, 32);\n\t\t d[0] &= 248;\n\t\t d[31] &= 127;\n\t\t d[31] |= 64;\n\n\t\t scalarbase(p, d);\n\t\t pack(pk, p);\n\n\t\t for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n\t\t return 0;\n\t\t}\n\n\t\tvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\n\t\tfunction modL(r, x) {\n\t\t var carry, i, j, k;\n\t\t for (i = 63; i >= 32; --i) {\n\t\t carry = 0;\n\t\t for (j = i - 32, k = i - 12; j < k; ++j) {\n\t\t x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n\t\t carry = Math.floor((x[j] + 128) / 256);\n\t\t x[j] -= carry * 256;\n\t\t }\n\t\t x[j] += carry;\n\t\t x[i] = 0;\n\t\t }\n\t\t carry = 0;\n\t\t for (j = 0; j < 32; j++) {\n\t\t x[j] += carry - (x[31] >> 4) * L[j];\n\t\t carry = x[j] >> 8;\n\t\t x[j] &= 255;\n\t\t }\n\t\t for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n\t\t for (i = 0; i < 32; i++) {\n\t\t x[i+1] += x[i] >> 8;\n\t\t r[i] = x[i] & 255;\n\t\t }\n\t\t}\n\n\t\tfunction reduce(r) {\n\t\t var x = new Float64Array(64), i;\n\t\t for (i = 0; i < 64; i++) x[i] = r[i];\n\t\t for (i = 0; i < 64; i++) r[i] = 0;\n\t\t modL(r, x);\n\t\t}\n\n\t\t// Note: difference from C - smlen returned, not passed as argument.\n\t\tfunction crypto_sign(sm, m, n, sk) {\n\t\t var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n\t\t var i, j, x = new Float64Array(64);\n\t\t var p = [gf(), gf(), gf(), gf()];\n\n\t\t crypto_hash(d, sk, 32);\n\t\t d[0] &= 248;\n\t\t d[31] &= 127;\n\t\t d[31] |= 64;\n\n\t\t var smlen = n + 64;\n\t\t for (i = 0; i < n; i++) sm[64 + i] = m[i];\n\t\t for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n\t\t crypto_hash(r, sm.subarray(32), n+32);\n\t\t reduce(r);\n\t\t scalarbase(p, r);\n\t\t pack(sm, p);\n\n\t\t for (i = 32; i < 64; i++) sm[i] = sk[i];\n\t\t crypto_hash(h, sm, n + 64);\n\t\t reduce(h);\n\n\t\t for (i = 0; i < 64; i++) x[i] = 0;\n\t\t for (i = 0; i < 32; i++) x[i] = r[i];\n\t\t for (i = 0; i < 32; i++) {\n\t\t for (j = 0; j < 32; j++) {\n\t\t x[i+j] += h[i] * d[j];\n\t\t }\n\t\t }\n\n\t\t modL(sm.subarray(32), x);\n\t\t return smlen;\n\t\t}\n\n\t\tfunction unpackneg(r, p) {\n\t\t var t = gf(), chk = gf(), num = gf(),\n\t\t den = gf(), den2 = gf(), den4 = gf(),\n\t\t den6 = gf();\n\n\t\t set25519(r[2], gf1);\n\t\t unpack25519(r[1], p);\n\t\t S(num, r[1]);\n\t\t M(den, num, D);\n\t\t Z(num, num, r[2]);\n\t\t A(den, r[2], den);\n\n\t\t S(den2, den);\n\t\t S(den4, den2);\n\t\t M(den6, den4, den2);\n\t\t M(t, den6, num);\n\t\t M(t, t, den);\n\n\t\t pow2523(t, t);\n\t\t M(t, t, num);\n\t\t M(t, t, den);\n\t\t M(t, t, den);\n\t\t M(r[0], t, den);\n\n\t\t S(chk, r[0]);\n\t\t M(chk, chk, den);\n\t\t if (neq25519(chk, num)) M(r[0], r[0], I);\n\n\t\t S(chk, r[0]);\n\t\t M(chk, chk, den);\n\t\t if (neq25519(chk, num)) return -1;\n\n\t\t if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n\t\t M(r[3], r[0], r[1]);\n\t\t return 0;\n\t\t}\n\n\t\tfunction crypto_sign_open(m, sm, n, pk) {\n\t\t var i;\n\t\t var t = new Uint8Array(32), h = new Uint8Array(64);\n\t\t var p = [gf(), gf(), gf(), gf()],\n\t\t q = [gf(), gf(), gf(), gf()];\n\n\t\t if (n < 64) return -1;\n\n\t\t if (unpackneg(q, pk)) return -1;\n\n\t\t for (i = 0; i < n; i++) m[i] = sm[i];\n\t\t for (i = 0; i < 32; i++) m[i+32] = pk[i];\n\t\t crypto_hash(h, m, n);\n\t\t reduce(h);\n\t\t scalarmult(p, q, h);\n\n\t\t scalarbase(q, sm.subarray(32));\n\t\t add(p, q);\n\t\t pack(t, p);\n\n\t\t n -= 64;\n\t\t if (crypto_verify_32(sm, 0, t, 0)) {\n\t\t for (i = 0; i < n; i++) m[i] = 0;\n\t\t return -1;\n\t\t }\n\n\t\t for (i = 0; i < n; i++) m[i] = sm[i + 64];\n\t\t return n;\n\t\t}\n\n\t\tvar crypto_secretbox_KEYBYTES = 32,\n\t\t crypto_secretbox_NONCEBYTES = 24,\n\t\t crypto_secretbox_ZEROBYTES = 32,\n\t\t crypto_secretbox_BOXZEROBYTES = 16,\n\t\t crypto_scalarmult_BYTES = 32,\n\t\t crypto_scalarmult_SCALARBYTES = 32,\n\t\t crypto_box_PUBLICKEYBYTES = 32,\n\t\t crypto_box_SECRETKEYBYTES = 32,\n\t\t crypto_box_BEFORENMBYTES = 32,\n\t\t crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n\t\t crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n\t\t crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n\t\t crypto_sign_BYTES = 64,\n\t\t crypto_sign_PUBLICKEYBYTES = 32,\n\t\t crypto_sign_SECRETKEYBYTES = 64,\n\t\t crypto_sign_SEEDBYTES = 32,\n\t\t crypto_hash_BYTES = 64;\n\n\t\tnacl.lowlevel = {\n\t\t crypto_core_hsalsa20: crypto_core_hsalsa20,\n\t\t crypto_stream_xor: crypto_stream_xor,\n\t\t crypto_stream: crypto_stream,\n\t\t crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n\t\t crypto_stream_salsa20: crypto_stream_salsa20,\n\t\t crypto_onetimeauth: crypto_onetimeauth,\n\t\t crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n\t\t crypto_verify_16: crypto_verify_16,\n\t\t crypto_verify_32: crypto_verify_32,\n\t\t crypto_secretbox: crypto_secretbox,\n\t\t crypto_secretbox_open: crypto_secretbox_open,\n\t\t crypto_scalarmult: crypto_scalarmult,\n\t\t crypto_scalarmult_base: crypto_scalarmult_base,\n\t\t crypto_box_beforenm: crypto_box_beforenm,\n\t\t crypto_box_afternm: crypto_box_afternm,\n\t\t crypto_box: crypto_box,\n\t\t crypto_box_open: crypto_box_open,\n\t\t crypto_box_keypair: crypto_box_keypair,\n\t\t crypto_hash: crypto_hash,\n\t\t crypto_sign: crypto_sign,\n\t\t crypto_sign_keypair: crypto_sign_keypair,\n\t\t crypto_sign_open: crypto_sign_open,\n\n\t\t crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n\t\t crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n\t\t crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n\t\t crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n\t\t crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n\t\t crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n\t\t crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n\t\t crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n\t\t crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n\t\t crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n\t\t crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n\t\t crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n\t\t crypto_sign_BYTES: crypto_sign_BYTES,\n\t\t crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n\t\t crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n\t\t crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n\t\t crypto_hash_BYTES: crypto_hash_BYTES,\n\n\t\t gf: gf,\n\t\t D: D,\n\t\t L: L,\n\t\t pack25519: pack25519,\n\t\t unpack25519: unpack25519,\n\t\t M: M,\n\t\t A: A,\n\t\t S: S,\n\t\t Z: Z,\n\t\t pow2523: pow2523,\n\t\t add: add,\n\t\t set25519: set25519,\n\t\t modL: modL,\n\t\t scalarmult: scalarmult,\n\t\t scalarbase: scalarbase,\n\t\t};\n\n\t\t/* High-level API */\n\n\t\tfunction checkLengths(k, n) {\n\t\t if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n\t\t if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n\t\t}\n\n\t\tfunction checkBoxLengths(pk, sk) {\n\t\t if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n\t\t if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n\t\t}\n\n\t\tfunction checkArrayTypes() {\n\t\t for (var i = 0; i < arguments.length; i++) {\n\t\t if (!(arguments[i] instanceof Uint8Array))\n\t\t throw new TypeError('unexpected type, use Uint8Array');\n\t\t }\n\t\t}\n\n\t\tfunction cleanup(arr) {\n\t\t for (var i = 0; i < arr.length; i++) arr[i] = 0;\n\t\t}\n\n\t\tnacl.randomBytes = function(n) {\n\t\t var b = new Uint8Array(n);\n\t\t randombytes(b, n);\n\t\t return b;\n\t\t};\n\n\t\tnacl.secretbox = function(msg, nonce, key) {\n\t\t checkArrayTypes(msg, nonce, key);\n\t\t checkLengths(key, nonce);\n\t\t var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n\t\t var c = new Uint8Array(m.length);\n\t\t for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n\t\t crypto_secretbox(c, m, m.length, nonce, key);\n\t\t return c.subarray(crypto_secretbox_BOXZEROBYTES);\n\t\t};\n\n\t\tnacl.secretbox.open = function(box, nonce, key) {\n\t\t checkArrayTypes(box, nonce, key);\n\t\t checkLengths(key, nonce);\n\t\t var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n\t\t var m = new Uint8Array(c.length);\n\t\t for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n\t\t if (c.length < 32) return null;\n\t\t if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n\t\t return m.subarray(crypto_secretbox_ZEROBYTES);\n\t\t};\n\n\t\tnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\n\t\tnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\n\t\tnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\n\t\tnacl.scalarMult = function(n, p) {\n\t\t checkArrayTypes(n, p);\n\t\t if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n\t\t if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n\t\t var q = new Uint8Array(crypto_scalarmult_BYTES);\n\t\t crypto_scalarmult(q, n, p);\n\t\t return q;\n\t\t};\n\n\t\tnacl.scalarMult.base = function(n) {\n\t\t checkArrayTypes(n);\n\t\t if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n\t\t var q = new Uint8Array(crypto_scalarmult_BYTES);\n\t\t crypto_scalarmult_base(q, n);\n\t\t return q;\n\t\t};\n\n\t\tnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\n\t\tnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\n\t\tnacl.box = function(msg, nonce, publicKey, secretKey) {\n\t\t var k = nacl.box.before(publicKey, secretKey);\n\t\t return nacl.secretbox(msg, nonce, k);\n\t\t};\n\n\t\tnacl.box.before = function(publicKey, secretKey) {\n\t\t checkArrayTypes(publicKey, secretKey);\n\t\t checkBoxLengths(publicKey, secretKey);\n\t\t var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n\t\t crypto_box_beforenm(k, publicKey, secretKey);\n\t\t return k;\n\t\t};\n\n\t\tnacl.box.after = nacl.secretbox;\n\n\t\tnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n\t\t var k = nacl.box.before(publicKey, secretKey);\n\t\t return nacl.secretbox.open(msg, nonce, k);\n\t\t};\n\n\t\tnacl.box.open.after = nacl.secretbox.open;\n\n\t\tnacl.box.keyPair = function() {\n\t\t var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n\t\t var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n\t\t crypto_box_keypair(pk, sk);\n\t\t return {publicKey: pk, secretKey: sk};\n\t\t};\n\n\t\tnacl.box.keyPair.fromSecretKey = function(secretKey) {\n\t\t checkArrayTypes(secretKey);\n\t\t if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n\t\t throw new Error('bad secret key size');\n\t\t var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n\t\t crypto_scalarmult_base(pk, secretKey);\n\t\t return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n\t\t};\n\n\t\tnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\n\t\tnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\n\t\tnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\n\t\tnacl.box.nonceLength = crypto_box_NONCEBYTES;\n\t\tnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\n\t\tnacl.sign = function(msg, secretKey) {\n\t\t checkArrayTypes(msg, secretKey);\n\t\t if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n\t\t throw new Error('bad secret key size');\n\t\t var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n\t\t crypto_sign(signedMsg, msg, msg.length, secretKey);\n\t\t return signedMsg;\n\t\t};\n\n\t\tnacl.sign.open = function(signedMsg, publicKey) {\n\t\t checkArrayTypes(signedMsg, publicKey);\n\t\t if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n\t\t throw new Error('bad public key size');\n\t\t var tmp = new Uint8Array(signedMsg.length);\n\t\t var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n\t\t if (mlen < 0) return null;\n\t\t var m = new Uint8Array(mlen);\n\t\t for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n\t\t return m;\n\t\t};\n\n\t\tnacl.sign.detached = function(msg, secretKey) {\n\t\t var signedMsg = nacl.sign(msg, secretKey);\n\t\t var sig = new Uint8Array(crypto_sign_BYTES);\n\t\t for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n\t\t return sig;\n\t\t};\n\n\t\tnacl.sign.detached.verify = function(msg, sig, publicKey) {\n\t\t checkArrayTypes(msg, sig, publicKey);\n\t\t if (sig.length !== crypto_sign_BYTES)\n\t\t throw new Error('bad signature size');\n\t\t if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n\t\t throw new Error('bad public key size');\n\t\t var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n\t\t var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n\t\t var i;\n\t\t for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n\t\t for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n\t\t return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n\t\t};\n\n\t\tnacl.sign.keyPair = function() {\n\t\t var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n\t\t var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n\t\t crypto_sign_keypair(pk, sk);\n\t\t return {publicKey: pk, secretKey: sk};\n\t\t};\n\n\t\tnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n\t\t checkArrayTypes(secretKey);\n\t\t if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n\t\t throw new Error('bad secret key size');\n\t\t var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n\t\t for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n\t\t return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n\t\t};\n\n\t\tnacl.sign.keyPair.fromSeed = function(seed) {\n\t\t checkArrayTypes(seed);\n\t\t if (seed.length !== crypto_sign_SEEDBYTES)\n\t\t throw new Error('bad seed size');\n\t\t var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n\t\t var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n\t\t for (var i = 0; i < 32; i++) sk[i] = seed[i];\n\t\t crypto_sign_keypair(pk, sk, true);\n\t\t return {publicKey: pk, secretKey: sk};\n\t\t};\n\n\t\tnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\n\t\tnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\n\t\tnacl.sign.seedLength = crypto_sign_SEEDBYTES;\n\t\tnacl.sign.signatureLength = crypto_sign_BYTES;\n\n\t\tnacl.hash = function(msg) {\n\t\t checkArrayTypes(msg);\n\t\t var h = new Uint8Array(crypto_hash_BYTES);\n\t\t crypto_hash(h, msg, msg.length);\n\t\t return h;\n\t\t};\n\n\t\tnacl.hash.hashLength = crypto_hash_BYTES;\n\n\t\tnacl.verify = function(x, y) {\n\t\t checkArrayTypes(x, y);\n\t\t // Zero length arguments are considered not equal.\n\t\t if (x.length === 0 || y.length === 0) return false;\n\t\t if (x.length !== y.length) return false;\n\t\t return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n\t\t};\n\n\t\tnacl.setPRNG = function(fn) {\n\t\t randombytes = fn;\n\t\t};\n\n\t\t(function() {\n\t\t // Initialize PRNG if environment provides CSPRNG.\n\t\t // If not, methods calling randombytes will throw.\n\t\t var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n\t\t if (crypto && crypto.getRandomValues) {\n\t\t // Browsers.\n\t\t var QUOTA = 65536;\n\t\t nacl.setPRNG(function(x, n) {\n\t\t var i, v = new Uint8Array(n);\n\t\t for (i = 0; i < n; i += QUOTA) {\n\t\t crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n\t\t }\n\t\t for (i = 0; i < n; i++) x[i] = v[i];\n\t\t cleanup(v);\n\t\t });\n\t\t } else if (typeof commonjsRequire !== 'undefined') {\n\t\t // Node.js.\n\t\t crypto = require$$0;\n\t\t if (crypto && crypto.randomBytes) {\n\t\t nacl.setPRNG(function(x, n) {\n\t\t var i, v = crypto.randomBytes(n);\n\t\t for (i = 0; i < n; i++) x[i] = v[i];\n\t\t cleanup(v);\n\t\t });\n\t\t }\n\t\t }\n\t\t})();\n\n\t\t})(module.exports ? module.exports : (self.nacl = self.nacl || {})); \n\t} (naclFast));\n\treturn naclFast.exports;\n}\n\nvar naclFastExports = requireNaclFast();\nvar nacl = /*@__PURE__*/getDefaultExportFromCjs(naclFastExports);\n\n/**\n * Check if a given instruction is a SetComputeUnitLimit instruction\n * See https://github.com/solana-program/compute-budget/blob/main/clients/js/src/generated/programs/computeBudget.ts#L29\n */\nfunction isSetComputeLimitInstruction(ix) {\n return (ix.programId.equals(ComputeBudgetProgram.programId) && ix.data[0] === 2 // opcode for setComputeUnitLimit is 2\n );\n}\n// Was getSimulationUnits\n// Credit https://twitter.com/stegabob, originally from\n// https://x.com/stegaBOB/status/1766662289392889920\nconst getSimulationComputeUnits = async (connection, instructions, payer, lookupTables, commitment = \"confirmed\") => {\n const simulationInstructions = [...instructions];\n // Replace or add compute limit instruction\n const computeLimitIndex = simulationInstructions.findIndex(isSetComputeLimitInstruction);\n const simulationLimitIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1_400_000,\n });\n if (computeLimitIndex >= 0) {\n simulationInstructions[computeLimitIndex] = simulationLimitIx;\n }\n else {\n simulationInstructions.unshift(simulationLimitIx);\n }\n const testTransaction = new VersionedTransaction(new TransactionMessage({\n instructions: simulationInstructions,\n payerKey: payer,\n // RecentBlockhash can by any public key during simulation\n // since 'replaceRecentBlockhash' is set to 'true' below\n recentBlockhash: PublicKey.default.toString(),\n }).compileToV0Message(lookupTables));\n const rpcResponse = await connection.simulateTransaction(testTransaction, {\n replaceRecentBlockhash: true,\n sigVerify: false,\n commitment,\n });\n if (rpcResponse?.value?.err) {\n const logs = rpcResponse.value.logs?.join(\"\\n • \") || \"No logs available\";\n throw new Error(`Transaction simulation failed:\\n •${logs}` + JSON.stringify(rpcResponse?.value?.err));\n }\n return rpcResponse.value.unitsConsumed || null;\n};\n\nvar bn$1 = {exports: {}};\n\nvar bn = bn$1.exports;\n\nvar hasRequiredBn;\n\nfunction requireBn () {\n\tif (hasRequiredBn) return bn$1.exports;\n\thasRequiredBn = 1;\n\t(function (module) {\n\t\t(function (module, exports) {\n\n\t\t // Utils\n\t\t function assert (val, msg) {\n\t\t if (!val) throw new Error(msg || 'Assertion failed');\n\t\t }\n\n\t\t // Could use `inherits` module, but don't want to move from single file\n\t\t // architecture yet.\n\t\t function inherits (ctor, superCtor) {\n\t\t ctor.super_ = superCtor;\n\t\t var TempCtor = function () {};\n\t\t TempCtor.prototype = superCtor.prototype;\n\t\t ctor.prototype = new TempCtor();\n\t\t ctor.prototype.constructor = ctor;\n\t\t }\n\n\t\t // BN\n\n\t\t function BN (number, base, endian) {\n\t\t if (BN.isBN(number)) {\n\t\t return number;\n\t\t }\n\n\t\t this.negative = 0;\n\t\t this.words = null;\n\t\t this.length = 0;\n\n\t\t // Reduction context\n\t\t this.red = null;\n\n\t\t if (number !== null) {\n\t\t if (base === 'le' || base === 'be') {\n\t\t endian = base;\n\t\t base = 10;\n\t\t }\n\n\t\t this._init(number || 0, base || 10, endian || 'be');\n\t\t }\n\t\t }\n\t\t if (typeof module === 'object') {\n\t\t module.exports = BN;\n\t\t } else {\n\t\t exports.BN = BN;\n\t\t }\n\n\t\t BN.BN = BN;\n\t\t BN.wordSize = 26;\n\n\t\t var Buffer;\n\t\t try {\n\t\t if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n\t\t Buffer = window.Buffer;\n\t\t } else {\n\t\t Buffer = require('buffer').Buffer;\n\t\t }\n\t\t } catch (e) {\n\t\t }\n\n\t\t BN.isBN = function isBN (num) {\n\t\t if (num instanceof BN) {\n\t\t return true;\n\t\t }\n\n\t\t return num !== null && typeof num === 'object' &&\n\t\t num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n\t\t };\n\n\t\t BN.max = function max (left, right) {\n\t\t if (left.cmp(right) > 0) return left;\n\t\t return right;\n\t\t };\n\n\t\t BN.min = function min (left, right) {\n\t\t if (left.cmp(right) < 0) return left;\n\t\t return right;\n\t\t };\n\n\t\t BN.prototype._init = function init (number, base, endian) {\n\t\t if (typeof number === 'number') {\n\t\t return this._initNumber(number, base, endian);\n\t\t }\n\n\t\t if (typeof number === 'object') {\n\t\t return this._initArray(number, base, endian);\n\t\t }\n\n\t\t if (base === 'hex') {\n\t\t base = 16;\n\t\t }\n\t\t assert(base === (base | 0) && base >= 2 && base <= 36);\n\n\t\t number = number.toString().replace(/\\s+/g, '');\n\t\t var start = 0;\n\t\t if (number[0] === '-') {\n\t\t start++;\n\t\t this.negative = 1;\n\t\t }\n\n\t\t if (start < number.length) {\n\t\t if (base === 16) {\n\t\t this._parseHex(number, start, endian);\n\t\t } else {\n\t\t this._parseBase(number, base, start);\n\t\t if (endian === 'le') {\n\t\t this._initArray(this.toArray(), base, endian);\n\t\t }\n\t\t }\n\t\t }\n\t\t };\n\n\t\t BN.prototype._initNumber = function _initNumber (number, base, endian) {\n\t\t if (number < 0) {\n\t\t this.negative = 1;\n\t\t number = -number;\n\t\t }\n\t\t if (number < 0x4000000) {\n\t\t this.words = [number & 0x3ffffff];\n\t\t this.length = 1;\n\t\t } else if (number < 0x10000000000000) {\n\t\t this.words = [\n\t\t number & 0x3ffffff,\n\t\t (number / 0x4000000) & 0x3ffffff\n\t\t ];\n\t\t this.length = 2;\n\t\t } else {\n\t\t assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\t\t this.words = [\n\t\t number & 0x3ffffff,\n\t\t (number / 0x4000000) & 0x3ffffff,\n\t\t 1\n\t\t ];\n\t\t this.length = 3;\n\t\t }\n\n\t\t if (endian !== 'le') return;\n\n\t\t // Reverse the bytes\n\t\t this._initArray(this.toArray(), base, endian);\n\t\t };\n\n\t\t BN.prototype._initArray = function _initArray (number, base, endian) {\n\t\t // Perhaps a Uint8Array\n\t\t assert(typeof number.length === 'number');\n\t\t if (number.length <= 0) {\n\t\t this.words = [0];\n\t\t this.length = 1;\n\t\t return this;\n\t\t }\n\n\t\t this.length = Math.ceil(number.length / 3);\n\t\t this.words = new Array(this.length);\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t this.words[i] = 0;\n\t\t }\n\n\t\t var j, w;\n\t\t var off = 0;\n\t\t if (endian === 'be') {\n\t\t for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n\t\t w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n\t\t this.words[j] |= (w << off) & 0x3ffffff;\n\t\t this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n\t\t off += 24;\n\t\t if (off >= 26) {\n\t\t off -= 26;\n\t\t j++;\n\t\t }\n\t\t }\n\t\t } else if (endian === 'le') {\n\t\t for (i = 0, j = 0; i < number.length; i += 3) {\n\t\t w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n\t\t this.words[j] |= (w << off) & 0x3ffffff;\n\t\t this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n\t\t off += 24;\n\t\t if (off >= 26) {\n\t\t off -= 26;\n\t\t j++;\n\t\t }\n\t\t }\n\t\t }\n\t\t return this._strip();\n\t\t };\n\n\t\t function parseHex4Bits (string, index) {\n\t\t var c = string.charCodeAt(index);\n\t\t // '0' - '9'\n\t\t if (c >= 48 && c <= 57) {\n\t\t return c - 48;\n\t\t // 'A' - 'F'\n\t\t } else if (c >= 65 && c <= 70) {\n\t\t return c - 55;\n\t\t // 'a' - 'f'\n\t\t } else if (c >= 97 && c <= 102) {\n\t\t return c - 87;\n\t\t } else {\n\t\t assert(false, 'Invalid character in ' + string);\n\t\t }\n\t\t }\n\n\t\t function parseHexByte (string, lowerBound, index) {\n\t\t var r = parseHex4Bits(string, index);\n\t\t if (index - 1 >= lowerBound) {\n\t\t r |= parseHex4Bits(string, index - 1) << 4;\n\t\t }\n\t\t return r;\n\t\t }\n\n\t\t BN.prototype._parseHex = function _parseHex (number, start, endian) {\n\t\t // Create possibly bigger array to ensure that it fits the number\n\t\t this.length = Math.ceil((number.length - start) / 6);\n\t\t this.words = new Array(this.length);\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t this.words[i] = 0;\n\t\t }\n\n\t\t // 24-bits chunks\n\t\t var off = 0;\n\t\t var j = 0;\n\n\t\t var w;\n\t\t if (endian === 'be') {\n\t\t for (i = number.length - 1; i >= start; i -= 2) {\n\t\t w = parseHexByte(number, start, i) << off;\n\t\t this.words[j] |= w & 0x3ffffff;\n\t\t if (off >= 18) {\n\t\t off -= 18;\n\t\t j += 1;\n\t\t this.words[j] |= w >>> 26;\n\t\t } else {\n\t\t off += 8;\n\t\t }\n\t\t }\n\t\t } else {\n\t\t var parseLength = number.length - start;\n\t\t for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n\t\t w = parseHexByte(number, start, i) << off;\n\t\t this.words[j] |= w & 0x3ffffff;\n\t\t if (off >= 18) {\n\t\t off -= 18;\n\t\t j += 1;\n\t\t this.words[j] |= w >>> 26;\n\t\t } else {\n\t\t off += 8;\n\t\t }\n\t\t }\n\t\t }\n\n\t\t this._strip();\n\t\t };\n\n\t\t function parseBase (str, start, end, mul) {\n\t\t var r = 0;\n\t\t var b = 0;\n\t\t var len = Math.min(str.length, end);\n\t\t for (var i = start; i < len; i++) {\n\t\t var c = str.charCodeAt(i) - 48;\n\n\t\t r *= mul;\n\n\t\t // 'a'\n\t\t if (c >= 49) {\n\t\t b = c - 49 + 0xa;\n\n\t\t // 'A'\n\t\t } else if (c >= 17) {\n\t\t b = c - 17 + 0xa;\n\n\t\t // '0' - '9'\n\t\t } else {\n\t\t b = c;\n\t\t }\n\t\t assert(c >= 0 && b < mul, 'Invalid character');\n\t\t r += b;\n\t\t }\n\t\t return r;\n\t\t }\n\n\t\t BN.prototype._parseBase = function _parseBase (number, base, start) {\n\t\t // Initialize as zero\n\t\t this.words = [0];\n\t\t this.length = 1;\n\n\t\t // Find length of limb in base\n\t\t for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n\t\t limbLen++;\n\t\t }\n\t\t limbLen--;\n\t\t limbPow = (limbPow / base) | 0;\n\n\t\t var total = number.length - start;\n\t\t var mod = total % limbLen;\n\t\t var end = Math.min(total, total - mod) + start;\n\n\t\t var word = 0;\n\t\t for (var i = start; i < end; i += limbLen) {\n\t\t word = parseBase(number, i, i + limbLen, base);\n\n\t\t this.imuln(limbPow);\n\t\t if (this.words[0] + word < 0x4000000) {\n\t\t this.words[0] += word;\n\t\t } else {\n\t\t this._iaddn(word);\n\t\t }\n\t\t }\n\n\t\t if (mod !== 0) {\n\t\t var pow = 1;\n\t\t word = parseBase(number, i, number.length, base);\n\n\t\t for (i = 0; i < mod; i++) {\n\t\t pow *= base;\n\t\t }\n\n\t\t this.imuln(pow);\n\t\t if (this.words[0] + word < 0x4000000) {\n\t\t this.words[0] += word;\n\t\t } else {\n\t\t this._iaddn(word);\n\t\t }\n\t\t }\n\n\t\t this._strip();\n\t\t };\n\n\t\t BN.prototype.copy = function copy (dest) {\n\t\t dest.words = new Array(this.length);\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t dest.words[i] = this.words[i];\n\t\t }\n\t\t dest.length = this.length;\n\t\t dest.negative = this.negative;\n\t\t dest.red = this.red;\n\t\t };\n\n\t\t function move (dest, src) {\n\t\t dest.words = src.words;\n\t\t dest.length = src.length;\n\t\t dest.negative = src.negative;\n\t\t dest.red = src.red;\n\t\t }\n\n\t\t BN.prototype._move = function _move (dest) {\n\t\t move(dest, this);\n\t\t };\n\n\t\t BN.prototype.clone = function clone () {\n\t\t var r = new BN(null);\n\t\t this.copy(r);\n\t\t return r;\n\t\t };\n\n\t\t BN.prototype._expand = function _expand (size) {\n\t\t while (this.length < size) {\n\t\t this.words[this.length++] = 0;\n\t\t }\n\t\t return this;\n\t\t };\n\n\t\t // Remove leading `0` from `this`\n\t\t BN.prototype._strip = function strip () {\n\t\t while (this.length > 1 && this.words[this.length - 1] === 0) {\n\t\t this.length--;\n\t\t }\n\t\t return this._normSign();\n\t\t };\n\n\t\t BN.prototype._normSign = function _normSign () {\n\t\t // -0 = 0\n\t\t if (this.length === 1 && this.words[0] === 0) {\n\t\t this.negative = 0;\n\t\t }\n\t\t return this;\n\t\t };\n\n\t\t // Check Symbol.for because not everywhere where Symbol defined\n\t\t // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n\t\t if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n\t\t try {\n\t\t BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n\t\t } catch (e) {\n\t\t BN.prototype.inspect = inspect;\n\t\t }\n\t\t } else {\n\t\t BN.prototype.inspect = inspect;\n\t\t }\n\n\t\t function inspect () {\n\t\t return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n\t\t }\n\n\t\t /*\n\n\t\t var zeros = [];\n\t\t var groupSizes = [];\n\t\t var groupBases = [];\n\n\t\t var s = '';\n\t\t var i = -1;\n\t\t while (++i < BN.wordSize) {\n\t\t zeros[i] = s;\n\t\t s += '0';\n\t\t }\n\t\t groupSizes[0] = 0;\n\t\t groupSizes[1] = 0;\n\t\t groupBases[0] = 0;\n\t\t groupBases[1] = 0;\n\t\t var base = 2 - 1;\n\t\t while (++base < 36 + 1) {\n\t\t var groupSize = 0;\n\t\t var groupBase = 1;\n\t\t while (groupBase < (1 << BN.wordSize) / base) {\n\t\t groupBase *= base;\n\t\t groupSize += 1;\n\t\t }\n\t\t groupSizes[base] = groupSize;\n\t\t groupBases[base] = groupBase;\n\t\t }\n\n\t\t */\n\n\t\t var zeros = [\n\t\t '',\n\t\t '0',\n\t\t '00',\n\t\t '000',\n\t\t '0000',\n\t\t '00000',\n\t\t '000000',\n\t\t '0000000',\n\t\t '00000000',\n\t\t '000000000',\n\t\t '0000000000',\n\t\t '00000000000',\n\t\t '000000000000',\n\t\t '0000000000000',\n\t\t '00000000000000',\n\t\t '000000000000000',\n\t\t '0000000000000000',\n\t\t '00000000000000000',\n\t\t '000000000000000000',\n\t\t '0000000000000000000',\n\t\t '00000000000000000000',\n\t\t '000000000000000000000',\n\t\t '0000000000000000000000',\n\t\t '00000000000000000000000',\n\t\t '000000000000000000000000',\n\t\t '0000000000000000000000000'\n\t\t ];\n\n\t\t var groupSizes = [\n\t\t 0, 0,\n\t\t 25, 16, 12, 11, 10, 9, 8,\n\t\t 8, 7, 7, 7, 7, 6, 6,\n\t\t 6, 6, 6, 6, 6, 5, 5,\n\t\t 5, 5, 5, 5, 5, 5, 5,\n\t\t 5, 5, 5, 5, 5, 5, 5\n\t\t ];\n\n\t\t var groupBases = [\n\t\t 0, 0,\n\t\t 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n\t\t 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n\t\t 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n\t\t 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n\t\t 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n\t\t ];\n\n\t\t BN.prototype.toString = function toString (base, padding) {\n\t\t base = base || 10;\n\t\t padding = padding | 0 || 1;\n\n\t\t var out;\n\t\t if (base === 16 || base === 'hex') {\n\t\t out = '';\n\t\t var off = 0;\n\t\t var carry = 0;\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t var w = this.words[i];\n\t\t var word = (((w << off) | carry) & 0xffffff).toString(16);\n\t\t carry = (w >>> (24 - off)) & 0xffffff;\n\t\t off += 2;\n\t\t if (off >= 26) {\n\t\t off -= 26;\n\t\t i--;\n\t\t }\n\t\t if (carry !== 0 || i !== this.length - 1) {\n\t\t out = zeros[6 - word.length] + word + out;\n\t\t } else {\n\t\t out = word + out;\n\t\t }\n\t\t }\n\t\t if (carry !== 0) {\n\t\t out = carry.toString(16) + out;\n\t\t }\n\t\t while (out.length % padding !== 0) {\n\t\t out = '0' + out;\n\t\t }\n\t\t if (this.negative !== 0) {\n\t\t out = '-' + out;\n\t\t }\n\t\t return out;\n\t\t }\n\n\t\t if (base === (base | 0) && base >= 2 && base <= 36) {\n\t\t // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n\t\t var groupSize = groupSizes[base];\n\t\t // var groupBase = Math.pow(base, groupSize);\n\t\t var groupBase = groupBases[base];\n\t\t out = '';\n\t\t var c = this.clone();\n\t\t c.negative = 0;\n\t\t while (!c.isZero()) {\n\t\t var r = c.modrn(groupBase).toString(base);\n\t\t c = c.idivn(groupBase);\n\n\t\t if (!c.isZero()) {\n\t\t out = zeros[groupSize - r.length] + r + out;\n\t\t } else {\n\t\t out = r + out;\n\t\t }\n\t\t }\n\t\t if (this.isZero()) {\n\t\t out = '0' + out;\n\t\t }\n\t\t while (out.length % padding !== 0) {\n\t\t out = '0' + out;\n\t\t }\n\t\t if (this.negative !== 0) {\n\t\t out = '-' + out;\n\t\t }\n\t\t return out;\n\t\t }\n\n\t\t assert(false, 'Base should be between 2 and 36');\n\t\t };\n\n\t\t BN.prototype.toNumber = function toNumber () {\n\t\t var ret = this.words[0];\n\t\t if (this.length === 2) {\n\t\t ret += this.words[1] * 0x4000000;\n\t\t } else if (this.length === 3 && this.words[2] === 0x01) {\n\t\t // NOTE: at this stage it is known that the top bit is set\n\t\t ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n\t\t } else if (this.length > 2) {\n\t\t assert(false, 'Number can only safely store up to 53 bits');\n\t\t }\n\t\t return (this.negative !== 0) ? -ret : ret;\n\t\t };\n\n\t\t BN.prototype.toJSON = function toJSON () {\n\t\t return this.toString(16, 2);\n\t\t };\n\n\t\t if (Buffer) {\n\t\t BN.prototype.toBuffer = function toBuffer (endian, length) {\n\t\t return this.toArrayLike(Buffer, endian, length);\n\t\t };\n\t\t }\n\n\t\t BN.prototype.toArray = function toArray (endian, length) {\n\t\t return this.toArrayLike(Array, endian, length);\n\t\t };\n\n\t\t var allocate = function allocate (ArrayType, size) {\n\t\t if (ArrayType.allocUnsafe) {\n\t\t return ArrayType.allocUnsafe(size);\n\t\t }\n\t\t return new ArrayType(size);\n\t\t };\n\n\t\t BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n\t\t this._strip();\n\n\t\t var byteLength = this.byteLength();\n\t\t var reqLength = length || Math.max(1, byteLength);\n\t\t assert(byteLength <= reqLength, 'byte array longer than desired length');\n\t\t assert(reqLength > 0, 'Requested array length <= 0');\n\n\t\t var res = allocate(ArrayType, reqLength);\n\t\t var postfix = endian === 'le' ? 'LE' : 'BE';\n\t\t this['_toArrayLike' + postfix](res, byteLength);\n\t\t return res;\n\t\t };\n\n\t\t BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n\t\t var position = 0;\n\t\t var carry = 0;\n\n\t\t for (var i = 0, shift = 0; i < this.length; i++) {\n\t\t var word = (this.words[i] << shift) | carry;\n\n\t\t res[position++] = word & 0xff;\n\t\t if (position < res.length) {\n\t\t res[position++] = (word >> 8) & 0xff;\n\t\t }\n\t\t if (position < res.length) {\n\t\t res[position++] = (word >> 16) & 0xff;\n\t\t }\n\n\t\t if (shift === 6) {\n\t\t if (position < res.length) {\n\t\t res[position++] = (word >> 24) & 0xff;\n\t\t }\n\t\t carry = 0;\n\t\t shift = 0;\n\t\t } else {\n\t\t carry = word >>> 24;\n\t\t shift += 2;\n\t\t }\n\t\t }\n\n\t\t if (position < res.length) {\n\t\t res[position++] = carry;\n\n\t\t while (position < res.length) {\n\t\t res[position++] = 0;\n\t\t }\n\t\t }\n\t\t };\n\n\t\t BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n\t\t var position = res.length - 1;\n\t\t var carry = 0;\n\n\t\t for (var i = 0, shift = 0; i < this.length; i++) {\n\t\t var word = (this.words[i] << shift) | carry;\n\n\t\t res[position--] = word & 0xff;\n\t\t if (position >= 0) {\n\t\t res[position--] = (word >> 8) & 0xff;\n\t\t }\n\t\t if (position >= 0) {\n\t\t res[position--] = (word >> 16) & 0xff;\n\t\t }\n\n\t\t if (shift === 6) {\n\t\t if (position >= 0) {\n\t\t res[position--] = (word >> 24) & 0xff;\n\t\t }\n\t\t carry = 0;\n\t\t shift = 0;\n\t\t } else {\n\t\t carry = word >>> 24;\n\t\t shift += 2;\n\t\t }\n\t\t }\n\n\t\t if (position >= 0) {\n\t\t res[position--] = carry;\n\n\t\t while (position >= 0) {\n\t\t res[position--] = 0;\n\t\t }\n\t\t }\n\t\t };\n\n\t\t if (Math.clz32) {\n\t\t BN.prototype._countBits = function _countBits (w) {\n\t\t return 32 - Math.clz32(w);\n\t\t };\n\t\t } else {\n\t\t BN.prototype._countBits = function _countBits (w) {\n\t\t var t = w;\n\t\t var r = 0;\n\t\t if (t >= 0x1000) {\n\t\t r += 13;\n\t\t t >>>= 13;\n\t\t }\n\t\t if (t >= 0x40) {\n\t\t r += 7;\n\t\t t >>>= 7;\n\t\t }\n\t\t if (t >= 0x8) {\n\t\t r += 4;\n\t\t t >>>= 4;\n\t\t }\n\t\t if (t >= 0x02) {\n\t\t r += 2;\n\t\t t >>>= 2;\n\t\t }\n\t\t return r + t;\n\t\t };\n\t\t }\n\n\t\t BN.prototype._zeroBits = function _zeroBits (w) {\n\t\t // Short-cut\n\t\t if (w === 0) return 26;\n\n\t\t var t = w;\n\t\t var r = 0;\n\t\t if ((t & 0x1fff) === 0) {\n\t\t r += 13;\n\t\t t >>>= 13;\n\t\t }\n\t\t if ((t & 0x7f) === 0) {\n\t\t r += 7;\n\t\t t >>>= 7;\n\t\t }\n\t\t if ((t & 0xf) === 0) {\n\t\t r += 4;\n\t\t t >>>= 4;\n\t\t }\n\t\t if ((t & 0x3) === 0) {\n\t\t r += 2;\n\t\t t >>>= 2;\n\t\t }\n\t\t if ((t & 0x1) === 0) {\n\t\t r++;\n\t\t }\n\t\t return r;\n\t\t };\n\n\t\t // Return number of used bits in a BN\n\t\t BN.prototype.bitLength = function bitLength () {\n\t\t var w = this.words[this.length - 1];\n\t\t var hi = this._countBits(w);\n\t\t return (this.length - 1) * 26 + hi;\n\t\t };\n\n\t\t function toBitArray (num) {\n\t\t var w = new Array(num.bitLength());\n\n\t\t for (var bit = 0; bit < w.length; bit++) {\n\t\t var off = (bit / 26) | 0;\n\t\t var wbit = bit % 26;\n\n\t\t w[bit] = (num.words[off] >>> wbit) & 0x01;\n\t\t }\n\n\t\t return w;\n\t\t }\n\n\t\t // Number of trailing zero bits\n\t\t BN.prototype.zeroBits = function zeroBits () {\n\t\t if (this.isZero()) return 0;\n\n\t\t var r = 0;\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t var b = this._zeroBits(this.words[i]);\n\t\t r += b;\n\t\t if (b !== 26) break;\n\t\t }\n\t\t return r;\n\t\t };\n\n\t\t BN.prototype.byteLength = function byteLength () {\n\t\t return Math.ceil(this.bitLength() / 8);\n\t\t };\n\n\t\t BN.prototype.toTwos = function toTwos (width) {\n\t\t if (this.negative !== 0) {\n\t\t return this.abs().inotn(width).iaddn(1);\n\t\t }\n\t\t return this.clone();\n\t\t };\n\n\t\t BN.prototype.fromTwos = function fromTwos (width) {\n\t\t if (this.testn(width - 1)) {\n\t\t return this.notn(width).iaddn(1).ineg();\n\t\t }\n\t\t return this.clone();\n\t\t };\n\n\t\t BN.prototype.isNeg = function isNeg () {\n\t\t return this.negative !== 0;\n\t\t };\n\n\t\t // Return negative clone of `this`\n\t\t BN.prototype.neg = function neg () {\n\t\t return this.clone().ineg();\n\t\t };\n\n\t\t BN.prototype.ineg = function ineg () {\n\t\t if (!this.isZero()) {\n\t\t this.negative ^= 1;\n\t\t }\n\n\t\t return this;\n\t\t };\n\n\t\t // Or `num` with `this` in-place\n\t\t BN.prototype.iuor = function iuor (num) {\n\t\t while (this.length < num.length) {\n\t\t this.words[this.length++] = 0;\n\t\t }\n\n\t\t for (var i = 0; i < num.length; i++) {\n\t\t this.words[i] = this.words[i] | num.words[i];\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.ior = function ior (num) {\n\t\t assert((this.negative | num.negative) === 0);\n\t\t return this.iuor(num);\n\t\t };\n\n\t\t // Or `num` with `this`\n\t\t BN.prototype.or = function or (num) {\n\t\t if (this.length > num.length) return this.clone().ior(num);\n\t\t return num.clone().ior(this);\n\t\t };\n\n\t\t BN.prototype.uor = function uor (num) {\n\t\t if (this.length > num.length) return this.clone().iuor(num);\n\t\t return num.clone().iuor(this);\n\t\t };\n\n\t\t // And `num` with `this` in-place\n\t\t BN.prototype.iuand = function iuand (num) {\n\t\t // b = min-length(num, this)\n\t\t var b;\n\t\t if (this.length > num.length) {\n\t\t b = num;\n\t\t } else {\n\t\t b = this;\n\t\t }\n\n\t\t for (var i = 0; i < b.length; i++) {\n\t\t this.words[i] = this.words[i] & num.words[i];\n\t\t }\n\n\t\t this.length = b.length;\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.iand = function iand (num) {\n\t\t assert((this.negative | num.negative) === 0);\n\t\t return this.iuand(num);\n\t\t };\n\n\t\t // And `num` with `this`\n\t\t BN.prototype.and = function and (num) {\n\t\t if (this.length > num.length) return this.clone().iand(num);\n\t\t return num.clone().iand(this);\n\t\t };\n\n\t\t BN.prototype.uand = function uand (num) {\n\t\t if (this.length > num.length) return this.clone().iuand(num);\n\t\t return num.clone().iuand(this);\n\t\t };\n\n\t\t // Xor `num` with `this` in-place\n\t\t BN.prototype.iuxor = function iuxor (num) {\n\t\t // a.length > b.length\n\t\t var a;\n\t\t var b;\n\t\t if (this.length > num.length) {\n\t\t a = this;\n\t\t b = num;\n\t\t } else {\n\t\t a = num;\n\t\t b = this;\n\t\t }\n\n\t\t for (var i = 0; i < b.length; i++) {\n\t\t this.words[i] = a.words[i] ^ b.words[i];\n\t\t }\n\n\t\t if (this !== a) {\n\t\t for (; i < a.length; i++) {\n\t\t this.words[i] = a.words[i];\n\t\t }\n\t\t }\n\n\t\t this.length = a.length;\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.ixor = function ixor (num) {\n\t\t assert((this.negative | num.negative) === 0);\n\t\t return this.iuxor(num);\n\t\t };\n\n\t\t // Xor `num` with `this`\n\t\t BN.prototype.xor = function xor (num) {\n\t\t if (this.length > num.length) return this.clone().ixor(num);\n\t\t return num.clone().ixor(this);\n\t\t };\n\n\t\t BN.prototype.uxor = function uxor (num) {\n\t\t if (this.length > num.length) return this.clone().iuxor(num);\n\t\t return num.clone().iuxor(this);\n\t\t };\n\n\t\t // Not ``this`` with ``width`` bitwidth\n\t\t BN.prototype.inotn = function inotn (width) {\n\t\t assert(typeof width === 'number' && width >= 0);\n\n\t\t var bytesNeeded = Math.ceil(width / 26) | 0;\n\t\t var bitsLeft = width % 26;\n\n\t\t // Extend the buffer with leading zeroes\n\t\t this._expand(bytesNeeded);\n\n\t\t if (bitsLeft > 0) {\n\t\t bytesNeeded--;\n\t\t }\n\n\t\t // Handle complete words\n\t\t for (var i = 0; i < bytesNeeded; i++) {\n\t\t this.words[i] = ~this.words[i] & 0x3ffffff;\n\t\t }\n\n\t\t // Handle the residue\n\t\t if (bitsLeft > 0) {\n\t\t this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n\t\t }\n\n\t\t // And remove leading zeroes\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.notn = function notn (width) {\n\t\t return this.clone().inotn(width);\n\t\t };\n\n\t\t // Set `bit` of `this`\n\t\t BN.prototype.setn = function setn (bit, val) {\n\t\t assert(typeof bit === 'number' && bit >= 0);\n\n\t\t var off = (bit / 26) | 0;\n\t\t var wbit = bit % 26;\n\n\t\t this._expand(off + 1);\n\n\t\t if (val) {\n\t\t this.words[off] = this.words[off] | (1 << wbit);\n\t\t } else {\n\t\t this.words[off] = this.words[off] & ~(1 << wbit);\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t // Add `num` to `this` in-place\n\t\t BN.prototype.iadd = function iadd (num) {\n\t\t var r;\n\n\t\t // negative + positive\n\t\t if (this.negative !== 0 && num.negative === 0) {\n\t\t this.negative = 0;\n\t\t r = this.isub(num);\n\t\t this.negative ^= 1;\n\t\t return this._normSign();\n\n\t\t // positive + negative\n\t\t } else if (this.negative === 0 && num.negative !== 0) {\n\t\t num.negative = 0;\n\t\t r = this.isub(num);\n\t\t num.negative = 1;\n\t\t return r._normSign();\n\t\t }\n\n\t\t // a.length > b.length\n\t\t var a, b;\n\t\t if (this.length > num.length) {\n\t\t a = this;\n\t\t b = num;\n\t\t } else {\n\t\t a = num;\n\t\t b = this;\n\t\t }\n\n\t\t var carry = 0;\n\t\t for (var i = 0; i < b.length; i++) {\n\t\t r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n\t\t this.words[i] = r & 0x3ffffff;\n\t\t carry = r >>> 26;\n\t\t }\n\t\t for (; carry !== 0 && i < a.length; i++) {\n\t\t r = (a.words[i] | 0) + carry;\n\t\t this.words[i] = r & 0x3ffffff;\n\t\t carry = r >>> 26;\n\t\t }\n\n\t\t this.length = a.length;\n\t\t if (carry !== 0) {\n\t\t this.words[this.length] = carry;\n\t\t this.length++;\n\t\t // Copy the rest of the words\n\t\t } else if (a !== this) {\n\t\t for (; i < a.length; i++) {\n\t\t this.words[i] = a.words[i];\n\t\t }\n\t\t }\n\n\t\t return this;\n\t\t };\n\n\t\t // Add `num` to `this`\n\t\t BN.prototype.add = function add (num) {\n\t\t var res;\n\t\t if (num.negative !== 0 && this.negative === 0) {\n\t\t num.negative = 0;\n\t\t res = this.sub(num);\n\t\t num.negative ^= 1;\n\t\t return res;\n\t\t } else if (num.negative === 0 && this.negative !== 0) {\n\t\t this.negative = 0;\n\t\t res = num.sub(this);\n\t\t this.negative = 1;\n\t\t return res;\n\t\t }\n\n\t\t if (this.length > num.length) return this.clone().iadd(num);\n\n\t\t return num.clone().iadd(this);\n\t\t };\n\n\t\t // Subtract `num` from `this` in-place\n\t\t BN.prototype.isub = function isub (num) {\n\t\t // this - (-num) = this + num\n\t\t if (num.negative !== 0) {\n\t\t num.negative = 0;\n\t\t var r = this.iadd(num);\n\t\t num.negative = 1;\n\t\t return r._normSign();\n\n\t\t // -this - num = -(this + num)\n\t\t } else if (this.negative !== 0) {\n\t\t this.negative = 0;\n\t\t this.iadd(num);\n\t\t this.negative = 1;\n\t\t return this._normSign();\n\t\t }\n\n\t\t // At this point both numbers are positive\n\t\t var cmp = this.cmp(num);\n\n\t\t // Optimization - zeroify\n\t\t if (cmp === 0) {\n\t\t this.negative = 0;\n\t\t this.length = 1;\n\t\t this.words[0] = 0;\n\t\t return this;\n\t\t }\n\n\t\t // a > b\n\t\t var a, b;\n\t\t if (cmp > 0) {\n\t\t a = this;\n\t\t b = num;\n\t\t } else {\n\t\t a = num;\n\t\t b = this;\n\t\t }\n\n\t\t var carry = 0;\n\t\t for (var i = 0; i < b.length; i++) {\n\t\t r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n\t\t carry = r >> 26;\n\t\t this.words[i] = r & 0x3ffffff;\n\t\t }\n\t\t for (; carry !== 0 && i < a.length; i++) {\n\t\t r = (a.words[i] | 0) + carry;\n\t\t carry = r >> 26;\n\t\t this.words[i] = r & 0x3ffffff;\n\t\t }\n\n\t\t // Copy rest of the words\n\t\t if (carry === 0 && i < a.length && a !== this) {\n\t\t for (; i < a.length; i++) {\n\t\t this.words[i] = a.words[i];\n\t\t }\n\t\t }\n\n\t\t this.length = Math.max(this.length, i);\n\n\t\t if (a !== this) {\n\t\t this.negative = 1;\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t // Subtract `num` from `this`\n\t\t BN.prototype.sub = function sub (num) {\n\t\t return this.clone().isub(num);\n\t\t };\n\n\t\t function smallMulTo (self, num, out) {\n\t\t out.negative = num.negative ^ self.negative;\n\t\t var len = (self.length + num.length) | 0;\n\t\t out.length = len;\n\t\t len = (len - 1) | 0;\n\n\t\t // Peel one iteration (compiler can't do it, because of code complexity)\n\t\t var a = self.words[0] | 0;\n\t\t var b = num.words[0] | 0;\n\t\t var r = a * b;\n\n\t\t var lo = r & 0x3ffffff;\n\t\t var carry = (r / 0x4000000) | 0;\n\t\t out.words[0] = lo;\n\n\t\t for (var k = 1; k < len; k++) {\n\t\t // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n\t\t // note that ncarry could be >= 0x3ffffff\n\t\t var ncarry = carry >>> 26;\n\t\t var rword = carry & 0x3ffffff;\n\t\t var maxJ = Math.min(k, num.length - 1);\n\t\t for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n\t\t var i = (k - j) | 0;\n\t\t a = self.words[i] | 0;\n\t\t b = num.words[j] | 0;\n\t\t r = a * b + rword;\n\t\t ncarry += (r / 0x4000000) | 0;\n\t\t rword = r & 0x3ffffff;\n\t\t }\n\t\t out.words[k] = rword | 0;\n\t\t carry = ncarry | 0;\n\t\t }\n\t\t if (carry !== 0) {\n\t\t out.words[k] = carry | 0;\n\t\t } else {\n\t\t out.length--;\n\t\t }\n\n\t\t return out._strip();\n\t\t }\n\n\t\t // TODO(indutny): it may be reasonable to omit it for users who don't need\n\t\t // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n\t\t // multiplication (like elliptic secp256k1).\n\t\t var comb10MulTo = function comb10MulTo (self, num, out) {\n\t\t var a = self.words;\n\t\t var b = num.words;\n\t\t var o = out.words;\n\t\t var c = 0;\n\t\t var lo;\n\t\t var mid;\n\t\t var hi;\n\t\t var a0 = a[0] | 0;\n\t\t var al0 = a0 & 0x1fff;\n\t\t var ah0 = a0 >>> 13;\n\t\t var a1 = a[1] | 0;\n\t\t var al1 = a1 & 0x1fff;\n\t\t var ah1 = a1 >>> 13;\n\t\t var a2 = a[2] | 0;\n\t\t var al2 = a2 & 0x1fff;\n\t\t var ah2 = a2 >>> 13;\n\t\t var a3 = a[3] | 0;\n\t\t var al3 = a3 & 0x1fff;\n\t\t var ah3 = a3 >>> 13;\n\t\t var a4 = a[4] | 0;\n\t\t var al4 = a4 & 0x1fff;\n\t\t var ah4 = a4 >>> 13;\n\t\t var a5 = a[5] | 0;\n\t\t var al5 = a5 & 0x1fff;\n\t\t var ah5 = a5 >>> 13;\n\t\t var a6 = a[6] | 0;\n\t\t var al6 = a6 & 0x1fff;\n\t\t var ah6 = a6 >>> 13;\n\t\t var a7 = a[7] | 0;\n\t\t var al7 = a7 & 0x1fff;\n\t\t var ah7 = a7 >>> 13;\n\t\t var a8 = a[8] | 0;\n\t\t var al8 = a8 & 0x1fff;\n\t\t var ah8 = a8 >>> 13;\n\t\t var a9 = a[9] | 0;\n\t\t var al9 = a9 & 0x1fff;\n\t\t var ah9 = a9 >>> 13;\n\t\t var b0 = b[0] | 0;\n\t\t var bl0 = b0 & 0x1fff;\n\t\t var bh0 = b0 >>> 13;\n\t\t var b1 = b[1] | 0;\n\t\t var bl1 = b1 & 0x1fff;\n\t\t var bh1 = b1 >>> 13;\n\t\t var b2 = b[2] | 0;\n\t\t var bl2 = b2 & 0x1fff;\n\t\t var bh2 = b2 >>> 13;\n\t\t var b3 = b[3] | 0;\n\t\t var bl3 = b3 & 0x1fff;\n\t\t var bh3 = b3 >>> 13;\n\t\t var b4 = b[4] | 0;\n\t\t var bl4 = b4 & 0x1fff;\n\t\t var bh4 = b4 >>> 13;\n\t\t var b5 = b[5] | 0;\n\t\t var bl5 = b5 & 0x1fff;\n\t\t var bh5 = b5 >>> 13;\n\t\t var b6 = b[6] | 0;\n\t\t var bl6 = b6 & 0x1fff;\n\t\t var bh6 = b6 >>> 13;\n\t\t var b7 = b[7] | 0;\n\t\t var bl7 = b7 & 0x1fff;\n\t\t var bh7 = b7 >>> 13;\n\t\t var b8 = b[8] | 0;\n\t\t var bl8 = b8 & 0x1fff;\n\t\t var bh8 = b8 >>> 13;\n\t\t var b9 = b[9] | 0;\n\t\t var bl9 = b9 & 0x1fff;\n\t\t var bh9 = b9 >>> 13;\n\n\t\t out.negative = self.negative ^ num.negative;\n\t\t out.length = 19;\n\t\t /* k = 0 */\n\t\t lo = Math.imul(al0, bl0);\n\t\t mid = Math.imul(al0, bh0);\n\t\t mid = (mid + Math.imul(ah0, bl0)) | 0;\n\t\t hi = Math.imul(ah0, bh0);\n\t\t var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n\t\t w0 &= 0x3ffffff;\n\t\t /* k = 1 */\n\t\t lo = Math.imul(al1, bl0);\n\t\t mid = Math.imul(al1, bh0);\n\t\t mid = (mid + Math.imul(ah1, bl0)) | 0;\n\t\t hi = Math.imul(ah1, bh0);\n\t\t lo = (lo + Math.imul(al0, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh1)) | 0;\n\t\t var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n\t\t w1 &= 0x3ffffff;\n\t\t /* k = 2 */\n\t\t lo = Math.imul(al2, bl0);\n\t\t mid = Math.imul(al2, bh0);\n\t\t mid = (mid + Math.imul(ah2, bl0)) | 0;\n\t\t hi = Math.imul(ah2, bh0);\n\t\t lo = (lo + Math.imul(al1, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh2)) | 0;\n\t\t var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n\t\t w2 &= 0x3ffffff;\n\t\t /* k = 3 */\n\t\t lo = Math.imul(al3, bl0);\n\t\t mid = Math.imul(al3, bh0);\n\t\t mid = (mid + Math.imul(ah3, bl0)) | 0;\n\t\t hi = Math.imul(ah3, bh0);\n\t\t lo = (lo + Math.imul(al2, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh3)) | 0;\n\t\t var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n\t\t w3 &= 0x3ffffff;\n\t\t /* k = 4 */\n\t\t lo = Math.imul(al4, bl0);\n\t\t mid = Math.imul(al4, bh0);\n\t\t mid = (mid + Math.imul(ah4, bl0)) | 0;\n\t\t hi = Math.imul(ah4, bh0);\n\t\t lo = (lo + Math.imul(al3, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh4)) | 0;\n\t\t var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n\t\t w4 &= 0x3ffffff;\n\t\t /* k = 5 */\n\t\t lo = Math.imul(al5, bl0);\n\t\t mid = Math.imul(al5, bh0);\n\t\t mid = (mid + Math.imul(ah5, bl0)) | 0;\n\t\t hi = Math.imul(ah5, bh0);\n\t\t lo = (lo + Math.imul(al4, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh5)) | 0;\n\t\t var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n\t\t w5 &= 0x3ffffff;\n\t\t /* k = 6 */\n\t\t lo = Math.imul(al6, bl0);\n\t\t mid = Math.imul(al6, bh0);\n\t\t mid = (mid + Math.imul(ah6, bl0)) | 0;\n\t\t hi = Math.imul(ah6, bh0);\n\t\t lo = (lo + Math.imul(al5, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh6)) | 0;\n\t\t var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n\t\t w6 &= 0x3ffffff;\n\t\t /* k = 7 */\n\t\t lo = Math.imul(al7, bl0);\n\t\t mid = Math.imul(al7, bh0);\n\t\t mid = (mid + Math.imul(ah7, bl0)) | 0;\n\t\t hi = Math.imul(ah7, bh0);\n\t\t lo = (lo + Math.imul(al6, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh7)) | 0;\n\t\t var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n\t\t w7 &= 0x3ffffff;\n\t\t /* k = 8 */\n\t\t lo = Math.imul(al8, bl0);\n\t\t mid = Math.imul(al8, bh0);\n\t\t mid = (mid + Math.imul(ah8, bl0)) | 0;\n\t\t hi = Math.imul(ah8, bh0);\n\t\t lo = (lo + Math.imul(al7, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh8)) | 0;\n\t\t var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n\t\t w8 &= 0x3ffffff;\n\t\t /* k = 9 */\n\t\t lo = Math.imul(al9, bl0);\n\t\t mid = Math.imul(al9, bh0);\n\t\t mid = (mid + Math.imul(ah9, bl0)) | 0;\n\t\t hi = Math.imul(ah9, bh0);\n\t\t lo = (lo + Math.imul(al8, bl1)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh1)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl1)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh1)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al0, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al0, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah0, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah0, bh9)) | 0;\n\t\t var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n\t\t w9 &= 0x3ffffff;\n\t\t /* k = 10 */\n\t\t lo = Math.imul(al9, bl1);\n\t\t mid = Math.imul(al9, bh1);\n\t\t mid = (mid + Math.imul(ah9, bl1)) | 0;\n\t\t hi = Math.imul(ah9, bh1);\n\t\t lo = (lo + Math.imul(al8, bl2)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh2)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl2)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh2)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al1, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al1, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah1, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah1, bh9)) | 0;\n\t\t var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n\t\t w10 &= 0x3ffffff;\n\t\t /* k = 11 */\n\t\t lo = Math.imul(al9, bl2);\n\t\t mid = Math.imul(al9, bh2);\n\t\t mid = (mid + Math.imul(ah9, bl2)) | 0;\n\t\t hi = Math.imul(ah9, bh2);\n\t\t lo = (lo + Math.imul(al8, bl3)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh3)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl3)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh3)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al2, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al2, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah2, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah2, bh9)) | 0;\n\t\t var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n\t\t w11 &= 0x3ffffff;\n\t\t /* k = 12 */\n\t\t lo = Math.imul(al9, bl3);\n\t\t mid = Math.imul(al9, bh3);\n\t\t mid = (mid + Math.imul(ah9, bl3)) | 0;\n\t\t hi = Math.imul(ah9, bh3);\n\t\t lo = (lo + Math.imul(al8, bl4)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh4)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl4)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh4)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al3, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al3, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah3, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah3, bh9)) | 0;\n\t\t var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n\t\t w12 &= 0x3ffffff;\n\t\t /* k = 13 */\n\t\t lo = Math.imul(al9, bl4);\n\t\t mid = Math.imul(al9, bh4);\n\t\t mid = (mid + Math.imul(ah9, bl4)) | 0;\n\t\t hi = Math.imul(ah9, bh4);\n\t\t lo = (lo + Math.imul(al8, bl5)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh5)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl5)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh5)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al4, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al4, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah4, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah4, bh9)) | 0;\n\t\t var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n\t\t w13 &= 0x3ffffff;\n\t\t /* k = 14 */\n\t\t lo = Math.imul(al9, bl5);\n\t\t mid = Math.imul(al9, bh5);\n\t\t mid = (mid + Math.imul(ah9, bl5)) | 0;\n\t\t hi = Math.imul(ah9, bh5);\n\t\t lo = (lo + Math.imul(al8, bl6)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh6)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl6)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh6)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al5, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al5, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah5, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah5, bh9)) | 0;\n\t\t var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n\t\t w14 &= 0x3ffffff;\n\t\t /* k = 15 */\n\t\t lo = Math.imul(al9, bl6);\n\t\t mid = Math.imul(al9, bh6);\n\t\t mid = (mid + Math.imul(ah9, bl6)) | 0;\n\t\t hi = Math.imul(ah9, bh6);\n\t\t lo = (lo + Math.imul(al8, bl7)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh7)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl7)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh7)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al6, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al6, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah6, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah6, bh9)) | 0;\n\t\t var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n\t\t w15 &= 0x3ffffff;\n\t\t /* k = 16 */\n\t\t lo = Math.imul(al9, bl7);\n\t\t mid = Math.imul(al9, bh7);\n\t\t mid = (mid + Math.imul(ah9, bl7)) | 0;\n\t\t hi = Math.imul(ah9, bh7);\n\t\t lo = (lo + Math.imul(al8, bl8)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh8)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl8)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh8)) | 0;\n\t\t lo = (lo + Math.imul(al7, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al7, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah7, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah7, bh9)) | 0;\n\t\t var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n\t\t w16 &= 0x3ffffff;\n\t\t /* k = 17 */\n\t\t lo = Math.imul(al9, bl8);\n\t\t mid = Math.imul(al9, bh8);\n\t\t mid = (mid + Math.imul(ah9, bl8)) | 0;\n\t\t hi = Math.imul(ah9, bh8);\n\t\t lo = (lo + Math.imul(al8, bl9)) | 0;\n\t\t mid = (mid + Math.imul(al8, bh9)) | 0;\n\t\t mid = (mid + Math.imul(ah8, bl9)) | 0;\n\t\t hi = (hi + Math.imul(ah8, bh9)) | 0;\n\t\t var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n\t\t w17 &= 0x3ffffff;\n\t\t /* k = 18 */\n\t\t lo = Math.imul(al9, bl9);\n\t\t mid = Math.imul(al9, bh9);\n\t\t mid = (mid + Math.imul(ah9, bl9)) | 0;\n\t\t hi = Math.imul(ah9, bh9);\n\t\t var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n\t\t c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n\t\t w18 &= 0x3ffffff;\n\t\t o[0] = w0;\n\t\t o[1] = w1;\n\t\t o[2] = w2;\n\t\t o[3] = w3;\n\t\t o[4] = w4;\n\t\t o[5] = w5;\n\t\t o[6] = w6;\n\t\t o[7] = w7;\n\t\t o[8] = w8;\n\t\t o[9] = w9;\n\t\t o[10] = w10;\n\t\t o[11] = w11;\n\t\t o[12] = w12;\n\t\t o[13] = w13;\n\t\t o[14] = w14;\n\t\t o[15] = w15;\n\t\t o[16] = w16;\n\t\t o[17] = w17;\n\t\t o[18] = w18;\n\t\t if (c !== 0) {\n\t\t o[19] = c;\n\t\t out.length++;\n\t\t }\n\t\t return out;\n\t\t };\n\n\t\t // Polyfill comb\n\t\t if (!Math.imul) {\n\t\t comb10MulTo = smallMulTo;\n\t\t }\n\n\t\t function bigMulTo (self, num, out) {\n\t\t out.negative = num.negative ^ self.negative;\n\t\t out.length = self.length + num.length;\n\n\t\t var carry = 0;\n\t\t var hncarry = 0;\n\t\t for (var k = 0; k < out.length - 1; k++) {\n\t\t // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n\t\t // note that ncarry could be >= 0x3ffffff\n\t\t var ncarry = hncarry;\n\t\t hncarry = 0;\n\t\t var rword = carry & 0x3ffffff;\n\t\t var maxJ = Math.min(k, num.length - 1);\n\t\t for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n\t\t var i = k - j;\n\t\t var a = self.words[i] | 0;\n\t\t var b = num.words[j] | 0;\n\t\t var r = a * b;\n\n\t\t var lo = r & 0x3ffffff;\n\t\t ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n\t\t lo = (lo + rword) | 0;\n\t\t rword = lo & 0x3ffffff;\n\t\t ncarry = (ncarry + (lo >>> 26)) | 0;\n\n\t\t hncarry += ncarry >>> 26;\n\t\t ncarry &= 0x3ffffff;\n\t\t }\n\t\t out.words[k] = rword;\n\t\t carry = ncarry;\n\t\t ncarry = hncarry;\n\t\t }\n\t\t if (carry !== 0) {\n\t\t out.words[k] = carry;\n\t\t } else {\n\t\t out.length--;\n\t\t }\n\n\t\t return out._strip();\n\t\t }\n\n\t\t function jumboMulTo (self, num, out) {\n\t\t // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n\t\t // var fftm = new FFTM();\n\t\t // return fftm.mulp(self, num, out);\n\t\t return bigMulTo(self, num, out);\n\t\t }\n\n\t\t BN.prototype.mulTo = function mulTo (num, out) {\n\t\t var res;\n\t\t var len = this.length + num.length;\n\t\t if (this.length === 10 && num.length === 10) {\n\t\t res = comb10MulTo(this, num, out);\n\t\t } else if (len < 63) {\n\t\t res = smallMulTo(this, num, out);\n\t\t } else if (len < 1024) {\n\t\t res = bigMulTo(this, num, out);\n\t\t } else {\n\t\t res = jumboMulTo(this, num, out);\n\t\t }\n\n\t\t return res;\n\t\t };\n\n\t\t // Multiply `this` by `num`\n\t\t BN.prototype.mul = function mul (num) {\n\t\t var out = new BN(null);\n\t\t out.words = new Array(this.length + num.length);\n\t\t return this.mulTo(num, out);\n\t\t };\n\n\t\t // Multiply employing FFT\n\t\t BN.prototype.mulf = function mulf (num) {\n\t\t var out = new BN(null);\n\t\t out.words = new Array(this.length + num.length);\n\t\t return jumboMulTo(this, num, out);\n\t\t };\n\n\t\t // In-place Multiplication\n\t\t BN.prototype.imul = function imul (num) {\n\t\t return this.clone().mulTo(num, this);\n\t\t };\n\n\t\t BN.prototype.imuln = function imuln (num) {\n\t\t var isNegNum = num < 0;\n\t\t if (isNegNum) num = -num;\n\n\t\t assert(typeof num === 'number');\n\t\t assert(num < 0x4000000);\n\n\t\t // Carry\n\t\t var carry = 0;\n\t\t for (var i = 0; i < this.length; i++) {\n\t\t var w = (this.words[i] | 0) * num;\n\t\t var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n\t\t carry >>= 26;\n\t\t carry += (w / 0x4000000) | 0;\n\t\t // NOTE: lo is 27bit maximum\n\t\t carry += lo >>> 26;\n\t\t this.words[i] = lo & 0x3ffffff;\n\t\t }\n\n\t\t if (carry !== 0) {\n\t\t this.words[i] = carry;\n\t\t this.length++;\n\t\t }\n\t\t this.length = num === 0 ? 1 : this.length;\n\n\t\t return isNegNum ? this.ineg() : this;\n\t\t };\n\n\t\t BN.prototype.muln = function muln (num) {\n\t\t return this.clone().imuln(num);\n\t\t };\n\n\t\t // `this` * `this`\n\t\t BN.prototype.sqr = function sqr () {\n\t\t return this.mul(this);\n\t\t };\n\n\t\t // `this` * `this` in-place\n\t\t BN.prototype.isqr = function isqr () {\n\t\t return this.imul(this.clone());\n\t\t };\n\n\t\t // Math.pow(`this`, `num`)\n\t\t BN.prototype.pow = function pow (num) {\n\t\t var w = toBitArray(num);\n\t\t if (w.length === 0) return new BN(1);\n\n\t\t // Skip leading zeroes\n\t\t var res = this;\n\t\t for (var i = 0; i < w.length; i++, res = res.sqr()) {\n\t\t if (w[i] !== 0) break;\n\t\t }\n\n\t\t if (++i < w.length) {\n\t\t for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n\t\t if (w[i] === 0) continue;\n\n\t\t res = res.mul(q);\n\t\t }\n\t\t }\n\n\t\t return res;\n\t\t };\n\n\t\t // Shift-left in-place\n\t\t BN.prototype.iushln = function iushln (bits) {\n\t\t assert(typeof bits === 'number' && bits >= 0);\n\t\t var r = bits % 26;\n\t\t var s = (bits - r) / 26;\n\t\t var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n\t\t var i;\n\n\t\t if (r !== 0) {\n\t\t var carry = 0;\n\n\t\t for (i = 0; i < this.length; i++) {\n\t\t var newCarry = this.words[i] & carryMask;\n\t\t var c = ((this.words[i] | 0) - newCarry) << r;\n\t\t this.words[i] = c | carry;\n\t\t carry = newCarry >>> (26 - r);\n\t\t }\n\n\t\t if (carry) {\n\t\t this.words[i] = carry;\n\t\t this.length++;\n\t\t }\n\t\t }\n\n\t\t if (s !== 0) {\n\t\t for (i = this.length - 1; i >= 0; i--) {\n\t\t this.words[i + s] = this.words[i];\n\t\t }\n\n\t\t for (i = 0; i < s; i++) {\n\t\t this.words[i] = 0;\n\t\t }\n\n\t\t this.length += s;\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.ishln = function ishln (bits) {\n\t\t // TODO(indutny): implement me\n\t\t assert(this.negative === 0);\n\t\t return this.iushln(bits);\n\t\t };\n\n\t\t // Shift-right in-place\n\t\t // NOTE: `hint` is a lowest bit before trailing zeroes\n\t\t // NOTE: if `extended` is present - it will be filled with destroyed bits\n\t\t BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n\t\t assert(typeof bits === 'number' && bits >= 0);\n\t\t var h;\n\t\t if (hint) {\n\t\t h = (hint - (hint % 26)) / 26;\n\t\t } else {\n\t\t h = 0;\n\t\t }\n\n\t\t var r = bits % 26;\n\t\t var s = Math.min((bits - r) / 26, this.length);\n\t\t var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n\t\t var maskedWords = extended;\n\n\t\t h -= s;\n\t\t h = Math.max(0, h);\n\n\t\t // Extended mode, copy masked part\n\t\t if (maskedWords) {\n\t\t for (var i = 0; i < s; i++) {\n\t\t maskedWords.words[i] = this.words[i];\n\t\t }\n\t\t maskedWords.length = s;\n\t\t }\n\n\t\t if (s === 0) ; else if (this.length > s) {\n\t\t this.length -= s;\n\t\t for (i = 0; i < this.length; i++) {\n\t\t this.words[i] = this.words[i + s];\n\t\t }\n\t\t } else {\n\t\t this.words[0] = 0;\n\t\t this.length = 1;\n\t\t }\n\n\t\t var carry = 0;\n\t\t for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n\t\t var word = this.words[i] | 0;\n\t\t this.words[i] = (carry << (26 - r)) | (word >>> r);\n\t\t carry = word & mask;\n\t\t }\n\n\t\t // Push carried bits as a mask\n\t\t if (maskedWords && carry !== 0) {\n\t\t maskedWords.words[maskedWords.length++] = carry;\n\t\t }\n\n\t\t if (this.length === 0) {\n\t\t this.words[0] = 0;\n\t\t this.length = 1;\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n\t\t // TODO(indutny): implement me\n\t\t assert(this.negative === 0);\n\t\t return this.iushrn(bits, hint, extended);\n\t\t };\n\n\t\t // Shift-left\n\t\t BN.prototype.shln = function shln (bits) {\n\t\t return this.clone().ishln(bits);\n\t\t };\n\n\t\t BN.prototype.ushln = function ushln (bits) {\n\t\t return this.clone().iushln(bits);\n\t\t };\n\n\t\t // Shift-right\n\t\t BN.prototype.shrn = function shrn (bits) {\n\t\t return this.clone().ishrn(bits);\n\t\t };\n\n\t\t BN.prototype.ushrn = function ushrn (bits) {\n\t\t return this.clone().iushrn(bits);\n\t\t };\n\n\t\t // Test if n bit is set\n\t\t BN.prototype.testn = function testn (bit) {\n\t\t assert(typeof bit === 'number' && bit >= 0);\n\t\t var r = bit % 26;\n\t\t var s = (bit - r) / 26;\n\t\t var q = 1 << r;\n\n\t\t // Fast case: bit is much higher than all existing words\n\t\t if (this.length <= s) return false;\n\n\t\t // Check bit and return\n\t\t var w = this.words[s];\n\n\t\t return !!(w & q);\n\t\t };\n\n\t\t // Return only lowers bits of number (in-place)\n\t\t BN.prototype.imaskn = function imaskn (bits) {\n\t\t assert(typeof bits === 'number' && bits >= 0);\n\t\t var r = bits % 26;\n\t\t var s = (bits - r) / 26;\n\n\t\t assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n\t\t if (this.length <= s) {\n\t\t return this;\n\t\t }\n\n\t\t if (r !== 0) {\n\t\t s++;\n\t\t }\n\t\t this.length = Math.min(s, this.length);\n\n\t\t if (r !== 0) {\n\t\t var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n\t\t this.words[this.length - 1] &= mask;\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t // Return only lowers bits of number\n\t\t BN.prototype.maskn = function maskn (bits) {\n\t\t return this.clone().imaskn(bits);\n\t\t };\n\n\t\t // Add plain number `num` to `this`\n\t\t BN.prototype.iaddn = function iaddn (num) {\n\t\t assert(typeof num === 'number');\n\t\t assert(num < 0x4000000);\n\t\t if (num < 0) return this.isubn(-num);\n\n\t\t // Possible sign change\n\t\t if (this.negative !== 0) {\n\t\t if (this.length === 1 && (this.words[0] | 0) <= num) {\n\t\t this.words[0] = num - (this.words[0] | 0);\n\t\t this.negative = 0;\n\t\t return this;\n\t\t }\n\n\t\t this.negative = 0;\n\t\t this.isubn(num);\n\t\t this.negative = 1;\n\t\t return this;\n\t\t }\n\n\t\t // Add without checks\n\t\t return this._iaddn(num);\n\t\t };\n\n\t\t BN.prototype._iaddn = function _iaddn (num) {\n\t\t this.words[0] += num;\n\n\t\t // Carry\n\t\t for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n\t\t this.words[i] -= 0x4000000;\n\t\t if (i === this.length - 1) {\n\t\t this.words[i + 1] = 1;\n\t\t } else {\n\t\t this.words[i + 1]++;\n\t\t }\n\t\t }\n\t\t this.length = Math.max(this.length, i + 1);\n\n\t\t return this;\n\t\t };\n\n\t\t // Subtract plain number `num` from `this`\n\t\t BN.prototype.isubn = function isubn (num) {\n\t\t assert(typeof num === 'number');\n\t\t assert(num < 0x4000000);\n\t\t if (num < 0) return this.iaddn(-num);\n\n\t\t if (this.negative !== 0) {\n\t\t this.negative = 0;\n\t\t this.iaddn(num);\n\t\t this.negative = 1;\n\t\t return this;\n\t\t }\n\n\t\t this.words[0] -= num;\n\n\t\t if (this.length === 1 && this.words[0] < 0) {\n\t\t this.words[0] = -this.words[0];\n\t\t this.negative = 1;\n\t\t } else {\n\t\t // Carry\n\t\t for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n\t\t this.words[i] += 0x4000000;\n\t\t this.words[i + 1] -= 1;\n\t\t }\n\t\t }\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype.addn = function addn (num) {\n\t\t return this.clone().iaddn(num);\n\t\t };\n\n\t\t BN.prototype.subn = function subn (num) {\n\t\t return this.clone().isubn(num);\n\t\t };\n\n\t\t BN.prototype.iabs = function iabs () {\n\t\t this.negative = 0;\n\n\t\t return this;\n\t\t };\n\n\t\t BN.prototype.abs = function abs () {\n\t\t return this.clone().iabs();\n\t\t };\n\n\t\t BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n\t\t var len = num.length + shift;\n\t\t var i;\n\n\t\t this._expand(len);\n\n\t\t var w;\n\t\t var carry = 0;\n\t\t for (i = 0; i < num.length; i++) {\n\t\t w = (this.words[i + shift] | 0) + carry;\n\t\t var right = (num.words[i] | 0) * mul;\n\t\t w -= right & 0x3ffffff;\n\t\t carry = (w >> 26) - ((right / 0x4000000) | 0);\n\t\t this.words[i + shift] = w & 0x3ffffff;\n\t\t }\n\t\t for (; i < this.length - shift; i++) {\n\t\t w = (this.words[i + shift] | 0) + carry;\n\t\t carry = w >> 26;\n\t\t this.words[i + shift] = w & 0x3ffffff;\n\t\t }\n\n\t\t if (carry === 0) return this._strip();\n\n\t\t // Subtraction overflow\n\t\t assert(carry === -1);\n\t\t carry = 0;\n\t\t for (i = 0; i < this.length; i++) {\n\t\t w = -(this.words[i] | 0) + carry;\n\t\t carry = w >> 26;\n\t\t this.words[i] = w & 0x3ffffff;\n\t\t }\n\t\t this.negative = 1;\n\n\t\t return this._strip();\n\t\t };\n\n\t\t BN.prototype._wordDiv = function _wordDiv (num, mode) {\n\t\t var shift = this.length - num.length;\n\n\t\t var a = this.clone();\n\t\t var b = num;\n\n\t\t // Normalize\n\t\t var bhi = b.words[b.length - 1] | 0;\n\t\t var bhiBits = this._countBits(bhi);\n\t\t shift = 26 - bhiBits;\n\t\t if (shift !== 0) {\n\t\t b = b.ushln(shift);\n\t\t a.iushln(shift);\n\t\t bhi = b.words[b.length - 1] | 0;\n\t\t }\n\n\t\t // Initialize quotient\n\t\t var m = a.length - b.length;\n\t\t var q;\n\n\t\t if (mode !== 'mod') {\n\t\t q = new BN(null);\n\t\t q.length = m + 1;\n\t\t q.words = new Array(q.length);\n\t\t for (var i = 0; i < q.length; i++) {\n\t\t q.words[i] = 0;\n\t\t }\n\t\t }\n\n\t\t var diff = a.clone()._ishlnsubmul(b, 1, m);\n\t\t if (diff.negative === 0) {\n\t\t a = diff;\n\t\t if (q) {\n\t\t q.words[m] = 1;\n\t\t }\n\t\t }\n\n\t\t for (var j = m - 1; j >= 0; j--) {\n\t\t var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n\t\t (a.words[b.length + j - 1] | 0);\n\n\t\t // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n\t\t // (0x7ffffff)\n\t\t qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n\t\t a._ishlnsubmul(b, qj, j);\n\t\t while (a.negative !== 0) {\n\t\t qj--;\n\t\t a.negative = 0;\n\t\t a._ishlnsubmul(b, 1, j);\n\t\t if (!a.isZero()) {\n\t\t a.negative ^= 1;\n\t\t }\n\t\t }\n\t\t if (q) {\n\t\t q.words[j] = qj;\n\t\t }\n\t\t }\n\t\t if (q) {\n\t\t q._strip();\n\t\t }\n\t\t a._strip();\n\n\t\t // Denormalize\n\t\t if (mode !== 'div' && shift !== 0) {\n\t\t a.iushrn(shift);\n\t\t }\n\n\t\t return {\n\t\t div: q || null,\n\t\t mod: a\n\t\t };\n\t\t };\n\n\t\t // NOTE: 1) `mode` can be set to `mod` to request mod only,\n\t\t // to `div` to request div only, or be absent to\n\t\t // request both div & mod\n\t\t // 2) `positive` is true if unsigned mod is requested\n\t\t BN.prototype.divmod = function divmod (num, mode, positive) {\n\t\t assert(!num.isZero());\n\n\t\t if (this.isZero()) {\n\t\t return {\n\t\t div: new BN(0),\n\t\t mod: new BN(0)\n\t\t };\n\t\t }\n\n\t\t var div, mod, res;\n\t\t if (this.negative !== 0 && num.negative === 0) {\n\t\t res = this.neg().divmod(num, mode);\n\n\t\t if (mode !== 'mod') {\n\t\t div = res.div.neg();\n\t\t }\n\n\t\t if (mode !== 'div') {\n\t\t mod = res.mod.neg();\n\t\t if (positive && mod.negative !== 0) {\n\t\t mod.iadd(num);\n\t\t }\n\t\t }\n\n\t\t return {\n\t\t div: div,\n\t\t mod: mod\n\t\t };\n\t\t }\n\n\t\t if (this.negative === 0 && num.negative !== 0) {\n\t\t res = this.divmod(num.neg(), mode);\n\n\t\t if (mode !== 'mod') {\n\t\t div = res.div.neg();\n\t\t }\n\n\t\t return {\n\t\t div: div,\n\t\t mod: res.mod\n\t\t };\n\t\t }\n\n\t\t if ((this.negative & num.negative) !== 0) {\n\t\t res = this.neg().divmod(num.neg(), mode);\n\n\t\t if (mode !== 'div') {\n\t\t mod = res.mod.neg();\n\t\t if (positive && mod.negative !== 0) {\n\t\t mod.isub(num);\n\t\t }\n\t\t }\n\n\t\t return {\n\t\t div: res.div,\n\t\t mod: mod\n\t\t };\n\t\t }\n\n\t\t // Both numbers are positive at this point\n\n\t\t // Strip both numbers to approximate shift value\n\t\t if (num.length > this.length || this.cmp(num) < 0) {\n\t\t return {\n\t\t div: new BN(0),\n\t\t mod: this\n\t\t };\n\t\t }\n\n\t\t // Very short reduction\n\t\t if (num.length === 1) {\n\t\t if (mode === 'div') {\n\t\t return {\n\t\t div: this.divn(num.words[0]),\n\t\t mod: null\n\t\t };\n\t\t }\n\n\t\t if (mode === 'mod') {\n\t\t return {\n\t\t div: null,\n\t\t mod: new BN(this.modrn(num.words[0]))\n\t\t };\n\t\t }\n\n\t\t return {\n\t\t div: this.divn(num.words[0]),\n\t\t mod: new BN(this.modrn(num.words[0]))\n\t\t };\n\t\t }\n\n\t\t return this._wordDiv(num, mode);\n\t\t };\n\n\t\t // Find `this` / `num`\n\t\t BN.prototype.div = function div (num) {\n\t\t return this.divmod(num, 'div', false).div;\n\t\t };\n\n\t\t // Find `this` % `num`\n\t\t BN.prototype.mod = function mod (num) {\n\t\t return this.divmod(num, 'mod', false).mod;\n\t\t };\n\n\t\t BN.prototype.umod = function umod (num) {\n\t\t return this.divmod(num, 'mod', true).mod;\n\t\t };\n\n\t\t // Find Round(`this` / `num`)\n\t\t BN.prototype.divRound = function divRound (num) {\n\t\t var dm = this.divmod(num);\n\n\t\t // Fast case - exact division\n\t\t if (dm.mod.isZero()) return dm.div;\n\n\t\t var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n\t\t var half = num.ushrn(1);\n\t\t var r2 = num.andln(1);\n\t\t var cmp = mod.cmp(half);\n\n\t\t // Round down\n\t\t if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n\t\t // Round up\n\t\t return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n\t\t };\n\n\t\t BN.prototype.modrn = function modrn (num) {\n\t\t var isNegNum = num < 0;\n\t\t if (isNegNum) num = -num;\n\n\t\t assert(num <= 0x3ffffff);\n\t\t var p = (1 << 26) % num;\n\n\t\t var acc = 0;\n\t\t for (var i = this.length - 1; i >= 0; i--) {\n\t\t acc = (p * acc + (this.words[i] | 0)) % num;\n\t\t }\n\n\t\t return isNegNum ? -acc : acc;\n\t\t };\n\n\t\t // WARNING: DEPRECATED\n\t\t BN.prototype.modn = function modn (num) {\n\t\t return this.modrn(num);\n\t\t };\n\n\t\t // In-place division by number\n\t\t BN.prototype.idivn = function idivn (num) {\n\t\t var isNegNum = num < 0;\n\t\t if (isNegNum) num = -num;\n\n\t\t assert(num <= 0x3ffffff);\n\n\t\t var carry = 0;\n\t\t for (var i = this.length - 1; i >= 0; i--) {\n\t\t var w = (this.words[i] | 0) + carry * 0x4000000;\n\t\t this.words[i] = (w / num) | 0;\n\t\t carry = w % num;\n\t\t }\n\n\t\t this._strip();\n\t\t return isNegNum ? this.ineg() : this;\n\t\t };\n\n\t\t BN.prototype.divn = function divn (num) {\n\t\t return this.clone().idivn(num);\n\t\t };\n\n\t\t BN.prototype.egcd = function egcd (p) {\n\t\t assert(p.negative === 0);\n\t\t assert(!p.isZero());\n\n\t\t var x = this;\n\t\t var y = p.clone();\n\n\t\t if (x.negative !== 0) {\n\t\t x = x.umod(p);\n\t\t } else {\n\t\t x = x.clone();\n\t\t }\n\n\t\t // A * x + B * y = x\n\t\t var A = new BN(1);\n\t\t var B = new BN(0);\n\n\t\t // C * x + D * y = y\n\t\t var C = new BN(0);\n\t\t var D = new BN(1);\n\n\t\t var g = 0;\n\n\t\t while (x.isEven() && y.isEven()) {\n\t\t x.iushrn(1);\n\t\t y.iushrn(1);\n\t\t ++g;\n\t\t }\n\n\t\t var yp = y.clone();\n\t\t var xp = x.clone();\n\n\t\t while (!x.isZero()) {\n\t\t for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\t\t if (i > 0) {\n\t\t x.iushrn(i);\n\t\t while (i-- > 0) {\n\t\t if (A.isOdd() || B.isOdd()) {\n\t\t A.iadd(yp);\n\t\t B.isub(xp);\n\t\t }\n\n\t\t A.iushrn(1);\n\t\t B.iushrn(1);\n\t\t }\n\t\t }\n\n\t\t for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\t\t if (j > 0) {\n\t\t y.iushrn(j);\n\t\t while (j-- > 0) {\n\t\t if (C.isOdd() || D.isOdd()) {\n\t\t C.iadd(yp);\n\t\t D.isub(xp);\n\t\t }\n\n\t\t C.iushrn(1);\n\t\t D.iushrn(1);\n\t\t }\n\t\t }\n\n\t\t if (x.cmp(y) >= 0) {\n\t\t x.isub(y);\n\t\t A.isub(C);\n\t\t B.isub(D);\n\t\t } else {\n\t\t y.isub(x);\n\t\t C.isub(A);\n\t\t D.isub(B);\n\t\t }\n\t\t }\n\n\t\t return {\n\t\t a: C,\n\t\t b: D,\n\t\t gcd: y.iushln(g)\n\t\t };\n\t\t };\n\n\t\t // This is reduced incarnation of the binary EEA\n\t\t // above, designated to invert members of the\n\t\t // _prime_ fields F(p) at a maximal speed\n\t\t BN.prototype._invmp = function _invmp (p) {\n\t\t assert(p.negative === 0);\n\t\t assert(!p.isZero());\n\n\t\t var a = this;\n\t\t var b = p.clone();\n\n\t\t if (a.negative !== 0) {\n\t\t a = a.umod(p);\n\t\t } else {\n\t\t a = a.clone();\n\t\t }\n\n\t\t var x1 = new BN(1);\n\t\t var x2 = new BN(0);\n\n\t\t var delta = b.clone();\n\n\t\t while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n\t\t for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\t\t if (i > 0) {\n\t\t a.iushrn(i);\n\t\t while (i-- > 0) {\n\t\t if (x1.isOdd()) {\n\t\t x1.iadd(delta);\n\t\t }\n\n\t\t x1.iushrn(1);\n\t\t }\n\t\t }\n\n\t\t for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\t\t if (j > 0) {\n\t\t b.iushrn(j);\n\t\t while (j-- > 0) {\n\t\t if (x2.isOdd()) {\n\t\t x2.iadd(delta);\n\t\t }\n\n\t\t x2.iushrn(1);\n\t\t }\n\t\t }\n\n\t\t if (a.cmp(b) >= 0) {\n\t\t a.isub(b);\n\t\t x1.isub(x2);\n\t\t } else {\n\t\t b.isub(a);\n\t\t x2.isub(x1);\n\t\t }\n\t\t }\n\n\t\t var res;\n\t\t if (a.cmpn(1) === 0) {\n\t\t res = x1;\n\t\t } else {\n\t\t res = x2;\n\t\t }\n\n\t\t if (res.cmpn(0) < 0) {\n\t\t res.iadd(p);\n\t\t }\n\n\t\t return res;\n\t\t };\n\n\t\t BN.prototype.gcd = function gcd (num) {\n\t\t if (this.isZero()) return num.abs();\n\t\t if (num.isZero()) return this.abs();\n\n\t\t var a = this.clone();\n\t\t var b = num.clone();\n\t\t a.negative = 0;\n\t\t b.negative = 0;\n\n\t\t // Remove common factor of two\n\t\t for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n\t\t a.iushrn(1);\n\t\t b.iushrn(1);\n\t\t }\n\n\t\t do {\n\t\t while (a.isEven()) {\n\t\t a.iushrn(1);\n\t\t }\n\t\t while (b.isEven()) {\n\t\t b.iushrn(1);\n\t\t }\n\n\t\t var r = a.cmp(b);\n\t\t if (r < 0) {\n\t\t // Swap `a` and `b` to make `a` always bigger than `b`\n\t\t var t = a;\n\t\t a = b;\n\t\t b = t;\n\t\t } else if (r === 0 || b.cmpn(1) === 0) {\n\t\t break;\n\t\t }\n\n\t\t a.isub(b);\n\t\t } while (true);\n\n\t\t return b.iushln(shift);\n\t\t };\n\n\t\t // Invert number in the field F(num)\n\t\t BN.prototype.invm = function invm (num) {\n\t\t return this.egcd(num).a.umod(num);\n\t\t };\n\n\t\t BN.prototype.isEven = function isEven () {\n\t\t return (this.words[0] & 1) === 0;\n\t\t };\n\n\t\t BN.prototype.isOdd = function isOdd () {\n\t\t return (this.words[0] & 1) === 1;\n\t\t };\n\n\t\t // And first word and num\n\t\t BN.prototype.andln = function andln (num) {\n\t\t return this.words[0] & num;\n\t\t };\n\n\t\t // Increment at the bit position in-line\n\t\t BN.prototype.bincn = function bincn (bit) {\n\t\t assert(typeof bit === 'number');\n\t\t var r = bit % 26;\n\t\t var s = (bit - r) / 26;\n\t\t var q = 1 << r;\n\n\t\t // Fast case: bit is much higher than all existing words\n\t\t if (this.length <= s) {\n\t\t this._expand(s + 1);\n\t\t this.words[s] |= q;\n\t\t return this;\n\t\t }\n\n\t\t // Add bit and propagate, if needed\n\t\t var carry = q;\n\t\t for (var i = s; carry !== 0 && i < this.length; i++) {\n\t\t var w = this.words[i] | 0;\n\t\t w += carry;\n\t\t carry = w >>> 26;\n\t\t w &= 0x3ffffff;\n\t\t this.words[i] = w;\n\t\t }\n\t\t if (carry !== 0) {\n\t\t this.words[i] = carry;\n\t\t this.length++;\n\t\t }\n\t\t return this;\n\t\t };\n\n\t\t BN.prototype.isZero = function isZero () {\n\t\t return this.length === 1 && this.words[0] === 0;\n\t\t };\n\n\t\t BN.prototype.cmpn = function cmpn (num) {\n\t\t var negative = num < 0;\n\n\t\t if (this.negative !== 0 && !negative) return -1;\n\t\t if (this.negative === 0 && negative) return 1;\n\n\t\t this._strip();\n\n\t\t var res;\n\t\t if (this.length > 1) {\n\t\t res = 1;\n\t\t } else {\n\t\t if (negative) {\n\t\t num = -num;\n\t\t }\n\n\t\t assert(num <= 0x3ffffff, 'Number is too big');\n\n\t\t var w = this.words[0] | 0;\n\t\t res = w === num ? 0 : w < num ? -1 : 1;\n\t\t }\n\t\t if (this.negative !== 0) return -res | 0;\n\t\t return res;\n\t\t };\n\n\t\t // Compare two numbers and return:\n\t\t // 1 - if `this` > `num`\n\t\t // 0 - if `this` == `num`\n\t\t // -1 - if `this` < `num`\n\t\t BN.prototype.cmp = function cmp (num) {\n\t\t if (this.negative !== 0 && num.negative === 0) return -1;\n\t\t if (this.negative === 0 && num.negative !== 0) return 1;\n\n\t\t var res = this.ucmp(num);\n\t\t if (this.negative !== 0) return -res | 0;\n\t\t return res;\n\t\t };\n\n\t\t // Unsigned comparison\n\t\t BN.prototype.ucmp = function ucmp (num) {\n\t\t // At this point both numbers have the same sign\n\t\t if (this.length > num.length) return 1;\n\t\t if (this.length < num.length) return -1;\n\n\t\t var res = 0;\n\t\t for (var i = this.length - 1; i >= 0; i--) {\n\t\t var a = this.words[i] | 0;\n\t\t var b = num.words[i] | 0;\n\n\t\t if (a === b) continue;\n\t\t if (a < b) {\n\t\t res = -1;\n\t\t } else if (a > b) {\n\t\t res = 1;\n\t\t }\n\t\t break;\n\t\t }\n\t\t return res;\n\t\t };\n\n\t\t BN.prototype.gtn = function gtn (num) {\n\t\t return this.cmpn(num) === 1;\n\t\t };\n\n\t\t BN.prototype.gt = function gt (num) {\n\t\t return this.cmp(num) === 1;\n\t\t };\n\n\t\t BN.prototype.gten = function gten (num) {\n\t\t return this.cmpn(num) >= 0;\n\t\t };\n\n\t\t BN.prototype.gte = function gte (num) {\n\t\t return this.cmp(num) >= 0;\n\t\t };\n\n\t\t BN.prototype.ltn = function ltn (num) {\n\t\t return this.cmpn(num) === -1;\n\t\t };\n\n\t\t BN.prototype.lt = function lt (num) {\n\t\t return this.cmp(num) === -1;\n\t\t };\n\n\t\t BN.prototype.lten = function lten (num) {\n\t\t return this.cmpn(num) <= 0;\n\t\t };\n\n\t\t BN.prototype.lte = function lte (num) {\n\t\t return this.cmp(num) <= 0;\n\t\t };\n\n\t\t BN.prototype.eqn = function eqn (num) {\n\t\t return this.cmpn(num) === 0;\n\t\t };\n\n\t\t BN.prototype.eq = function eq (num) {\n\t\t return this.cmp(num) === 0;\n\t\t };\n\n\t\t //\n\t\t // A reduce context, could be using montgomery or something better, depending\n\t\t // on the `m` itself.\n\t\t //\n\t\t BN.red = function red (num) {\n\t\t return new Red(num);\n\t\t };\n\n\t\t BN.prototype.toRed = function toRed (ctx) {\n\t\t assert(!this.red, 'Already a number in reduction context');\n\t\t assert(this.negative === 0, 'red works only with positives');\n\t\t return ctx.convertTo(this)._forceRed(ctx);\n\t\t };\n\n\t\t BN.prototype.fromRed = function fromRed () {\n\t\t assert(this.red, 'fromRed works only with numbers in reduction context');\n\t\t return this.red.convertFrom(this);\n\t\t };\n\n\t\t BN.prototype._forceRed = function _forceRed (ctx) {\n\t\t this.red = ctx;\n\t\t return this;\n\t\t };\n\n\t\t BN.prototype.forceRed = function forceRed (ctx) {\n\t\t assert(!this.red, 'Already a number in reduction context');\n\t\t return this._forceRed(ctx);\n\t\t };\n\n\t\t BN.prototype.redAdd = function redAdd (num) {\n\t\t assert(this.red, 'redAdd works only with red numbers');\n\t\t return this.red.add(this, num);\n\t\t };\n\n\t\t BN.prototype.redIAdd = function redIAdd (num) {\n\t\t assert(this.red, 'redIAdd works only with red numbers');\n\t\t return this.red.iadd(this, num);\n\t\t };\n\n\t\t BN.prototype.redSub = function redSub (num) {\n\t\t assert(this.red, 'redSub works only with red numbers');\n\t\t return this.red.sub(this, num);\n\t\t };\n\n\t\t BN.prototype.redISub = function redISub (num) {\n\t\t assert(this.red, 'redISub works only with red numbers');\n\t\t return this.red.isub(this, num);\n\t\t };\n\n\t\t BN.prototype.redShl = function redShl (num) {\n\t\t assert(this.red, 'redShl works only with red numbers');\n\t\t return this.red.shl(this, num);\n\t\t };\n\n\t\t BN.prototype.redMul = function redMul (num) {\n\t\t assert(this.red, 'redMul works only with red numbers');\n\t\t this.red._verify2(this, num);\n\t\t return this.red.mul(this, num);\n\t\t };\n\n\t\t BN.prototype.redIMul = function redIMul (num) {\n\t\t assert(this.red, 'redMul works only with red numbers');\n\t\t this.red._verify2(this, num);\n\t\t return this.red.imul(this, num);\n\t\t };\n\n\t\t BN.prototype.redSqr = function redSqr () {\n\t\t assert(this.red, 'redSqr works only with red numbers');\n\t\t this.red._verify1(this);\n\t\t return this.red.sqr(this);\n\t\t };\n\n\t\t BN.prototype.redISqr = function redISqr () {\n\t\t assert(this.red, 'redISqr works only with red numbers');\n\t\t this.red._verify1(this);\n\t\t return this.red.isqr(this);\n\t\t };\n\n\t\t // Square root over p\n\t\t BN.prototype.redSqrt = function redSqrt () {\n\t\t assert(this.red, 'redSqrt works only with red numbers');\n\t\t this.red._verify1(this);\n\t\t return this.red.sqrt(this);\n\t\t };\n\n\t\t BN.prototype.redInvm = function redInvm () {\n\t\t assert(this.red, 'redInvm works only with red numbers');\n\t\t this.red._verify1(this);\n\t\t return this.red.invm(this);\n\t\t };\n\n\t\t // Return negative clone of `this` % `red modulo`\n\t\t BN.prototype.redNeg = function redNeg () {\n\t\t assert(this.red, 'redNeg works only with red numbers');\n\t\t this.red._verify1(this);\n\t\t return this.red.neg(this);\n\t\t };\n\n\t\t BN.prototype.redPow = function redPow (num) {\n\t\t assert(this.red && !num.red, 'redPow(normalNum)');\n\t\t this.red._verify1(this);\n\t\t return this.red.pow(this, num);\n\t\t };\n\n\t\t // Prime numbers with efficient reduction\n\t\t var primes = {\n\t\t k256: null,\n\t\t p224: null,\n\t\t p192: null,\n\t\t p25519: null\n\t\t };\n\n\t\t // Pseudo-Mersenne prime\n\t\t function MPrime (name, p) {\n\t\t // P = 2 ^ N - K\n\t\t this.name = name;\n\t\t this.p = new BN(p, 16);\n\t\t this.n = this.p.bitLength();\n\t\t this.k = new BN(1).iushln(this.n).isub(this.p);\n\n\t\t this.tmp = this._tmp();\n\t\t }\n\n\t\t MPrime.prototype._tmp = function _tmp () {\n\t\t var tmp = new BN(null);\n\t\t tmp.words = new Array(Math.ceil(this.n / 13));\n\t\t return tmp;\n\t\t };\n\n\t\t MPrime.prototype.ireduce = function ireduce (num) {\n\t\t // Assumes that `num` is less than `P^2`\n\t\t // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n\t\t var r = num;\n\t\t var rlen;\n\n\t\t do {\n\t\t this.split(r, this.tmp);\n\t\t r = this.imulK(r);\n\t\t r = r.iadd(this.tmp);\n\t\t rlen = r.bitLength();\n\t\t } while (rlen > this.n);\n\n\t\t var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\t\t if (cmp === 0) {\n\t\t r.words[0] = 0;\n\t\t r.length = 1;\n\t\t } else if (cmp > 0) {\n\t\t r.isub(this.p);\n\t\t } else {\n\t\t if (r.strip !== undefined) {\n\t\t // r is a BN v4 instance\n\t\t r.strip();\n\t\t } else {\n\t\t // r is a BN v5 instance\n\t\t r._strip();\n\t\t }\n\t\t }\n\n\t\t return r;\n\t\t };\n\n\t\t MPrime.prototype.split = function split (input, out) {\n\t\t input.iushrn(this.n, 0, out);\n\t\t };\n\n\t\t MPrime.prototype.imulK = function imulK (num) {\n\t\t return num.imul(this.k);\n\t\t };\n\n\t\t function K256 () {\n\t\t MPrime.call(\n\t\t this,\n\t\t 'k256',\n\t\t 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n\t\t }\n\t\t inherits(K256, MPrime);\n\n\t\t K256.prototype.split = function split (input, output) {\n\t\t // 256 = 9 * 26 + 22\n\t\t var mask = 0x3fffff;\n\n\t\t var outLen = Math.min(input.length, 9);\n\t\t for (var i = 0; i < outLen; i++) {\n\t\t output.words[i] = input.words[i];\n\t\t }\n\t\t output.length = outLen;\n\n\t\t if (input.length <= 9) {\n\t\t input.words[0] = 0;\n\t\t input.length = 1;\n\t\t return;\n\t\t }\n\n\t\t // Shift by 9 limbs\n\t\t var prev = input.words[9];\n\t\t output.words[output.length++] = prev & mask;\n\n\t\t for (i = 10; i < input.length; i++) {\n\t\t var next = input.words[i] | 0;\n\t\t input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n\t\t prev = next;\n\t\t }\n\t\t prev >>>= 22;\n\t\t input.words[i - 10] = prev;\n\t\t if (prev === 0 && input.length > 10) {\n\t\t input.length -= 10;\n\t\t } else {\n\t\t input.length -= 9;\n\t\t }\n\t\t };\n\n\t\t K256.prototype.imulK = function imulK (num) {\n\t\t // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n\t\t num.words[num.length] = 0;\n\t\t num.words[num.length + 1] = 0;\n\t\t num.length += 2;\n\n\t\t // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\t\t var lo = 0;\n\t\t for (var i = 0; i < num.length; i++) {\n\t\t var w = num.words[i] | 0;\n\t\t lo += w * 0x3d1;\n\t\t num.words[i] = lo & 0x3ffffff;\n\t\t lo = w * 0x40 + ((lo / 0x4000000) | 0);\n\t\t }\n\n\t\t // Fast length reduction\n\t\t if (num.words[num.length - 1] === 0) {\n\t\t num.length--;\n\t\t if (num.words[num.length - 1] === 0) {\n\t\t num.length--;\n\t\t }\n\t\t }\n\t\t return num;\n\t\t };\n\n\t\t function P224 () {\n\t\t MPrime.call(\n\t\t this,\n\t\t 'p224',\n\t\t 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n\t\t }\n\t\t inherits(P224, MPrime);\n\n\t\t function P192 () {\n\t\t MPrime.call(\n\t\t this,\n\t\t 'p192',\n\t\t 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n\t\t }\n\t\t inherits(P192, MPrime);\n\n\t\t function P25519 () {\n\t\t // 2 ^ 255 - 19\n\t\t MPrime.call(\n\t\t this,\n\t\t '25519',\n\t\t '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n\t\t }\n\t\t inherits(P25519, MPrime);\n\n\t\t P25519.prototype.imulK = function imulK (num) {\n\t\t // K = 0x13\n\t\t var carry = 0;\n\t\t for (var i = 0; i < num.length; i++) {\n\t\t var hi = (num.words[i] | 0) * 0x13 + carry;\n\t\t var lo = hi & 0x3ffffff;\n\t\t hi >>>= 26;\n\n\t\t num.words[i] = lo;\n\t\t carry = hi;\n\t\t }\n\t\t if (carry !== 0) {\n\t\t num.words[num.length++] = carry;\n\t\t }\n\t\t return num;\n\t\t };\n\n\t\t // Exported mostly for testing purposes, use plain name instead\n\t\t BN._prime = function prime (name) {\n\t\t // Cached version of prime\n\t\t if (primes[name]) return primes[name];\n\n\t\t var prime;\n\t\t if (name === 'k256') {\n\t\t prime = new K256();\n\t\t } else if (name === 'p224') {\n\t\t prime = new P224();\n\t\t } else if (name === 'p192') {\n\t\t prime = new P192();\n\t\t } else if (name === 'p25519') {\n\t\t prime = new P25519();\n\t\t } else {\n\t\t throw new Error('Unknown prime ' + name);\n\t\t }\n\t\t primes[name] = prime;\n\n\t\t return prime;\n\t\t };\n\n\t\t //\n\t\t // Base reduction engine\n\t\t //\n\t\t function Red (m) {\n\t\t if (typeof m === 'string') {\n\t\t var prime = BN._prime(m);\n\t\t this.m = prime.p;\n\t\t this.prime = prime;\n\t\t } else {\n\t\t assert(m.gtn(1), 'modulus must be greater than 1');\n\t\t this.m = m;\n\t\t this.prime = null;\n\t\t }\n\t\t }\n\n\t\t Red.prototype._verify1 = function _verify1 (a) {\n\t\t assert(a.negative === 0, 'red works only with positives');\n\t\t assert(a.red, 'red works only with red numbers');\n\t\t };\n\n\t\t Red.prototype._verify2 = function _verify2 (a, b) {\n\t\t assert((a.negative | b.negative) === 0, 'red works only with positives');\n\t\t assert(a.red && a.red === b.red,\n\t\t 'red works only with red numbers');\n\t\t };\n\n\t\t Red.prototype.imod = function imod (a) {\n\t\t if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n\t\t move(a, a.umod(this.m)._forceRed(this));\n\t\t return a;\n\t\t };\n\n\t\t Red.prototype.neg = function neg (a) {\n\t\t if (a.isZero()) {\n\t\t return a.clone();\n\t\t }\n\n\t\t return this.m.sub(a)._forceRed(this);\n\t\t };\n\n\t\t Red.prototype.add = function add (a, b) {\n\t\t this._verify2(a, b);\n\n\t\t var res = a.add(b);\n\t\t if (res.cmp(this.m) >= 0) {\n\t\t res.isub(this.m);\n\t\t }\n\t\t return res._forceRed(this);\n\t\t };\n\n\t\t Red.prototype.iadd = function iadd (a, b) {\n\t\t this._verify2(a, b);\n\n\t\t var res = a.iadd(b);\n\t\t if (res.cmp(this.m) >= 0) {\n\t\t res.isub(this.m);\n\t\t }\n\t\t return res;\n\t\t };\n\n\t\t Red.prototype.sub = function sub (a, b) {\n\t\t this._verify2(a, b);\n\n\t\t var res = a.sub(b);\n\t\t if (res.cmpn(0) < 0) {\n\t\t res.iadd(this.m);\n\t\t }\n\t\t return res._forceRed(this);\n\t\t };\n\n\t\t Red.prototype.isub = function isub (a, b) {\n\t\t this._verify2(a, b);\n\n\t\t var res = a.isub(b);\n\t\t if (res.cmpn(0) < 0) {\n\t\t res.iadd(this.m);\n\t\t }\n\t\t return res;\n\t\t };\n\n\t\t Red.prototype.shl = function shl (a, num) {\n\t\t this._verify1(a);\n\t\t return this.imod(a.ushln(num));\n\t\t };\n\n\t\t Red.prototype.imul = function imul (a, b) {\n\t\t this._verify2(a, b);\n\t\t return this.imod(a.imul(b));\n\t\t };\n\n\t\t Red.prototype.mul = function mul (a, b) {\n\t\t this._verify2(a, b);\n\t\t return this.imod(a.mul(b));\n\t\t };\n\n\t\t Red.prototype.isqr = function isqr (a) {\n\t\t return this.imul(a, a.clone());\n\t\t };\n\n\t\t Red.prototype.sqr = function sqr (a) {\n\t\t return this.mul(a, a);\n\t\t };\n\n\t\t Red.prototype.sqrt = function sqrt (a) {\n\t\t if (a.isZero()) return a.clone();\n\n\t\t var mod3 = this.m.andln(3);\n\t\t assert(mod3 % 2 === 1);\n\n\t\t // Fast case\n\t\t if (mod3 === 3) {\n\t\t var pow = this.m.add(new BN(1)).iushrn(2);\n\t\t return this.pow(a, pow);\n\t\t }\n\n\t\t // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n\t\t //\n\t\t // Find Q and S, that Q * 2 ^ S = (P - 1)\n\t\t var q = this.m.subn(1);\n\t\t var s = 0;\n\t\t while (!q.isZero() && q.andln(1) === 0) {\n\t\t s++;\n\t\t q.iushrn(1);\n\t\t }\n\t\t assert(!q.isZero());\n\n\t\t var one = new BN(1).toRed(this);\n\t\t var nOne = one.redNeg();\n\n\t\t // Find quadratic non-residue\n\t\t // NOTE: Max is such because of generalized Riemann hypothesis.\n\t\t var lpow = this.m.subn(1).iushrn(1);\n\t\t var z = this.m.bitLength();\n\t\t z = new BN(2 * z * z).toRed(this);\n\n\t\t while (this.pow(z, lpow).cmp(nOne) !== 0) {\n\t\t z.redIAdd(nOne);\n\t\t }\n\n\t\t var c = this.pow(z, q);\n\t\t var r = this.pow(a, q.addn(1).iushrn(1));\n\t\t var t = this.pow(a, q);\n\t\t var m = s;\n\t\t while (t.cmp(one) !== 0) {\n\t\t var tmp = t;\n\t\t for (var i = 0; tmp.cmp(one) !== 0; i++) {\n\t\t tmp = tmp.redSqr();\n\t\t }\n\t\t assert(i < m);\n\t\t var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n\t\t r = r.redMul(b);\n\t\t c = b.redSqr();\n\t\t t = t.redMul(c);\n\t\t m = i;\n\t\t }\n\n\t\t return r;\n\t\t };\n\n\t\t Red.prototype.invm = function invm (a) {\n\t\t var inv = a._invmp(this.m);\n\t\t if (inv.negative !== 0) {\n\t\t inv.negative = 0;\n\t\t return this.imod(inv).redNeg();\n\t\t } else {\n\t\t return this.imod(inv);\n\t\t }\n\t\t };\n\n\t\t Red.prototype.pow = function pow (a, num) {\n\t\t if (num.isZero()) return new BN(1).toRed(this);\n\t\t if (num.cmpn(1) === 0) return a.clone();\n\n\t\t var windowSize = 4;\n\t\t var wnd = new Array(1 << windowSize);\n\t\t wnd[0] = new BN(1).toRed(this);\n\t\t wnd[1] = a;\n\t\t for (var i = 2; i < wnd.length; i++) {\n\t\t wnd[i] = this.mul(wnd[i - 1], a);\n\t\t }\n\n\t\t var res = wnd[0];\n\t\t var current = 0;\n\t\t var currentLen = 0;\n\t\t var start = num.bitLength() % 26;\n\t\t if (start === 0) {\n\t\t start = 26;\n\t\t }\n\n\t\t for (i = num.length - 1; i >= 0; i--) {\n\t\t var word = num.words[i];\n\t\t for (var j = start - 1; j >= 0; j--) {\n\t\t var bit = (word >> j) & 1;\n\t\t if (res !== wnd[0]) {\n\t\t res = this.sqr(res);\n\t\t }\n\n\t\t if (bit === 0 && current === 0) {\n\t\t currentLen = 0;\n\t\t continue;\n\t\t }\n\n\t\t current <<= 1;\n\t\t current |= bit;\n\t\t currentLen++;\n\t\t if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n\t\t res = this.mul(res, wnd[current]);\n\t\t currentLen = 0;\n\t\t current = 0;\n\t\t }\n\t\t start = 26;\n\t\t }\n\n\t\t return res;\n\t\t };\n\n\t\t Red.prototype.convertTo = function convertTo (num) {\n\t\t var r = num.umod(this.m);\n\n\t\t return r === num ? r.clone() : r;\n\t\t };\n\n\t\t Red.prototype.convertFrom = function convertFrom (num) {\n\t\t var res = num.clone();\n\t\t res.red = null;\n\t\t return res;\n\t\t };\n\n\t\t //\n\t\t // Montgomery method engine\n\t\t //\n\n\t\t BN.mont = function mont (num) {\n\t\t return new Mont(num);\n\t\t };\n\n\t\t function Mont (m) {\n\t\t Red.call(this, m);\n\n\t\t this.shift = this.m.bitLength();\n\t\t if (this.shift % 26 !== 0) {\n\t\t this.shift += 26 - (this.shift % 26);\n\t\t }\n\n\t\t this.r = new BN(1).iushln(this.shift);\n\t\t this.r2 = this.imod(this.r.sqr());\n\t\t this.rinv = this.r._invmp(this.m);\n\n\t\t this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n\t\t this.minv = this.minv.umod(this.r);\n\t\t this.minv = this.r.sub(this.minv);\n\t\t }\n\t\t inherits(Mont, Red);\n\n\t\t Mont.prototype.convertTo = function convertTo (num) {\n\t\t return this.imod(num.ushln(this.shift));\n\t\t };\n\n\t\t Mont.prototype.convertFrom = function convertFrom (num) {\n\t\t var r = this.imod(num.mul(this.rinv));\n\t\t r.red = null;\n\t\t return r;\n\t\t };\n\n\t\t Mont.prototype.imul = function imul (a, b) {\n\t\t if (a.isZero() || b.isZero()) {\n\t\t a.words[0] = 0;\n\t\t a.length = 1;\n\t\t return a;\n\t\t }\n\n\t\t var t = a.imul(b);\n\t\t var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n\t\t var u = t.isub(c).iushrn(this.shift);\n\t\t var res = u;\n\n\t\t if (u.cmp(this.m) >= 0) {\n\t\t res = u.isub(this.m);\n\t\t } else if (u.cmpn(0) < 0) {\n\t\t res = u.iadd(this.m);\n\t\t }\n\n\t\t return res._forceRed(this);\n\t\t };\n\n\t\t Mont.prototype.mul = function mul (a, b) {\n\t\t if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n\t\t var t = a.mul(b);\n\t\t var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n\t\t var u = t.isub(c).iushrn(this.shift);\n\t\t var res = u;\n\t\t if (u.cmp(this.m) >= 0) {\n\t\t res = u.isub(this.m);\n\t\t } else if (u.cmpn(0) < 0) {\n\t\t res = u.iadd(this.m);\n\t\t }\n\n\t\t return res._forceRed(this);\n\t\t };\n\n\t\t Mont.prototype.invm = function invm (a) {\n\t\t // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n\t\t var res = this.imod(a._invmp(this.m).mul(this.r2));\n\t\t return res._forceRed(this);\n\t\t };\n\t\t})(module, bn); \n\t} (bn$1));\n\treturn bn$1.exports;\n}\n\nvar bnExports = requireBn();\nvar BN = /*@__PURE__*/getDefaultExportFromCjs(bnExports);\n\n/* ------------------------------------------------------------------ */\n/* RFC-4501 message */\n/* ------------------------------------------------------------------ */\nasync function genSolanaMessage(address) {\n var _a, _b;\n /* Domain / origin aren’t available server-side – fall back to envs\n or simple placeholders. */\n const domain = (_a = process.env.SESSION_DOMAIN) !== null && _a !== void 0 ? _a : \"server\";\n const origin = (_b = process.env.SESSION_ORIGIN) !== null && _b !== void 0 ? _b : \"server\";\n const statement = \"Sign this message to authenticate with our application.\";\n const ISO8601 = new Date().toISOString();\n return `${statement}\\n\\n` +\n `Wallet address:\\n${address}\\n\\n` +\n `Domain: ${domain}\\n` +\n `Origin: ${origin}\\n` +\n `Issued At: ${ISO8601}`;\n}\n// ─────────────────────────────────────────────────────────────\n// Serialization Helpers\n// ─────────────────────────────────────────────────────────────\nfunction isHexString(value) {\n // Matches strings containing only 0-9, a-f, or A-F (optionally prefixed with 0x)\n let testValue = value;\n // Handle negative values\n if (value.startsWith(\"-\")) {\n testValue = value.slice(1);\n }\n const hexRegex = /^(0x)?[0-9a-fA-F]+$/;\n return hexRegex.test(testValue);\n}\nfunction prepareAnchorArgs(documents) {\n return documents.map((doc) => ({\n path: doc.path,\n operations: doc.operations.map((op) => {\n let preparedValue = null;\n if (op.value) {\n if (\"u64Val\" in op.value) {\n if (isHexString(op.value.u64Val.value)) {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value, \"hex\") } };\n }\n else {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value) } };\n }\n }\n else if (\"i64Val\" in op.value) {\n if (isHexString(op.value.i64Val.value)) {\n if (op.value.i64Val.value.startsWith(\"-\")) {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value.slice(1), \"hex\").mul(new BN(-1)) } };\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value, \"hex\") } };\n }\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value) } };\n }\n }\n else if (op.value.boolVal) {\n preparedValue = { boolVal: { value: !!op.value.boolVal.value } };\n }\n else if (op.value.stringVal) {\n preparedValue = { stringVal: { value: String(op.value.stringVal.value) } };\n }\n else if (op.value.addressVal) {\n preparedValue = { addressVal: { value: new PublicKey(op.value.addressVal.value) } };\n }\n else {\n preparedValue = op.value;\n }\n }\n return {\n key: op.key,\n value: preparedValue,\n operation: op.operation,\n };\n }),\n }));\n}\nfunction convertRemainingAccounts(remainingAccounts) {\n return remainingAccounts.map(acc => {\n return {\n pubkey: new PublicKey(acc.pubkey),\n isWritable: acc.isWritable,\n isSigner: acc.isSigner\n };\n });\n}\n// ─────────────────────────────────────────────────────────────\n// Updated Transaction Builder: It now accepts a PublicKey for the payer\n// ─────────────────────────────────────────────────────────────\nasync function buildSetDocumentsTransaction(connection, idl, anchorProvider, payerPublicKey, args, remainingAccounts, lutKey, preInstructions, simulate) {\n const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1400000,\n });\n //TODO: Figure out long term solution to estimate heap frame size\n const requestHeapFrameIx = ComputeBudgetProgram.requestHeapFrame({\n bytes: 1024 * 160,\n });\n const instructions = [];\n instructions.unshift(requestHeapFrameIx);\n instructions.unshift(computeBudgetIx);\n instructions.push(...preInstructions);\n let tx = null;\n if (idl.address === \"taro6CvKqwrYrDc16ufYgzQ2NZcyyVKStffbtudrhRu\") {\n const program = new Program(idl, anchorProvider);\n tx = await program.methods\n .setDocuments(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else if (idl.address === \"poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp\") {\n const program = new Program(idl, anchorProvider);\n tx = await program.methods\n .setDocuments(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, args.txData, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else {\n throw new Error(`Invalid program id: ${idl.address}`);\n }\n tx.feePayer = payerPublicKey;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(\"confirmed\");\n tx.recentBlockhash = blockhash;\n if (lutKey == null) {\n const computeUnits = await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, []);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n return { tx, blockhash, lastValidBlockHeight };\n }\n const { value: table } = await connection.getAddressLookupTable(new PublicKey(lutKey));\n if (!table)\n throw new Error('LUT not found after creation/extend');\n const computeUnits = await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, [table]);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n const msgV0 = new anchor.web3.TransactionMessage({\n payerKey: payerPublicKey,\n recentBlockhash: blockhash,\n instructions: tx.instructions,\n }).compileToV0Message([table]);\n const vTx = new anchor.web3.VersionedTransaction(msgV0);\n return { tx: vTx, blockhash, lastValidBlockHeight };\n}\n\n/* ------------------------------------------------------------------ */\n/* ENV helpers */\n/* ------------------------------------------------------------------ */\nconst ENV_KEYPAIR = \"TAROBASE_SOLANA_KEYPAIR\"; // required\nfunction loadKeypairFromEnv() {\n const secret = process.env[ENV_KEYPAIR];\n if (!secret) {\n throw new Error(`Missing ${ENV_KEYPAIR}. Export a base-58 or JSON array secret key.`);\n }\n try {\n const secretKey = secret.trim().startsWith(\"[\")\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n return Keypair.fromSecretKey(secretKey);\n }\n catch (err) {\n throw new Error(`Unable to parse ${ENV_KEYPAIR}. Ensure it is valid base-58 or JSON.`);\n }\n}\n/* ------------------------------------------------------------------ */\n/* REAL createSession() */\n/* ------------------------------------------------------------------ */\nasync function createSession() {\n const kp = loadKeypairFromEnv();\n const address = kp.publicKey.toBase58();\n const message = await genSolanaMessage(address);\n /* sign the message */\n const sigBytes = nacl.sign.detached(new TextEncoder().encode(message), kp.secretKey);\n const signature = Buffer.from(sigBytes).toString(\"base64\");\n /* call auth API */\n const { accessToken, idToken, refreshToken, } = await createSessionWithSignature(address, message, signature);\n return { address, accessToken, idToken, refreshToken };\n}\n/* ------------------------------------------------------------------ */\n/* SINGLETON */\n/* ------------------------------------------------------------------ */\nclass ServerSessionManager {\n /* Private constructor prevents external `new` */\n constructor() {\n /* Private cache (lives for the life of the process) */\n this.session = null;\n }\n /* ---------------------------------------------- *\n * GET (lazy-fetch)\n * ---------------------------------------------- */\n async getSession() {\n if (this.session === null) {\n this.session = await createSession();\n }\n return this.session;\n }\n /* ---------------------------------------------- *\n * STORE (overwrites the cached value)\n * ---------------------------------------------- */\n setSession(session) {\n this.session = session;\n }\n /* ---------------------------------------------- *\n * CLEAR (e.g. after logout)\n * ---------------------------------------------- */\n clearSession() {\n this.session = null;\n }\n /* ---------------------------------------------- *\n * QUICK helpers\n * ---------------------------------------------- */\n isAuthenticated() {\n return this.session !== null;\n }\n getIdToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.idToken) !== null && _b !== void 0 ? _b : null;\n }\n getRefreshToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.refreshToken) !== null && _b !== void 0 ? _b : null;\n }\n}\n/* The single, shared instance */\nServerSessionManager.instance = new ServerSessionManager();\n\nasync function createBearerToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return `Bearer ${session === null || session === void 0 ? void 0 : session.idToken}`;\n }\n const idToken = WebSessionManager.getIdToken();\n if (!idToken) {\n return null;\n }\n return `Bearer ${idToken}`;\n}\nasync function createAuthHeader(isServer) {\n const bearerToken = await createBearerToken(isServer);\n if (!bearerToken) {\n return null;\n }\n return {\n Authorization: bearerToken\n };\n}\nasync function getIdToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.idToken;\n }\n return WebSessionManager.getIdToken();\n}\nasync function getRefreshToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.refreshToken;\n }\n return WebSessionManager.getRefreshToken();\n}\nfunction updateIdTokenAndAccessToken(idToken, accessToken) {\n WebSessionManager.updateIdTokenAndAccessToken(idToken, accessToken);\n}\n\nasync function makeApiRequest(method, urlPath, data, _overrides) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const config = await getConfig();\n async function executeRequest() {\n const authHeader = await createAuthHeader(config.isServer);\n const headers = Object.assign({ 'Content-Type': 'application/json', \"X-Public-App-Id\": config.appId, \"X-App-Id\": config.appId }, authHeader);\n if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n if (customAppId) {\n headers[\"X-App-Id\"] = customAppId;\n }\n }\n // Apply custom headers from _overrides\n if (_overrides === null || _overrides === void 0 ? void 0 : _overrides.headers) {\n Object.assign(headers, _overrides.headers);\n }\n const requestConfig = {\n method,\n url: `${config.apiUrl}${urlPath.startsWith('/') ? urlPath : `/${urlPath}`}`,\n headers,\n };\n if (method !== 'GET' && method !== 'get') {\n requestConfig.data = data ? JSON.stringify(data) : {};\n }\n const response = await axios(requestConfig);\n return { data: response.data, status: response.status };\n }\n try {\n return await executeRequest();\n }\n catch (error) {\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {\n try {\n const refreshToken = await getRefreshToken(config.isServer);\n if (!refreshToken) {\n throw new Error(\"No refresh token found\");\n }\n const refreshData = await refreshSession(refreshToken);\n if (refreshData && refreshData.idToken && refreshData.accessToken) {\n updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken);\n }\n return await executeRequest();\n }\n catch (refreshError) {\n throw error;\n }\n }\n if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) == 404) {\n return { data: null, status: 404 };\n }\n if ((_d = (_c = error.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.message) {\n console.error(`Error in set call with code ${(_e = error.response) === null || _e === void 0 ? void 0 : _e.status} and message ${(_g = (_f = error.response) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.message}`);\n throw new Error((_j = (_h = error.response) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.message);\n }\n throw error;\n }\n}\n\nlet clientConfig = {\n // User configured settings\n name: '',\n logoUrl: '',\n apiKey: '',\n wsApiUrl: 'wss://ws.tarobase.com',\n apiUrl: 'https://api.tarobase.com',\n authApiUrl: 'https://auth.tarobase.com',\n appId: '',\n // Custom data from server\n authMethod: 'phantom',\n chain: '',\n rpcUrl: '',\n skipBackendInit: false,\n authProvider: null,\n isServer: false,\n};\nlet isInitialized = false;\nfunction init(newConfig) {\n return new Promise((resolve, reject) => {\n if (!newConfig.apiKey && !newConfig.appId) {\n reject(new Error('No API key or app ID provided.'));\n }\n clientConfig = Object.assign(Object.assign({}, clientConfig), newConfig);\n if (newConfig.skipBackendInit) {\n isInitialized = true;\n resolve();\n return;\n }\n isInitialized = true;\n makeApiRequest('GET', '/config').then((data) => {\n clientConfig = Object.assign(Object.assign(Object.assign({}, clientConfig), data.data), newConfig);\n isInitialized = true;\n resolve();\n }).catch((error) => {\n console.error('Failed to authenticate with API key or fetch config for this app:', error);\n console.error('Please check your API key and try again.');\n reject(new Error(\"Failed to initialize Tarobase app.\"));\n });\n });\n}\nfunction waitForInitialization() {\n return new Promise((resolve) => {\n if (isInitialized) {\n resolve();\n }\n else {\n const interval = setInterval(() => {\n if (isInitialized) {\n clearInterval(interval);\n resolve();\n }\n }, 50);\n }\n });\n}\nasync function getConfig() {\n await waitForInitialization();\n return clientConfig;\n}\n\n// Cache for get responses\nconst getCache = {};\n// Track in-flight requests to coalesce multiple identical requests\nconst pendingRequests = {};\n// Default cache TTL (500ms = 0.5 seconds)\nconst GET_CACHE_TTL = 500; // Adjust this value as needed (in milliseconds)\n// Last time we cleaned up the cache\nlet lastCacheCleanup = Date.now();\nasync function get(path, opts = {}) {\n try {\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n // Create cache key combining path and prompt\n const cacheKey = `${normalizedPath}:${opts.prompt || ''}`;\n const now = Date.now();\n // Check for valid cache entry if not bypassing cache\n if (!opts.bypassCache && getCache[cacheKey] && now < getCache[cacheKey].expiresAt) {\n return getCache[cacheKey].data;\n }\n // If we're bypassing cache, we should still coalesce identical requests\n // but need a different key to avoid interfering with regular requests\n const requestKey = opts.bypassCache ? `bypass:${cacheKey}` : cacheKey;\n // Check if there's already an in-flight request for this key\n // Fix for TS error - use hasOwnProperty to explicitly check if key exists\n if (Object.prototype.hasOwnProperty.call(pendingRequests, requestKey)) {\n // Return the existing promise to coalesce requests\n return pendingRequests[requestKey];\n }\n // Create a new request promise and store it\n const requestPromise = (async () => {\n try {\n // Cache miss or bypass - proceed with API request\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n let response;\n if (pathIsDocument) {\n const itemId = encodeURIComponent(normalizedPath);\n const apiPath = `items/${itemId}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n else {\n const path = encodeURIComponent(normalizedPath);\n const promptQueryParam = (opts === null || opts === void 0 ? void 0 : opts.prompt) ? `&prompt=${btoa(opts.prompt)}` : \"\";\n const apiPath = `items?path=${path}${promptQueryParam}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n // Cache the response (unless bypassing cache)\n if (!opts.bypassCache) {\n getCache[cacheKey] = {\n data: response.data,\n expiresAt: now + GET_CACHE_TTL\n };\n // Periodically clean up expired cache entries (every 5 seconds)\n if (now - lastCacheCleanup > 5000) {\n cleanupExpiredCache();\n lastCacheCleanup = now;\n }\n }\n // Return the data from the response\n return response.data;\n }\n finally {\n // Remove this request from pendingRequests regardless of success/failure\n delete pendingRequests[requestKey];\n }\n })();\n // Store the promise so other calls can join it\n pendingRequests[requestKey] = requestPromise;\n // Return the promise\n return requestPromise;\n }\n catch (error) {\n throw error;\n }\n}\n// Helper to clean up expired cache entries\nfunction cleanupExpiredCache() {\n const now = Date.now();\n let removedCount = 0;\n Object.keys(getCache).forEach(key => {\n if (getCache[key] && getCache[key].expiresAt < now) {\n delete getCache[key];\n removedCount++;\n }\n });\n if (removedCount > 0) {\n console.debug(`Cleaned up ${removedCount} expired cache entries`);\n }\n lastCacheCleanup = now;\n}\nasync function runQuery(absolutePath, queryName, queryArgs) {\n const result = await runQueryMany([{ absolutePath, queryName, queryArgs }]);\n return result[0];\n}\nasync function runQueryMany(many) {\n try {\n let queries = [];\n for (const { absolutePath, queryName, queryArgs } of many) {\n const normalizedPath = absolutePath.startsWith(\"/\") ? absolutePath.slice(1) : absolutePath;\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (!pathIsDocument) {\n throw new Error(`Invalid path provided make sure it is pointing to a document: ${absolutePath}`);\n }\n queries.push({ path: normalizedPath, queryName, queryArgs });\n }\n const response = await makeApiRequest('POST', 'queries', { queries }, undefined);\n return response.data.queries.map((result) => result.result);\n }\n catch (error) {\n throw error;\n }\n}\nasync function set(path, document, options) {\n const result = await setMany([{ path, document }], options);\n // Clear cache entries that might be affected by this update\n clearCacheByPrefix(path);\n return result;\n}\nasync function setMany(many, options) {\n // Returns the data that was set, or undefined if the document was already set.\n try {\n const config = await getConfig();\n const authProvider = config.authProvider;\n if (!authProvider) {\n throw new Error('Auth provider not initialized');\n }\n let documents = [];\n const pathsToInvalidate = new Set();\n for (const { path, document: documentWithReservedFields } of many) {\n // for setting, we should remove any pieces of the document that start with 'tarobase_' as they are internal and shouldn't be updated. The API would block it if it is one of the reserved ones\n let document = documentWithReservedFields;\n if (documentWithReservedFields) {\n document = Object.fromEntries(Object.entries(documentWithReservedFields).filter(([key]) => !key.startsWith('tarobase_')));\n }\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n pathsToInvalidate.add(normalizedPath);\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n let curItemId = \"\";\n if (pathIsDocument) {\n curItemId = normalizedPath.split(\"/\").pop() ? normalizedPath.split(\"/\").pop() : \"\";\n }\n else {\n curItemId = Math.random().toString(36).slice(2).substring(0, 12);\n }\n // if the path is a document, we need to append the document id to the path\n const collectionPath = pathIsDocument ? normalizedPath.split(\"/\").slice(0, -1).join(\"/\") : normalizedPath;\n pathsToInvalidate.add(collectionPath);\n let destinationPath = collectionPath;\n if (curItemId && curItemId.length > 0) {\n destinationPath = `${destinationPath}/${curItemId}`;\n }\n documents.push({ destinationPath, document });\n }\n const setResponse = await makeApiRequest('PUT', `items`, { documents }, options === null || options === void 0 ? void 0 : options._overrides);\n // Invalidate caches and pending requests for affected paths\n pathsToInvalidate.forEach(path => {\n clearCacheByPrefix(path);\n });\n if (setResponse.status === 202) {\n // This means that the document needs to be set on-chain, the API did nothing and gave us the\n // required info to run this transaction.\n const transactions = setResponse.data.transactions;\n let lastTxSignature = undefined;\n let signedTransaction = undefined;\n for (let i = 0; i < transactions.length; i++) {\n const curTx = transactions[i];\n const transactionResult = await handleSolanaTransaction(curTx, authProvider, options);\n lastTxSignature = transactionResult.transactionSignature;\n signedTransaction = transactionResult.signedTransaction;\n }\n // TODO: Should we wait here or do the optimistic subscription updates like below?\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: lastTxSignature, signedTransaction: signedTransaction });\n }\n else if (setResponse.status === 200) {\n // This means that the document was set successfully.\n // TODO: If we're able to be smarter about it, we can return the document here, and get it back from the server\n // rather than just using what we set.\n // TODO: We can also trigger subscriptions here maybe? Can even recall all relevant subscriptions here.\n if (setResponse.data === true) {\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: null });\n }\n else {\n return Object.assign(Object.assign({}, setResponse.data), { transactionId: null });\n }\n }\n else {\n throw new Error(`Failed to set document: ${setResponse}`);\n }\n }\n catch (error) {\n console.error(\"Error setting data\", error);\n throw error;\n }\n async function handleSolanaTransaction(tx, authProvider, options) {\n var _a, _b, _c, _d, _e;\n const solTransactionData = {\n remainingAccounts: tx.remainingAccounts,\n setDocumentData: tx.transactionArgs.setDocumentData,\n deletePaths: tx.transactionArgs.deletePaths,\n idl: tx.idl,\n txData: (_b = (_a = tx.txData) === null || _a === void 0 ? void 0 : _a.map((txData) => {\n var _a;\n return ({\n pluginFunctionKey: txData.pluginFunctionKey,\n txData: Buffer.from(txData.txData),\n raIndices: (_a = txData.raIndices) === null || _a === void 0 ? void 0 : _a.map((raIndex) => {\n if (isHexString(raIndex)) {\n return new BN(raIndex, \"hex\");\n }\n else {\n return new BN(raIndex);\n }\n }),\n });\n })) !== null && _b !== void 0 ? _b : [],\n };\n const config = await getConfig();\n const solTransaction = {\n appId: config.appId,\n txArgs: [solTransactionData],\n lutKey: (_c = tx.lutAddress) !== null && _c !== void 0 ? _c : null,\n preInstructions: (_e = (_d = tx.preInstructions) === null || _d === void 0 ? void 0 : _d.map((ix) => {\n var _a;\n const keys = (_a = ix.keys) === null || _a === void 0 ? void 0 : _a.map((k) => ({\n pubkey: new PublicKey(k.pubkey),\n isSigner: k.isSigner,\n isWritable: k.isWritable,\n }));\n const programId = ix.programId === SystemProgram.programId.toBase58()\n ? SystemProgram.programId // prettier to use the constant\n : new PublicKey(ix.programId);\n const data = Buffer.from(ix.data);\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n })) !== null && _e !== void 0 ? _e : [],\n };\n const transactionResult = await authProvider.runTransaction(undefined, solTransaction, options);\n return transactionResult;\n }\n}\n// Helper to clear cache entries by prefix\nfunction clearCacheByPrefix(prefix) {\n // Fixed: Use prefix instead of undefined 'path' variable\n const normalizedPrefix = prefix.startsWith(\"/\") ? prefix.slice(1) : prefix;\n // Clear cache entries\n Object.keys(getCache).forEach(key => {\n const [path] = key.split(':');\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n delete getCache[key];\n }\n });\n // Cancel pending requests for this path\n Object.keys(pendingRequests).forEach(key => {\n // Skip bypass-specific requests which have a different format\n if (key.startsWith('bypass:'))\n return;\n const [path] = key.split(':');\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n // We don't actually abort the fetch (we could with AbortController),\n // but we remove it from pending so new requests won't coalesce with it\n delete pendingRequests[key];\n }\n });\n}\nasync function getFiles(path) {\n try {\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n const apiPath = `storage?path=${normalizedPath}`;\n const response = await makeApiRequest('GET', apiPath, null, undefined);\n return response.data;\n }\n catch (error) {\n throw error;\n }\n}\nasync function setFile(path, file) {\n var _a;\n // 1) Get the presigned URL from your backend\n // (It looks like you already have this working.)\n const response = await makeApiRequest('POST', 'storage/url', {\n destinationPath: path,\n operation: file ? 'upload' : 'delete'\n }, undefined);\n if (file == null) {\n return true;\n }\n if (!((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.s3Url)) {\n throw new Error(\"No s3Url in response\");\n }\n const presignedUrl = response.data.s3Url; // The PUT URL you showed in the example\n // 2) Upload the file directly to S3 with a PUT request\n const uploadResponse = await fetch(presignedUrl, {\n method: 'PUT',\n headers: {\n // Use the file's actual content type so S3 knows how to serve it\n 'Content-Type': file.type,\n },\n body: file\n });\n // 3) Check if the upload was successful\n if (!uploadResponse.ok) {\n console.error(uploadResponse);\n const errorText = await uploadResponse.text();\n console.error('S3 Error Body:', errorText);\n throw new Error(`Upload failed with status: ${uploadResponse.status}`);\n }\n // Optionally return the file's public URL or some confirmation\n return true;\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nvar Event = /** @class */ (function () {\r\n function Event(type, target) {\r\n this.target = target;\r\n this.type = type;\r\n }\r\n return Event;\r\n}());\r\nvar ErrorEvent = /** @class */ (function (_super) {\r\n __extends(ErrorEvent, _super);\r\n function ErrorEvent(error, target) {\r\n var _this = _super.call(this, 'error', target) || this;\r\n _this.message = error.message;\r\n _this.error = error;\r\n return _this;\r\n }\r\n return ErrorEvent;\r\n}(Event));\r\nvar CloseEvent = /** @class */ (function (_super) {\r\n __extends(CloseEvent, _super);\r\n function CloseEvent(code, reason, target) {\r\n if (code === void 0) { code = 1000; }\r\n if (reason === void 0) { reason = ''; }\r\n var _this = _super.call(this, 'close', target) || this;\r\n _this.wasClean = true;\r\n _this.code = code;\r\n _this.reason = reason;\r\n return _this;\r\n }\r\n return CloseEvent;\r\n}(Event));\n\n/*!\r\n * Reconnecting WebSocket\r\n * by Pedro Ladaria <pedro.ladaria@gmail.com>\r\n * https://github.com/pladaria/reconnecting-websocket\r\n * License MIT\r\n */\r\nvar getGlobalWebSocket = function () {\r\n if (typeof WebSocket !== 'undefined') {\r\n // @ts-ignore\r\n return WebSocket;\r\n }\r\n};\r\n/**\r\n * Returns true if given argument looks like a WebSocket class\r\n */\r\nvar isWebSocket = function (w) { return typeof w !== 'undefined' && !!w && w.CLOSING === 2; };\r\nvar DEFAULT = {\r\n maxReconnectionDelay: 10000,\r\n minReconnectionDelay: 1000 + Math.random() * 4000,\r\n minUptime: 5000,\r\n reconnectionDelayGrowFactor: 1.3,\r\n connectionTimeout: 4000,\r\n maxRetries: Infinity,\r\n maxEnqueuedMessages: Infinity};\r\nvar ReconnectingWebSocket = /** @class */ (function () {\r\n function ReconnectingWebSocket(url, protocols, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this._listeners = {\r\n error: [],\r\n message: [],\r\n open: [],\r\n close: [],\r\n };\r\n this._retryCount = -1;\r\n this._shouldReconnect = true;\r\n this._connectLock = false;\r\n this._binaryType = 'blob';\r\n this._closeCalled = false;\r\n this._messageQueue = [];\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to CLOSED\r\n */\r\n this.onclose = null;\r\n /**\r\n * An event listener to be called when an error occurs\r\n */\r\n this.onerror = null;\r\n /**\r\n * An event listener to be called when a message is received from the server\r\n */\r\n this.onmessage = null;\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to OPEN;\r\n * this indicates that the connection is ready to send and receive data\r\n */\r\n this.onopen = null;\r\n this._handleOpen = function (event) {\r\n _this._debug('open event');\r\n var _a = _this._options.minUptime, minUptime = _a === void 0 ? DEFAULT.minUptime : _a;\r\n clearTimeout(_this._connectTimeout);\r\n _this._uptimeTimeout = setTimeout(function () { return _this._acceptOpen(); }, minUptime);\r\n _this._ws.binaryType = _this._binaryType;\r\n // send enqueued messages (messages sent before websocket open event)\r\n _this._messageQueue.forEach(function (message) { return _this._ws.send(message); });\r\n _this._messageQueue = [];\r\n if (_this.onopen) {\r\n _this.onopen(event);\r\n }\r\n _this._listeners.open.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleMessage = function (event) {\r\n _this._debug('message event');\r\n if (_this.onmessage) {\r\n _this.onmessage(event);\r\n }\r\n _this._listeners.message.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleError = function (event) {\r\n _this._debug('error event', event.message);\r\n _this._disconnect(undefined, event.message === 'TIMEOUT' ? 'timeout' : undefined);\r\n if (_this.onerror) {\r\n _this.onerror(event);\r\n }\r\n _this._debug('exec error listeners');\r\n _this._listeners.error.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n _this._connect();\r\n };\r\n this._handleClose = function (event) {\r\n _this._debug('close event');\r\n _this._clearTimeouts();\r\n if (_this._shouldReconnect) {\r\n _this._connect();\r\n }\r\n if (_this.onclose) {\r\n _this.onclose(event);\r\n }\r\n _this._listeners.close.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._url = url;\r\n this._protocols = protocols;\r\n this._options = options;\r\n if (this._options.startClosed) {\r\n this._shouldReconnect = false;\r\n }\r\n this._connect();\r\n }\r\n Object.defineProperty(ReconnectingWebSocket, \"CONNECTING\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"OPEN\", {\r\n get: function () {\r\n return 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSING\", {\r\n get: function () {\r\n return 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSED\", {\r\n get: function () {\r\n return 3;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CONNECTING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"OPEN\", {\r\n get: function () {\r\n return ReconnectingWebSocket.OPEN;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSED\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSED;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"binaryType\", {\r\n get: function () {\r\n return this._ws ? this._ws.binaryType : this._binaryType;\r\n },\r\n set: function (value) {\r\n this._binaryType = value;\r\n if (this._ws) {\r\n this._ws.binaryType = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"retryCount\", {\r\n /**\r\n * Returns the number or connection retries\r\n */\r\n get: function () {\r\n return Math.max(this._retryCount, 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"bufferedAmount\", {\r\n /**\r\n * The number of bytes of data that have been queued using calls to send() but not yet\r\n * transmitted to the network. This value resets to zero once all queued data has been sent.\r\n * This value does not reset to zero when the connection is closed; if you keep calling send(),\r\n * this will continue to climb. Read only\r\n */\r\n get: function () {\r\n var bytes = this._messageQueue.reduce(function (acc, message) {\r\n if (typeof message === 'string') {\r\n acc += message.length; // not byte size\r\n }\r\n else if (message instanceof Blob) {\r\n acc += message.size;\r\n }\r\n else {\r\n acc += message.byteLength;\r\n }\r\n return acc;\r\n }, 0);\r\n return bytes + (this._ws ? this._ws.bufferedAmount : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"extensions\", {\r\n /**\r\n * The extensions selected by the server. This is currently only the empty string or a list of\r\n * extensions as negotiated by the connection\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.extensions : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"protocol\", {\r\n /**\r\n * A string indicating the name of the sub-protocol the server selected;\r\n * this will be one of the strings specified in the protocols parameter when creating the\r\n * WebSocket object\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.protocol : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"readyState\", {\r\n /**\r\n * The current state of the connection; this is one of the Ready state constants\r\n */\r\n get: function () {\r\n if (this._ws) {\r\n return this._ws.readyState;\r\n }\r\n return this._options.startClosed\r\n ? ReconnectingWebSocket.CLOSED\r\n : ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"url\", {\r\n /**\r\n * The URL as resolved by the constructor\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.url : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Closes the WebSocket connection or connection attempt, if any. If the connection is already\r\n * CLOSED, this method does nothing\r\n */\r\n ReconnectingWebSocket.prototype.close = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._closeCalled = true;\r\n this._shouldReconnect = false;\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n this._debug('close enqueued: no ws instance');\r\n return;\r\n }\r\n if (this._ws.readyState === this.CLOSED) {\r\n this._debug('close: already closed');\r\n return;\r\n }\r\n this._ws.close(code, reason);\r\n };\r\n /**\r\n * Closes the WebSocket connection or connection attempt and connects again.\r\n * Resets retry counter;\r\n */\r\n ReconnectingWebSocket.prototype.reconnect = function (code, reason) {\r\n this._shouldReconnect = true;\r\n this._closeCalled = false;\r\n this._retryCount = -1;\r\n if (!this._ws || this._ws.readyState === this.CLOSED) {\r\n this._connect();\r\n }\r\n else {\r\n this._disconnect(code, reason);\r\n this._connect();\r\n }\r\n };\r\n /**\r\n * Enqueue specified data to be transmitted to the server over the WebSocket connection\r\n */\r\n ReconnectingWebSocket.prototype.send = function (data) {\r\n if (this._ws && this._ws.readyState === this.OPEN) {\r\n this._debug('send', data);\r\n this._ws.send(data);\r\n }\r\n else {\r\n var _a = this._options.maxEnqueuedMessages, maxEnqueuedMessages = _a === void 0 ? DEFAULT.maxEnqueuedMessages : _a;\r\n if (this._messageQueue.length < maxEnqueuedMessages) {\r\n this._debug('enqueue', data);\r\n this._messageQueue.push(data);\r\n }\r\n }\r\n };\r\n /**\r\n * Register an event handler of a specific event type\r\n */\r\n ReconnectingWebSocket.prototype.addEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type].push(listener);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype.dispatchEvent = function (event) {\r\n var e_1, _a;\r\n var listeners = this._listeners[event.type];\r\n if (listeners) {\r\n try {\r\n for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {\r\n var listener = listeners_1_1.value;\r\n this._callEventListener(event, listener);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes an event listener\r\n */\r\n ReconnectingWebSocket.prototype.removeEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type] = this._listeners[type].filter(function (l) { return l !== listener; });\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this._options.debug) {\r\n // not using spread because compiled version uses Symbols\r\n // tslint:disable-next-line\r\n console.log.apply(console, __spread(['RWS>'], args));\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._getNextDelay = function () {\r\n var _a = this._options, _b = _a.reconnectionDelayGrowFactor, reconnectionDelayGrowFactor = _b === void 0 ? DEFAULT.reconnectionDelayGrowFactor : _b, _c = _a.minReconnectionDelay, minReconnectionDelay = _c === void 0 ? DEFAULT.minReconnectionDelay : _c, _d = _a.maxReconnectionDelay, maxReconnectionDelay = _d === void 0 ? DEFAULT.maxReconnectionDelay : _d;\r\n var delay = 0;\r\n if (this._retryCount > 0) {\r\n delay =\r\n minReconnectionDelay * Math.pow(reconnectionDelayGrowFactor, this._retryCount - 1);\r\n if (delay > maxReconnectionDelay) {\r\n delay = maxReconnectionDelay;\r\n }\r\n }\r\n this._debug('next delay', delay);\r\n return delay;\r\n };\r\n ReconnectingWebSocket.prototype._wait = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, _this._getNextDelay());\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._getNextUrl = function (urlProvider) {\r\n if (typeof urlProvider === 'string') {\r\n return Promise.resolve(urlProvider);\r\n }\r\n if (typeof urlProvider === 'function') {\r\n var url = urlProvider();\r\n if (typeof url === 'string') {\r\n return Promise.resolve(url);\r\n }\r\n if (!!url.then) {\r\n return url;\r\n }\r\n }\r\n throw Error('Invalid URL');\r\n };\r\n ReconnectingWebSocket.prototype._connect = function () {\r\n var _this = this;\r\n if (this._connectLock || !this._shouldReconnect) {\r\n return;\r\n }\r\n this._connectLock = true;\r\n var _a = this._options, _b = _a.maxRetries, maxRetries = _b === void 0 ? DEFAULT.maxRetries : _b, _c = _a.connectionTimeout, connectionTimeout = _c === void 0 ? DEFAULT.connectionTimeout : _c, _d = _a.WebSocket, WebSocket = _d === void 0 ? getGlobalWebSocket() : _d;\r\n if (this._retryCount >= maxRetries) {\r\n this._debug('max retries reached', this._retryCount, '>=', maxRetries);\r\n return;\r\n }\r\n this._retryCount++;\r\n this._debug('connect', this._retryCount);\r\n this._removeListeners();\r\n if (!isWebSocket(WebSocket)) {\r\n throw Error('No valid WebSocket class provided');\r\n }\r\n this._wait()\r\n .then(function () { return _this._getNextUrl(_this._url); })\r\n .then(function (url) {\r\n // close could be called before creating the ws\r\n if (_this._closeCalled) {\r\n return;\r\n }\r\n _this._debug('connect', { url: url, protocols: _this._protocols });\r\n _this._ws = _this._protocols\r\n ? new WebSocket(url, _this._protocols)\r\n : new WebSocket(url);\r\n _this._ws.binaryType = _this._binaryType;\r\n _this._connectLock = false;\r\n _this._addListeners();\r\n _this._connectTimeout = setTimeout(function () { return _this._handleTimeout(); }, connectionTimeout);\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._handleTimeout = function () {\r\n this._debug('timeout event');\r\n this._handleError(new ErrorEvent(Error('TIMEOUT'), this));\r\n };\r\n ReconnectingWebSocket.prototype._disconnect = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._removeListeners();\r\n try {\r\n this._ws.close(code, reason);\r\n this._handleClose(new CloseEvent(code, reason, this));\r\n }\r\n catch (error) {\r\n // ignore\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._acceptOpen = function () {\r\n this._debug('accept open');\r\n this._retryCount = 0;\r\n };\r\n ReconnectingWebSocket.prototype._callEventListener = function (event, listener) {\r\n if ('handleEvent' in listener) {\r\n // @ts-ignore\r\n listener.handleEvent(event);\r\n }\r\n else {\r\n // @ts-ignore\r\n listener(event);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._removeListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('removeListeners');\r\n this._ws.removeEventListener('open', this._handleOpen);\r\n this._ws.removeEventListener('close', this._handleClose);\r\n this._ws.removeEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.removeEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._addListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('addListeners');\r\n this._ws.addEventListener('open', this._handleOpen);\r\n this._ws.addEventListener('close', this._handleClose);\r\n this._ws.addEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.addEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._clearTimeouts = function () {\r\n clearTimeout(this._connectTimeout);\r\n clearTimeout(this._uptimeTimeout);\r\n };\r\n return ReconnectingWebSocket;\r\n}());\n\nconst activeConnections = {};\nconst responseCache = {};\nconst CACHE_TTL = 5 * 60 * 1000; // 5 minutes cache TTL\nconst WS_CONFIG = {\n maxRetries: 10,\n minReconnectionDelay: 1000,\n maxReconnectionDelay: 30000,\n reconnectionDelayGrowFactor: 1.3,\n};\nasync function subscribe(path, subscriptionOptions) {\n const config = await getConfig();\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const authToken = await getIdToken(config.isServer);\n // Create unique connection key that includes prompt to support multiple subscriptions with different prompts\n const connectionKey = `${normalizedPath}:${subscriptionOptions.prompt || 'default'}`;\n // Deliver cached data immediately if available and not expired\n const cachedEntry = responseCache[connectionKey];\n if (cachedEntry && Date.now() - cachedEntry.timestamp < CACHE_TTL && subscriptionOptions.onData) {\n setTimeout(() => {\n var _a;\n (_a = subscriptionOptions.onData) === null || _a === void 0 ? void 0 : _a.call(subscriptionOptions, cachedEntry.data);\n }, 0);\n }\n // If there's already an active connection with the same prompt\n if (activeConnections[connectionKey]) {\n activeConnections[connectionKey].subscriptions.push(subscriptionOptions);\n return async () => await removeSubscription(connectionKey, subscriptionOptions);\n }\n // Create WebSocket URL with timestamp to ensure fresh connection\n const wsUrl = new URL(config.wsApiUrl);\n // Logic for console - preserve existing custom app ID logic\n if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n if (customAppId) {\n wsUrl.searchParams.append('appId', customAppId);\n }\n }\n else {\n wsUrl.searchParams.append('appId', config.appId);\n }\n wsUrl.searchParams.append('path', normalizedPath);\n wsUrl.searchParams.append('_t', Date.now().toString()); // Add timestamp to prevent connection reuse issues\n if (authToken) {\n wsUrl.searchParams.append('authorization', authToken);\n }\n if (subscriptionOptions.prompt) {\n wsUrl.searchParams.append('prompt', btoa(subscriptionOptions.prompt));\n }\n // Create a new WebSocket connection\n const ws = new ReconnectingWebSocket(wsUrl.toString(), [], Object.assign(Object.assign({}, WS_CONFIG), { connectionTimeout: 4000, debug: process.env.NODE_ENV === 'development' }));\n // Create connection object with connecting flag\n activeConnections[connectionKey] = {\n ws,\n subscriptions: [subscriptionOptions],\n isConnecting: true,\n };\n ws.addEventListener('open', () => {\n activeConnections[connectionKey].isConnecting = false;\n // Fetch initial data if needed (currently commented out)\n (async () => {\n try {\n // For ID Paths, we should fetch the initial data from the api.\n // This helps us determine if it's null or just loading.\n if (normalizedPath.split('/').length % 2 === 0) {\n const initialData = await get(path, { prompt: subscriptionOptions.prompt });\n if (initialData) {\n updateCache(connectionKey, initialData);\n notifySubscribers(connectionKey, initialData);\n }\n }\n }\n catch (error) {\n notifyError(normalizedPath, error);\n }\n })();\n });\n ws.addEventListener('message', (event) => {\n try {\n let data = JSON.parse(event.data);\n let value = null;\n if (data && data.length && data.length > 0 && data[0] && data[0].value) {\n value = data[0].value;\n }\n else if (data && data.length) {\n // If we had a length but didn't have a proper value or element in there, then this is an empty message, and we should just send null.\n value = null;\n }\n else {\n value = data.value;\n }\n updateCache(connectionKey, value);\n notifySubscribers(connectionKey, value);\n }\n catch (error) {\n notifyError(connectionKey, error);\n }\n });\n ws.addEventListener('error', (event) => {\n console.error(`WebSocket error for path: ${connectionKey}`, event);\n notifyError(connectionKey, event);\n });\n ws.addEventListener('close', (event) => {\n // Connection will be recreated on next subscription if needed\n });\n return async () => await removeSubscription(connectionKey, subscriptionOptions);\n}\nfunction updateCache(path, data) {\n responseCache[path] = {\n data,\n timestamp: Date.now()\n };\n}\nfunction notifySubscribers(connectionKey, data) {\n var _a;\n (_a = activeConnections[connectionKey]) === null || _a === void 0 ? void 0 : _a.subscriptions.forEach(sub => {\n var _a;\n (_a = sub.onData) === null || _a === void 0 ? void 0 : _a.call(sub, data);\n });\n}\nfunction notifyError(connectionKey, error) {\n var _a;\n (_a = activeConnections[connectionKey]) === null || _a === void 0 ? void 0 : _a.subscriptions.forEach(sub => {\n var _a;\n (_a = sub.onError) === null || _a === void 0 ? void 0 : _a.call(sub, error);\n });\n}\nasync function removeSubscription(connectionKey, subscription) {\n const connection = activeConnections[connectionKey];\n if (!connection)\n return;\n // Remove the specific subscription\n connection.subscriptions = connection.subscriptions.filter(sub => sub !== subscription);\n // If there are still subscriptions, resolve immediately\n if (connection.subscriptions.length > 0) {\n return;\n }\n // No subscriptions left, close the WebSocket and wait for closure\n const ws = connection.ws;\n await new Promise((resolve) => {\n ws.addEventListener('close', () => {\n resolve();\n });\n ws.addEventListener('error', (err) => {\n console.error(`WebSocket closure error for connection: ${connectionKey}`, err);\n resolve(); // Resolve even on error to avoid hanging\n });\n ws.close();\n });\n // Cleanup after closure is confirmed\n delete activeConnections[connectionKey];\n}\n\nexport { ServerSessionManager, WebSessionManager, buildSetDocumentsTransaction, convertRemainingAccounts, createSessionWithPrivy, createSessionWithSignature, genSolanaMessage, get, getConfig, getFiles, getIdToken, init, refreshSession, runQuery, runQueryMany, set, setFile, setMany, signSessionCreateMessage, subscribe };\n//# sourceMappingURL=index.mjs.map\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Find code of next character\n var charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n var carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = new Uint8Array(zeroes + (size - it4))\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","const basex = require('base-x')\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","import {\n ComputeBudgetProgram,\n Connection,\n Keypair,\n Transaction,\n VersionedTransaction\n} from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport nacl from 'tweetnacl';\nimport bs58 from 'bs58';\n\nimport type {\n AuthProvider,\n EVMTransaction,\n SolTransaction,\n TransactionResult,\n User,\n SetOptions,\n} from '@tarobase/core';\n\nimport {\n convertRemainingAccounts,\n buildSetDocumentsTransaction,\n} from '@tarobase/core';\n\n/* ------------------------------------------------------------- *\n * REQUIRED ENV-VAR\n * ------------------------------------------------------------- */\nconst ENV_VAR = 'TAROBASE_SOLANA_KEYPAIR'; // base-58 or JSON array\n\nfunction loadKeypairFromEnv(): Keypair {\n const secret = process?.env?.[ENV_VAR];\n if (!secret) {\n throw new Error(\n `Missing ${ENV_VAR}. Set it to a base58 secret key or JSON array.`,\n );\n }\n\n try {\n const secretKey = secret.trim().startsWith('[')\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n\n return Keypair.fromSecretKey(secretKey);\n } catch (err) {\n throw new Error(\n `Unable to parse ${ENV_VAR}. Ensure it is valid base58 or a JSON array.`,\n );\n }\n}\n\n/* ──────────────────────────────────────────────────────────\n * Helper – fetch getPriorityFeeEstimate\n * ──────────────────────────────────────────────────────── */\nasync function fetchPriorityFee(rpcEndpoint: string, rawUnsignedTxBuffer: Uint8Array) {\n try {\n const res = await fetch(rpcEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"getPriorityFeeEstimate\",\n params: [{\n transaction: bs58.encode(rawUnsignedTxBuffer), options: {\n recommended: true\n }\n }]\n })\n });\n const data = await res.json() as { result: { priorityFeeEstimate: number } };\n const fee = data?.result?.priorityFeeEstimate ?? null;\n console.log(\"Got fee from Helius\", fee);\n if (fee != null && fee > 0) {\n return Math.ceil(Number(fee) * 1.2);\n } else {\n console.log(\"No fee from Helius, using default 10000\");\n return Math.ceil(10000 * 1.2);\n }\n } catch (err) {\n console.warn(\"Priority‑fee estimate failed:\", err);\n return Math.ceil(10000 * 1.2);\n }\n}\n\nexport class SolanaKeypairProvider implements AuthProvider {\n private readonly connection: Connection;\n private readonly keypair: Keypair;\n\n constructor(\n private readonly networkUrl: string = 'https://api.devnet.solana.com',\n ) {\n this.connection = new Connection(this.networkUrl, 'confirmed');\n this.keypair = loadKeypairFromEnv();\n }\n\n /* ----------------------------------------------------------- *\n * (Auth stubs – fill in later if needed)\n * ----------------------------------------------------------- */\n async login(): Promise<User | null> { throw new Error('Not implemented'); }\n async restoreSession(): Promise<User | null> { throw new Error('Not implemented'); }\n async logout(): Promise<void> { throw new Error('Not implemented'); }\n\n /* ----------------------------------------------------------- *\n * Sign arbitrary message\n * ----------------------------------------------------------- */\n async signMessage(message: string): Promise<string> {\n const sig = nacl.sign.detached(\n new TextEncoder().encode(message),\n this.keypair.secretKey,\n );\n return Buffer.from(sig).toString('base64');\n }\n\n /* ----------------------------------------------------------- *\n * Transaction runner\n * ----------------------------------------------------------- */\n async runTransaction(\n _evm?: EVMTransaction,\n sol?: SolTransaction,\n opts?: SetOptions,\n ): Promise<TransactionResult> {\n if (!sol) throw new Error('Solana transaction data required');\n\n const kp = this.keypair;\n\n const wallet: anchor.Wallet = {\n publicKey: kp.publicKey,\n signTransaction: async (tx: Transaction | VersionedTransaction) => {\n if (tx instanceof Transaction) {\n tx.partialSign(kp);\n } else if (tx instanceof VersionedTransaction) {\n tx.sign([kp]);\n }\n return tx;\n },\n signAllTransactions: async (txs: (Transaction | VersionedTransaction)[]) =>\n txs.map((t) => {\n if (t instanceof Transaction) {\n t.partialSign(kp);\n } else if (t instanceof VersionedTransaction) {\n t.sign([kp]);\n }\n return t;\n }),\n } as unknown as anchor.Wallet;\n\n /* de-dupe remaining accounts */\n const deduped = (() => {\n const fin: ReturnType<typeof convertRemainingAccounts> = [];\n for (const acc of convertRemainingAccounts(\n sol.txArgs[0].remainingAccounts,\n )) {\n const ex = fin.find((x) => x.pubkey.equals(acc.pubkey));\n if (ex) {\n ex.isSigner ||= acc.isSigner;\n ex.isWritable ||= acc.isWritable;\n } else fin.push(acc);\n }\n return fin;\n })();\n\n let retries = 0;\n let didPass = false;\n let delay = 3000;\n let toReturn: TransactionResult | null = null;\n let errorMessage = \"\";\n while (retries < 5) {\n try {\n toReturn = await this.runTransactionInner(sol, opts, wallet, kp, deduped);\n didPass = true;\n break;\n } catch (error: any) {\n console.log(\"Error building and sending transaction on retry:\", retries, error);\n // Wait 3 seconds before retrying\n await new Promise(resolve => setTimeout(resolve, delay));\n // Exponential backoff\n delay *= 2;\n retries++;\n errorMessage = error.message || JSON.stringify(error, null, 2);\n }\n }\n if (!didPass) {\n throw new Error(`Failed to send transaction after 5 retries: ${errorMessage}`);\n }\n return toReturn as TransactionResult;\n }\n\n private async runTransactionInner(sol: SolTransaction, opts: SetOptions | undefined, wallet: anchor.Wallet, kp: Keypair, deduped: ReturnType<typeof convertRemainingAccounts>): Promise<TransactionResult> {\n\n const anchorProvider = new anchor.AnchorProvider(\n this.connection,\n wallet,\n anchor.AnchorProvider.defaultOptions(),\n );\n\n const app_id = sol.appId;\n if (!app_id) throw new Error('app_id missing');\n\n let { tx, blockhash, lastValidBlockHeight } = await buildSetDocumentsTransaction(\n this.connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n sol.preInstructions,\n false,\n );\n\n // Refresh blockhash and lastValidBlockHeight\n if (tx instanceof Transaction) {\n tx.partialSign(kp);\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n tx.feePayer = kp.publicKey;\n } else if (tx instanceof VersionedTransaction) {\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n\n // 3️⃣ Optional priority‑fee instruction\n\n const rawUnsigned = tx.serialize({ requireAllSignatures: false });\n const microLamports = await fetchPriorityFee(\n this.connection.rpcEndpoint,\n rawUnsigned\n );\n\n if (microLamports != null) {\n if (tx instanceof Transaction) {\n tx.instructions.unshift(\n ComputeBudgetProgram.setComputeUnitPrice({ microLamports })\n );\n tx.partialSign(kp);\n } else if (tx instanceof VersionedTransaction) {\n // Rebuild the transaction with the new priority fee\n const roundTwo = await buildSetDocumentsTransaction(\n this.connection,\n sol.txArgs[0].idl,\n anchorProvider,\n kp.publicKey,\n {\n app_id,\n documents: sol.txArgs[0].setDocumentData,\n delete_paths: sol.txArgs[0].deletePaths,\n txData: sol.txArgs[0].txData\n },\n deduped,\n sol.lutKey,\n [ComputeBudgetProgram.setComputeUnitPrice({ microLamports }), ...sol.preInstructions],\n false,\n );\n tx = roundTwo.tx as VersionedTransaction;\n blockhash = roundTwo.blockhash;\n lastValidBlockHeight = roundTwo.lastValidBlockHeight;\n tx.sign([kp]);\n tx.message.recentBlockhash = blockhash;\n }\n }\n\n if (opts?.shouldSubmitTx === false) {\n return { signedTransaction: tx, blockNumber: 0, gasUsed: '0', data: '' };\n }\n\n const sig = await this.connection.sendRawTransaction(tx.serialize(), {\n preflightCommitment: \"confirmed\",\n });\n\n const startTime = Date.now();\n const timeoutMs = 10 * 1000; // 10 seconds\n\n while (true) {\n const st = await this.connection.getSignatureStatus(sig);\n if (st?.value?.confirmationStatus === 'confirmed') {\n break;\n }\n\n // Check if we've exceeded the timeout\n if (Date.now() - startTime > timeoutMs) {\n throw new Error(`Transaction confirmation timeout after ${timeoutMs / 1000} seconds`);\n }\n\n await new Promise(resolve => setTimeout(resolve, 500));\n }\n\n const info = await this.connection.getTransaction(sig, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n\n return {\n transactionSignature: sig,\n blockNumber: info?.slot ?? 0,\n gasUsed: info?.meta?.fee.toString() ?? '0',\n data: info?.meta,\n };\n }\n\n /* ----------------------------------------------------------- */\n async getNativeMethods() {\n return { keypair: this.keypair, connection: this.connection };\n }\n}\n","import { getConfig } from '@tarobase/core';\nimport { AuthProvider } from '@tarobase/core';\nimport { SolanaKeypairProvider } from './providers/solana-keypair-provider';\n\nlet currentAuthProvider: AuthProvider | null = null;\n\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\n\nexport async function getAuthProvider(): Promise<AuthProvider> {\n if (currentAuthProvider) {\n return currentAuthProvider;\n }\n\n const config = await getConfig();\n\n // Get the RPC URL from config if available\n let rpcUrl = '';\n if (config.chain === 'solana_devnet') {\n rpcUrl = SOLANA_DEVNET_RPC_URL;\n } else if (config.chain === 'solana_mainnet') {\n rpcUrl = SOLANA_MAINNET_RPC_URL;\n } else {\n rpcUrl = SOLANA_DEVNET_RPC_URL;\n }\n\n currentAuthProvider = await matchAuthProvider(config.rpcUrl ?? rpcUrl);\n\n return currentAuthProvider;\n}\n\nexport async function matchAuthProvider(rpcUrl: string): Promise<AuthProvider> {\n return new SolanaKeypairProvider(rpcUrl);\n}","import { AuthProvider } from '@tarobase/core';\nimport { matchAuthProvider } from './auth';\nimport { init as configInit, ClientConfig } from '@tarobase/core';\n\nlet authProviderInstance: AuthProvider | null = null;\n\nconst SOLANA_DEVNET_RPC_URL = \"https://api.devnet.solana.com\";\nconst SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\n\nexport async function init(newConfig: Partial<ClientConfig>): Promise<void> {\n\n let defaultRpcUrl = '';\n if (newConfig.chain === 'solana_devnet') {\n defaultRpcUrl = SOLANA_DEVNET_RPC_URL;\n } else if (newConfig.chain === 'solana_mainnet') {\n defaultRpcUrl = SOLANA_MAINNET_RPC_URL;\n } else {\n defaultRpcUrl = SOLANA_DEVNET_RPC_URL;\n }\n authProviderInstance = await matchAuthProvider(newConfig.rpcUrl ?? defaultRpcUrl);\n await configInit({ ...newConfig, authProvider: authProviderInstance, isServer: true });\n}"],"names":["bs58","getDefaultExportFromCjs","commonjsRequire","naclFast","hasRequiredNaclFast","requireNaclFast","naclFastExports","nacl","loadKeypairFromEnv","init","require","require$$0","SOLANA_DEVNET_RPC_URL","SOLANA_MAINNET_RPC_URL","configInit"],"mappings":"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AG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,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CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;AAE5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;AAE5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;AAE5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;AAE5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GA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AG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACxF,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,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AG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,MAAM;;AAEtC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC;AACxD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAA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,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CA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;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACb,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACjB,IAAI,GAAG,IAAI,CAAC,G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,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAE1B;AACA,IAAI,CAAC,GAAG,CAAC;AACT,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AACvE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAE1B,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,IA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,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE;AACzB,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;AAC3B,MAA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AAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC5D,MAAM,CAAC,GAAG,CA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I,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AACvD,MAAM,EAAE,IAAI,SAAS;AACrB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AACvD,MAAM,EAAE,IAAI,SAAS;AACrB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AACvD,MAAM,EAAE,IAAI,SAAS;AACrB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AACvD,MAAM,EAAE,IAAI,SAAS;AACrB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;AACxD,MAAM,GAAG,IAAI,SAAS;AACtB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;AACxD,MAAM,GAAG,IAAI,SAAS;AACtB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;AACxD,MAAM,GAAG,IAAI,SAAS;AACtB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;AACxD,MAAM,GAAG,IAAI,SAAS;AACtB;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AAC3C,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAA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,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;;AAEtF,IAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;QACtE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,G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E,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EA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AI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,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,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;;AAEhB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,EAAE,KAAK,EAAE,GAAG,GAAG;AACjB,IAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACjB,IAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACjB,IAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACjB,IAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACjB,IAAE,GAAG,IAAI,EAAE,GAAG,GAAG;AACjB;;AAEA;IACE,CAAC,GAAG,CAAC;IACL,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAExB;IACE,CAAC,GAAG,CAAC;IACL,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAExB,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE;AACZ,IAAE,CAAC,CAAC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","x_google_ignoreList":[0,1,2,3]}