]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blob - src/js/asmcrypto.js
bip39-standalone updated
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / js / asmcrypto.js
1 // https://rawgit.com/tresorit/asmcrypto.js/598a1098504f1b2d0e615bc51dd8404afd2d338b/asmcrypto.js
2 // Provides PBKDF2 functionality
3 // It's faster than CryptoJS
4 // Couldn't get SJCL working as desired
5
6
7 (function(exports, global) {
8 global["asmCrypto"] = exports;
9 "use strict";
10 function string_to_bytes(str) {
11 var i, len = str.length, arr = new Uint8Array(len);
12 for (i = 0; i < len; i += 1) {
13 arr[i] = str.charCodeAt(i);
14 }
15 return arr;
16 }
17 function hex_to_bytes(str) {
18 var arr = [], len = str.length, i;
19 if (len & 1) {
20 str = "0" + str;
21 len++;
22 }
23 for (i = 0; i < len; i += 2) {
24 arr.push(parseInt(str.substr(i, 2), 16));
25 }
26 return new Uint8Array(arr);
27 }
28 function base64_to_bytes(str) {
29 return string_to_bytes(atob(str));
30 }
31 function bytes_to_string(arr) {
32 var str = "";
33 for (var i = 0; i < arr.length; i++) str += String.fromCharCode(arr[i]);
34 return str;
35 }
36 function bytes_to_hex(arr) {
37 var sz = (arr.byteLength || arr.length) / arr.length, str = "";
38 for (var i = 0; i < arr.length; i++) {
39 var h = arr[i].toString(16);
40 if (h.length < 2 * sz) str += "00000000000000".substr(0, 2 * sz - h.length);
41 str += h;
42 }
43 return str;
44 }
45 function bytes_to_base64(arr) {
46 return btoa(bytes_to_string(arr));
47 }
48 function pow2_ceil(a) {
49 a -= 1;
50 a |= a >>> 1;
51 a |= a >>> 2;
52 a |= a >>> 4;
53 a |= a >>> 8;
54 a |= a >>> 16;
55 a += 1;
56 return a;
57 }
58 function is_number(a) {
59 return typeof a === "number";
60 }
61 function is_string(a) {
62 return typeof a === "string";
63 }
64 function is_buffer(a) {
65 return a instanceof ArrayBuffer;
66 }
67 function is_bytes(a) {
68 return a instanceof Uint8Array;
69 }
70 function is_typed_array(a) {
71 return a instanceof Int8Array || a instanceof Uint8Array || a instanceof Int16Array || a instanceof Uint16Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Float32Array || a instanceof Float64Array;
72 }
73 function IllegalStateError() {
74 Error.apply(this, arguments);
75 }
76 IllegalStateError.prototype = new Error();
77 function IllegalArgumentError() {
78 Error.apply(this, arguments);
79 }
80 IllegalArgumentError.prototype = new Error();
81 function SecurityError() {
82 Error.apply(this, arguments);
83 }
84 IllegalArgumentError.prototype = new Error();
85 var _aes_tables = [ 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22, 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125, 198, 248, 238, 246, 255, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44, 165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 255, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58, 0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70, 0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163, 0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 255, 180, 185, 174, 163, 128, 141, 154, 151, 0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141 ];
86 var _aes_heap_start = 2048;
87 function _aes_asm(stdlib, foreign, buffer) {
88 "use asm";
89 var S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0, S5 = 0, S6 = 0, S7 = 0, S8 = 0, S9 = 0, SA = 0, SB = 0, SC = 0, SD = 0, SE = 0, SF = 0;
90 var keySize = 0;
91 var R00 = 0, R01 = 0, R02 = 0, R03 = 0, R04 = 0, R05 = 0, R06 = 0, R07 = 0, R08 = 0, R09 = 0, R0A = 0, R0B = 0, R0C = 0, R0D = 0, R0E = 0, R0F = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, R15 = 0, R16 = 0, R17 = 0, R18 = 0, R19 = 0, R1A = 0, R1B = 0, R1C = 0, R1D = 0, R1E = 0, R1F = 0, R20 = 0, R21 = 0, R22 = 0, R23 = 0, R24 = 0, R25 = 0, R26 = 0, R27 = 0, R28 = 0, R29 = 0, R2A = 0, R2B = 0, R2C = 0, R2D = 0, R2E = 0, R2F = 0, R30 = 0, R31 = 0, R32 = 0, R33 = 0, R34 = 0, R35 = 0, R36 = 0, R37 = 0, R38 = 0, R39 = 0, R3A = 0, R3B = 0, R3C = 0, R3D = 0, R3E = 0, R3F = 0, R40 = 0, R41 = 0, R42 = 0, R43 = 0, R44 = 0, R45 = 0, R46 = 0, R47 = 0, R48 = 0, R49 = 0, R4A = 0, R4B = 0, R4C = 0, R4D = 0, R4E = 0, R4F = 0, R50 = 0, R51 = 0, R52 = 0, R53 = 0, R54 = 0, R55 = 0, R56 = 0, R57 = 0, R58 = 0, R59 = 0, R5A = 0, R5B = 0, R5C = 0, R5D = 0, R5E = 0, R5F = 0, R60 = 0, R61 = 0, R62 = 0, R63 = 0, R64 = 0, R65 = 0, R66 = 0, R67 = 0, R68 = 0, R69 = 0, R6A = 0, R6B = 0, R6C = 0, R6D = 0, R6E = 0, R6F = 0, R70 = 0, R71 = 0, R72 = 0, R73 = 0, R74 = 0, R75 = 0, R76 = 0, R77 = 0, R78 = 0, R79 = 0, R7A = 0, R7B = 0, R7C = 0, R7D = 0, R7E = 0, R7F = 0, R80 = 0, R81 = 0, R82 = 0, R83 = 0, R84 = 0, R85 = 0, R86 = 0, R87 = 0, R88 = 0, R89 = 0, R8A = 0, R8B = 0, R8C = 0, R8D = 0, R8E = 0, R8F = 0, R90 = 0, R91 = 0, R92 = 0, R93 = 0, R94 = 0, R95 = 0, R96 = 0, R97 = 0, R98 = 0, R99 = 0, R9A = 0, R9B = 0, R9C = 0, R9D = 0, R9E = 0, R9F = 0, RA0 = 0, RA1 = 0, RA2 = 0, RA3 = 0, RA4 = 0, RA5 = 0, RA6 = 0, RA7 = 0, RA8 = 0, RA9 = 0, RAA = 0, RAB = 0, RAC = 0, RAD = 0, RAE = 0, RAF = 0, RB0 = 0, RB1 = 0, RB2 = 0, RB3 = 0, RB4 = 0, RB5 = 0, RB6 = 0, RB7 = 0, RB8 = 0, RB9 = 0, RBA = 0, RBB = 0, RBC = 0, RBD = 0, RBE = 0, RBF = 0, RC0 = 0, RC1 = 0, RC2 = 0, RC3 = 0, RC4 = 0, RC5 = 0, RC6 = 0, RC7 = 0, RC8 = 0, RC9 = 0, RCA = 0, RCB = 0, RCC = 0, RCD = 0, RCE = 0, RCF = 0, RD0 = 0, RD1 = 0, RD2 = 0, RD3 = 0, RD4 = 0, RD5 = 0, RD6 = 0, RD7 = 0, RD8 = 0, RD9 = 0, RDA = 0, RDB = 0, RDC = 0, RDD = 0, RDE = 0, RDF = 0, RE0 = 0, RE1 = 0, RE2 = 0, RE3 = 0, RE4 = 0, RE5 = 0, RE6 = 0, RE7 = 0, RE8 = 0, RE9 = 0, REA = 0, REB = 0, REC = 0, RED = 0, REE = 0, REF = 0;
92 var HEAP = new stdlib.Uint8Array(buffer);
93 function _expand_key_128() {
94 var sbox = 0;
95 R10 = R00 ^ HEAP[sbox | R0D] ^ 1;
96 R11 = R01 ^ HEAP[sbox | R0E];
97 R12 = R02 ^ HEAP[sbox | R0F];
98 R13 = R03 ^ HEAP[sbox | R0C];
99 R14 = R04 ^ R10;
100 R15 = R05 ^ R11;
101 R16 = R06 ^ R12;
102 R17 = R07 ^ R13;
103 R18 = R08 ^ R14;
104 R19 = R09 ^ R15;
105 R1A = R0A ^ R16;
106 R1B = R0B ^ R17;
107 R1C = R0C ^ R18;
108 R1D = R0D ^ R19;
109 R1E = R0E ^ R1A;
110 R1F = R0F ^ R1B;
111 R20 = R10 ^ HEAP[sbox | R1D] ^ 2;
112 R21 = R11 ^ HEAP[sbox | R1E];
113 R22 = R12 ^ HEAP[sbox | R1F];
114 R23 = R13 ^ HEAP[sbox | R1C];
115 R24 = R14 ^ R20;
116 R25 = R15 ^ R21;
117 R26 = R16 ^ R22;
118 R27 = R17 ^ R23;
119 R28 = R18 ^ R24;
120 R29 = R19 ^ R25;
121 R2A = R1A ^ R26;
122 R2B = R1B ^ R27;
123 R2C = R1C ^ R28;
124 R2D = R1D ^ R29;
125 R2E = R1E ^ R2A;
126 R2F = R1F ^ R2B;
127 R30 = R20 ^ HEAP[sbox | R2D] ^ 4;
128 R31 = R21 ^ HEAP[sbox | R2E];
129 R32 = R22 ^ HEAP[sbox | R2F];
130 R33 = R23 ^ HEAP[sbox | R2C];
131 R34 = R24 ^ R30;
132 R35 = R25 ^ R31;
133 R36 = R26 ^ R32;
134 R37 = R27 ^ R33;
135 R38 = R28 ^ R34;
136 R39 = R29 ^ R35;
137 R3A = R2A ^ R36;
138 R3B = R2B ^ R37;
139 R3C = R2C ^ R38;
140 R3D = R2D ^ R39;
141 R3E = R2E ^ R3A;
142 R3F = R2F ^ R3B;
143 R40 = R30 ^ HEAP[sbox | R3D] ^ 8;
144 R41 = R31 ^ HEAP[sbox | R3E];
145 R42 = R32 ^ HEAP[sbox | R3F];
146 R43 = R33 ^ HEAP[sbox | R3C];
147 R44 = R34 ^ R40;
148 R45 = R35 ^ R41;
149 R46 = R36 ^ R42;
150 R47 = R37 ^ R43;
151 R48 = R38 ^ R44;
152 R49 = R39 ^ R45;
153 R4A = R3A ^ R46;
154 R4B = R3B ^ R47;
155 R4C = R3C ^ R48;
156 R4D = R3D ^ R49;
157 R4E = R3E ^ R4A;
158 R4F = R3F ^ R4B;
159 R50 = R40 ^ HEAP[sbox | R4D] ^ 16;
160 R51 = R41 ^ HEAP[sbox | R4E];
161 R52 = R42 ^ HEAP[sbox | R4F];
162 R53 = R43 ^ HEAP[sbox | R4C];
163 R54 = R44 ^ R50;
164 R55 = R45 ^ R51;
165 R56 = R46 ^ R52;
166 R57 = R47 ^ R53;
167 R58 = R48 ^ R54;
168 R59 = R49 ^ R55;
169 R5A = R4A ^ R56;
170 R5B = R4B ^ R57;
171 R5C = R4C ^ R58;
172 R5D = R4D ^ R59;
173 R5E = R4E ^ R5A;
174 R5F = R4F ^ R5B;
175 R60 = R50 ^ HEAP[sbox | R5D] ^ 32;
176 R61 = R51 ^ HEAP[sbox | R5E];
177 R62 = R52 ^ HEAP[sbox | R5F];
178 R63 = R53 ^ HEAP[sbox | R5C];
179 R64 = R54 ^ R60;
180 R65 = R55 ^ R61;
181 R66 = R56 ^ R62;
182 R67 = R57 ^ R63;
183 R68 = R58 ^ R64;
184 R69 = R59 ^ R65;
185 R6A = R5A ^ R66;
186 R6B = R5B ^ R67;
187 R6C = R5C ^ R68;
188 R6D = R5D ^ R69;
189 R6E = R5E ^ R6A;
190 R6F = R5F ^ R6B;
191 R70 = R60 ^ HEAP[sbox | R6D] ^ 64;
192 R71 = R61 ^ HEAP[sbox | R6E];
193 R72 = R62 ^ HEAP[sbox | R6F];
194 R73 = R63 ^ HEAP[sbox | R6C];
195 R74 = R64 ^ R70;
196 R75 = R65 ^ R71;
197 R76 = R66 ^ R72;
198 R77 = R67 ^ R73;
199 R78 = R68 ^ R74;
200 R79 = R69 ^ R75;
201 R7A = R6A ^ R76;
202 R7B = R6B ^ R77;
203 R7C = R6C ^ R78;
204 R7D = R6D ^ R79;
205 R7E = R6E ^ R7A;
206 R7F = R6F ^ R7B;
207 R80 = R70 ^ HEAP[sbox | R7D] ^ 128;
208 R81 = R71 ^ HEAP[sbox | R7E];
209 R82 = R72 ^ HEAP[sbox | R7F];
210 R83 = R73 ^ HEAP[sbox | R7C];
211 R84 = R74 ^ R80;
212 R85 = R75 ^ R81;
213 R86 = R76 ^ R82;
214 R87 = R77 ^ R83;
215 R88 = R78 ^ R84;
216 R89 = R79 ^ R85;
217 R8A = R7A ^ R86;
218 R8B = R7B ^ R87;
219 R8C = R7C ^ R88;
220 R8D = R7D ^ R89;
221 R8E = R7E ^ R8A;
222 R8F = R7F ^ R8B;
223 R90 = R80 ^ HEAP[sbox | R8D] ^ 27;
224 R91 = R81 ^ HEAP[sbox | R8E];
225 R92 = R82 ^ HEAP[sbox | R8F];
226 R93 = R83 ^ HEAP[sbox | R8C];
227 R94 = R84 ^ R90;
228 R95 = R85 ^ R91;
229 R96 = R86 ^ R92;
230 R97 = R87 ^ R93;
231 R98 = R88 ^ R94;
232 R99 = R89 ^ R95;
233 R9A = R8A ^ R96;
234 R9B = R8B ^ R97;
235 R9C = R8C ^ R98;
236 R9D = R8D ^ R99;
237 R9E = R8E ^ R9A;
238 R9F = R8F ^ R9B;
239 RA0 = R90 ^ HEAP[sbox | R9D] ^ 54;
240 RA1 = R91 ^ HEAP[sbox | R9E];
241 RA2 = R92 ^ HEAP[sbox | R9F];
242 RA3 = R93 ^ HEAP[sbox | R9C];
243 RA4 = R94 ^ RA0;
244 RA5 = R95 ^ RA1;
245 RA6 = R96 ^ RA2;
246 RA7 = R97 ^ RA3;
247 RA8 = R98 ^ RA4;
248 RA9 = R99 ^ RA5;
249 RAA = R9A ^ RA6;
250 RAB = R9B ^ RA7;
251 RAC = R9C ^ RA8;
252 RAD = R9D ^ RA9;
253 RAE = R9E ^ RAA;
254 RAF = R9F ^ RAB;
255 }
256 function _expand_key_256() {
257 var sbox = 0;
258 R20 = R00 ^ HEAP[sbox | R1D] ^ 1;
259 R21 = R01 ^ HEAP[sbox | R1E];
260 R22 = R02 ^ HEAP[sbox | R1F];
261 R23 = R03 ^ HEAP[sbox | R1C];
262 R24 = R04 ^ R20;
263 R25 = R05 ^ R21;
264 R26 = R06 ^ R22;
265 R27 = R07 ^ R23;
266 R28 = R08 ^ R24;
267 R29 = R09 ^ R25;
268 R2A = R0A ^ R26;
269 R2B = R0B ^ R27;
270 R2C = R0C ^ R28;
271 R2D = R0D ^ R29;
272 R2E = R0E ^ R2A;
273 R2F = R0F ^ R2B;
274 R30 = R10 ^ HEAP[sbox | R2C];
275 R31 = R11 ^ HEAP[sbox | R2D];
276 R32 = R12 ^ HEAP[sbox | R2E];
277 R33 = R13 ^ HEAP[sbox | R2F];
278 R34 = R14 ^ R30;
279 R35 = R15 ^ R31;
280 R36 = R16 ^ R32;
281 R37 = R17 ^ R33;
282 R38 = R18 ^ R34;
283 R39 = R19 ^ R35;
284 R3A = R1A ^ R36;
285 R3B = R1B ^ R37;
286 R3C = R1C ^ R38;
287 R3D = R1D ^ R39;
288 R3E = R1E ^ R3A;
289 R3F = R1F ^ R3B;
290 R40 = R20 ^ HEAP[sbox | R3D] ^ 2;
291 R41 = R21 ^ HEAP[sbox | R3E];
292 R42 = R22 ^ HEAP[sbox | R3F];
293 R43 = R23 ^ HEAP[sbox | R3C];
294 R44 = R24 ^ R40;
295 R45 = R25 ^ R41;
296 R46 = R26 ^ R42;
297 R47 = R27 ^ R43;
298 R48 = R28 ^ R44;
299 R49 = R29 ^ R45;
300 R4A = R2A ^ R46;
301 R4B = R2B ^ R47;
302 R4C = R2C ^ R48;
303 R4D = R2D ^ R49;
304 R4E = R2E ^ R4A;
305 R4F = R2F ^ R4B;
306 R50 = R30 ^ HEAP[sbox | R4C];
307 R51 = R31 ^ HEAP[sbox | R4D];
308 R52 = R32 ^ HEAP[sbox | R4E];
309 R53 = R33 ^ HEAP[sbox | R4F];
310 R54 = R34 ^ R50;
311 R55 = R35 ^ R51;
312 R56 = R36 ^ R52;
313 R57 = R37 ^ R53;
314 R58 = R38 ^ R54;
315 R59 = R39 ^ R55;
316 R5A = R3A ^ R56;
317 R5B = R3B ^ R57;
318 R5C = R3C ^ R58;
319 R5D = R3D ^ R59;
320 R5E = R3E ^ R5A;
321 R5F = R3F ^ R5B;
322 R60 = R40 ^ HEAP[sbox | R5D] ^ 4;
323 R61 = R41 ^ HEAP[sbox | R5E];
324 R62 = R42 ^ HEAP[sbox | R5F];
325 R63 = R43 ^ HEAP[sbox | R5C];
326 R64 = R44 ^ R60;
327 R65 = R45 ^ R61;
328 R66 = R46 ^ R62;
329 R67 = R47 ^ R63;
330 R68 = R48 ^ R64;
331 R69 = R49 ^ R65;
332 R6A = R4A ^ R66;
333 R6B = R4B ^ R67;
334 R6C = R4C ^ R68;
335 R6D = R4D ^ R69;
336 R6E = R4E ^ R6A;
337 R6F = R4F ^ R6B;
338 R70 = R50 ^ HEAP[sbox | R6C];
339 R71 = R51 ^ HEAP[sbox | R6D];
340 R72 = R52 ^ HEAP[sbox | R6E];
341 R73 = R53 ^ HEAP[sbox | R6F];
342 R74 = R54 ^ R70;
343 R75 = R55 ^ R71;
344 R76 = R56 ^ R72;
345 R77 = R57 ^ R73;
346 R78 = R58 ^ R74;
347 R79 = R59 ^ R75;
348 R7A = R5A ^ R76;
349 R7B = R5B ^ R77;
350 R7C = R5C ^ R78;
351 R7D = R5D ^ R79;
352 R7E = R5E ^ R7A;
353 R7F = R5F ^ R7B;
354 R80 = R60 ^ HEAP[sbox | R7D] ^ 8;
355 R81 = R61 ^ HEAP[sbox | R7E];
356 R82 = R62 ^ HEAP[sbox | R7F];
357 R83 = R63 ^ HEAP[sbox | R7C];
358 R84 = R64 ^ R80;
359 R85 = R65 ^ R81;
360 R86 = R66 ^ R82;
361 R87 = R67 ^ R83;
362 R88 = R68 ^ R84;
363 R89 = R69 ^ R85;
364 R8A = R6A ^ R86;
365 R8B = R6B ^ R87;
366 R8C = R6C ^ R88;
367 R8D = R6D ^ R89;
368 R8E = R6E ^ R8A;
369 R8F = R6F ^ R8B;
370 R90 = R70 ^ HEAP[sbox | R8C];
371 R91 = R71 ^ HEAP[sbox | R8D];
372 R92 = R72 ^ HEAP[sbox | R8E];
373 R93 = R73 ^ HEAP[sbox | R8F];
374 R94 = R74 ^ R90;
375 R95 = R75 ^ R91;
376 R96 = R76 ^ R92;
377 R97 = R77 ^ R93;
378 R98 = R78 ^ R94;
379 R99 = R79 ^ R95;
380 R9A = R7A ^ R96;
381 R9B = R7B ^ R97;
382 R9C = R7C ^ R98;
383 R9D = R7D ^ R99;
384 R9E = R7E ^ R9A;
385 R9F = R7F ^ R9B;
386 RA0 = R80 ^ HEAP[sbox | R9D] ^ 16;
387 RA1 = R81 ^ HEAP[sbox | R9E];
388 RA2 = R82 ^ HEAP[sbox | R9F];
389 RA3 = R83 ^ HEAP[sbox | R9C];
390 RA4 = R84 ^ RA0;
391 RA5 = R85 ^ RA1;
392 RA6 = R86 ^ RA2;
393 RA7 = R87 ^ RA3;
394 RA8 = R88 ^ RA4;
395 RA9 = R89 ^ RA5;
396 RAA = R8A ^ RA6;
397 RAB = R8B ^ RA7;
398 RAC = R8C ^ RA8;
399 RAD = R8D ^ RA9;
400 RAE = R8E ^ RAA;
401 RAF = R8F ^ RAB;
402 RB0 = R90 ^ HEAP[sbox | RAC];
403 RB1 = R91 ^ HEAP[sbox | RAD];
404 RB2 = R92 ^ HEAP[sbox | RAE];
405 RB3 = R93 ^ HEAP[sbox | RAF];
406 RB4 = R94 ^ RB0;
407 RB5 = R95 ^ RB1;
408 RB6 = R96 ^ RB2;
409 RB7 = R97 ^ RB3;
410 RB8 = R98 ^ RB4;
411 RB9 = R99 ^ RB5;
412 RBA = R9A ^ RB6;
413 RBB = R9B ^ RB7;
414 RBC = R9C ^ RB8;
415 RBD = R9D ^ RB9;
416 RBE = R9E ^ RBA;
417 RBF = R9F ^ RBB;
418 RC0 = RA0 ^ HEAP[sbox | RBD] ^ 32;
419 RC1 = RA1 ^ HEAP[sbox | RBE];
420 RC2 = RA2 ^ HEAP[sbox | RBF];
421 RC3 = RA3 ^ HEAP[sbox | RBC];
422 RC4 = RA4 ^ RC0;
423 RC5 = RA5 ^ RC1;
424 RC6 = RA6 ^ RC2;
425 RC7 = RA7 ^ RC3;
426 RC8 = RA8 ^ RC4;
427 RC9 = RA9 ^ RC5;
428 RCA = RAA ^ RC6;
429 RCB = RAB ^ RC7;
430 RCC = RAC ^ RC8;
431 RCD = RAD ^ RC9;
432 RCE = RAE ^ RCA;
433 RCF = RAF ^ RCB;
434 RD0 = RB0 ^ HEAP[sbox | RCC];
435 RD1 = RB1 ^ HEAP[sbox | RCD];
436 RD2 = RB2 ^ HEAP[sbox | RCE];
437 RD3 = RB3 ^ HEAP[sbox | RCF];
438 RD4 = RB4 ^ RD0;
439 RD5 = RB5 ^ RD1;
440 RD6 = RB6 ^ RD2;
441 RD7 = RB7 ^ RD3;
442 RD8 = RB8 ^ RD4;
443 RD9 = RB9 ^ RD5;
444 RDA = RBA ^ RD6;
445 RDB = RBB ^ RD7;
446 RDC = RBC ^ RD8;
447 RDD = RBD ^ RD9;
448 RDE = RBE ^ RDA;
449 RDF = RBF ^ RDB;
450 RE0 = RC0 ^ HEAP[sbox | RDD] ^ 64;
451 RE1 = RC1 ^ HEAP[sbox | RDE];
452 RE2 = RC2 ^ HEAP[sbox | RDF];
453 RE3 = RC3 ^ HEAP[sbox | RDC];
454 RE4 = RC4 ^ RE0;
455 RE5 = RC5 ^ RE1;
456 RE6 = RC6 ^ RE2;
457 RE7 = RC7 ^ RE3;
458 RE8 = RC8 ^ RE4;
459 RE9 = RC9 ^ RE5;
460 REA = RCA ^ RE6;
461 REB = RCB ^ RE7;
462 REC = RCC ^ RE8;
463 RED = RCD ^ RE9;
464 REE = RCE ^ REA;
465 REF = RCF ^ REB;
466 }
467 function _encrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
468 s0 = s0 | 0;
469 s1 = s1 | 0;
470 s2 = s2 | 0;
471 s3 = s3 | 0;
472 s4 = s4 | 0;
473 s5 = s5 | 0;
474 s6 = s6 | 0;
475 s7 = s7 | 0;
476 s8 = s8 | 0;
477 s9 = s9 | 0;
478 sA = sA | 0;
479 sB = sB | 0;
480 sC = sC | 0;
481 sD = sD | 0;
482 sE = sE | 0;
483 sF = sF | 0;
484 var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, tA = 0, tB = 0, tC = 0, tD = 0, tE = 0, tF = 0, sbox = 0, x2_sbox = 512, x3_sbox = 768;
485 s0 = s0 ^ R00;
486 s1 = s1 ^ R01;
487 s2 = s2 ^ R02;
488 s3 = s3 ^ R03;
489 s4 = s4 ^ R04;
490 s5 = s5 ^ R05;
491 s6 = s6 ^ R06;
492 s7 = s7 ^ R07;
493 s8 = s8 ^ R08;
494 s9 = s9 ^ R09;
495 sA = sA ^ R0A;
496 sB = sB ^ R0B;
497 sC = sC ^ R0C;
498 sD = sD ^ R0D;
499 sE = sE ^ R0E;
500 sF = sF ^ R0F;
501 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R10;
502 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R11;
503 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R12;
504 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R13;
505 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R14;
506 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R15;
507 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R16;
508 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R17;
509 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R18;
510 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R19;
511 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R1A;
512 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R1B;
513 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R1C;
514 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R1D;
515 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R1E;
516 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R1F;
517 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R20;
518 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R21;
519 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R22;
520 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R23;
521 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R24;
522 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R25;
523 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R26;
524 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R27;
525 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R28;
526 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R29;
527 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R2A;
528 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R2B;
529 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R2C;
530 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R2D;
531 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R2E;
532 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R2F;
533 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R30;
534 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R31;
535 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R32;
536 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R33;
537 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R34;
538 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R35;
539 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R36;
540 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R37;
541 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R38;
542 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R39;
543 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R3A;
544 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R3B;
545 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R3C;
546 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R3D;
547 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R3E;
548 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R3F;
549 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R40;
550 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R41;
551 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R42;
552 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R43;
553 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R44;
554 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R45;
555 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R46;
556 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R47;
557 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R48;
558 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R49;
559 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R4A;
560 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R4B;
561 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R4C;
562 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R4D;
563 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R4E;
564 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R4F;
565 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R50;
566 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R51;
567 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R52;
568 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R53;
569 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R54;
570 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R55;
571 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R56;
572 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R57;
573 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R58;
574 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R59;
575 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R5A;
576 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R5B;
577 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R5C;
578 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R5D;
579 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R5E;
580 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R5F;
581 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R60;
582 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R61;
583 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R62;
584 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R63;
585 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R64;
586 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R65;
587 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R66;
588 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R67;
589 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R68;
590 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R69;
591 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R6A;
592 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R6B;
593 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R6C;
594 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R6D;
595 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R6E;
596 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R6F;
597 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R70;
598 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R71;
599 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R72;
600 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R73;
601 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R74;
602 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R75;
603 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R76;
604 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R77;
605 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R78;
606 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R79;
607 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R7A;
608 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R7B;
609 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R7C;
610 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R7D;
611 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R7E;
612 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R7F;
613 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R80;
614 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R81;
615 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R82;
616 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R83;
617 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R84;
618 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R85;
619 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R86;
620 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R87;
621 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R88;
622 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R89;
623 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R8A;
624 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R8B;
625 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R8C;
626 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R8D;
627 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R8E;
628 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R8F;
629 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R90;
630 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R91;
631 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R92;
632 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R93;
633 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R94;
634 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R95;
635 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R96;
636 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R97;
637 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R98;
638 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R99;
639 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R9A;
640 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R9B;
641 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R9C;
642 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R9D;
643 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R9E;
644 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R9F;
645 if ((keySize | 0) == 16) {
646 S0 = HEAP[sbox | t0] ^ RA0;
647 S1 = HEAP[sbox | t5] ^ RA1;
648 S2 = HEAP[sbox | tA] ^ RA2;
649 S3 = HEAP[sbox | tF] ^ RA3;
650 S4 = HEAP[sbox | t4] ^ RA4;
651 S5 = HEAP[sbox | t9] ^ RA5;
652 S6 = HEAP[sbox | tE] ^ RA6;
653 S7 = HEAP[sbox | t3] ^ RA7;
654 S8 = HEAP[sbox | t8] ^ RA8;
655 S9 = HEAP[sbox | tD] ^ RA9;
656 SA = HEAP[sbox | t2] ^ RAA;
657 SB = HEAP[sbox | t7] ^ RAB;
658 SC = HEAP[sbox | tC] ^ RAC;
659 SD = HEAP[sbox | t1] ^ RAD;
660 SE = HEAP[sbox | t6] ^ RAE;
661 SF = HEAP[sbox | tB] ^ RAF;
662 return;
663 }
664 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RA0;
665 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RA1;
666 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RA2;
667 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RA3;
668 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RA4;
669 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RA5;
670 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RA6;
671 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RA7;
672 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RA8;
673 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RA9;
674 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RAA;
675 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RAB;
676 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RAC;
677 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RAD;
678 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RAE;
679 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RAF;
680 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RB0;
681 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RB1;
682 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RB2;
683 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RB3;
684 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RB4;
685 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RB5;
686 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RB6;
687 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RB7;
688 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RB8;
689 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RB9;
690 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RBA;
691 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RBB;
692 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RBC;
693 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RBD;
694 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RBE;
695 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RBF;
696 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RC0;
697 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RC1;
698 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RC2;
699 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RC3;
700 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RC4;
701 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RC5;
702 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RC6;
703 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RC7;
704 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RC8;
705 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RC9;
706 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RCA;
707 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RCB;
708 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RCC;
709 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RCD;
710 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RCE;
711 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RCF;
712 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RD0;
713 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RD1;
714 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RD2;
715 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RD3;
716 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RD4;
717 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RD5;
718 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RD6;
719 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RD7;
720 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RD8;
721 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RD9;
722 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RDA;
723 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RDB;
724 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RDC;
725 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RDD;
726 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RDE;
727 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RDF;
728 S0 = HEAP[sbox | t0] ^ RE0;
729 S1 = HEAP[sbox | t5] ^ RE1;
730 S2 = HEAP[sbox | tA] ^ RE2;
731 S3 = HEAP[sbox | tF] ^ RE3;
732 S4 = HEAP[sbox | t4] ^ RE4;
733 S5 = HEAP[sbox | t9] ^ RE5;
734 S6 = HEAP[sbox | tE] ^ RE6;
735 S7 = HEAP[sbox | t3] ^ RE7;
736 S8 = HEAP[sbox | t8] ^ RE8;
737 S9 = HEAP[sbox | tD] ^ RE9;
738 SA = HEAP[sbox | t2] ^ REA;
739 SB = HEAP[sbox | t7] ^ REB;
740 SC = HEAP[sbox | tC] ^ REC;
741 SD = HEAP[sbox | t1] ^ RED;
742 SE = HEAP[sbox | t6] ^ REE;
743 SF = HEAP[sbox | tB] ^ REF;
744 }
745 function _decrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
746 s0 = s0 | 0;
747 s1 = s1 | 0;
748 s2 = s2 | 0;
749 s3 = s3 | 0;
750 s4 = s4 | 0;
751 s5 = s5 | 0;
752 s6 = s6 | 0;
753 s7 = s7 | 0;
754 s8 = s8 | 0;
755 s9 = s9 | 0;
756 sA = sA | 0;
757 sB = sB | 0;
758 sC = sC | 0;
759 sD = sD | 0;
760 sE = sE | 0;
761 sF = sF | 0;
762 var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, tA = 0, tB = 0, tC = 0, tD = 0, tE = 0, tF = 0, inv_sbox = 256, x9 = 1024, xB = 1280, xD = 1536, xE = 1792;
763 if ((keySize | 0) == 32) {
764 t0 = HEAP[inv_sbox | s0 ^ RE0] ^ RD0;
765 t1 = HEAP[inv_sbox | sD ^ RED] ^ RD1;
766 t2 = HEAP[inv_sbox | sA ^ REA] ^ RD2;
767 t3 = HEAP[inv_sbox | s7 ^ RE7] ^ RD3;
768 t4 = HEAP[inv_sbox | s4 ^ RE4] ^ RD4;
769 t5 = HEAP[inv_sbox | s1 ^ RE1] ^ RD5;
770 t6 = HEAP[inv_sbox | sE ^ REE] ^ RD6;
771 t7 = HEAP[inv_sbox | sB ^ REB] ^ RD7;
772 t8 = HEAP[inv_sbox | s8 ^ RE8] ^ RD8;
773 t9 = HEAP[inv_sbox | s5 ^ RE5] ^ RD9;
774 tA = HEAP[inv_sbox | s2 ^ RE2] ^ RDA;
775 tB = HEAP[inv_sbox | sF ^ REF] ^ RDB;
776 tC = HEAP[inv_sbox | sC ^ REC] ^ RDC;
777 tD = HEAP[inv_sbox | s9 ^ RE9] ^ RDD;
778 tE = HEAP[inv_sbox | s6 ^ RE6] ^ RDE;
779 tF = HEAP[inv_sbox | s3 ^ RE3] ^ RDF;
780 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
781 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
782 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
783 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
784 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
785 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
786 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
787 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
788 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
789 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
790 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
791 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
792 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
793 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
794 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
795 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
796 t0 = HEAP[inv_sbox | s0] ^ RC0;
797 t1 = HEAP[inv_sbox | s1] ^ RC1;
798 t2 = HEAP[inv_sbox | s2] ^ RC2;
799 t3 = HEAP[inv_sbox | s3] ^ RC3;
800 t4 = HEAP[inv_sbox | s4] ^ RC4;
801 t5 = HEAP[inv_sbox | s5] ^ RC5;
802 t6 = HEAP[inv_sbox | s6] ^ RC6;
803 t7 = HEAP[inv_sbox | s7] ^ RC7;
804 t8 = HEAP[inv_sbox | s8] ^ RC8;
805 t9 = HEAP[inv_sbox | s9] ^ RC9;
806 tA = HEAP[inv_sbox | sA] ^ RCA;
807 tB = HEAP[inv_sbox | sB] ^ RCB;
808 tC = HEAP[inv_sbox | sC] ^ RCC;
809 tD = HEAP[inv_sbox | sD] ^ RCD;
810 tE = HEAP[inv_sbox | sE] ^ RCE;
811 tF = HEAP[inv_sbox | sF] ^ RCF;
812 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
813 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
814 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
815 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
816 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
817 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
818 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
819 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
820 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
821 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
822 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
823 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
824 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
825 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
826 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
827 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
828 t0 = HEAP[inv_sbox | s0] ^ RB0;
829 t1 = HEAP[inv_sbox | s1] ^ RB1;
830 t2 = HEAP[inv_sbox | s2] ^ RB2;
831 t3 = HEAP[inv_sbox | s3] ^ RB3;
832 t4 = HEAP[inv_sbox | s4] ^ RB4;
833 t5 = HEAP[inv_sbox | s5] ^ RB5;
834 t6 = HEAP[inv_sbox | s6] ^ RB6;
835 t7 = HEAP[inv_sbox | s7] ^ RB7;
836 t8 = HEAP[inv_sbox | s8] ^ RB8;
837 t9 = HEAP[inv_sbox | s9] ^ RB9;
838 tA = HEAP[inv_sbox | sA] ^ RBA;
839 tB = HEAP[inv_sbox | sB] ^ RBB;
840 tC = HEAP[inv_sbox | sC] ^ RBC;
841 tD = HEAP[inv_sbox | sD] ^ RBD;
842 tE = HEAP[inv_sbox | sE] ^ RBE;
843 tF = HEAP[inv_sbox | sF] ^ RBF;
844 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
845 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
846 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
847 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
848 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
849 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
850 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
851 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
852 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
853 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
854 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
855 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
856 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
857 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
858 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
859 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
860 t0 = HEAP[inv_sbox | s0] ^ RA0;
861 t1 = HEAP[inv_sbox | s1] ^ RA1;
862 t2 = HEAP[inv_sbox | s2] ^ RA2;
863 t3 = HEAP[inv_sbox | s3] ^ RA3;
864 t4 = HEAP[inv_sbox | s4] ^ RA4;
865 t5 = HEAP[inv_sbox | s5] ^ RA5;
866 t6 = HEAP[inv_sbox | s6] ^ RA6;
867 t7 = HEAP[inv_sbox | s7] ^ RA7;
868 t8 = HEAP[inv_sbox | s8] ^ RA8;
869 t9 = HEAP[inv_sbox | s9] ^ RA9;
870 tA = HEAP[inv_sbox | sA] ^ RAA;
871 tB = HEAP[inv_sbox | sB] ^ RAB;
872 tC = HEAP[inv_sbox | sC] ^ RAC;
873 tD = HEAP[inv_sbox | sD] ^ RAD;
874 tE = HEAP[inv_sbox | sE] ^ RAE;
875 tF = HEAP[inv_sbox | sF] ^ RAF;
876 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
877 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
878 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
879 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
880 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
881 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
882 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
883 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
884 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
885 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
886 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
887 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
888 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
889 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
890 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
891 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
892 t0 = HEAP[inv_sbox | s0] ^ R90;
893 t1 = HEAP[inv_sbox | s1] ^ R91;
894 t2 = HEAP[inv_sbox | s2] ^ R92;
895 t3 = HEAP[inv_sbox | s3] ^ R93;
896 t4 = HEAP[inv_sbox | s4] ^ R94;
897 t5 = HEAP[inv_sbox | s5] ^ R95;
898 t6 = HEAP[inv_sbox | s6] ^ R96;
899 t7 = HEAP[inv_sbox | s7] ^ R97;
900 t8 = HEAP[inv_sbox | s8] ^ R98;
901 t9 = HEAP[inv_sbox | s9] ^ R99;
902 tA = HEAP[inv_sbox | sA] ^ R9A;
903 tB = HEAP[inv_sbox | sB] ^ R9B;
904 tC = HEAP[inv_sbox | sC] ^ R9C;
905 tD = HEAP[inv_sbox | sD] ^ R9D;
906 tE = HEAP[inv_sbox | sE] ^ R9E;
907 tF = HEAP[inv_sbox | sF] ^ R9F;
908 } else {
909 t0 = HEAP[inv_sbox | s0 ^ RA0] ^ R90;
910 t1 = HEAP[inv_sbox | sD ^ RAD] ^ R91;
911 t2 = HEAP[inv_sbox | sA ^ RAA] ^ R92;
912 t3 = HEAP[inv_sbox | s7 ^ RA7] ^ R93;
913 t4 = HEAP[inv_sbox | s4 ^ RA4] ^ R94;
914 t5 = HEAP[inv_sbox | s1 ^ RA1] ^ R95;
915 t6 = HEAP[inv_sbox | sE ^ RAE] ^ R96;
916 t7 = HEAP[inv_sbox | sB ^ RAB] ^ R97;
917 t8 = HEAP[inv_sbox | s8 ^ RA8] ^ R98;
918 t9 = HEAP[inv_sbox | s5 ^ RA5] ^ R99;
919 tA = HEAP[inv_sbox | s2 ^ RA2] ^ R9A;
920 tB = HEAP[inv_sbox | sF ^ RAF] ^ R9B;
921 tC = HEAP[inv_sbox | sC ^ RAC] ^ R9C;
922 tD = HEAP[inv_sbox | s9 ^ RA9] ^ R9D;
923 tE = HEAP[inv_sbox | s6 ^ RA6] ^ R9E;
924 tF = HEAP[inv_sbox | s3 ^ RA3] ^ R9F;
925 }
926 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
927 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
928 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
929 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
930 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
931 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
932 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
933 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
934 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
935 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
936 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
937 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
938 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
939 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
940 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
941 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
942 t0 = HEAP[inv_sbox | s0] ^ R80;
943 t1 = HEAP[inv_sbox | s1] ^ R81;
944 t2 = HEAP[inv_sbox | s2] ^ R82;
945 t3 = HEAP[inv_sbox | s3] ^ R83;
946 t4 = HEAP[inv_sbox | s4] ^ R84;
947 t5 = HEAP[inv_sbox | s5] ^ R85;
948 t6 = HEAP[inv_sbox | s6] ^ R86;
949 t7 = HEAP[inv_sbox | s7] ^ R87;
950 t8 = HEAP[inv_sbox | s8] ^ R88;
951 t9 = HEAP[inv_sbox | s9] ^ R89;
952 tA = HEAP[inv_sbox | sA] ^ R8A;
953 tB = HEAP[inv_sbox | sB] ^ R8B;
954 tC = HEAP[inv_sbox | sC] ^ R8C;
955 tD = HEAP[inv_sbox | sD] ^ R8D;
956 tE = HEAP[inv_sbox | sE] ^ R8E;
957 tF = HEAP[inv_sbox | sF] ^ R8F;
958 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
959 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
960 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
961 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
962 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
963 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
964 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
965 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
966 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
967 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
968 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
969 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
970 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
971 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
972 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
973 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
974 t0 = HEAP[inv_sbox | s0] ^ R70;
975 t1 = HEAP[inv_sbox | s1] ^ R71;
976 t2 = HEAP[inv_sbox | s2] ^ R72;
977 t3 = HEAP[inv_sbox | s3] ^ R73;
978 t4 = HEAP[inv_sbox | s4] ^ R74;
979 t5 = HEAP[inv_sbox | s5] ^ R75;
980 t6 = HEAP[inv_sbox | s6] ^ R76;
981 t7 = HEAP[inv_sbox | s7] ^ R77;
982 t8 = HEAP[inv_sbox | s8] ^ R78;
983 t9 = HEAP[inv_sbox | s9] ^ R79;
984 tA = HEAP[inv_sbox | sA] ^ R7A;
985 tB = HEAP[inv_sbox | sB] ^ R7B;
986 tC = HEAP[inv_sbox | sC] ^ R7C;
987 tD = HEAP[inv_sbox | sD] ^ R7D;
988 tE = HEAP[inv_sbox | sE] ^ R7E;
989 tF = HEAP[inv_sbox | sF] ^ R7F;
990 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
991 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
992 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
993 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
994 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
995 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
996 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
997 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
998 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
999 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1000 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1001 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1002 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1003 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1004 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1005 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1006 t0 = HEAP[inv_sbox | s0] ^ R60;
1007 t1 = HEAP[inv_sbox | s1] ^ R61;
1008 t2 = HEAP[inv_sbox | s2] ^ R62;
1009 t3 = HEAP[inv_sbox | s3] ^ R63;
1010 t4 = HEAP[inv_sbox | s4] ^ R64;
1011 t5 = HEAP[inv_sbox | s5] ^ R65;
1012 t6 = HEAP[inv_sbox | s6] ^ R66;
1013 t7 = HEAP[inv_sbox | s7] ^ R67;
1014 t8 = HEAP[inv_sbox | s8] ^ R68;
1015 t9 = HEAP[inv_sbox | s9] ^ R69;
1016 tA = HEAP[inv_sbox | sA] ^ R6A;
1017 tB = HEAP[inv_sbox | sB] ^ R6B;
1018 tC = HEAP[inv_sbox | sC] ^ R6C;
1019 tD = HEAP[inv_sbox | sD] ^ R6D;
1020 tE = HEAP[inv_sbox | sE] ^ R6E;
1021 tF = HEAP[inv_sbox | sF] ^ R6F;
1022 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1023 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1024 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1025 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1026 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1027 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1028 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1029 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1030 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1031 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1032 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1033 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1034 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1035 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1036 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1037 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1038 t0 = HEAP[inv_sbox | s0] ^ R50;
1039 t1 = HEAP[inv_sbox | s1] ^ R51;
1040 t2 = HEAP[inv_sbox | s2] ^ R52;
1041 t3 = HEAP[inv_sbox | s3] ^ R53;
1042 t4 = HEAP[inv_sbox | s4] ^ R54;
1043 t5 = HEAP[inv_sbox | s5] ^ R55;
1044 t6 = HEAP[inv_sbox | s6] ^ R56;
1045 t7 = HEAP[inv_sbox | s7] ^ R57;
1046 t8 = HEAP[inv_sbox | s8] ^ R58;
1047 t9 = HEAP[inv_sbox | s9] ^ R59;
1048 tA = HEAP[inv_sbox | sA] ^ R5A;
1049 tB = HEAP[inv_sbox | sB] ^ R5B;
1050 tC = HEAP[inv_sbox | sC] ^ R5C;
1051 tD = HEAP[inv_sbox | sD] ^ R5D;
1052 tE = HEAP[inv_sbox | sE] ^ R5E;
1053 tF = HEAP[inv_sbox | sF] ^ R5F;
1054 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1055 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1056 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1057 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1058 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1059 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1060 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1061 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1062 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1063 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1064 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1065 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1066 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1067 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1068 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1069 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1070 t0 = HEAP[inv_sbox | s0] ^ R40;
1071 t1 = HEAP[inv_sbox | s1] ^ R41;
1072 t2 = HEAP[inv_sbox | s2] ^ R42;
1073 t3 = HEAP[inv_sbox | s3] ^ R43;
1074 t4 = HEAP[inv_sbox | s4] ^ R44;
1075 t5 = HEAP[inv_sbox | s5] ^ R45;
1076 t6 = HEAP[inv_sbox | s6] ^ R46;
1077 t7 = HEAP[inv_sbox | s7] ^ R47;
1078 t8 = HEAP[inv_sbox | s8] ^ R48;
1079 t9 = HEAP[inv_sbox | s9] ^ R49;
1080 tA = HEAP[inv_sbox | sA] ^ R4A;
1081 tB = HEAP[inv_sbox | sB] ^ R4B;
1082 tC = HEAP[inv_sbox | sC] ^ R4C;
1083 tD = HEAP[inv_sbox | sD] ^ R4D;
1084 tE = HEAP[inv_sbox | sE] ^ R4E;
1085 tF = HEAP[inv_sbox | sF] ^ R4F;
1086 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1087 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1088 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1089 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1090 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1091 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1092 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1093 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1094 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1095 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1096 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1097 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1098 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1099 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1100 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1101 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1102 t0 = HEAP[inv_sbox | s0] ^ R30;
1103 t1 = HEAP[inv_sbox | s1] ^ R31;
1104 t2 = HEAP[inv_sbox | s2] ^ R32;
1105 t3 = HEAP[inv_sbox | s3] ^ R33;
1106 t4 = HEAP[inv_sbox | s4] ^ R34;
1107 t5 = HEAP[inv_sbox | s5] ^ R35;
1108 t6 = HEAP[inv_sbox | s6] ^ R36;
1109 t7 = HEAP[inv_sbox | s7] ^ R37;
1110 t8 = HEAP[inv_sbox | s8] ^ R38;
1111 t9 = HEAP[inv_sbox | s9] ^ R39;
1112 tA = HEAP[inv_sbox | sA] ^ R3A;
1113 tB = HEAP[inv_sbox | sB] ^ R3B;
1114 tC = HEAP[inv_sbox | sC] ^ R3C;
1115 tD = HEAP[inv_sbox | sD] ^ R3D;
1116 tE = HEAP[inv_sbox | sE] ^ R3E;
1117 tF = HEAP[inv_sbox | sF] ^ R3F;
1118 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1119 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1120 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1121 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1122 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1123 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1124 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1125 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1126 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1127 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1128 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1129 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1130 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1131 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1132 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1133 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1134 t0 = HEAP[inv_sbox | s0] ^ R20;
1135 t1 = HEAP[inv_sbox | s1] ^ R21;
1136 t2 = HEAP[inv_sbox | s2] ^ R22;
1137 t3 = HEAP[inv_sbox | s3] ^ R23;
1138 t4 = HEAP[inv_sbox | s4] ^ R24;
1139 t5 = HEAP[inv_sbox | s5] ^ R25;
1140 t6 = HEAP[inv_sbox | s6] ^ R26;
1141 t7 = HEAP[inv_sbox | s7] ^ R27;
1142 t8 = HEAP[inv_sbox | s8] ^ R28;
1143 t9 = HEAP[inv_sbox | s9] ^ R29;
1144 tA = HEAP[inv_sbox | sA] ^ R2A;
1145 tB = HEAP[inv_sbox | sB] ^ R2B;
1146 tC = HEAP[inv_sbox | sC] ^ R2C;
1147 tD = HEAP[inv_sbox | sD] ^ R2D;
1148 tE = HEAP[inv_sbox | sE] ^ R2E;
1149 tF = HEAP[inv_sbox | sF] ^ R2F;
1150 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1151 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1152 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1153 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1154 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1155 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1156 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1157 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1158 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1159 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1160 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1161 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1162 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1163 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1164 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1165 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1166 t0 = HEAP[inv_sbox | s0] ^ R10;
1167 t1 = HEAP[inv_sbox | s1] ^ R11;
1168 t2 = HEAP[inv_sbox | s2] ^ R12;
1169 t3 = HEAP[inv_sbox | s3] ^ R13;
1170 t4 = HEAP[inv_sbox | s4] ^ R14;
1171 t5 = HEAP[inv_sbox | s5] ^ R15;
1172 t6 = HEAP[inv_sbox | s6] ^ R16;
1173 t7 = HEAP[inv_sbox | s7] ^ R17;
1174 t8 = HEAP[inv_sbox | s8] ^ R18;
1175 t9 = HEAP[inv_sbox | s9] ^ R19;
1176 tA = HEAP[inv_sbox | sA] ^ R1A;
1177 tB = HEAP[inv_sbox | sB] ^ R1B;
1178 tC = HEAP[inv_sbox | sC] ^ R1C;
1179 tD = HEAP[inv_sbox | sD] ^ R1D;
1180 tE = HEAP[inv_sbox | sE] ^ R1E;
1181 tF = HEAP[inv_sbox | sF] ^ R1F;
1182 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1183 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1184 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1185 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1186 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1187 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1188 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1189 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1190 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1191 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1192 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1193 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1194 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1195 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1196 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1197 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1198 S0 = HEAP[inv_sbox | s0] ^ R00;
1199 S1 = HEAP[inv_sbox | s1] ^ R01;
1200 S2 = HEAP[inv_sbox | s2] ^ R02;
1201 S3 = HEAP[inv_sbox | s3] ^ R03;
1202 S4 = HEAP[inv_sbox | s4] ^ R04;
1203 S5 = HEAP[inv_sbox | s5] ^ R05;
1204 S6 = HEAP[inv_sbox | s6] ^ R06;
1205 S7 = HEAP[inv_sbox | s7] ^ R07;
1206 S8 = HEAP[inv_sbox | s8] ^ R08;
1207 S9 = HEAP[inv_sbox | s9] ^ R09;
1208 SA = HEAP[inv_sbox | sA] ^ R0A;
1209 SB = HEAP[inv_sbox | sB] ^ R0B;
1210 SC = HEAP[inv_sbox | sC] ^ R0C;
1211 SD = HEAP[inv_sbox | sD] ^ R0D;
1212 SE = HEAP[inv_sbox | sE] ^ R0E;
1213 SF = HEAP[inv_sbox | sF] ^ R0F;
1214 }
1215 function init_state(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
1216 s0 = s0 | 0;
1217 s1 = s1 | 0;
1218 s2 = s2 | 0;
1219 s3 = s3 | 0;
1220 s4 = s4 | 0;
1221 s5 = s5 | 0;
1222 s6 = s6 | 0;
1223 s7 = s7 | 0;
1224 s8 = s8 | 0;
1225 s9 = s9 | 0;
1226 sA = sA | 0;
1227 sB = sB | 0;
1228 sC = sC | 0;
1229 sD = sD | 0;
1230 sE = sE | 0;
1231 sF = sF | 0;
1232 S0 = s0;
1233 S1 = s1;
1234 S2 = s2;
1235 S3 = s3;
1236 S4 = s4;
1237 S5 = s5;
1238 S6 = s6;
1239 S7 = s7;
1240 S8 = s8;
1241 S9 = s9;
1242 SA = sA;
1243 SB = sB;
1244 SC = sC;
1245 SD = sD;
1246 SE = sE;
1247 SF = sF;
1248 }
1249 function save_state(offset) {
1250 offset = offset | 0;
1251 HEAP[offset] = S0;
1252 HEAP[offset | 1] = S1;
1253 HEAP[offset | 2] = S2;
1254 HEAP[offset | 3] = S3;
1255 HEAP[offset | 4] = S4;
1256 HEAP[offset | 5] = S5;
1257 HEAP[offset | 6] = S6;
1258 HEAP[offset | 7] = S7;
1259 HEAP[offset | 8] = S8;
1260 HEAP[offset | 9] = S9;
1261 HEAP[offset | 10] = SA;
1262 HEAP[offset | 11] = SB;
1263 HEAP[offset | 12] = SC;
1264 HEAP[offset | 13] = SD;
1265 HEAP[offset | 14] = SE;
1266 HEAP[offset | 15] = SF;
1267 }
1268 function init_key_128(k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, kA, kB, kC, kD, kE, kF) {
1269 k0 = k0 | 0;
1270 k1 = k1 | 0;
1271 k2 = k2 | 0;
1272 k3 = k3 | 0;
1273 k4 = k4 | 0;
1274 k5 = k5 | 0;
1275 k6 = k6 | 0;
1276 k7 = k7 | 0;
1277 k8 = k8 | 0;
1278 k9 = k9 | 0;
1279 kA = kA | 0;
1280 kB = kB | 0;
1281 kC = kC | 0;
1282 kD = kD | 0;
1283 kE = kE | 0;
1284 kF = kF | 0;
1285 R00 = k0;
1286 R01 = k1;
1287 R02 = k2;
1288 R03 = k3;
1289 R04 = k4;
1290 R05 = k5;
1291 R06 = k6;
1292 R07 = k7;
1293 R08 = k8;
1294 R09 = k9;
1295 R0A = kA;
1296 R0B = kB;
1297 R0C = kC;
1298 R0D = kD;
1299 R0E = kE;
1300 R0F = kF;
1301 keySize = 16;
1302 _expand_key_128();
1303 }
1304 function init_key_256(k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F) {
1305 k00 = k00 | 0;
1306 k01 = k01 | 0;
1307 k02 = k02 | 0;
1308 k03 = k03 | 0;
1309 k04 = k04 | 0;
1310 k05 = k05 | 0;
1311 k06 = k06 | 0;
1312 k07 = k07 | 0;
1313 k08 = k08 | 0;
1314 k09 = k09 | 0;
1315 k0A = k0A | 0;
1316 k0B = k0B | 0;
1317 k0C = k0C | 0;
1318 k0D = k0D | 0;
1319 k0E = k0E | 0;
1320 k0F = k0F | 0;
1321 k10 = k10 | 0;
1322 k11 = k11 | 0;
1323 k12 = k12 | 0;
1324 k13 = k13 | 0;
1325 k14 = k14 | 0;
1326 k15 = k15 | 0;
1327 k16 = k16 | 0;
1328 k17 = k17 | 0;
1329 k18 = k18 | 0;
1330 k19 = k19 | 0;
1331 k1A = k1A | 0;
1332 k1B = k1B | 0;
1333 k1C = k1C | 0;
1334 k1D = k1D | 0;
1335 k1E = k1E | 0;
1336 k1F = k1F | 0;
1337 R00 = k00;
1338 R01 = k01;
1339 R02 = k02;
1340 R03 = k03;
1341 R04 = k04;
1342 R05 = k05;
1343 R06 = k06;
1344 R07 = k07;
1345 R08 = k08;
1346 R09 = k09;
1347 R0A = k0A;
1348 R0B = k0B;
1349 R0C = k0C;
1350 R0D = k0D;
1351 R0E = k0E;
1352 R0F = k0F;
1353 R10 = k10;
1354 R11 = k11;
1355 R12 = k12;
1356 R13 = k13;
1357 R14 = k14;
1358 R15 = k15;
1359 R16 = k16;
1360 R17 = k17;
1361 R18 = k18;
1362 R19 = k19;
1363 R1A = k1A;
1364 R1B = k1B;
1365 R1C = k1C;
1366 R1D = k1D;
1367 R1E = k1E;
1368 R1F = k1F;
1369 keySize = 32;
1370 _expand_key_256();
1371 }
1372 function cbc_encrypt(offset, length) {
1373 offset = offset | 0;
1374 length = length | 0;
1375 var encrypted = 0;
1376 if (offset & 15) return -1;
1377 while ((length | 0) >= 16) {
1378 _encrypt(S0 ^ HEAP[offset], S1 ^ HEAP[offset | 1], S2 ^ HEAP[offset | 2], S3 ^ HEAP[offset | 3], S4 ^ HEAP[offset | 4], S5 ^ HEAP[offset | 5], S6 ^ HEAP[offset | 6], S7 ^ HEAP[offset | 7], S8 ^ HEAP[offset | 8], S9 ^ HEAP[offset | 9], SA ^ HEAP[offset | 10], SB ^ HEAP[offset | 11], SC ^ HEAP[offset | 12], SD ^ HEAP[offset | 13], SE ^ HEAP[offset | 14], SF ^ HEAP[offset | 15]);
1379 HEAP[offset] = S0;
1380 HEAP[offset | 1] = S1;
1381 HEAP[offset | 2] = S2;
1382 HEAP[offset | 3] = S3;
1383 HEAP[offset | 4] = S4;
1384 HEAP[offset | 5] = S5;
1385 HEAP[offset | 6] = S6;
1386 HEAP[offset | 7] = S7;
1387 HEAP[offset | 8] = S8;
1388 HEAP[offset | 9] = S9;
1389 HEAP[offset | 10] = SA;
1390 HEAP[offset | 11] = SB;
1391 HEAP[offset | 12] = SC;
1392 HEAP[offset | 13] = SD;
1393 HEAP[offset | 14] = SE;
1394 HEAP[offset | 15] = SF;
1395 offset = offset + 16 | 0;
1396 length = length - 16 | 0;
1397 encrypted = encrypted + 16 | 0;
1398 }
1399 return encrypted | 0;
1400 }
1401 function cbc_decrypt(offset, length) {
1402 offset = offset | 0;
1403 length = length | 0;
1404 var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, decrypted = 0;
1405 if (offset & 15) return -1;
1406 iv0 = S0;
1407 iv1 = S1;
1408 iv2 = S2;
1409 iv3 = S3;
1410 iv4 = S4;
1411 iv5 = S5;
1412 iv6 = S6;
1413 iv7 = S7;
1414 iv8 = S8;
1415 iv9 = S9;
1416 ivA = SA;
1417 ivB = SB;
1418 ivC = SC;
1419 ivD = SD;
1420 ivE = SE;
1421 ivF = SF;
1422 while ((length | 0) >= 16) {
1423 _decrypt(HEAP[offset] | 0, HEAP[offset | 1] | 0, HEAP[offset | 2] | 0, HEAP[offset | 3] | 0, HEAP[offset | 4] | 0, HEAP[offset | 5] | 0, HEAP[offset | 6] | 0, HEAP[offset | 7] | 0, HEAP[offset | 8] | 0, HEAP[offset | 9] | 0, HEAP[offset | 10] | 0, HEAP[offset | 11] | 0, HEAP[offset | 12] | 0, HEAP[offset | 13] | 0, HEAP[offset | 14] | 0, HEAP[offset | 15] | 0);
1424 S0 = S0 ^ iv0;
1425 iv0 = HEAP[offset] | 0;
1426 S1 = S1 ^ iv1;
1427 iv1 = HEAP[offset | 1] | 0;
1428 S2 = S2 ^ iv2;
1429 iv2 = HEAP[offset | 2] | 0;
1430 S3 = S3 ^ iv3;
1431 iv3 = HEAP[offset | 3] | 0;
1432 S4 = S4 ^ iv4;
1433 iv4 = HEAP[offset | 4] | 0;
1434 S5 = S5 ^ iv5;
1435 iv5 = HEAP[offset | 5] | 0;
1436 S6 = S6 ^ iv6;
1437 iv6 = HEAP[offset | 6] | 0;
1438 S7 = S7 ^ iv7;
1439 iv7 = HEAP[offset | 7] | 0;
1440 S8 = S8 ^ iv8;
1441 iv8 = HEAP[offset | 8] | 0;
1442 S9 = S9 ^ iv9;
1443 iv9 = HEAP[offset | 9] | 0;
1444 SA = SA ^ ivA;
1445 ivA = HEAP[offset | 10] | 0;
1446 SB = SB ^ ivB;
1447 ivB = HEAP[offset | 11] | 0;
1448 SC = SC ^ ivC;
1449 ivC = HEAP[offset | 12] | 0;
1450 SD = SD ^ ivD;
1451 ivD = HEAP[offset | 13] | 0;
1452 SE = SE ^ ivE;
1453 ivE = HEAP[offset | 14] | 0;
1454 SF = SF ^ ivF;
1455 ivF = HEAP[offset | 15] | 0;
1456 HEAP[offset] = S0;
1457 HEAP[offset | 1] = S1;
1458 HEAP[offset | 2] = S2;
1459 HEAP[offset | 3] = S3;
1460 HEAP[offset | 4] = S4;
1461 HEAP[offset | 5] = S5;
1462 HEAP[offset | 6] = S6;
1463 HEAP[offset | 7] = S7;
1464 HEAP[offset | 8] = S8;
1465 HEAP[offset | 9] = S9;
1466 HEAP[offset | 10] = SA;
1467 HEAP[offset | 11] = SB;
1468 HEAP[offset | 12] = SC;
1469 HEAP[offset | 13] = SD;
1470 HEAP[offset | 14] = SE;
1471 HEAP[offset | 15] = SF;
1472 offset = offset + 16 | 0;
1473 length = length - 16 | 0;
1474 decrypted = decrypted + 16 | 0;
1475 }
1476 S0 = iv0;
1477 S1 = iv1;
1478 S2 = iv2;
1479 S3 = iv3;
1480 S4 = iv4;
1481 S5 = iv5;
1482 S6 = iv6;
1483 S7 = iv7;
1484 S8 = iv8;
1485 S9 = iv9;
1486 SA = ivA;
1487 SB = ivB;
1488 SC = ivC;
1489 SD = ivD;
1490 SE = ivE;
1491 SF = ivF;
1492 return decrypted | 0;
1493 }
1494 function cbc_mac(offset, length, output) {
1495 offset = offset | 0;
1496 length = length | 0;
1497 output = output | 0;
1498 if (offset & 15) return -1;
1499 if (~output) if (output & 31) return -1;
1500 while ((length | 0) >= 16) {
1501 _encrypt(S0 ^ HEAP[offset], S1 ^ HEAP[offset | 1], S2 ^ HEAP[offset | 2], S3 ^ HEAP[offset | 3], S4 ^ HEAP[offset | 4], S5 ^ HEAP[offset | 5], S6 ^ HEAP[offset | 6], S7 ^ HEAP[offset | 7], S8 ^ HEAP[offset | 8], S9 ^ HEAP[offset | 9], SA ^ HEAP[offset | 10], SB ^ HEAP[offset | 11], SC ^ HEAP[offset | 12], SD ^ HEAP[offset | 13], SE ^ HEAP[offset | 14], SF ^ HEAP[offset | 15]);
1502 offset = offset + 16 | 0;
1503 length = length - 16 | 0;
1504 }
1505 if ((length | 0) > 0) {
1506 S0 = S0 ^ HEAP[offset];
1507 if ((length | 0) > 1) S1 = S1 ^ HEAP[offset | 1];
1508 if ((length | 0) > 2) S2 = S2 ^ HEAP[offset | 2];
1509 if ((length | 0) > 3) S3 = S3 ^ HEAP[offset | 3];
1510 if ((length | 0) > 4) S4 = S4 ^ HEAP[offset | 4];
1511 if ((length | 0) > 5) S5 = S5 ^ HEAP[offset | 5];
1512 if ((length | 0) > 6) S6 = S6 ^ HEAP[offset | 6];
1513 if ((length | 0) > 7) S7 = S7 ^ HEAP[offset | 7];
1514 if ((length | 0) > 8) S8 = S8 ^ HEAP[offset | 8];
1515 if ((length | 0) > 9) S9 = S9 ^ HEAP[offset | 9];
1516 if ((length | 0) > 10) SA = SA ^ HEAP[offset | 10];
1517 if ((length | 0) > 11) SB = SB ^ HEAP[offset | 11];
1518 if ((length | 0) > 12) SC = SC ^ HEAP[offset | 12];
1519 if ((length | 0) > 13) SD = SD ^ HEAP[offset | 13];
1520 if ((length | 0) > 14) SE = SE ^ HEAP[offset | 14];
1521 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1522 offset = offset + length | 0;
1523 length = 0;
1524 }
1525 if (~output) {
1526 HEAP[output | 0] = S0;
1527 HEAP[output | 1] = S1;
1528 HEAP[output | 2] = S2;
1529 HEAP[output | 3] = S3;
1530 HEAP[output | 4] = S4;
1531 HEAP[output | 5] = S5;
1532 HEAP[output | 6] = S6;
1533 HEAP[output | 7] = S7;
1534 HEAP[output | 8] = S8;
1535 HEAP[output | 9] = S9;
1536 HEAP[output | 10] = SA;
1537 HEAP[output | 11] = SB;
1538 HEAP[output | 12] = SC;
1539 HEAP[output | 13] = SD;
1540 HEAP[output | 14] = SE;
1541 HEAP[output | 15] = SF;
1542 }
1543 return 0;
1544 }
1545 function ccm_encrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) {
1546 offset = offset | 0;
1547 length = length | 0;
1548 nonce0 = nonce0 | 0;
1549 nonce1 = nonce1 | 0;
1550 nonce2 = nonce2 | 0;
1551 nonce3 = nonce3 | 0;
1552 nonce4 = nonce4 | 0;
1553 nonce5 = nonce5 | 0;
1554 nonce6 = nonce6 | 0;
1555 nonce7 = nonce7 | 0;
1556 nonce8 = nonce8 | 0;
1557 nonce9 = nonce9 | 0;
1558 nonceA = nonceA | 0;
1559 nonceB = nonceB | 0;
1560 nonceC = nonceC | 0;
1561 nonceD = nonceD | 0;
1562 counter0 = counter0 | 0;
1563 counter1 = counter1 | 0;
1564 var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, sA = 0, sB = 0, sC = 0, sD = 0, sE = 0, sF = 0, encrypted = 0;
1565 if (offset & 15) return -1;
1566 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1567 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1568 while ((length | 0) >= 16) {
1569 s0 = HEAP[offset] | 0;
1570 s1 = HEAP[offset | 1] | 0;
1571 s2 = HEAP[offset | 2] | 0;
1572 s3 = HEAP[offset | 3] | 0;
1573 s4 = HEAP[offset | 4] | 0;
1574 s5 = HEAP[offset | 5] | 0;
1575 s6 = HEAP[offset | 6] | 0;
1576 s7 = HEAP[offset | 7] | 0;
1577 s8 = HEAP[offset | 8] | 0;
1578 s9 = HEAP[offset | 9] | 0;
1579 sA = HEAP[offset | 10] | 0;
1580 sB = HEAP[offset | 11] | 0;
1581 sC = HEAP[offset | 12] | 0;
1582 sD = HEAP[offset | 13] | 0;
1583 sE = HEAP[offset | 14] | 0;
1584 sF = HEAP[offset | 15] | 0;
1585 _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255);
1586 HEAP[offset] = s0 ^ S0;
1587 HEAP[offset | 1] = s1 ^ S1;
1588 HEAP[offset | 2] = s2 ^ S2;
1589 HEAP[offset | 3] = s3 ^ S3;
1590 HEAP[offset | 4] = s4 ^ S4;
1591 HEAP[offset | 5] = s5 ^ S5;
1592 HEAP[offset | 6] = s6 ^ S6;
1593 HEAP[offset | 7] = s7 ^ S7;
1594 HEAP[offset | 8] = s8 ^ S8;
1595 HEAP[offset | 9] = s9 ^ S9;
1596 HEAP[offset | 10] = sA ^ SA;
1597 HEAP[offset | 11] = sB ^ SB;
1598 HEAP[offset | 12] = sC ^ SC;
1599 HEAP[offset | 13] = sD ^ SD;
1600 HEAP[offset | 14] = sE ^ SE;
1601 HEAP[offset | 15] = sF ^ SF;
1602 _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF);
1603 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1604 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1605 encrypted = encrypted + 16 | 0;
1606 offset = offset + 16 | 0;
1607 length = length - 16 | 0;
1608 counter1 = counter1 + 1 | 0;
1609 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1610 }
1611 if ((length | 0) > 0) {
1612 s0 = HEAP[offset] | 0;
1613 s1 = (length | 0) > 1 ? HEAP[offset | 1] | 0 : 0;
1614 s2 = (length | 0) > 2 ? HEAP[offset | 2] | 0 : 0;
1615 s3 = (length | 0) > 3 ? HEAP[offset | 3] | 0 : 0;
1616 s4 = (length | 0) > 4 ? HEAP[offset | 4] | 0 : 0;
1617 s5 = (length | 0) > 5 ? HEAP[offset | 5] | 0 : 0;
1618 s6 = (length | 0) > 6 ? HEAP[offset | 6] | 0 : 0;
1619 s7 = (length | 0) > 7 ? HEAP[offset | 7] | 0 : 0;
1620 s8 = (length | 0) > 8 ? HEAP[offset | 8] | 0 : 0;
1621 s9 = (length | 0) > 9 ? HEAP[offset | 9] | 0 : 0;
1622 sA = (length | 0) > 10 ? HEAP[offset | 10] | 0 : 0;
1623 sB = (length | 0) > 11 ? HEAP[offset | 11] | 0 : 0;
1624 sC = (length | 0) > 12 ? HEAP[offset | 12] | 0 : 0;
1625 sD = (length | 0) > 13 ? HEAP[offset | 13] | 0 : 0;
1626 sE = (length | 0) > 14 ? HEAP[offset | 14] | 0 : 0;
1627 _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255);
1628 HEAP[offset] = s0 ^ S0;
1629 if ((length | 0) > 1) HEAP[offset | 1] = s1 ^ S1;
1630 if ((length | 0) > 2) HEAP[offset | 2] = s2 ^ S2;
1631 if ((length | 0) > 3) HEAP[offset | 3] = s3 ^ S3;
1632 if ((length | 0) > 4) HEAP[offset | 4] = s4 ^ S4;
1633 if ((length | 0) > 5) HEAP[offset | 5] = s5 ^ S5;
1634 if ((length | 0) > 6) HEAP[offset | 6] = s6 ^ S6;
1635 if ((length | 0) > 7) HEAP[offset | 7] = s7 ^ S7;
1636 if ((length | 0) > 8) HEAP[offset | 8] = s8 ^ S8;
1637 if ((length | 0) > 9) HEAP[offset | 9] = s9 ^ S9;
1638 if ((length | 0) > 10) HEAP[offset | 10] = sA ^ SA;
1639 if ((length | 0) > 11) HEAP[offset | 11] = sB ^ SB;
1640 if ((length | 0) > 12) HEAP[offset | 12] = sC ^ SC;
1641 if ((length | 0) > 13) HEAP[offset | 13] = sD ^ SD;
1642 if ((length | 0) > 14) HEAP[offset | 14] = sE ^ SE;
1643 _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, ivF);
1644 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1645 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1646 encrypted = encrypted + length | 0;
1647 offset = offset + length | 0;
1648 length = 0;
1649 counter1 = counter1 + 1 | 0;
1650 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1651 }
1652 return encrypted | 0;
1653 }
1654 function ccm_decrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) {
1655 offset = offset | 0;
1656 length = length | 0;
1657 nonce0 = nonce0 | 0;
1658 nonce1 = nonce1 | 0;
1659 nonce2 = nonce2 | 0;
1660 nonce3 = nonce3 | 0;
1661 nonce4 = nonce4 | 0;
1662 nonce5 = nonce5 | 0;
1663 nonce6 = nonce6 | 0;
1664 nonce7 = nonce7 | 0;
1665 nonce8 = nonce8 | 0;
1666 nonce9 = nonce9 | 0;
1667 nonceA = nonceA | 0;
1668 nonceB = nonceB | 0;
1669 nonceC = nonceC | 0;
1670 nonceD = nonceD | 0;
1671 counter0 = counter0 | 0;
1672 counter1 = counter1 | 0;
1673 var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, s0 = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, sA = 0, sB = 0, sC = 0, sD = 0, sE = 0, sF = 0, decrypted = 0;
1674 if (offset & 15) return -1;
1675 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1676 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1677 while ((length | 0) >= 16) {
1678 _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255);
1679 HEAP[offset] = s0 = HEAP[offset] ^ S0;
1680 HEAP[offset | 1] = s1 = HEAP[offset | 1] ^ S1;
1681 HEAP[offset | 2] = s2 = HEAP[offset | 2] ^ S2;
1682 HEAP[offset | 3] = s3 = HEAP[offset | 3] ^ S3;
1683 HEAP[offset | 4] = s4 = HEAP[offset | 4] ^ S4;
1684 HEAP[offset | 5] = s5 = HEAP[offset | 5] ^ S5;
1685 HEAP[offset | 6] = s6 = HEAP[offset | 6] ^ S6;
1686 HEAP[offset | 7] = s7 = HEAP[offset | 7] ^ S7;
1687 HEAP[offset | 8] = s8 = HEAP[offset | 8] ^ S8;
1688 HEAP[offset | 9] = s9 = HEAP[offset | 9] ^ S9;
1689 HEAP[offset | 10] = sA = HEAP[offset | 10] ^ SA;
1690 HEAP[offset | 11] = sB = HEAP[offset | 11] ^ SB;
1691 HEAP[offset | 12] = sC = HEAP[offset | 12] ^ SC;
1692 HEAP[offset | 13] = sD = HEAP[offset | 13] ^ SD;
1693 HEAP[offset | 14] = sE = HEAP[offset | 14] ^ SE;
1694 HEAP[offset | 15] = sF = HEAP[offset | 15] ^ SF;
1695 _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF);
1696 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1697 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1698 decrypted = decrypted + 16 | 0;
1699 offset = offset + 16 | 0;
1700 length = length - 16 | 0;
1701 counter1 = counter1 + 1 | 0;
1702 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1703 }
1704 if ((length | 0) > 0) {
1705 _encrypt(nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8 ^ counter0 >>> 24, nonce9 ^ counter0 >>> 16 & 255, nonceA ^ counter0 >>> 8 & 255, nonceB ^ counter0 & 255, nonceC ^ counter1 >>> 24, nonceD ^ counter1 >>> 16 & 255, counter1 >>> 8 & 255, counter1 & 255);
1706 s0 = HEAP[offset] ^ S0;
1707 s1 = (length | 0) > 1 ? HEAP[offset | 1] ^ S1 : 0;
1708 s2 = (length | 0) > 2 ? HEAP[offset | 2] ^ S2 : 0;
1709 s3 = (length | 0) > 3 ? HEAP[offset | 3] ^ S3 : 0;
1710 s4 = (length | 0) > 4 ? HEAP[offset | 4] ^ S4 : 0;
1711 s5 = (length | 0) > 5 ? HEAP[offset | 5] ^ S5 : 0;
1712 s6 = (length | 0) > 6 ? HEAP[offset | 6] ^ S6 : 0;
1713 s7 = (length | 0) > 7 ? HEAP[offset | 7] ^ S7 : 0;
1714 s8 = (length | 0) > 8 ? HEAP[offset | 8] ^ S8 : 0;
1715 s9 = (length | 0) > 9 ? HEAP[offset | 9] ^ S9 : 0;
1716 sA = (length | 0) > 10 ? HEAP[offset | 10] ^ SA : 0;
1717 sB = (length | 0) > 11 ? HEAP[offset | 11] ^ SB : 0;
1718 sC = (length | 0) > 12 ? HEAP[offset | 12] ^ SC : 0;
1719 sD = (length | 0) > 13 ? HEAP[offset | 13] ^ SD : 0;
1720 sE = (length | 0) > 14 ? HEAP[offset | 14] ^ SE : 0;
1721 sF = (length | 0) > 15 ? HEAP[offset | 15] ^ SF : 0;
1722 HEAP[offset] = s0;
1723 if ((length | 0) > 1) HEAP[offset | 1] = s1;
1724 if ((length | 0) > 2) HEAP[offset | 2] = s2;
1725 if ((length | 0) > 3) HEAP[offset | 3] = s3;
1726 if ((length | 0) > 4) HEAP[offset | 4] = s4;
1727 if ((length | 0) > 5) HEAP[offset | 5] = s5;
1728 if ((length | 0) > 6) HEAP[offset | 6] = s6;
1729 if ((length | 0) > 7) HEAP[offset | 7] = s7;
1730 if ((length | 0) > 8) HEAP[offset | 8] = s8;
1731 if ((length | 0) > 9) HEAP[offset | 9] = s9;
1732 if ((length | 0) > 10) HEAP[offset | 10] = sA;
1733 if ((length | 0) > 11) HEAP[offset | 11] = sB;
1734 if ((length | 0) > 12) HEAP[offset | 12] = sC;
1735 if ((length | 0) > 13) HEAP[offset | 13] = sD;
1736 if ((length | 0) > 14) HEAP[offset | 14] = sE;
1737 _encrypt(s0 ^ iv0, s1 ^ iv1, s2 ^ iv2, s3 ^ iv3, s4 ^ iv4, s5 ^ iv5, s6 ^ iv6, s7 ^ iv7, s8 ^ iv8, s9 ^ iv9, sA ^ ivA, sB ^ ivB, sC ^ ivC, sD ^ ivD, sE ^ ivE, sF ^ ivF);
1738 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1739 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1740 decrypted = decrypted + length | 0;
1741 offset = offset + length | 0;
1742 length = 0;
1743 counter1 = counter1 + 1 | 0;
1744 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1745 }
1746 return decrypted | 0;
1747 }
1748 function cfb_encrypt(offset, length) {
1749 offset = offset | 0;
1750 length = length | 0;
1751 var encrypted = 0;
1752 if (offset & 15) return -1;
1753 while ((length | 0) >= 16) {
1754 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1755 S0 = S0 ^ HEAP[offset];
1756 S1 = S1 ^ HEAP[offset | 1];
1757 S2 = S2 ^ HEAP[offset | 2];
1758 S3 = S3 ^ HEAP[offset | 3];
1759 S4 = S4 ^ HEAP[offset | 4];
1760 S5 = S5 ^ HEAP[offset | 5];
1761 S6 = S6 ^ HEAP[offset | 6];
1762 S7 = S7 ^ HEAP[offset | 7];
1763 S8 = S8 ^ HEAP[offset | 8];
1764 S9 = S9 ^ HEAP[offset | 9];
1765 SA = SA ^ HEAP[offset | 10];
1766 SB = SB ^ HEAP[offset | 11];
1767 SC = SC ^ HEAP[offset | 12];
1768 SD = SD ^ HEAP[offset | 13];
1769 SE = SE ^ HEAP[offset | 14];
1770 SF = SF ^ HEAP[offset | 15];
1771 HEAP[offset] = S0;
1772 HEAP[offset | 1] = S1;
1773 HEAP[offset | 2] = S2;
1774 HEAP[offset | 3] = S3;
1775 HEAP[offset | 4] = S4;
1776 HEAP[offset | 5] = S5;
1777 HEAP[offset | 6] = S6;
1778 HEAP[offset | 7] = S7;
1779 HEAP[offset | 8] = S8;
1780 HEAP[offset | 9] = S9;
1781 HEAP[offset | 10] = SA;
1782 HEAP[offset | 11] = SB;
1783 HEAP[offset | 12] = SC;
1784 HEAP[offset | 13] = SD;
1785 HEAP[offset | 14] = SE;
1786 HEAP[offset | 15] = SF;
1787 offset = offset + 16 | 0;
1788 length = length - 16 | 0;
1789 encrypted = encrypted + 16 | 0;
1790 }
1791 if ((length | 0) > 0) {
1792 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1793 HEAP[offset] = HEAP[offset] ^ S0;
1794 if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1;
1795 if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2;
1796 if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3;
1797 if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4;
1798 if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5;
1799 if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6;
1800 if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7;
1801 if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8;
1802 if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9;
1803 if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA;
1804 if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB;
1805 if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC;
1806 if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD;
1807 if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE;
1808 encrypted = encrypted + length | 0;
1809 offset = offset + length | 0;
1810 length = 0;
1811 }
1812 return encrypted | 0;
1813 }
1814 function cfb_decrypt(offset, length) {
1815 offset = offset | 0;
1816 length = length | 0;
1817 var iv0 = 0, iv1 = 0, iv2 = 0, iv3 = 0, iv4 = 0, iv5 = 0, iv6 = 0, iv7 = 0, iv8 = 0, iv9 = 0, ivA = 0, ivB = 0, ivC = 0, ivD = 0, ivE = 0, ivF = 0, decrypted = 0;
1818 if (offset & 15) return -1;
1819 while ((length | 0) >= 16) {
1820 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1821 iv0 = HEAP[offset] | 0;
1822 iv1 = HEAP[offset | 1] | 0;
1823 iv2 = HEAP[offset | 2] | 0;
1824 iv3 = HEAP[offset | 3] | 0;
1825 iv4 = HEAP[offset | 4] | 0;
1826 iv5 = HEAP[offset | 5] | 0;
1827 iv6 = HEAP[offset | 6] | 0;
1828 iv7 = HEAP[offset | 7] | 0;
1829 iv8 = HEAP[offset | 8] | 0;
1830 iv9 = HEAP[offset | 9] | 0;
1831 ivA = HEAP[offset | 10] | 0;
1832 ivB = HEAP[offset | 11] | 0;
1833 ivC = HEAP[offset | 12] | 0;
1834 ivD = HEAP[offset | 13] | 0;
1835 ivE = HEAP[offset | 14] | 0;
1836 ivF = HEAP[offset | 15] | 0;
1837 HEAP[offset] = S0 ^ iv0;
1838 HEAP[offset | 1] = S1 ^ iv1;
1839 HEAP[offset | 2] = S2 ^ iv2;
1840 HEAP[offset | 3] = S3 ^ iv3;
1841 HEAP[offset | 4] = S4 ^ iv4;
1842 HEAP[offset | 5] = S5 ^ iv5;
1843 HEAP[offset | 6] = S6 ^ iv6;
1844 HEAP[offset | 7] = S7 ^ iv7;
1845 HEAP[offset | 8] = S8 ^ iv8;
1846 HEAP[offset | 9] = S9 ^ iv9;
1847 HEAP[offset | 10] = SA ^ ivA;
1848 HEAP[offset | 11] = SB ^ ivB;
1849 HEAP[offset | 12] = SC ^ ivC;
1850 HEAP[offset | 13] = SD ^ ivD;
1851 HEAP[offset | 14] = SE ^ ivE;
1852 HEAP[offset | 15] = SF ^ ivF;
1853 S0 = iv0;
1854 S1 = iv1;
1855 S2 = iv2;
1856 S3 = iv3;
1857 S4 = iv4;
1858 S5 = iv5;
1859 S6 = iv6;
1860 S7 = iv7;
1861 S8 = iv8;
1862 S9 = iv9;
1863 SA = ivA;
1864 SB = ivB;
1865 SC = ivC;
1866 SD = ivD;
1867 SE = ivE;
1868 SF = ivF;
1869 offset = offset + 16 | 0;
1870 length = length - 16 | 0;
1871 decrypted = decrypted + 16 | 0;
1872 }
1873 if ((length | 0) > 0) {
1874 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1875 HEAP[offset] = HEAP[offset] ^ S0;
1876 if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1;
1877 if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2;
1878 if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3;
1879 if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4;
1880 if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5;
1881 if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6;
1882 if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7;
1883 if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8;
1884 if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9;
1885 if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA;
1886 if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB;
1887 if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC;
1888 if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD;
1889 if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE;
1890 decrypted = decrypted + length | 0;
1891 offset = offset + length | 0;
1892 length = 0;
1893 }
1894 return decrypted | 0;
1895 }
1896 return {
1897 init_state: init_state,
1898 save_state: save_state,
1899 init_key_128: init_key_128,
1900 init_key_256: init_key_256,
1901 cbc_encrypt: cbc_encrypt,
1902 cbc_decrypt: cbc_decrypt,
1903 cbc_mac: cbc_mac,
1904 ccm_encrypt: ccm_encrypt,
1905 ccm_decrypt: ccm_decrypt,
1906 cfb_encrypt: cfb_encrypt,
1907 cfb_decrypt: cfb_decrypt
1908 };
1909 }
1910 function aes_asm(stdlib, foreign, buffer) {
1911 var heap = new Uint8Array(buffer);
1912 heap.set(_aes_tables);
1913 return _aes_asm(stdlib, foreign, buffer);
1914 }
1915 var _aes_block_size = 16;
1916 function _aes_constructor(options) {
1917 options = options || {};
1918 options.heapSize = options.heapSize || 4096;
1919 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
1920 this.BLOCK_SIZE = _aes_block_size;
1921 this.heap = options.heap || new Uint8Array(options.heapSize);
1922 this.asm = options.asm || aes_asm(global, null, this.heap.buffer);
1923 this.pos = _aes_heap_start;
1924 this.len = 0;
1925 this.key = null;
1926 this.result = null;
1927 this.reset(options);
1928 }
1929 function _aes_reset(options) {
1930 options = options || {};
1931 this.result = null;
1932 this.pos = _aes_heap_start;
1933 this.len = 0;
1934 var asm = this.asm;
1935 var key = options.key;
1936 if (key !== undefined) {
1937 if (is_buffer(key) || is_bytes(key)) {
1938 key = new Uint8Array(key);
1939 } else if (is_string(key)) {
1940 var str = key;
1941 key = new Uint8Array(str.length);
1942 for (var i = 0; i < str.length; ++i) key[i] = str.charCodeAt(i);
1943 } else {
1944 throw new TypeError("unexpected key type");
1945 }
1946 if (key.length === 16) {
1947 this.key = key;
1948 asm.init_key_128.call(asm, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15]);
1949 } else if (key.length === 24) {
1950 throw new IllegalArgumentError("illegal key size");
1951 } else if (key.length === 32) {
1952 this.key = key;
1953 asm.init_key_256.call(asm, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7], key[8], key[9], key[10], key[11], key[12], key[13], key[14], key[15], key[16], key[17], key[18], key[19], key[20], key[21], key[22], key[23], key[24], key[25], key[26], key[27], key[28], key[29], key[30], key[31]);
1954 } else {
1955 throw new IllegalArgumentError("illegal key size");
1956 }
1957 }
1958 return this;
1959 }
1960 function _aes_init_iv(iv) {
1961 var asm = this.asm;
1962 if (iv !== undefined) {
1963 if (is_buffer(iv) || is_bytes(iv)) {
1964 iv = new Uint8Array(iv);
1965 } else if (is_string(iv)) {
1966 var str = iv;
1967 iv = new Uint8Array(str.length);
1968 for (var i = 0; i < str.length; ++i) iv[i] = str.charCodeAt(i);
1969 } else {
1970 throw new TypeError("unexpected iv type");
1971 }
1972 if (iv.length !== _aes_block_size) throw new IllegalArgumentError("illegal iv size");
1973 this.iv = iv;
1974 asm.init_state.call(asm, iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7], iv[8], iv[9], iv[10], iv[11], iv[12], iv[13], iv[14], iv[15]);
1975 } else {
1976 this.iv = null;
1977 asm.init_state.call(asm, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1978 }
1979 }
1980 function _aes_heap_write(heap, hpos, data, dpos, dlen) {
1981 var hlen = heap.byteLength - hpos, wlen = hlen < dlen ? hlen : dlen;
1982 if (is_buffer(data) || is_bytes(data)) {
1983 heap.set(new Uint8Array(data.buffer || data, dpos, wlen), hpos);
1984 } else if (is_string(data)) {
1985 for (var i = 0; i < wlen; ++i) heap[hpos + i] = data.charCodeAt(dpos + i);
1986 } else {
1987 throw new TypeError("unexpected data type");
1988 }
1989 return wlen;
1990 }
1991 function cbc_aes_constructor(options) {
1992 this.padding = true;
1993 this.mode = "cbc";
1994 this.iv = null;
1995 _aes_constructor.call(this, options);
1996 }
1997 function cbc_aes_encrypt_constructor(options) {
1998 cbc_aes_constructor.call(this, options);
1999 }
2000 function cbc_aes_decrypt_constructor(options) {
2001 cbc_aes_constructor.call(this, options);
2002 }
2003 function cbc_aes_reset(options) {
2004 options = options || {};
2005 _aes_reset.call(this, options);
2006 var padding = options.padding;
2007 if (padding !== undefined) {
2008 this.padding = !!padding;
2009 } else {
2010 this.padding = true;
2011 }
2012 _aes_init_iv.call(this, options.iv);
2013 return this;
2014 }
2015 function cbc_aes_encrypt_process(data) {
2016 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2017 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2018 var result = new Uint8Array(rlen);
2019 while (dlen > 0) {
2020 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2021 len += wlen;
2022 dpos += wlen;
2023 dlen -= wlen;
2024 wlen = asm.cbc_encrypt(pos, len);
2025 result.set(heap.subarray(pos, pos + wlen), rpos);
2026 rpos += wlen;
2027 if (wlen < len) {
2028 pos += wlen;
2029 len -= wlen;
2030 } else {
2031 pos = _aes_heap_start;
2032 len = 0;
2033 }
2034 }
2035 this.result = result;
2036 this.pos = pos;
2037 this.len = len;
2038 return this;
2039 }
2040 function cbc_aes_encrypt_finish() {
2041 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2042 var asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len, rlen = _aes_block_size * Math.ceil(len / _aes_block_size);
2043 if (len % _aes_block_size === 0) {
2044 if (padding) rlen += _aes_block_size;
2045 } else if (!padding) {
2046 throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size);
2047 }
2048 var result = new Uint8Array(rlen);
2049 if (len < rlen) {
2050 var plen = _aes_block_size - len % _aes_block_size;
2051 for (var p = 0; p < plen; ++p) heap[pos + len + p] = plen;
2052 len += plen;
2053 }
2054 asm.cbc_encrypt(pos, len);
2055 result.set(heap.subarray(pos, pos + len));
2056 this.result = result;
2057 this.pos = _aes_heap_start;
2058 this.len = 0;
2059 return this;
2060 }
2061 function cbc_aes_encrypt(data) {
2062 var result1 = cbc_aes_encrypt_process.call(this, data).result, result2 = cbc_aes_encrypt_finish.call(this).result, result;
2063 result = new Uint8Array(result1.length + result2.length);
2064 result.set(result1);
2065 result.set(result2, result1.length);
2066 this.result = result;
2067 return this;
2068 }
2069 function cbc_aes_decrypt_process(data) {
2070 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2071 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2072 var result = new Uint8Array(rlen);
2073 while (dlen > 0) {
2074 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2075 len += wlen;
2076 dpos += wlen;
2077 dlen -= wlen;
2078 wlen = asm.cbc_decrypt(pos, len - (padding && dlen === 0 && len % _aes_block_size === 0 ? _aes_block_size : 0));
2079 result.set(heap.subarray(pos, pos + wlen), rpos);
2080 rpos += wlen;
2081 if (wlen < len) {
2082 pos += wlen;
2083 len -= wlen;
2084 } else {
2085 pos = _aes_heap_start;
2086 len = 0;
2087 }
2088 }
2089 this.result = result.subarray(0, rpos);
2090 this.pos = pos;
2091 this.len = len;
2092 return this;
2093 }
2094 function cbc_aes_decrypt_finish() {
2095 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2096 var asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len;
2097 if (len === 0) {
2098 if (!padding) {
2099 this.result = new Uint8Array(0);
2100 this.pos = _aes_heap_start;
2101 this.len = 0;
2102 return this;
2103 } else {
2104 throw new IllegalStateError("padding not found");
2105 }
2106 }
2107 if (len % _aes_block_size !== 0) throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size);
2108 var result = new Uint8Array(len);
2109 asm.cbc_decrypt(pos, len);
2110 result.set(heap.subarray(pos, pos + len));
2111 if (padding) {
2112 var pad = result[len - 1];
2113 result = result.subarray(0, len - pad);
2114 }
2115 this.result = result;
2116 this.pos = _aes_heap_start;
2117 this.len = 0;
2118 return this;
2119 }
2120 function cbc_aes_decrypt(data) {
2121 var result1 = cbc_aes_decrypt_process.call(this, data).result, result2 = cbc_aes_decrypt_finish.call(this).result, result;
2122 result = new Uint8Array(result1.length + result2.length);
2123 result.set(result1);
2124 result.set(result2, result1.length);
2125 this.result = result;
2126 return this;
2127 }
2128 var cbc_aes_encrypt_prototype = cbc_aes_encrypt_constructor.prototype;
2129 cbc_aes_encrypt_prototype.reset = cbc_aes_reset;
2130 cbc_aes_encrypt_prototype.process = cbc_aes_encrypt_process;
2131 cbc_aes_encrypt_prototype.finish = cbc_aes_encrypt_finish;
2132 var cbc_aes_decrypt_prototype = cbc_aes_decrypt_constructor.prototype;
2133 cbc_aes_decrypt_prototype.reset = cbc_aes_reset;
2134 cbc_aes_decrypt_prototype.process = cbc_aes_decrypt_process;
2135 cbc_aes_decrypt_prototype.finish = cbc_aes_decrypt_finish;
2136 var cbc_aes_prototype = cbc_aes_constructor.prototype;
2137 cbc_aes_prototype.reset = cbc_aes_reset;
2138 cbc_aes_prototype.encrypt = cbc_aes_encrypt;
2139 cbc_aes_prototype.decrypt = cbc_aes_decrypt;
2140 function _cbc_mac_process(data) {
2141 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, wlen = 0;
2142 while (dlen > 0) {
2143 wlen = _aes_heap_write(this.heap, _aes_heap_start, data, dpos, dlen);
2144 this.asm.cbc_mac(_aes_heap_start, wlen, -1);
2145 dpos += wlen;
2146 dlen -= wlen;
2147 }
2148 }
2149 var _ccm_adata_maxLength = 65279, _ccm_data_maxLength = 68719476720;
2150 function ccm_aes_constructor(options) {
2151 this.padding = false;
2152 this.mode = "ccm";
2153 this.tagSize = _aes_block_size;
2154 this.lengthSize = 4;
2155 this.nonce = null;
2156 this.adata = null;
2157 this.iv = null;
2158 this.dataLength = -1;
2159 this.dataLeft = -1;
2160 this.counter = 1;
2161 _aes_constructor.call(this, options);
2162 }
2163 function ccm_aes_encrypt_constructor(options) {
2164 ccm_aes_constructor.call(this, options);
2165 }
2166 function ccm_aes_decrypt_constructor(options) {
2167 ccm_aes_constructor.call(this, options);
2168 }
2169 function _ccm_calculate_iv() {
2170 var nonce = this.nonce, adata = this.adata, tagSize = this.tagSize, lengthSize = this.lengthSize, dataLength = this.dataLength;
2171 var data = new Uint8Array(_aes_block_size + (adata ? 2 + adata.byteLength : 0));
2172 data[0] = (adata ? 64 : 0) | tagSize - 2 << 2 | lengthSize - 1;
2173 data.set(nonce, 1);
2174 if (lengthSize > 4) data[11] = (dataLength - (dataLength >>> 0)) / 4294967296 & 15;
2175 if (lengthSize > 3) data[12] = dataLength >>> 24;
2176 if (lengthSize > 2) data[13] = dataLength >>> 16 & 255;
2177 data[14] = dataLength >>> 8 & 255;
2178 data[15] = dataLength & 255;
2179 if (adata) {
2180 data[16] = adata.byteLength >>> 8 & 255;
2181 data[17] = adata.byteLength & 255;
2182 data.set(adata, 18);
2183 }
2184 _cbc_mac_process.call(this, data);
2185 this.asm.save_state(_aes_heap_start);
2186 this.iv = new Uint8Array(this.heap.subarray(_aes_heap_start, _aes_heap_start + _aes_block_size));
2187 }
2188 function ccm_aes_reset(options) {
2189 options = options || {};
2190 _aes_reset.call(this, options);
2191 _aes_init_iv.call(this, options.iv);
2192 var tagSize = options.tagSize;
2193 if (tagSize !== undefined) {
2194 if (!is_number(tagSize)) throw new TypeError("tagSize must be a number");
2195 if (tagSize < 4 || tagSize > 16 || tagSize & 1) throw new IllegalArgumentError("illegal tagSize value");
2196 this.tagSize = tagSize;
2197 } else {
2198 this.tagSize = _aes_block_size;
2199 }
2200 var lengthSize = options.lengthSize, nonce = options.nonce;
2201 if (nonce !== undefined) {
2202 if (is_buffer(nonce) || is_bytes(nonce)) {
2203 nonce = new Uint8Array(nonce);
2204 } else if (is_string(nonce)) {
2205 var str = nonce;
2206 nonce = new Uint8Array(str.length);
2207 for (var i = 0; i < str.length; ++i) nonce[i] = str.charCodeAt(i);
2208 } else {
2209 throw new TypeError("unexpected nonce type");
2210 }
2211 if (nonce.length < 10 || nonce.length > 13) throw new IllegalArgumentError("illegal nonce length");
2212 lengthSize = lengthSize || 15 - nonce.length;
2213 this.nonce = nonce;
2214 } else {
2215 this.nonce = null;
2216 }
2217 if (lengthSize !== undefined) {
2218 if (!is_number(lengthSize)) throw new TypeError("lengthSize must be a number");
2219 if (lengthSize < 2 || lengthSize > 5 || nonce.length + lengthSize !== 15) throw new IllegalArgumentError("illegal lengthSize value");
2220 this.lengthSize = lengthSize;
2221 } else {
2222 this.lengthSize = lengthSize = 4;
2223 }
2224 var iv = this.iv;
2225 var counter = options.counter;
2226 if (counter !== undefined) {
2227 if (iv === null) throw new IllegalStateError("iv is also required");
2228 if (!is_number(counter)) throw new TypeError("counter must be a number");
2229 this.counter = counter;
2230 } else {
2231 this.counter = 1;
2232 }
2233 var dataLength = options.dataLength;
2234 if (dataLength !== undefined) {
2235 if (!is_number(dataLength)) throw new TypeError("dataLength must be a number");
2236 if (dataLength < 0 || dataLength > _ccm_data_maxLength || dataLength > Math.pow(2, 8 * lengthSize) - 1) throw new IllegalArgumentError("illegal dataLength value");
2237 this.dataLength = dataLength;
2238 var dataLeft = options.dataLeft || dataLength;
2239 if (!is_number(dataLeft)) throw new TypeError("dataLeft must be a number");
2240 if (dataLeft < 0 || dataLeft > dataLength) throw new IllegalArgumentError("illegal dataLeft value");
2241 this.dataLeft = dataLeft;
2242 } else {
2243 this.dataLength = dataLength = -1;
2244 this.dataLeft = dataLength;
2245 }
2246 var adata = options.adata;
2247 if (adata !== undefined) {
2248 if (iv !== null) throw new IllegalStateError("you must specify either adata or iv, not both");
2249 if (is_buffer(adata) || is_bytes(adata)) {
2250 adata = new Uint8Array(adata);
2251 } else if (is_string(adata)) {
2252 var str = adata;
2253 adata = new Uint8Array(str.length);
2254 for (var i = 0; i < str.length; ++i) adata[i] = str.charCodeAt(i);
2255 } else {
2256 throw new TypeError("unexpected adata type");
2257 }
2258 if (adata.byteLength === 0 || adata.byteLength > _ccm_adata_maxLength) throw new IllegalArgumentError("illegal adata length");
2259 this.adata = adata;
2260 this.counter = 1;
2261 } else {
2262 this.adata = adata = null;
2263 }
2264 if (dataLength !== -1) _ccm_calculate_iv.call(this);
2265 return this;
2266 }
2267 function ccm_aes_encrypt_process(data) {
2268 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2269 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2270 if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow");
2271 var result = new Uint8Array(rlen);
2272 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2273 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2274 while (dlen > 0) {
2275 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2276 len += wlen;
2277 dpos += wlen;
2278 dlen -= wlen;
2279 asm_args[0] = pos;
2280 asm_args[1] = len & ~15;
2281 asm_args[16] = counter / 4294967296 >>> 0;
2282 asm_args[17] = counter >>> 0;
2283 wlen = asm.ccm_encrypt.apply(asm, asm_args);
2284 result.set(heap.subarray(pos, pos + wlen), rpos);
2285 counter += wlen >>> 4;
2286 rpos += wlen;
2287 if (wlen < len) {
2288 pos += wlen;
2289 len -= wlen;
2290 } else {
2291 pos = _aes_heap_start;
2292 len = 0;
2293 }
2294 }
2295 this.result = result;
2296 this.counter = counter;
2297 this.pos = pos;
2298 this.len = len;
2299 return this;
2300 }
2301 function ccm_aes_encrypt_finish() {
2302 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2303 var asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, wlen = 0;
2304 var result = new Uint8Array(len + tagSize);
2305 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2306 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2307 asm_args[0] = pos;
2308 asm_args[1] = len;
2309 asm_args[16] = counter / 4294967296 >>> 0;
2310 asm_args[17] = counter >>> 0;
2311 wlen = asm.ccm_encrypt.apply(asm, asm_args);
2312 result.set(heap.subarray(pos, pos + wlen));
2313 counter = 1;
2314 pos = _aes_heap_start;
2315 len = 0;
2316 asm.save_state(_aes_heap_start);
2317 asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0;
2318 asm_args[17] = 0;
2319 asm.ccm_encrypt.apply(asm, asm_args);
2320 result.set(heap.subarray(_aes_heap_start, _aes_heap_start + tagSize), wlen);
2321 this.result = result;
2322 this.counter = counter;
2323 this.pos = pos;
2324 this.len = len;
2325 return this;
2326 }
2327 function ccm_aes_encrypt(data) {
2328 this.dataLength = this.dataLeft = data.byteLength || data.length || 0;
2329 var result1 = ccm_aes_encrypt_process.call(this, data).result, result2 = ccm_aes_encrypt_finish.call(this).result, result;
2330 result = new Uint8Array(result1.length + result2.length);
2331 result.set(result1);
2332 result.set(result2, result1.length);
2333 this.result = result;
2334 return this;
2335 }
2336 function ccm_aes_decrypt_process(data) {
2337 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2338 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2339 if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow");
2340 var result = new Uint8Array(rlen);
2341 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2342 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2343 while (dlen > 0) {
2344 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2345 len += wlen;
2346 dpos += wlen;
2347 dlen -= wlen;
2348 asm_args[0] = pos;
2349 asm_args[1] = len + dlen - tagSize >= _aes_block_size ? dlen >= tagSize ? len & ~15 : len + dlen - tagSize & ~15 : 0;
2350 asm_args[16] = counter / 4294967296 >>> 0;
2351 asm_args[17] = counter >>> 0;
2352 wlen = asm.ccm_decrypt.apply(asm, asm_args);
2353 result.set(heap.subarray(pos, pos + wlen), rpos);
2354 counter += wlen >>> 4;
2355 rpos += wlen;
2356 if (wlen < len) {
2357 pos += wlen;
2358 len -= wlen;
2359 } else {
2360 pos = _aes_heap_start;
2361 len = 0;
2362 }
2363 }
2364 this.result = result.subarray(0, rpos);
2365 this.counter = counter;
2366 this.pos = pos;
2367 this.len = len;
2368 return this;
2369 }
2370 function ccm_aes_decrypt_finish() {
2371 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2372 var asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, rlen = len - tagSize, wlen = 0;
2373 if (len < tagSize) throw new IllegalStateError("authentication tag not found");
2374 var result = new Uint8Array(rlen), atag = new Uint8Array(heap.subarray(pos + rlen, pos + len));
2375 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2376 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2377 asm_args[0] = pos;
2378 asm_args[1] = rlen;
2379 asm_args[16] = counter / 4294967296 >>> 0;
2380 asm_args[17] = counter >>> 0;
2381 wlen = asm.ccm_decrypt.apply(asm, asm_args);
2382 result.set(heap.subarray(pos, pos + wlen));
2383 counter = 1;
2384 pos = _aes_heap_start;
2385 len = 0;
2386 asm.save_state(_aes_heap_start);
2387 asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0;
2388 asm_args[17] = 0;
2389 asm.ccm_encrypt.apply(asm, asm_args);
2390 var acheck = 0;
2391 for (var i = 0; i < tagSize; ++i) acheck |= atag[i] ^ heap[_aes_heap_start + i];
2392 if (acheck) throw new SecurityError("data integrity check failed");
2393 this.result = result;
2394 this.counter = counter;
2395 this.pos = pos;
2396 this.len = len;
2397 return this;
2398 }
2399 function ccm_aes_decrypt(data) {
2400 this.dataLength = this.dataLeft = data.byteLength || data.length || 0;
2401 var result1 = ccm_aes_decrypt_process.call(this, data).result, result2 = ccm_aes_decrypt_finish.call(this).result, result;
2402 result = new Uint8Array(result1.length + result2.length);
2403 result.set(result1);
2404 result.set(result2, result1.length);
2405 this.result = result;
2406 return this;
2407 }
2408 var ccm_aes_prototype = ccm_aes_constructor.prototype;
2409 ccm_aes_prototype.reset = ccm_aes_reset;
2410 ccm_aes_prototype.encrypt = ccm_aes_encrypt;
2411 ccm_aes_prototype.decrypt = ccm_aes_decrypt;
2412 var ccm_aes_encrypt_prototype = ccm_aes_encrypt_constructor.prototype;
2413 ccm_aes_encrypt_prototype.reset = ccm_aes_reset;
2414 ccm_aes_encrypt_prototype.process = ccm_aes_encrypt_process;
2415 ccm_aes_encrypt_prototype.finish = ccm_aes_encrypt_finish;
2416 var ccm_aes_decrypt_prototype = ccm_aes_decrypt_constructor.prototype;
2417 ccm_aes_decrypt_prototype.reset = ccm_aes_reset;
2418 ccm_aes_decrypt_prototype.process = ccm_aes_decrypt_process;
2419 ccm_aes_decrypt_prototype.finish = ccm_aes_decrypt_finish;
2420 function cfb_aes_constructor(options) {
2421 this.padding = false;
2422 this.mode = "cfb";
2423 this.iv = null;
2424 _aes_constructor.call(this, options);
2425 }
2426 function cfb_aes_encrypt_constructor(options) {
2427 cfb_aes_constructor.call(this, options);
2428 }
2429 function cfb_aes_decrypt_constructor(options) {
2430 cfb_aes_constructor.call(this, options);
2431 }
2432 function cfb_aes_reset(options) {
2433 options = options || {};
2434 _aes_reset.call(this, options);
2435 _aes_init_iv.call(this, options.iv);
2436 return this;
2437 }
2438 function cfb_aes_encrypt_process(data) {
2439 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2440 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2441 var result = new Uint8Array(rlen);
2442 while (dlen > 0) {
2443 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2444 len += wlen;
2445 dpos += wlen;
2446 dlen -= wlen;
2447 wlen = asm.cfb_encrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size));
2448 result.set(heap.subarray(pos, pos + wlen), rpos);
2449 rpos += wlen;
2450 if (wlen < len) {
2451 pos += wlen;
2452 len -= wlen;
2453 } else {
2454 pos = _aes_heap_start;
2455 len = 0;
2456 }
2457 }
2458 this.result = result;
2459 this.pos = pos;
2460 this.len = len;
2461 return this;
2462 }
2463 function cfb_aes_encrypt_finish() {
2464 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2465 var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len;
2466 var result = new Uint8Array(len);
2467 asm.cfb_encrypt(pos, len);
2468 result.set(heap.subarray(pos, pos + len));
2469 this.result = result;
2470 this.pos = _aes_heap_start;
2471 this.len = 0;
2472 return this;
2473 }
2474 function cfb_aes_encrypt(data) {
2475 var result1 = cfb_aes_encrypt_process.call(this, data).result, result2 = cfb_aes_encrypt_finish.call(this).result, result;
2476 result = new Uint8Array(result1.length + result2.length);
2477 result.set(result1);
2478 result.set(result2, result1.length);
2479 this.result = result;
2480 return this;
2481 }
2482 function cfb_aes_decrypt_process(data) {
2483 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2484 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, asm = this.asm, heap = this.heap, pos = this.pos, len = this.len, rpos = 0, rlen = _aes_block_size * Math.floor((len + dlen) / _aes_block_size), wlen = 0;
2485 var result = new Uint8Array(rlen);
2486 while (dlen > 0) {
2487 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2488 len += wlen;
2489 dpos += wlen;
2490 dlen -= wlen;
2491 wlen = asm.cfb_decrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size));
2492 result.set(heap.subarray(pos, pos + wlen), rpos);
2493 rpos += wlen;
2494 if (wlen < len) {
2495 pos += wlen;
2496 len -= wlen;
2497 } else {
2498 pos = _aes_heap_start;
2499 len = 0;
2500 }
2501 }
2502 this.result = result.subarray(0, rpos);
2503 this.pos = pos;
2504 this.len = len;
2505 return this;
2506 }
2507 function cfb_aes_decrypt_finish() {
2508 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2509 var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len;
2510 if (len === 0) {
2511 this.result = new Uint8Array(0);
2512 this.pos = _aes_heap_start;
2513 this.len = 0;
2514 return this;
2515 }
2516 var result = new Uint8Array(len);
2517 asm.cfb_decrypt(pos, len);
2518 result.set(heap.subarray(pos, pos + len));
2519 this.result = result;
2520 this.pos = _aes_heap_start;
2521 this.len = 0;
2522 return this;
2523 }
2524 function cfb_aes_decrypt(data) {
2525 var result1 = cfb_aes_decrypt_process.call(this, data).result, result2 = cfb_aes_decrypt_finish.call(this).result, result;
2526 result = new Uint8Array(result1.length + result2.length);
2527 result.set(result1);
2528 result.set(result2, result1.length);
2529 this.result = result;
2530 return this;
2531 }
2532 var cfb_aes_encrypt_prototype = cfb_aes_encrypt_constructor.prototype;
2533 cfb_aes_encrypt_prototype.reset = cfb_aes_reset;
2534 cfb_aes_encrypt_prototype.process = cfb_aes_encrypt_process;
2535 cfb_aes_encrypt_prototype.finish = cfb_aes_encrypt_finish;
2536 var cfb_aes_decrypt_prototype = cfb_aes_decrypt_constructor.prototype;
2537 cfb_aes_decrypt_prototype.reset = cfb_aes_reset;
2538 cfb_aes_decrypt_prototype.process = cfb_aes_decrypt_process;
2539 cfb_aes_decrypt_prototype.finish = cfb_aes_decrypt_finish;
2540 var cfb_aes_prototype = cfb_aes_constructor.prototype;
2541 cfb_aes_prototype.reset = cfb_aes_reset;
2542 cfb_aes_prototype.encrypt = cfb_aes_encrypt;
2543 cfb_aes_prototype.decrypt = cfb_aes_decrypt;
2544 function sha256_asm(stdlib, foreign, buffer) {
2545 "use asm";
2546 var H0 = 0, H1 = 0, H2 = 0, H3 = 0, H4 = 0, H5 = 0, H6 = 0, H7 = 0, TOTAL = 0;
2547 var I0 = 0, I1 = 0, I2 = 0, I3 = 0, I4 = 0, I5 = 0, I6 = 0, I7 = 0, O0 = 0, O1 = 0, O2 = 0, O3 = 0, O4 = 0, O5 = 0, O6 = 0, O7 = 0;
2548 var HEAP = new stdlib.Uint8Array(buffer);
2549 function _core(w0, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15) {
2550 w0 = w0 | 0;
2551 w1 = w1 | 0;
2552 w2 = w2 | 0;
2553 w3 = w3 | 0;
2554 w4 = w4 | 0;
2555 w5 = w5 | 0;
2556 w6 = w6 | 0;
2557 w7 = w7 | 0;
2558 w8 = w8 | 0;
2559 w9 = w9 | 0;
2560 w10 = w10 | 0;
2561 w11 = w11 | 0;
2562 w12 = w12 | 0;
2563 w13 = w13 | 0;
2564 w14 = w14 | 0;
2565 w15 = w15 | 0;
2566 var a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, t = 0;
2567 a = H0;
2568 b = H1;
2569 c = H2;
2570 d = H3;
2571 e = H4;
2572 f = H5;
2573 g = H6;
2574 h = H7;
2575 t = w0 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1116352408 | 0;
2576 h = g;
2577 g = f;
2578 f = e;
2579 e = d + t | 0;
2580 d = c;
2581 c = b;
2582 b = a;
2583 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2584 t = w1 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1899447441 | 0;
2585 h = g;
2586 g = f;
2587 f = e;
2588 e = d + t | 0;
2589 d = c;
2590 c = b;
2591 b = a;
2592 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2593 t = w2 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3049323471 | 0;
2594 h = g;
2595 g = f;
2596 f = e;
2597 e = d + t | 0;
2598 d = c;
2599 c = b;
2600 b = a;
2601 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2602 t = w3 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3921009573 | 0;
2603 h = g;
2604 g = f;
2605 f = e;
2606 e = d + t | 0;
2607 d = c;
2608 c = b;
2609 b = a;
2610 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2611 t = w4 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 961987163 | 0;
2612 h = g;
2613 g = f;
2614 f = e;
2615 e = d + t | 0;
2616 d = c;
2617 c = b;
2618 b = a;
2619 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2620 t = w5 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1508970993 | 0;
2621 h = g;
2622 g = f;
2623 f = e;
2624 e = d + t | 0;
2625 d = c;
2626 c = b;
2627 b = a;
2628 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2629 t = w6 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2453635748 | 0;
2630 h = g;
2631 g = f;
2632 f = e;
2633 e = d + t | 0;
2634 d = c;
2635 c = b;
2636 b = a;
2637 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2638 t = w7 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2870763221 | 0;
2639 h = g;
2640 g = f;
2641 f = e;
2642 e = d + t | 0;
2643 d = c;
2644 c = b;
2645 b = a;
2646 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2647 t = w8 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3624381080 | 0;
2648 h = g;
2649 g = f;
2650 f = e;
2651 e = d + t | 0;
2652 d = c;
2653 c = b;
2654 b = a;
2655 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2656 t = w9 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 310598401 | 0;
2657 h = g;
2658 g = f;
2659 f = e;
2660 e = d + t | 0;
2661 d = c;
2662 c = b;
2663 b = a;
2664 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2665 t = w10 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 607225278 | 0;
2666 h = g;
2667 g = f;
2668 f = e;
2669 e = d + t | 0;
2670 d = c;
2671 c = b;
2672 b = a;
2673 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2674 t = w11 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1426881987 | 0;
2675 h = g;
2676 g = f;
2677 f = e;
2678 e = d + t | 0;
2679 d = c;
2680 c = b;
2681 b = a;
2682 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2683 t = w12 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1925078388 | 0;
2684 h = g;
2685 g = f;
2686 f = e;
2687 e = d + t | 0;
2688 d = c;
2689 c = b;
2690 b = a;
2691 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2692 t = w13 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2162078206 | 0;
2693 h = g;
2694 g = f;
2695 f = e;
2696 e = d + t | 0;
2697 d = c;
2698 c = b;
2699 b = a;
2700 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2701 t = w14 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2614888103 | 0;
2702 h = g;
2703 g = f;
2704 f = e;
2705 e = d + t | 0;
2706 d = c;
2707 c = b;
2708 b = a;
2709 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2710 t = w15 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3248222580 | 0;
2711 h = g;
2712 g = f;
2713 f = e;
2714 e = d + t | 0;
2715 d = c;
2716 c = b;
2717 b = a;
2718 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2719 w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0;
2720 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3835390401 | 0;
2721 h = g;
2722 g = f;
2723 f = e;
2724 e = d + t | 0;
2725 d = c;
2726 c = b;
2727 b = a;
2728 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2729 w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0;
2730 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4022224774 | 0;
2731 h = g;
2732 g = f;
2733 f = e;
2734 e = d + t | 0;
2735 d = c;
2736 c = b;
2737 b = a;
2738 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2739 w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0;
2740 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 264347078 | 0;
2741 h = g;
2742 g = f;
2743 f = e;
2744 e = d + t | 0;
2745 d = c;
2746 c = b;
2747 b = a;
2748 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2749 w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0;
2750 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 604807628 | 0;
2751 h = g;
2752 g = f;
2753 f = e;
2754 e = d + t | 0;
2755 d = c;
2756 c = b;
2757 b = a;
2758 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2759 w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0;
2760 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 770255983 | 0;
2761 h = g;
2762 g = f;
2763 f = e;
2764 e = d + t | 0;
2765 d = c;
2766 c = b;
2767 b = a;
2768 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2769 w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0;
2770 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1249150122 | 0;
2771 h = g;
2772 g = f;
2773 f = e;
2774 e = d + t | 0;
2775 d = c;
2776 c = b;
2777 b = a;
2778 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2779 w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0;
2780 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1555081692 | 0;
2781 h = g;
2782 g = f;
2783 f = e;
2784 e = d + t | 0;
2785 d = c;
2786 c = b;
2787 b = a;
2788 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2789 w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0;
2790 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1996064986 | 0;
2791 h = g;
2792 g = f;
2793 f = e;
2794 e = d + t | 0;
2795 d = c;
2796 c = b;
2797 b = a;
2798 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2799 w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0;
2800 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2554220882 | 0;
2801 h = g;
2802 g = f;
2803 f = e;
2804 e = d + t | 0;
2805 d = c;
2806 c = b;
2807 b = a;
2808 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2809 w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0;
2810 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2821834349 | 0;
2811 h = g;
2812 g = f;
2813 f = e;
2814 e = d + t | 0;
2815 d = c;
2816 c = b;
2817 b = a;
2818 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2819 w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0;
2820 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2952996808 | 0;
2821 h = g;
2822 g = f;
2823 f = e;
2824 e = d + t | 0;
2825 d = c;
2826 c = b;
2827 b = a;
2828 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2829 w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0;
2830 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3210313671 | 0;
2831 h = g;
2832 g = f;
2833 f = e;
2834 e = d + t | 0;
2835 d = c;
2836 c = b;
2837 b = a;
2838 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2839 w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0;
2840 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3336571891 | 0;
2841 h = g;
2842 g = f;
2843 f = e;
2844 e = d + t | 0;
2845 d = c;
2846 c = b;
2847 b = a;
2848 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2849 w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0;
2850 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3584528711 | 0;
2851 h = g;
2852 g = f;
2853 f = e;
2854 e = d + t | 0;
2855 d = c;
2856 c = b;
2857 b = a;
2858 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2859 w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0;
2860 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 113926993 | 0;
2861 h = g;
2862 g = f;
2863 f = e;
2864 e = d + t | 0;
2865 d = c;
2866 c = b;
2867 b = a;
2868 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2869 w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0;
2870 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 338241895 | 0;
2871 h = g;
2872 g = f;
2873 f = e;
2874 e = d + t | 0;
2875 d = c;
2876 c = b;
2877 b = a;
2878 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2879 w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0;
2880 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 666307205 | 0;
2881 h = g;
2882 g = f;
2883 f = e;
2884 e = d + t | 0;
2885 d = c;
2886 c = b;
2887 b = a;
2888 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2889 w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0;
2890 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 773529912 | 0;
2891 h = g;
2892 g = f;
2893 f = e;
2894 e = d + t | 0;
2895 d = c;
2896 c = b;
2897 b = a;
2898 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2899 w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0;
2900 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1294757372 | 0;
2901 h = g;
2902 g = f;
2903 f = e;
2904 e = d + t | 0;
2905 d = c;
2906 c = b;
2907 b = a;
2908 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2909 w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0;
2910 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1396182291 | 0;
2911 h = g;
2912 g = f;
2913 f = e;
2914 e = d + t | 0;
2915 d = c;
2916 c = b;
2917 b = a;
2918 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2919 w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0;
2920 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1695183700 | 0;
2921 h = g;
2922 g = f;
2923 f = e;
2924 e = d + t | 0;
2925 d = c;
2926 c = b;
2927 b = a;
2928 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2929 w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0;
2930 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1986661051 | 0;
2931 h = g;
2932 g = f;
2933 f = e;
2934 e = d + t | 0;
2935 d = c;
2936 c = b;
2937 b = a;
2938 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2939 w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0;
2940 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2177026350 | 0;
2941 h = g;
2942 g = f;
2943 f = e;
2944 e = d + t | 0;
2945 d = c;
2946 c = b;
2947 b = a;
2948 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2949 w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0;
2950 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2456956037 | 0;
2951 h = g;
2952 g = f;
2953 f = e;
2954 e = d + t | 0;
2955 d = c;
2956 c = b;
2957 b = a;
2958 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2959 w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0;
2960 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2730485921 | 0;
2961 h = g;
2962 g = f;
2963 f = e;
2964 e = d + t | 0;
2965 d = c;
2966 c = b;
2967 b = a;
2968 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2969 w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0;
2970 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2820302411 | 0;
2971 h = g;
2972 g = f;
2973 f = e;
2974 e = d + t | 0;
2975 d = c;
2976 c = b;
2977 b = a;
2978 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2979 w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0;
2980 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3259730800 | 0;
2981 h = g;
2982 g = f;
2983 f = e;
2984 e = d + t | 0;
2985 d = c;
2986 c = b;
2987 b = a;
2988 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2989 w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0;
2990 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3345764771 | 0;
2991 h = g;
2992 g = f;
2993 f = e;
2994 e = d + t | 0;
2995 d = c;
2996 c = b;
2997 b = a;
2998 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2999 w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0;
3000 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3516065817 | 0;
3001 h = g;
3002 g = f;
3003 f = e;
3004 e = d + t | 0;
3005 d = c;
3006 c = b;
3007 b = a;
3008 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3009 w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0;
3010 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3600352804 | 0;
3011 h = g;
3012 g = f;
3013 f = e;
3014 e = d + t | 0;
3015 d = c;
3016 c = b;
3017 b = a;
3018 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3019 w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0;
3020 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4094571909 | 0;
3021 h = g;
3022 g = f;
3023 f = e;
3024 e = d + t | 0;
3025 d = c;
3026 c = b;
3027 b = a;
3028 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3029 w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0;
3030 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 275423344 | 0;
3031 h = g;
3032 g = f;
3033 f = e;
3034 e = d + t | 0;
3035 d = c;
3036 c = b;
3037 b = a;
3038 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3039 w0 = t = (w1 >>> 7 ^ w1 >>> 18 ^ w1 >>> 3 ^ w1 << 25 ^ w1 << 14) + (w14 >>> 17 ^ w14 >>> 19 ^ w14 >>> 10 ^ w14 << 15 ^ w14 << 13) + w0 + w9 | 0;
3040 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 430227734 | 0;
3041 h = g;
3042 g = f;
3043 f = e;
3044 e = d + t | 0;
3045 d = c;
3046 c = b;
3047 b = a;
3048 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3049 w1 = t = (w2 >>> 7 ^ w2 >>> 18 ^ w2 >>> 3 ^ w2 << 25 ^ w2 << 14) + (w15 >>> 17 ^ w15 >>> 19 ^ w15 >>> 10 ^ w15 << 15 ^ w15 << 13) + w1 + w10 | 0;
3050 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 506948616 | 0;
3051 h = g;
3052 g = f;
3053 f = e;
3054 e = d + t | 0;
3055 d = c;
3056 c = b;
3057 b = a;
3058 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3059 w2 = t = (w3 >>> 7 ^ w3 >>> 18 ^ w3 >>> 3 ^ w3 << 25 ^ w3 << 14) + (w0 >>> 17 ^ w0 >>> 19 ^ w0 >>> 10 ^ w0 << 15 ^ w0 << 13) + w2 + w11 | 0;
3060 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 659060556 | 0;
3061 h = g;
3062 g = f;
3063 f = e;
3064 e = d + t | 0;
3065 d = c;
3066 c = b;
3067 b = a;
3068 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3069 w3 = t = (w4 >>> 7 ^ w4 >>> 18 ^ w4 >>> 3 ^ w4 << 25 ^ w4 << 14) + (w1 >>> 17 ^ w1 >>> 19 ^ w1 >>> 10 ^ w1 << 15 ^ w1 << 13) + w3 + w12 | 0;
3070 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 883997877 | 0;
3071 h = g;
3072 g = f;
3073 f = e;
3074 e = d + t | 0;
3075 d = c;
3076 c = b;
3077 b = a;
3078 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3079 w4 = t = (w5 >>> 7 ^ w5 >>> 18 ^ w5 >>> 3 ^ w5 << 25 ^ w5 << 14) + (w2 >>> 17 ^ w2 >>> 19 ^ w2 >>> 10 ^ w2 << 15 ^ w2 << 13) + w4 + w13 | 0;
3080 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 958139571 | 0;
3081 h = g;
3082 g = f;
3083 f = e;
3084 e = d + t | 0;
3085 d = c;
3086 c = b;
3087 b = a;
3088 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3089 w5 = t = (w6 >>> 7 ^ w6 >>> 18 ^ w6 >>> 3 ^ w6 << 25 ^ w6 << 14) + (w3 >>> 17 ^ w3 >>> 19 ^ w3 >>> 10 ^ w3 << 15 ^ w3 << 13) + w5 + w14 | 0;
3090 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1322822218 | 0;
3091 h = g;
3092 g = f;
3093 f = e;
3094 e = d + t | 0;
3095 d = c;
3096 c = b;
3097 b = a;
3098 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3099 w6 = t = (w7 >>> 7 ^ w7 >>> 18 ^ w7 >>> 3 ^ w7 << 25 ^ w7 << 14) + (w4 >>> 17 ^ w4 >>> 19 ^ w4 >>> 10 ^ w4 << 15 ^ w4 << 13) + w6 + w15 | 0;
3100 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1537002063 | 0;
3101 h = g;
3102 g = f;
3103 f = e;
3104 e = d + t | 0;
3105 d = c;
3106 c = b;
3107 b = a;
3108 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3109 w7 = t = (w8 >>> 7 ^ w8 >>> 18 ^ w8 >>> 3 ^ w8 << 25 ^ w8 << 14) + (w5 >>> 17 ^ w5 >>> 19 ^ w5 >>> 10 ^ w5 << 15 ^ w5 << 13) + w7 + w0 | 0;
3110 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1747873779 | 0;
3111 h = g;
3112 g = f;
3113 f = e;
3114 e = d + t | 0;
3115 d = c;
3116 c = b;
3117 b = a;
3118 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3119 w8 = t = (w9 >>> 7 ^ w9 >>> 18 ^ w9 >>> 3 ^ w9 << 25 ^ w9 << 14) + (w6 >>> 17 ^ w6 >>> 19 ^ w6 >>> 10 ^ w6 << 15 ^ w6 << 13) + w8 + w1 | 0;
3120 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1955562222 | 0;
3121 h = g;
3122 g = f;
3123 f = e;
3124 e = d + t | 0;
3125 d = c;
3126 c = b;
3127 b = a;
3128 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3129 w9 = t = (w10 >>> 7 ^ w10 >>> 18 ^ w10 >>> 3 ^ w10 << 25 ^ w10 << 14) + (w7 >>> 17 ^ w7 >>> 19 ^ w7 >>> 10 ^ w7 << 15 ^ w7 << 13) + w9 + w2 | 0;
3130 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2024104815 | 0;
3131 h = g;
3132 g = f;
3133 f = e;
3134 e = d + t | 0;
3135 d = c;
3136 c = b;
3137 b = a;
3138 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3139 w10 = t = (w11 >>> 7 ^ w11 >>> 18 ^ w11 >>> 3 ^ w11 << 25 ^ w11 << 14) + (w8 >>> 17 ^ w8 >>> 19 ^ w8 >>> 10 ^ w8 << 15 ^ w8 << 13) + w10 + w3 | 0;
3140 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2227730452 | 0;
3141 h = g;
3142 g = f;
3143 f = e;
3144 e = d + t | 0;
3145 d = c;
3146 c = b;
3147 b = a;
3148 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3149 w11 = t = (w12 >>> 7 ^ w12 >>> 18 ^ w12 >>> 3 ^ w12 << 25 ^ w12 << 14) + (w9 >>> 17 ^ w9 >>> 19 ^ w9 >>> 10 ^ w9 << 15 ^ w9 << 13) + w11 + w4 | 0;
3150 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2361852424 | 0;
3151 h = g;
3152 g = f;
3153 f = e;
3154 e = d + t | 0;
3155 d = c;
3156 c = b;
3157 b = a;
3158 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3159 w12 = t = (w13 >>> 7 ^ w13 >>> 18 ^ w13 >>> 3 ^ w13 << 25 ^ w13 << 14) + (w10 >>> 17 ^ w10 >>> 19 ^ w10 >>> 10 ^ w10 << 15 ^ w10 << 13) + w12 + w5 | 0;
3160 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2428436474 | 0;
3161 h = g;
3162 g = f;
3163 f = e;
3164 e = d + t | 0;
3165 d = c;
3166 c = b;
3167 b = a;
3168 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3169 w13 = t = (w14 >>> 7 ^ w14 >>> 18 ^ w14 >>> 3 ^ w14 << 25 ^ w14 << 14) + (w11 >>> 17 ^ w11 >>> 19 ^ w11 >>> 10 ^ w11 << 15 ^ w11 << 13) + w13 + w6 | 0;
3170 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2756734187 | 0;
3171 h = g;
3172 g = f;
3173 f = e;
3174 e = d + t | 0;
3175 d = c;
3176 c = b;
3177 b = a;
3178 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3179 w14 = t = (w15 >>> 7 ^ w15 >>> 18 ^ w15 >>> 3 ^ w15 << 25 ^ w15 << 14) + (w12 >>> 17 ^ w12 >>> 19 ^ w12 >>> 10 ^ w12 << 15 ^ w12 << 13) + w14 + w7 | 0;
3180 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3204031479 | 0;
3181 h = g;
3182 g = f;
3183 f = e;
3184 e = d + t | 0;
3185 d = c;
3186 c = b;
3187 b = a;
3188 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3189 w15 = t = (w0 >>> 7 ^ w0 >>> 18 ^ w0 >>> 3 ^ w0 << 25 ^ w0 << 14) + (w13 >>> 17 ^ w13 >>> 19 ^ w13 >>> 10 ^ w13 << 15 ^ w13 << 13) + w15 + w8 | 0;
3190 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3329325298 | 0;
3191 h = g;
3192 g = f;
3193 f = e;
3194 e = d + t | 0;
3195 d = c;
3196 c = b;
3197 b = a;
3198 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3199 H0 = H0 + a | 0;
3200 H1 = H1 + b | 0;
3201 H2 = H2 + c | 0;
3202 H3 = H3 + d | 0;
3203 H4 = H4 + e | 0;
3204 H5 = H5 + f | 0;
3205 H6 = H6 + g | 0;
3206 H7 = H7 + h | 0;
3207 }
3208 function _core_heap(offset) {
3209 offset = offset | 0;
3210 _core(HEAP[offset | 0] << 24 | HEAP[offset | 1] << 16 | HEAP[offset | 2] << 8 | HEAP[offset | 3], HEAP[offset | 4] << 24 | HEAP[offset | 5] << 16 | HEAP[offset | 6] << 8 | HEAP[offset | 7], HEAP[offset | 8] << 24 | HEAP[offset | 9] << 16 | HEAP[offset | 10] << 8 | HEAP[offset | 11], HEAP[offset | 12] << 24 | HEAP[offset | 13] << 16 | HEAP[offset | 14] << 8 | HEAP[offset | 15], HEAP[offset | 16] << 24 | HEAP[offset | 17] << 16 | HEAP[offset | 18] << 8 | HEAP[offset | 19], HEAP[offset | 20] << 24 | HEAP[offset | 21] << 16 | HEAP[offset | 22] << 8 | HEAP[offset | 23], HEAP[offset | 24] << 24 | HEAP[offset | 25] << 16 | HEAP[offset | 26] << 8 | HEAP[offset | 27], HEAP[offset | 28] << 24 | HEAP[offset | 29] << 16 | HEAP[offset | 30] << 8 | HEAP[offset | 31], HEAP[offset | 32] << 24 | HEAP[offset | 33] << 16 | HEAP[offset | 34] << 8 | HEAP[offset | 35], HEAP[offset | 36] << 24 | HEAP[offset | 37] << 16 | HEAP[offset | 38] << 8 | HEAP[offset | 39], HEAP[offset | 40] << 24 | HEAP[offset | 41] << 16 | HEAP[offset | 42] << 8 | HEAP[offset | 43], HEAP[offset | 44] << 24 | HEAP[offset | 45] << 16 | HEAP[offset | 46] << 8 | HEAP[offset | 47], HEAP[offset | 48] << 24 | HEAP[offset | 49] << 16 | HEAP[offset | 50] << 8 | HEAP[offset | 51], HEAP[offset | 52] << 24 | HEAP[offset | 53] << 16 | HEAP[offset | 54] << 8 | HEAP[offset | 55], HEAP[offset | 56] << 24 | HEAP[offset | 57] << 16 | HEAP[offset | 58] << 8 | HEAP[offset | 59], HEAP[offset | 60] << 24 | HEAP[offset | 61] << 16 | HEAP[offset | 62] << 8 | HEAP[offset | 63]);
3211 }
3212 function _state_to_heap(output) {
3213 output = output | 0;
3214 HEAP[output | 0] = H0 >>> 24;
3215 HEAP[output | 1] = H0 >>> 16 & 255;
3216 HEAP[output | 2] = H0 >>> 8 & 255;
3217 HEAP[output | 3] = H0 & 255;
3218 HEAP[output | 4] = H1 >>> 24;
3219 HEAP[output | 5] = H1 >>> 16 & 255;
3220 HEAP[output | 6] = H1 >>> 8 & 255;
3221 HEAP[output | 7] = H1 & 255;
3222 HEAP[output | 8] = H2 >>> 24;
3223 HEAP[output | 9] = H2 >>> 16 & 255;
3224 HEAP[output | 10] = H2 >>> 8 & 255;
3225 HEAP[output | 11] = H2 & 255;
3226 HEAP[output | 12] = H3 >>> 24;
3227 HEAP[output | 13] = H3 >>> 16 & 255;
3228 HEAP[output | 14] = H3 >>> 8 & 255;
3229 HEAP[output | 15] = H3 & 255;
3230 HEAP[output | 16] = H4 >>> 24;
3231 HEAP[output | 17] = H4 >>> 16 & 255;
3232 HEAP[output | 18] = H4 >>> 8 & 255;
3233 HEAP[output | 19] = H4 & 255;
3234 HEAP[output | 20] = H5 >>> 24;
3235 HEAP[output | 21] = H5 >>> 16 & 255;
3236 HEAP[output | 22] = H5 >>> 8 & 255;
3237 HEAP[output | 23] = H5 & 255;
3238 HEAP[output | 24] = H6 >>> 24;
3239 HEAP[output | 25] = H6 >>> 16 & 255;
3240 HEAP[output | 26] = H6 >>> 8 & 255;
3241 HEAP[output | 27] = H6 & 255;
3242 HEAP[output | 28] = H7 >>> 24;
3243 HEAP[output | 29] = H7 >>> 16 & 255;
3244 HEAP[output | 30] = H7 >>> 8 & 255;
3245 HEAP[output | 31] = H7 & 255;
3246 }
3247 function reset() {
3248 H0 = 1779033703;
3249 H1 = 3144134277;
3250 H2 = 1013904242;
3251 H3 = 2773480762;
3252 H4 = 1359893119;
3253 H5 = 2600822924;
3254 H6 = 528734635;
3255 H7 = 1541459225;
3256 TOTAL = 0;
3257 }
3258 function init(h0, h1, h2, h3, h4, h5, h6, h7, total) {
3259 h0 = h0 | 0;
3260 h1 = h1 | 0;
3261 h2 = h2 | 0;
3262 h3 = h3 | 0;
3263 h4 = h4 | 0;
3264 h5 = h5 | 0;
3265 h6 = h6 | 0;
3266 h7 = h7 | 0;
3267 total = total | 0;
3268 H0 = h0;
3269 H1 = h1;
3270 H2 = h2;
3271 H3 = h3;
3272 H4 = h4;
3273 H5 = h5;
3274 H6 = h6;
3275 H7 = h7;
3276 TOTAL = total;
3277 }
3278 function process(offset, length) {
3279 offset = offset | 0;
3280 length = length | 0;
3281 var hashed = 0;
3282 if (offset & 63) return -1;
3283 while ((length | 0) >= 64) {
3284 _core_heap(offset);
3285 offset = offset + 64 | 0;
3286 length = length - 64 | 0;
3287 hashed = hashed + 64 | 0;
3288 }
3289 TOTAL = TOTAL + hashed | 0;
3290 return hashed | 0;
3291 }
3292 function finish(offset, length, output) {
3293 offset = offset | 0;
3294 length = length | 0;
3295 output = output | 0;
3296 var hashed = 0, i = 0;
3297 if (offset & 63) return -1;
3298 if (~output) if (output & 31) return -1;
3299 if ((length | 0) >= 64) {
3300 hashed = process(offset, length) | 0;
3301 if ((hashed | 0) == -1) return -1;
3302 offset = offset + hashed | 0;
3303 length = length - hashed | 0;
3304 }
3305 hashed = hashed + length | 0;
3306 TOTAL = TOTAL + length | 0;
3307 HEAP[offset | length] = 128;
3308 if ((length | 0) >= 56) {
3309 for (i = length + 1 | 0; (i | 0) < 64; i = i + 1 | 0) HEAP[offset | i] = 0;
3310 _core_heap(offset);
3311 length = 0;
3312 HEAP[offset | 0] = 0;
3313 }
3314 for (i = length + 1 | 0; (i | 0) < 59; i = i + 1 | 0) HEAP[offset | i] = 0;
3315 HEAP[offset | 59] = TOTAL >>> 29;
3316 HEAP[offset | 60] = TOTAL >>> 21 & 255;
3317 HEAP[offset | 61] = TOTAL >>> 13 & 255;
3318 HEAP[offset | 62] = TOTAL >>> 5 & 255;
3319 HEAP[offset | 63] = TOTAL << 3 & 255;
3320 _core_heap(offset);
3321 if (~output) _state_to_heap(output);
3322 return hashed | 0;
3323 }
3324 function hmac_reset() {
3325 H0 = I0;
3326 H1 = I1;
3327 H2 = I2;
3328 H3 = I3;
3329 H4 = I4;
3330 H5 = I5;
3331 H6 = I6;
3332 H7 = I7;
3333 TOTAL = 64;
3334 }
3335 function _hmac_opad() {
3336 H0 = O0;
3337 H1 = O1;
3338 H2 = O2;
3339 H3 = O3;
3340 H4 = O4;
3341 H5 = O5;
3342 H6 = O6;
3343 H7 = O7;
3344 TOTAL = 64;
3345 }
3346 function hmac_init(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) {
3347 p0 = p0 | 0;
3348 p1 = p1 | 0;
3349 p2 = p2 | 0;
3350 p3 = p3 | 0;
3351 p4 = p4 | 0;
3352 p5 = p5 | 0;
3353 p6 = p6 | 0;
3354 p7 = p7 | 0;
3355 p8 = p8 | 0;
3356 p9 = p9 | 0;
3357 p10 = p10 | 0;
3358 p11 = p11 | 0;
3359 p12 = p12 | 0;
3360 p13 = p13 | 0;
3361 p14 = p14 | 0;
3362 p15 = p15 | 0;
3363 reset();
3364 _core(p0 ^ 1549556828, p1 ^ 1549556828, p2 ^ 1549556828, p3 ^ 1549556828, p4 ^ 1549556828, p5 ^ 1549556828, p6 ^ 1549556828, p7 ^ 1549556828, p8 ^ 1549556828, p9 ^ 1549556828, p10 ^ 1549556828, p11 ^ 1549556828, p12 ^ 1549556828, p13 ^ 1549556828, p14 ^ 1549556828, p15 ^ 1549556828);
3365 O0 = H0;
3366 O1 = H1;
3367 O2 = H2;
3368 O3 = H3;
3369 O4 = H4;
3370 O5 = H5;
3371 O6 = H6;
3372 O7 = H7;
3373 reset();
3374 _core(p0 ^ 909522486, p1 ^ 909522486, p2 ^ 909522486, p3 ^ 909522486, p4 ^ 909522486, p5 ^ 909522486, p6 ^ 909522486, p7 ^ 909522486, p8 ^ 909522486, p9 ^ 909522486, p10 ^ 909522486, p11 ^ 909522486, p12 ^ 909522486, p13 ^ 909522486, p14 ^ 909522486, p15 ^ 909522486);
3375 I0 = H0;
3376 I1 = H1;
3377 I2 = H2;
3378 I3 = H3;
3379 I4 = H4;
3380 I5 = H5;
3381 I6 = H6;
3382 I7 = H7;
3383 TOTAL = 64;
3384 }
3385 function hmac_finish(offset, length, output) {
3386 offset = offset | 0;
3387 length = length | 0;
3388 output = output | 0;
3389 var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, hashed = 0;
3390 if (offset & 63) return -1;
3391 if (~output) if (output & 31) return -1;
3392 hashed = finish(offset, length, -1) | 0;
3393 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3394 _hmac_opad();
3395 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3396 if (~output) _state_to_heap(output);
3397 return hashed | 0;
3398 }
3399 function pbkdf2_generate_block(offset, length, block, count, output) {
3400 offset = offset | 0;
3401 length = length | 0;
3402 block = block | 0;
3403 count = count | 0;
3404 output = output | 0;
3405 var h0 = 0, h1 = 0, h2 = 0, h3 = 0, h4 = 0, h5 = 0, h6 = 0, h7 = 0, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0;
3406 if (offset & 63) return -1;
3407 if (~output) if (output & 31) return -1;
3408 HEAP[offset + length | 0] = block >>> 24;
3409 HEAP[offset + length + 1 | 0] = block >>> 16 & 255;
3410 HEAP[offset + length + 2 | 0] = block >>> 8 & 255;
3411 HEAP[offset + length + 3 | 0] = block & 255;
3412 hmac_finish(offset, length + 4 | 0, -1) | 0;
3413 h0 = t0 = H0, h1 = t1 = H1, h2 = t2 = H2, h3 = t3 = H3, h4 = t4 = H4, h5 = t5 = H5,
3414 h6 = t6 = H6, h7 = t7 = H7;
3415 count = count - 1 | 0;
3416 while ((count | 0) > 0) {
3417 hmac_reset();
3418 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3419 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3420 _hmac_opad();
3421 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3422 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3423 h0 = h0 ^ H0;
3424 h1 = h1 ^ H1;
3425 h2 = h2 ^ H2;
3426 h3 = h3 ^ H3;
3427 h4 = h4 ^ H4;
3428 h5 = h5 ^ H5;
3429 h6 = h6 ^ H6;
3430 h7 = h7 ^ H7;
3431 count = count - 1 | 0;
3432 }
3433 H0 = h0;
3434 H1 = h1;
3435 H2 = h2;
3436 H3 = h3;
3437 H4 = h4;
3438 H5 = h5;
3439 H6 = h6;
3440 H7 = h7;
3441 if (~output) _state_to_heap(output);
3442 return 0;
3443 }
3444 return {
3445 reset: reset,
3446 init: init,
3447 process: process,
3448 finish: finish,
3449 hmac_reset: hmac_reset,
3450 hmac_init: hmac_init,
3451 hmac_finish: hmac_finish,
3452 pbkdf2_generate_block: pbkdf2_generate_block
3453 };
3454 }
3455 var _sha256_block_size = 64, _sha256_hash_size = 32;
3456 function sha256_constructor(options) {
3457 options = options || {};
3458 options.heapSize = options.heapSize || 4096;
3459 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
3460 this.heap = options.heap || new Uint8Array(options.heapSize);
3461 this.asm = options.asm || sha256_asm(global, null, this.heap.buffer);
3462 this.BLOCK_SIZE = _sha256_block_size;
3463 this.HASH_SIZE = _sha256_hash_size;
3464 this.reset();
3465 }
3466 function sha256_reset() {
3467 this.result = null;
3468 this.pos = 0;
3469 this.len = 0;
3470 this.asm.reset();
3471 return this;
3472 }
3473 function sha256_process(data) {
3474 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
3475 var dpos = 0, dlen = 0, clen = 0;
3476 if (is_buffer(data) || is_bytes(data)) {
3477 dpos = data.byteOffset || 0;
3478 dlen = data.byteLength;
3479 } else if (is_string(data)) {
3480 dlen = data.length;
3481 } else {
3482 throw new TypeError("data isn't of expected type");
3483 }
3484 while (dlen > 0) {
3485 clen = this.heap.byteLength - this.pos - this.len;
3486 clen = clen < dlen ? clen : dlen;
3487 if (is_buffer(data) || is_bytes(data)) {
3488 this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len);
3489 } else {
3490 for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i);
3491 }
3492 this.len += clen;
3493 dpos += clen;
3494 dlen -= clen;
3495 clen = this.asm.process(this.pos, this.len);
3496 if (clen < this.len) {
3497 this.pos += clen;
3498 this.len -= clen;
3499 } else {
3500 this.pos = 0;
3501 this.len = 0;
3502 }
3503 }
3504 return this;
3505 }
3506 function sha256_finish() {
3507 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
3508 this.asm.finish(this.pos, this.len, 0);
3509 this.result = new Uint8Array(_sha256_hash_size);
3510 this.result.set(this.heap.subarray(0, _sha256_hash_size));
3511 this.pos = 0;
3512 this.len = 0;
3513 return this;
3514 }
3515 sha256_constructor.BLOCK_SIZE = _sha256_block_size;
3516 sha256_constructor.HASH_SIZE = _sha256_hash_size;
3517 var sha256_prototype = sha256_constructor.prototype;
3518 sha256_prototype.reset = sha256_reset;
3519 sha256_prototype.process = sha256_process;
3520 sha256_prototype.finish = sha256_finish;
3521 function sha512_asm(stdlib, foreign, buffer) {
3522 "use asm";
3523 var H0h = 0, H0l = 0, H1h = 0, H1l = 0, H2h = 0, H2l = 0, H3h = 0, H3l = 0, H4h = 0, H4l = 0, H5h = 0, H5l = 0, H6h = 0, H6l = 0, H7h = 0, H7l = 0, TOTAL = 0;
3524 var I0h = 0, I0l = 0, I1h = 0, I1l = 0, I2h = 0, I2l = 0, I3h = 0, I3l = 0, I4h = 0, I4l = 0, I5h = 0, I5l = 0, I6h = 0, I6l = 0, I7h = 0, I7l = 0, O0h = 0, O0l = 0, O1h = 0, O1l = 0, O2h = 0, O2l = 0, O3h = 0, O3l = 0, O4h = 0, O4l = 0, O5h = 0, O5l = 0, O6h = 0, O6l = 0, O7h = 0, O7l = 0;
3525 var HEAP = new stdlib.Uint8Array(buffer);
3526 function _core(w0h, w0l, w1h, w1l, w2h, w2l, w3h, w3l, w4h, w4l, w5h, w5l, w6h, w6l, w7h, w7l, w8h, w8l, w9h, w9l, w10h, w10l, w11h, w11l, w12h, w12l, w13h, w13l, w14h, w14l, w15h, w15l) {
3527 w0h = w0h | 0;
3528 w0l = w0l | 0;
3529 w1h = w1h | 0;
3530 w1l = w1l | 0;
3531 w2h = w2h | 0;
3532 w2l = w2l | 0;
3533 w3h = w3h | 0;
3534 w3l = w3l | 0;
3535 w4h = w4h | 0;
3536 w4l = w4l | 0;
3537 w5h = w5h | 0;
3538 w5l = w5l | 0;
3539 w6h = w6h | 0;
3540 w6l = w6l | 0;
3541 w7h = w7h | 0;
3542 w7l = w7l | 0;
3543 w8h = w8h | 0;
3544 w8l = w8l | 0;
3545 w9h = w9h | 0;
3546 w9l = w9l | 0;
3547 w10h = w10h | 0;
3548 w10l = w10l | 0;
3549 w11h = w11h | 0;
3550 w11l = w11l | 0;
3551 w12h = w12h | 0;
3552 w12l = w12l | 0;
3553 w13h = w13h | 0;
3554 w13l = w13l | 0;
3555 w14h = w14h | 0;
3556 w14l = w14l | 0;
3557 w15h = w15h | 0;
3558 w15l = w15l | 0;
3559 var ah = 0, al = 0, bh = 0, bl = 0, ch = 0, cl = 0, dh = 0, dl = 0, eh = 0, el = 0, fh = 0, fl = 0, gh = 0, gl = 0, hh = 0, hl = 0, th = 0, tl = 0, xl = 0;
3560 ah = H0h;
3561 al = H0l;
3562 bh = H1h;
3563 bl = H1l;
3564 ch = H2h;
3565 cl = H2l;
3566 dh = H3h;
3567 dl = H3l;
3568 eh = H4h;
3569 el = H4l;
3570 fh = H5h;
3571 fl = H5l;
3572 gh = H6h;
3573 gl = H6l;
3574 hh = H7h;
3575 hl = H7l;
3576 tl = 3609767458 + w0l | 0;
3577 th = 1116352408 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
3578 tl = tl + hl | 0;
3579 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3580 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3581 tl = tl + xl | 0;
3582 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3583 xl = gl ^ el & (fl ^ gl) | 0;
3584 tl = tl + xl | 0;
3585 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3586 hl = gl;
3587 hh = gh;
3588 gl = fl;
3589 gh = fh;
3590 fl = el;
3591 fh = eh;
3592 el = dl + tl | 0;
3593 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3594 dl = cl;
3595 dh = ch;
3596 cl = bl;
3597 ch = bh;
3598 bl = al;
3599 bh = ah;
3600 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3601 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3602 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3603 al = al + xl | 0;
3604 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3605 tl = 602891725 + w1l | 0;
3606 th = 1899447441 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
3607 tl = tl + hl | 0;
3608 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3609 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3610 tl = tl + xl | 0;
3611 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3612 xl = gl ^ el & (fl ^ gl) | 0;
3613 tl = tl + xl | 0;
3614 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3615 hl = gl;
3616 hh = gh;
3617 gl = fl;
3618 gh = fh;
3619 fl = el;
3620 fh = eh;
3621 el = dl + tl | 0;
3622 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3623 dl = cl;
3624 dh = ch;
3625 cl = bl;
3626 ch = bh;
3627 bl = al;
3628 bh = ah;
3629 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3630 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3631 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3632 al = al + xl | 0;
3633 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3634 tl = 3964484399 + w2l | 0;
3635 th = 3049323471 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
3636 tl = tl + hl | 0;
3637 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3638 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3639 tl = tl + xl | 0;
3640 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3641 xl = gl ^ el & (fl ^ gl) | 0;
3642 tl = tl + xl | 0;
3643 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3644 hl = gl;
3645 hh = gh;
3646 gl = fl;
3647 gh = fh;
3648 fl = el;
3649 fh = eh;
3650 el = dl + tl | 0;
3651 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3652 dl = cl;
3653 dh = ch;
3654 cl = bl;
3655 ch = bh;
3656 bl = al;
3657 bh = ah;
3658 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3659 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3660 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3661 al = al + xl | 0;
3662 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3663 tl = 2173295548 + w3l | 0;
3664 th = 3921009573 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
3665 tl = tl + hl | 0;
3666 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3667 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3668 tl = tl + xl | 0;
3669 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3670 xl = gl ^ el & (fl ^ gl) | 0;
3671 tl = tl + xl | 0;
3672 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3673 hl = gl;
3674 hh = gh;
3675 gl = fl;
3676 gh = fh;
3677 fl = el;
3678 fh = eh;
3679 el = dl + tl | 0;
3680 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3681 dl = cl;
3682 dh = ch;
3683 cl = bl;
3684 ch = bh;
3685 bl = al;
3686 bh = ah;
3687 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3688 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3689 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3690 al = al + xl | 0;
3691 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3692 tl = 4081628472 + w4l | 0;
3693 th = 961987163 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
3694 tl = tl + hl | 0;
3695 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3696 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3697 tl = tl + xl | 0;
3698 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3699 xl = gl ^ el & (fl ^ gl) | 0;
3700 tl = tl + xl | 0;
3701 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3702 hl = gl;
3703 hh = gh;
3704 gl = fl;
3705 gh = fh;
3706 fl = el;
3707 fh = eh;
3708 el = dl + tl | 0;
3709 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3710 dl = cl;
3711 dh = ch;
3712 cl = bl;
3713 ch = bh;
3714 bl = al;
3715 bh = ah;
3716 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3717 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3718 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3719 al = al + xl | 0;
3720 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3721 tl = 3053834265 + w5l | 0;
3722 th = 1508970993 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
3723 tl = tl + hl | 0;
3724 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3725 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3726 tl = tl + xl | 0;
3727 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3728 xl = gl ^ el & (fl ^ gl) | 0;
3729 tl = tl + xl | 0;
3730 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3731 hl = gl;
3732 hh = gh;
3733 gl = fl;
3734 gh = fh;
3735 fl = el;
3736 fh = eh;
3737 el = dl + tl | 0;
3738 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3739 dl = cl;
3740 dh = ch;
3741 cl = bl;
3742 ch = bh;
3743 bl = al;
3744 bh = ah;
3745 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3746 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3747 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3748 al = al + xl | 0;
3749 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3750 tl = 2937671579 + w6l | 0;
3751 th = 2453635748 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
3752 tl = tl + hl | 0;
3753 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3754 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3755 tl = tl + xl | 0;
3756 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3757 xl = gl ^ el & (fl ^ gl) | 0;
3758 tl = tl + xl | 0;
3759 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3760 hl = gl;
3761 hh = gh;
3762 gl = fl;
3763 gh = fh;
3764 fl = el;
3765 fh = eh;
3766 el = dl + tl | 0;
3767 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3768 dl = cl;
3769 dh = ch;
3770 cl = bl;
3771 ch = bh;
3772 bl = al;
3773 bh = ah;
3774 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3775 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3776 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3777 al = al + xl | 0;
3778 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3779 tl = 3664609560 + w7l | 0;
3780 th = 2870763221 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
3781 tl = tl + hl | 0;
3782 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3783 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3784 tl = tl + xl | 0;
3785 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3786 xl = gl ^ el & (fl ^ gl) | 0;
3787 tl = tl + xl | 0;
3788 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3789 hl = gl;
3790 hh = gh;
3791 gl = fl;
3792 gh = fh;
3793 fl = el;
3794 fh = eh;
3795 el = dl + tl | 0;
3796 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3797 dl = cl;
3798 dh = ch;
3799 cl = bl;
3800 ch = bh;
3801 bl = al;
3802 bh = ah;
3803 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3804 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3805 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3806 al = al + xl | 0;
3807 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3808 tl = 2734883394 + w8l | 0;
3809 th = 3624381080 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
3810 tl = tl + hl | 0;
3811 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3812 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3813 tl = tl + xl | 0;
3814 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3815 xl = gl ^ el & (fl ^ gl) | 0;
3816 tl = tl + xl | 0;
3817 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3818 hl = gl;
3819 hh = gh;
3820 gl = fl;
3821 gh = fh;
3822 fl = el;
3823 fh = eh;
3824 el = dl + tl | 0;
3825 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3826 dl = cl;
3827 dh = ch;
3828 cl = bl;
3829 ch = bh;
3830 bl = al;
3831 bh = ah;
3832 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3833 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3834 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3835 al = al + xl | 0;
3836 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3837 tl = 1164996542 + w9l | 0;
3838 th = 310598401 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
3839 tl = tl + hl | 0;
3840 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3841 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3842 tl = tl + xl | 0;
3843 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3844 xl = gl ^ el & (fl ^ gl) | 0;
3845 tl = tl + xl | 0;
3846 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3847 hl = gl;
3848 hh = gh;
3849 gl = fl;
3850 gh = fh;
3851 fl = el;
3852 fh = eh;
3853 el = dl + tl | 0;
3854 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3855 dl = cl;
3856 dh = ch;
3857 cl = bl;
3858 ch = bh;
3859 bl = al;
3860 bh = ah;
3861 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3862 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3863 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3864 al = al + xl | 0;
3865 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3866 tl = 1323610764 + w10l | 0;
3867 th = 607225278 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
3868 tl = tl + hl | 0;
3869 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3870 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3871 tl = tl + xl | 0;
3872 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3873 xl = gl ^ el & (fl ^ gl) | 0;
3874 tl = tl + xl | 0;
3875 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3876 hl = gl;
3877 hh = gh;
3878 gl = fl;
3879 gh = fh;
3880 fl = el;
3881 fh = eh;
3882 el = dl + tl | 0;
3883 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3884 dl = cl;
3885 dh = ch;
3886 cl = bl;
3887 ch = bh;
3888 bl = al;
3889 bh = ah;
3890 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3891 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3892 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3893 al = al + xl | 0;
3894 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3895 tl = 3590304994 + w11l | 0;
3896 th = 1426881987 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
3897 tl = tl + hl | 0;
3898 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3899 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3900 tl = tl + xl | 0;
3901 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3902 xl = gl ^ el & (fl ^ gl) | 0;
3903 tl = tl + xl | 0;
3904 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3905 hl = gl;
3906 hh = gh;
3907 gl = fl;
3908 gh = fh;
3909 fl = el;
3910 fh = eh;
3911 el = dl + tl | 0;
3912 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3913 dl = cl;
3914 dh = ch;
3915 cl = bl;
3916 ch = bh;
3917 bl = al;
3918 bh = ah;
3919 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3920 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3921 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3922 al = al + xl | 0;
3923 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3924 tl = 4068182383 + w12l | 0;
3925 th = 1925078388 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
3926 tl = tl + hl | 0;
3927 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3928 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3929 tl = tl + xl | 0;
3930 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3931 xl = gl ^ el & (fl ^ gl) | 0;
3932 tl = tl + xl | 0;
3933 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3934 hl = gl;
3935 hh = gh;
3936 gl = fl;
3937 gh = fh;
3938 fl = el;
3939 fh = eh;
3940 el = dl + tl | 0;
3941 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3942 dl = cl;
3943 dh = ch;
3944 cl = bl;
3945 ch = bh;
3946 bl = al;
3947 bh = ah;
3948 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3949 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3950 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3951 al = al + xl | 0;
3952 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3953 tl = 991336113 + w13l | 0;
3954 th = 2162078206 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
3955 tl = tl + hl | 0;
3956 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3957 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3958 tl = tl + xl | 0;
3959 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3960 xl = gl ^ el & (fl ^ gl) | 0;
3961 tl = tl + xl | 0;
3962 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3963 hl = gl;
3964 hh = gh;
3965 gl = fl;
3966 gh = fh;
3967 fl = el;
3968 fh = eh;
3969 el = dl + tl | 0;
3970 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3971 dl = cl;
3972 dh = ch;
3973 cl = bl;
3974 ch = bh;
3975 bl = al;
3976 bh = ah;
3977 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3978 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3979 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3980 al = al + xl | 0;
3981 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3982 tl = 633803317 + w14l | 0;
3983 th = 2614888103 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
3984 tl = tl + hl | 0;
3985 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3986 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3987 tl = tl + xl | 0;
3988 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3989 xl = gl ^ el & (fl ^ gl) | 0;
3990 tl = tl + xl | 0;
3991 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3992 hl = gl;
3993 hh = gh;
3994 gl = fl;
3995 gh = fh;
3996 fl = el;
3997 fh = eh;
3998 el = dl + tl | 0;
3999 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4000 dl = cl;
4001 dh = ch;
4002 cl = bl;
4003 ch = bh;
4004 bl = al;
4005 bh = ah;
4006 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4007 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4008 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4009 al = al + xl | 0;
4010 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4011 tl = 3479774868 + w15l | 0;
4012 th = 3248222580 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4013 tl = tl + hl | 0;
4014 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4015 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4016 tl = tl + xl | 0;
4017 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4018 xl = gl ^ el & (fl ^ gl) | 0;
4019 tl = tl + xl | 0;
4020 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4021 hl = gl;
4022 hh = gh;
4023 gl = fl;
4024 gh = fh;
4025 fl = el;
4026 fh = eh;
4027 el = dl + tl | 0;
4028 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4029 dl = cl;
4030 dh = ch;
4031 cl = bl;
4032 ch = bh;
4033 bl = al;
4034 bh = ah;
4035 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4036 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4037 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4038 al = al + xl | 0;
4039 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4040 w0l = w0l + w9l | 0;
4041 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4042 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
4043 w0l = w0l + xl | 0;
4044 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4045 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
4046 w0l = w0l + xl | 0;
4047 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4048 tl = 2666613458 + w0l | 0;
4049 th = 3835390401 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4050 tl = tl + hl | 0;
4051 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4052 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4053 tl = tl + xl | 0;
4054 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4055 xl = gl ^ el & (fl ^ gl) | 0;
4056 tl = tl + xl | 0;
4057 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4058 hl = gl;
4059 hh = gh;
4060 gl = fl;
4061 gh = fh;
4062 fl = el;
4063 fh = eh;
4064 el = dl + tl | 0;
4065 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4066 dl = cl;
4067 dh = ch;
4068 cl = bl;
4069 ch = bh;
4070 bl = al;
4071 bh = ah;
4072 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4073 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4074 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4075 al = al + xl | 0;
4076 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4077 w1l = w1l + w10l | 0;
4078 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4079 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
4080 w1l = w1l + xl | 0;
4081 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4082 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
4083 w1l = w1l + xl | 0;
4084 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4085 tl = 944711139 + w1l | 0;
4086 th = 4022224774 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4087 tl = tl + hl | 0;
4088 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4089 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4090 tl = tl + xl | 0;
4091 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4092 xl = gl ^ el & (fl ^ gl) | 0;
4093 tl = tl + xl | 0;
4094 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4095 hl = gl;
4096 hh = gh;
4097 gl = fl;
4098 gh = fh;
4099 fl = el;
4100 fh = eh;
4101 el = dl + tl | 0;
4102 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4103 dl = cl;
4104 dh = ch;
4105 cl = bl;
4106 ch = bh;
4107 bl = al;
4108 bh = ah;
4109 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4110 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4111 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4112 al = al + xl | 0;
4113 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4114 w2l = w2l + w11l | 0;
4115 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4116 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
4117 w2l = w2l + xl | 0;
4118 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4119 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
4120 w2l = w2l + xl | 0;
4121 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4122 tl = 2341262773 + w2l | 0;
4123 th = 264347078 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4124 tl = tl + hl | 0;
4125 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4126 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4127 tl = tl + xl | 0;
4128 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4129 xl = gl ^ el & (fl ^ gl) | 0;
4130 tl = tl + xl | 0;
4131 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4132 hl = gl;
4133 hh = gh;
4134 gl = fl;
4135 gh = fh;
4136 fl = el;
4137 fh = eh;
4138 el = dl + tl | 0;
4139 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4140 dl = cl;
4141 dh = ch;
4142 cl = bl;
4143 ch = bh;
4144 bl = al;
4145 bh = ah;
4146 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4147 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4148 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4149 al = al + xl | 0;
4150 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4151 w3l = w3l + w12l | 0;
4152 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4153 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
4154 w3l = w3l + xl | 0;
4155 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4156 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
4157 w3l = w3l + xl | 0;
4158 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4159 tl = 2007800933 + w3l | 0;
4160 th = 604807628 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4161 tl = tl + hl | 0;
4162 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4163 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4164 tl = tl + xl | 0;
4165 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4166 xl = gl ^ el & (fl ^ gl) | 0;
4167 tl = tl + xl | 0;
4168 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4169 hl = gl;
4170 hh = gh;
4171 gl = fl;
4172 gh = fh;
4173 fl = el;
4174 fh = eh;
4175 el = dl + tl | 0;
4176 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4177 dl = cl;
4178 dh = ch;
4179 cl = bl;
4180 ch = bh;
4181 bl = al;
4182 bh = ah;
4183 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4184 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4185 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4186 al = al + xl | 0;
4187 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4188 w4l = w4l + w13l | 0;
4189 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4190 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
4191 w4l = w4l + xl | 0;
4192 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4193 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
4194 w4l = w4l + xl | 0;
4195 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4196 tl = 1495990901 + w4l | 0;
4197 th = 770255983 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4198 tl = tl + hl | 0;
4199 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4200 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4201 tl = tl + xl | 0;
4202 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4203 xl = gl ^ el & (fl ^ gl) | 0;
4204 tl = tl + xl | 0;
4205 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4206 hl = gl;
4207 hh = gh;
4208 gl = fl;
4209 gh = fh;
4210 fl = el;
4211 fh = eh;
4212 el = dl + tl | 0;
4213 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4214 dl = cl;
4215 dh = ch;
4216 cl = bl;
4217 ch = bh;
4218 bl = al;
4219 bh = ah;
4220 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4221 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4222 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4223 al = al + xl | 0;
4224 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4225 w5l = w5l + w14l | 0;
4226 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4227 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
4228 w5l = w5l + xl | 0;
4229 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4230 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
4231 w5l = w5l + xl | 0;
4232 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4233 tl = 1856431235 + w5l | 0;
4234 th = 1249150122 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4235 tl = tl + hl | 0;
4236 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4237 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4238 tl = tl + xl | 0;
4239 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4240 xl = gl ^ el & (fl ^ gl) | 0;
4241 tl = tl + xl | 0;
4242 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4243 hl = gl;
4244 hh = gh;
4245 gl = fl;
4246 gh = fh;
4247 fl = el;
4248 fh = eh;
4249 el = dl + tl | 0;
4250 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4251 dl = cl;
4252 dh = ch;
4253 cl = bl;
4254 ch = bh;
4255 bl = al;
4256 bh = ah;
4257 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4258 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4259 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4260 al = al + xl | 0;
4261 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4262 w6l = w6l + w15l | 0;
4263 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4264 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
4265 w6l = w6l + xl | 0;
4266 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4267 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
4268 w6l = w6l + xl | 0;
4269 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4270 tl = 3175218132 + w6l | 0;
4271 th = 1555081692 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4272 tl = tl + hl | 0;
4273 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4274 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4275 tl = tl + xl | 0;
4276 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4277 xl = gl ^ el & (fl ^ gl) | 0;
4278 tl = tl + xl | 0;
4279 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4280 hl = gl;
4281 hh = gh;
4282 gl = fl;
4283 gh = fh;
4284 fl = el;
4285 fh = eh;
4286 el = dl + tl | 0;
4287 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4288 dl = cl;
4289 dh = ch;
4290 cl = bl;
4291 ch = bh;
4292 bl = al;
4293 bh = ah;
4294 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4295 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4296 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4297 al = al + xl | 0;
4298 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4299 w7l = w7l + w0l | 0;
4300 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4301 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
4302 w7l = w7l + xl | 0;
4303 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4304 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
4305 w7l = w7l + xl | 0;
4306 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4307 tl = 2198950837 + w7l | 0;
4308 th = 1996064986 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4309 tl = tl + hl | 0;
4310 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4311 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4312 tl = tl + xl | 0;
4313 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4314 xl = gl ^ el & (fl ^ gl) | 0;
4315 tl = tl + xl | 0;
4316 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4317 hl = gl;
4318 hh = gh;
4319 gl = fl;
4320 gh = fh;
4321 fl = el;
4322 fh = eh;
4323 el = dl + tl | 0;
4324 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4325 dl = cl;
4326 dh = ch;
4327 cl = bl;
4328 ch = bh;
4329 bl = al;
4330 bh = ah;
4331 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4332 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4333 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4334 al = al + xl | 0;
4335 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4336 w8l = w8l + w1l | 0;
4337 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4338 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
4339 w8l = w8l + xl | 0;
4340 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4341 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
4342 w8l = w8l + xl | 0;
4343 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4344 tl = 3999719339 + w8l | 0;
4345 th = 2554220882 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4346 tl = tl + hl | 0;
4347 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4348 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4349 tl = tl + xl | 0;
4350 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4351 xl = gl ^ el & (fl ^ gl) | 0;
4352 tl = tl + xl | 0;
4353 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4354 hl = gl;
4355 hh = gh;
4356 gl = fl;
4357 gh = fh;
4358 fl = el;
4359 fh = eh;
4360 el = dl + tl | 0;
4361 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4362 dl = cl;
4363 dh = ch;
4364 cl = bl;
4365 ch = bh;
4366 bl = al;
4367 bh = ah;
4368 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4369 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4370 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4371 al = al + xl | 0;
4372 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4373 w9l = w9l + w2l | 0;
4374 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4375 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
4376 w9l = w9l + xl | 0;
4377 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4378 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
4379 w9l = w9l + xl | 0;
4380 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4381 tl = 766784016 + w9l | 0;
4382 th = 2821834349 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4383 tl = tl + hl | 0;
4384 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4385 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4386 tl = tl + xl | 0;
4387 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4388 xl = gl ^ el & (fl ^ gl) | 0;
4389 tl = tl + xl | 0;
4390 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4391 hl = gl;
4392 hh = gh;
4393 gl = fl;
4394 gh = fh;
4395 fl = el;
4396 fh = eh;
4397 el = dl + tl | 0;
4398 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4399 dl = cl;
4400 dh = ch;
4401 cl = bl;
4402 ch = bh;
4403 bl = al;
4404 bh = ah;
4405 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4406 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4407 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4408 al = al + xl | 0;
4409 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4410 w10l = w10l + w3l | 0;
4411 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4412 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
4413 w10l = w10l + xl | 0;
4414 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4415 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
4416 w10l = w10l + xl | 0;
4417 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4418 tl = 2566594879 + w10l | 0;
4419 th = 2952996808 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4420 tl = tl + hl | 0;
4421 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4422 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4423 tl = tl + xl | 0;
4424 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4425 xl = gl ^ el & (fl ^ gl) | 0;
4426 tl = tl + xl | 0;
4427 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4428 hl = gl;
4429 hh = gh;
4430 gl = fl;
4431 gh = fh;
4432 fl = el;
4433 fh = eh;
4434 el = dl + tl | 0;
4435 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4436 dl = cl;
4437 dh = ch;
4438 cl = bl;
4439 ch = bh;
4440 bl = al;
4441 bh = ah;
4442 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4443 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4444 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4445 al = al + xl | 0;
4446 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4447 w11l = w11l + w4l | 0;
4448 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4449 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
4450 w11l = w11l + xl | 0;
4451 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4452 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
4453 w11l = w11l + xl | 0;
4454 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4455 tl = 3203337956 + w11l | 0;
4456 th = 3210313671 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4457 tl = tl + hl | 0;
4458 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4459 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4460 tl = tl + xl | 0;
4461 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4462 xl = gl ^ el & (fl ^ gl) | 0;
4463 tl = tl + xl | 0;
4464 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4465 hl = gl;
4466 hh = gh;
4467 gl = fl;
4468 gh = fh;
4469 fl = el;
4470 fh = eh;
4471 el = dl + tl | 0;
4472 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4473 dl = cl;
4474 dh = ch;
4475 cl = bl;
4476 ch = bh;
4477 bl = al;
4478 bh = ah;
4479 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4480 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4481 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4482 al = al + xl | 0;
4483 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4484 w12l = w12l + w5l | 0;
4485 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4486 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
4487 w12l = w12l + xl | 0;
4488 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4489 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
4490 w12l = w12l + xl | 0;
4491 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4492 tl = 1034457026 + w12l | 0;
4493 th = 3336571891 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4494 tl = tl + hl | 0;
4495 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4496 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4497 tl = tl + xl | 0;
4498 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4499 xl = gl ^ el & (fl ^ gl) | 0;
4500 tl = tl + xl | 0;
4501 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4502 hl = gl;
4503 hh = gh;
4504 gl = fl;
4505 gh = fh;
4506 fl = el;
4507 fh = eh;
4508 el = dl + tl | 0;
4509 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4510 dl = cl;
4511 dh = ch;
4512 cl = bl;
4513 ch = bh;
4514 bl = al;
4515 bh = ah;
4516 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4517 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4518 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4519 al = al + xl | 0;
4520 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4521 w13l = w13l + w6l | 0;
4522 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4523 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
4524 w13l = w13l + xl | 0;
4525 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4526 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
4527 w13l = w13l + xl | 0;
4528 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4529 tl = 2466948901 + w13l | 0;
4530 th = 3584528711 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4531 tl = tl + hl | 0;
4532 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4533 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4534 tl = tl + xl | 0;
4535 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4536 xl = gl ^ el & (fl ^ gl) | 0;
4537 tl = tl + xl | 0;
4538 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4539 hl = gl;
4540 hh = gh;
4541 gl = fl;
4542 gh = fh;
4543 fl = el;
4544 fh = eh;
4545 el = dl + tl | 0;
4546 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4547 dl = cl;
4548 dh = ch;
4549 cl = bl;
4550 ch = bh;
4551 bl = al;
4552 bh = ah;
4553 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4554 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4555 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4556 al = al + xl | 0;
4557 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4558 w14l = w14l + w7l | 0;
4559 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4560 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
4561 w14l = w14l + xl | 0;
4562 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4563 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
4564 w14l = w14l + xl | 0;
4565 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4566 tl = 3758326383 + w14l | 0;
4567 th = 113926993 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4568 tl = tl + hl | 0;
4569 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4570 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4571 tl = tl + xl | 0;
4572 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4573 xl = gl ^ el & (fl ^ gl) | 0;
4574 tl = tl + xl | 0;
4575 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4576 hl = gl;
4577 hh = gh;
4578 gl = fl;
4579 gh = fh;
4580 fl = el;
4581 fh = eh;
4582 el = dl + tl | 0;
4583 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4584 dl = cl;
4585 dh = ch;
4586 cl = bl;
4587 ch = bh;
4588 bl = al;
4589 bh = ah;
4590 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4591 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4592 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4593 al = al + xl | 0;
4594 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4595 w15l = w15l + w8l | 0;
4596 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4597 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
4598 w15l = w15l + xl | 0;
4599 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4600 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
4601 w15l = w15l + xl | 0;
4602 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4603 tl = 168717936 + w15l | 0;
4604 th = 338241895 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4605 tl = tl + hl | 0;
4606 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4607 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4608 tl = tl + xl | 0;
4609 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4610 xl = gl ^ el & (fl ^ gl) | 0;
4611 tl = tl + xl | 0;
4612 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4613 hl = gl;
4614 hh = gh;
4615 gl = fl;
4616 gh = fh;
4617 fl = el;
4618 fh = eh;
4619 el = dl + tl | 0;
4620 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4621 dl = cl;
4622 dh = ch;
4623 cl = bl;
4624 ch = bh;
4625 bl = al;
4626 bh = ah;
4627 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4628 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4629 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4630 al = al + xl | 0;
4631 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4632 w0l = w0l + w9l | 0;
4633 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4634 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
4635 w0l = w0l + xl | 0;
4636 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4637 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
4638 w0l = w0l + xl | 0;
4639 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4640 tl = 1188179964 + w0l | 0;
4641 th = 666307205 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4642 tl = tl + hl | 0;
4643 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4644 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4645 tl = tl + xl | 0;
4646 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4647 xl = gl ^ el & (fl ^ gl) | 0;
4648 tl = tl + xl | 0;
4649 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4650 hl = gl;
4651 hh = gh;
4652 gl = fl;
4653 gh = fh;
4654 fl = el;
4655 fh = eh;
4656 el = dl + tl | 0;
4657 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4658 dl = cl;
4659 dh = ch;
4660 cl = bl;
4661 ch = bh;
4662 bl = al;
4663 bh = ah;
4664 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4665 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4666 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4667 al = al + xl | 0;
4668 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4669 w1l = w1l + w10l | 0;
4670 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4671 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
4672 w1l = w1l + xl | 0;
4673 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4674 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
4675 w1l = w1l + xl | 0;
4676 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4677 tl = 1546045734 + w1l | 0;
4678 th = 773529912 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4679 tl = tl + hl | 0;
4680 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4681 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4682 tl = tl + xl | 0;
4683 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4684 xl = gl ^ el & (fl ^ gl) | 0;
4685 tl = tl + xl | 0;
4686 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4687 hl = gl;
4688 hh = gh;
4689 gl = fl;
4690 gh = fh;
4691 fl = el;
4692 fh = eh;
4693 el = dl + tl | 0;
4694 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4695 dl = cl;
4696 dh = ch;
4697 cl = bl;
4698 ch = bh;
4699 bl = al;
4700 bh = ah;
4701 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4702 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4703 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4704 al = al + xl | 0;
4705 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4706 w2l = w2l + w11l | 0;
4707 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4708 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
4709 w2l = w2l + xl | 0;
4710 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4711 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
4712 w2l = w2l + xl | 0;
4713 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4714 tl = 1522805485 + w2l | 0;
4715 th = 1294757372 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4716 tl = tl + hl | 0;
4717 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4718 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4719 tl = tl + xl | 0;
4720 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4721 xl = gl ^ el & (fl ^ gl) | 0;
4722 tl = tl + xl | 0;
4723 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4724 hl = gl;
4725 hh = gh;
4726 gl = fl;
4727 gh = fh;
4728 fl = el;
4729 fh = eh;
4730 el = dl + tl | 0;
4731 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4732 dl = cl;
4733 dh = ch;
4734 cl = bl;
4735 ch = bh;
4736 bl = al;
4737 bh = ah;
4738 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4739 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4740 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4741 al = al + xl | 0;
4742 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4743 w3l = w3l + w12l | 0;
4744 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4745 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
4746 w3l = w3l + xl | 0;
4747 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4748 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
4749 w3l = w3l + xl | 0;
4750 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4751 tl = 2643833823 + w3l | 0;
4752 th = 1396182291 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4753 tl = tl + hl | 0;
4754 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4755 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4756 tl = tl + xl | 0;
4757 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4758 xl = gl ^ el & (fl ^ gl) | 0;
4759 tl = tl + xl | 0;
4760 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4761 hl = gl;
4762 hh = gh;
4763 gl = fl;
4764 gh = fh;
4765 fl = el;
4766 fh = eh;
4767 el = dl + tl | 0;
4768 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4769 dl = cl;
4770 dh = ch;
4771 cl = bl;
4772 ch = bh;
4773 bl = al;
4774 bh = ah;
4775 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4776 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4777 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4778 al = al + xl | 0;
4779 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4780 w4l = w4l + w13l | 0;
4781 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4782 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
4783 w4l = w4l + xl | 0;
4784 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4785 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
4786 w4l = w4l + xl | 0;
4787 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4788 tl = 2343527390 + w4l | 0;
4789 th = 1695183700 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4790 tl = tl + hl | 0;
4791 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4792 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4793 tl = tl + xl | 0;
4794 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4795 xl = gl ^ el & (fl ^ gl) | 0;
4796 tl = tl + xl | 0;
4797 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4798 hl = gl;
4799 hh = gh;
4800 gl = fl;
4801 gh = fh;
4802 fl = el;
4803 fh = eh;
4804 el = dl + tl | 0;
4805 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4806 dl = cl;
4807 dh = ch;
4808 cl = bl;
4809 ch = bh;
4810 bl = al;
4811 bh = ah;
4812 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4813 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4814 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4815 al = al + xl | 0;
4816 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4817 w5l = w5l + w14l | 0;
4818 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4819 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
4820 w5l = w5l + xl | 0;
4821 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4822 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
4823 w5l = w5l + xl | 0;
4824 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4825 tl = 1014477480 + w5l | 0;
4826 th = 1986661051 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4827 tl = tl + hl | 0;
4828 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4829 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4830 tl = tl + xl | 0;
4831 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4832 xl = gl ^ el & (fl ^ gl) | 0;
4833 tl = tl + xl | 0;
4834 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4835 hl = gl;
4836 hh = gh;
4837 gl = fl;
4838 gh = fh;
4839 fl = el;
4840 fh = eh;
4841 el = dl + tl | 0;
4842 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4843 dl = cl;
4844 dh = ch;
4845 cl = bl;
4846 ch = bh;
4847 bl = al;
4848 bh = ah;
4849 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4850 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4851 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4852 al = al + xl | 0;
4853 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4854 w6l = w6l + w15l | 0;
4855 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4856 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
4857 w6l = w6l + xl | 0;
4858 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4859 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
4860 w6l = w6l + xl | 0;
4861 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4862 tl = 1206759142 + w6l | 0;
4863 th = 2177026350 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4864 tl = tl + hl | 0;
4865 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4866 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4867 tl = tl + xl | 0;
4868 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4869 xl = gl ^ el & (fl ^ gl) | 0;
4870 tl = tl + xl | 0;
4871 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4872 hl = gl;
4873 hh = gh;
4874 gl = fl;
4875 gh = fh;
4876 fl = el;
4877 fh = eh;
4878 el = dl + tl | 0;
4879 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4880 dl = cl;
4881 dh = ch;
4882 cl = bl;
4883 ch = bh;
4884 bl = al;
4885 bh = ah;
4886 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4887 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4888 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4889 al = al + xl | 0;
4890 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4891 w7l = w7l + w0l | 0;
4892 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4893 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
4894 w7l = w7l + xl | 0;
4895 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4896 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
4897 w7l = w7l + xl | 0;
4898 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4899 tl = 344077627 + w7l | 0;
4900 th = 2456956037 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4901 tl = tl + hl | 0;
4902 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4903 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4904 tl = tl + xl | 0;
4905 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4906 xl = gl ^ el & (fl ^ gl) | 0;
4907 tl = tl + xl | 0;
4908 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4909 hl = gl;
4910 hh = gh;
4911 gl = fl;
4912 gh = fh;
4913 fl = el;
4914 fh = eh;
4915 el = dl + tl | 0;
4916 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4917 dl = cl;
4918 dh = ch;
4919 cl = bl;
4920 ch = bh;
4921 bl = al;
4922 bh = ah;
4923 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4924 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4925 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4926 al = al + xl | 0;
4927 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4928 w8l = w8l + w1l | 0;
4929 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4930 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
4931 w8l = w8l + xl | 0;
4932 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4933 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
4934 w8l = w8l + xl | 0;
4935 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4936 tl = 1290863460 + w8l | 0;
4937 th = 2730485921 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4938 tl = tl + hl | 0;
4939 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4940 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4941 tl = tl + xl | 0;
4942 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4943 xl = gl ^ el & (fl ^ gl) | 0;
4944 tl = tl + xl | 0;
4945 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4946 hl = gl;
4947 hh = gh;
4948 gl = fl;
4949 gh = fh;
4950 fl = el;
4951 fh = eh;
4952 el = dl + tl | 0;
4953 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4954 dl = cl;
4955 dh = ch;
4956 cl = bl;
4957 ch = bh;
4958 bl = al;
4959 bh = ah;
4960 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4961 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4962 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4963 al = al + xl | 0;
4964 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4965 w9l = w9l + w2l | 0;
4966 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4967 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
4968 w9l = w9l + xl | 0;
4969 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4970 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
4971 w9l = w9l + xl | 0;
4972 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4973 tl = 3158454273 + w9l | 0;
4974 th = 2820302411 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4975 tl = tl + hl | 0;
4976 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4977 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4978 tl = tl + xl | 0;
4979 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4980 xl = gl ^ el & (fl ^ gl) | 0;
4981 tl = tl + xl | 0;
4982 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4983 hl = gl;
4984 hh = gh;
4985 gl = fl;
4986 gh = fh;
4987 fl = el;
4988 fh = eh;
4989 el = dl + tl | 0;
4990 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4991 dl = cl;
4992 dh = ch;
4993 cl = bl;
4994 ch = bh;
4995 bl = al;
4996 bh = ah;
4997 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4998 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4999 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5000 al = al + xl | 0;
5001 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5002 w10l = w10l + w3l | 0;
5003 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5004 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
5005 w10l = w10l + xl | 0;
5006 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5007 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
5008 w10l = w10l + xl | 0;
5009 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5010 tl = 3505952657 + w10l | 0;
5011 th = 3259730800 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5012 tl = tl + hl | 0;
5013 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5014 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5015 tl = tl + xl | 0;
5016 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5017 xl = gl ^ el & (fl ^ gl) | 0;
5018 tl = tl + xl | 0;
5019 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5020 hl = gl;
5021 hh = gh;
5022 gl = fl;
5023 gh = fh;
5024 fl = el;
5025 fh = eh;
5026 el = dl + tl | 0;
5027 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5028 dl = cl;
5029 dh = ch;
5030 cl = bl;
5031 ch = bh;
5032 bl = al;
5033 bh = ah;
5034 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5035 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5036 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5037 al = al + xl | 0;
5038 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5039 w11l = w11l + w4l | 0;
5040 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5041 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
5042 w11l = w11l + xl | 0;
5043 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5044 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
5045 w11l = w11l + xl | 0;
5046 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5047 tl = 106217008 + w11l | 0;
5048 th = 3345764771 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5049 tl = tl + hl | 0;
5050 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5051 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5052 tl = tl + xl | 0;
5053 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5054 xl = gl ^ el & (fl ^ gl) | 0;
5055 tl = tl + xl | 0;
5056 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5057 hl = gl;
5058 hh = gh;
5059 gl = fl;
5060 gh = fh;
5061 fl = el;
5062 fh = eh;
5063 el = dl + tl | 0;
5064 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5065 dl = cl;
5066 dh = ch;
5067 cl = bl;
5068 ch = bh;
5069 bl = al;
5070 bh = ah;
5071 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5072 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5073 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5074 al = al + xl | 0;
5075 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5076 w12l = w12l + w5l | 0;
5077 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5078 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
5079 w12l = w12l + xl | 0;
5080 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5081 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
5082 w12l = w12l + xl | 0;
5083 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5084 tl = 3606008344 + w12l | 0;
5085 th = 3516065817 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5086 tl = tl + hl | 0;
5087 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5088 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5089 tl = tl + xl | 0;
5090 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5091 xl = gl ^ el & (fl ^ gl) | 0;
5092 tl = tl + xl | 0;
5093 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5094 hl = gl;
5095 hh = gh;
5096 gl = fl;
5097 gh = fh;
5098 fl = el;
5099 fh = eh;
5100 el = dl + tl | 0;
5101 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5102 dl = cl;
5103 dh = ch;
5104 cl = bl;
5105 ch = bh;
5106 bl = al;
5107 bh = ah;
5108 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5109 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5110 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5111 al = al + xl | 0;
5112 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5113 w13l = w13l + w6l | 0;
5114 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5115 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
5116 w13l = w13l + xl | 0;
5117 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5118 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
5119 w13l = w13l + xl | 0;
5120 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5121 tl = 1432725776 + w13l | 0;
5122 th = 3600352804 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5123 tl = tl + hl | 0;
5124 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5125 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5126 tl = tl + xl | 0;
5127 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5128 xl = gl ^ el & (fl ^ gl) | 0;
5129 tl = tl + xl | 0;
5130 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5131 hl = gl;
5132 hh = gh;
5133 gl = fl;
5134 gh = fh;
5135 fl = el;
5136 fh = eh;
5137 el = dl + tl | 0;
5138 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5139 dl = cl;
5140 dh = ch;
5141 cl = bl;
5142 ch = bh;
5143 bl = al;
5144 bh = ah;
5145 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5146 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5147 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5148 al = al + xl | 0;
5149 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5150 w14l = w14l + w7l | 0;
5151 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5152 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
5153 w14l = w14l + xl | 0;
5154 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5155 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
5156 w14l = w14l + xl | 0;
5157 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5158 tl = 1467031594 + w14l | 0;
5159 th = 4094571909 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5160 tl = tl + hl | 0;
5161 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5162 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5163 tl = tl + xl | 0;
5164 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5165 xl = gl ^ el & (fl ^ gl) | 0;
5166 tl = tl + xl | 0;
5167 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5168 hl = gl;
5169 hh = gh;
5170 gl = fl;
5171 gh = fh;
5172 fl = el;
5173 fh = eh;
5174 el = dl + tl | 0;
5175 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5176 dl = cl;
5177 dh = ch;
5178 cl = bl;
5179 ch = bh;
5180 bl = al;
5181 bh = ah;
5182 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5183 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5184 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5185 al = al + xl | 0;
5186 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5187 w15l = w15l + w8l | 0;
5188 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5189 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
5190 w15l = w15l + xl | 0;
5191 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5192 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
5193 w15l = w15l + xl | 0;
5194 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5195 tl = 851169720 + w15l | 0;
5196 th = 275423344 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5197 tl = tl + hl | 0;
5198 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5199 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5200 tl = tl + xl | 0;
5201 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5202 xl = gl ^ el & (fl ^ gl) | 0;
5203 tl = tl + xl | 0;
5204 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5205 hl = gl;
5206 hh = gh;
5207 gl = fl;
5208 gh = fh;
5209 fl = el;
5210 fh = eh;
5211 el = dl + tl | 0;
5212 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5213 dl = cl;
5214 dh = ch;
5215 cl = bl;
5216 ch = bh;
5217 bl = al;
5218 bh = ah;
5219 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5220 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5221 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5222 al = al + xl | 0;
5223 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5224 w0l = w0l + w9l | 0;
5225 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5226 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
5227 w0l = w0l + xl | 0;
5228 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5229 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
5230 w0l = w0l + xl | 0;
5231 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5232 tl = 3100823752 + w0l | 0;
5233 th = 430227734 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5234 tl = tl + hl | 0;
5235 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5236 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5237 tl = tl + xl | 0;
5238 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5239 xl = gl ^ el & (fl ^ gl) | 0;
5240 tl = tl + xl | 0;
5241 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5242 hl = gl;
5243 hh = gh;
5244 gl = fl;
5245 gh = fh;
5246 fl = el;
5247 fh = eh;
5248 el = dl + tl | 0;
5249 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5250 dl = cl;
5251 dh = ch;
5252 cl = bl;
5253 ch = bh;
5254 bl = al;
5255 bh = ah;
5256 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5257 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5258 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5259 al = al + xl | 0;
5260 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5261 w1l = w1l + w10l | 0;
5262 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5263 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
5264 w1l = w1l + xl | 0;
5265 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5266 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
5267 w1l = w1l + xl | 0;
5268 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5269 tl = 1363258195 + w1l | 0;
5270 th = 506948616 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5271 tl = tl + hl | 0;
5272 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5273 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5274 tl = tl + xl | 0;
5275 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5276 xl = gl ^ el & (fl ^ gl) | 0;
5277 tl = tl + xl | 0;
5278 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5279 hl = gl;
5280 hh = gh;
5281 gl = fl;
5282 gh = fh;
5283 fl = el;
5284 fh = eh;
5285 el = dl + tl | 0;
5286 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5287 dl = cl;
5288 dh = ch;
5289 cl = bl;
5290 ch = bh;
5291 bl = al;
5292 bh = ah;
5293 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5294 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5295 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5296 al = al + xl | 0;
5297 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5298 w2l = w2l + w11l | 0;
5299 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5300 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
5301 w2l = w2l + xl | 0;
5302 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5303 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
5304 w2l = w2l + xl | 0;
5305 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5306 tl = 3750685593 + w2l | 0;
5307 th = 659060556 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5308 tl = tl + hl | 0;
5309 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5310 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5311 tl = tl + xl | 0;
5312 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5313 xl = gl ^ el & (fl ^ gl) | 0;
5314 tl = tl + xl | 0;
5315 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5316 hl = gl;
5317 hh = gh;
5318 gl = fl;
5319 gh = fh;
5320 fl = el;
5321 fh = eh;
5322 el = dl + tl | 0;
5323 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5324 dl = cl;
5325 dh = ch;
5326 cl = bl;
5327 ch = bh;
5328 bl = al;
5329 bh = ah;
5330 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5331 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5332 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5333 al = al + xl | 0;
5334 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5335 w3l = w3l + w12l | 0;
5336 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5337 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
5338 w3l = w3l + xl | 0;
5339 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5340 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
5341 w3l = w3l + xl | 0;
5342 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5343 tl = 3785050280 + w3l | 0;
5344 th = 883997877 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5345 tl = tl + hl | 0;
5346 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5347 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5348 tl = tl + xl | 0;
5349 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5350 xl = gl ^ el & (fl ^ gl) | 0;
5351 tl = tl + xl | 0;
5352 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5353 hl = gl;
5354 hh = gh;
5355 gl = fl;
5356 gh = fh;
5357 fl = el;
5358 fh = eh;
5359 el = dl + tl | 0;
5360 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5361 dl = cl;
5362 dh = ch;
5363 cl = bl;
5364 ch = bh;
5365 bl = al;
5366 bh = ah;
5367 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5368 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5369 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5370 al = al + xl | 0;
5371 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5372 w4l = w4l + w13l | 0;
5373 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5374 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
5375 w4l = w4l + xl | 0;
5376 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5377 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
5378 w4l = w4l + xl | 0;
5379 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5380 tl = 3318307427 + w4l | 0;
5381 th = 958139571 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5382 tl = tl + hl | 0;
5383 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5384 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5385 tl = tl + xl | 0;
5386 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5387 xl = gl ^ el & (fl ^ gl) | 0;
5388 tl = tl + xl | 0;
5389 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5390 hl = gl;
5391 hh = gh;
5392 gl = fl;
5393 gh = fh;
5394 fl = el;
5395 fh = eh;
5396 el = dl + tl | 0;
5397 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5398 dl = cl;
5399 dh = ch;
5400 cl = bl;
5401 ch = bh;
5402 bl = al;
5403 bh = ah;
5404 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5405 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5406 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5407 al = al + xl | 0;
5408 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5409 w5l = w5l + w14l | 0;
5410 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5411 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
5412 w5l = w5l + xl | 0;
5413 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5414 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
5415 w5l = w5l + xl | 0;
5416 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5417 tl = 3812723403 + w5l | 0;
5418 th = 1322822218 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5419 tl = tl + hl | 0;
5420 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5421 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5422 tl = tl + xl | 0;
5423 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5424 xl = gl ^ el & (fl ^ gl) | 0;
5425 tl = tl + xl | 0;
5426 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5427 hl = gl;
5428 hh = gh;
5429 gl = fl;
5430 gh = fh;
5431 fl = el;
5432 fh = eh;
5433 el = dl + tl | 0;
5434 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5435 dl = cl;
5436 dh = ch;
5437 cl = bl;
5438 ch = bh;
5439 bl = al;
5440 bh = ah;
5441 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5442 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5443 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5444 al = al + xl | 0;
5445 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5446 w6l = w6l + w15l | 0;
5447 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5448 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
5449 w6l = w6l + xl | 0;
5450 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5451 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
5452 w6l = w6l + xl | 0;
5453 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5454 tl = 2003034995 + w6l | 0;
5455 th = 1537002063 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5456 tl = tl + hl | 0;
5457 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5458 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5459 tl = tl + xl | 0;
5460 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5461 xl = gl ^ el & (fl ^ gl) | 0;
5462 tl = tl + xl | 0;
5463 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5464 hl = gl;
5465 hh = gh;
5466 gl = fl;
5467 gh = fh;
5468 fl = el;
5469 fh = eh;
5470 el = dl + tl | 0;
5471 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5472 dl = cl;
5473 dh = ch;
5474 cl = bl;
5475 ch = bh;
5476 bl = al;
5477 bh = ah;
5478 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5479 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5480 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5481 al = al + xl | 0;
5482 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5483 w7l = w7l + w0l | 0;
5484 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5485 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
5486 w7l = w7l + xl | 0;
5487 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5488 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
5489 w7l = w7l + xl | 0;
5490 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5491 tl = 3602036899 + w7l | 0;
5492 th = 1747873779 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5493 tl = tl + hl | 0;
5494 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5495 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5496 tl = tl + xl | 0;
5497 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5498 xl = gl ^ el & (fl ^ gl) | 0;
5499 tl = tl + xl | 0;
5500 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5501 hl = gl;
5502 hh = gh;
5503 gl = fl;
5504 gh = fh;
5505 fl = el;
5506 fh = eh;
5507 el = dl + tl | 0;
5508 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5509 dl = cl;
5510 dh = ch;
5511 cl = bl;
5512 ch = bh;
5513 bl = al;
5514 bh = ah;
5515 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5516 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5517 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5518 al = al + xl | 0;
5519 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5520 w8l = w8l + w1l | 0;
5521 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5522 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
5523 w8l = w8l + xl | 0;
5524 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5525 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
5526 w8l = w8l + xl | 0;
5527 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5528 tl = 1575990012 + w8l | 0;
5529 th = 1955562222 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5530 tl = tl + hl | 0;
5531 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5532 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5533 tl = tl + xl | 0;
5534 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5535 xl = gl ^ el & (fl ^ gl) | 0;
5536 tl = tl + xl | 0;
5537 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5538 hl = gl;
5539 hh = gh;
5540 gl = fl;
5541 gh = fh;
5542 fl = el;
5543 fh = eh;
5544 el = dl + tl | 0;
5545 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5546 dl = cl;
5547 dh = ch;
5548 cl = bl;
5549 ch = bh;
5550 bl = al;
5551 bh = ah;
5552 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5553 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5554 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5555 al = al + xl | 0;
5556 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5557 w9l = w9l + w2l | 0;
5558 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5559 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
5560 w9l = w9l + xl | 0;
5561 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5562 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
5563 w9l = w9l + xl | 0;
5564 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5565 tl = 1125592928 + w9l | 0;
5566 th = 2024104815 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5567 tl = tl + hl | 0;
5568 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5569 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5570 tl = tl + xl | 0;
5571 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5572 xl = gl ^ el & (fl ^ gl) | 0;
5573 tl = tl + xl | 0;
5574 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5575 hl = gl;
5576 hh = gh;
5577 gl = fl;
5578 gh = fh;
5579 fl = el;
5580 fh = eh;
5581 el = dl + tl | 0;
5582 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5583 dl = cl;
5584 dh = ch;
5585 cl = bl;
5586 ch = bh;
5587 bl = al;
5588 bh = ah;
5589 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5590 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5591 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5592 al = al + xl | 0;
5593 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5594 w10l = w10l + w3l | 0;
5595 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5596 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
5597 w10l = w10l + xl | 0;
5598 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5599 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
5600 w10l = w10l + xl | 0;
5601 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5602 tl = 2716904306 + w10l | 0;
5603 th = 2227730452 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5604 tl = tl + hl | 0;
5605 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5606 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5607 tl = tl + xl | 0;
5608 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5609 xl = gl ^ el & (fl ^ gl) | 0;
5610 tl = tl + xl | 0;
5611 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5612 hl = gl;
5613 hh = gh;
5614 gl = fl;
5615 gh = fh;
5616 fl = el;
5617 fh = eh;
5618 el = dl + tl | 0;
5619 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5620 dl = cl;
5621 dh = ch;
5622 cl = bl;
5623 ch = bh;
5624 bl = al;
5625 bh = ah;
5626 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5627 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5628 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5629 al = al + xl | 0;
5630 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5631 w11l = w11l + w4l | 0;
5632 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5633 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
5634 w11l = w11l + xl | 0;
5635 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5636 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
5637 w11l = w11l + xl | 0;
5638 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5639 tl = 442776044 + w11l | 0;
5640 th = 2361852424 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5641 tl = tl + hl | 0;
5642 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5643 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5644 tl = tl + xl | 0;
5645 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5646 xl = gl ^ el & (fl ^ gl) | 0;
5647 tl = tl + xl | 0;
5648 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5649 hl = gl;
5650 hh = gh;
5651 gl = fl;
5652 gh = fh;
5653 fl = el;
5654 fh = eh;
5655 el = dl + tl | 0;
5656 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5657 dl = cl;
5658 dh = ch;
5659 cl = bl;
5660 ch = bh;
5661 bl = al;
5662 bh = ah;
5663 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5664 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5665 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5666 al = al + xl | 0;
5667 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5668 w12l = w12l + w5l | 0;
5669 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5670 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
5671 w12l = w12l + xl | 0;
5672 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5673 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
5674 w12l = w12l + xl | 0;
5675 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5676 tl = 593698344 + w12l | 0;
5677 th = 2428436474 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5678 tl = tl + hl | 0;
5679 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5680 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5681 tl = tl + xl | 0;
5682 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5683 xl = gl ^ el & (fl ^ gl) | 0;
5684 tl = tl + xl | 0;
5685 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5686 hl = gl;
5687 hh = gh;
5688 gl = fl;
5689 gh = fh;
5690 fl = el;
5691 fh = eh;
5692 el = dl + tl | 0;
5693 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5694 dl = cl;
5695 dh = ch;
5696 cl = bl;
5697 ch = bh;
5698 bl = al;
5699 bh = ah;
5700 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5701 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5702 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5703 al = al + xl | 0;
5704 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5705 w13l = w13l + w6l | 0;
5706 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5707 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
5708 w13l = w13l + xl | 0;
5709 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5710 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
5711 w13l = w13l + xl | 0;
5712 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5713 tl = 3733110249 + w13l | 0;
5714 th = 2756734187 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5715 tl = tl + hl | 0;
5716 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5717 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5718 tl = tl + xl | 0;
5719 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5720 xl = gl ^ el & (fl ^ gl) | 0;
5721 tl = tl + xl | 0;
5722 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5723 hl = gl;
5724 hh = gh;
5725 gl = fl;
5726 gh = fh;
5727 fl = el;
5728 fh = eh;
5729 el = dl + tl | 0;
5730 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5731 dl = cl;
5732 dh = ch;
5733 cl = bl;
5734 ch = bh;
5735 bl = al;
5736 bh = ah;
5737 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5738 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5739 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5740 al = al + xl | 0;
5741 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5742 w14l = w14l + w7l | 0;
5743 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5744 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
5745 w14l = w14l + xl | 0;
5746 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5747 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
5748 w14l = w14l + xl | 0;
5749 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5750 tl = 2999351573 + w14l | 0;
5751 th = 3204031479 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5752 tl = tl + hl | 0;
5753 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5754 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5755 tl = tl + xl | 0;
5756 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5757 xl = gl ^ el & (fl ^ gl) | 0;
5758 tl = tl + xl | 0;
5759 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5760 hl = gl;
5761 hh = gh;
5762 gl = fl;
5763 gh = fh;
5764 fl = el;
5765 fh = eh;
5766 el = dl + tl | 0;
5767 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5768 dl = cl;
5769 dh = ch;
5770 cl = bl;
5771 ch = bh;
5772 bl = al;
5773 bh = ah;
5774 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5775 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5776 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5777 al = al + xl | 0;
5778 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5779 w15l = w15l + w8l | 0;
5780 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5781 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
5782 w15l = w15l + xl | 0;
5783 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5784 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
5785 w15l = w15l + xl | 0;
5786 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5787 tl = 3815920427 + w15l | 0;
5788 th = 3329325298 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5789 tl = tl + hl | 0;
5790 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5791 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5792 tl = tl + xl | 0;
5793 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5794 xl = gl ^ el & (fl ^ gl) | 0;
5795 tl = tl + xl | 0;
5796 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5797 hl = gl;
5798 hh = gh;
5799 gl = fl;
5800 gh = fh;
5801 fl = el;
5802 fh = eh;
5803 el = dl + tl | 0;
5804 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5805 dl = cl;
5806 dh = ch;
5807 cl = bl;
5808 ch = bh;
5809 bl = al;
5810 bh = ah;
5811 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5812 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5813 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5814 al = al + xl | 0;
5815 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5816 w0l = w0l + w9l | 0;
5817 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5818 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
5819 w0l = w0l + xl | 0;
5820 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5821 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
5822 w0l = w0l + xl | 0;
5823 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5824 tl = 3928383900 + w0l | 0;
5825 th = 3391569614 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5826 tl = tl + hl | 0;
5827 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5828 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5829 tl = tl + xl | 0;
5830 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5831 xl = gl ^ el & (fl ^ gl) | 0;
5832 tl = tl + xl | 0;
5833 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5834 hl = gl;
5835 hh = gh;
5836 gl = fl;
5837 gh = fh;
5838 fl = el;
5839 fh = eh;
5840 el = dl + tl | 0;
5841 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5842 dl = cl;
5843 dh = ch;
5844 cl = bl;
5845 ch = bh;
5846 bl = al;
5847 bh = ah;
5848 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5849 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5850 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5851 al = al + xl | 0;
5852 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5853 w1l = w1l + w10l | 0;
5854 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5855 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
5856 w1l = w1l + xl | 0;
5857 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5858 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
5859 w1l = w1l + xl | 0;
5860 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5861 tl = 566280711 + w1l | 0;
5862 th = 3515267271 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5863 tl = tl + hl | 0;
5864 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5865 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5866 tl = tl + xl | 0;
5867 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5868 xl = gl ^ el & (fl ^ gl) | 0;
5869 tl = tl + xl | 0;
5870 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5871 hl = gl;
5872 hh = gh;
5873 gl = fl;
5874 gh = fh;
5875 fl = el;
5876 fh = eh;
5877 el = dl + tl | 0;
5878 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5879 dl = cl;
5880 dh = ch;
5881 cl = bl;
5882 ch = bh;
5883 bl = al;
5884 bh = ah;
5885 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5886 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5887 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5888 al = al + xl | 0;
5889 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5890 w2l = w2l + w11l | 0;
5891 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5892 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
5893 w2l = w2l + xl | 0;
5894 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5895 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
5896 w2l = w2l + xl | 0;
5897 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5898 tl = 3454069534 + w2l | 0;
5899 th = 3940187606 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5900 tl = tl + hl | 0;
5901 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5902 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5903 tl = tl + xl | 0;
5904 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5905 xl = gl ^ el & (fl ^ gl) | 0;
5906 tl = tl + xl | 0;
5907 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5908 hl = gl;
5909 hh = gh;
5910 gl = fl;
5911 gh = fh;
5912 fl = el;
5913 fh = eh;
5914 el = dl + tl | 0;
5915 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5916 dl = cl;
5917 dh = ch;
5918 cl = bl;
5919 ch = bh;
5920 bl = al;
5921 bh = ah;
5922 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5923 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5924 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5925 al = al + xl | 0;
5926 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5927 w3l = w3l + w12l | 0;
5928 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5929 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
5930 w3l = w3l + xl | 0;
5931 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5932 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
5933 w3l = w3l + xl | 0;
5934 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5935 tl = 4000239992 + w3l | 0;
5936 th = 4118630271 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5937 tl = tl + hl | 0;
5938 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5939 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5940 tl = tl + xl | 0;
5941 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5942 xl = gl ^ el & (fl ^ gl) | 0;
5943 tl = tl + xl | 0;
5944 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5945 hl = gl;
5946 hh = gh;
5947 gl = fl;
5948 gh = fh;
5949 fl = el;
5950 fh = eh;
5951 el = dl + tl | 0;
5952 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5953 dl = cl;
5954 dh = ch;
5955 cl = bl;
5956 ch = bh;
5957 bl = al;
5958 bh = ah;
5959 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5960 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5961 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5962 al = al + xl | 0;
5963 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5964 w4l = w4l + w13l | 0;
5965 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5966 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
5967 w4l = w4l + xl | 0;
5968 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5969 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
5970 w4l = w4l + xl | 0;
5971 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5972 tl = 1914138554 + w4l | 0;
5973 th = 116418474 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5974 tl = tl + hl | 0;
5975 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5976 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5977 tl = tl + xl | 0;
5978 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5979 xl = gl ^ el & (fl ^ gl) | 0;
5980 tl = tl + xl | 0;
5981 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5982 hl = gl;
5983 hh = gh;
5984 gl = fl;
5985 gh = fh;
5986 fl = el;
5987 fh = eh;
5988 el = dl + tl | 0;
5989 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5990 dl = cl;
5991 dh = ch;
5992 cl = bl;
5993 ch = bh;
5994 bl = al;
5995 bh = ah;
5996 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5997 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5998 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5999 al = al + xl | 0;
6000 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6001 w5l = w5l + w14l | 0;
6002 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
6003 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
6004 w5l = w5l + xl | 0;
6005 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6006 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
6007 w5l = w5l + xl | 0;
6008 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6009 tl = 2731055270 + w5l | 0;
6010 th = 174292421 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
6011 tl = tl + hl | 0;
6012 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6013 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6014 tl = tl + xl | 0;
6015 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6016 xl = gl ^ el & (fl ^ gl) | 0;
6017 tl = tl + xl | 0;
6018 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6019 hl = gl;
6020 hh = gh;
6021 gl = fl;
6022 gh = fh;
6023 fl = el;
6024 fh = eh;
6025 el = dl + tl | 0;
6026 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6027 dl = cl;
6028 dh = ch;
6029 cl = bl;
6030 ch = bh;
6031 bl = al;
6032 bh = ah;
6033 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6034 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6035 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6036 al = al + xl | 0;
6037 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6038 w6l = w6l + w15l | 0;
6039 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
6040 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
6041 w6l = w6l + xl | 0;
6042 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6043 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
6044 w6l = w6l + xl | 0;
6045 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6046 tl = 3203993006 + w6l | 0;
6047 th = 289380356 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
6048 tl = tl + hl | 0;
6049 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6050 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6051 tl = tl + xl | 0;
6052 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6053 xl = gl ^ el & (fl ^ gl) | 0;
6054 tl = tl + xl | 0;
6055 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6056 hl = gl;
6057 hh = gh;
6058 gl = fl;
6059 gh = fh;
6060 fl = el;
6061 fh = eh;
6062 el = dl + tl | 0;
6063 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6064 dl = cl;
6065 dh = ch;
6066 cl = bl;
6067 ch = bh;
6068 bl = al;
6069 bh = ah;
6070 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6071 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6072 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6073 al = al + xl | 0;
6074 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6075 w7l = w7l + w0l | 0;
6076 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
6077 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
6078 w7l = w7l + xl | 0;
6079 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6080 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
6081 w7l = w7l + xl | 0;
6082 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6083 tl = 320620315 + w7l | 0;
6084 th = 460393269 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
6085 tl = tl + hl | 0;
6086 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6087 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6088 tl = tl + xl | 0;
6089 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6090 xl = gl ^ el & (fl ^ gl) | 0;
6091 tl = tl + xl | 0;
6092 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6093 hl = gl;
6094 hh = gh;
6095 gl = fl;
6096 gh = fh;
6097 fl = el;
6098 fh = eh;
6099 el = dl + tl | 0;
6100 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6101 dl = cl;
6102 dh = ch;
6103 cl = bl;
6104 ch = bh;
6105 bl = al;
6106 bh = ah;
6107 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6108 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6109 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6110 al = al + xl | 0;
6111 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6112 w8l = w8l + w1l | 0;
6113 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
6114 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
6115 w8l = w8l + xl | 0;
6116 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6117 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
6118 w8l = w8l + xl | 0;
6119 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6120 tl = 587496836 + w8l | 0;
6121 th = 685471733 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
6122 tl = tl + hl | 0;
6123 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6124 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6125 tl = tl + xl | 0;
6126 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6127 xl = gl ^ el & (fl ^ gl) | 0;
6128 tl = tl + xl | 0;
6129 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6130 hl = gl;
6131 hh = gh;
6132 gl = fl;
6133 gh = fh;
6134 fl = el;
6135 fh = eh;
6136 el = dl + tl | 0;
6137 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6138 dl = cl;
6139 dh = ch;
6140 cl = bl;
6141 ch = bh;
6142 bl = al;
6143 bh = ah;
6144 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6145 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6146 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6147 al = al + xl | 0;
6148 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6149 w9l = w9l + w2l | 0;
6150 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
6151 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
6152 w9l = w9l + xl | 0;
6153 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6154 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
6155 w9l = w9l + xl | 0;
6156 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6157 tl = 1086792851 + w9l | 0;
6158 th = 852142971 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
6159 tl = tl + hl | 0;
6160 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6161 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6162 tl = tl + xl | 0;
6163 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6164 xl = gl ^ el & (fl ^ gl) | 0;
6165 tl = tl + xl | 0;
6166 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6167 hl = gl;
6168 hh = gh;
6169 gl = fl;
6170 gh = fh;
6171 fl = el;
6172 fh = eh;
6173 el = dl + tl | 0;
6174 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6175 dl = cl;
6176 dh = ch;
6177 cl = bl;
6178 ch = bh;
6179 bl = al;
6180 bh = ah;
6181 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6182 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6183 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6184 al = al + xl | 0;
6185 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6186 w10l = w10l + w3l | 0;
6187 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
6188 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
6189 w10l = w10l + xl | 0;
6190 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6191 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
6192 w10l = w10l + xl | 0;
6193 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6194 tl = 365543100 + w10l | 0;
6195 th = 1017036298 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
6196 tl = tl + hl | 0;
6197 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6198 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6199 tl = tl + xl | 0;
6200 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6201 xl = gl ^ el & (fl ^ gl) | 0;
6202 tl = tl + xl | 0;
6203 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6204 hl = gl;
6205 hh = gh;
6206 gl = fl;
6207 gh = fh;
6208 fl = el;
6209 fh = eh;
6210 el = dl + tl | 0;
6211 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6212 dl = cl;
6213 dh = ch;
6214 cl = bl;
6215 ch = bh;
6216 bl = al;
6217 bh = ah;
6218 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6219 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6220 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6221 al = al + xl | 0;
6222 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6223 w11l = w11l + w4l | 0;
6224 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
6225 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
6226 w11l = w11l + xl | 0;
6227 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6228 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
6229 w11l = w11l + xl | 0;
6230 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6231 tl = 2618297676 + w11l | 0;
6232 th = 1126000580 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
6233 tl = tl + hl | 0;
6234 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6235 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6236 tl = tl + xl | 0;
6237 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6238 xl = gl ^ el & (fl ^ gl) | 0;
6239 tl = tl + xl | 0;
6240 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6241 hl = gl;
6242 hh = gh;
6243 gl = fl;
6244 gh = fh;
6245 fl = el;
6246 fh = eh;
6247 el = dl + tl | 0;
6248 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6249 dl = cl;
6250 dh = ch;
6251 cl = bl;
6252 ch = bh;
6253 bl = al;
6254 bh = ah;
6255 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6256 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6257 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6258 al = al + xl | 0;
6259 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6260 w12l = w12l + w5l | 0;
6261 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
6262 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
6263 w12l = w12l + xl | 0;
6264 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6265 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
6266 w12l = w12l + xl | 0;
6267 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6268 tl = 3409855158 + w12l | 0;
6269 th = 1288033470 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
6270 tl = tl + hl | 0;
6271 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6272 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6273 tl = tl + xl | 0;
6274 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6275 xl = gl ^ el & (fl ^ gl) | 0;
6276 tl = tl + xl | 0;
6277 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6278 hl = gl;
6279 hh = gh;
6280 gl = fl;
6281 gh = fh;
6282 fl = el;
6283 fh = eh;
6284 el = dl + tl | 0;
6285 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6286 dl = cl;
6287 dh = ch;
6288 cl = bl;
6289 ch = bh;
6290 bl = al;
6291 bh = ah;
6292 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6293 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6294 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6295 al = al + xl | 0;
6296 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6297 w13l = w13l + w6l | 0;
6298 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
6299 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
6300 w13l = w13l + xl | 0;
6301 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6302 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
6303 w13l = w13l + xl | 0;
6304 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6305 tl = 4234509866 + w13l | 0;
6306 th = 1501505948 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
6307 tl = tl + hl | 0;
6308 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6309 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6310 tl = tl + xl | 0;
6311 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6312 xl = gl ^ el & (fl ^ gl) | 0;
6313 tl = tl + xl | 0;
6314 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6315 hl = gl;
6316 hh = gh;
6317 gl = fl;
6318 gh = fh;
6319 fl = el;
6320 fh = eh;
6321 el = dl + tl | 0;
6322 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6323 dl = cl;
6324 dh = ch;
6325 cl = bl;
6326 ch = bh;
6327 bl = al;
6328 bh = ah;
6329 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6330 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6331 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6332 al = al + xl | 0;
6333 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6334 w14l = w14l + w7l | 0;
6335 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
6336 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
6337 w14l = w14l + xl | 0;
6338 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6339 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
6340 w14l = w14l + xl | 0;
6341 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6342 tl = 987167468 + w14l | 0;
6343 th = 1607167915 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
6344 tl = tl + hl | 0;
6345 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6346 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6347 tl = tl + xl | 0;
6348 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6349 xl = gl ^ el & (fl ^ gl) | 0;
6350 tl = tl + xl | 0;
6351 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6352 hl = gl;
6353 hh = gh;
6354 gl = fl;
6355 gh = fh;
6356 fl = el;
6357 fh = eh;
6358 el = dl + tl | 0;
6359 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6360 dl = cl;
6361 dh = ch;
6362 cl = bl;
6363 ch = bh;
6364 bl = al;
6365 bh = ah;
6366 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6367 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6368 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6369 al = al + xl | 0;
6370 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6371 w15l = w15l + w8l | 0;
6372 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
6373 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
6374 w15l = w15l + xl | 0;
6375 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6376 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
6377 w15l = w15l + xl | 0;
6378 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6379 tl = 1246189591 + w15l | 0;
6380 th = 1816402316 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
6381 tl = tl + hl | 0;
6382 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6383 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6384 tl = tl + xl | 0;
6385 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6386 xl = gl ^ el & (fl ^ gl) | 0;
6387 tl = tl + xl | 0;
6388 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6389 hl = gl;
6390 hh = gh;
6391 gl = fl;
6392 gh = fh;
6393 fl = el;
6394 fh = eh;
6395 el = dl + tl | 0;
6396 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6397 dl = cl;
6398 dh = ch;
6399 cl = bl;
6400 ch = bh;
6401 bl = al;
6402 bh = ah;
6403 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6404 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6405 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6406 al = al + xl | 0;
6407 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6408 H0l = H0l + al | 0;
6409 H0h = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0) | 0;
6410 H1l = H1l + bl | 0;
6411 H1h = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0) | 0;
6412 H2l = H2l + cl | 0;
6413 H2h = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0) | 0;
6414 H3l = H3l + dl | 0;
6415 H3h = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6416 H4l = H4l + el | 0;
6417 H4h = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0) | 0;
6418 H5l = H5l + fl | 0;
6419 H5h = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0) | 0;
6420 H6l = H6l + gl | 0;
6421 H6h = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0) | 0;
6422 H7l = H7l + hl | 0;
6423 H7h = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6424 }
6425 function _core_heap(offset) {
6426 offset = offset | 0;
6427 _core(HEAP[offset | 0] << 24 | HEAP[offset | 1] << 16 | HEAP[offset | 2] << 8 | HEAP[offset | 3], HEAP[offset | 4] << 24 | HEAP[offset | 5] << 16 | HEAP[offset | 6] << 8 | HEAP[offset | 7], HEAP[offset | 8] << 24 | HEAP[offset | 9] << 16 | HEAP[offset | 10] << 8 | HEAP[offset | 11], HEAP[offset | 12] << 24 | HEAP[offset | 13] << 16 | HEAP[offset | 14] << 8 | HEAP[offset | 15], HEAP[offset | 16] << 24 | HEAP[offset | 17] << 16 | HEAP[offset | 18] << 8 | HEAP[offset | 19], HEAP[offset | 20] << 24 | HEAP[offset | 21] << 16 | HEAP[offset | 22] << 8 | HEAP[offset | 23], HEAP[offset | 24] << 24 | HEAP[offset | 25] << 16 | HEAP[offset | 26] << 8 | HEAP[offset | 27], HEAP[offset | 28] << 24 | HEAP[offset | 29] << 16 | HEAP[offset | 30] << 8 | HEAP[offset | 31], HEAP[offset | 32] << 24 | HEAP[offset | 33] << 16 | HEAP[offset | 34] << 8 | HEAP[offset | 35], HEAP[offset | 36] << 24 | HEAP[offset | 37] << 16 | HEAP[offset | 38] << 8 | HEAP[offset | 39], HEAP[offset | 40] << 24 | HEAP[offset | 41] << 16 | HEAP[offset | 42] << 8 | HEAP[offset | 43], HEAP[offset | 44] << 24 | HEAP[offset | 45] << 16 | HEAP[offset | 46] << 8 | HEAP[offset | 47], HEAP[offset | 48] << 24 | HEAP[offset | 49] << 16 | HEAP[offset | 50] << 8 | HEAP[offset | 51], HEAP[offset | 52] << 24 | HEAP[offset | 53] << 16 | HEAP[offset | 54] << 8 | HEAP[offset | 55], HEAP[offset | 56] << 24 | HEAP[offset | 57] << 16 | HEAP[offset | 58] << 8 | HEAP[offset | 59], HEAP[offset | 60] << 24 | HEAP[offset | 61] << 16 | HEAP[offset | 62] << 8 | HEAP[offset | 63], HEAP[offset | 64] << 24 | HEAP[offset | 65] << 16 | HEAP[offset | 66] << 8 | HEAP[offset | 67], HEAP[offset | 68] << 24 | HEAP[offset | 69] << 16 | HEAP[offset | 70] << 8 | HEAP[offset | 71], HEAP[offset | 72] << 24 | HEAP[offset | 73] << 16 | HEAP[offset | 74] << 8 | HEAP[offset | 75], HEAP[offset | 76] << 24 | HEAP[offset | 77] << 16 | HEAP[offset | 78] << 8 | HEAP[offset | 79], HEAP[offset | 80] << 24 | HEAP[offset | 81] << 16 | HEAP[offset | 82] << 8 | HEAP[offset | 83], HEAP[offset | 84] << 24 | HEAP[offset | 85] << 16 | HEAP[offset | 86] << 8 | HEAP[offset | 87], HEAP[offset | 88] << 24 | HEAP[offset | 89] << 16 | HEAP[offset | 90] << 8 | HEAP[offset | 91], HEAP[offset | 92] << 24 | HEAP[offset | 93] << 16 | HEAP[offset | 94] << 8 | HEAP[offset | 95], HEAP[offset | 96] << 24 | HEAP[offset | 97] << 16 | HEAP[offset | 98] << 8 | HEAP[offset | 99], HEAP[offset | 100] << 24 | HEAP[offset | 101] << 16 | HEAP[offset | 102] << 8 | HEAP[offset | 103], HEAP[offset | 104] << 24 | HEAP[offset | 105] << 16 | HEAP[offset | 106] << 8 | HEAP[offset | 107], HEAP[offset | 108] << 24 | HEAP[offset | 109] << 16 | HEAP[offset | 110] << 8 | HEAP[offset | 111], HEAP[offset | 112] << 24 | HEAP[offset | 113] << 16 | HEAP[offset | 114] << 8 | HEAP[offset | 115], HEAP[offset | 116] << 24 | HEAP[offset | 117] << 16 | HEAP[offset | 118] << 8 | HEAP[offset | 119], HEAP[offset | 120] << 24 | HEAP[offset | 121] << 16 | HEAP[offset | 122] << 8 | HEAP[offset | 123], HEAP[offset | 124] << 24 | HEAP[offset | 125] << 16 | HEAP[offset | 126] << 8 | HEAP[offset | 127]);
6428 }
6429 function _state_to_heap(output) {
6430 output = output | 0;
6431 HEAP[output | 0] = H0h >>> 24;
6432 HEAP[output | 1] = H0h >>> 16 & 255;
6433 HEAP[output | 2] = H0h >>> 8 & 255;
6434 HEAP[output | 3] = H0h & 255;
6435 HEAP[output | 4] = H0l >>> 24;
6436 HEAP[output | 5] = H0l >>> 16 & 255;
6437 HEAP[output | 6] = H0l >>> 8 & 255;
6438 HEAP[output | 7] = H0l & 255;
6439 HEAP[output | 8] = H1h >>> 24;
6440 HEAP[output | 9] = H1h >>> 16 & 255;
6441 HEAP[output | 10] = H1h >>> 8 & 255;
6442 HEAP[output | 11] = H1h & 255;
6443 HEAP[output | 12] = H1l >>> 24;
6444 HEAP[output | 13] = H1l >>> 16 & 255;
6445 HEAP[output | 14] = H1l >>> 8 & 255;
6446 HEAP[output | 15] = H1l & 255;
6447 HEAP[output | 16] = H2h >>> 24;
6448 HEAP[output | 17] = H2h >>> 16 & 255;
6449 HEAP[output | 18] = H2h >>> 8 & 255;
6450 HEAP[output | 19] = H2h & 255;
6451 HEAP[output | 20] = H2l >>> 24;
6452 HEAP[output | 21] = H2l >>> 16 & 255;
6453 HEAP[output | 22] = H2l >>> 8 & 255;
6454 HEAP[output | 23] = H2l & 255;
6455 HEAP[output | 24] = H3h >>> 24;
6456 HEAP[output | 25] = H3h >>> 16 & 255;
6457 HEAP[output | 26] = H3h >>> 8 & 255;
6458 HEAP[output | 27] = H3h & 255;
6459 HEAP[output | 28] = H3l >>> 24;
6460 HEAP[output | 29] = H3l >>> 16 & 255;
6461 HEAP[output | 30] = H3l >>> 8 & 255;
6462 HEAP[output | 31] = H3l & 255;
6463 HEAP[output | 32] = H4h >>> 24;
6464 HEAP[output | 33] = H4h >>> 16 & 255;
6465 HEAP[output | 34] = H4h >>> 8 & 255;
6466 HEAP[output | 35] = H4h & 255;
6467 HEAP[output | 36] = H4l >>> 24;
6468 HEAP[output | 37] = H4l >>> 16 & 255;
6469 HEAP[output | 38] = H4l >>> 8 & 255;
6470 HEAP[output | 39] = H4l & 255;
6471 HEAP[output | 40] = H5h >>> 24;
6472 HEAP[output | 41] = H5h >>> 16 & 255;
6473 HEAP[output | 42] = H5h >>> 8 & 255;
6474 HEAP[output | 43] = H5h & 255;
6475 HEAP[output | 44] = H5l >>> 24;
6476 HEAP[output | 45] = H5l >>> 16 & 255;
6477 HEAP[output | 46] = H5l >>> 8 & 255;
6478 HEAP[output | 47] = H5l & 255;
6479 HEAP[output | 48] = H6h >>> 24;
6480 HEAP[output | 49] = H6h >>> 16 & 255;
6481 HEAP[output | 50] = H6h >>> 8 & 255;
6482 HEAP[output | 51] = H6h & 255;
6483 HEAP[output | 52] = H6l >>> 24;
6484 HEAP[output | 53] = H6l >>> 16 & 255;
6485 HEAP[output | 54] = H6l >>> 8 & 255;
6486 HEAP[output | 55] = H6l & 255;
6487 HEAP[output | 56] = H7h >>> 24;
6488 HEAP[output | 57] = H7h >>> 16 & 255;
6489 HEAP[output | 58] = H7h >>> 8 & 255;
6490 HEAP[output | 59] = H7h & 255;
6491 HEAP[output | 60] = H7l >>> 24;
6492 HEAP[output | 61] = H7l >>> 16 & 255;
6493 HEAP[output | 62] = H7l >>> 8 & 255;
6494 HEAP[output | 63] = H7l & 255;
6495 }
6496 function reset() {
6497 H0h = 1779033703;
6498 H0l = 4089235720;
6499 H1h = 3144134277;
6500 H1l = 2227873595;
6501 H2h = 1013904242;
6502 H2l = 4271175723;
6503 H3h = 2773480762;
6504 H3l = 1595750129;
6505 H4h = 1359893119;
6506 H4l = 2917565137;
6507 H5h = 2600822924;
6508 H5l = 725511199;
6509 H6h = 528734635;
6510 H6l = 4215389547;
6511 H7h = 1541459225;
6512 H7l = 327033209;
6513 TOTAL = 0;
6514 }
6515 function init(h0h, h0l, h1h, h1l, h2h, h2l, h3h, h3l, h4h, h4l, h5h, h5l, h6h, h6l, h7h, h7l, total) {
6516 h0h = h0h | 0;
6517 h0l = h0l | 0;
6518 h1h = h1h | 0;
6519 h1l = h1l | 0;
6520 h2h = h2h | 0;
6521 h2l = h2l | 0;
6522 h3h = h3h | 0;
6523 h3l = h3l | 0;
6524 h4h = h4h | 0;
6525 h4l = h4l | 0;
6526 h5h = h5h | 0;
6527 h5l = h5l | 0;
6528 h6h = h6h | 0;
6529 h6l = h6l | 0;
6530 h7h = h7h | 0;
6531 h7l = h7l | 0;
6532 total = total | 0;
6533 H0h = h0h;
6534 H0l = h0l;
6535 H1h = h1h;
6536 H1l = h1l;
6537 H2h = h2h;
6538 H2l = h2l;
6539 H3h = h3h;
6540 H3l = h3l;
6541 H4h = h4h;
6542 H4l = h4l;
6543 H5h = h5h;
6544 H5l = h5l;
6545 H6h = h6h;
6546 H6l = h6l;
6547 H7h = h7h;
6548 H7l = h7l;
6549 TOTAL = total;
6550 }
6551 function process(offset, length) {
6552 offset = offset | 0;
6553 length = length | 0;
6554 var hashed = 0;
6555 if (offset & 127) return -1;
6556 while ((length | 0) >= 128) {
6557 _core_heap(offset);
6558 offset = offset + 128 | 0;
6559 length = length - 128 | 0;
6560 hashed = hashed + 128 | 0;
6561 }
6562 TOTAL = TOTAL + hashed | 0;
6563 return hashed | 0;
6564 }
6565 function finish(offset, length, output) {
6566 offset = offset | 0;
6567 length = length | 0;
6568 output = output | 0;
6569 var hashed = 0, i = 0;
6570 if (offset & 127) return -1;
6571 if (~output) if (output & 63) return -1;
6572 if ((length | 0) >= 128) {
6573 hashed = process(offset, length) | 0;
6574 if ((hashed | 0) == -1) return -1;
6575 offset = offset + hashed | 0;
6576 length = length - hashed | 0;
6577 }
6578 hashed = hashed + length | 0;
6579 TOTAL = TOTAL + length | 0;
6580 HEAP[offset | length] = 128;
6581 if ((length | 0) >= 112) {
6582 for (i = length + 1 | 0; (i | 0) < 128; i = i + 1 | 0) HEAP[offset | i] = 0;
6583 _core_heap(offset);
6584 length = 0;
6585 HEAP[offset | 0] = 0;
6586 }
6587 for (i = length + 1 | 0; (i | 0) < 123; i = i + 1 | 0) HEAP[offset | i] = 0;
6588 HEAP[offset | 123] = TOTAL >>> 29;
6589 HEAP[offset | 124] = TOTAL >>> 21 & 255;
6590 HEAP[offset | 125] = TOTAL >>> 13 & 255;
6591 HEAP[offset | 126] = TOTAL >>> 5 & 255;
6592 HEAP[offset | 127] = TOTAL << 3 & 255;
6593 _core_heap(offset);
6594 if (~output) _state_to_heap(output);
6595 return hashed | 0;
6596 }
6597 function hmac_reset() {
6598 H0h = I0h;
6599 H0l = I0l;
6600 H1h = I1h;
6601 H1l = I1l;
6602 H2h = I2h;
6603 H2l = I2l;
6604 H3h = I3h;
6605 H3l = I3l;
6606 H4h = I4h;
6607 H4l = I4l;
6608 H5h = I5h;
6609 H5l = I5l;
6610 H6h = I6h;
6611 H6l = I6l;
6612 H7h = I7h;
6613 H7l = I7l;
6614 TOTAL = 128;
6615 }
6616 function _hmac_opad() {
6617 H0h = O0h;
6618 H0l = O0l;
6619 H1h = O1h;
6620 H1l = O1l;
6621 H2h = O2h;
6622 H2l = O2l;
6623 H3h = O3h;
6624 H3l = O3l;
6625 H4h = O4h;
6626 H4l = O4l;
6627 H5h = O5h;
6628 H5l = O5l;
6629 H6h = O6h;
6630 H6l = O6l;
6631 H7h = O7h;
6632 H7l = O7l;
6633 TOTAL = 128;
6634 }
6635 function hmac_init(p0h, p0l, p1h, p1l, p2h, p2l, p3h, p3l, p4h, p4l, p5h, p5l, p6h, p6l, p7h, p7l, p8h, p8l, p9h, p9l, p10h, p10l, p11h, p11l, p12h, p12l, p13h, p13l, p14h, p14l, p15h, p15l) {
6636 p0h = p0h | 0;
6637 p0l = p0l | 0;
6638 p1h = p1h | 0;
6639 p1l = p1l | 0;
6640 p2h = p2h | 0;
6641 p2l = p2l | 0;
6642 p3h = p3h | 0;
6643 p3l = p3l | 0;
6644 p4h = p4h | 0;
6645 p4l = p4l | 0;
6646 p5h = p5h | 0;
6647 p5l = p5l | 0;
6648 p6h = p6h | 0;
6649 p6l = p6l | 0;
6650 p7h = p7h | 0;
6651 p7l = p7l | 0;
6652 p8h = p8h | 0;
6653 p8l = p8l | 0;
6654 p9h = p9h | 0;
6655 p9l = p9l | 0;
6656 p10h = p10h | 0;
6657 p10l = p10l | 0;
6658 p11h = p11h | 0;
6659 p11l = p11l | 0;
6660 p12h = p12h | 0;
6661 p12l = p12l | 0;
6662 p13h = p13h | 0;
6663 p13l = p13l | 0;
6664 p14h = p14h | 0;
6665 p14l = p14l | 0;
6666 p15h = p15h | 0;
6667 p15l = p15l | 0;
6668 reset();
6669 _core(p0h ^ 1549556828, p0l ^ 1549556828, p1h ^ 1549556828, p1l ^ 1549556828, p2h ^ 1549556828, p2l ^ 1549556828, p3h ^ 1549556828, p3l ^ 1549556828, p4h ^ 1549556828, p4l ^ 1549556828, p5h ^ 1549556828, p5l ^ 1549556828, p6h ^ 1549556828, p6l ^ 1549556828, p7h ^ 1549556828, p7l ^ 1549556828, p8h ^ 1549556828, p8l ^ 1549556828, p9h ^ 1549556828, p9l ^ 1549556828, p10h ^ 1549556828, p10l ^ 1549556828, p11h ^ 1549556828, p11l ^ 1549556828, p12h ^ 1549556828, p12l ^ 1549556828, p13h ^ 1549556828, p13l ^ 1549556828, p14h ^ 1549556828, p14l ^ 1549556828, p15h ^ 1549556828, p15l ^ 1549556828);
6670 O0h = H0h;
6671 O0l = H0l;
6672 O1h = H1h;
6673 O1l = H1l;
6674 O2h = H2h;
6675 O2l = H2l;
6676 O3h = H3h;
6677 O3l = H3l;
6678 O4h = H4h;
6679 O4l = H4l;
6680 O5h = H5h;
6681 O5l = H5l;
6682 O6h = H6h;
6683 O6l = H6l;
6684 O7h = H7h;
6685 O7l = H7l;
6686 reset();
6687 _core(p0h ^ 909522486, p0l ^ 909522486, p1h ^ 909522486, p1l ^ 909522486, p2h ^ 909522486, p2l ^ 909522486, p3h ^ 909522486, p3l ^ 909522486, p4h ^ 909522486, p4l ^ 909522486, p5h ^ 909522486, p5l ^ 909522486, p6h ^ 909522486, p6l ^ 909522486, p7h ^ 909522486, p7l ^ 909522486, p8h ^ 909522486, p8l ^ 909522486, p9h ^ 909522486, p9l ^ 909522486, p10h ^ 909522486, p10l ^ 909522486, p11h ^ 909522486, p11l ^ 909522486, p12h ^ 909522486, p12l ^ 909522486, p13h ^ 909522486, p13l ^ 909522486, p14h ^ 909522486, p14l ^ 909522486, p15h ^ 909522486, p15l ^ 909522486);
6688 I0h = H0h;
6689 I0l = H0l;
6690 I1h = H1h;
6691 I1l = H1l;
6692 I2h = H2h;
6693 I2l = H2l;
6694 I3h = H3h;
6695 I3l = H3l;
6696 I4h = H4h;
6697 I4l = H4l;
6698 I5h = H5h;
6699 I5l = H5l;
6700 I6h = H6h;
6701 I6l = H6l;
6702 I7h = H7h;
6703 I7l = H7l;
6704 TOTAL = 128;
6705 }
6706 function hmac_finish(offset, length, output) {
6707 offset = offset | 0;
6708 length = length | 0;
6709 output = output | 0;
6710 var t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0, t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0, hashed = 0;
6711 if (offset & 127) return -1;
6712 if (~output) if (output & 63) return -1;
6713 hashed = finish(offset, length, -1) | 0;
6714 t0h = H0h;
6715 t0l = H0l;
6716 t1h = H1h;
6717 t1l = H1l;
6718 t2h = H2h;
6719 t2l = H2l;
6720 t3h = H3h;
6721 t3l = H3l;
6722 t4h = H4h;
6723 t4l = H4l;
6724 t5h = H5h;
6725 t5l = H5l;
6726 t6h = H6h;
6727 t6l = H6l;
6728 t7h = H7h;
6729 t7l = H7l;
6730 _hmac_opad();
6731 _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6732 if (~output) _state_to_heap(output);
6733 return hashed | 0;
6734 }
6735 function pbkdf2_generate_block(offset, length, block, count, output) {
6736 offset = offset | 0;
6737 length = length | 0;
6738 block = block | 0;
6739 count = count | 0;
6740 output = output | 0;
6741 var h0h = 0, h0l = 0, h1h = 0, h1l = 0, h2h = 0, h2l = 0, h3h = 0, h3l = 0, h4h = 0, h4l = 0, h5h = 0, h5l = 0, h6h = 0, h6l = 0, h7h = 0, h7l = 0, t0h = 0, t0l = 0, t1h = 0, t1l = 0, t2h = 0, t2l = 0, t3h = 0, t3l = 0, t4h = 0, t4l = 0, t5h = 0, t5l = 0, t6h = 0, t6l = 0, t7h = 0, t7l = 0;
6742 if (offset & 127) return -1;
6743 if (~output) if (output & 63) return -1;
6744 HEAP[offset + length | 0] = block >>> 24;
6745 HEAP[offset + length + 1 | 0] = block >>> 16 & 255;
6746 HEAP[offset + length + 2 | 0] = block >>> 8 & 255;
6747 HEAP[offset + length + 3 | 0] = block & 255;
6748 hmac_finish(offset, length + 4 | 0, -1) | 0;
6749 h0h = t0h = H0h;
6750 h0l = t0l = H0l;
6751 h1h = t1h = H1h;
6752 h1l = t1l = H1l;
6753 h2h = t2h = H2h;
6754 h2l = t2l = H2l;
6755 h3h = t3h = H3h;
6756 h3l = t3l = H3l;
6757 h4h = t4h = H4h;
6758 h4l = t4l = H4l;
6759 h5h = t5h = H5h;
6760 h5l = t5l = H5l;
6761 h6h = t6h = H6h;
6762 h6l = t6l = H6l;
6763 h7h = t7h = H7h;
6764 h7l = t7l = H7l;
6765 count = count - 1 | 0;
6766 while ((count | 0) > 0) {
6767 hmac_reset();
6768 _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6769 t0h = H0h;
6770 t0l = H0l;
6771 t1h = H1h;
6772 t1l = H1l;
6773 t2h = H2h;
6774 t2l = H2l;
6775 t3h = H3h;
6776 t3l = H3l;
6777 t4h = H4h;
6778 t4l = H4l;
6779 t5h = H5h;
6780 t5l = H5l;
6781 t6h = H6h;
6782 t6l = H6l;
6783 t7h = H7h;
6784 t7l = H7l;
6785 _hmac_opad();
6786 _core(t0h, t0l, t1h, t1l, t2h, t2l, t3h, t3l, t4h, t4l, t5h, t5l, t6h, t6l, t7h, t7l, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6787 t0h = H0h;
6788 t0l = H0l;
6789 t1h = H1h;
6790 t1l = H1l;
6791 t2h = H2h;
6792 t2l = H2l;
6793 t3h = H3h;
6794 t3l = H3l;
6795 t4h = H4h;
6796 t4l = H4l;
6797 t5h = H5h;
6798 t5l = H5l;
6799 t6h = H6h;
6800 t6l = H6l;
6801 t7h = H7h;
6802 t7l = H7l;
6803 h0h = h0h ^ H0h;
6804 h0l = h0l ^ H0l;
6805 h1h = h1h ^ H1h;
6806 h1l = h1l ^ H1l;
6807 h2h = h2h ^ H2h;
6808 h2l = h2l ^ H2l;
6809 h3h = h3h ^ H3h;
6810 h3l = h3l ^ H3l;
6811 h4h = h4h ^ H4h;
6812 h4l = h4l ^ H4l;
6813 h5h = h5h ^ H5h;
6814 h5l = h5l ^ H5l;
6815 h6h = h6h ^ H6h;
6816 h6l = h6l ^ H6l;
6817 h7h = h7h ^ H7h;
6818 h7l = h7l ^ H7l;
6819 count = count - 1 | 0;
6820 }
6821 H0h = h0h;
6822 H0l = h0l;
6823 H1h = h1h;
6824 H1l = h1l;
6825 H2h = h2h;
6826 H2l = h2l;
6827 H3h = h3h;
6828 H3l = h3l;
6829 H4h = h4h;
6830 H4l = h4l;
6831 H5h = h5h;
6832 H5l = h5l;
6833 H6h = h6h;
6834 H6l = h6l;
6835 H7h = h7h;
6836 H7l = h7l;
6837 if (~output) _state_to_heap(output);
6838 return 0;
6839 }
6840 return {
6841 reset: reset,
6842 init: init,
6843 process: process,
6844 finish: finish,
6845 hmac_reset: hmac_reset,
6846 hmac_init: hmac_init,
6847 hmac_finish: hmac_finish,
6848 pbkdf2_generate_block: pbkdf2_generate_block
6849 };
6850 }
6851 var _sha512_block_size = 128, _sha512_hash_size = 64;
6852 function sha512_constructor(options) {
6853 options = options || {};
6854 options.heapSize = options.heapSize || 4096;
6855 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
6856 this.heap = options.heap || new Uint8Array(options.heapSize);
6857 this.asm = options.asm || sha512_asm(global, null, this.heap.buffer);
6858 this.BLOCK_SIZE = _sha512_block_size;
6859 this.HASH_SIZE = _sha512_hash_size;
6860 this.reset();
6861 }
6862 function sha512_reset() {
6863 this.result = null;
6864 this.pos = 0;
6865 this.len = 0;
6866 this.asm.reset();
6867 return this;
6868 }
6869 function sha512_process(data) {
6870 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
6871 var dpos = 0, dlen = 0, clen = 0;
6872 if (is_buffer(data) || is_bytes(data)) {
6873 dpos = data.byteOffset || 0;
6874 dlen = data.byteLength;
6875 } else if (is_string(data)) {
6876 dlen = data.length;
6877 } else {
6878 throw new TypeError("data isn't of expected type");
6879 }
6880 while (dlen > 0) {
6881 clen = this.heap.byteLength - this.pos - this.len;
6882 clen = clen < dlen ? clen : dlen;
6883 if (is_buffer(data) || is_bytes(data)) {
6884 this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len);
6885 } else {
6886 for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i);
6887 }
6888 this.len += clen;
6889 dpos += clen;
6890 dlen -= clen;
6891 clen = this.asm.process(this.pos, this.len);
6892 if (clen < this.len) {
6893 this.pos += clen;
6894 this.len -= clen;
6895 } else {
6896 this.pos = 0;
6897 this.len = 0;
6898 }
6899 }
6900 return this;
6901 }
6902 function sha512_finish() {
6903 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
6904 this.asm.finish(this.pos, this.len, 0);
6905 this.result = new Uint8Array(_sha512_hash_size);
6906 this.result.set(this.heap.subarray(0, _sha512_hash_size));
6907 this.pos = 0;
6908 this.len = 0;
6909 return this;
6910 }
6911 sha512_constructor.BLOCK_SIZE = _sha512_block_size;
6912 sha512_constructor.HASH_SIZE = _sha512_hash_size;
6913 var sha512_prototype = sha512_constructor.prototype;
6914 sha512_prototype.reset = sha512_reset;
6915 sha512_prototype.process = sha512_process;
6916 sha512_prototype.finish = sha512_finish;
6917 function hmac_constructor(options) {
6918 options = options || {};
6919 if (!options.hash) throw new SyntaxError("option 'hash' is required");
6920 if (!options.hash.HASH_SIZE) throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function");
6921 this.hash = options.hash;
6922 this.BLOCK_SIZE = this.hash.BLOCK_SIZE;
6923 this.HMAC_SIZE = this.hash.HASH_SIZE;
6924 this.key = null;
6925 this.verify = null;
6926 this.result = null;
6927 if (options.password !== undefined || options.verify !== undefined) this.reset(options);
6928 return this;
6929 }
6930 function hmac_sha256_constructor(options) {
6931 options = options || {};
6932 if (!(options.hash instanceof sha256_constructor)) options.hash = new sha256_constructor(options);
6933 hmac_constructor.call(this, options);
6934 return this;
6935 }
6936 function hmac_sha512_constructor(options) {
6937 options = options || {};
6938 if (!(options.hash instanceof sha512_constructor)) options.hash = new sha512_constructor(options);
6939 hmac_constructor.call(this, options);
6940 return this;
6941 }
6942 function _hmac_key(hash, password) {
6943 var key;
6944 if (is_buffer(password) || is_bytes(password)) {
6945 key = new Uint8Array(hash.BLOCK_SIZE);
6946 if (password.byteLength > hash.BLOCK_SIZE) {
6947 key.set(new Uint8Array(hash.reset().process(password).finish().result));
6948 } else if (is_buffer(password)) {
6949 key.set(new Uint8Array(password));
6950 } else {
6951 key.set(password);
6952 }
6953 } else if (is_string(password)) {
6954 key = new Uint8Array(hash.BLOCK_SIZE);
6955 if (password.length > hash.BLOCK_SIZE) {
6956 key.set(new Uint8Array(hash.reset().process(password).finish().result));
6957 } else {
6958 for (var i = 0; i < password.length; ++i) key[i] = password.charCodeAt(i);
6959 }
6960 } else {
6961 throw new TypeError("password isn't of expected type");
6962 }
6963 return key;
6964 }
6965 function _hmac_init_verify(verify) {
6966 if (is_buffer(verify) || is_bytes(verify)) {
6967 verify = new Uint8Array(verify);
6968 } else if (is_string(verify)) {
6969 verify = string_to_bytes(verify);
6970 } else {
6971 throw new TypeError("verify tag isn't of expected type");
6972 }
6973 if (verify.length !== this.HMAC_SIZE) throw new IllegalArgumentError("illegal verification tag size");
6974 this.verify = verify;
6975 }
6976 function hmac_reset(options) {
6977 options = options || {};
6978 var password = options.password;
6979 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
6980 this.result = null;
6981 this.hash.reset();
6982 if (password || is_string(password)) this.key = _hmac_key(this.hash, password);
6983 var ipad = new Uint8Array(this.key);
6984 for (var i = 0; i < ipad.length; ++i) ipad[i] ^= 54;
6985 this.hash.process(ipad);
6986 var verify = options.verify;
6987 if (verify !== undefined) {
6988 _hmac_init_verify.call(this, verify);
6989 } else {
6990 this.verify = null;
6991 }
6992 return this;
6993 }
6994 function hmac_sha256_reset(options) {
6995 options = options || {};
6996 var password = options.password;
6997 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
6998 this.result = null;
6999 this.hash.reset();
7000 if (password || is_string(password)) {
7001 this.key = _hmac_key(this.hash, password);
7002 this.hash.reset().asm.hmac_init(this.key[0] << 24 | this.key[1] << 16 | this.key[2] << 8 | this.key[3], this.key[4] << 24 | this.key[5] << 16 | this.key[6] << 8 | this.key[7], this.key[8] << 24 | this.key[9] << 16 | this.key[10] << 8 | this.key[11], this.key[12] << 24 | this.key[13] << 16 | this.key[14] << 8 | this.key[15], this.key[16] << 24 | this.key[17] << 16 | this.key[18] << 8 | this.key[19], this.key[20] << 24 | this.key[21] << 16 | this.key[22] << 8 | this.key[23], this.key[24] << 24 | this.key[25] << 16 | this.key[26] << 8 | this.key[27], this.key[28] << 24 | this.key[29] << 16 | this.key[30] << 8 | this.key[31], this.key[32] << 24 | this.key[33] << 16 | this.key[34] << 8 | this.key[35], this.key[36] << 24 | this.key[37] << 16 | this.key[38] << 8 | this.key[39], this.key[40] << 24 | this.key[41] << 16 | this.key[42] << 8 | this.key[43], this.key[44] << 24 | this.key[45] << 16 | this.key[46] << 8 | this.key[47], this.key[48] << 24 | this.key[49] << 16 | this.key[50] << 8 | this.key[51], this.key[52] << 24 | this.key[53] << 16 | this.key[54] << 8 | this.key[55], this.key[56] << 24 | this.key[57] << 16 | this.key[58] << 8 | this.key[59], this.key[60] << 24 | this.key[61] << 16 | this.key[62] << 8 | this.key[63]);
7003 } else {
7004 this.hash.asm.hmac_reset();
7005 }
7006 var verify = options.verify;
7007 if (verify !== undefined) {
7008 _hmac_init_verify.call(this, verify);
7009 } else {
7010 this.verify = null;
7011 }
7012 return this;
7013 }
7014 function hmac_sha512_reset(options) {
7015 options = options || {};
7016 var password = options.password;
7017 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
7018 this.result = null;
7019 this.hash.reset();
7020 if (password || is_string(password)) {
7021 this.key = _hmac_key(this.hash, password);
7022 this.hash.reset().asm.hmac_init(this.key[0] << 24 | this.key[1] << 16 | this.key[2] << 8 | this.key[3], this.key[4] << 24 | this.key[5] << 16 | this.key[6] << 8 | this.key[7], this.key[8] << 24 | this.key[9] << 16 | this.key[10] << 8 | this.key[11], this.key[12] << 24 | this.key[13] << 16 | this.key[14] << 8 | this.key[15], this.key[16] << 24 | this.key[17] << 16 | this.key[18] << 8 | this.key[19], this.key[20] << 24 | this.key[21] << 16 | this.key[22] << 8 | this.key[23], this.key[24] << 24 | this.key[25] << 16 | this.key[26] << 8 | this.key[27], this.key[28] << 24 | this.key[29] << 16 | this.key[30] << 8 | this.key[31], this.key[32] << 24 | this.key[33] << 16 | this.key[34] << 8 | this.key[35], this.key[36] << 24 | this.key[37] << 16 | this.key[38] << 8 | this.key[39], this.key[40] << 24 | this.key[41] << 16 | this.key[42] << 8 | this.key[43], this.key[44] << 24 | this.key[45] << 16 | this.key[46] << 8 | this.key[47], this.key[48] << 24 | this.key[49] << 16 | this.key[50] << 8 | this.key[51], this.key[52] << 24 | this.key[53] << 16 | this.key[54] << 8 | this.key[55], this.key[56] << 24 | this.key[57] << 16 | this.key[58] << 8 | this.key[59], this.key[60] << 24 | this.key[61] << 16 | this.key[62] << 8 | this.key[63], this.key[64] << 24 | this.key[65] << 16 | this.key[66] << 8 | this.key[67], this.key[68] << 24 | this.key[69] << 16 | this.key[70] << 8 | this.key[71], this.key[72] << 24 | this.key[73] << 16 | this.key[74] << 8 | this.key[75], this.key[76] << 24 | this.key[77] << 16 | this.key[78] << 8 | this.key[79], this.key[80] << 24 | this.key[81] << 16 | this.key[82] << 8 | this.key[83], this.key[84] << 24 | this.key[85] << 16 | this.key[86] << 8 | this.key[87], this.key[88] << 24 | this.key[89] << 16 | this.key[90] << 8 | this.key[91], this.key[92] << 24 | this.key[93] << 16 | this.key[94] << 8 | this.key[95], this.key[96] << 24 | this.key[97] << 16 | this.key[98] << 8 | this.key[99], this.key[100] << 24 | this.key[101] << 16 | this.key[102] << 8 | this.key[103], this.key[104] << 24 | this.key[105] << 16 | this.key[106] << 8 | this.key[107], this.key[108] << 24 | this.key[109] << 16 | this.key[110] << 8 | this.key[111], this.key[112] << 24 | this.key[113] << 16 | this.key[114] << 8 | this.key[115], this.key[116] << 24 | this.key[117] << 16 | this.key[118] << 8 | this.key[119], this.key[120] << 24 | this.key[121] << 16 | this.key[122] << 8 | this.key[123], this.key[124] << 24 | this.key[125] << 16 | this.key[126] << 8 | this.key[127]);
7023 } else {
7024 this.hash.asm.hmac_reset();
7025 }
7026 var verify = options.verify;
7027 if (verify !== undefined) {
7028 _hmac_init_verify.call(this, verify);
7029 } else {
7030 this.verify = null;
7031 }
7032 return this;
7033 }
7034 function hmac_process(data) {
7035 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7036 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7037 this.hash.process(data);
7038 return this;
7039 }
7040 function hmac_finish() {
7041 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7042 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7043 var inner_result = this.hash.finish().result;
7044 var opad = new Uint8Array(this.key);
7045 for (var i = 0; i < opad.length; ++i) opad[i] ^= 92;
7046 var verify = this.verify;
7047 var result = this.hash.reset().process(opad).process(inner_result).finish().result;
7048 if (verify) {
7049 if (verify.length === result.length) {
7050 var diff = 0;
7051 for (var i = 0; i < verify.length; i++) {
7052 diff |= verify[i] ^ result[i];
7053 }
7054 this.result = !diff;
7055 } else {
7056 this.result = false;
7057 }
7058 } else {
7059 this.result = result;
7060 }
7061 return this;
7062 }
7063 function hmac_sha256_finish() {
7064 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7065 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7066 var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap;
7067 asm.hmac_finish(hash.pos, hash.len, 0);
7068 var verify = this.verify;
7069 var result = new Uint8Array(_sha256_hash_size);
7070 result.set(heap.subarray(0, _sha256_hash_size));
7071 if (verify) {
7072 if (verify.length === result.length) {
7073 var diff = 0;
7074 for (var i = 0; i < verify.length; i++) {
7075 diff |= verify[i] ^ result[i];
7076 }
7077 this.result = !diff;
7078 } else {
7079 this.result = false;
7080 }
7081 } else {
7082 this.result = result;
7083 }
7084 return this;
7085 }
7086 function hmac_sha512_finish() {
7087 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7088 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7089 var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap;
7090 asm.hmac_finish(hash.pos, hash.len, 0);
7091 var verify = this.verify;
7092 var result = new Uint8Array(_sha512_hash_size);
7093 result.set(heap.subarray(0, _sha512_hash_size));
7094 if (verify) {
7095 if (verify.length === result.length) {
7096 var diff = 0;
7097 for (var i = 0; i < verify.length; i++) {
7098 diff |= verify[i] ^ result[i];
7099 }
7100 this.result = !diff;
7101 } else {
7102 this.result = false;
7103 }
7104 } else {
7105 this.result = result;
7106 }
7107 return this;
7108 }
7109 var hmac_prototype = hmac_constructor.prototype;
7110 hmac_prototype.reset = hmac_reset;
7111 hmac_prototype.process = hmac_process;
7112 hmac_prototype.finish = hmac_finish;
7113 hmac_sha256_constructor.BLOCK_SIZE = sha256_constructor.BLOCK_SIZE;
7114 hmac_sha256_constructor.HMAC_SIZE = sha256_constructor.HASH_SIZE;
7115 var hmac_sha256_prototype = hmac_sha256_constructor.prototype;
7116 hmac_sha256_prototype.reset = hmac_sha256_reset;
7117 hmac_sha256_prototype.process = hmac_process;
7118 hmac_sha256_prototype.finish = hmac_sha256_finish;
7119 hmac_sha512_constructor.BLOCK_SIZE = sha512_constructor.BLOCK_SIZE;
7120 hmac_sha512_constructor.HMAC_SIZE = sha512_constructor.HASH_SIZE;
7121 var hmac_sha512_prototype = hmac_sha512_constructor.prototype;
7122 hmac_sha512_prototype.reset = hmac_sha512_reset;
7123 hmac_sha512_prototype.process = hmac_process;
7124 hmac_sha512_prototype.finish = hmac_sha512_finish;
7125 function pbkdf2_constructor(options) {
7126 options = options || {};
7127 if (!options.hmac) throw new SyntaxError("option 'hmac' is required");
7128 if (!options.hmac.HMAC_SIZE) throw new SyntaxError("option 'hmac' supplied doesn't seem to be a valid HMAC function");
7129 this.hmac = options.hmac;
7130 this.count = options.count || 4096;
7131 this.length = options.length || this.hmac.HMAC_SIZE;
7132 this.result = null;
7133 var password = options.password;
7134 if (password || is_string(password)) this.reset(options);
7135 return this;
7136 }
7137 function pbkdf2_hmac_sha256_constructor(options) {
7138 options = options || {};
7139 if (!(options.hmac instanceof hmac_sha256_constructor)) options.hmac = new hmac_sha256_constructor(options);
7140 pbkdf2_constructor.call(this, options);
7141 return this;
7142 }
7143 function pbkdf2_hmac_sha512_constructor(options) {
7144 options = options || {};
7145 if (!(options.hmac instanceof hmac_sha512_constructor)) options.hmac = new hmac_sha512_constructor(options);
7146 pbkdf2_constructor.call(this, options);
7147 return this;
7148 }
7149 function pbkdf2_reset(options) {
7150 this.result = null;
7151 this.hmac.reset(options);
7152 return this;
7153 }
7154 function pbkdf2_generate(salt, count, length) {
7155 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7156 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7157 count = count || this.count;
7158 length = length || this.length;
7159 this.result = new Uint8Array(length);
7160 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7161 for (var i = 1; i <= blocks; ++i) {
7162 var j = (i - 1) * this.hmac.HMAC_SIZE;
7163 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7164 var tmp = new Uint8Array(this.hmac.reset().process(salt).process(new Uint8Array([ i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, i & 255 ])).finish().result);
7165 this.result.set(tmp.subarray(0, l), j);
7166 for (var k = 1; k < count; ++k) {
7167 tmp = new Uint8Array(this.hmac.reset().process(tmp).finish().result);
7168 for (var r = 0; r < l; ++r) this.result[j + r] ^= tmp[r];
7169 }
7170 }
7171 return this;
7172 }
7173 function pbkdf2_hmac_sha256_generate(salt, count, length) {
7174 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7175 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7176 count = count || this.count;
7177 length = length || this.length;
7178 this.result = new Uint8Array(length);
7179 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7180 for (var i = 1; i <= blocks; ++i) {
7181 var j = (i - 1) * this.hmac.HMAC_SIZE;
7182 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7183 this.hmac.reset().process(salt);
7184 this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0);
7185 this.result.set(this.hmac.hash.heap.subarray(0, l), j);
7186 }
7187 return this;
7188 }
7189 function pbkdf2_hmac_sha512_generate(salt, count, length) {
7190 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7191 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7192 count = count || this.count;
7193 length = length || this.length;
7194 this.result = new Uint8Array(length);
7195 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7196 for (var i = 1; i <= blocks; ++i) {
7197 var j = (i - 1) * this.hmac.HMAC_SIZE;
7198 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7199 this.hmac.reset().process(salt);
7200 this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0);
7201 this.result.set(this.hmac.hash.heap.subarray(0, l), j);
7202 }
7203 return this;
7204 }
7205 var pbkdf2_prototype = pbkdf2_constructor.prototype;
7206 pbkdf2_prototype.reset = pbkdf2_reset;
7207 pbkdf2_prototype.generate = pbkdf2_generate;
7208 var pbkdf2_hmac_sha256_prototype = pbkdf2_hmac_sha256_constructor.prototype;
7209 pbkdf2_hmac_sha256_prototype.reset = pbkdf2_reset;
7210 pbkdf2_hmac_sha256_prototype.generate = pbkdf2_hmac_sha256_generate;
7211 var pbkdf2_hmac_sha512_prototype = pbkdf2_hmac_sha512_constructor.prototype;
7212 pbkdf2_hmac_sha512_prototype.reset = pbkdf2_reset;
7213 pbkdf2_hmac_sha512_prototype.generate = pbkdf2_hmac_sha512_generate;
7214 global.IllegalStateError = IllegalStateError;
7215 global.IllegalArgumentError = IllegalArgumentError;
7216 global.SecurityError = SecurityError;
7217 exports.string_to_bytes = string_to_bytes;
7218 exports.hex_to_bytes = hex_to_bytes;
7219 exports.base64_to_bytes = base64_to_bytes;
7220 exports.bytes_to_string = bytes_to_string;
7221 exports.bytes_to_hex = bytes_to_hex;
7222 exports.bytes_to_base64 = bytes_to_base64;
7223 var SHA256_instance = new sha256_constructor({
7224 heapSize: 1048576
7225 });
7226 function sha256_bytes(data) {
7227 if (data === undefined) throw new SyntaxError("data required");
7228 return SHA256_instance.reset().process(data).finish().result;
7229 }
7230 function sha256_hex(data) {
7231 var result = sha256_bytes(data.toUTF8Array());
7232 return bytes_to_hex(result);
7233 }
7234 function sha256_base64(data) {
7235 var result = sha256_bytes(data);
7236 return bytes_to_base64(result);
7237 }
7238 exports.SHA256 = {
7239 bytes: sha256_bytes,
7240 hex: sha256_hex,
7241 base64: sha256_base64
7242 };
7243 var SHA512_instance = new sha512_constructor({
7244 heapSize: 1048576
7245 });
7246 function sha512_bytes(data) {
7247 if (data === undefined) throw new SyntaxError("data required");
7248 return SHA512_instance.reset().process(data).finish().result;
7249 }
7250 function sha512_hex(data) {
7251 var result = sha512_bytes(data);
7252 return bytes_to_hex(result);
7253 }
7254 function sha512_base64(data) {
7255 var result = sha512_bytes(data);
7256 return bytes_to_base64(result);
7257 }
7258 exports.SHA512 = {
7259 bytes: sha512_bytes,
7260 hex: sha512_hex,
7261 base64: sha512_base64
7262 };
7263 var hmac_sha256_instance = new hmac_sha256_constructor({
7264 hash: SHA256_instance
7265 });
7266 function hmac_sha256_bytes(data, password) {
7267 if (data === undefined) throw new SyntaxError("data required");
7268 if (password === undefined) throw new SyntaxError("password required");
7269 return hmac_sha256_instance.reset({
7270 password: password
7271 }).process(data).finish().result;
7272 }
7273 function hmac_sha256_hex(data, password) {
7274 var result = hmac_sha256_bytes(data, password);
7275 return bytes_to_hex(result);
7276 }
7277 function hmac_sha256_base64(data, password) {
7278 var result = hmac_sha256_bytes(data, password);
7279 return bytes_to_base64(result);
7280 }
7281 exports.HMAC = exports.HMAC_SHA256 = {
7282 bytes: hmac_sha256_bytes,
7283 hex: hmac_sha256_hex,
7284 base64: hmac_sha256_base64
7285 };
7286 var hmac_sha512_instance = new hmac_sha512_constructor({
7287 hash: SHA512_instance
7288 });
7289 function hmac_sha512_bytes(data, password) {
7290 if (data === undefined) throw new SyntaxError("data required");
7291 if (password === undefined) throw new SyntaxError("password required");
7292 return hmac_sha512_instance.reset({
7293 password: password
7294 }).process(data).finish().result;
7295 }
7296 function hmac_sha512_hex(data, password) {
7297 var result = hmac_sha512_bytes(data, password);
7298 return bytes_to_hex(result);
7299 }
7300 function hmac_sha512_base64(data, password) {
7301 var result = hmac_sha512_bytes(data, password);
7302 return bytes_to_base64(result);
7303 }
7304 exports.HMAC_SHA512 = {
7305 bytes: hmac_sha512_bytes,
7306 hex: hmac_sha512_hex,
7307 base64: hmac_sha512_base64
7308 };
7309 var pbkdf2_hmac_sha256_instance = new pbkdf2_hmac_sha256_constructor({
7310 hmac: hmac_sha256_instance
7311 });
7312 function pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen) {
7313 if (password === undefined) throw new SyntaxError("password required");
7314 if (salt === undefined) throw new SyntaxError("salt required");
7315 return pbkdf2_hmac_sha256_instance.reset({
7316 password: password.toUTF8Array()
7317 }).generate(salt.toUTF8Array(), iterations, dklen).result;
7318 }
7319 function pbkdf2_hmac_sha256_hex(password, salt, iterations, dklen) {
7320 var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen);
7321 return bytes_to_hex(result);
7322 }
7323 function pbkdf2_hmac_sha256_base64(password, salt, iterations, dklen) {
7324 var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen);
7325 return bytes_to_base64(result);
7326 }
7327 exports.PBKDF2 = exports.PBKDF2_HMAC_SHA256 = {
7328 bytes: pbkdf2_hmac_sha256_bytes,
7329 hex: pbkdf2_hmac_sha256_hex,
7330 base64: pbkdf2_hmac_sha256_base64
7331 };
7332 var pbkdf2_hmac_sha512_instance = new pbkdf2_hmac_sha512_constructor({
7333 hmac: hmac_sha512_instance
7334 });
7335 function pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen) {
7336 if (password === undefined) throw new SyntaxError("password required");
7337 if (salt === undefined) throw new SyntaxError("salt required");
7338 return pbkdf2_hmac_sha512_instance.reset({
7339 password: password.toUTF8Array()
7340 }).generate(salt.toUTF8Array(), iterations, dklen).result;
7341 }
7342 function pbkdf2_hmac_sha512_hex(password, salt, iterations, dklen) {
7343 var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen);
7344 return bytes_to_hex(result);
7345 }
7346 function pbkdf2_hmac_sha512_base64(password, salt, iterations, dklen) {
7347 var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen);
7348 return bytes_to_base64(result);
7349 }
7350 exports.PBKDF2_HMAC_SHA512 = {
7351 bytes: pbkdf2_hmac_sha512_bytes,
7352 hex: pbkdf2_hmac_sha512_hex,
7353 base64: pbkdf2_hmac_sha512_base64
7354 };
7355 var cbc_aes_instance = new cbc_aes_constructor({
7356 heapSize: 1048576
7357 });
7358 function cbc_aes_encrypt_bytes(data, key, padding, iv) {
7359 if (data === undefined) throw new SyntaxError("data required");
7360 if (key === undefined) throw new SyntaxError("key required");
7361 return cbc_aes_instance.reset({
7362 key: key,
7363 padding: padding,
7364 iv: iv
7365 }).encrypt(data).result;
7366 }
7367 function cbc_aes_decrypt_bytes(data, key, padding, iv) {
7368 if (data === undefined) throw new SyntaxError("data required");
7369 if (key === undefined) throw new SyntaxError("key required");
7370 return cbc_aes_instance.reset({
7371 key: key,
7372 padding: padding,
7373 iv: iv
7374 }).decrypt(data).result;
7375 }
7376 exports.AES = exports.AES_CBC = {
7377 encrypt: cbc_aes_encrypt_bytes,
7378 decrypt: cbc_aes_decrypt_bytes
7379 };
7380 var ccm_aes_instance = new ccm_aes_constructor({
7381 heap: cbc_aes_instance.heap,
7382 asm: cbc_aes_instance.asm
7383 });
7384 function ccm_aes_encrypt_bytes(data, key, nonce, adata, tagSize) {
7385 if (data === undefined) throw new SyntaxError("data required");
7386 if (key === undefined) throw new SyntaxError("key required");
7387 if (nonce === undefined) throw new SyntaxError("nonce required");
7388 var dataLength = data.byteLength || data.length || 0;
7389 return ccm_aes_instance.reset({
7390 key: key,
7391 nonce: nonce,
7392 adata: adata,
7393 tagSize: tagSize,
7394 dataLength: dataLength
7395 }).encrypt(data).result;
7396 }
7397 function ccm_aes_decrypt_bytes(data, key, nonce, adata, tagSize) {
7398 if (data === undefined) throw new SyntaxError("data required");
7399 if (key === undefined) throw new SyntaxError("key required");
7400 if (nonce === undefined) throw new SyntaxError("nonce required");
7401 var dataLength = data.byteLength || data.length || 0;
7402 tagSize = tagSize || _aes_block_size;
7403 return ccm_aes_instance.reset({
7404 key: key,
7405 nonce: nonce,
7406 adata: adata,
7407 tagSize: tagSize,
7408 dataLength: dataLength - tagSize
7409 }).decrypt(data).result;
7410 }
7411 exports.AES_CCM = {
7412 encrypt: ccm_aes_encrypt_bytes,
7413 decrypt: ccm_aes_decrypt_bytes
7414 };
7415 var cfb_aes_instance = new cfb_aes_constructor({
7416 heap: cbc_aes_instance.heap,
7417 asm: cbc_aes_instance.asm
7418 });
7419 function cfb_aes_encrypt_bytes(data, key, padding, iv) {
7420 if (data === undefined) throw new SyntaxError("data required");
7421 if (key === undefined) throw new SyntaxError("key required");
7422 return cfb_aes_instance.reset({
7423 key: key,
7424 padding: padding,
7425 iv: iv
7426 }).encrypt(data).result;
7427 }
7428 function cfb_aes_decrypt_bytes(data, key, padding, iv) {
7429 if (data === undefined) throw new SyntaxError("data required");
7430 if (key === undefined) throw new SyntaxError("key required");
7431 return cfb_aes_instance.reset({
7432 key: key,
7433 padding: padding,
7434 iv: iv
7435 }).decrypt(data).result;
7436 }
7437 exports.AES_CFB = {
7438 encrypt: cfb_aes_encrypt_bytes,
7439 decrypt: cfb_aes_decrypt_bytes
7440 };
7441 var cfb_aes_decrypt_instance = new cfb_aes_decrypt_constructor({
7442 heap: cbc_aes_instance.heap,
7443 asm: cbc_aes_instance.asm
7444 });
7445 function cfb_aes_decrypt_init(key, padding, iv) {
7446 if (key === undefined) throw new SyntaxError("key required");
7447 return cfb_aes_decrypt_instance.reset({
7448 key: key,
7449 padding: padding,
7450 iv: iv
7451 });
7452 }
7453 exports.AES_CFB = exports.AES_CFB || {};
7454 exports.AES_CFB.decryptor = {
7455 init: cfb_aes_decrypt_init
7456 };
7457 })({}, function() {
7458 return this;
7459 }());
7460
7461 String.prototype.toUTF8Array = function() {
7462 var str = this;
7463 var utf8 = [];
7464 for (var i=0; i < str.length; i++) {
7465 var charcode = str.charCodeAt(i);
7466 if (charcode < 0x80) utf8.push(charcode);
7467 else if (charcode < 0x800) {
7468 utf8.push(0xc0 | (charcode >> 6),
7469 0x80 | (charcode & 0x3f));
7470 }
7471 else if (charcode < 0xd800 || charcode >= 0xe000) {
7472 utf8.push(0xe0 | (charcode >> 12),
7473 0x80 | ((charcode>>6) & 0x3f),
7474 0x80 | (charcode & 0x3f));
7475 }
7476 // surrogate pair
7477 else {
7478 i++;
7479 // UTF-16 encodes 0x10000-0x10FFFF by
7480 // subtracting 0x10000 and splitting the
7481 // 20 bits of 0x0-0xFFFFF into two halves
7482 charcode = 0x10000 + (((charcode & 0x3ff)<<10)
7483 | (str.charCodeAt(i) & 0x3ff))
7484 utf8.push(0xf0 | (charcode >>18),
7485 0x80 | ((charcode>>12) & 0x3f),
7486 0x80 | ((charcode>>6) & 0x3f),
7487 0x80 | (charcode & 0x3f));
7488 }
7489 }
7490 return new Uint8Array(utf8);
7491 }