]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blob - src/js/asmcrypto.js
Move from private repo
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / js / asmcrypto.js
1 // INCLUDE ASMCRYPTO
2 // https://rawgit.com/tresorit/asmcrypto.js/598a1098504f1b2d0e615bc51dd8404afd2d338b/asmcrypto.js
3 // Provides PBKDF2 functionality
4 // It's faster than CryptoJS
5 // Couldn't get SJCL working as desired
6
7
8 (function(exports, global) {
9 "use strict";
10 global["asmCrypto"] = exports;
11 function string_to_bytes(str) {
12 var i, len = str.length, arr = new Uint8Array(len);
13 for (i = 0; i < len; i += 1) {
14 arr[i] = str.charCodeAt(i);
15 }
16 return arr;
17 }
18 function hex_to_bytes(str) {
19 var arr = [], len = str.length, i;
20 if (len & 1) {
21 str = "0" + str;
22 len++;
23 }
24 for (i = 0; i < len; i += 2) {
25 arr.push(parseInt(str.substr(i, 2), 16));
26 }
27 return new Uint8Array(arr);
28 }
29 function base64_to_bytes(str) {
30 return string_to_bytes(atob(str));
31 }
32 function bytes_to_string(arr) {
33 var str = "";
34 for (var i = 0; i < arr.length; i++) str += String.fromCharCode(arr[i]);
35 return str;
36 }
37 function bytes_to_hex(arr) {
38 var sz = (arr.byteLength || arr.length) / arr.length, str = "";
39 for (var i = 0; i < arr.length; i++) {
40 var h = arr[i].toString(16);
41 if (h.length < 2 * sz) str += "00000000000000".substr(0, 2 * sz - h.length);
42 str += h;
43 }
44 return str;
45 }
46 function bytes_to_base64(arr) {
47 return btoa(bytes_to_string(arr));
48 }
49 function pow2_ceil(a) {
50 a -= 1;
51 a |= a >>> 1;
52 a |= a >>> 2;
53 a |= a >>> 4;
54 a |= a >>> 8;
55 a |= a >>> 16;
56 a += 1;
57 return a;
58 }
59 function is_number(a) {
60 return typeof a === "number";
61 }
62 function is_string(a) {
63 return typeof a === "string";
64 }
65 function is_buffer(a) {
66 return a instanceof ArrayBuffer;
67 }
68 function is_bytes(a) {
69 return a instanceof Uint8Array;
70 }
71 function is_typed_array(a) {
72 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;
73 }
74 function IllegalStateError() {
75 Error.apply(this, arguments);
76 }
77 IllegalStateError.prototype = new Error();
78 function IllegalArgumentError() {
79 Error.apply(this, arguments);
80 }
81 IllegalArgumentError.prototype = new Error();
82 function SecurityError() {
83 Error.apply(this, arguments);
84 }
85 IllegalArgumentError.prototype = new Error();
86 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 ];
87 var _aes_heap_start = 2048;
88 function _aes_asm(stdlib, foreign, buffer) {
89 // Closure Compiler warning - commented out
90 //"use asm";
91 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;
92 var keySize = 0;
93 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;
94 var HEAP = new stdlib.Uint8Array(buffer);
95 function _expand_key_128() {
96 var sbox = 0;
97 R10 = R00 ^ HEAP[sbox | R0D] ^ 1;
98 R11 = R01 ^ HEAP[sbox | R0E];
99 R12 = R02 ^ HEAP[sbox | R0F];
100 R13 = R03 ^ HEAP[sbox | R0C];
101 R14 = R04 ^ R10;
102 R15 = R05 ^ R11;
103 R16 = R06 ^ R12;
104 R17 = R07 ^ R13;
105 R18 = R08 ^ R14;
106 R19 = R09 ^ R15;
107 R1A = R0A ^ R16;
108 R1B = R0B ^ R17;
109 R1C = R0C ^ R18;
110 R1D = R0D ^ R19;
111 R1E = R0E ^ R1A;
112 R1F = R0F ^ R1B;
113 R20 = R10 ^ HEAP[sbox | R1D] ^ 2;
114 R21 = R11 ^ HEAP[sbox | R1E];
115 R22 = R12 ^ HEAP[sbox | R1F];
116 R23 = R13 ^ HEAP[sbox | R1C];
117 R24 = R14 ^ R20;
118 R25 = R15 ^ R21;
119 R26 = R16 ^ R22;
120 R27 = R17 ^ R23;
121 R28 = R18 ^ R24;
122 R29 = R19 ^ R25;
123 R2A = R1A ^ R26;
124 R2B = R1B ^ R27;
125 R2C = R1C ^ R28;
126 R2D = R1D ^ R29;
127 R2E = R1E ^ R2A;
128 R2F = R1F ^ R2B;
129 R30 = R20 ^ HEAP[sbox | R2D] ^ 4;
130 R31 = R21 ^ HEAP[sbox | R2E];
131 R32 = R22 ^ HEAP[sbox | R2F];
132 R33 = R23 ^ HEAP[sbox | R2C];
133 R34 = R24 ^ R30;
134 R35 = R25 ^ R31;
135 R36 = R26 ^ R32;
136 R37 = R27 ^ R33;
137 R38 = R28 ^ R34;
138 R39 = R29 ^ R35;
139 R3A = R2A ^ R36;
140 R3B = R2B ^ R37;
141 R3C = R2C ^ R38;
142 R3D = R2D ^ R39;
143 R3E = R2E ^ R3A;
144 R3F = R2F ^ R3B;
145 R40 = R30 ^ HEAP[sbox | R3D] ^ 8;
146 R41 = R31 ^ HEAP[sbox | R3E];
147 R42 = R32 ^ HEAP[sbox | R3F];
148 R43 = R33 ^ HEAP[sbox | R3C];
149 R44 = R34 ^ R40;
150 R45 = R35 ^ R41;
151 R46 = R36 ^ R42;
152 R47 = R37 ^ R43;
153 R48 = R38 ^ R44;
154 R49 = R39 ^ R45;
155 R4A = R3A ^ R46;
156 R4B = R3B ^ R47;
157 R4C = R3C ^ R48;
158 R4D = R3D ^ R49;
159 R4E = R3E ^ R4A;
160 R4F = R3F ^ R4B;
161 R50 = R40 ^ HEAP[sbox | R4D] ^ 16;
162 R51 = R41 ^ HEAP[sbox | R4E];
163 R52 = R42 ^ HEAP[sbox | R4F];
164 R53 = R43 ^ HEAP[sbox | R4C];
165 R54 = R44 ^ R50;
166 R55 = R45 ^ R51;
167 R56 = R46 ^ R52;
168 R57 = R47 ^ R53;
169 R58 = R48 ^ R54;
170 R59 = R49 ^ R55;
171 R5A = R4A ^ R56;
172 R5B = R4B ^ R57;
173 R5C = R4C ^ R58;
174 R5D = R4D ^ R59;
175 R5E = R4E ^ R5A;
176 R5F = R4F ^ R5B;
177 R60 = R50 ^ HEAP[sbox | R5D] ^ 32;
178 R61 = R51 ^ HEAP[sbox | R5E];
179 R62 = R52 ^ HEAP[sbox | R5F];
180 R63 = R53 ^ HEAP[sbox | R5C];
181 R64 = R54 ^ R60;
182 R65 = R55 ^ R61;
183 R66 = R56 ^ R62;
184 R67 = R57 ^ R63;
185 R68 = R58 ^ R64;
186 R69 = R59 ^ R65;
187 R6A = R5A ^ R66;
188 R6B = R5B ^ R67;
189 R6C = R5C ^ R68;
190 R6D = R5D ^ R69;
191 R6E = R5E ^ R6A;
192 R6F = R5F ^ R6B;
193 R70 = R60 ^ HEAP[sbox | R6D] ^ 64;
194 R71 = R61 ^ HEAP[sbox | R6E];
195 R72 = R62 ^ HEAP[sbox | R6F];
196 R73 = R63 ^ HEAP[sbox | R6C];
197 R74 = R64 ^ R70;
198 R75 = R65 ^ R71;
199 R76 = R66 ^ R72;
200 R77 = R67 ^ R73;
201 R78 = R68 ^ R74;
202 R79 = R69 ^ R75;
203 R7A = R6A ^ R76;
204 R7B = R6B ^ R77;
205 R7C = R6C ^ R78;
206 R7D = R6D ^ R79;
207 R7E = R6E ^ R7A;
208 R7F = R6F ^ R7B;
209 R80 = R70 ^ HEAP[sbox | R7D] ^ 128;
210 R81 = R71 ^ HEAP[sbox | R7E];
211 R82 = R72 ^ HEAP[sbox | R7F];
212 R83 = R73 ^ HEAP[sbox | R7C];
213 R84 = R74 ^ R80;
214 R85 = R75 ^ R81;
215 R86 = R76 ^ R82;
216 R87 = R77 ^ R83;
217 R88 = R78 ^ R84;
218 R89 = R79 ^ R85;
219 R8A = R7A ^ R86;
220 R8B = R7B ^ R87;
221 R8C = R7C ^ R88;
222 R8D = R7D ^ R89;
223 R8E = R7E ^ R8A;
224 R8F = R7F ^ R8B;
225 R90 = R80 ^ HEAP[sbox | R8D] ^ 27;
226 R91 = R81 ^ HEAP[sbox | R8E];
227 R92 = R82 ^ HEAP[sbox | R8F];
228 R93 = R83 ^ HEAP[sbox | R8C];
229 R94 = R84 ^ R90;
230 R95 = R85 ^ R91;
231 R96 = R86 ^ R92;
232 R97 = R87 ^ R93;
233 R98 = R88 ^ R94;
234 R99 = R89 ^ R95;
235 R9A = R8A ^ R96;
236 R9B = R8B ^ R97;
237 R9C = R8C ^ R98;
238 R9D = R8D ^ R99;
239 R9E = R8E ^ R9A;
240 R9F = R8F ^ R9B;
241 RA0 = R90 ^ HEAP[sbox | R9D] ^ 54;
242 RA1 = R91 ^ HEAP[sbox | R9E];
243 RA2 = R92 ^ HEAP[sbox | R9F];
244 RA3 = R93 ^ HEAP[sbox | R9C];
245 RA4 = R94 ^ RA0;
246 RA5 = R95 ^ RA1;
247 RA6 = R96 ^ RA2;
248 RA7 = R97 ^ RA3;
249 RA8 = R98 ^ RA4;
250 RA9 = R99 ^ RA5;
251 RAA = R9A ^ RA6;
252 RAB = R9B ^ RA7;
253 RAC = R9C ^ RA8;
254 RAD = R9D ^ RA9;
255 RAE = R9E ^ RAA;
256 RAF = R9F ^ RAB;
257 }
258 function _expand_key_256() {
259 var sbox = 0;
260 R20 = R00 ^ HEAP[sbox | R1D] ^ 1;
261 R21 = R01 ^ HEAP[sbox | R1E];
262 R22 = R02 ^ HEAP[sbox | R1F];
263 R23 = R03 ^ HEAP[sbox | R1C];
264 R24 = R04 ^ R20;
265 R25 = R05 ^ R21;
266 R26 = R06 ^ R22;
267 R27 = R07 ^ R23;
268 R28 = R08 ^ R24;
269 R29 = R09 ^ R25;
270 R2A = R0A ^ R26;
271 R2B = R0B ^ R27;
272 R2C = R0C ^ R28;
273 R2D = R0D ^ R29;
274 R2E = R0E ^ R2A;
275 R2F = R0F ^ R2B;
276 R30 = R10 ^ HEAP[sbox | R2C];
277 R31 = R11 ^ HEAP[sbox | R2D];
278 R32 = R12 ^ HEAP[sbox | R2E];
279 R33 = R13 ^ HEAP[sbox | R2F];
280 R34 = R14 ^ R30;
281 R35 = R15 ^ R31;
282 R36 = R16 ^ R32;
283 R37 = R17 ^ R33;
284 R38 = R18 ^ R34;
285 R39 = R19 ^ R35;
286 R3A = R1A ^ R36;
287 R3B = R1B ^ R37;
288 R3C = R1C ^ R38;
289 R3D = R1D ^ R39;
290 R3E = R1E ^ R3A;
291 R3F = R1F ^ R3B;
292 R40 = R20 ^ HEAP[sbox | R3D] ^ 2;
293 R41 = R21 ^ HEAP[sbox | R3E];
294 R42 = R22 ^ HEAP[sbox | R3F];
295 R43 = R23 ^ HEAP[sbox | R3C];
296 R44 = R24 ^ R40;
297 R45 = R25 ^ R41;
298 R46 = R26 ^ R42;
299 R47 = R27 ^ R43;
300 R48 = R28 ^ R44;
301 R49 = R29 ^ R45;
302 R4A = R2A ^ R46;
303 R4B = R2B ^ R47;
304 R4C = R2C ^ R48;
305 R4D = R2D ^ R49;
306 R4E = R2E ^ R4A;
307 R4F = R2F ^ R4B;
308 R50 = R30 ^ HEAP[sbox | R4C];
309 R51 = R31 ^ HEAP[sbox | R4D];
310 R52 = R32 ^ HEAP[sbox | R4E];
311 R53 = R33 ^ HEAP[sbox | R4F];
312 R54 = R34 ^ R50;
313 R55 = R35 ^ R51;
314 R56 = R36 ^ R52;
315 R57 = R37 ^ R53;
316 R58 = R38 ^ R54;
317 R59 = R39 ^ R55;
318 R5A = R3A ^ R56;
319 R5B = R3B ^ R57;
320 R5C = R3C ^ R58;
321 R5D = R3D ^ R59;
322 R5E = R3E ^ R5A;
323 R5F = R3F ^ R5B;
324 R60 = R40 ^ HEAP[sbox | R5D] ^ 4;
325 R61 = R41 ^ HEAP[sbox | R5E];
326 R62 = R42 ^ HEAP[sbox | R5F];
327 R63 = R43 ^ HEAP[sbox | R5C];
328 R64 = R44 ^ R60;
329 R65 = R45 ^ R61;
330 R66 = R46 ^ R62;
331 R67 = R47 ^ R63;
332 R68 = R48 ^ R64;
333 R69 = R49 ^ R65;
334 R6A = R4A ^ R66;
335 R6B = R4B ^ R67;
336 R6C = R4C ^ R68;
337 R6D = R4D ^ R69;
338 R6E = R4E ^ R6A;
339 R6F = R4F ^ R6B;
340 R70 = R50 ^ HEAP[sbox | R6C];
341 R71 = R51 ^ HEAP[sbox | R6D];
342 R72 = R52 ^ HEAP[sbox | R6E];
343 R73 = R53 ^ HEAP[sbox | R6F];
344 R74 = R54 ^ R70;
345 R75 = R55 ^ R71;
346 R76 = R56 ^ R72;
347 R77 = R57 ^ R73;
348 R78 = R58 ^ R74;
349 R79 = R59 ^ R75;
350 R7A = R5A ^ R76;
351 R7B = R5B ^ R77;
352 R7C = R5C ^ R78;
353 R7D = R5D ^ R79;
354 R7E = R5E ^ R7A;
355 R7F = R5F ^ R7B;
356 R80 = R60 ^ HEAP[sbox | R7D] ^ 8;
357 R81 = R61 ^ HEAP[sbox | R7E];
358 R82 = R62 ^ HEAP[sbox | R7F];
359 R83 = R63 ^ HEAP[sbox | R7C];
360 R84 = R64 ^ R80;
361 R85 = R65 ^ R81;
362 R86 = R66 ^ R82;
363 R87 = R67 ^ R83;
364 R88 = R68 ^ R84;
365 R89 = R69 ^ R85;
366 R8A = R6A ^ R86;
367 R8B = R6B ^ R87;
368 R8C = R6C ^ R88;
369 R8D = R6D ^ R89;
370 R8E = R6E ^ R8A;
371 R8F = R6F ^ R8B;
372 R90 = R70 ^ HEAP[sbox | R8C];
373 R91 = R71 ^ HEAP[sbox | R8D];
374 R92 = R72 ^ HEAP[sbox | R8E];
375 R93 = R73 ^ HEAP[sbox | R8F];
376 R94 = R74 ^ R90;
377 R95 = R75 ^ R91;
378 R96 = R76 ^ R92;
379 R97 = R77 ^ R93;
380 R98 = R78 ^ R94;
381 R99 = R79 ^ R95;
382 R9A = R7A ^ R96;
383 R9B = R7B ^ R97;
384 R9C = R7C ^ R98;
385 R9D = R7D ^ R99;
386 R9E = R7E ^ R9A;
387 R9F = R7F ^ R9B;
388 RA0 = R80 ^ HEAP[sbox | R9D] ^ 16;
389 RA1 = R81 ^ HEAP[sbox | R9E];
390 RA2 = R82 ^ HEAP[sbox | R9F];
391 RA3 = R83 ^ HEAP[sbox | R9C];
392 RA4 = R84 ^ RA0;
393 RA5 = R85 ^ RA1;
394 RA6 = R86 ^ RA2;
395 RA7 = R87 ^ RA3;
396 RA8 = R88 ^ RA4;
397 RA9 = R89 ^ RA5;
398 RAA = R8A ^ RA6;
399 RAB = R8B ^ RA7;
400 RAC = R8C ^ RA8;
401 RAD = R8D ^ RA9;
402 RAE = R8E ^ RAA;
403 RAF = R8F ^ RAB;
404 RB0 = R90 ^ HEAP[sbox | RAC];
405 RB1 = R91 ^ HEAP[sbox | RAD];
406 RB2 = R92 ^ HEAP[sbox | RAE];
407 RB3 = R93 ^ HEAP[sbox | RAF];
408 RB4 = R94 ^ RB0;
409 RB5 = R95 ^ RB1;
410 RB6 = R96 ^ RB2;
411 RB7 = R97 ^ RB3;
412 RB8 = R98 ^ RB4;
413 RB9 = R99 ^ RB5;
414 RBA = R9A ^ RB6;
415 RBB = R9B ^ RB7;
416 RBC = R9C ^ RB8;
417 RBD = R9D ^ RB9;
418 RBE = R9E ^ RBA;
419 RBF = R9F ^ RBB;
420 RC0 = RA0 ^ HEAP[sbox | RBD] ^ 32;
421 RC1 = RA1 ^ HEAP[sbox | RBE];
422 RC2 = RA2 ^ HEAP[sbox | RBF];
423 RC3 = RA3 ^ HEAP[sbox | RBC];
424 RC4 = RA4 ^ RC0;
425 RC5 = RA5 ^ RC1;
426 RC6 = RA6 ^ RC2;
427 RC7 = RA7 ^ RC3;
428 RC8 = RA8 ^ RC4;
429 RC9 = RA9 ^ RC5;
430 RCA = RAA ^ RC6;
431 RCB = RAB ^ RC7;
432 RCC = RAC ^ RC8;
433 RCD = RAD ^ RC9;
434 RCE = RAE ^ RCA;
435 RCF = RAF ^ RCB;
436 RD0 = RB0 ^ HEAP[sbox | RCC];
437 RD1 = RB1 ^ HEAP[sbox | RCD];
438 RD2 = RB2 ^ HEAP[sbox | RCE];
439 RD3 = RB3 ^ HEAP[sbox | RCF];
440 RD4 = RB4 ^ RD0;
441 RD5 = RB5 ^ RD1;
442 RD6 = RB6 ^ RD2;
443 RD7 = RB7 ^ RD3;
444 RD8 = RB8 ^ RD4;
445 RD9 = RB9 ^ RD5;
446 RDA = RBA ^ RD6;
447 RDB = RBB ^ RD7;
448 RDC = RBC ^ RD8;
449 RDD = RBD ^ RD9;
450 RDE = RBE ^ RDA;
451 RDF = RBF ^ RDB;
452 RE0 = RC0 ^ HEAP[sbox | RDD] ^ 64;
453 RE1 = RC1 ^ HEAP[sbox | RDE];
454 RE2 = RC2 ^ HEAP[sbox | RDF];
455 RE3 = RC3 ^ HEAP[sbox | RDC];
456 RE4 = RC4 ^ RE0;
457 RE5 = RC5 ^ RE1;
458 RE6 = RC6 ^ RE2;
459 RE7 = RC7 ^ RE3;
460 RE8 = RC8 ^ RE4;
461 RE9 = RC9 ^ RE5;
462 REA = RCA ^ RE6;
463 REB = RCB ^ RE7;
464 REC = RCC ^ RE8;
465 RED = RCD ^ RE9;
466 REE = RCE ^ REA;
467 REF = RCF ^ REB;
468 }
469 function _encrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
470 s0 = s0 | 0;
471 s1 = s1 | 0;
472 s2 = s2 | 0;
473 s3 = s3 | 0;
474 s4 = s4 | 0;
475 s5 = s5 | 0;
476 s6 = s6 | 0;
477 s7 = s7 | 0;
478 s8 = s8 | 0;
479 s9 = s9 | 0;
480 sA = sA | 0;
481 sB = sB | 0;
482 sC = sC | 0;
483 sD = sD | 0;
484 sE = sE | 0;
485 sF = sF | 0;
486 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;
487 s0 = s0 ^ R00;
488 s1 = s1 ^ R01;
489 s2 = s2 ^ R02;
490 s3 = s3 ^ R03;
491 s4 = s4 ^ R04;
492 s5 = s5 ^ R05;
493 s6 = s6 ^ R06;
494 s7 = s7 ^ R07;
495 s8 = s8 ^ R08;
496 s9 = s9 ^ R09;
497 sA = sA ^ R0A;
498 sB = sB ^ R0B;
499 sC = sC ^ R0C;
500 sD = sD ^ R0D;
501 sE = sE ^ R0E;
502 sF = sF ^ R0F;
503 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R10;
504 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R11;
505 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R12;
506 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R13;
507 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R14;
508 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R15;
509 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R16;
510 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R17;
511 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R18;
512 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R19;
513 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R1A;
514 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R1B;
515 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R1C;
516 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R1D;
517 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R1E;
518 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R1F;
519 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R20;
520 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R21;
521 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R22;
522 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R23;
523 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R24;
524 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R25;
525 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R26;
526 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R27;
527 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R28;
528 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R29;
529 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R2A;
530 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R2B;
531 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R2C;
532 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R2D;
533 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R2E;
534 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R2F;
535 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R30;
536 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R31;
537 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R32;
538 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R33;
539 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R34;
540 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R35;
541 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R36;
542 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R37;
543 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R38;
544 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R39;
545 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R3A;
546 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R3B;
547 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R3C;
548 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R3D;
549 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R3E;
550 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R3F;
551 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R40;
552 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R41;
553 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R42;
554 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R43;
555 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R44;
556 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R45;
557 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R46;
558 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R47;
559 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R48;
560 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R49;
561 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R4A;
562 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R4B;
563 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R4C;
564 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R4D;
565 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R4E;
566 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R4F;
567 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R50;
568 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R51;
569 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R52;
570 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R53;
571 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R54;
572 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R55;
573 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R56;
574 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R57;
575 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R58;
576 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R59;
577 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R5A;
578 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R5B;
579 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R5C;
580 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R5D;
581 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R5E;
582 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R5F;
583 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R60;
584 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R61;
585 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R62;
586 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R63;
587 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R64;
588 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R65;
589 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R66;
590 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R67;
591 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R68;
592 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R69;
593 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R6A;
594 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R6B;
595 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R6C;
596 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R6D;
597 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R6E;
598 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R6F;
599 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R70;
600 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R71;
601 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R72;
602 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R73;
603 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R74;
604 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R75;
605 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R76;
606 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R77;
607 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R78;
608 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R79;
609 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R7A;
610 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R7B;
611 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R7C;
612 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R7D;
613 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R7E;
614 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R7F;
615 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ R80;
616 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ R81;
617 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ R82;
618 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ R83;
619 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ R84;
620 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ R85;
621 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ R86;
622 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ R87;
623 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ R88;
624 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ R89;
625 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ R8A;
626 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ R8B;
627 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ R8C;
628 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ R8D;
629 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ R8E;
630 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ R8F;
631 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ R90;
632 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ R91;
633 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ R92;
634 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ R93;
635 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ R94;
636 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ R95;
637 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ R96;
638 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ R97;
639 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ R98;
640 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ R99;
641 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ R9A;
642 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ R9B;
643 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ R9C;
644 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ R9D;
645 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ R9E;
646 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ R9F;
647 if ((keySize | 0) == 16) {
648 S0 = HEAP[sbox | t0] ^ RA0;
649 S1 = HEAP[sbox | t5] ^ RA1;
650 S2 = HEAP[sbox | tA] ^ RA2;
651 S3 = HEAP[sbox | tF] ^ RA3;
652 S4 = HEAP[sbox | t4] ^ RA4;
653 S5 = HEAP[sbox | t9] ^ RA5;
654 S6 = HEAP[sbox | tE] ^ RA6;
655 S7 = HEAP[sbox | t3] ^ RA7;
656 S8 = HEAP[sbox | t8] ^ RA8;
657 S9 = HEAP[sbox | tD] ^ RA9;
658 SA = HEAP[sbox | t2] ^ RAA;
659 SB = HEAP[sbox | t7] ^ RAB;
660 SC = HEAP[sbox | tC] ^ RAC;
661 SD = HEAP[sbox | t1] ^ RAD;
662 SE = HEAP[sbox | t6] ^ RAE;
663 SF = HEAP[sbox | tB] ^ RAF;
664 return;
665 }
666 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RA0;
667 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RA1;
668 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RA2;
669 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RA3;
670 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RA4;
671 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RA5;
672 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RA6;
673 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RA7;
674 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RA8;
675 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RA9;
676 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RAA;
677 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RAB;
678 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RAC;
679 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RAD;
680 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RAE;
681 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RAF;
682 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RB0;
683 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RB1;
684 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RB2;
685 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RB3;
686 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RB4;
687 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RB5;
688 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RB6;
689 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RB7;
690 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RB8;
691 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RB9;
692 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RBA;
693 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RBB;
694 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RBC;
695 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RBD;
696 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RBE;
697 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RBF;
698 s0 = HEAP[x2_sbox | t0] ^ HEAP[x3_sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[sbox | tF] ^ RC0;
699 s1 = HEAP[sbox | t0] ^ HEAP[x2_sbox | t5] ^ HEAP[x3_sbox | tA] ^ HEAP[sbox | tF] ^ RC1;
700 s2 = HEAP[sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[x2_sbox | tA] ^ HEAP[x3_sbox | tF] ^ RC2;
701 s3 = HEAP[x3_sbox | t0] ^ HEAP[sbox | t5] ^ HEAP[sbox | tA] ^ HEAP[x2_sbox | tF] ^ RC3;
702 s4 = HEAP[x2_sbox | t4] ^ HEAP[x3_sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[sbox | t3] ^ RC4;
703 s5 = HEAP[sbox | t4] ^ HEAP[x2_sbox | t9] ^ HEAP[x3_sbox | tE] ^ HEAP[sbox | t3] ^ RC5;
704 s6 = HEAP[sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[x2_sbox | tE] ^ HEAP[x3_sbox | t3] ^ RC6;
705 s7 = HEAP[x3_sbox | t4] ^ HEAP[sbox | t9] ^ HEAP[sbox | tE] ^ HEAP[x2_sbox | t3] ^ RC7;
706 s8 = HEAP[x2_sbox | t8] ^ HEAP[x3_sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[sbox | t7] ^ RC8;
707 s9 = HEAP[sbox | t8] ^ HEAP[x2_sbox | tD] ^ HEAP[x3_sbox | t2] ^ HEAP[sbox | t7] ^ RC9;
708 sA = HEAP[sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[x2_sbox | t2] ^ HEAP[x3_sbox | t7] ^ RCA;
709 sB = HEAP[x3_sbox | t8] ^ HEAP[sbox | tD] ^ HEAP[sbox | t2] ^ HEAP[x2_sbox | t7] ^ RCB;
710 sC = HEAP[x2_sbox | tC] ^ HEAP[x3_sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[sbox | tB] ^ RCC;
711 sD = HEAP[sbox | tC] ^ HEAP[x2_sbox | t1] ^ HEAP[x3_sbox | t6] ^ HEAP[sbox | tB] ^ RCD;
712 sE = HEAP[sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[x2_sbox | t6] ^ HEAP[x3_sbox | tB] ^ RCE;
713 sF = HEAP[x3_sbox | tC] ^ HEAP[sbox | t1] ^ HEAP[sbox | t6] ^ HEAP[x2_sbox | tB] ^ RCF;
714 t0 = HEAP[x2_sbox | s0] ^ HEAP[x3_sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[sbox | sF] ^ RD0;
715 t1 = HEAP[sbox | s0] ^ HEAP[x2_sbox | s5] ^ HEAP[x3_sbox | sA] ^ HEAP[sbox | sF] ^ RD1;
716 t2 = HEAP[sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[x2_sbox | sA] ^ HEAP[x3_sbox | sF] ^ RD2;
717 t3 = HEAP[x3_sbox | s0] ^ HEAP[sbox | s5] ^ HEAP[sbox | sA] ^ HEAP[x2_sbox | sF] ^ RD3;
718 t4 = HEAP[x2_sbox | s4] ^ HEAP[x3_sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[sbox | s3] ^ RD4;
719 t5 = HEAP[sbox | s4] ^ HEAP[x2_sbox | s9] ^ HEAP[x3_sbox | sE] ^ HEAP[sbox | s3] ^ RD5;
720 t6 = HEAP[sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[x2_sbox | sE] ^ HEAP[x3_sbox | s3] ^ RD6;
721 t7 = HEAP[x3_sbox | s4] ^ HEAP[sbox | s9] ^ HEAP[sbox | sE] ^ HEAP[x2_sbox | s3] ^ RD7;
722 t8 = HEAP[x2_sbox | s8] ^ HEAP[x3_sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[sbox | s7] ^ RD8;
723 t9 = HEAP[sbox | s8] ^ HEAP[x2_sbox | sD] ^ HEAP[x3_sbox | s2] ^ HEAP[sbox | s7] ^ RD9;
724 tA = HEAP[sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[x2_sbox | s2] ^ HEAP[x3_sbox | s7] ^ RDA;
725 tB = HEAP[x3_sbox | s8] ^ HEAP[sbox | sD] ^ HEAP[sbox | s2] ^ HEAP[x2_sbox | s7] ^ RDB;
726 tC = HEAP[x2_sbox | sC] ^ HEAP[x3_sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[sbox | sB] ^ RDC;
727 tD = HEAP[sbox | sC] ^ HEAP[x2_sbox | s1] ^ HEAP[x3_sbox | s6] ^ HEAP[sbox | sB] ^ RDD;
728 tE = HEAP[sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[x2_sbox | s6] ^ HEAP[x3_sbox | sB] ^ RDE;
729 tF = HEAP[x3_sbox | sC] ^ HEAP[sbox | s1] ^ HEAP[sbox | s6] ^ HEAP[x2_sbox | sB] ^ RDF;
730 S0 = HEAP[sbox | t0] ^ RE0;
731 S1 = HEAP[sbox | t5] ^ RE1;
732 S2 = HEAP[sbox | tA] ^ RE2;
733 S3 = HEAP[sbox | tF] ^ RE3;
734 S4 = HEAP[sbox | t4] ^ RE4;
735 S5 = HEAP[sbox | t9] ^ RE5;
736 S6 = HEAP[sbox | tE] ^ RE6;
737 S7 = HEAP[sbox | t3] ^ RE7;
738 S8 = HEAP[sbox | t8] ^ RE8;
739 S9 = HEAP[sbox | tD] ^ RE9;
740 SA = HEAP[sbox | t2] ^ REA;
741 SB = HEAP[sbox | t7] ^ REB;
742 SC = HEAP[sbox | tC] ^ REC;
743 SD = HEAP[sbox | t1] ^ RED;
744 SE = HEAP[sbox | t6] ^ REE;
745 SF = HEAP[sbox | tB] ^ REF;
746 }
747 function _decrypt(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
748 s0 = s0 | 0;
749 s1 = s1 | 0;
750 s2 = s2 | 0;
751 s3 = s3 | 0;
752 s4 = s4 | 0;
753 s5 = s5 | 0;
754 s6 = s6 | 0;
755 s7 = s7 | 0;
756 s8 = s8 | 0;
757 s9 = s9 | 0;
758 sA = sA | 0;
759 sB = sB | 0;
760 sC = sC | 0;
761 sD = sD | 0;
762 sE = sE | 0;
763 sF = sF | 0;
764 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;
765 if ((keySize | 0) == 32) {
766 t0 = HEAP[inv_sbox | s0 ^ RE0] ^ RD0;
767 t1 = HEAP[inv_sbox | sD ^ RED] ^ RD1;
768 t2 = HEAP[inv_sbox | sA ^ REA] ^ RD2;
769 t3 = HEAP[inv_sbox | s7 ^ RE7] ^ RD3;
770 t4 = HEAP[inv_sbox | s4 ^ RE4] ^ RD4;
771 t5 = HEAP[inv_sbox | s1 ^ RE1] ^ RD5;
772 t6 = HEAP[inv_sbox | sE ^ REE] ^ RD6;
773 t7 = HEAP[inv_sbox | sB ^ REB] ^ RD7;
774 t8 = HEAP[inv_sbox | s8 ^ RE8] ^ RD8;
775 t9 = HEAP[inv_sbox | s5 ^ RE5] ^ RD9;
776 tA = HEAP[inv_sbox | s2 ^ RE2] ^ RDA;
777 tB = HEAP[inv_sbox | sF ^ REF] ^ RDB;
778 tC = HEAP[inv_sbox | sC ^ REC] ^ RDC;
779 tD = HEAP[inv_sbox | s9 ^ RE9] ^ RDD;
780 tE = HEAP[inv_sbox | s6 ^ RE6] ^ RDE;
781 tF = HEAP[inv_sbox | s3 ^ RE3] ^ RDF;
782 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
783 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
784 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
785 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
786 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
787 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
788 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
789 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
790 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
791 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
792 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
793 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
794 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
795 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
796 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
797 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
798 t0 = HEAP[inv_sbox | s0] ^ RC0;
799 t1 = HEAP[inv_sbox | s1] ^ RC1;
800 t2 = HEAP[inv_sbox | s2] ^ RC2;
801 t3 = HEAP[inv_sbox | s3] ^ RC3;
802 t4 = HEAP[inv_sbox | s4] ^ RC4;
803 t5 = HEAP[inv_sbox | s5] ^ RC5;
804 t6 = HEAP[inv_sbox | s6] ^ RC6;
805 t7 = HEAP[inv_sbox | s7] ^ RC7;
806 t8 = HEAP[inv_sbox | s8] ^ RC8;
807 t9 = HEAP[inv_sbox | s9] ^ RC9;
808 tA = HEAP[inv_sbox | sA] ^ RCA;
809 tB = HEAP[inv_sbox | sB] ^ RCB;
810 tC = HEAP[inv_sbox | sC] ^ RCC;
811 tD = HEAP[inv_sbox | sD] ^ RCD;
812 tE = HEAP[inv_sbox | sE] ^ RCE;
813 tF = HEAP[inv_sbox | sF] ^ RCF;
814 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
815 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
816 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
817 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
818 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
819 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
820 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
821 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
822 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
823 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
824 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
825 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
826 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
827 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
828 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
829 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
830 t0 = HEAP[inv_sbox | s0] ^ RB0;
831 t1 = HEAP[inv_sbox | s1] ^ RB1;
832 t2 = HEAP[inv_sbox | s2] ^ RB2;
833 t3 = HEAP[inv_sbox | s3] ^ RB3;
834 t4 = HEAP[inv_sbox | s4] ^ RB4;
835 t5 = HEAP[inv_sbox | s5] ^ RB5;
836 t6 = HEAP[inv_sbox | s6] ^ RB6;
837 t7 = HEAP[inv_sbox | s7] ^ RB7;
838 t8 = HEAP[inv_sbox | s8] ^ RB8;
839 t9 = HEAP[inv_sbox | s9] ^ RB9;
840 tA = HEAP[inv_sbox | sA] ^ RBA;
841 tB = HEAP[inv_sbox | sB] ^ RBB;
842 tC = HEAP[inv_sbox | sC] ^ RBC;
843 tD = HEAP[inv_sbox | sD] ^ RBD;
844 tE = HEAP[inv_sbox | sE] ^ RBE;
845 tF = HEAP[inv_sbox | sF] ^ RBF;
846 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
847 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
848 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
849 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
850 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
851 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
852 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
853 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
854 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
855 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
856 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
857 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
858 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
859 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
860 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
861 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
862 t0 = HEAP[inv_sbox | s0] ^ RA0;
863 t1 = HEAP[inv_sbox | s1] ^ RA1;
864 t2 = HEAP[inv_sbox | s2] ^ RA2;
865 t3 = HEAP[inv_sbox | s3] ^ RA3;
866 t4 = HEAP[inv_sbox | s4] ^ RA4;
867 t5 = HEAP[inv_sbox | s5] ^ RA5;
868 t6 = HEAP[inv_sbox | s6] ^ RA6;
869 t7 = HEAP[inv_sbox | s7] ^ RA7;
870 t8 = HEAP[inv_sbox | s8] ^ RA8;
871 t9 = HEAP[inv_sbox | s9] ^ RA9;
872 tA = HEAP[inv_sbox | sA] ^ RAA;
873 tB = HEAP[inv_sbox | sB] ^ RAB;
874 tC = HEAP[inv_sbox | sC] ^ RAC;
875 tD = HEAP[inv_sbox | sD] ^ RAD;
876 tE = HEAP[inv_sbox | sE] ^ RAE;
877 tF = HEAP[inv_sbox | sF] ^ RAF;
878 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
879 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
880 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
881 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
882 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
883 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
884 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
885 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
886 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
887 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
888 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
889 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
890 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
891 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
892 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
893 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
894 t0 = HEAP[inv_sbox | s0] ^ R90;
895 t1 = HEAP[inv_sbox | s1] ^ R91;
896 t2 = HEAP[inv_sbox | s2] ^ R92;
897 t3 = HEAP[inv_sbox | s3] ^ R93;
898 t4 = HEAP[inv_sbox | s4] ^ R94;
899 t5 = HEAP[inv_sbox | s5] ^ R95;
900 t6 = HEAP[inv_sbox | s6] ^ R96;
901 t7 = HEAP[inv_sbox | s7] ^ R97;
902 t8 = HEAP[inv_sbox | s8] ^ R98;
903 t9 = HEAP[inv_sbox | s9] ^ R99;
904 tA = HEAP[inv_sbox | sA] ^ R9A;
905 tB = HEAP[inv_sbox | sB] ^ R9B;
906 tC = HEAP[inv_sbox | sC] ^ R9C;
907 tD = HEAP[inv_sbox | sD] ^ R9D;
908 tE = HEAP[inv_sbox | sE] ^ R9E;
909 tF = HEAP[inv_sbox | sF] ^ R9F;
910 } else {
911 t0 = HEAP[inv_sbox | s0 ^ RA0] ^ R90;
912 t1 = HEAP[inv_sbox | sD ^ RAD] ^ R91;
913 t2 = HEAP[inv_sbox | sA ^ RAA] ^ R92;
914 t3 = HEAP[inv_sbox | s7 ^ RA7] ^ R93;
915 t4 = HEAP[inv_sbox | s4 ^ RA4] ^ R94;
916 t5 = HEAP[inv_sbox | s1 ^ RA1] ^ R95;
917 t6 = HEAP[inv_sbox | sE ^ RAE] ^ R96;
918 t7 = HEAP[inv_sbox | sB ^ RAB] ^ R97;
919 t8 = HEAP[inv_sbox | s8 ^ RA8] ^ R98;
920 t9 = HEAP[inv_sbox | s5 ^ RA5] ^ R99;
921 tA = HEAP[inv_sbox | s2 ^ RA2] ^ R9A;
922 tB = HEAP[inv_sbox | sF ^ RAF] ^ R9B;
923 tC = HEAP[inv_sbox | sC ^ RAC] ^ R9C;
924 tD = HEAP[inv_sbox | s9 ^ RA9] ^ R9D;
925 tE = HEAP[inv_sbox | s6 ^ RA6] ^ R9E;
926 tF = HEAP[inv_sbox | s3 ^ RA3] ^ R9F;
927 }
928 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
929 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
930 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
931 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
932 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
933 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
934 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
935 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
936 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
937 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
938 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
939 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
940 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
941 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
942 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
943 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
944 t0 = HEAP[inv_sbox | s0] ^ R80;
945 t1 = HEAP[inv_sbox | s1] ^ R81;
946 t2 = HEAP[inv_sbox | s2] ^ R82;
947 t3 = HEAP[inv_sbox | s3] ^ R83;
948 t4 = HEAP[inv_sbox | s4] ^ R84;
949 t5 = HEAP[inv_sbox | s5] ^ R85;
950 t6 = HEAP[inv_sbox | s6] ^ R86;
951 t7 = HEAP[inv_sbox | s7] ^ R87;
952 t8 = HEAP[inv_sbox | s8] ^ R88;
953 t9 = HEAP[inv_sbox | s9] ^ R89;
954 tA = HEAP[inv_sbox | sA] ^ R8A;
955 tB = HEAP[inv_sbox | sB] ^ R8B;
956 tC = HEAP[inv_sbox | sC] ^ R8C;
957 tD = HEAP[inv_sbox | sD] ^ R8D;
958 tE = HEAP[inv_sbox | sE] ^ R8E;
959 tF = HEAP[inv_sbox | sF] ^ R8F;
960 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
961 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
962 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
963 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
964 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
965 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
966 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
967 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
968 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
969 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
970 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
971 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
972 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
973 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
974 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
975 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
976 t0 = HEAP[inv_sbox | s0] ^ R70;
977 t1 = HEAP[inv_sbox | s1] ^ R71;
978 t2 = HEAP[inv_sbox | s2] ^ R72;
979 t3 = HEAP[inv_sbox | s3] ^ R73;
980 t4 = HEAP[inv_sbox | s4] ^ R74;
981 t5 = HEAP[inv_sbox | s5] ^ R75;
982 t6 = HEAP[inv_sbox | s6] ^ R76;
983 t7 = HEAP[inv_sbox | s7] ^ R77;
984 t8 = HEAP[inv_sbox | s8] ^ R78;
985 t9 = HEAP[inv_sbox | s9] ^ R79;
986 tA = HEAP[inv_sbox | sA] ^ R7A;
987 tB = HEAP[inv_sbox | sB] ^ R7B;
988 tC = HEAP[inv_sbox | sC] ^ R7C;
989 tD = HEAP[inv_sbox | sD] ^ R7D;
990 tE = HEAP[inv_sbox | sE] ^ R7E;
991 tF = HEAP[inv_sbox | sF] ^ R7F;
992 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
993 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
994 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
995 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
996 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
997 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
998 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
999 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1000 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1001 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1002 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1003 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1004 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1005 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1006 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1007 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1008 t0 = HEAP[inv_sbox | s0] ^ R60;
1009 t1 = HEAP[inv_sbox | s1] ^ R61;
1010 t2 = HEAP[inv_sbox | s2] ^ R62;
1011 t3 = HEAP[inv_sbox | s3] ^ R63;
1012 t4 = HEAP[inv_sbox | s4] ^ R64;
1013 t5 = HEAP[inv_sbox | s5] ^ R65;
1014 t6 = HEAP[inv_sbox | s6] ^ R66;
1015 t7 = HEAP[inv_sbox | s7] ^ R67;
1016 t8 = HEAP[inv_sbox | s8] ^ R68;
1017 t9 = HEAP[inv_sbox | s9] ^ R69;
1018 tA = HEAP[inv_sbox | sA] ^ R6A;
1019 tB = HEAP[inv_sbox | sB] ^ R6B;
1020 tC = HEAP[inv_sbox | sC] ^ R6C;
1021 tD = HEAP[inv_sbox | sD] ^ R6D;
1022 tE = HEAP[inv_sbox | sE] ^ R6E;
1023 tF = HEAP[inv_sbox | sF] ^ R6F;
1024 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1025 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1026 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1027 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1028 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1029 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1030 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1031 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1032 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1033 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1034 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1035 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1036 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1037 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1038 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1039 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1040 t0 = HEAP[inv_sbox | s0] ^ R50;
1041 t1 = HEAP[inv_sbox | s1] ^ R51;
1042 t2 = HEAP[inv_sbox | s2] ^ R52;
1043 t3 = HEAP[inv_sbox | s3] ^ R53;
1044 t4 = HEAP[inv_sbox | s4] ^ R54;
1045 t5 = HEAP[inv_sbox | s5] ^ R55;
1046 t6 = HEAP[inv_sbox | s6] ^ R56;
1047 t7 = HEAP[inv_sbox | s7] ^ R57;
1048 t8 = HEAP[inv_sbox | s8] ^ R58;
1049 t9 = HEAP[inv_sbox | s9] ^ R59;
1050 tA = HEAP[inv_sbox | sA] ^ R5A;
1051 tB = HEAP[inv_sbox | sB] ^ R5B;
1052 tC = HEAP[inv_sbox | sC] ^ R5C;
1053 tD = HEAP[inv_sbox | sD] ^ R5D;
1054 tE = HEAP[inv_sbox | sE] ^ R5E;
1055 tF = HEAP[inv_sbox | sF] ^ R5F;
1056 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1057 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1058 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1059 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1060 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1061 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1062 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1063 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1064 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1065 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1066 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1067 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1068 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1069 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1070 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1071 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1072 t0 = HEAP[inv_sbox | s0] ^ R40;
1073 t1 = HEAP[inv_sbox | s1] ^ R41;
1074 t2 = HEAP[inv_sbox | s2] ^ R42;
1075 t3 = HEAP[inv_sbox | s3] ^ R43;
1076 t4 = HEAP[inv_sbox | s4] ^ R44;
1077 t5 = HEAP[inv_sbox | s5] ^ R45;
1078 t6 = HEAP[inv_sbox | s6] ^ R46;
1079 t7 = HEAP[inv_sbox | s7] ^ R47;
1080 t8 = HEAP[inv_sbox | s8] ^ R48;
1081 t9 = HEAP[inv_sbox | s9] ^ R49;
1082 tA = HEAP[inv_sbox | sA] ^ R4A;
1083 tB = HEAP[inv_sbox | sB] ^ R4B;
1084 tC = HEAP[inv_sbox | sC] ^ R4C;
1085 tD = HEAP[inv_sbox | sD] ^ R4D;
1086 tE = HEAP[inv_sbox | sE] ^ R4E;
1087 tF = HEAP[inv_sbox | sF] ^ R4F;
1088 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1089 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1090 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1091 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1092 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1093 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1094 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1095 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1096 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1097 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1098 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1099 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1100 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1101 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1102 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1103 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1104 t0 = HEAP[inv_sbox | s0] ^ R30;
1105 t1 = HEAP[inv_sbox | s1] ^ R31;
1106 t2 = HEAP[inv_sbox | s2] ^ R32;
1107 t3 = HEAP[inv_sbox | s3] ^ R33;
1108 t4 = HEAP[inv_sbox | s4] ^ R34;
1109 t5 = HEAP[inv_sbox | s5] ^ R35;
1110 t6 = HEAP[inv_sbox | s6] ^ R36;
1111 t7 = HEAP[inv_sbox | s7] ^ R37;
1112 t8 = HEAP[inv_sbox | s8] ^ R38;
1113 t9 = HEAP[inv_sbox | s9] ^ R39;
1114 tA = HEAP[inv_sbox | sA] ^ R3A;
1115 tB = HEAP[inv_sbox | sB] ^ R3B;
1116 tC = HEAP[inv_sbox | sC] ^ R3C;
1117 tD = HEAP[inv_sbox | sD] ^ R3D;
1118 tE = HEAP[inv_sbox | sE] ^ R3E;
1119 tF = HEAP[inv_sbox | sF] ^ R3F;
1120 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1121 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1122 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1123 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1124 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1125 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1126 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1127 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1128 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1129 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1130 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1131 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1132 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1133 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1134 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1135 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1136 t0 = HEAP[inv_sbox | s0] ^ R20;
1137 t1 = HEAP[inv_sbox | s1] ^ R21;
1138 t2 = HEAP[inv_sbox | s2] ^ R22;
1139 t3 = HEAP[inv_sbox | s3] ^ R23;
1140 t4 = HEAP[inv_sbox | s4] ^ R24;
1141 t5 = HEAP[inv_sbox | s5] ^ R25;
1142 t6 = HEAP[inv_sbox | s6] ^ R26;
1143 t7 = HEAP[inv_sbox | s7] ^ R27;
1144 t8 = HEAP[inv_sbox | s8] ^ R28;
1145 t9 = HEAP[inv_sbox | s9] ^ R29;
1146 tA = HEAP[inv_sbox | sA] ^ R2A;
1147 tB = HEAP[inv_sbox | sB] ^ R2B;
1148 tC = HEAP[inv_sbox | sC] ^ R2C;
1149 tD = HEAP[inv_sbox | sD] ^ R2D;
1150 tE = HEAP[inv_sbox | sE] ^ R2E;
1151 tF = HEAP[inv_sbox | sF] ^ R2F;
1152 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1153 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1154 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1155 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1156 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1157 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1158 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1159 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1160 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1161 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1162 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1163 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1164 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1165 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1166 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1167 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1168 t0 = HEAP[inv_sbox | s0] ^ R10;
1169 t1 = HEAP[inv_sbox | s1] ^ R11;
1170 t2 = HEAP[inv_sbox | s2] ^ R12;
1171 t3 = HEAP[inv_sbox | s3] ^ R13;
1172 t4 = HEAP[inv_sbox | s4] ^ R14;
1173 t5 = HEAP[inv_sbox | s5] ^ R15;
1174 t6 = HEAP[inv_sbox | s6] ^ R16;
1175 t7 = HEAP[inv_sbox | s7] ^ R17;
1176 t8 = HEAP[inv_sbox | s8] ^ R18;
1177 t9 = HEAP[inv_sbox | s9] ^ R19;
1178 tA = HEAP[inv_sbox | sA] ^ R1A;
1179 tB = HEAP[inv_sbox | sB] ^ R1B;
1180 tC = HEAP[inv_sbox | sC] ^ R1C;
1181 tD = HEAP[inv_sbox | sD] ^ R1D;
1182 tE = HEAP[inv_sbox | sE] ^ R1E;
1183 tF = HEAP[inv_sbox | sF] ^ R1F;
1184 s0 = HEAP[xE | t0] ^ HEAP[xB | t1] ^ HEAP[xD | t2] ^ HEAP[x9 | t3];
1185 s1 = HEAP[x9 | tC] ^ HEAP[xE | tD] ^ HEAP[xB | tE] ^ HEAP[xD | tF];
1186 s2 = HEAP[xD | t8] ^ HEAP[x9 | t9] ^ HEAP[xE | tA] ^ HEAP[xB | tB];
1187 s3 = HEAP[xB | t4] ^ HEAP[xD | t5] ^ HEAP[x9 | t6] ^ HEAP[xE | t7];
1188 s4 = HEAP[xE | t4] ^ HEAP[xB | t5] ^ HEAP[xD | t6] ^ HEAP[x9 | t7];
1189 s5 = HEAP[x9 | t0] ^ HEAP[xE | t1] ^ HEAP[xB | t2] ^ HEAP[xD | t3];
1190 s6 = HEAP[xD | tC] ^ HEAP[x9 | tD] ^ HEAP[xE | tE] ^ HEAP[xB | tF];
1191 s7 = HEAP[xB | t8] ^ HEAP[xD | t9] ^ HEAP[x9 | tA] ^ HEAP[xE | tB];
1192 s8 = HEAP[xE | t8] ^ HEAP[xB | t9] ^ HEAP[xD | tA] ^ HEAP[x9 | tB];
1193 s9 = HEAP[x9 | t4] ^ HEAP[xE | t5] ^ HEAP[xB | t6] ^ HEAP[xD | t7];
1194 sA = HEAP[xD | t0] ^ HEAP[x9 | t1] ^ HEAP[xE | t2] ^ HEAP[xB | t3];
1195 sB = HEAP[xB | tC] ^ HEAP[xD | tD] ^ HEAP[x9 | tE] ^ HEAP[xE | tF];
1196 sC = HEAP[xE | tC] ^ HEAP[xB | tD] ^ HEAP[xD | tE] ^ HEAP[x9 | tF];
1197 sD = HEAP[x9 | t8] ^ HEAP[xE | t9] ^ HEAP[xB | tA] ^ HEAP[xD | tB];
1198 sE = HEAP[xD | t4] ^ HEAP[x9 | t5] ^ HEAP[xE | t6] ^ HEAP[xB | t7];
1199 sF = HEAP[xB | t0] ^ HEAP[xD | t1] ^ HEAP[x9 | t2] ^ HEAP[xE | t3];
1200 S0 = HEAP[inv_sbox | s0] ^ R00;
1201 S1 = HEAP[inv_sbox | s1] ^ R01;
1202 S2 = HEAP[inv_sbox | s2] ^ R02;
1203 S3 = HEAP[inv_sbox | s3] ^ R03;
1204 S4 = HEAP[inv_sbox | s4] ^ R04;
1205 S5 = HEAP[inv_sbox | s5] ^ R05;
1206 S6 = HEAP[inv_sbox | s6] ^ R06;
1207 S7 = HEAP[inv_sbox | s7] ^ R07;
1208 S8 = HEAP[inv_sbox | s8] ^ R08;
1209 S9 = HEAP[inv_sbox | s9] ^ R09;
1210 SA = HEAP[inv_sbox | sA] ^ R0A;
1211 SB = HEAP[inv_sbox | sB] ^ R0B;
1212 SC = HEAP[inv_sbox | sC] ^ R0C;
1213 SD = HEAP[inv_sbox | sD] ^ R0D;
1214 SE = HEAP[inv_sbox | sE] ^ R0E;
1215 SF = HEAP[inv_sbox | sF] ^ R0F;
1216 }
1217 function init_state(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, sA, sB, sC, sD, sE, sF) {
1218 s0 = s0 | 0;
1219 s1 = s1 | 0;
1220 s2 = s2 | 0;
1221 s3 = s3 | 0;
1222 s4 = s4 | 0;
1223 s5 = s5 | 0;
1224 s6 = s6 | 0;
1225 s7 = s7 | 0;
1226 s8 = s8 | 0;
1227 s9 = s9 | 0;
1228 sA = sA | 0;
1229 sB = sB | 0;
1230 sC = sC | 0;
1231 sD = sD | 0;
1232 sE = sE | 0;
1233 sF = sF | 0;
1234 S0 = s0;
1235 S1 = s1;
1236 S2 = s2;
1237 S3 = s3;
1238 S4 = s4;
1239 S5 = s5;
1240 S6 = s6;
1241 S7 = s7;
1242 S8 = s8;
1243 S9 = s9;
1244 SA = sA;
1245 SB = sB;
1246 SC = sC;
1247 SD = sD;
1248 SE = sE;
1249 SF = sF;
1250 }
1251 function save_state(offset) {
1252 offset = offset | 0;
1253 HEAP[offset] = S0;
1254 HEAP[offset | 1] = S1;
1255 HEAP[offset | 2] = S2;
1256 HEAP[offset | 3] = S3;
1257 HEAP[offset | 4] = S4;
1258 HEAP[offset | 5] = S5;
1259 HEAP[offset | 6] = S6;
1260 HEAP[offset | 7] = S7;
1261 HEAP[offset | 8] = S8;
1262 HEAP[offset | 9] = S9;
1263 HEAP[offset | 10] = SA;
1264 HEAP[offset | 11] = SB;
1265 HEAP[offset | 12] = SC;
1266 HEAP[offset | 13] = SD;
1267 HEAP[offset | 14] = SE;
1268 HEAP[offset | 15] = SF;
1269 }
1270 function init_key_128(k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, kA, kB, kC, kD, kE, kF) {
1271 k0 = k0 | 0;
1272 k1 = k1 | 0;
1273 k2 = k2 | 0;
1274 k3 = k3 | 0;
1275 k4 = k4 | 0;
1276 k5 = k5 | 0;
1277 k6 = k6 | 0;
1278 k7 = k7 | 0;
1279 k8 = k8 | 0;
1280 k9 = k9 | 0;
1281 kA = kA | 0;
1282 kB = kB | 0;
1283 kC = kC | 0;
1284 kD = kD | 0;
1285 kE = kE | 0;
1286 kF = kF | 0;
1287 R00 = k0;
1288 R01 = k1;
1289 R02 = k2;
1290 R03 = k3;
1291 R04 = k4;
1292 R05 = k5;
1293 R06 = k6;
1294 R07 = k7;
1295 R08 = k8;
1296 R09 = k9;
1297 R0A = kA;
1298 R0B = kB;
1299 R0C = kC;
1300 R0D = kD;
1301 R0E = kE;
1302 R0F = kF;
1303 keySize = 16;
1304 _expand_key_128();
1305 }
1306 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) {
1307 k00 = k00 | 0;
1308 k01 = k01 | 0;
1309 k02 = k02 | 0;
1310 k03 = k03 | 0;
1311 k04 = k04 | 0;
1312 k05 = k05 | 0;
1313 k06 = k06 | 0;
1314 k07 = k07 | 0;
1315 k08 = k08 | 0;
1316 k09 = k09 | 0;
1317 k0A = k0A | 0;
1318 k0B = k0B | 0;
1319 k0C = k0C | 0;
1320 k0D = k0D | 0;
1321 k0E = k0E | 0;
1322 k0F = k0F | 0;
1323 k10 = k10 | 0;
1324 k11 = k11 | 0;
1325 k12 = k12 | 0;
1326 k13 = k13 | 0;
1327 k14 = k14 | 0;
1328 k15 = k15 | 0;
1329 k16 = k16 | 0;
1330 k17 = k17 | 0;
1331 k18 = k18 | 0;
1332 k19 = k19 | 0;
1333 k1A = k1A | 0;
1334 k1B = k1B | 0;
1335 k1C = k1C | 0;
1336 k1D = k1D | 0;
1337 k1E = k1E | 0;
1338 k1F = k1F | 0;
1339 R00 = k00;
1340 R01 = k01;
1341 R02 = k02;
1342 R03 = k03;
1343 R04 = k04;
1344 R05 = k05;
1345 R06 = k06;
1346 R07 = k07;
1347 R08 = k08;
1348 R09 = k09;
1349 R0A = k0A;
1350 R0B = k0B;
1351 R0C = k0C;
1352 R0D = k0D;
1353 R0E = k0E;
1354 R0F = k0F;
1355 R10 = k10;
1356 R11 = k11;
1357 R12 = k12;
1358 R13 = k13;
1359 R14 = k14;
1360 R15 = k15;
1361 R16 = k16;
1362 R17 = k17;
1363 R18 = k18;
1364 R19 = k19;
1365 R1A = k1A;
1366 R1B = k1B;
1367 R1C = k1C;
1368 R1D = k1D;
1369 R1E = k1E;
1370 R1F = k1F;
1371 keySize = 32;
1372 _expand_key_256();
1373 }
1374 function cbc_encrypt(offset, length) {
1375 offset = offset | 0;
1376 length = length | 0;
1377 var encrypted = 0;
1378 if (offset & 15) return -1;
1379 while ((length | 0) >= 16) {
1380 _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]);
1381 HEAP[offset] = S0;
1382 HEAP[offset | 1] = S1;
1383 HEAP[offset | 2] = S2;
1384 HEAP[offset | 3] = S3;
1385 HEAP[offset | 4] = S4;
1386 HEAP[offset | 5] = S5;
1387 HEAP[offset | 6] = S6;
1388 HEAP[offset | 7] = S7;
1389 HEAP[offset | 8] = S8;
1390 HEAP[offset | 9] = S9;
1391 HEAP[offset | 10] = SA;
1392 HEAP[offset | 11] = SB;
1393 HEAP[offset | 12] = SC;
1394 HEAP[offset | 13] = SD;
1395 HEAP[offset | 14] = SE;
1396 HEAP[offset | 15] = SF;
1397 offset = offset + 16 | 0;
1398 length = length - 16 | 0;
1399 encrypted = encrypted + 16 | 0;
1400 }
1401 return encrypted | 0;
1402 }
1403 function cbc_decrypt(offset, length) {
1404 offset = offset | 0;
1405 length = length | 0;
1406 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;
1407 if (offset & 15) return -1;
1408 iv0 = S0;
1409 iv1 = S1;
1410 iv2 = S2;
1411 iv3 = S3;
1412 iv4 = S4;
1413 iv5 = S5;
1414 iv6 = S6;
1415 iv7 = S7;
1416 iv8 = S8;
1417 iv9 = S9;
1418 ivA = SA;
1419 ivB = SB;
1420 ivC = SC;
1421 ivD = SD;
1422 ivE = SE;
1423 ivF = SF;
1424 while ((length | 0) >= 16) {
1425 _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);
1426 S0 = S0 ^ iv0;
1427 iv0 = HEAP[offset] | 0;
1428 S1 = S1 ^ iv1;
1429 iv1 = HEAP[offset | 1] | 0;
1430 S2 = S2 ^ iv2;
1431 iv2 = HEAP[offset | 2] | 0;
1432 S3 = S3 ^ iv3;
1433 iv3 = HEAP[offset | 3] | 0;
1434 S4 = S4 ^ iv4;
1435 iv4 = HEAP[offset | 4] | 0;
1436 S5 = S5 ^ iv5;
1437 iv5 = HEAP[offset | 5] | 0;
1438 S6 = S6 ^ iv6;
1439 iv6 = HEAP[offset | 6] | 0;
1440 S7 = S7 ^ iv7;
1441 iv7 = HEAP[offset | 7] | 0;
1442 S8 = S8 ^ iv8;
1443 iv8 = HEAP[offset | 8] | 0;
1444 S9 = S9 ^ iv9;
1445 iv9 = HEAP[offset | 9] | 0;
1446 SA = SA ^ ivA;
1447 ivA = HEAP[offset | 10] | 0;
1448 SB = SB ^ ivB;
1449 ivB = HEAP[offset | 11] | 0;
1450 SC = SC ^ ivC;
1451 ivC = HEAP[offset | 12] | 0;
1452 SD = SD ^ ivD;
1453 ivD = HEAP[offset | 13] | 0;
1454 SE = SE ^ ivE;
1455 ivE = HEAP[offset | 14] | 0;
1456 SF = SF ^ ivF;
1457 ivF = HEAP[offset | 15] | 0;
1458 HEAP[offset] = S0;
1459 HEAP[offset | 1] = S1;
1460 HEAP[offset | 2] = S2;
1461 HEAP[offset | 3] = S3;
1462 HEAP[offset | 4] = S4;
1463 HEAP[offset | 5] = S5;
1464 HEAP[offset | 6] = S6;
1465 HEAP[offset | 7] = S7;
1466 HEAP[offset | 8] = S8;
1467 HEAP[offset | 9] = S9;
1468 HEAP[offset | 10] = SA;
1469 HEAP[offset | 11] = SB;
1470 HEAP[offset | 12] = SC;
1471 HEAP[offset | 13] = SD;
1472 HEAP[offset | 14] = SE;
1473 HEAP[offset | 15] = SF;
1474 offset = offset + 16 | 0;
1475 length = length - 16 | 0;
1476 decrypted = decrypted + 16 | 0;
1477 }
1478 S0 = iv0;
1479 S1 = iv1;
1480 S2 = iv2;
1481 S3 = iv3;
1482 S4 = iv4;
1483 S5 = iv5;
1484 S6 = iv6;
1485 S7 = iv7;
1486 S8 = iv8;
1487 S9 = iv9;
1488 SA = ivA;
1489 SB = ivB;
1490 SC = ivC;
1491 SD = ivD;
1492 SE = ivE;
1493 SF = ivF;
1494 return decrypted | 0;
1495 }
1496 function cbc_mac(offset, length, output) {
1497 offset = offset | 0;
1498 length = length | 0;
1499 output = output | 0;
1500 if (offset & 15) return -1;
1501 if (~output) if (output & 31) return -1;
1502 while ((length | 0) >= 16) {
1503 _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]);
1504 offset = offset + 16 | 0;
1505 length = length - 16 | 0;
1506 }
1507 if ((length | 0) > 0) {
1508 S0 = S0 ^ HEAP[offset];
1509 if ((length | 0) > 1) S1 = S1 ^ HEAP[offset | 1];
1510 if ((length | 0) > 2) S2 = S2 ^ HEAP[offset | 2];
1511 if ((length | 0) > 3) S3 = S3 ^ HEAP[offset | 3];
1512 if ((length | 0) > 4) S4 = S4 ^ HEAP[offset | 4];
1513 if ((length | 0) > 5) S5 = S5 ^ HEAP[offset | 5];
1514 if ((length | 0) > 6) S6 = S6 ^ HEAP[offset | 6];
1515 if ((length | 0) > 7) S7 = S7 ^ HEAP[offset | 7];
1516 if ((length | 0) > 8) S8 = S8 ^ HEAP[offset | 8];
1517 if ((length | 0) > 9) S9 = S9 ^ HEAP[offset | 9];
1518 if ((length | 0) > 10) SA = SA ^ HEAP[offset | 10];
1519 if ((length | 0) > 11) SB = SB ^ HEAP[offset | 11];
1520 if ((length | 0) > 12) SC = SC ^ HEAP[offset | 12];
1521 if ((length | 0) > 13) SD = SD ^ HEAP[offset | 13];
1522 if ((length | 0) > 14) SE = SE ^ HEAP[offset | 14];
1523 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1524 offset = offset + length | 0;
1525 length = 0;
1526 }
1527 if (~output) {
1528 HEAP[output | 0] = S0;
1529 HEAP[output | 1] = S1;
1530 HEAP[output | 2] = S2;
1531 HEAP[output | 3] = S3;
1532 HEAP[output | 4] = S4;
1533 HEAP[output | 5] = S5;
1534 HEAP[output | 6] = S6;
1535 HEAP[output | 7] = S7;
1536 HEAP[output | 8] = S8;
1537 HEAP[output | 9] = S9;
1538 HEAP[output | 10] = SA;
1539 HEAP[output | 11] = SB;
1540 HEAP[output | 12] = SC;
1541 HEAP[output | 13] = SD;
1542 HEAP[output | 14] = SE;
1543 HEAP[output | 15] = SF;
1544 }
1545 return 0;
1546 }
1547 function ccm_encrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) {
1548 offset = offset | 0;
1549 length = length | 0;
1550 nonce0 = nonce0 | 0;
1551 nonce1 = nonce1 | 0;
1552 nonce2 = nonce2 | 0;
1553 nonce3 = nonce3 | 0;
1554 nonce4 = nonce4 | 0;
1555 nonce5 = nonce5 | 0;
1556 nonce6 = nonce6 | 0;
1557 nonce7 = nonce7 | 0;
1558 nonce8 = nonce8 | 0;
1559 nonce9 = nonce9 | 0;
1560 nonceA = nonceA | 0;
1561 nonceB = nonceB | 0;
1562 nonceC = nonceC | 0;
1563 nonceD = nonceD | 0;
1564 counter0 = counter0 | 0;
1565 counter1 = counter1 | 0;
1566 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;
1567 if (offset & 15) return -1;
1568 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1569 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1570 while ((length | 0) >= 16) {
1571 s0 = HEAP[offset] | 0;
1572 s1 = HEAP[offset | 1] | 0;
1573 s2 = HEAP[offset | 2] | 0;
1574 s3 = HEAP[offset | 3] | 0;
1575 s4 = HEAP[offset | 4] | 0;
1576 s5 = HEAP[offset | 5] | 0;
1577 s6 = HEAP[offset | 6] | 0;
1578 s7 = HEAP[offset | 7] | 0;
1579 s8 = HEAP[offset | 8] | 0;
1580 s9 = HEAP[offset | 9] | 0;
1581 sA = HEAP[offset | 10] | 0;
1582 sB = HEAP[offset | 11] | 0;
1583 sC = HEAP[offset | 12] | 0;
1584 sD = HEAP[offset | 13] | 0;
1585 sE = HEAP[offset | 14] | 0;
1586 sF = HEAP[offset | 15] | 0;
1587 _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);
1588 HEAP[offset] = s0 ^ S0;
1589 HEAP[offset | 1] = s1 ^ S1;
1590 HEAP[offset | 2] = s2 ^ S2;
1591 HEAP[offset | 3] = s3 ^ S3;
1592 HEAP[offset | 4] = s4 ^ S4;
1593 HEAP[offset | 5] = s5 ^ S5;
1594 HEAP[offset | 6] = s6 ^ S6;
1595 HEAP[offset | 7] = s7 ^ S7;
1596 HEAP[offset | 8] = s8 ^ S8;
1597 HEAP[offset | 9] = s9 ^ S9;
1598 HEAP[offset | 10] = sA ^ SA;
1599 HEAP[offset | 11] = sB ^ SB;
1600 HEAP[offset | 12] = sC ^ SC;
1601 HEAP[offset | 13] = sD ^ SD;
1602 HEAP[offset | 14] = sE ^ SE;
1603 HEAP[offset | 15] = sF ^ SF;
1604 _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);
1605 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1606 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1607 encrypted = encrypted + 16 | 0;
1608 offset = offset + 16 | 0;
1609 length = length - 16 | 0;
1610 counter1 = counter1 + 1 | 0;
1611 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1612 }
1613 if ((length | 0) > 0) {
1614 s0 = HEAP[offset] | 0;
1615 s1 = (length | 0) > 1 ? HEAP[offset | 1] | 0 : 0;
1616 s2 = (length | 0) > 2 ? HEAP[offset | 2] | 0 : 0;
1617 s3 = (length | 0) > 3 ? HEAP[offset | 3] | 0 : 0;
1618 s4 = (length | 0) > 4 ? HEAP[offset | 4] | 0 : 0;
1619 s5 = (length | 0) > 5 ? HEAP[offset | 5] | 0 : 0;
1620 s6 = (length | 0) > 6 ? HEAP[offset | 6] | 0 : 0;
1621 s7 = (length | 0) > 7 ? HEAP[offset | 7] | 0 : 0;
1622 s8 = (length | 0) > 8 ? HEAP[offset | 8] | 0 : 0;
1623 s9 = (length | 0) > 9 ? HEAP[offset | 9] | 0 : 0;
1624 sA = (length | 0) > 10 ? HEAP[offset | 10] | 0 : 0;
1625 sB = (length | 0) > 11 ? HEAP[offset | 11] | 0 : 0;
1626 sC = (length | 0) > 12 ? HEAP[offset | 12] | 0 : 0;
1627 sD = (length | 0) > 13 ? HEAP[offset | 13] | 0 : 0;
1628 sE = (length | 0) > 14 ? HEAP[offset | 14] | 0 : 0;
1629 _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);
1630 HEAP[offset] = s0 ^ S0;
1631 if ((length | 0) > 1) HEAP[offset | 1] = s1 ^ S1;
1632 if ((length | 0) > 2) HEAP[offset | 2] = s2 ^ S2;
1633 if ((length | 0) > 3) HEAP[offset | 3] = s3 ^ S3;
1634 if ((length | 0) > 4) HEAP[offset | 4] = s4 ^ S4;
1635 if ((length | 0) > 5) HEAP[offset | 5] = s5 ^ S5;
1636 if ((length | 0) > 6) HEAP[offset | 6] = s6 ^ S6;
1637 if ((length | 0) > 7) HEAP[offset | 7] = s7 ^ S7;
1638 if ((length | 0) > 8) HEAP[offset | 8] = s8 ^ S8;
1639 if ((length | 0) > 9) HEAP[offset | 9] = s9 ^ S9;
1640 if ((length | 0) > 10) HEAP[offset | 10] = sA ^ SA;
1641 if ((length | 0) > 11) HEAP[offset | 11] = sB ^ SB;
1642 if ((length | 0) > 12) HEAP[offset | 12] = sC ^ SC;
1643 if ((length | 0) > 13) HEAP[offset | 13] = sD ^ SD;
1644 if ((length | 0) > 14) HEAP[offset | 14] = sE ^ SE;
1645 _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);
1646 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1647 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1648 encrypted = encrypted + length | 0;
1649 offset = offset + length | 0;
1650 length = 0;
1651 counter1 = counter1 + 1 | 0;
1652 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1653 }
1654 return encrypted | 0;
1655 }
1656 function ccm_decrypt(offset, length, nonce0, nonce1, nonce2, nonce3, nonce4, nonce5, nonce6, nonce7, nonce8, nonce9, nonceA, nonceB, nonceC, nonceD, counter0, counter1) {
1657 offset = offset | 0;
1658 length = length | 0;
1659 nonce0 = nonce0 | 0;
1660 nonce1 = nonce1 | 0;
1661 nonce2 = nonce2 | 0;
1662 nonce3 = nonce3 | 0;
1663 nonce4 = nonce4 | 0;
1664 nonce5 = nonce5 | 0;
1665 nonce6 = nonce6 | 0;
1666 nonce7 = nonce7 | 0;
1667 nonce8 = nonce8 | 0;
1668 nonce9 = nonce9 | 0;
1669 nonceA = nonceA | 0;
1670 nonceB = nonceB | 0;
1671 nonceC = nonceC | 0;
1672 nonceD = nonceD | 0;
1673 counter0 = counter0 | 0;
1674 counter1 = counter1 | 0;
1675 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;
1676 if (offset & 15) return -1;
1677 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1678 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1679 while ((length | 0) >= 16) {
1680 _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);
1681 HEAP[offset] = s0 = HEAP[offset] ^ S0;
1682 HEAP[offset | 1] = s1 = HEAP[offset | 1] ^ S1;
1683 HEAP[offset | 2] = s2 = HEAP[offset | 2] ^ S2;
1684 HEAP[offset | 3] = s3 = HEAP[offset | 3] ^ S3;
1685 HEAP[offset | 4] = s4 = HEAP[offset | 4] ^ S4;
1686 HEAP[offset | 5] = s5 = HEAP[offset | 5] ^ S5;
1687 HEAP[offset | 6] = s6 = HEAP[offset | 6] ^ S6;
1688 HEAP[offset | 7] = s7 = HEAP[offset | 7] ^ S7;
1689 HEAP[offset | 8] = s8 = HEAP[offset | 8] ^ S8;
1690 HEAP[offset | 9] = s9 = HEAP[offset | 9] ^ S9;
1691 HEAP[offset | 10] = sA = HEAP[offset | 10] ^ SA;
1692 HEAP[offset | 11] = sB = HEAP[offset | 11] ^ SB;
1693 HEAP[offset | 12] = sC = HEAP[offset | 12] ^ SC;
1694 HEAP[offset | 13] = sD = HEAP[offset | 13] ^ SD;
1695 HEAP[offset | 14] = sE = HEAP[offset | 14] ^ SE;
1696 HEAP[offset | 15] = sF = HEAP[offset | 15] ^ SF;
1697 _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);
1698 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1699 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1700 decrypted = decrypted + 16 | 0;
1701 offset = offset + 16 | 0;
1702 length = length - 16 | 0;
1703 counter1 = counter1 + 1 | 0;
1704 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1705 }
1706 if ((length | 0) > 0) {
1707 _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);
1708 s0 = HEAP[offset] ^ S0;
1709 s1 = (length | 0) > 1 ? HEAP[offset | 1] ^ S1 : 0;
1710 s2 = (length | 0) > 2 ? HEAP[offset | 2] ^ S2 : 0;
1711 s3 = (length | 0) > 3 ? HEAP[offset | 3] ^ S3 : 0;
1712 s4 = (length | 0) > 4 ? HEAP[offset | 4] ^ S4 : 0;
1713 s5 = (length | 0) > 5 ? HEAP[offset | 5] ^ S5 : 0;
1714 s6 = (length | 0) > 6 ? HEAP[offset | 6] ^ S6 : 0;
1715 s7 = (length | 0) > 7 ? HEAP[offset | 7] ^ S7 : 0;
1716 s8 = (length | 0) > 8 ? HEAP[offset | 8] ^ S8 : 0;
1717 s9 = (length | 0) > 9 ? HEAP[offset | 9] ^ S9 : 0;
1718 sA = (length | 0) > 10 ? HEAP[offset | 10] ^ SA : 0;
1719 sB = (length | 0) > 11 ? HEAP[offset | 11] ^ SB : 0;
1720 sC = (length | 0) > 12 ? HEAP[offset | 12] ^ SC : 0;
1721 sD = (length | 0) > 13 ? HEAP[offset | 13] ^ SD : 0;
1722 sE = (length | 0) > 14 ? HEAP[offset | 14] ^ SE : 0;
1723 sF = (length | 0) > 15 ? HEAP[offset | 15] ^ SF : 0;
1724 HEAP[offset] = s0;
1725 if ((length | 0) > 1) HEAP[offset | 1] = s1;
1726 if ((length | 0) > 2) HEAP[offset | 2] = s2;
1727 if ((length | 0) > 3) HEAP[offset | 3] = s3;
1728 if ((length | 0) > 4) HEAP[offset | 4] = s4;
1729 if ((length | 0) > 5) HEAP[offset | 5] = s5;
1730 if ((length | 0) > 6) HEAP[offset | 6] = s6;
1731 if ((length | 0) > 7) HEAP[offset | 7] = s7;
1732 if ((length | 0) > 8) HEAP[offset | 8] = s8;
1733 if ((length | 0) > 9) HEAP[offset | 9] = s9;
1734 if ((length | 0) > 10) HEAP[offset | 10] = sA;
1735 if ((length | 0) > 11) HEAP[offset | 11] = sB;
1736 if ((length | 0) > 12) HEAP[offset | 12] = sC;
1737 if ((length | 0) > 13) HEAP[offset | 13] = sD;
1738 if ((length | 0) > 14) HEAP[offset | 14] = sE;
1739 _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);
1740 iv0 = S0, iv1 = S1, iv2 = S2, iv3 = S3, iv4 = S4, iv5 = S5, iv6 = S6, iv7 = S7,
1741 iv8 = S8, iv9 = S9, ivA = SA, ivB = SB, ivC = SC, ivD = SD, ivE = SE, ivF = SF;
1742 decrypted = decrypted + length | 0;
1743 offset = offset + length | 0;
1744 length = 0;
1745 counter1 = counter1 + 1 | 0;
1746 if ((counter1 | 0) == 0) counter0 = counter0 + 1 | 0;
1747 }
1748 return decrypted | 0;
1749 }
1750 function cfb_encrypt(offset, length) {
1751 offset = offset | 0;
1752 length = length | 0;
1753 var encrypted = 0;
1754 if (offset & 15) return -1;
1755 while ((length | 0) >= 16) {
1756 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1757 S0 = S0 ^ HEAP[offset];
1758 S1 = S1 ^ HEAP[offset | 1];
1759 S2 = S2 ^ HEAP[offset | 2];
1760 S3 = S3 ^ HEAP[offset | 3];
1761 S4 = S4 ^ HEAP[offset | 4];
1762 S5 = S5 ^ HEAP[offset | 5];
1763 S6 = S6 ^ HEAP[offset | 6];
1764 S7 = S7 ^ HEAP[offset | 7];
1765 S8 = S8 ^ HEAP[offset | 8];
1766 S9 = S9 ^ HEAP[offset | 9];
1767 SA = SA ^ HEAP[offset | 10];
1768 SB = SB ^ HEAP[offset | 11];
1769 SC = SC ^ HEAP[offset | 12];
1770 SD = SD ^ HEAP[offset | 13];
1771 SE = SE ^ HEAP[offset | 14];
1772 SF = SF ^ HEAP[offset | 15];
1773 HEAP[offset] = S0;
1774 HEAP[offset | 1] = S1;
1775 HEAP[offset | 2] = S2;
1776 HEAP[offset | 3] = S3;
1777 HEAP[offset | 4] = S4;
1778 HEAP[offset | 5] = S5;
1779 HEAP[offset | 6] = S6;
1780 HEAP[offset | 7] = S7;
1781 HEAP[offset | 8] = S8;
1782 HEAP[offset | 9] = S9;
1783 HEAP[offset | 10] = SA;
1784 HEAP[offset | 11] = SB;
1785 HEAP[offset | 12] = SC;
1786 HEAP[offset | 13] = SD;
1787 HEAP[offset | 14] = SE;
1788 HEAP[offset | 15] = SF;
1789 offset = offset + 16 | 0;
1790 length = length - 16 | 0;
1791 encrypted = encrypted + 16 | 0;
1792 }
1793 if ((length | 0) > 0) {
1794 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1795 HEAP[offset] = HEAP[offset] ^ S0;
1796 if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1;
1797 if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2;
1798 if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3;
1799 if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4;
1800 if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5;
1801 if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6;
1802 if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7;
1803 if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8;
1804 if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9;
1805 if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA;
1806 if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB;
1807 if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC;
1808 if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD;
1809 if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE;
1810 encrypted = encrypted + length | 0;
1811 offset = offset + length | 0;
1812 length = 0;
1813 }
1814 return encrypted | 0;
1815 }
1816 function cfb_decrypt(offset, length) {
1817 offset = offset | 0;
1818 length = length | 0;
1819 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;
1820 if (offset & 15) return -1;
1821 while ((length | 0) >= 16) {
1822 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1823 iv0 = HEAP[offset] | 0;
1824 iv1 = HEAP[offset | 1] | 0;
1825 iv2 = HEAP[offset | 2] | 0;
1826 iv3 = HEAP[offset | 3] | 0;
1827 iv4 = HEAP[offset | 4] | 0;
1828 iv5 = HEAP[offset | 5] | 0;
1829 iv6 = HEAP[offset | 6] | 0;
1830 iv7 = HEAP[offset | 7] | 0;
1831 iv8 = HEAP[offset | 8] | 0;
1832 iv9 = HEAP[offset | 9] | 0;
1833 ivA = HEAP[offset | 10] | 0;
1834 ivB = HEAP[offset | 11] | 0;
1835 ivC = HEAP[offset | 12] | 0;
1836 ivD = HEAP[offset | 13] | 0;
1837 ivE = HEAP[offset | 14] | 0;
1838 ivF = HEAP[offset | 15] | 0;
1839 HEAP[offset] = S0 ^ iv0;
1840 HEAP[offset | 1] = S1 ^ iv1;
1841 HEAP[offset | 2] = S2 ^ iv2;
1842 HEAP[offset | 3] = S3 ^ iv3;
1843 HEAP[offset | 4] = S4 ^ iv4;
1844 HEAP[offset | 5] = S5 ^ iv5;
1845 HEAP[offset | 6] = S6 ^ iv6;
1846 HEAP[offset | 7] = S7 ^ iv7;
1847 HEAP[offset | 8] = S8 ^ iv8;
1848 HEAP[offset | 9] = S9 ^ iv9;
1849 HEAP[offset | 10] = SA ^ ivA;
1850 HEAP[offset | 11] = SB ^ ivB;
1851 HEAP[offset | 12] = SC ^ ivC;
1852 HEAP[offset | 13] = SD ^ ivD;
1853 HEAP[offset | 14] = SE ^ ivE;
1854 HEAP[offset | 15] = SF ^ ivF;
1855 S0 = iv0;
1856 S1 = iv1;
1857 S2 = iv2;
1858 S3 = iv3;
1859 S4 = iv4;
1860 S5 = iv5;
1861 S6 = iv6;
1862 S7 = iv7;
1863 S8 = iv8;
1864 S9 = iv9;
1865 SA = ivA;
1866 SB = ivB;
1867 SC = ivC;
1868 SD = ivD;
1869 SE = ivE;
1870 SF = ivF;
1871 offset = offset + 16 | 0;
1872 length = length - 16 | 0;
1873 decrypted = decrypted + 16 | 0;
1874 }
1875 if ((length | 0) > 0) {
1876 _encrypt(S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, SA, SB, SC, SD, SE, SF);
1877 HEAP[offset] = HEAP[offset] ^ S0;
1878 if ((length | 0) > 1) HEAP[offset | 1] = HEAP[offset | 1] ^ S1;
1879 if ((length | 0) > 2) HEAP[offset | 2] = HEAP[offset | 2] ^ S2;
1880 if ((length | 0) > 3) HEAP[offset | 3] = HEAP[offset | 3] ^ S3;
1881 if ((length | 0) > 4) HEAP[offset | 4] = HEAP[offset | 4] ^ S4;
1882 if ((length | 0) > 5) HEAP[offset | 5] = HEAP[offset | 5] ^ S5;
1883 if ((length | 0) > 6) HEAP[offset | 6] = HEAP[offset | 6] ^ S6;
1884 if ((length | 0) > 7) HEAP[offset | 7] = HEAP[offset | 7] ^ S7;
1885 if ((length | 0) > 8) HEAP[offset | 8] = HEAP[offset | 8] ^ S8;
1886 if ((length | 0) > 9) HEAP[offset | 9] = HEAP[offset | 9] ^ S9;
1887 if ((length | 0) > 10) HEAP[offset | 10] = HEAP[offset | 10] ^ SA;
1888 if ((length | 0) > 11) HEAP[offset | 11] = HEAP[offset | 11] ^ SB;
1889 if ((length | 0) > 12) HEAP[offset | 12] = HEAP[offset | 12] ^ SC;
1890 if ((length | 0) > 13) HEAP[offset | 13] = HEAP[offset | 13] ^ SD;
1891 if ((length | 0) > 14) HEAP[offset | 14] = HEAP[offset | 14] ^ SE;
1892 decrypted = decrypted + length | 0;
1893 offset = offset + length | 0;
1894 length = 0;
1895 }
1896 return decrypted | 0;
1897 }
1898 return {
1899 init_state: init_state,
1900 save_state: save_state,
1901 init_key_128: init_key_128,
1902 init_key_256: init_key_256,
1903 cbc_encrypt: cbc_encrypt,
1904 cbc_decrypt: cbc_decrypt,
1905 cbc_mac: cbc_mac,
1906 ccm_encrypt: ccm_encrypt,
1907 ccm_decrypt: ccm_decrypt,
1908 cfb_encrypt: cfb_encrypt,
1909 cfb_decrypt: cfb_decrypt
1910 };
1911 }
1912 function aes_asm(stdlib, foreign, buffer) {
1913 var heap = new Uint8Array(buffer);
1914 heap.set(_aes_tables);
1915 return _aes_asm(stdlib, foreign, buffer);
1916 }
1917 var _aes_block_size = 16;
1918 function _aes_constructor(options) {
1919 options = options || {};
1920 options.heapSize = options.heapSize || 4096;
1921 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
1922 this.BLOCK_SIZE = _aes_block_size;
1923 this.heap = options.heap || new Uint8Array(options.heapSize);
1924 this.asm = options.asm || aes_asm(global, null, this.heap.buffer);
1925 this.pos = _aes_heap_start;
1926 this.len = 0;
1927 this.key = null;
1928 this.result = null;
1929 this.reset(options);
1930 }
1931 function _aes_reset(options) {
1932 options = options || {};
1933 this.result = null;
1934 this.pos = _aes_heap_start;
1935 this.len = 0;
1936 var asm = this.asm;
1937 var key = options.key;
1938 if (key !== undefined) {
1939 if (is_buffer(key) || is_bytes(key)) {
1940 key = new Uint8Array(key);
1941 } else if (is_string(key)) {
1942 var str = key;
1943 key = new Uint8Array(str.length);
1944 for (var i = 0; i < str.length; ++i) key[i] = str.charCodeAt(i);
1945 } else {
1946 throw new TypeError("unexpected key type");
1947 }
1948 if (key.length === 16) {
1949 this.key = key;
1950 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]);
1951 } else if (key.length === 24) {
1952 throw new IllegalArgumentError("illegal key size");
1953 } else if (key.length === 32) {
1954 this.key = key;
1955 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]);
1956 } else {
1957 throw new IllegalArgumentError("illegal key size");
1958 }
1959 }
1960 return this;
1961 }
1962 function _aes_init_iv(iv) {
1963 var asm = this.asm;
1964 if (iv !== undefined) {
1965 if (is_buffer(iv) || is_bytes(iv)) {
1966 iv = new Uint8Array(iv);
1967 } else if (is_string(iv)) {
1968 var str = iv;
1969 iv = new Uint8Array(str.length);
1970 for (var i = 0; i < str.length; ++i) iv[i] = str.charCodeAt(i);
1971 } else {
1972 throw new TypeError("unexpected iv type");
1973 }
1974 if (iv.length !== _aes_block_size) throw new IllegalArgumentError("illegal iv size");
1975 this.iv = iv;
1976 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]);
1977 } else {
1978 this.iv = null;
1979 asm.init_state.call(asm, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1980 }
1981 }
1982 function _aes_heap_write(heap, hpos, data, dpos, dlen) {
1983 var hlen = heap.byteLength - hpos, wlen = hlen < dlen ? hlen : dlen;
1984 if (is_buffer(data) || is_bytes(data)) {
1985 heap.set(new Uint8Array(data.buffer || data, dpos, wlen), hpos);
1986 } else if (is_string(data)) {
1987 for (var i = 0; i < wlen; ++i) heap[hpos + i] = data.charCodeAt(dpos + i);
1988 } else {
1989 throw new TypeError("unexpected data type");
1990 }
1991 return wlen;
1992 }
1993 function cbc_aes_constructor(options) {
1994 this.padding = true;
1995 this.mode = "cbc";
1996 this.iv = null;
1997 _aes_constructor.call(this, options);
1998 }
1999 function cbc_aes_encrypt_constructor(options) {
2000 cbc_aes_constructor.call(this, options);
2001 }
2002 function cbc_aes_decrypt_constructor(options) {
2003 cbc_aes_constructor.call(this, options);
2004 }
2005 function cbc_aes_reset(options) {
2006 options = options || {};
2007 _aes_reset.call(this, options);
2008 var padding = options.padding;
2009 if (padding !== undefined) {
2010 this.padding = !!padding;
2011 } else {
2012 this.padding = true;
2013 }
2014 _aes_init_iv.call(this, options.iv);
2015 return this;
2016 }
2017 function cbc_aes_encrypt_process(data) {
2018 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2019 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;
2020 var result = new Uint8Array(rlen);
2021 while (dlen > 0) {
2022 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2023 len += wlen;
2024 dpos += wlen;
2025 dlen -= wlen;
2026 wlen = asm.cbc_encrypt(pos, len);
2027 result.set(heap.subarray(pos, pos + wlen), rpos);
2028 rpos += wlen;
2029 if (wlen < len) {
2030 pos += wlen;
2031 len -= wlen;
2032 } else {
2033 pos = _aes_heap_start;
2034 len = 0;
2035 }
2036 }
2037 this.result = result;
2038 this.pos = pos;
2039 this.len = len;
2040 return this;
2041 }
2042 function cbc_aes_encrypt_finish() {
2043 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2044 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);
2045 if (len % _aes_block_size === 0) {
2046 if (padding) rlen += _aes_block_size;
2047 } else if (!padding) {
2048 throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size);
2049 }
2050 var result = new Uint8Array(rlen);
2051 if (len < rlen) {
2052 var plen = _aes_block_size - len % _aes_block_size;
2053 for (var p = 0; p < plen; ++p) heap[pos + len + p] = plen;
2054 len += plen;
2055 }
2056 asm.cbc_encrypt(pos, len);
2057 result.set(heap.subarray(pos, pos + len));
2058 this.result = result;
2059 this.pos = _aes_heap_start;
2060 this.len = 0;
2061 return this;
2062 }
2063 function cbc_aes_encrypt(data) {
2064 var result1 = cbc_aes_encrypt_process.call(this, data).result, result2 = cbc_aes_encrypt_finish.call(this).result, result;
2065 result = new Uint8Array(result1.length + result2.length);
2066 result.set(result1);
2067 result.set(result2, result1.length);
2068 this.result = result;
2069 return this;
2070 }
2071 function cbc_aes_decrypt_process(data) {
2072 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2073 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;
2074 var result = new Uint8Array(rlen);
2075 while (dlen > 0) {
2076 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2077 len += wlen;
2078 dpos += wlen;
2079 dlen -= wlen;
2080 wlen = asm.cbc_decrypt(pos, len - (padding && dlen === 0 && len % _aes_block_size === 0 ? _aes_block_size : 0));
2081 result.set(heap.subarray(pos, pos + wlen), rpos);
2082 rpos += wlen;
2083 if (wlen < len) {
2084 pos += wlen;
2085 len -= wlen;
2086 } else {
2087 pos = _aes_heap_start;
2088 len = 0;
2089 }
2090 }
2091 this.result = result.subarray(0, rpos);
2092 this.pos = pos;
2093 this.len = len;
2094 return this;
2095 }
2096 function cbc_aes_decrypt_finish() {
2097 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2098 var asm = this.asm, heap = this.heap, padding = this.padding, pos = this.pos, len = this.len;
2099 if (len === 0) {
2100 if (!padding) {
2101 this.result = new Uint8Array(0);
2102 this.pos = _aes_heap_start;
2103 this.len = 0;
2104 return this;
2105 } else {
2106 throw new IllegalStateError("padding not found");
2107 }
2108 }
2109 if (len % _aes_block_size !== 0) throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size);
2110 var result = new Uint8Array(len);
2111 asm.cbc_decrypt(pos, len);
2112 result.set(heap.subarray(pos, pos + len));
2113 if (padding) {
2114 var pad = result[len - 1];
2115 result = result.subarray(0, len - pad);
2116 }
2117 this.result = result;
2118 this.pos = _aes_heap_start;
2119 this.len = 0;
2120 return this;
2121 }
2122 function cbc_aes_decrypt(data) {
2123 var result1 = cbc_aes_decrypt_process.call(this, data).result, result2 = cbc_aes_decrypt_finish.call(this).result, result;
2124 result = new Uint8Array(result1.length + result2.length);
2125 result.set(result1);
2126 result.set(result2, result1.length);
2127 this.result = result;
2128 return this;
2129 }
2130 var cbc_aes_encrypt_prototype = cbc_aes_encrypt_constructor.prototype;
2131 cbc_aes_encrypt_prototype.reset = cbc_aes_reset;
2132 cbc_aes_encrypt_prototype.process = cbc_aes_encrypt_process;
2133 cbc_aes_encrypt_prototype.finish = cbc_aes_encrypt_finish;
2134 var cbc_aes_decrypt_prototype = cbc_aes_decrypt_constructor.prototype;
2135 cbc_aes_decrypt_prototype.reset = cbc_aes_reset;
2136 cbc_aes_decrypt_prototype.process = cbc_aes_decrypt_process;
2137 cbc_aes_decrypt_prototype.finish = cbc_aes_decrypt_finish;
2138 var cbc_aes_prototype = cbc_aes_constructor.prototype;
2139 cbc_aes_prototype.reset = cbc_aes_reset;
2140 cbc_aes_prototype.encrypt = cbc_aes_encrypt;
2141 cbc_aes_prototype.decrypt = cbc_aes_decrypt;
2142 function _cbc_mac_process(data) {
2143 var dpos = data.byteOffset || 0, dlen = data.byteLength || data.length || 0, wlen = 0;
2144 while (dlen > 0) {
2145 wlen = _aes_heap_write(this.heap, _aes_heap_start, data, dpos, dlen);
2146 this.asm.cbc_mac(_aes_heap_start, wlen, -1);
2147 dpos += wlen;
2148 dlen -= wlen;
2149 }
2150 }
2151 var _ccm_adata_maxLength = 65279, _ccm_data_maxLength = 68719476720;
2152 function ccm_aes_constructor(options) {
2153 this.padding = false;
2154 this.mode = "ccm";
2155 this.tagSize = _aes_block_size;
2156 this.lengthSize = 4;
2157 this.nonce = null;
2158 this.adata = null;
2159 this.iv = null;
2160 this.dataLength = -1;
2161 this.dataLeft = -1;
2162 this.counter = 1;
2163 _aes_constructor.call(this, options);
2164 }
2165 function ccm_aes_encrypt_constructor(options) {
2166 ccm_aes_constructor.call(this, options);
2167 }
2168 function ccm_aes_decrypt_constructor(options) {
2169 ccm_aes_constructor.call(this, options);
2170 }
2171 function _ccm_calculate_iv() {
2172 var nonce = this.nonce, adata = this.adata, tagSize = this.tagSize, lengthSize = this.lengthSize, dataLength = this.dataLength;
2173 var data = new Uint8Array(_aes_block_size + (adata ? 2 + adata.byteLength : 0));
2174 data[0] = (adata ? 64 : 0) | tagSize - 2 << 2 | lengthSize - 1;
2175 data.set(nonce, 1);
2176 if (lengthSize > 4) data[11] = (dataLength - (dataLength >>> 0)) / 4294967296 & 15;
2177 if (lengthSize > 3) data[12] = dataLength >>> 24;
2178 if (lengthSize > 2) data[13] = dataLength >>> 16 & 255;
2179 data[14] = dataLength >>> 8 & 255;
2180 data[15] = dataLength & 255;
2181 if (adata) {
2182 data[16] = adata.byteLength >>> 8 & 255;
2183 data[17] = adata.byteLength & 255;
2184 data.set(adata, 18);
2185 }
2186 _cbc_mac_process.call(this, data);
2187 this.asm.save_state(_aes_heap_start);
2188 this.iv = new Uint8Array(this.heap.subarray(_aes_heap_start, _aes_heap_start + _aes_block_size));
2189 }
2190 function ccm_aes_reset(options) {
2191 options = options || {};
2192 _aes_reset.call(this, options);
2193 _aes_init_iv.call(this, options.iv);
2194 var tagSize = options.tagSize;
2195 if (tagSize !== undefined) {
2196 if (!is_number(tagSize)) throw new TypeError("tagSize must be a number");
2197 if (tagSize < 4 || tagSize > 16 || tagSize & 1) throw new IllegalArgumentError("illegal tagSize value");
2198 this.tagSize = tagSize;
2199 } else {
2200 this.tagSize = _aes_block_size;
2201 }
2202 var lengthSize = options.lengthSize, nonce = options.nonce;
2203 if (nonce !== undefined) {
2204 if (is_buffer(nonce) || is_bytes(nonce)) {
2205 nonce = new Uint8Array(nonce);
2206 } else if (is_string(nonce)) {
2207 var str = nonce;
2208 nonce = new Uint8Array(str.length);
2209 for (var i = 0; i < str.length; ++i) nonce[i] = str.charCodeAt(i);
2210 } else {
2211 throw new TypeError("unexpected nonce type");
2212 }
2213 if (nonce.length < 10 || nonce.length > 13) throw new IllegalArgumentError("illegal nonce length");
2214 lengthSize = lengthSize || 15 - nonce.length;
2215 this.nonce = nonce;
2216 } else {
2217 this.nonce = null;
2218 }
2219 if (lengthSize !== undefined) {
2220 if (!is_number(lengthSize)) throw new TypeError("lengthSize must be a number");
2221 if (lengthSize < 2 || lengthSize > 5 || nonce.length + lengthSize !== 15) throw new IllegalArgumentError("illegal lengthSize value");
2222 this.lengthSize = lengthSize;
2223 } else {
2224 this.lengthSize = lengthSize = 4;
2225 }
2226 var iv = this.iv;
2227 var counter = options.counter;
2228 if (counter !== undefined) {
2229 if (iv === null) throw new IllegalStateError("iv is also required");
2230 if (!is_number(counter)) throw new TypeError("counter must be a number");
2231 this.counter = counter;
2232 } else {
2233 this.counter = 1;
2234 }
2235 var dataLength = options.dataLength;
2236 if (dataLength !== undefined) {
2237 if (!is_number(dataLength)) throw new TypeError("dataLength must be a number");
2238 if (dataLength < 0 || dataLength > _ccm_data_maxLength || dataLength > Math.pow(2, 8 * lengthSize) - 1) throw new IllegalArgumentError("illegal dataLength value");
2239 this.dataLength = dataLength;
2240 var dataLeft = options.dataLeft || dataLength;
2241 if (!is_number(dataLeft)) throw new TypeError("dataLeft must be a number");
2242 if (dataLeft < 0 || dataLeft > dataLength) throw new IllegalArgumentError("illegal dataLeft value");
2243 this.dataLeft = dataLeft;
2244 } else {
2245 this.dataLength = dataLength = -1;
2246 this.dataLeft = dataLength;
2247 }
2248 var adata = options.adata;
2249 if (adata !== undefined) {
2250 if (iv !== null) throw new IllegalStateError("you must specify either adata or iv, not both");
2251 if (is_buffer(adata) || is_bytes(adata)) {
2252 adata = new Uint8Array(adata);
2253 } else if (is_string(adata)) {
2254 var str = adata;
2255 adata = new Uint8Array(str.length);
2256 for (var i = 0; i < str.length; ++i) adata[i] = str.charCodeAt(i);
2257 } else {
2258 throw new TypeError("unexpected adata type");
2259 }
2260 if (adata.byteLength === 0 || adata.byteLength > _ccm_adata_maxLength) throw new IllegalArgumentError("illegal adata length");
2261 this.adata = adata;
2262 this.counter = 1;
2263 } else {
2264 this.adata = adata = null;
2265 }
2266 if (dataLength !== -1) _ccm_calculate_iv.call(this);
2267 return this;
2268 }
2269 function ccm_aes_encrypt_process(data) {
2270 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2271 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;
2272 if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow");
2273 var result = new Uint8Array(rlen);
2274 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2275 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2276 while (dlen > 0) {
2277 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2278 len += wlen;
2279 dpos += wlen;
2280 dlen -= wlen;
2281 asm_args[0] = pos;
2282 asm_args[1] = len & ~15;
2283 asm_args[16] = counter / 4294967296 >>> 0;
2284 asm_args[17] = counter >>> 0;
2285 wlen = asm.ccm_encrypt.apply(asm, asm_args);
2286 result.set(heap.subarray(pos, pos + wlen), rpos);
2287 counter += wlen >>> 4;
2288 rpos += wlen;
2289 if (wlen < len) {
2290 pos += wlen;
2291 len -= wlen;
2292 } else {
2293 pos = _aes_heap_start;
2294 len = 0;
2295 }
2296 }
2297 this.result = result;
2298 this.counter = counter;
2299 this.pos = pos;
2300 this.len = len;
2301 return this;
2302 }
2303 function ccm_aes_encrypt_finish() {
2304 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2305 var asm = this.asm, heap = this.heap, nonce = this.nonce, counter = this.counter, tagSize = this.tagSize, pos = this.pos, len = this.len, wlen = 0;
2306 var result = new Uint8Array(len + tagSize);
2307 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2308 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2309 asm_args[0] = pos;
2310 asm_args[1] = len;
2311 asm_args[16] = counter / 4294967296 >>> 0;
2312 asm_args[17] = counter >>> 0;
2313 wlen = asm.ccm_encrypt.apply(asm, asm_args);
2314 result.set(heap.subarray(pos, pos + wlen));
2315 counter = 1;
2316 pos = _aes_heap_start;
2317 len = 0;
2318 asm.save_state(_aes_heap_start);
2319 asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0;
2320 asm_args[17] = 0;
2321 asm.ccm_encrypt.apply(asm, asm_args);
2322 result.set(heap.subarray(_aes_heap_start, _aes_heap_start + tagSize), wlen);
2323 this.result = result;
2324 this.counter = counter;
2325 this.pos = pos;
2326 this.len = len;
2327 return this;
2328 }
2329 function ccm_aes_encrypt(data) {
2330 this.dataLength = this.dataLeft = data.byteLength || data.length || 0;
2331 var result1 = ccm_aes_encrypt_process.call(this, data).result, result2 = ccm_aes_encrypt_finish.call(this).result, result;
2332 result = new Uint8Array(result1.length + result2.length);
2333 result.set(result1);
2334 result.set(result2, result1.length);
2335 this.result = result;
2336 return this;
2337 }
2338 function ccm_aes_decrypt_process(data) {
2339 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2340 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;
2341 if ((counter - 1 << 4) + len + dlen > _ccm_data_maxLength) throw new RangeError("counter overflow");
2342 var result = new Uint8Array(rlen);
2343 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2344 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2345 while (dlen > 0) {
2346 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2347 len += wlen;
2348 dpos += wlen;
2349 dlen -= wlen;
2350 asm_args[0] = pos;
2351 asm_args[1] = len + dlen - tagSize >= _aes_block_size ? dlen >= tagSize ? len & ~15 : len + dlen - tagSize & ~15 : 0;
2352 asm_args[16] = counter / 4294967296 >>> 0;
2353 asm_args[17] = counter >>> 0;
2354 wlen = asm.ccm_decrypt.apply(asm, asm_args);
2355 result.set(heap.subarray(pos, pos + wlen), rpos);
2356 counter += wlen >>> 4;
2357 rpos += wlen;
2358 if (wlen < len) {
2359 pos += wlen;
2360 len -= wlen;
2361 } else {
2362 pos = _aes_heap_start;
2363 len = 0;
2364 }
2365 }
2366 this.result = result.subarray(0, rpos);
2367 this.counter = counter;
2368 this.pos = pos;
2369 this.len = len;
2370 return this;
2371 }
2372 function ccm_aes_decrypt_finish() {
2373 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2374 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;
2375 if (len < tagSize) throw new IllegalStateError("authentication tag not found");
2376 var result = new Uint8Array(rlen), atag = new Uint8Array(heap.subarray(pos + rlen, pos + len));
2377 var asm_args = [ 0, 0, this.lengthSize - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2378 for (var i = 0; i < nonce.length; i++) asm_args[3 + i] = nonce[i];
2379 asm_args[0] = pos;
2380 asm_args[1] = rlen;
2381 asm_args[16] = counter / 4294967296 >>> 0;
2382 asm_args[17] = counter >>> 0;
2383 wlen = asm.ccm_decrypt.apply(asm, asm_args);
2384 result.set(heap.subarray(pos, pos + wlen));
2385 counter = 1;
2386 pos = _aes_heap_start;
2387 len = 0;
2388 asm.save_state(_aes_heap_start);
2389 asm_args[0] = _aes_heap_start, asm_args[1] = _aes_block_size, asm_args[16] = 0;
2390 asm_args[17] = 0;
2391 asm.ccm_encrypt.apply(asm, asm_args);
2392 var acheck = 0;
2393 for (var i = 0; i < tagSize; ++i) acheck |= atag[i] ^ heap[_aes_heap_start + i];
2394 if (acheck) throw new SecurityError("data integrity check failed");
2395 this.result = result;
2396 this.counter = counter;
2397 this.pos = pos;
2398 this.len = len;
2399 return this;
2400 }
2401 function ccm_aes_decrypt(data) {
2402 this.dataLength = this.dataLeft = data.byteLength || data.length || 0;
2403 var result1 = ccm_aes_decrypt_process.call(this, data).result, result2 = ccm_aes_decrypt_finish.call(this).result, result;
2404 result = new Uint8Array(result1.length + result2.length);
2405 result.set(result1);
2406 result.set(result2, result1.length);
2407 this.result = result;
2408 return this;
2409 }
2410 var ccm_aes_prototype = ccm_aes_constructor.prototype;
2411 ccm_aes_prototype.reset = ccm_aes_reset;
2412 ccm_aes_prototype.encrypt = ccm_aes_encrypt;
2413 ccm_aes_prototype.decrypt = ccm_aes_decrypt;
2414 var ccm_aes_encrypt_prototype = ccm_aes_encrypt_constructor.prototype;
2415 ccm_aes_encrypt_prototype.reset = ccm_aes_reset;
2416 ccm_aes_encrypt_prototype.process = ccm_aes_encrypt_process;
2417 ccm_aes_encrypt_prototype.finish = ccm_aes_encrypt_finish;
2418 var ccm_aes_decrypt_prototype = ccm_aes_decrypt_constructor.prototype;
2419 ccm_aes_decrypt_prototype.reset = ccm_aes_reset;
2420 ccm_aes_decrypt_prototype.process = ccm_aes_decrypt_process;
2421 ccm_aes_decrypt_prototype.finish = ccm_aes_decrypt_finish;
2422 function cfb_aes_constructor(options) {
2423 this.padding = false;
2424 this.mode = "cfb";
2425 this.iv = null;
2426 _aes_constructor.call(this, options);
2427 }
2428 function cfb_aes_encrypt_constructor(options) {
2429 cfb_aes_constructor.call(this, options);
2430 }
2431 function cfb_aes_decrypt_constructor(options) {
2432 cfb_aes_constructor.call(this, options);
2433 }
2434 function cfb_aes_reset(options) {
2435 options = options || {};
2436 _aes_reset.call(this, options);
2437 _aes_init_iv.call(this, options.iv);
2438 return this;
2439 }
2440 function cfb_aes_encrypt_process(data) {
2441 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2442 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;
2443 var result = new Uint8Array(rlen);
2444 while (dlen > 0) {
2445 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2446 len += wlen;
2447 dpos += wlen;
2448 dlen -= wlen;
2449 wlen = asm.cfb_encrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size));
2450 result.set(heap.subarray(pos, pos + wlen), rpos);
2451 rpos += wlen;
2452 if (wlen < len) {
2453 pos += wlen;
2454 len -= wlen;
2455 } else {
2456 pos = _aes_heap_start;
2457 len = 0;
2458 }
2459 }
2460 this.result = result;
2461 this.pos = pos;
2462 this.len = len;
2463 return this;
2464 }
2465 function cfb_aes_encrypt_finish() {
2466 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2467 var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len;
2468 var result = new Uint8Array(len);
2469 asm.cfb_encrypt(pos, len);
2470 result.set(heap.subarray(pos, pos + len));
2471 this.result = result;
2472 this.pos = _aes_heap_start;
2473 this.len = 0;
2474 return this;
2475 }
2476 function cfb_aes_encrypt(data) {
2477 var result1 = cfb_aes_encrypt_process.call(this, data).result, result2 = cfb_aes_encrypt_finish.call(this).result, result;
2478 result = new Uint8Array(result1.length + result2.length);
2479 result.set(result1);
2480 result.set(result2, result1.length);
2481 this.result = result;
2482 return this;
2483 }
2484 function cfb_aes_decrypt_process(data) {
2485 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2486 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;
2487 var result = new Uint8Array(rlen);
2488 while (dlen > 0) {
2489 wlen = _aes_heap_write(heap, pos + len, data, dpos, dlen);
2490 len += wlen;
2491 dpos += wlen;
2492 dlen -= wlen;
2493 wlen = asm.cfb_decrypt(pos, _aes_block_size * Math.floor(len / _aes_block_size));
2494 result.set(heap.subarray(pos, pos + wlen), rpos);
2495 rpos += wlen;
2496 if (wlen < len) {
2497 pos += wlen;
2498 len -= wlen;
2499 } else {
2500 pos = _aes_heap_start;
2501 len = 0;
2502 }
2503 }
2504 this.result = result.subarray(0, rpos);
2505 this.pos = pos;
2506 this.len = len;
2507 return this;
2508 }
2509 function cfb_aes_decrypt_finish() {
2510 if (!this.key) throw new IllegalStateError("no key is associated with the instance");
2511 var asm = this.asm, heap = this.heap, pos = this.pos, len = this.len;
2512 if (len === 0) {
2513 this.result = new Uint8Array(0);
2514 this.pos = _aes_heap_start;
2515 this.len = 0;
2516 return this;
2517 }
2518 var result = new Uint8Array(len);
2519 asm.cfb_decrypt(pos, len);
2520 result.set(heap.subarray(pos, pos + len));
2521 this.result = result;
2522 this.pos = _aes_heap_start;
2523 this.len = 0;
2524 return this;
2525 }
2526 function cfb_aes_decrypt(data) {
2527 var result1 = cfb_aes_decrypt_process.call(this, data).result, result2 = cfb_aes_decrypt_finish.call(this).result, result;
2528 result = new Uint8Array(result1.length + result2.length);
2529 result.set(result1);
2530 result.set(result2, result1.length);
2531 this.result = result;
2532 return this;
2533 }
2534 var cfb_aes_encrypt_prototype = cfb_aes_encrypt_constructor.prototype;
2535 cfb_aes_encrypt_prototype.reset = cfb_aes_reset;
2536 cfb_aes_encrypt_prototype.process = cfb_aes_encrypt_process;
2537 cfb_aes_encrypt_prototype.finish = cfb_aes_encrypt_finish;
2538 var cfb_aes_decrypt_prototype = cfb_aes_decrypt_constructor.prototype;
2539 cfb_aes_decrypt_prototype.reset = cfb_aes_reset;
2540 cfb_aes_decrypt_prototype.process = cfb_aes_decrypt_process;
2541 cfb_aes_decrypt_prototype.finish = cfb_aes_decrypt_finish;
2542 var cfb_aes_prototype = cfb_aes_constructor.prototype;
2543 cfb_aes_prototype.reset = cfb_aes_reset;
2544 cfb_aes_prototype.encrypt = cfb_aes_encrypt;
2545 cfb_aes_prototype.decrypt = cfb_aes_decrypt;
2546 function sha256_asm(stdlib, foreign, buffer) {
2547 // Closure Compiler warning - commented out
2548 //"use asm";
2549 var H0 = 0, H1 = 0, H2 = 0, H3 = 0, H4 = 0, H5 = 0, H6 = 0, H7 = 0, TOTAL = 0;
2550 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;
2551 var HEAP = new stdlib.Uint8Array(buffer);
2552 function _core(w0, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15) {
2553 w0 = w0 | 0;
2554 w1 = w1 | 0;
2555 w2 = w2 | 0;
2556 w3 = w3 | 0;
2557 w4 = w4 | 0;
2558 w5 = w5 | 0;
2559 w6 = w6 | 0;
2560 w7 = w7 | 0;
2561 w8 = w8 | 0;
2562 w9 = w9 | 0;
2563 w10 = w10 | 0;
2564 w11 = w11 | 0;
2565 w12 = w12 | 0;
2566 w13 = w13 | 0;
2567 w14 = w14 | 0;
2568 w15 = w15 | 0;
2569 var a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, t = 0;
2570 a = H0;
2571 b = H1;
2572 c = H2;
2573 d = H3;
2574 e = H4;
2575 f = H5;
2576 g = H6;
2577 h = H7;
2578 t = w0 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1116352408 | 0;
2579 h = g;
2580 g = f;
2581 f = e;
2582 e = d + t | 0;
2583 d = c;
2584 c = b;
2585 b = a;
2586 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2587 t = w1 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1899447441 | 0;
2588 h = g;
2589 g = f;
2590 f = e;
2591 e = d + t | 0;
2592 d = c;
2593 c = b;
2594 b = a;
2595 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2596 t = w2 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3049323471 | 0;
2597 h = g;
2598 g = f;
2599 f = e;
2600 e = d + t | 0;
2601 d = c;
2602 c = b;
2603 b = a;
2604 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2605 t = w3 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3921009573 | 0;
2606 h = g;
2607 g = f;
2608 f = e;
2609 e = d + t | 0;
2610 d = c;
2611 c = b;
2612 b = a;
2613 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2614 t = w4 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 961987163 | 0;
2615 h = g;
2616 g = f;
2617 f = e;
2618 e = d + t | 0;
2619 d = c;
2620 c = b;
2621 b = a;
2622 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2623 t = w5 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1508970993 | 0;
2624 h = g;
2625 g = f;
2626 f = e;
2627 e = d + t | 0;
2628 d = c;
2629 c = b;
2630 b = a;
2631 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2632 t = w6 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2453635748 | 0;
2633 h = g;
2634 g = f;
2635 f = e;
2636 e = d + t | 0;
2637 d = c;
2638 c = b;
2639 b = a;
2640 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2641 t = w7 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2870763221 | 0;
2642 h = g;
2643 g = f;
2644 f = e;
2645 e = d + t | 0;
2646 d = c;
2647 c = b;
2648 b = a;
2649 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2650 t = w8 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3624381080 | 0;
2651 h = g;
2652 g = f;
2653 f = e;
2654 e = d + t | 0;
2655 d = c;
2656 c = b;
2657 b = a;
2658 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2659 t = w9 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 310598401 | 0;
2660 h = g;
2661 g = f;
2662 f = e;
2663 e = d + t | 0;
2664 d = c;
2665 c = b;
2666 b = a;
2667 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2668 t = w10 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 607225278 | 0;
2669 h = g;
2670 g = f;
2671 f = e;
2672 e = d + t | 0;
2673 d = c;
2674 c = b;
2675 b = a;
2676 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2677 t = w11 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1426881987 | 0;
2678 h = g;
2679 g = f;
2680 f = e;
2681 e = d + t | 0;
2682 d = c;
2683 c = b;
2684 b = a;
2685 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2686 t = w12 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1925078388 | 0;
2687 h = g;
2688 g = f;
2689 f = e;
2690 e = d + t | 0;
2691 d = c;
2692 c = b;
2693 b = a;
2694 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2695 t = w13 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2162078206 | 0;
2696 h = g;
2697 g = f;
2698 f = e;
2699 e = d + t | 0;
2700 d = c;
2701 c = b;
2702 b = a;
2703 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2704 t = w14 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2614888103 | 0;
2705 h = g;
2706 g = f;
2707 f = e;
2708 e = d + t | 0;
2709 d = c;
2710 c = b;
2711 b = a;
2712 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2713 t = w15 + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3248222580 | 0;
2714 h = g;
2715 g = f;
2716 f = e;
2717 e = d + t | 0;
2718 d = c;
2719 c = b;
2720 b = a;
2721 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2722 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;
2723 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3835390401 | 0;
2724 h = g;
2725 g = f;
2726 f = e;
2727 e = d + t | 0;
2728 d = c;
2729 c = b;
2730 b = a;
2731 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2732 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;
2733 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4022224774 | 0;
2734 h = g;
2735 g = f;
2736 f = e;
2737 e = d + t | 0;
2738 d = c;
2739 c = b;
2740 b = a;
2741 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2742 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;
2743 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 264347078 | 0;
2744 h = g;
2745 g = f;
2746 f = e;
2747 e = d + t | 0;
2748 d = c;
2749 c = b;
2750 b = a;
2751 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2752 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;
2753 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 604807628 | 0;
2754 h = g;
2755 g = f;
2756 f = e;
2757 e = d + t | 0;
2758 d = c;
2759 c = b;
2760 b = a;
2761 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2762 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;
2763 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 770255983 | 0;
2764 h = g;
2765 g = f;
2766 f = e;
2767 e = d + t | 0;
2768 d = c;
2769 c = b;
2770 b = a;
2771 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2772 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;
2773 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1249150122 | 0;
2774 h = g;
2775 g = f;
2776 f = e;
2777 e = d + t | 0;
2778 d = c;
2779 c = b;
2780 b = a;
2781 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2782 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;
2783 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1555081692 | 0;
2784 h = g;
2785 g = f;
2786 f = e;
2787 e = d + t | 0;
2788 d = c;
2789 c = b;
2790 b = a;
2791 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2792 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;
2793 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1996064986 | 0;
2794 h = g;
2795 g = f;
2796 f = e;
2797 e = d + t | 0;
2798 d = c;
2799 c = b;
2800 b = a;
2801 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2802 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;
2803 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2554220882 | 0;
2804 h = g;
2805 g = f;
2806 f = e;
2807 e = d + t | 0;
2808 d = c;
2809 c = b;
2810 b = a;
2811 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2812 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;
2813 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2821834349 | 0;
2814 h = g;
2815 g = f;
2816 f = e;
2817 e = d + t | 0;
2818 d = c;
2819 c = b;
2820 b = a;
2821 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2822 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;
2823 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2952996808 | 0;
2824 h = g;
2825 g = f;
2826 f = e;
2827 e = d + t | 0;
2828 d = c;
2829 c = b;
2830 b = a;
2831 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2832 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;
2833 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3210313671 | 0;
2834 h = g;
2835 g = f;
2836 f = e;
2837 e = d + t | 0;
2838 d = c;
2839 c = b;
2840 b = a;
2841 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2842 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;
2843 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3336571891 | 0;
2844 h = g;
2845 g = f;
2846 f = e;
2847 e = d + t | 0;
2848 d = c;
2849 c = b;
2850 b = a;
2851 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2852 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;
2853 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3584528711 | 0;
2854 h = g;
2855 g = f;
2856 f = e;
2857 e = d + t | 0;
2858 d = c;
2859 c = b;
2860 b = a;
2861 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2862 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;
2863 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 113926993 | 0;
2864 h = g;
2865 g = f;
2866 f = e;
2867 e = d + t | 0;
2868 d = c;
2869 c = b;
2870 b = a;
2871 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2872 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;
2873 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 338241895 | 0;
2874 h = g;
2875 g = f;
2876 f = e;
2877 e = d + t | 0;
2878 d = c;
2879 c = b;
2880 b = a;
2881 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2882 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;
2883 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 666307205 | 0;
2884 h = g;
2885 g = f;
2886 f = e;
2887 e = d + t | 0;
2888 d = c;
2889 c = b;
2890 b = a;
2891 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2892 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;
2893 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 773529912 | 0;
2894 h = g;
2895 g = f;
2896 f = e;
2897 e = d + t | 0;
2898 d = c;
2899 c = b;
2900 b = a;
2901 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2902 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;
2903 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1294757372 | 0;
2904 h = g;
2905 g = f;
2906 f = e;
2907 e = d + t | 0;
2908 d = c;
2909 c = b;
2910 b = a;
2911 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2912 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;
2913 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1396182291 | 0;
2914 h = g;
2915 g = f;
2916 f = e;
2917 e = d + t | 0;
2918 d = c;
2919 c = b;
2920 b = a;
2921 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2922 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;
2923 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1695183700 | 0;
2924 h = g;
2925 g = f;
2926 f = e;
2927 e = d + t | 0;
2928 d = c;
2929 c = b;
2930 b = a;
2931 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2932 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;
2933 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1986661051 | 0;
2934 h = g;
2935 g = f;
2936 f = e;
2937 e = d + t | 0;
2938 d = c;
2939 c = b;
2940 b = a;
2941 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2942 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;
2943 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2177026350 | 0;
2944 h = g;
2945 g = f;
2946 f = e;
2947 e = d + t | 0;
2948 d = c;
2949 c = b;
2950 b = a;
2951 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2952 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;
2953 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2456956037 | 0;
2954 h = g;
2955 g = f;
2956 f = e;
2957 e = d + t | 0;
2958 d = c;
2959 c = b;
2960 b = a;
2961 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2962 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;
2963 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2730485921 | 0;
2964 h = g;
2965 g = f;
2966 f = e;
2967 e = d + t | 0;
2968 d = c;
2969 c = b;
2970 b = a;
2971 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2972 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;
2973 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2820302411 | 0;
2974 h = g;
2975 g = f;
2976 f = e;
2977 e = d + t | 0;
2978 d = c;
2979 c = b;
2980 b = a;
2981 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2982 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;
2983 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3259730800 | 0;
2984 h = g;
2985 g = f;
2986 f = e;
2987 e = d + t | 0;
2988 d = c;
2989 c = b;
2990 b = a;
2991 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
2992 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;
2993 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3345764771 | 0;
2994 h = g;
2995 g = f;
2996 f = e;
2997 e = d + t | 0;
2998 d = c;
2999 c = b;
3000 b = a;
3001 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3002 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;
3003 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3516065817 | 0;
3004 h = g;
3005 g = f;
3006 f = e;
3007 e = d + t | 0;
3008 d = c;
3009 c = b;
3010 b = a;
3011 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3012 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;
3013 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3600352804 | 0;
3014 h = g;
3015 g = f;
3016 f = e;
3017 e = d + t | 0;
3018 d = c;
3019 c = b;
3020 b = a;
3021 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3022 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;
3023 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 4094571909 | 0;
3024 h = g;
3025 g = f;
3026 f = e;
3027 e = d + t | 0;
3028 d = c;
3029 c = b;
3030 b = a;
3031 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3032 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;
3033 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 275423344 | 0;
3034 h = g;
3035 g = f;
3036 f = e;
3037 e = d + t | 0;
3038 d = c;
3039 c = b;
3040 b = a;
3041 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3042 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;
3043 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 430227734 | 0;
3044 h = g;
3045 g = f;
3046 f = e;
3047 e = d + t | 0;
3048 d = c;
3049 c = b;
3050 b = a;
3051 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3052 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;
3053 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 506948616 | 0;
3054 h = g;
3055 g = f;
3056 f = e;
3057 e = d + t | 0;
3058 d = c;
3059 c = b;
3060 b = a;
3061 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3062 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;
3063 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 659060556 | 0;
3064 h = g;
3065 g = f;
3066 f = e;
3067 e = d + t | 0;
3068 d = c;
3069 c = b;
3070 b = a;
3071 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3072 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;
3073 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 883997877 | 0;
3074 h = g;
3075 g = f;
3076 f = e;
3077 e = d + t | 0;
3078 d = c;
3079 c = b;
3080 b = a;
3081 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3082 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;
3083 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 958139571 | 0;
3084 h = g;
3085 g = f;
3086 f = e;
3087 e = d + t | 0;
3088 d = c;
3089 c = b;
3090 b = a;
3091 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3092 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;
3093 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1322822218 | 0;
3094 h = g;
3095 g = f;
3096 f = e;
3097 e = d + t | 0;
3098 d = c;
3099 c = b;
3100 b = a;
3101 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3102 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;
3103 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1537002063 | 0;
3104 h = g;
3105 g = f;
3106 f = e;
3107 e = d + t | 0;
3108 d = c;
3109 c = b;
3110 b = a;
3111 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3112 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;
3113 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1747873779 | 0;
3114 h = g;
3115 g = f;
3116 f = e;
3117 e = d + t | 0;
3118 d = c;
3119 c = b;
3120 b = a;
3121 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3122 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;
3123 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 1955562222 | 0;
3124 h = g;
3125 g = f;
3126 f = e;
3127 e = d + t | 0;
3128 d = c;
3129 c = b;
3130 b = a;
3131 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3132 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;
3133 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2024104815 | 0;
3134 h = g;
3135 g = f;
3136 f = e;
3137 e = d + t | 0;
3138 d = c;
3139 c = b;
3140 b = a;
3141 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3142 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;
3143 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2227730452 | 0;
3144 h = g;
3145 g = f;
3146 f = e;
3147 e = d + t | 0;
3148 d = c;
3149 c = b;
3150 b = a;
3151 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3152 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;
3153 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2361852424 | 0;
3154 h = g;
3155 g = f;
3156 f = e;
3157 e = d + t | 0;
3158 d = c;
3159 c = b;
3160 b = a;
3161 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3162 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;
3163 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2428436474 | 0;
3164 h = g;
3165 g = f;
3166 f = e;
3167 e = d + t | 0;
3168 d = c;
3169 c = b;
3170 b = a;
3171 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3172 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;
3173 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 2756734187 | 0;
3174 h = g;
3175 g = f;
3176 f = e;
3177 e = d + t | 0;
3178 d = c;
3179 c = b;
3180 b = a;
3181 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3182 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;
3183 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3204031479 | 0;
3184 h = g;
3185 g = f;
3186 f = e;
3187 e = d + t | 0;
3188 d = c;
3189 c = b;
3190 b = a;
3191 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3192 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;
3193 t = t + h + (e >>> 6 ^ e >>> 11 ^ e >>> 25 ^ e << 26 ^ e << 21 ^ e << 7) + (g ^ e & (f ^ g)) + 3329325298 | 0;
3194 h = g;
3195 g = f;
3196 f = e;
3197 e = d + t | 0;
3198 d = c;
3199 c = b;
3200 b = a;
3201 a = t + (b & c ^ d & (b ^ c)) + (b >>> 2 ^ b >>> 13 ^ b >>> 22 ^ b << 30 ^ b << 19 ^ b << 10) | 0;
3202 H0 = H0 + a | 0;
3203 H1 = H1 + b | 0;
3204 H2 = H2 + c | 0;
3205 H3 = H3 + d | 0;
3206 H4 = H4 + e | 0;
3207 H5 = H5 + f | 0;
3208 H6 = H6 + g | 0;
3209 H7 = H7 + h | 0;
3210 }
3211 function _core_heap(offset) {
3212 offset = offset | 0;
3213 _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]);
3214 }
3215 function _state_to_heap(output) {
3216 output = output | 0;
3217 HEAP[output | 0] = H0 >>> 24;
3218 HEAP[output | 1] = H0 >>> 16 & 255;
3219 HEAP[output | 2] = H0 >>> 8 & 255;
3220 HEAP[output | 3] = H0 & 255;
3221 HEAP[output | 4] = H1 >>> 24;
3222 HEAP[output | 5] = H1 >>> 16 & 255;
3223 HEAP[output | 6] = H1 >>> 8 & 255;
3224 HEAP[output | 7] = H1 & 255;
3225 HEAP[output | 8] = H2 >>> 24;
3226 HEAP[output | 9] = H2 >>> 16 & 255;
3227 HEAP[output | 10] = H2 >>> 8 & 255;
3228 HEAP[output | 11] = H2 & 255;
3229 HEAP[output | 12] = H3 >>> 24;
3230 HEAP[output | 13] = H3 >>> 16 & 255;
3231 HEAP[output | 14] = H3 >>> 8 & 255;
3232 HEAP[output | 15] = H3 & 255;
3233 HEAP[output | 16] = H4 >>> 24;
3234 HEAP[output | 17] = H4 >>> 16 & 255;
3235 HEAP[output | 18] = H4 >>> 8 & 255;
3236 HEAP[output | 19] = H4 & 255;
3237 HEAP[output | 20] = H5 >>> 24;
3238 HEAP[output | 21] = H5 >>> 16 & 255;
3239 HEAP[output | 22] = H5 >>> 8 & 255;
3240 HEAP[output | 23] = H5 & 255;
3241 HEAP[output | 24] = H6 >>> 24;
3242 HEAP[output | 25] = H6 >>> 16 & 255;
3243 HEAP[output | 26] = H6 >>> 8 & 255;
3244 HEAP[output | 27] = H6 & 255;
3245 HEAP[output | 28] = H7 >>> 24;
3246 HEAP[output | 29] = H7 >>> 16 & 255;
3247 HEAP[output | 30] = H7 >>> 8 & 255;
3248 HEAP[output | 31] = H7 & 255;
3249 }
3250 function reset() {
3251 H0 = 1779033703;
3252 H1 = 3144134277;
3253 H2 = 1013904242;
3254 H3 = 2773480762;
3255 H4 = 1359893119;
3256 H5 = 2600822924;
3257 H6 = 528734635;
3258 H7 = 1541459225;
3259 TOTAL = 0;
3260 }
3261 function init(h0, h1, h2, h3, h4, h5, h6, h7, total) {
3262 h0 = h0 | 0;
3263 h1 = h1 | 0;
3264 h2 = h2 | 0;
3265 h3 = h3 | 0;
3266 h4 = h4 | 0;
3267 h5 = h5 | 0;
3268 h6 = h6 | 0;
3269 h7 = h7 | 0;
3270 total = total | 0;
3271 H0 = h0;
3272 H1 = h1;
3273 H2 = h2;
3274 H3 = h3;
3275 H4 = h4;
3276 H5 = h5;
3277 H6 = h6;
3278 H7 = h7;
3279 TOTAL = total;
3280 }
3281 function process(offset, length) {
3282 offset = offset | 0;
3283 length = length | 0;
3284 var hashed = 0;
3285 if (offset & 63) return -1;
3286 while ((length | 0) >= 64) {
3287 _core_heap(offset);
3288 offset = offset + 64 | 0;
3289 length = length - 64 | 0;
3290 hashed = hashed + 64 | 0;
3291 }
3292 TOTAL = TOTAL + hashed | 0;
3293 return hashed | 0;
3294 }
3295 function finish(offset, length, output) {
3296 offset = offset | 0;
3297 length = length | 0;
3298 output = output | 0;
3299 var hashed = 0, i = 0;
3300 if (offset & 63) return -1;
3301 if (~output) if (output & 31) return -1;
3302 if ((length | 0) >= 64) {
3303 hashed = process(offset, length) | 0;
3304 if ((hashed | 0) == -1) return -1;
3305 offset = offset + hashed | 0;
3306 length = length - hashed | 0;
3307 }
3308 hashed = hashed + length | 0;
3309 TOTAL = TOTAL + length | 0;
3310 HEAP[offset | length] = 128;
3311 if ((length | 0) >= 56) {
3312 for (i = length + 1 | 0; (i | 0) < 64; i = i + 1 | 0) HEAP[offset | i] = 0;
3313 _core_heap(offset);
3314 length = 0;
3315 HEAP[offset | 0] = 0;
3316 }
3317 for (i = length + 1 | 0; (i | 0) < 59; i = i + 1 | 0) HEAP[offset | i] = 0;
3318 HEAP[offset | 59] = TOTAL >>> 29;
3319 HEAP[offset | 60] = TOTAL >>> 21 & 255;
3320 HEAP[offset | 61] = TOTAL >>> 13 & 255;
3321 HEAP[offset | 62] = TOTAL >>> 5 & 255;
3322 HEAP[offset | 63] = TOTAL << 3 & 255;
3323 _core_heap(offset);
3324 if (~output) _state_to_heap(output);
3325 return hashed | 0;
3326 }
3327 function hmac_reset() {
3328 H0 = I0;
3329 H1 = I1;
3330 H2 = I2;
3331 H3 = I3;
3332 H4 = I4;
3333 H5 = I5;
3334 H6 = I6;
3335 H7 = I7;
3336 TOTAL = 64;
3337 }
3338 function _hmac_opad() {
3339 H0 = O0;
3340 H1 = O1;
3341 H2 = O2;
3342 H3 = O3;
3343 H4 = O4;
3344 H5 = O5;
3345 H6 = O6;
3346 H7 = O7;
3347 TOTAL = 64;
3348 }
3349 function hmac_init(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) {
3350 p0 = p0 | 0;
3351 p1 = p1 | 0;
3352 p2 = p2 | 0;
3353 p3 = p3 | 0;
3354 p4 = p4 | 0;
3355 p5 = p5 | 0;
3356 p6 = p6 | 0;
3357 p7 = p7 | 0;
3358 p8 = p8 | 0;
3359 p9 = p9 | 0;
3360 p10 = p10 | 0;
3361 p11 = p11 | 0;
3362 p12 = p12 | 0;
3363 p13 = p13 | 0;
3364 p14 = p14 | 0;
3365 p15 = p15 | 0;
3366 reset();
3367 _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);
3368 O0 = H0;
3369 O1 = H1;
3370 O2 = H2;
3371 O3 = H3;
3372 O4 = H4;
3373 O5 = H5;
3374 O6 = H6;
3375 O7 = H7;
3376 reset();
3377 _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);
3378 I0 = H0;
3379 I1 = H1;
3380 I2 = H2;
3381 I3 = H3;
3382 I4 = H4;
3383 I5 = H5;
3384 I6 = H6;
3385 I7 = H7;
3386 TOTAL = 64;
3387 }
3388 function hmac_finish(offset, length, output) {
3389 offset = offset | 0;
3390 length = length | 0;
3391 output = output | 0;
3392 var t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, hashed = 0;
3393 if (offset & 63) return -1;
3394 if (~output) if (output & 31) return -1;
3395 hashed = finish(offset, length, -1) | 0;
3396 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3397 _hmac_opad();
3398 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3399 if (~output) _state_to_heap(output);
3400 return hashed | 0;
3401 }
3402 function pbkdf2_generate_block(offset, length, block, count, output) {
3403 offset = offset | 0;
3404 length = length | 0;
3405 block = block | 0;
3406 count = count | 0;
3407 output = output | 0;
3408 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;
3409 if (offset & 63) return -1;
3410 if (~output) if (output & 31) return -1;
3411 HEAP[offset + length | 0] = block >>> 24;
3412 HEAP[offset + length + 1 | 0] = block >>> 16 & 255;
3413 HEAP[offset + length + 2 | 0] = block >>> 8 & 255;
3414 HEAP[offset + length + 3 | 0] = block & 255;
3415 // Closure compiler warning - The result of the 'bitor' operator is not being used
3416 //hmac_finish(offset, length + 4 | 0, -1) | 0;
3417 hmac_finish(offset, length + 4 | 0, -1);
3418 h0 = t0 = H0, h1 = t1 = H1, h2 = t2 = H2, h3 = t3 = H3, h4 = t4 = H4, h5 = t5 = H5,
3419 h6 = t6 = H6, h7 = t7 = H7;
3420 count = count - 1 | 0;
3421 while ((count | 0) > 0) {
3422 hmac_reset();
3423 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3424 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3425 _hmac_opad();
3426 _core(t0, t1, t2, t3, t4, t5, t6, t7, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3427 t0 = H0, t1 = H1, t2 = H2, t3 = H3, t4 = H4, t5 = H5, t6 = H6, t7 = H7;
3428 h0 = h0 ^ H0;
3429 h1 = h1 ^ H1;
3430 h2 = h2 ^ H2;
3431 h3 = h3 ^ H3;
3432 h4 = h4 ^ H4;
3433 h5 = h5 ^ H5;
3434 h6 = h6 ^ H6;
3435 h7 = h7 ^ H7;
3436 count = count - 1 | 0;
3437 }
3438 H0 = h0;
3439 H1 = h1;
3440 H2 = h2;
3441 H3 = h3;
3442 H4 = h4;
3443 H5 = h5;
3444 H6 = h6;
3445 H7 = h7;
3446 if (~output) _state_to_heap(output);
3447 return 0;
3448 }
3449 return {
3450 reset: reset,
3451 init: init,
3452 process: process,
3453 finish: finish,
3454 hmac_reset: hmac_reset,
3455 hmac_init: hmac_init,
3456 hmac_finish: hmac_finish,
3457 pbkdf2_generate_block: pbkdf2_generate_block
3458 };
3459 }
3460 var _sha256_block_size = 64, _sha256_hash_size = 32;
3461 function sha256_constructor(options) {
3462 options = options || {};
3463 options.heapSize = options.heapSize || 4096;
3464 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
3465 this.heap = options.heap || new Uint8Array(options.heapSize);
3466 this.asm = options.asm || sha256_asm(global, null, this.heap.buffer);
3467 this.BLOCK_SIZE = _sha256_block_size;
3468 this.HASH_SIZE = _sha256_hash_size;
3469 this.reset();
3470 }
3471 function sha256_reset() {
3472 this.result = null;
3473 this.pos = 0;
3474 this.len = 0;
3475 this.asm.reset();
3476 return this;
3477 }
3478 function sha256_process(data) {
3479 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
3480 var dpos = 0, dlen = 0, clen = 0;
3481 if (is_buffer(data) || is_bytes(data)) {
3482 dpos = data.byteOffset || 0;
3483 dlen = data.byteLength;
3484 } else if (is_string(data)) {
3485 dlen = data.length;
3486 } else {
3487 throw new TypeError("data isn't of expected type");
3488 }
3489 while (dlen > 0) {
3490 clen = this.heap.byteLength - this.pos - this.len;
3491 clen = clen < dlen ? clen : dlen;
3492 if (is_buffer(data) || is_bytes(data)) {
3493 this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len);
3494 } else {
3495 for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i);
3496 }
3497 this.len += clen;
3498 dpos += clen;
3499 dlen -= clen;
3500 clen = this.asm.process(this.pos, this.len);
3501 if (clen < this.len) {
3502 this.pos += clen;
3503 this.len -= clen;
3504 } else {
3505 this.pos = 0;
3506 this.len = 0;
3507 }
3508 }
3509 return this;
3510 }
3511 function sha256_finish() {
3512 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
3513 this.asm.finish(this.pos, this.len, 0);
3514 this.result = new Uint8Array(_sha256_hash_size);
3515 this.result.set(this.heap.subarray(0, _sha256_hash_size));
3516 this.pos = 0;
3517 this.len = 0;
3518 return this;
3519 }
3520 sha256_constructor.BLOCK_SIZE = _sha256_block_size;
3521 sha256_constructor.HASH_SIZE = _sha256_hash_size;
3522 var sha256_prototype = sha256_constructor.prototype;
3523 sha256_prototype.reset = sha256_reset;
3524 sha256_prototype.process = sha256_process;
3525 sha256_prototype.finish = sha256_finish;
3526 function sha512_asm(stdlib, foreign, buffer) {
3527 // Closure Compiler warning - commented out
3528 //"use asm";
3529 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;
3530 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;
3531 var HEAP = new stdlib.Uint8Array(buffer);
3532 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) {
3533 w0h = w0h | 0;
3534 w0l = w0l | 0;
3535 w1h = w1h | 0;
3536 w1l = w1l | 0;
3537 w2h = w2h | 0;
3538 w2l = w2l | 0;
3539 w3h = w3h | 0;
3540 w3l = w3l | 0;
3541 w4h = w4h | 0;
3542 w4l = w4l | 0;
3543 w5h = w5h | 0;
3544 w5l = w5l | 0;
3545 w6h = w6h | 0;
3546 w6l = w6l | 0;
3547 w7h = w7h | 0;
3548 w7l = w7l | 0;
3549 w8h = w8h | 0;
3550 w8l = w8l | 0;
3551 w9h = w9h | 0;
3552 w9l = w9l | 0;
3553 w10h = w10h | 0;
3554 w10l = w10l | 0;
3555 w11h = w11h | 0;
3556 w11l = w11l | 0;
3557 w12h = w12h | 0;
3558 w12l = w12l | 0;
3559 w13h = w13h | 0;
3560 w13l = w13l | 0;
3561 w14h = w14h | 0;
3562 w14l = w14l | 0;
3563 w15h = w15h | 0;
3564 w15l = w15l | 0;
3565 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;
3566 ah = H0h;
3567 al = H0l;
3568 bh = H1h;
3569 bl = H1l;
3570 ch = H2h;
3571 cl = H2l;
3572 dh = H3h;
3573 dl = H3l;
3574 eh = H4h;
3575 el = H4l;
3576 fh = H5h;
3577 fl = H5l;
3578 gh = H6h;
3579 gl = H6l;
3580 hh = H7h;
3581 hl = H7l;
3582 tl = 3609767458 + w0l | 0;
3583 th = 1116352408 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
3584 tl = tl + hl | 0;
3585 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3586 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3587 tl = tl + xl | 0;
3588 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3589 xl = gl ^ el & (fl ^ gl) | 0;
3590 tl = tl + xl | 0;
3591 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3592 hl = gl;
3593 hh = gh;
3594 gl = fl;
3595 gh = fh;
3596 fl = el;
3597 fh = eh;
3598 el = dl + tl | 0;
3599 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3600 dl = cl;
3601 dh = ch;
3602 cl = bl;
3603 ch = bh;
3604 bl = al;
3605 bh = ah;
3606 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3607 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3608 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3609 al = al + xl | 0;
3610 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3611 tl = 602891725 + w1l | 0;
3612 th = 1899447441 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
3613 tl = tl + hl | 0;
3614 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3615 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3616 tl = tl + xl | 0;
3617 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3618 xl = gl ^ el & (fl ^ gl) | 0;
3619 tl = tl + xl | 0;
3620 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3621 hl = gl;
3622 hh = gh;
3623 gl = fl;
3624 gh = fh;
3625 fl = el;
3626 fh = eh;
3627 el = dl + tl | 0;
3628 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3629 dl = cl;
3630 dh = ch;
3631 cl = bl;
3632 ch = bh;
3633 bl = al;
3634 bh = ah;
3635 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3636 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3637 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3638 al = al + xl | 0;
3639 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3640 tl = 3964484399 + w2l | 0;
3641 th = 3049323471 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
3642 tl = tl + hl | 0;
3643 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3644 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3645 tl = tl + xl | 0;
3646 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3647 xl = gl ^ el & (fl ^ gl) | 0;
3648 tl = tl + xl | 0;
3649 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3650 hl = gl;
3651 hh = gh;
3652 gl = fl;
3653 gh = fh;
3654 fl = el;
3655 fh = eh;
3656 el = dl + tl | 0;
3657 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3658 dl = cl;
3659 dh = ch;
3660 cl = bl;
3661 ch = bh;
3662 bl = al;
3663 bh = ah;
3664 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3665 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3666 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3667 al = al + xl | 0;
3668 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3669 tl = 2173295548 + w3l | 0;
3670 th = 3921009573 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
3671 tl = tl + hl | 0;
3672 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3673 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3674 tl = tl + xl | 0;
3675 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3676 xl = gl ^ el & (fl ^ gl) | 0;
3677 tl = tl + xl | 0;
3678 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3679 hl = gl;
3680 hh = gh;
3681 gl = fl;
3682 gh = fh;
3683 fl = el;
3684 fh = eh;
3685 el = dl + tl | 0;
3686 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3687 dl = cl;
3688 dh = ch;
3689 cl = bl;
3690 ch = bh;
3691 bl = al;
3692 bh = ah;
3693 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3694 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3695 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3696 al = al + xl | 0;
3697 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3698 tl = 4081628472 + w4l | 0;
3699 th = 961987163 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
3700 tl = tl + hl | 0;
3701 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3702 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3703 tl = tl + xl | 0;
3704 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3705 xl = gl ^ el & (fl ^ gl) | 0;
3706 tl = tl + xl | 0;
3707 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3708 hl = gl;
3709 hh = gh;
3710 gl = fl;
3711 gh = fh;
3712 fl = el;
3713 fh = eh;
3714 el = dl + tl | 0;
3715 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3716 dl = cl;
3717 dh = ch;
3718 cl = bl;
3719 ch = bh;
3720 bl = al;
3721 bh = ah;
3722 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3723 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3724 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3725 al = al + xl | 0;
3726 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3727 tl = 3053834265 + w5l | 0;
3728 th = 1508970993 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
3729 tl = tl + hl | 0;
3730 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3731 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3732 tl = tl + xl | 0;
3733 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3734 xl = gl ^ el & (fl ^ gl) | 0;
3735 tl = tl + xl | 0;
3736 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3737 hl = gl;
3738 hh = gh;
3739 gl = fl;
3740 gh = fh;
3741 fl = el;
3742 fh = eh;
3743 el = dl + tl | 0;
3744 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3745 dl = cl;
3746 dh = ch;
3747 cl = bl;
3748 ch = bh;
3749 bl = al;
3750 bh = ah;
3751 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3752 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3753 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3754 al = al + xl | 0;
3755 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3756 tl = 2937671579 + w6l | 0;
3757 th = 2453635748 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
3758 tl = tl + hl | 0;
3759 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3760 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3761 tl = tl + xl | 0;
3762 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3763 xl = gl ^ el & (fl ^ gl) | 0;
3764 tl = tl + xl | 0;
3765 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3766 hl = gl;
3767 hh = gh;
3768 gl = fl;
3769 gh = fh;
3770 fl = el;
3771 fh = eh;
3772 el = dl + tl | 0;
3773 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3774 dl = cl;
3775 dh = ch;
3776 cl = bl;
3777 ch = bh;
3778 bl = al;
3779 bh = ah;
3780 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3781 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3782 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3783 al = al + xl | 0;
3784 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3785 tl = 3664609560 + w7l | 0;
3786 th = 2870763221 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
3787 tl = tl + hl | 0;
3788 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3789 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3790 tl = tl + xl | 0;
3791 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3792 xl = gl ^ el & (fl ^ gl) | 0;
3793 tl = tl + xl | 0;
3794 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3795 hl = gl;
3796 hh = gh;
3797 gl = fl;
3798 gh = fh;
3799 fl = el;
3800 fh = eh;
3801 el = dl + tl | 0;
3802 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3803 dl = cl;
3804 dh = ch;
3805 cl = bl;
3806 ch = bh;
3807 bl = al;
3808 bh = ah;
3809 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3810 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3811 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3812 al = al + xl | 0;
3813 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3814 tl = 2734883394 + w8l | 0;
3815 th = 3624381080 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
3816 tl = tl + hl | 0;
3817 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3818 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3819 tl = tl + xl | 0;
3820 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3821 xl = gl ^ el & (fl ^ gl) | 0;
3822 tl = tl + xl | 0;
3823 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3824 hl = gl;
3825 hh = gh;
3826 gl = fl;
3827 gh = fh;
3828 fl = el;
3829 fh = eh;
3830 el = dl + tl | 0;
3831 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3832 dl = cl;
3833 dh = ch;
3834 cl = bl;
3835 ch = bh;
3836 bl = al;
3837 bh = ah;
3838 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3839 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3840 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3841 al = al + xl | 0;
3842 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3843 tl = 1164996542 + w9l | 0;
3844 th = 310598401 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
3845 tl = tl + hl | 0;
3846 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3847 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3848 tl = tl + xl | 0;
3849 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3850 xl = gl ^ el & (fl ^ gl) | 0;
3851 tl = tl + xl | 0;
3852 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3853 hl = gl;
3854 hh = gh;
3855 gl = fl;
3856 gh = fh;
3857 fl = el;
3858 fh = eh;
3859 el = dl + tl | 0;
3860 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3861 dl = cl;
3862 dh = ch;
3863 cl = bl;
3864 ch = bh;
3865 bl = al;
3866 bh = ah;
3867 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3868 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3869 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3870 al = al + xl | 0;
3871 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3872 tl = 1323610764 + w10l | 0;
3873 th = 607225278 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
3874 tl = tl + hl | 0;
3875 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3876 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3877 tl = tl + xl | 0;
3878 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3879 xl = gl ^ el & (fl ^ gl) | 0;
3880 tl = tl + xl | 0;
3881 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3882 hl = gl;
3883 hh = gh;
3884 gl = fl;
3885 gh = fh;
3886 fl = el;
3887 fh = eh;
3888 el = dl + tl | 0;
3889 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3890 dl = cl;
3891 dh = ch;
3892 cl = bl;
3893 ch = bh;
3894 bl = al;
3895 bh = ah;
3896 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3897 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3898 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3899 al = al + xl | 0;
3900 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3901 tl = 3590304994 + w11l | 0;
3902 th = 1426881987 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
3903 tl = tl + hl | 0;
3904 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3905 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3906 tl = tl + xl | 0;
3907 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3908 xl = gl ^ el & (fl ^ gl) | 0;
3909 tl = tl + xl | 0;
3910 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3911 hl = gl;
3912 hh = gh;
3913 gl = fl;
3914 gh = fh;
3915 fl = el;
3916 fh = eh;
3917 el = dl + tl | 0;
3918 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3919 dl = cl;
3920 dh = ch;
3921 cl = bl;
3922 ch = bh;
3923 bl = al;
3924 bh = ah;
3925 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3926 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3927 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3928 al = al + xl | 0;
3929 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3930 tl = 4068182383 + w12l | 0;
3931 th = 1925078388 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
3932 tl = tl + hl | 0;
3933 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3934 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3935 tl = tl + xl | 0;
3936 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3937 xl = gl ^ el & (fl ^ gl) | 0;
3938 tl = tl + xl | 0;
3939 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3940 hl = gl;
3941 hh = gh;
3942 gl = fl;
3943 gh = fh;
3944 fl = el;
3945 fh = eh;
3946 el = dl + tl | 0;
3947 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3948 dl = cl;
3949 dh = ch;
3950 cl = bl;
3951 ch = bh;
3952 bl = al;
3953 bh = ah;
3954 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3955 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3956 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3957 al = al + xl | 0;
3958 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3959 tl = 991336113 + w13l | 0;
3960 th = 2162078206 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
3961 tl = tl + hl | 0;
3962 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3963 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3964 tl = tl + xl | 0;
3965 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3966 xl = gl ^ el & (fl ^ gl) | 0;
3967 tl = tl + xl | 0;
3968 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3969 hl = gl;
3970 hh = gh;
3971 gl = fl;
3972 gh = fh;
3973 fl = el;
3974 fh = eh;
3975 el = dl + tl | 0;
3976 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
3977 dl = cl;
3978 dh = ch;
3979 cl = bl;
3980 ch = bh;
3981 bl = al;
3982 bh = ah;
3983 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
3984 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
3985 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
3986 al = al + xl | 0;
3987 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3988 tl = 633803317 + w14l | 0;
3989 th = 2614888103 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
3990 tl = tl + hl | 0;
3991 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
3992 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
3993 tl = tl + xl | 0;
3994 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3995 xl = gl ^ el & (fl ^ gl) | 0;
3996 tl = tl + xl | 0;
3997 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
3998 hl = gl;
3999 hh = gh;
4000 gl = fl;
4001 gh = fh;
4002 fl = el;
4003 fh = eh;
4004 el = dl + tl | 0;
4005 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4006 dl = cl;
4007 dh = ch;
4008 cl = bl;
4009 ch = bh;
4010 bl = al;
4011 bh = ah;
4012 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4013 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4014 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4015 al = al + xl | 0;
4016 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4017 tl = 3479774868 + w15l | 0;
4018 th = 3248222580 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4019 tl = tl + hl | 0;
4020 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4021 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4022 tl = tl + xl | 0;
4023 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4024 xl = gl ^ el & (fl ^ gl) | 0;
4025 tl = tl + xl | 0;
4026 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4027 hl = gl;
4028 hh = gh;
4029 gl = fl;
4030 gh = fh;
4031 fl = el;
4032 fh = eh;
4033 el = dl + tl | 0;
4034 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4035 dl = cl;
4036 dh = ch;
4037 cl = bl;
4038 ch = bh;
4039 bl = al;
4040 bh = ah;
4041 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4042 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4043 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4044 al = al + xl | 0;
4045 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4046 w0l = w0l + w9l | 0;
4047 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4048 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
4049 w0l = w0l + xl | 0;
4050 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4051 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
4052 w0l = w0l + xl | 0;
4053 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4054 tl = 2666613458 + w0l | 0;
4055 th = 3835390401 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4056 tl = tl + hl | 0;
4057 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4058 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4059 tl = tl + xl | 0;
4060 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4061 xl = gl ^ el & (fl ^ gl) | 0;
4062 tl = tl + xl | 0;
4063 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4064 hl = gl;
4065 hh = gh;
4066 gl = fl;
4067 gh = fh;
4068 fl = el;
4069 fh = eh;
4070 el = dl + tl | 0;
4071 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4072 dl = cl;
4073 dh = ch;
4074 cl = bl;
4075 ch = bh;
4076 bl = al;
4077 bh = ah;
4078 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4079 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4080 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4081 al = al + xl | 0;
4082 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4083 w1l = w1l + w10l | 0;
4084 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4085 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
4086 w1l = w1l + xl | 0;
4087 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4088 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
4089 w1l = w1l + xl | 0;
4090 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4091 tl = 944711139 + w1l | 0;
4092 th = 4022224774 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4093 tl = tl + hl | 0;
4094 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4095 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4096 tl = tl + xl | 0;
4097 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4098 xl = gl ^ el & (fl ^ gl) | 0;
4099 tl = tl + xl | 0;
4100 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4101 hl = gl;
4102 hh = gh;
4103 gl = fl;
4104 gh = fh;
4105 fl = el;
4106 fh = eh;
4107 el = dl + tl | 0;
4108 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4109 dl = cl;
4110 dh = ch;
4111 cl = bl;
4112 ch = bh;
4113 bl = al;
4114 bh = ah;
4115 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4116 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4117 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4118 al = al + xl | 0;
4119 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4120 w2l = w2l + w11l | 0;
4121 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4122 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
4123 w2l = w2l + xl | 0;
4124 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4125 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
4126 w2l = w2l + xl | 0;
4127 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4128 tl = 2341262773 + w2l | 0;
4129 th = 264347078 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4130 tl = tl + hl | 0;
4131 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4132 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4133 tl = tl + xl | 0;
4134 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4135 xl = gl ^ el & (fl ^ gl) | 0;
4136 tl = tl + xl | 0;
4137 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4138 hl = gl;
4139 hh = gh;
4140 gl = fl;
4141 gh = fh;
4142 fl = el;
4143 fh = eh;
4144 el = dl + tl | 0;
4145 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4146 dl = cl;
4147 dh = ch;
4148 cl = bl;
4149 ch = bh;
4150 bl = al;
4151 bh = ah;
4152 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4153 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4154 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4155 al = al + xl | 0;
4156 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4157 w3l = w3l + w12l | 0;
4158 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4159 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
4160 w3l = w3l + xl | 0;
4161 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4162 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
4163 w3l = w3l + xl | 0;
4164 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4165 tl = 2007800933 + w3l | 0;
4166 th = 604807628 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4167 tl = tl + hl | 0;
4168 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4169 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4170 tl = tl + xl | 0;
4171 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4172 xl = gl ^ el & (fl ^ gl) | 0;
4173 tl = tl + xl | 0;
4174 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4175 hl = gl;
4176 hh = gh;
4177 gl = fl;
4178 gh = fh;
4179 fl = el;
4180 fh = eh;
4181 el = dl + tl | 0;
4182 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4183 dl = cl;
4184 dh = ch;
4185 cl = bl;
4186 ch = bh;
4187 bl = al;
4188 bh = ah;
4189 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4190 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4191 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4192 al = al + xl | 0;
4193 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4194 w4l = w4l + w13l | 0;
4195 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4196 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
4197 w4l = w4l + xl | 0;
4198 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4199 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
4200 w4l = w4l + xl | 0;
4201 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4202 tl = 1495990901 + w4l | 0;
4203 th = 770255983 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4204 tl = tl + hl | 0;
4205 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4206 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4207 tl = tl + xl | 0;
4208 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4209 xl = gl ^ el & (fl ^ gl) | 0;
4210 tl = tl + xl | 0;
4211 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4212 hl = gl;
4213 hh = gh;
4214 gl = fl;
4215 gh = fh;
4216 fl = el;
4217 fh = eh;
4218 el = dl + tl | 0;
4219 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4220 dl = cl;
4221 dh = ch;
4222 cl = bl;
4223 ch = bh;
4224 bl = al;
4225 bh = ah;
4226 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4227 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4228 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4229 al = al + xl | 0;
4230 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4231 w5l = w5l + w14l | 0;
4232 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4233 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
4234 w5l = w5l + xl | 0;
4235 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4236 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
4237 w5l = w5l + xl | 0;
4238 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4239 tl = 1856431235 + w5l | 0;
4240 th = 1249150122 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4241 tl = tl + hl | 0;
4242 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4243 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4244 tl = tl + xl | 0;
4245 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4246 xl = gl ^ el & (fl ^ gl) | 0;
4247 tl = tl + xl | 0;
4248 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4249 hl = gl;
4250 hh = gh;
4251 gl = fl;
4252 gh = fh;
4253 fl = el;
4254 fh = eh;
4255 el = dl + tl | 0;
4256 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4257 dl = cl;
4258 dh = ch;
4259 cl = bl;
4260 ch = bh;
4261 bl = al;
4262 bh = ah;
4263 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4264 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4265 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4266 al = al + xl | 0;
4267 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4268 w6l = w6l + w15l | 0;
4269 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4270 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
4271 w6l = w6l + xl | 0;
4272 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4273 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
4274 w6l = w6l + xl | 0;
4275 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4276 tl = 3175218132 + w6l | 0;
4277 th = 1555081692 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4278 tl = tl + hl | 0;
4279 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4280 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4281 tl = tl + xl | 0;
4282 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4283 xl = gl ^ el & (fl ^ gl) | 0;
4284 tl = tl + xl | 0;
4285 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4286 hl = gl;
4287 hh = gh;
4288 gl = fl;
4289 gh = fh;
4290 fl = el;
4291 fh = eh;
4292 el = dl + tl | 0;
4293 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4294 dl = cl;
4295 dh = ch;
4296 cl = bl;
4297 ch = bh;
4298 bl = al;
4299 bh = ah;
4300 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4301 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4302 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4303 al = al + xl | 0;
4304 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4305 w7l = w7l + w0l | 0;
4306 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4307 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
4308 w7l = w7l + xl | 0;
4309 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4310 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
4311 w7l = w7l + xl | 0;
4312 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4313 tl = 2198950837 + w7l | 0;
4314 th = 1996064986 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4315 tl = tl + hl | 0;
4316 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4317 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4318 tl = tl + xl | 0;
4319 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4320 xl = gl ^ el & (fl ^ gl) | 0;
4321 tl = tl + xl | 0;
4322 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4323 hl = gl;
4324 hh = gh;
4325 gl = fl;
4326 gh = fh;
4327 fl = el;
4328 fh = eh;
4329 el = dl + tl | 0;
4330 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4331 dl = cl;
4332 dh = ch;
4333 cl = bl;
4334 ch = bh;
4335 bl = al;
4336 bh = ah;
4337 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4338 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4339 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4340 al = al + xl | 0;
4341 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4342 w8l = w8l + w1l | 0;
4343 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4344 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
4345 w8l = w8l + xl | 0;
4346 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4347 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
4348 w8l = w8l + xl | 0;
4349 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4350 tl = 3999719339 + w8l | 0;
4351 th = 2554220882 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4352 tl = tl + hl | 0;
4353 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4354 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4355 tl = tl + xl | 0;
4356 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4357 xl = gl ^ el & (fl ^ gl) | 0;
4358 tl = tl + xl | 0;
4359 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4360 hl = gl;
4361 hh = gh;
4362 gl = fl;
4363 gh = fh;
4364 fl = el;
4365 fh = eh;
4366 el = dl + tl | 0;
4367 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4368 dl = cl;
4369 dh = ch;
4370 cl = bl;
4371 ch = bh;
4372 bl = al;
4373 bh = ah;
4374 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4375 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4376 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4377 al = al + xl | 0;
4378 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4379 w9l = w9l + w2l | 0;
4380 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4381 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
4382 w9l = w9l + xl | 0;
4383 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4384 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
4385 w9l = w9l + xl | 0;
4386 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4387 tl = 766784016 + w9l | 0;
4388 th = 2821834349 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4389 tl = tl + hl | 0;
4390 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4391 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4392 tl = tl + xl | 0;
4393 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4394 xl = gl ^ el & (fl ^ gl) | 0;
4395 tl = tl + xl | 0;
4396 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4397 hl = gl;
4398 hh = gh;
4399 gl = fl;
4400 gh = fh;
4401 fl = el;
4402 fh = eh;
4403 el = dl + tl | 0;
4404 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4405 dl = cl;
4406 dh = ch;
4407 cl = bl;
4408 ch = bh;
4409 bl = al;
4410 bh = ah;
4411 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4412 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4413 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4414 al = al + xl | 0;
4415 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4416 w10l = w10l + w3l | 0;
4417 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4418 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
4419 w10l = w10l + xl | 0;
4420 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4421 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
4422 w10l = w10l + xl | 0;
4423 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4424 tl = 2566594879 + w10l | 0;
4425 th = 2952996808 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4426 tl = tl + hl | 0;
4427 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4428 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4429 tl = tl + xl | 0;
4430 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4431 xl = gl ^ el & (fl ^ gl) | 0;
4432 tl = tl + xl | 0;
4433 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4434 hl = gl;
4435 hh = gh;
4436 gl = fl;
4437 gh = fh;
4438 fl = el;
4439 fh = eh;
4440 el = dl + tl | 0;
4441 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4442 dl = cl;
4443 dh = ch;
4444 cl = bl;
4445 ch = bh;
4446 bl = al;
4447 bh = ah;
4448 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4449 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4450 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4451 al = al + xl | 0;
4452 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4453 w11l = w11l + w4l | 0;
4454 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4455 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
4456 w11l = w11l + xl | 0;
4457 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4458 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
4459 w11l = w11l + xl | 0;
4460 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4461 tl = 3203337956 + w11l | 0;
4462 th = 3210313671 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4463 tl = tl + hl | 0;
4464 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4465 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4466 tl = tl + xl | 0;
4467 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4468 xl = gl ^ el & (fl ^ gl) | 0;
4469 tl = tl + xl | 0;
4470 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4471 hl = gl;
4472 hh = gh;
4473 gl = fl;
4474 gh = fh;
4475 fl = el;
4476 fh = eh;
4477 el = dl + tl | 0;
4478 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4479 dl = cl;
4480 dh = ch;
4481 cl = bl;
4482 ch = bh;
4483 bl = al;
4484 bh = ah;
4485 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4486 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4487 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4488 al = al + xl | 0;
4489 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4490 w12l = w12l + w5l | 0;
4491 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4492 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
4493 w12l = w12l + xl | 0;
4494 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4495 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
4496 w12l = w12l + xl | 0;
4497 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4498 tl = 1034457026 + w12l | 0;
4499 th = 3336571891 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4500 tl = tl + hl | 0;
4501 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4502 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4503 tl = tl + xl | 0;
4504 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4505 xl = gl ^ el & (fl ^ gl) | 0;
4506 tl = tl + xl | 0;
4507 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4508 hl = gl;
4509 hh = gh;
4510 gl = fl;
4511 gh = fh;
4512 fl = el;
4513 fh = eh;
4514 el = dl + tl | 0;
4515 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4516 dl = cl;
4517 dh = ch;
4518 cl = bl;
4519 ch = bh;
4520 bl = al;
4521 bh = ah;
4522 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4523 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4524 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4525 al = al + xl | 0;
4526 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4527 w13l = w13l + w6l | 0;
4528 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4529 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
4530 w13l = w13l + xl | 0;
4531 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4532 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
4533 w13l = w13l + xl | 0;
4534 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4535 tl = 2466948901 + w13l | 0;
4536 th = 3584528711 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4537 tl = tl + hl | 0;
4538 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4539 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4540 tl = tl + xl | 0;
4541 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4542 xl = gl ^ el & (fl ^ gl) | 0;
4543 tl = tl + xl | 0;
4544 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4545 hl = gl;
4546 hh = gh;
4547 gl = fl;
4548 gh = fh;
4549 fl = el;
4550 fh = eh;
4551 el = dl + tl | 0;
4552 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4553 dl = cl;
4554 dh = ch;
4555 cl = bl;
4556 ch = bh;
4557 bl = al;
4558 bh = ah;
4559 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4560 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4561 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4562 al = al + xl | 0;
4563 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4564 w14l = w14l + w7l | 0;
4565 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4566 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
4567 w14l = w14l + xl | 0;
4568 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4569 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
4570 w14l = w14l + xl | 0;
4571 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4572 tl = 3758326383 + w14l | 0;
4573 th = 113926993 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4574 tl = tl + hl | 0;
4575 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4576 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4577 tl = tl + xl | 0;
4578 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4579 xl = gl ^ el & (fl ^ gl) | 0;
4580 tl = tl + xl | 0;
4581 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4582 hl = gl;
4583 hh = gh;
4584 gl = fl;
4585 gh = fh;
4586 fl = el;
4587 fh = eh;
4588 el = dl + tl | 0;
4589 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4590 dl = cl;
4591 dh = ch;
4592 cl = bl;
4593 ch = bh;
4594 bl = al;
4595 bh = ah;
4596 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4597 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4598 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4599 al = al + xl | 0;
4600 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4601 w15l = w15l + w8l | 0;
4602 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4603 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
4604 w15l = w15l + xl | 0;
4605 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4606 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
4607 w15l = w15l + xl | 0;
4608 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4609 tl = 168717936 + w15l | 0;
4610 th = 338241895 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4611 tl = tl + hl | 0;
4612 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4613 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4614 tl = tl + xl | 0;
4615 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4616 xl = gl ^ el & (fl ^ gl) | 0;
4617 tl = tl + xl | 0;
4618 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4619 hl = gl;
4620 hh = gh;
4621 gl = fl;
4622 gh = fh;
4623 fl = el;
4624 fh = eh;
4625 el = dl + tl | 0;
4626 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4627 dl = cl;
4628 dh = ch;
4629 cl = bl;
4630 ch = bh;
4631 bl = al;
4632 bh = ah;
4633 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4634 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4635 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4636 al = al + xl | 0;
4637 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4638 w0l = w0l + w9l | 0;
4639 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4640 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
4641 w0l = w0l + xl | 0;
4642 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4643 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
4644 w0l = w0l + xl | 0;
4645 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4646 tl = 1188179964 + w0l | 0;
4647 th = 666307205 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4648 tl = tl + hl | 0;
4649 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4650 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4651 tl = tl + xl | 0;
4652 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4653 xl = gl ^ el & (fl ^ gl) | 0;
4654 tl = tl + xl | 0;
4655 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4656 hl = gl;
4657 hh = gh;
4658 gl = fl;
4659 gh = fh;
4660 fl = el;
4661 fh = eh;
4662 el = dl + tl | 0;
4663 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4664 dl = cl;
4665 dh = ch;
4666 cl = bl;
4667 ch = bh;
4668 bl = al;
4669 bh = ah;
4670 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4671 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4672 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4673 al = al + xl | 0;
4674 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4675 w1l = w1l + w10l | 0;
4676 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
4677 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
4678 w1l = w1l + xl | 0;
4679 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4680 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
4681 w1l = w1l + xl | 0;
4682 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4683 tl = 1546045734 + w1l | 0;
4684 th = 773529912 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4685 tl = tl + hl | 0;
4686 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4687 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4688 tl = tl + xl | 0;
4689 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4690 xl = gl ^ el & (fl ^ gl) | 0;
4691 tl = tl + xl | 0;
4692 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4693 hl = gl;
4694 hh = gh;
4695 gl = fl;
4696 gh = fh;
4697 fl = el;
4698 fh = eh;
4699 el = dl + tl | 0;
4700 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4701 dl = cl;
4702 dh = ch;
4703 cl = bl;
4704 ch = bh;
4705 bl = al;
4706 bh = ah;
4707 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4708 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4709 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4710 al = al + xl | 0;
4711 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4712 w2l = w2l + w11l | 0;
4713 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
4714 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
4715 w2l = w2l + xl | 0;
4716 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4717 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
4718 w2l = w2l + xl | 0;
4719 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4720 tl = 1522805485 + w2l | 0;
4721 th = 1294757372 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4722 tl = tl + hl | 0;
4723 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4724 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4725 tl = tl + xl | 0;
4726 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4727 xl = gl ^ el & (fl ^ gl) | 0;
4728 tl = tl + xl | 0;
4729 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4730 hl = gl;
4731 hh = gh;
4732 gl = fl;
4733 gh = fh;
4734 fl = el;
4735 fh = eh;
4736 el = dl + tl | 0;
4737 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4738 dl = cl;
4739 dh = ch;
4740 cl = bl;
4741 ch = bh;
4742 bl = al;
4743 bh = ah;
4744 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4745 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4746 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4747 al = al + xl | 0;
4748 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4749 w3l = w3l + w12l | 0;
4750 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
4751 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
4752 w3l = w3l + xl | 0;
4753 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4754 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
4755 w3l = w3l + xl | 0;
4756 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4757 tl = 2643833823 + w3l | 0;
4758 th = 1396182291 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
4759 tl = tl + hl | 0;
4760 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4761 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4762 tl = tl + xl | 0;
4763 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4764 xl = gl ^ el & (fl ^ gl) | 0;
4765 tl = tl + xl | 0;
4766 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4767 hl = gl;
4768 hh = gh;
4769 gl = fl;
4770 gh = fh;
4771 fl = el;
4772 fh = eh;
4773 el = dl + tl | 0;
4774 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4775 dl = cl;
4776 dh = ch;
4777 cl = bl;
4778 ch = bh;
4779 bl = al;
4780 bh = ah;
4781 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4782 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4783 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4784 al = al + xl | 0;
4785 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4786 w4l = w4l + w13l | 0;
4787 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
4788 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
4789 w4l = w4l + xl | 0;
4790 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4791 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
4792 w4l = w4l + xl | 0;
4793 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4794 tl = 2343527390 + w4l | 0;
4795 th = 1695183700 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
4796 tl = tl + hl | 0;
4797 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4798 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4799 tl = tl + xl | 0;
4800 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4801 xl = gl ^ el & (fl ^ gl) | 0;
4802 tl = tl + xl | 0;
4803 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4804 hl = gl;
4805 hh = gh;
4806 gl = fl;
4807 gh = fh;
4808 fl = el;
4809 fh = eh;
4810 el = dl + tl | 0;
4811 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4812 dl = cl;
4813 dh = ch;
4814 cl = bl;
4815 ch = bh;
4816 bl = al;
4817 bh = ah;
4818 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4819 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4820 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4821 al = al + xl | 0;
4822 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4823 w5l = w5l + w14l | 0;
4824 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
4825 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
4826 w5l = w5l + xl | 0;
4827 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4828 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
4829 w5l = w5l + xl | 0;
4830 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4831 tl = 1014477480 + w5l | 0;
4832 th = 1986661051 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
4833 tl = tl + hl | 0;
4834 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4835 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4836 tl = tl + xl | 0;
4837 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4838 xl = gl ^ el & (fl ^ gl) | 0;
4839 tl = tl + xl | 0;
4840 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4841 hl = gl;
4842 hh = gh;
4843 gl = fl;
4844 gh = fh;
4845 fl = el;
4846 fh = eh;
4847 el = dl + tl | 0;
4848 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4849 dl = cl;
4850 dh = ch;
4851 cl = bl;
4852 ch = bh;
4853 bl = al;
4854 bh = ah;
4855 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4856 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4857 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4858 al = al + xl | 0;
4859 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4860 w6l = w6l + w15l | 0;
4861 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
4862 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
4863 w6l = w6l + xl | 0;
4864 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4865 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
4866 w6l = w6l + xl | 0;
4867 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4868 tl = 1206759142 + w6l | 0;
4869 th = 2177026350 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
4870 tl = tl + hl | 0;
4871 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4872 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4873 tl = tl + xl | 0;
4874 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4875 xl = gl ^ el & (fl ^ gl) | 0;
4876 tl = tl + xl | 0;
4877 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4878 hl = gl;
4879 hh = gh;
4880 gl = fl;
4881 gh = fh;
4882 fl = el;
4883 fh = eh;
4884 el = dl + tl | 0;
4885 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4886 dl = cl;
4887 dh = ch;
4888 cl = bl;
4889 ch = bh;
4890 bl = al;
4891 bh = ah;
4892 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4893 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4894 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4895 al = al + xl | 0;
4896 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4897 w7l = w7l + w0l | 0;
4898 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
4899 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
4900 w7l = w7l + xl | 0;
4901 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4902 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
4903 w7l = w7l + xl | 0;
4904 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4905 tl = 344077627 + w7l | 0;
4906 th = 2456956037 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
4907 tl = tl + hl | 0;
4908 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4909 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4910 tl = tl + xl | 0;
4911 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4912 xl = gl ^ el & (fl ^ gl) | 0;
4913 tl = tl + xl | 0;
4914 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4915 hl = gl;
4916 hh = gh;
4917 gl = fl;
4918 gh = fh;
4919 fl = el;
4920 fh = eh;
4921 el = dl + tl | 0;
4922 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4923 dl = cl;
4924 dh = ch;
4925 cl = bl;
4926 ch = bh;
4927 bl = al;
4928 bh = ah;
4929 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4930 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4931 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4932 al = al + xl | 0;
4933 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4934 w8l = w8l + w1l | 0;
4935 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
4936 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
4937 w8l = w8l + xl | 0;
4938 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4939 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
4940 w8l = w8l + xl | 0;
4941 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4942 tl = 1290863460 + w8l | 0;
4943 th = 2730485921 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
4944 tl = tl + hl | 0;
4945 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4946 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4947 tl = tl + xl | 0;
4948 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4949 xl = gl ^ el & (fl ^ gl) | 0;
4950 tl = tl + xl | 0;
4951 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4952 hl = gl;
4953 hh = gh;
4954 gl = fl;
4955 gh = fh;
4956 fl = el;
4957 fh = eh;
4958 el = dl + tl | 0;
4959 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4960 dl = cl;
4961 dh = ch;
4962 cl = bl;
4963 ch = bh;
4964 bl = al;
4965 bh = ah;
4966 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
4967 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
4968 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
4969 al = al + xl | 0;
4970 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4971 w9l = w9l + w2l | 0;
4972 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
4973 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
4974 w9l = w9l + xl | 0;
4975 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4976 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
4977 w9l = w9l + xl | 0;
4978 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4979 tl = 3158454273 + w9l | 0;
4980 th = 2820302411 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
4981 tl = tl + hl | 0;
4982 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
4983 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
4984 tl = tl + xl | 0;
4985 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4986 xl = gl ^ el & (fl ^ gl) | 0;
4987 tl = tl + xl | 0;
4988 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
4989 hl = gl;
4990 hh = gh;
4991 gl = fl;
4992 gh = fh;
4993 fl = el;
4994 fh = eh;
4995 el = dl + tl | 0;
4996 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
4997 dl = cl;
4998 dh = ch;
4999 cl = bl;
5000 ch = bh;
5001 bl = al;
5002 bh = ah;
5003 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5004 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5005 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5006 al = al + xl | 0;
5007 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5008 w10l = w10l + w3l | 0;
5009 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5010 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
5011 w10l = w10l + xl | 0;
5012 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5013 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
5014 w10l = w10l + xl | 0;
5015 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5016 tl = 3505952657 + w10l | 0;
5017 th = 3259730800 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5018 tl = tl + hl | 0;
5019 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5020 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5021 tl = tl + xl | 0;
5022 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5023 xl = gl ^ el & (fl ^ gl) | 0;
5024 tl = tl + xl | 0;
5025 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5026 hl = gl;
5027 hh = gh;
5028 gl = fl;
5029 gh = fh;
5030 fl = el;
5031 fh = eh;
5032 el = dl + tl | 0;
5033 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5034 dl = cl;
5035 dh = ch;
5036 cl = bl;
5037 ch = bh;
5038 bl = al;
5039 bh = ah;
5040 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5041 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5042 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5043 al = al + xl | 0;
5044 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5045 w11l = w11l + w4l | 0;
5046 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5047 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
5048 w11l = w11l + xl | 0;
5049 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5050 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
5051 w11l = w11l + xl | 0;
5052 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5053 tl = 106217008 + w11l | 0;
5054 th = 3345764771 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5055 tl = tl + hl | 0;
5056 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5057 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5058 tl = tl + xl | 0;
5059 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5060 xl = gl ^ el & (fl ^ gl) | 0;
5061 tl = tl + xl | 0;
5062 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5063 hl = gl;
5064 hh = gh;
5065 gl = fl;
5066 gh = fh;
5067 fl = el;
5068 fh = eh;
5069 el = dl + tl | 0;
5070 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5071 dl = cl;
5072 dh = ch;
5073 cl = bl;
5074 ch = bh;
5075 bl = al;
5076 bh = ah;
5077 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5078 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5079 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5080 al = al + xl | 0;
5081 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5082 w12l = w12l + w5l | 0;
5083 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5084 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
5085 w12l = w12l + xl | 0;
5086 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5087 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
5088 w12l = w12l + xl | 0;
5089 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5090 tl = 3606008344 + w12l | 0;
5091 th = 3516065817 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5092 tl = tl + hl | 0;
5093 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5094 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5095 tl = tl + xl | 0;
5096 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5097 xl = gl ^ el & (fl ^ gl) | 0;
5098 tl = tl + xl | 0;
5099 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5100 hl = gl;
5101 hh = gh;
5102 gl = fl;
5103 gh = fh;
5104 fl = el;
5105 fh = eh;
5106 el = dl + tl | 0;
5107 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5108 dl = cl;
5109 dh = ch;
5110 cl = bl;
5111 ch = bh;
5112 bl = al;
5113 bh = ah;
5114 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5115 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5116 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5117 al = al + xl | 0;
5118 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5119 w13l = w13l + w6l | 0;
5120 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5121 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
5122 w13l = w13l + xl | 0;
5123 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5124 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
5125 w13l = w13l + xl | 0;
5126 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5127 tl = 1432725776 + w13l | 0;
5128 th = 3600352804 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5129 tl = tl + hl | 0;
5130 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5131 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5132 tl = tl + xl | 0;
5133 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5134 xl = gl ^ el & (fl ^ gl) | 0;
5135 tl = tl + xl | 0;
5136 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5137 hl = gl;
5138 hh = gh;
5139 gl = fl;
5140 gh = fh;
5141 fl = el;
5142 fh = eh;
5143 el = dl + tl | 0;
5144 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5145 dl = cl;
5146 dh = ch;
5147 cl = bl;
5148 ch = bh;
5149 bl = al;
5150 bh = ah;
5151 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5152 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5153 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5154 al = al + xl | 0;
5155 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5156 w14l = w14l + w7l | 0;
5157 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5158 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
5159 w14l = w14l + xl | 0;
5160 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5161 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
5162 w14l = w14l + xl | 0;
5163 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5164 tl = 1467031594 + w14l | 0;
5165 th = 4094571909 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5166 tl = tl + hl | 0;
5167 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5168 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5169 tl = tl + xl | 0;
5170 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5171 xl = gl ^ el & (fl ^ gl) | 0;
5172 tl = tl + xl | 0;
5173 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5174 hl = gl;
5175 hh = gh;
5176 gl = fl;
5177 gh = fh;
5178 fl = el;
5179 fh = eh;
5180 el = dl + tl | 0;
5181 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5182 dl = cl;
5183 dh = ch;
5184 cl = bl;
5185 ch = bh;
5186 bl = al;
5187 bh = ah;
5188 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5189 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5190 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5191 al = al + xl | 0;
5192 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5193 w15l = w15l + w8l | 0;
5194 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5195 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
5196 w15l = w15l + xl | 0;
5197 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5198 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
5199 w15l = w15l + xl | 0;
5200 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5201 tl = 851169720 + w15l | 0;
5202 th = 275423344 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5203 tl = tl + hl | 0;
5204 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5205 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5206 tl = tl + xl | 0;
5207 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5208 xl = gl ^ el & (fl ^ gl) | 0;
5209 tl = tl + xl | 0;
5210 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5211 hl = gl;
5212 hh = gh;
5213 gl = fl;
5214 gh = fh;
5215 fl = el;
5216 fh = eh;
5217 el = dl + tl | 0;
5218 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5219 dl = cl;
5220 dh = ch;
5221 cl = bl;
5222 ch = bh;
5223 bl = al;
5224 bh = ah;
5225 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5226 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5227 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5228 al = al + xl | 0;
5229 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5230 w0l = w0l + w9l | 0;
5231 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5232 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
5233 w0l = w0l + xl | 0;
5234 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5235 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
5236 w0l = w0l + xl | 0;
5237 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5238 tl = 3100823752 + w0l | 0;
5239 th = 430227734 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5240 tl = tl + hl | 0;
5241 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5242 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5243 tl = tl + xl | 0;
5244 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5245 xl = gl ^ el & (fl ^ gl) | 0;
5246 tl = tl + xl | 0;
5247 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5248 hl = gl;
5249 hh = gh;
5250 gl = fl;
5251 gh = fh;
5252 fl = el;
5253 fh = eh;
5254 el = dl + tl | 0;
5255 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5256 dl = cl;
5257 dh = ch;
5258 cl = bl;
5259 ch = bh;
5260 bl = al;
5261 bh = ah;
5262 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5263 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5264 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5265 al = al + xl | 0;
5266 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5267 w1l = w1l + w10l | 0;
5268 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5269 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
5270 w1l = w1l + xl | 0;
5271 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5272 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
5273 w1l = w1l + xl | 0;
5274 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5275 tl = 1363258195 + w1l | 0;
5276 th = 506948616 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5277 tl = tl + hl | 0;
5278 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5279 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5280 tl = tl + xl | 0;
5281 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5282 xl = gl ^ el & (fl ^ gl) | 0;
5283 tl = tl + xl | 0;
5284 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5285 hl = gl;
5286 hh = gh;
5287 gl = fl;
5288 gh = fh;
5289 fl = el;
5290 fh = eh;
5291 el = dl + tl | 0;
5292 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5293 dl = cl;
5294 dh = ch;
5295 cl = bl;
5296 ch = bh;
5297 bl = al;
5298 bh = ah;
5299 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5300 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5301 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5302 al = al + xl | 0;
5303 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5304 w2l = w2l + w11l | 0;
5305 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5306 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
5307 w2l = w2l + xl | 0;
5308 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5309 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
5310 w2l = w2l + xl | 0;
5311 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5312 tl = 3750685593 + w2l | 0;
5313 th = 659060556 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5314 tl = tl + hl | 0;
5315 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5316 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5317 tl = tl + xl | 0;
5318 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5319 xl = gl ^ el & (fl ^ gl) | 0;
5320 tl = tl + xl | 0;
5321 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5322 hl = gl;
5323 hh = gh;
5324 gl = fl;
5325 gh = fh;
5326 fl = el;
5327 fh = eh;
5328 el = dl + tl | 0;
5329 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5330 dl = cl;
5331 dh = ch;
5332 cl = bl;
5333 ch = bh;
5334 bl = al;
5335 bh = ah;
5336 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5337 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5338 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5339 al = al + xl | 0;
5340 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5341 w3l = w3l + w12l | 0;
5342 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5343 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
5344 w3l = w3l + xl | 0;
5345 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5346 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
5347 w3l = w3l + xl | 0;
5348 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5349 tl = 3785050280 + w3l | 0;
5350 th = 883997877 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5351 tl = tl + hl | 0;
5352 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5353 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5354 tl = tl + xl | 0;
5355 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5356 xl = gl ^ el & (fl ^ gl) | 0;
5357 tl = tl + xl | 0;
5358 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5359 hl = gl;
5360 hh = gh;
5361 gl = fl;
5362 gh = fh;
5363 fl = el;
5364 fh = eh;
5365 el = dl + tl | 0;
5366 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5367 dl = cl;
5368 dh = ch;
5369 cl = bl;
5370 ch = bh;
5371 bl = al;
5372 bh = ah;
5373 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5374 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5375 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5376 al = al + xl | 0;
5377 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5378 w4l = w4l + w13l | 0;
5379 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5380 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
5381 w4l = w4l + xl | 0;
5382 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5383 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
5384 w4l = w4l + xl | 0;
5385 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5386 tl = 3318307427 + w4l | 0;
5387 th = 958139571 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5388 tl = tl + hl | 0;
5389 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5390 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5391 tl = tl + xl | 0;
5392 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5393 xl = gl ^ el & (fl ^ gl) | 0;
5394 tl = tl + xl | 0;
5395 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5396 hl = gl;
5397 hh = gh;
5398 gl = fl;
5399 gh = fh;
5400 fl = el;
5401 fh = eh;
5402 el = dl + tl | 0;
5403 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5404 dl = cl;
5405 dh = ch;
5406 cl = bl;
5407 ch = bh;
5408 bl = al;
5409 bh = ah;
5410 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5411 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5412 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5413 al = al + xl | 0;
5414 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5415 w5l = w5l + w14l | 0;
5416 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5417 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
5418 w5l = w5l + xl | 0;
5419 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5420 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
5421 w5l = w5l + xl | 0;
5422 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5423 tl = 3812723403 + w5l | 0;
5424 th = 1322822218 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5425 tl = tl + hl | 0;
5426 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5427 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5428 tl = tl + xl | 0;
5429 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5430 xl = gl ^ el & (fl ^ gl) | 0;
5431 tl = tl + xl | 0;
5432 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5433 hl = gl;
5434 hh = gh;
5435 gl = fl;
5436 gh = fh;
5437 fl = el;
5438 fh = eh;
5439 el = dl + tl | 0;
5440 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5441 dl = cl;
5442 dh = ch;
5443 cl = bl;
5444 ch = bh;
5445 bl = al;
5446 bh = ah;
5447 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5448 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5449 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5450 al = al + xl | 0;
5451 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5452 w6l = w6l + w15l | 0;
5453 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5454 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
5455 w6l = w6l + xl | 0;
5456 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5457 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
5458 w6l = w6l + xl | 0;
5459 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5460 tl = 2003034995 + w6l | 0;
5461 th = 1537002063 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5462 tl = tl + hl | 0;
5463 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5464 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5465 tl = tl + xl | 0;
5466 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5467 xl = gl ^ el & (fl ^ gl) | 0;
5468 tl = tl + xl | 0;
5469 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5470 hl = gl;
5471 hh = gh;
5472 gl = fl;
5473 gh = fh;
5474 fl = el;
5475 fh = eh;
5476 el = dl + tl | 0;
5477 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5478 dl = cl;
5479 dh = ch;
5480 cl = bl;
5481 ch = bh;
5482 bl = al;
5483 bh = ah;
5484 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5485 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5486 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5487 al = al + xl | 0;
5488 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5489 w7l = w7l + w0l | 0;
5490 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5491 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
5492 w7l = w7l + xl | 0;
5493 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5494 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
5495 w7l = w7l + xl | 0;
5496 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5497 tl = 3602036899 + w7l | 0;
5498 th = 1747873779 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5499 tl = tl + hl | 0;
5500 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5501 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5502 tl = tl + xl | 0;
5503 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5504 xl = gl ^ el & (fl ^ gl) | 0;
5505 tl = tl + xl | 0;
5506 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5507 hl = gl;
5508 hh = gh;
5509 gl = fl;
5510 gh = fh;
5511 fl = el;
5512 fh = eh;
5513 el = dl + tl | 0;
5514 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5515 dl = cl;
5516 dh = ch;
5517 cl = bl;
5518 ch = bh;
5519 bl = al;
5520 bh = ah;
5521 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5522 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5523 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5524 al = al + xl | 0;
5525 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5526 w8l = w8l + w1l | 0;
5527 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5528 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
5529 w8l = w8l + xl | 0;
5530 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5531 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
5532 w8l = w8l + xl | 0;
5533 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5534 tl = 1575990012 + w8l | 0;
5535 th = 1955562222 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5536 tl = tl + hl | 0;
5537 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5538 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5539 tl = tl + xl | 0;
5540 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5541 xl = gl ^ el & (fl ^ gl) | 0;
5542 tl = tl + xl | 0;
5543 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5544 hl = gl;
5545 hh = gh;
5546 gl = fl;
5547 gh = fh;
5548 fl = el;
5549 fh = eh;
5550 el = dl + tl | 0;
5551 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5552 dl = cl;
5553 dh = ch;
5554 cl = bl;
5555 ch = bh;
5556 bl = al;
5557 bh = ah;
5558 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5559 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5560 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5561 al = al + xl | 0;
5562 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5563 w9l = w9l + w2l | 0;
5564 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5565 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
5566 w9l = w9l + xl | 0;
5567 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5568 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
5569 w9l = w9l + xl | 0;
5570 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5571 tl = 1125592928 + w9l | 0;
5572 th = 2024104815 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5573 tl = tl + hl | 0;
5574 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5575 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5576 tl = tl + xl | 0;
5577 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5578 xl = gl ^ el & (fl ^ gl) | 0;
5579 tl = tl + xl | 0;
5580 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5581 hl = gl;
5582 hh = gh;
5583 gl = fl;
5584 gh = fh;
5585 fl = el;
5586 fh = eh;
5587 el = dl + tl | 0;
5588 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5589 dl = cl;
5590 dh = ch;
5591 cl = bl;
5592 ch = bh;
5593 bl = al;
5594 bh = ah;
5595 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5596 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5597 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5598 al = al + xl | 0;
5599 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5600 w10l = w10l + w3l | 0;
5601 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5602 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
5603 w10l = w10l + xl | 0;
5604 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5605 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
5606 w10l = w10l + xl | 0;
5607 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5608 tl = 2716904306 + w10l | 0;
5609 th = 2227730452 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5610 tl = tl + hl | 0;
5611 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5612 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5613 tl = tl + xl | 0;
5614 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5615 xl = gl ^ el & (fl ^ gl) | 0;
5616 tl = tl + xl | 0;
5617 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5618 hl = gl;
5619 hh = gh;
5620 gl = fl;
5621 gh = fh;
5622 fl = el;
5623 fh = eh;
5624 el = dl + tl | 0;
5625 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5626 dl = cl;
5627 dh = ch;
5628 cl = bl;
5629 ch = bh;
5630 bl = al;
5631 bh = ah;
5632 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5633 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5634 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5635 al = al + xl | 0;
5636 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5637 w11l = w11l + w4l | 0;
5638 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5639 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
5640 w11l = w11l + xl | 0;
5641 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5642 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
5643 w11l = w11l + xl | 0;
5644 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5645 tl = 442776044 + w11l | 0;
5646 th = 2361852424 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5647 tl = tl + hl | 0;
5648 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5649 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5650 tl = tl + xl | 0;
5651 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5652 xl = gl ^ el & (fl ^ gl) | 0;
5653 tl = tl + xl | 0;
5654 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5655 hl = gl;
5656 hh = gh;
5657 gl = fl;
5658 gh = fh;
5659 fl = el;
5660 fh = eh;
5661 el = dl + tl | 0;
5662 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5663 dl = cl;
5664 dh = ch;
5665 cl = bl;
5666 ch = bh;
5667 bl = al;
5668 bh = ah;
5669 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5670 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5671 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5672 al = al + xl | 0;
5673 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5674 w12l = w12l + w5l | 0;
5675 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
5676 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
5677 w12l = w12l + xl | 0;
5678 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5679 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
5680 w12l = w12l + xl | 0;
5681 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5682 tl = 593698344 + w12l | 0;
5683 th = 2428436474 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5684 tl = tl + hl | 0;
5685 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5686 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5687 tl = tl + xl | 0;
5688 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5689 xl = gl ^ el & (fl ^ gl) | 0;
5690 tl = tl + xl | 0;
5691 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5692 hl = gl;
5693 hh = gh;
5694 gl = fl;
5695 gh = fh;
5696 fl = el;
5697 fh = eh;
5698 el = dl + tl | 0;
5699 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5700 dl = cl;
5701 dh = ch;
5702 cl = bl;
5703 ch = bh;
5704 bl = al;
5705 bh = ah;
5706 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5707 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5708 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5709 al = al + xl | 0;
5710 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5711 w13l = w13l + w6l | 0;
5712 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
5713 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
5714 w13l = w13l + xl | 0;
5715 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5716 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
5717 w13l = w13l + xl | 0;
5718 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5719 tl = 3733110249 + w13l | 0;
5720 th = 2756734187 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5721 tl = tl + hl | 0;
5722 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5723 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5724 tl = tl + xl | 0;
5725 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5726 xl = gl ^ el & (fl ^ gl) | 0;
5727 tl = tl + xl | 0;
5728 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5729 hl = gl;
5730 hh = gh;
5731 gl = fl;
5732 gh = fh;
5733 fl = el;
5734 fh = eh;
5735 el = dl + tl | 0;
5736 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5737 dl = cl;
5738 dh = ch;
5739 cl = bl;
5740 ch = bh;
5741 bl = al;
5742 bh = ah;
5743 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5744 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5745 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5746 al = al + xl | 0;
5747 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5748 w14l = w14l + w7l | 0;
5749 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
5750 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
5751 w14l = w14l + xl | 0;
5752 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5753 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
5754 w14l = w14l + xl | 0;
5755 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5756 tl = 2999351573 + w14l | 0;
5757 th = 3204031479 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
5758 tl = tl + hl | 0;
5759 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5760 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5761 tl = tl + xl | 0;
5762 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5763 xl = gl ^ el & (fl ^ gl) | 0;
5764 tl = tl + xl | 0;
5765 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5766 hl = gl;
5767 hh = gh;
5768 gl = fl;
5769 gh = fh;
5770 fl = el;
5771 fh = eh;
5772 el = dl + tl | 0;
5773 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5774 dl = cl;
5775 dh = ch;
5776 cl = bl;
5777 ch = bh;
5778 bl = al;
5779 bh = ah;
5780 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5781 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5782 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5783 al = al + xl | 0;
5784 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5785 w15l = w15l + w8l | 0;
5786 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
5787 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
5788 w15l = w15l + xl | 0;
5789 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5790 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
5791 w15l = w15l + xl | 0;
5792 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5793 tl = 3815920427 + w15l | 0;
5794 th = 3329325298 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
5795 tl = tl + hl | 0;
5796 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5797 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5798 tl = tl + xl | 0;
5799 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5800 xl = gl ^ el & (fl ^ gl) | 0;
5801 tl = tl + xl | 0;
5802 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5803 hl = gl;
5804 hh = gh;
5805 gl = fl;
5806 gh = fh;
5807 fl = el;
5808 fh = eh;
5809 el = dl + tl | 0;
5810 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5811 dl = cl;
5812 dh = ch;
5813 cl = bl;
5814 ch = bh;
5815 bl = al;
5816 bh = ah;
5817 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5818 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5819 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5820 al = al + xl | 0;
5821 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5822 w0l = w0l + w9l | 0;
5823 w0h = w0h + w9h + (w0l >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
5824 xl = (w1l >>> 1 | w1h << 31) ^ (w1l >>> 8 | w1h << 24) ^ (w1l >>> 7 | w1h << 25) | 0;
5825 w0l = w0l + xl | 0;
5826 w0h = w0h + ((w1h >>> 1 | w1l << 31) ^ (w1h >>> 8 | w1l << 24) ^ w1h >>> 7) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5827 xl = (w14l >>> 19 | w14h << 13) ^ (w14l << 3 | w14h >>> 29) ^ (w14l >>> 6 | w14h << 26) | 0;
5828 w0l = w0l + xl | 0;
5829 w0h = w0h + ((w14h >>> 19 | w14l << 13) ^ (w14h << 3 | w14l >>> 29) ^ w14h >>> 6) + (w0l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5830 tl = 3928383900 + w0l | 0;
5831 th = 3391569614 + w0h + (tl >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
5832 tl = tl + hl | 0;
5833 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5834 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5835 tl = tl + xl | 0;
5836 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5837 xl = gl ^ el & (fl ^ gl) | 0;
5838 tl = tl + xl | 0;
5839 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5840 hl = gl;
5841 hh = gh;
5842 gl = fl;
5843 gh = fh;
5844 fl = el;
5845 fh = eh;
5846 el = dl + tl | 0;
5847 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5848 dl = cl;
5849 dh = ch;
5850 cl = bl;
5851 ch = bh;
5852 bl = al;
5853 bh = ah;
5854 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5855 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5856 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5857 al = al + xl | 0;
5858 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5859 w1l = w1l + w10l | 0;
5860 w1h = w1h + w10h + (w1l >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
5861 xl = (w2l >>> 1 | w2h << 31) ^ (w2l >>> 8 | w2h << 24) ^ (w2l >>> 7 | w2h << 25) | 0;
5862 w1l = w1l + xl | 0;
5863 w1h = w1h + ((w2h >>> 1 | w2l << 31) ^ (w2h >>> 8 | w2l << 24) ^ w2h >>> 7) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5864 xl = (w15l >>> 19 | w15h << 13) ^ (w15l << 3 | w15h >>> 29) ^ (w15l >>> 6 | w15h << 26) | 0;
5865 w1l = w1l + xl | 0;
5866 w1h = w1h + ((w15h >>> 19 | w15l << 13) ^ (w15h << 3 | w15l >>> 29) ^ w15h >>> 6) + (w1l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5867 tl = 566280711 + w1l | 0;
5868 th = 3515267271 + w1h + (tl >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
5869 tl = tl + hl | 0;
5870 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5871 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5872 tl = tl + xl | 0;
5873 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5874 xl = gl ^ el & (fl ^ gl) | 0;
5875 tl = tl + xl | 0;
5876 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5877 hl = gl;
5878 hh = gh;
5879 gl = fl;
5880 gh = fh;
5881 fl = el;
5882 fh = eh;
5883 el = dl + tl | 0;
5884 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5885 dl = cl;
5886 dh = ch;
5887 cl = bl;
5888 ch = bh;
5889 bl = al;
5890 bh = ah;
5891 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5892 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5893 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5894 al = al + xl | 0;
5895 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5896 w2l = w2l + w11l | 0;
5897 w2h = w2h + w11h + (w2l >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
5898 xl = (w3l >>> 1 | w3h << 31) ^ (w3l >>> 8 | w3h << 24) ^ (w3l >>> 7 | w3h << 25) | 0;
5899 w2l = w2l + xl | 0;
5900 w2h = w2h + ((w3h >>> 1 | w3l << 31) ^ (w3h >>> 8 | w3l << 24) ^ w3h >>> 7) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5901 xl = (w0l >>> 19 | w0h << 13) ^ (w0l << 3 | w0h >>> 29) ^ (w0l >>> 6 | w0h << 26) | 0;
5902 w2l = w2l + xl | 0;
5903 w2h = w2h + ((w0h >>> 19 | w0l << 13) ^ (w0h << 3 | w0l >>> 29) ^ w0h >>> 6) + (w2l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5904 tl = 3454069534 + w2l | 0;
5905 th = 3940187606 + w2h + (tl >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
5906 tl = tl + hl | 0;
5907 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5908 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5909 tl = tl + xl | 0;
5910 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5911 xl = gl ^ el & (fl ^ gl) | 0;
5912 tl = tl + xl | 0;
5913 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5914 hl = gl;
5915 hh = gh;
5916 gl = fl;
5917 gh = fh;
5918 fl = el;
5919 fh = eh;
5920 el = dl + tl | 0;
5921 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5922 dl = cl;
5923 dh = ch;
5924 cl = bl;
5925 ch = bh;
5926 bl = al;
5927 bh = ah;
5928 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5929 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5930 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5931 al = al + xl | 0;
5932 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5933 w3l = w3l + w12l | 0;
5934 w3h = w3h + w12h + (w3l >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
5935 xl = (w4l >>> 1 | w4h << 31) ^ (w4l >>> 8 | w4h << 24) ^ (w4l >>> 7 | w4h << 25) | 0;
5936 w3l = w3l + xl | 0;
5937 w3h = w3h + ((w4h >>> 1 | w4l << 31) ^ (w4h >>> 8 | w4l << 24) ^ w4h >>> 7) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5938 xl = (w1l >>> 19 | w1h << 13) ^ (w1l << 3 | w1h >>> 29) ^ (w1l >>> 6 | w1h << 26) | 0;
5939 w3l = w3l + xl | 0;
5940 w3h = w3h + ((w1h >>> 19 | w1l << 13) ^ (w1h << 3 | w1l >>> 29) ^ w1h >>> 6) + (w3l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5941 tl = 4000239992 + w3l | 0;
5942 th = 4118630271 + w3h + (tl >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
5943 tl = tl + hl | 0;
5944 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5945 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5946 tl = tl + xl | 0;
5947 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5948 xl = gl ^ el & (fl ^ gl) | 0;
5949 tl = tl + xl | 0;
5950 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5951 hl = gl;
5952 hh = gh;
5953 gl = fl;
5954 gh = fh;
5955 fl = el;
5956 fh = eh;
5957 el = dl + tl | 0;
5958 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5959 dl = cl;
5960 dh = ch;
5961 cl = bl;
5962 ch = bh;
5963 bl = al;
5964 bh = ah;
5965 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
5966 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
5967 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
5968 al = al + xl | 0;
5969 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5970 w4l = w4l + w13l | 0;
5971 w4h = w4h + w13h + (w4l >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
5972 xl = (w5l >>> 1 | w5h << 31) ^ (w5l >>> 8 | w5h << 24) ^ (w5l >>> 7 | w5h << 25) | 0;
5973 w4l = w4l + xl | 0;
5974 w4h = w4h + ((w5h >>> 1 | w5l << 31) ^ (w5h >>> 8 | w5l << 24) ^ w5h >>> 7) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5975 xl = (w2l >>> 19 | w2h << 13) ^ (w2l << 3 | w2h >>> 29) ^ (w2l >>> 6 | w2h << 26) | 0;
5976 w4l = w4l + xl | 0;
5977 w4h = w4h + ((w2h >>> 19 | w2l << 13) ^ (w2h << 3 | w2l >>> 29) ^ w2h >>> 6) + (w4l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5978 tl = 1914138554 + w4l | 0;
5979 th = 116418474 + w4h + (tl >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
5980 tl = tl + hl | 0;
5981 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
5982 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
5983 tl = tl + xl | 0;
5984 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5985 xl = gl ^ el & (fl ^ gl) | 0;
5986 tl = tl + xl | 0;
5987 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
5988 hl = gl;
5989 hh = gh;
5990 gl = fl;
5991 gh = fh;
5992 fl = el;
5993 fh = eh;
5994 el = dl + tl | 0;
5995 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
5996 dl = cl;
5997 dh = ch;
5998 cl = bl;
5999 ch = bh;
6000 bl = al;
6001 bh = ah;
6002 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6003 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6004 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6005 al = al + xl | 0;
6006 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6007 w5l = w5l + w14l | 0;
6008 w5h = w5h + w14h + (w5l >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
6009 xl = (w6l >>> 1 | w6h << 31) ^ (w6l >>> 8 | w6h << 24) ^ (w6l >>> 7 | w6h << 25) | 0;
6010 w5l = w5l + xl | 0;
6011 w5h = w5h + ((w6h >>> 1 | w6l << 31) ^ (w6h >>> 8 | w6l << 24) ^ w6h >>> 7) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6012 xl = (w3l >>> 19 | w3h << 13) ^ (w3l << 3 | w3h >>> 29) ^ (w3l >>> 6 | w3h << 26) | 0;
6013 w5l = w5l + xl | 0;
6014 w5h = w5h + ((w3h >>> 19 | w3l << 13) ^ (w3h << 3 | w3l >>> 29) ^ w3h >>> 6) + (w5l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6015 tl = 2731055270 + w5l | 0;
6016 th = 174292421 + w5h + (tl >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
6017 tl = tl + hl | 0;
6018 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6019 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6020 tl = tl + xl | 0;
6021 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6022 xl = gl ^ el & (fl ^ gl) | 0;
6023 tl = tl + xl | 0;
6024 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6025 hl = gl;
6026 hh = gh;
6027 gl = fl;
6028 gh = fh;
6029 fl = el;
6030 fh = eh;
6031 el = dl + tl | 0;
6032 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6033 dl = cl;
6034 dh = ch;
6035 cl = bl;
6036 ch = bh;
6037 bl = al;
6038 bh = ah;
6039 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6040 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6041 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6042 al = al + xl | 0;
6043 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6044 w6l = w6l + w15l | 0;
6045 w6h = w6h + w15h + (w6l >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
6046 xl = (w7l >>> 1 | w7h << 31) ^ (w7l >>> 8 | w7h << 24) ^ (w7l >>> 7 | w7h << 25) | 0;
6047 w6l = w6l + xl | 0;
6048 w6h = w6h + ((w7h >>> 1 | w7l << 31) ^ (w7h >>> 8 | w7l << 24) ^ w7h >>> 7) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6049 xl = (w4l >>> 19 | w4h << 13) ^ (w4l << 3 | w4h >>> 29) ^ (w4l >>> 6 | w4h << 26) | 0;
6050 w6l = w6l + xl | 0;
6051 w6h = w6h + ((w4h >>> 19 | w4l << 13) ^ (w4h << 3 | w4l >>> 29) ^ w4h >>> 6) + (w6l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6052 tl = 3203993006 + w6l | 0;
6053 th = 289380356 + w6h + (tl >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
6054 tl = tl + hl | 0;
6055 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6056 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6057 tl = tl + xl | 0;
6058 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6059 xl = gl ^ el & (fl ^ gl) | 0;
6060 tl = tl + xl | 0;
6061 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6062 hl = gl;
6063 hh = gh;
6064 gl = fl;
6065 gh = fh;
6066 fl = el;
6067 fh = eh;
6068 el = dl + tl | 0;
6069 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6070 dl = cl;
6071 dh = ch;
6072 cl = bl;
6073 ch = bh;
6074 bl = al;
6075 bh = ah;
6076 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6077 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6078 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6079 al = al + xl | 0;
6080 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6081 w7l = w7l + w0l | 0;
6082 w7h = w7h + w0h + (w7l >>> 0 < w0l >>> 0 ? 1 : 0) | 0;
6083 xl = (w8l >>> 1 | w8h << 31) ^ (w8l >>> 8 | w8h << 24) ^ (w8l >>> 7 | w8h << 25) | 0;
6084 w7l = w7l + xl | 0;
6085 w7h = w7h + ((w8h >>> 1 | w8l << 31) ^ (w8h >>> 8 | w8l << 24) ^ w8h >>> 7) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6086 xl = (w5l >>> 19 | w5h << 13) ^ (w5l << 3 | w5h >>> 29) ^ (w5l >>> 6 | w5h << 26) | 0;
6087 w7l = w7l + xl | 0;
6088 w7h = w7h + ((w5h >>> 19 | w5l << 13) ^ (w5h << 3 | w5l >>> 29) ^ w5h >>> 6) + (w7l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6089 tl = 320620315 + w7l | 0;
6090 th = 460393269 + w7h + (tl >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
6091 tl = tl + hl | 0;
6092 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6093 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6094 tl = tl + xl | 0;
6095 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6096 xl = gl ^ el & (fl ^ gl) | 0;
6097 tl = tl + xl | 0;
6098 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6099 hl = gl;
6100 hh = gh;
6101 gl = fl;
6102 gh = fh;
6103 fl = el;
6104 fh = eh;
6105 el = dl + tl | 0;
6106 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6107 dl = cl;
6108 dh = ch;
6109 cl = bl;
6110 ch = bh;
6111 bl = al;
6112 bh = ah;
6113 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6114 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6115 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6116 al = al + xl | 0;
6117 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6118 w8l = w8l + w1l | 0;
6119 w8h = w8h + w1h + (w8l >>> 0 < w1l >>> 0 ? 1 : 0) | 0;
6120 xl = (w9l >>> 1 | w9h << 31) ^ (w9l >>> 8 | w9h << 24) ^ (w9l >>> 7 | w9h << 25) | 0;
6121 w8l = w8l + xl | 0;
6122 w8h = w8h + ((w9h >>> 1 | w9l << 31) ^ (w9h >>> 8 | w9l << 24) ^ w9h >>> 7) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6123 xl = (w6l >>> 19 | w6h << 13) ^ (w6l << 3 | w6h >>> 29) ^ (w6l >>> 6 | w6h << 26) | 0;
6124 w8l = w8l + xl | 0;
6125 w8h = w8h + ((w6h >>> 19 | w6l << 13) ^ (w6h << 3 | w6l >>> 29) ^ w6h >>> 6) + (w8l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6126 tl = 587496836 + w8l | 0;
6127 th = 685471733 + w8h + (tl >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
6128 tl = tl + hl | 0;
6129 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6130 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6131 tl = tl + xl | 0;
6132 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6133 xl = gl ^ el & (fl ^ gl) | 0;
6134 tl = tl + xl | 0;
6135 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6136 hl = gl;
6137 hh = gh;
6138 gl = fl;
6139 gh = fh;
6140 fl = el;
6141 fh = eh;
6142 el = dl + tl | 0;
6143 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6144 dl = cl;
6145 dh = ch;
6146 cl = bl;
6147 ch = bh;
6148 bl = al;
6149 bh = ah;
6150 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6151 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6152 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6153 al = al + xl | 0;
6154 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6155 w9l = w9l + w2l | 0;
6156 w9h = w9h + w2h + (w9l >>> 0 < w2l >>> 0 ? 1 : 0) | 0;
6157 xl = (w10l >>> 1 | w10h << 31) ^ (w10l >>> 8 | w10h << 24) ^ (w10l >>> 7 | w10h << 25) | 0;
6158 w9l = w9l + xl | 0;
6159 w9h = w9h + ((w10h >>> 1 | w10l << 31) ^ (w10h >>> 8 | w10l << 24) ^ w10h >>> 7) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6160 xl = (w7l >>> 19 | w7h << 13) ^ (w7l << 3 | w7h >>> 29) ^ (w7l >>> 6 | w7h << 26) | 0;
6161 w9l = w9l + xl | 0;
6162 w9h = w9h + ((w7h >>> 19 | w7l << 13) ^ (w7h << 3 | w7l >>> 29) ^ w7h >>> 6) + (w9l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6163 tl = 1086792851 + w9l | 0;
6164 th = 852142971 + w9h + (tl >>> 0 < w9l >>> 0 ? 1 : 0) | 0;
6165 tl = tl + hl | 0;
6166 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6167 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6168 tl = tl + xl | 0;
6169 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6170 xl = gl ^ el & (fl ^ gl) | 0;
6171 tl = tl + xl | 0;
6172 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6173 hl = gl;
6174 hh = gh;
6175 gl = fl;
6176 gh = fh;
6177 fl = el;
6178 fh = eh;
6179 el = dl + tl | 0;
6180 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6181 dl = cl;
6182 dh = ch;
6183 cl = bl;
6184 ch = bh;
6185 bl = al;
6186 bh = ah;
6187 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6188 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6189 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6190 al = al + xl | 0;
6191 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6192 w10l = w10l + w3l | 0;
6193 w10h = w10h + w3h + (w10l >>> 0 < w3l >>> 0 ? 1 : 0) | 0;
6194 xl = (w11l >>> 1 | w11h << 31) ^ (w11l >>> 8 | w11h << 24) ^ (w11l >>> 7 | w11h << 25) | 0;
6195 w10l = w10l + xl | 0;
6196 w10h = w10h + ((w11h >>> 1 | w11l << 31) ^ (w11h >>> 8 | w11l << 24) ^ w11h >>> 7) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6197 xl = (w8l >>> 19 | w8h << 13) ^ (w8l << 3 | w8h >>> 29) ^ (w8l >>> 6 | w8h << 26) | 0;
6198 w10l = w10l + xl | 0;
6199 w10h = w10h + ((w8h >>> 19 | w8l << 13) ^ (w8h << 3 | w8l >>> 29) ^ w8h >>> 6) + (w10l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6200 tl = 365543100 + w10l | 0;
6201 th = 1017036298 + w10h + (tl >>> 0 < w10l >>> 0 ? 1 : 0) | 0;
6202 tl = tl + hl | 0;
6203 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6204 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6205 tl = tl + xl | 0;
6206 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6207 xl = gl ^ el & (fl ^ gl) | 0;
6208 tl = tl + xl | 0;
6209 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6210 hl = gl;
6211 hh = gh;
6212 gl = fl;
6213 gh = fh;
6214 fl = el;
6215 fh = eh;
6216 el = dl + tl | 0;
6217 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6218 dl = cl;
6219 dh = ch;
6220 cl = bl;
6221 ch = bh;
6222 bl = al;
6223 bh = ah;
6224 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6225 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6226 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6227 al = al + xl | 0;
6228 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6229 w11l = w11l + w4l | 0;
6230 w11h = w11h + w4h + (w11l >>> 0 < w4l >>> 0 ? 1 : 0) | 0;
6231 xl = (w12l >>> 1 | w12h << 31) ^ (w12l >>> 8 | w12h << 24) ^ (w12l >>> 7 | w12h << 25) | 0;
6232 w11l = w11l + xl | 0;
6233 w11h = w11h + ((w12h >>> 1 | w12l << 31) ^ (w12h >>> 8 | w12l << 24) ^ w12h >>> 7) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6234 xl = (w9l >>> 19 | w9h << 13) ^ (w9l << 3 | w9h >>> 29) ^ (w9l >>> 6 | w9h << 26) | 0;
6235 w11l = w11l + xl | 0;
6236 w11h = w11h + ((w9h >>> 19 | w9l << 13) ^ (w9h << 3 | w9l >>> 29) ^ w9h >>> 6) + (w11l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6237 tl = 2618297676 + w11l | 0;
6238 th = 1126000580 + w11h + (tl >>> 0 < w11l >>> 0 ? 1 : 0) | 0;
6239 tl = tl + hl | 0;
6240 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6241 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6242 tl = tl + xl | 0;
6243 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6244 xl = gl ^ el & (fl ^ gl) | 0;
6245 tl = tl + xl | 0;
6246 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6247 hl = gl;
6248 hh = gh;
6249 gl = fl;
6250 gh = fh;
6251 fl = el;
6252 fh = eh;
6253 el = dl + tl | 0;
6254 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6255 dl = cl;
6256 dh = ch;
6257 cl = bl;
6258 ch = bh;
6259 bl = al;
6260 bh = ah;
6261 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6262 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6263 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6264 al = al + xl | 0;
6265 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6266 w12l = w12l + w5l | 0;
6267 w12h = w12h + w5h + (w12l >>> 0 < w5l >>> 0 ? 1 : 0) | 0;
6268 xl = (w13l >>> 1 | w13h << 31) ^ (w13l >>> 8 | w13h << 24) ^ (w13l >>> 7 | w13h << 25) | 0;
6269 w12l = w12l + xl | 0;
6270 w12h = w12h + ((w13h >>> 1 | w13l << 31) ^ (w13h >>> 8 | w13l << 24) ^ w13h >>> 7) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6271 xl = (w10l >>> 19 | w10h << 13) ^ (w10l << 3 | w10h >>> 29) ^ (w10l >>> 6 | w10h << 26) | 0;
6272 w12l = w12l + xl | 0;
6273 w12h = w12h + ((w10h >>> 19 | w10l << 13) ^ (w10h << 3 | w10l >>> 29) ^ w10h >>> 6) + (w12l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6274 tl = 3409855158 + w12l | 0;
6275 th = 1288033470 + w12h + (tl >>> 0 < w12l >>> 0 ? 1 : 0) | 0;
6276 tl = tl + hl | 0;
6277 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6278 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6279 tl = tl + xl | 0;
6280 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6281 xl = gl ^ el & (fl ^ gl) | 0;
6282 tl = tl + xl | 0;
6283 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6284 hl = gl;
6285 hh = gh;
6286 gl = fl;
6287 gh = fh;
6288 fl = el;
6289 fh = eh;
6290 el = dl + tl | 0;
6291 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6292 dl = cl;
6293 dh = ch;
6294 cl = bl;
6295 ch = bh;
6296 bl = al;
6297 bh = ah;
6298 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6299 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6300 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6301 al = al + xl | 0;
6302 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6303 w13l = w13l + w6l | 0;
6304 w13h = w13h + w6h + (w13l >>> 0 < w6l >>> 0 ? 1 : 0) | 0;
6305 xl = (w14l >>> 1 | w14h << 31) ^ (w14l >>> 8 | w14h << 24) ^ (w14l >>> 7 | w14h << 25) | 0;
6306 w13l = w13l + xl | 0;
6307 w13h = w13h + ((w14h >>> 1 | w14l << 31) ^ (w14h >>> 8 | w14l << 24) ^ w14h >>> 7) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6308 xl = (w11l >>> 19 | w11h << 13) ^ (w11l << 3 | w11h >>> 29) ^ (w11l >>> 6 | w11h << 26) | 0;
6309 w13l = w13l + xl | 0;
6310 w13h = w13h + ((w11h >>> 19 | w11l << 13) ^ (w11h << 3 | w11l >>> 29) ^ w11h >>> 6) + (w13l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6311 tl = 4234509866 + w13l | 0;
6312 th = 1501505948 + w13h + (tl >>> 0 < w13l >>> 0 ? 1 : 0) | 0;
6313 tl = tl + hl | 0;
6314 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6315 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6316 tl = tl + xl | 0;
6317 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6318 xl = gl ^ el & (fl ^ gl) | 0;
6319 tl = tl + xl | 0;
6320 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6321 hl = gl;
6322 hh = gh;
6323 gl = fl;
6324 gh = fh;
6325 fl = el;
6326 fh = eh;
6327 el = dl + tl | 0;
6328 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6329 dl = cl;
6330 dh = ch;
6331 cl = bl;
6332 ch = bh;
6333 bl = al;
6334 bh = ah;
6335 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6336 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6337 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6338 al = al + xl | 0;
6339 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6340 w14l = w14l + w7l | 0;
6341 w14h = w14h + w7h + (w14l >>> 0 < w7l >>> 0 ? 1 : 0) | 0;
6342 xl = (w15l >>> 1 | w15h << 31) ^ (w15l >>> 8 | w15h << 24) ^ (w15l >>> 7 | w15h << 25) | 0;
6343 w14l = w14l + xl | 0;
6344 w14h = w14h + ((w15h >>> 1 | w15l << 31) ^ (w15h >>> 8 | w15l << 24) ^ w15h >>> 7) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6345 xl = (w12l >>> 19 | w12h << 13) ^ (w12l << 3 | w12h >>> 29) ^ (w12l >>> 6 | w12h << 26) | 0;
6346 w14l = w14l + xl | 0;
6347 w14h = w14h + ((w12h >>> 19 | w12l << 13) ^ (w12h << 3 | w12l >>> 29) ^ w12h >>> 6) + (w14l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6348 tl = 987167468 + w14l | 0;
6349 th = 1607167915 + w14h + (tl >>> 0 < w14l >>> 0 ? 1 : 0) | 0;
6350 tl = tl + hl | 0;
6351 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6352 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6353 tl = tl + xl | 0;
6354 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6355 xl = gl ^ el & (fl ^ gl) | 0;
6356 tl = tl + xl | 0;
6357 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6358 hl = gl;
6359 hh = gh;
6360 gl = fl;
6361 gh = fh;
6362 fl = el;
6363 fh = eh;
6364 el = dl + tl | 0;
6365 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6366 dl = cl;
6367 dh = ch;
6368 cl = bl;
6369 ch = bh;
6370 bl = al;
6371 bh = ah;
6372 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6373 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6374 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6375 al = al + xl | 0;
6376 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6377 w15l = w15l + w8l | 0;
6378 w15h = w15h + w8h + (w15l >>> 0 < w8l >>> 0 ? 1 : 0) | 0;
6379 xl = (w0l >>> 1 | w0h << 31) ^ (w0l >>> 8 | w0h << 24) ^ (w0l >>> 7 | w0h << 25) | 0;
6380 w15l = w15l + xl | 0;
6381 w15h = w15h + ((w0h >>> 1 | w0l << 31) ^ (w0h >>> 8 | w0l << 24) ^ w0h >>> 7) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6382 xl = (w13l >>> 19 | w13h << 13) ^ (w13l << 3 | w13h >>> 29) ^ (w13l >>> 6 | w13h << 26) | 0;
6383 w15l = w15l + xl | 0;
6384 w15h = w15h + ((w13h >>> 19 | w13l << 13) ^ (w13h << 3 | w13l >>> 29) ^ w13h >>> 6) + (w15l >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6385 tl = 1246189591 + w15l | 0;
6386 th = 1816402316 + w15h + (tl >>> 0 < w15l >>> 0 ? 1 : 0) | 0;
6387 tl = tl + hl | 0;
6388 th = th + hh + (tl >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6389 xl = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9) | 0;
6390 tl = tl + xl | 0;
6391 th = th + ((eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6392 xl = gl ^ el & (fl ^ gl) | 0;
6393 tl = tl + xl | 0;
6394 th = th + (gh ^ eh & (fh ^ gh)) + (tl >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6395 hl = gl;
6396 hh = gh;
6397 gl = fl;
6398 gh = fh;
6399 fl = el;
6400 fh = eh;
6401 el = dl + tl | 0;
6402 eh = dh + th + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6403 dl = cl;
6404 dh = ch;
6405 cl = bl;
6406 ch = bh;
6407 bl = al;
6408 bh = ah;
6409 al = tl + (bl & cl ^ dl & (bl ^ cl)) | 0;
6410 ah = th + (bh & ch ^ dh & (bh ^ ch)) + (al >>> 0 < tl >>> 0 ? 1 : 0) | 0;
6411 xl = (bl >>> 28 | bh << 4) ^ (bl << 30 | bh >>> 2) ^ (bl << 25 | bh >>> 7) | 0;
6412 al = al + xl | 0;
6413 ah = ah + ((bh >>> 28 | bl << 4) ^ (bh << 30 | bl >>> 2) ^ (bh << 25 | bl >>> 7)) + (al >>> 0 < xl >>> 0 ? 1 : 0) | 0;
6414 H0l = H0l + al | 0;
6415 H0h = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0) | 0;
6416 H1l = H1l + bl | 0;
6417 H1h = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0) | 0;
6418 H2l = H2l + cl | 0;
6419 H2h = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0) | 0;
6420 H3l = H3l + dl | 0;
6421 H3h = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0) | 0;
6422 H4l = H4l + el | 0;
6423 H4h = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0) | 0;
6424 H5l = H5l + fl | 0;
6425 H5h = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0) | 0;
6426 H6l = H6l + gl | 0;
6427 H6h = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0) | 0;
6428 H7l = H7l + hl | 0;
6429 H7h = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0) | 0;
6430 }
6431 function _core_heap(offset) {
6432 offset = offset | 0;
6433 _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]);
6434 }
6435 function _state_to_heap(output) {
6436 output = output | 0;
6437 HEAP[output | 0] = H0h >>> 24;
6438 HEAP[output | 1] = H0h >>> 16 & 255;
6439 HEAP[output | 2] = H0h >>> 8 & 255;
6440 HEAP[output | 3] = H0h & 255;
6441 HEAP[output | 4] = H0l >>> 24;
6442 HEAP[output | 5] = H0l >>> 16 & 255;
6443 HEAP[output | 6] = H0l >>> 8 & 255;
6444 HEAP[output | 7] = H0l & 255;
6445 HEAP[output | 8] = H1h >>> 24;
6446 HEAP[output | 9] = H1h >>> 16 & 255;
6447 HEAP[output | 10] = H1h >>> 8 & 255;
6448 HEAP[output | 11] = H1h & 255;
6449 HEAP[output | 12] = H1l >>> 24;
6450 HEAP[output | 13] = H1l >>> 16 & 255;
6451 HEAP[output | 14] = H1l >>> 8 & 255;
6452 HEAP[output | 15] = H1l & 255;
6453 HEAP[output | 16] = H2h >>> 24;
6454 HEAP[output | 17] = H2h >>> 16 & 255;
6455 HEAP[output | 18] = H2h >>> 8 & 255;
6456 HEAP[output | 19] = H2h & 255;
6457 HEAP[output | 20] = H2l >>> 24;
6458 HEAP[output | 21] = H2l >>> 16 & 255;
6459 HEAP[output | 22] = H2l >>> 8 & 255;
6460 HEAP[output | 23] = H2l & 255;
6461 HEAP[output | 24] = H3h >>> 24;
6462 HEAP[output | 25] = H3h >>> 16 & 255;
6463 HEAP[output | 26] = H3h >>> 8 & 255;
6464 HEAP[output | 27] = H3h & 255;
6465 HEAP[output | 28] = H3l >>> 24;
6466 HEAP[output | 29] = H3l >>> 16 & 255;
6467 HEAP[output | 30] = H3l >>> 8 & 255;
6468 HEAP[output | 31] = H3l & 255;
6469 HEAP[output | 32] = H4h >>> 24;
6470 HEAP[output | 33] = H4h >>> 16 & 255;
6471 HEAP[output | 34] = H4h >>> 8 & 255;
6472 HEAP[output | 35] = H4h & 255;
6473 HEAP[output | 36] = H4l >>> 24;
6474 HEAP[output | 37] = H4l >>> 16 & 255;
6475 HEAP[output | 38] = H4l >>> 8 & 255;
6476 HEAP[output | 39] = H4l & 255;
6477 HEAP[output | 40] = H5h >>> 24;
6478 HEAP[output | 41] = H5h >>> 16 & 255;
6479 HEAP[output | 42] = H5h >>> 8 & 255;
6480 HEAP[output | 43] = H5h & 255;
6481 HEAP[output | 44] = H5l >>> 24;
6482 HEAP[output | 45] = H5l >>> 16 & 255;
6483 HEAP[output | 46] = H5l >>> 8 & 255;
6484 HEAP[output | 47] = H5l & 255;
6485 HEAP[output | 48] = H6h >>> 24;
6486 HEAP[output | 49] = H6h >>> 16 & 255;
6487 HEAP[output | 50] = H6h >>> 8 & 255;
6488 HEAP[output | 51] = H6h & 255;
6489 HEAP[output | 52] = H6l >>> 24;
6490 HEAP[output | 53] = H6l >>> 16 & 255;
6491 HEAP[output | 54] = H6l >>> 8 & 255;
6492 HEAP[output | 55] = H6l & 255;
6493 HEAP[output | 56] = H7h >>> 24;
6494 HEAP[output | 57] = H7h >>> 16 & 255;
6495 HEAP[output | 58] = H7h >>> 8 & 255;
6496 HEAP[output | 59] = H7h & 255;
6497 HEAP[output | 60] = H7l >>> 24;
6498 HEAP[output | 61] = H7l >>> 16 & 255;
6499 HEAP[output | 62] = H7l >>> 8 & 255;
6500 HEAP[output | 63] = H7l & 255;
6501 }
6502 function reset() {
6503 H0h = 1779033703;
6504 H0l = 4089235720;
6505 H1h = 3144134277;
6506 H1l = 2227873595;
6507 H2h = 1013904242;
6508 H2l = 4271175723;
6509 H3h = 2773480762;
6510 H3l = 1595750129;
6511 H4h = 1359893119;
6512 H4l = 2917565137;
6513 H5h = 2600822924;
6514 H5l = 725511199;
6515 H6h = 528734635;
6516 H6l = 4215389547;
6517 H7h = 1541459225;
6518 H7l = 327033209;
6519 TOTAL = 0;
6520 }
6521 function init(h0h, h0l, h1h, h1l, h2h, h2l, h3h, h3l, h4h, h4l, h5h, h5l, h6h, h6l, h7h, h7l, total) {
6522 h0h = h0h | 0;
6523 h0l = h0l | 0;
6524 h1h = h1h | 0;
6525 h1l = h1l | 0;
6526 h2h = h2h | 0;
6527 h2l = h2l | 0;
6528 h3h = h3h | 0;
6529 h3l = h3l | 0;
6530 h4h = h4h | 0;
6531 h4l = h4l | 0;
6532 h5h = h5h | 0;
6533 h5l = h5l | 0;
6534 h6h = h6h | 0;
6535 h6l = h6l | 0;
6536 h7h = h7h | 0;
6537 h7l = h7l | 0;
6538 total = total | 0;
6539 H0h = h0h;
6540 H0l = h0l;
6541 H1h = h1h;
6542 H1l = h1l;
6543 H2h = h2h;
6544 H2l = h2l;
6545 H3h = h3h;
6546 H3l = h3l;
6547 H4h = h4h;
6548 H4l = h4l;
6549 H5h = h5h;
6550 H5l = h5l;
6551 H6h = h6h;
6552 H6l = h6l;
6553 H7h = h7h;
6554 H7l = h7l;
6555 TOTAL = total;
6556 }
6557 function process(offset, length) {
6558 offset = offset | 0;
6559 length = length | 0;
6560 var hashed = 0;
6561 if (offset & 127) return -1;
6562 while ((length | 0) >= 128) {
6563 _core_heap(offset);
6564 offset = offset + 128 | 0;
6565 length = length - 128 | 0;
6566 hashed = hashed + 128 | 0;
6567 }
6568 TOTAL = TOTAL + hashed | 0;
6569 return hashed | 0;
6570 }
6571 function finish(offset, length, output) {
6572 offset = offset | 0;
6573 length = length | 0;
6574 output = output | 0;
6575 var hashed = 0, i = 0;
6576 if (offset & 127) return -1;
6577 if (~output) if (output & 63) return -1;
6578 if ((length | 0) >= 128) {
6579 hashed = process(offset, length) | 0;
6580 if ((hashed | 0) == -1) return -1;
6581 offset = offset + hashed | 0;
6582 length = length - hashed | 0;
6583 }
6584 hashed = hashed + length | 0;
6585 TOTAL = TOTAL + length | 0;
6586 HEAP[offset | length] = 128;
6587 if ((length | 0) >= 112) {
6588 for (i = length + 1 | 0; (i | 0) < 128; i = i + 1 | 0) HEAP[offset | i] = 0;
6589 _core_heap(offset);
6590 length = 0;
6591 HEAP[offset | 0] = 0;
6592 }
6593 for (i = length + 1 | 0; (i | 0) < 123; i = i + 1 | 0) HEAP[offset | i] = 0;
6594 HEAP[offset | 123] = TOTAL >>> 29;
6595 HEAP[offset | 124] = TOTAL >>> 21 & 255;
6596 HEAP[offset | 125] = TOTAL >>> 13 & 255;
6597 HEAP[offset | 126] = TOTAL >>> 5 & 255;
6598 HEAP[offset | 127] = TOTAL << 3 & 255;
6599 _core_heap(offset);
6600 if (~output) _state_to_heap(output);
6601 return hashed | 0;
6602 }
6603 function hmac_reset() {
6604 H0h = I0h;
6605 H0l = I0l;
6606 H1h = I1h;
6607 H1l = I1l;
6608 H2h = I2h;
6609 H2l = I2l;
6610 H3h = I3h;
6611 H3l = I3l;
6612 H4h = I4h;
6613 H4l = I4l;
6614 H5h = I5h;
6615 H5l = I5l;
6616 H6h = I6h;
6617 H6l = I6l;
6618 H7h = I7h;
6619 H7l = I7l;
6620 TOTAL = 128;
6621 }
6622 function _hmac_opad() {
6623 H0h = O0h;
6624 H0l = O0l;
6625 H1h = O1h;
6626 H1l = O1l;
6627 H2h = O2h;
6628 H2l = O2l;
6629 H3h = O3h;
6630 H3l = O3l;
6631 H4h = O4h;
6632 H4l = O4l;
6633 H5h = O5h;
6634 H5l = O5l;
6635 H6h = O6h;
6636 H6l = O6l;
6637 H7h = O7h;
6638 H7l = O7l;
6639 TOTAL = 128;
6640 }
6641 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) {
6642 p0h = p0h | 0;
6643 p0l = p0l | 0;
6644 p1h = p1h | 0;
6645 p1l = p1l | 0;
6646 p2h = p2h | 0;
6647 p2l = p2l | 0;
6648 p3h = p3h | 0;
6649 p3l = p3l | 0;
6650 p4h = p4h | 0;
6651 p4l = p4l | 0;
6652 p5h = p5h | 0;
6653 p5l = p5l | 0;
6654 p6h = p6h | 0;
6655 p6l = p6l | 0;
6656 p7h = p7h | 0;
6657 p7l = p7l | 0;
6658 p8h = p8h | 0;
6659 p8l = p8l | 0;
6660 p9h = p9h | 0;
6661 p9l = p9l | 0;
6662 p10h = p10h | 0;
6663 p10l = p10l | 0;
6664 p11h = p11h | 0;
6665 p11l = p11l | 0;
6666 p12h = p12h | 0;
6667 p12l = p12l | 0;
6668 p13h = p13h | 0;
6669 p13l = p13l | 0;
6670 p14h = p14h | 0;
6671 p14l = p14l | 0;
6672 p15h = p15h | 0;
6673 p15l = p15l | 0;
6674 reset();
6675 _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);
6676 O0h = H0h;
6677 O0l = H0l;
6678 O1h = H1h;
6679 O1l = H1l;
6680 O2h = H2h;
6681 O2l = H2l;
6682 O3h = H3h;
6683 O3l = H3l;
6684 O4h = H4h;
6685 O4l = H4l;
6686 O5h = H5h;
6687 O5l = H5l;
6688 O6h = H6h;
6689 O6l = H6l;
6690 O7h = H7h;
6691 O7l = H7l;
6692 reset();
6693 _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);
6694 I0h = H0h;
6695 I0l = H0l;
6696 I1h = H1h;
6697 I1l = H1l;
6698 I2h = H2h;
6699 I2l = H2l;
6700 I3h = H3h;
6701 I3l = H3l;
6702 I4h = H4h;
6703 I4l = H4l;
6704 I5h = H5h;
6705 I5l = H5l;
6706 I6h = H6h;
6707 I6l = H6l;
6708 I7h = H7h;
6709 I7l = H7l;
6710 TOTAL = 128;
6711 }
6712 function hmac_finish(offset, length, output) {
6713 offset = offset | 0;
6714 length = length | 0;
6715 output = output | 0;
6716 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;
6717 if (offset & 127) return -1;
6718 if (~output) if (output & 63) return -1;
6719 hashed = finish(offset, length, -1) | 0;
6720 t0h = H0h;
6721 t0l = H0l;
6722 t1h = H1h;
6723 t1l = H1l;
6724 t2h = H2h;
6725 t2l = H2l;
6726 t3h = H3h;
6727 t3l = H3l;
6728 t4h = H4h;
6729 t4l = H4l;
6730 t5h = H5h;
6731 t5l = H5l;
6732 t6h = H6h;
6733 t6l = H6l;
6734 t7h = H7h;
6735 t7l = H7l;
6736 _hmac_opad();
6737 _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);
6738 if (~output) _state_to_heap(output);
6739 return hashed | 0;
6740 }
6741 function pbkdf2_generate_block(offset, length, block, count, output) {
6742 offset = offset | 0;
6743 length = length | 0;
6744 block = block | 0;
6745 count = count | 0;
6746 output = output | 0;
6747 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;
6748 if (offset & 127) return -1;
6749 if (~output) if (output & 63) return -1;
6750 HEAP[offset + length | 0] = block >>> 24;
6751 HEAP[offset + length + 1 | 0] = block >>> 16 & 255;
6752 HEAP[offset + length + 2 | 0] = block >>> 8 & 255;
6753 HEAP[offset + length + 3 | 0] = block & 255;
6754 // Closure compiler warning - The result of the 'bitor' operator is not being used
6755 //hmac_finish(offset, length + 4 | 0, -1) | 0;
6756 hmac_finish(offset, length + 4 | 0, -1);
6757 h0h = t0h = H0h;
6758 h0l = t0l = H0l;
6759 h1h = t1h = H1h;
6760 h1l = t1l = H1l;
6761 h2h = t2h = H2h;
6762 h2l = t2l = H2l;
6763 h3h = t3h = H3h;
6764 h3l = t3l = H3l;
6765 h4h = t4h = H4h;
6766 h4l = t4l = H4l;
6767 h5h = t5h = H5h;
6768 h5l = t5l = H5l;
6769 h6h = t6h = H6h;
6770 h6l = t6l = H6l;
6771 h7h = t7h = H7h;
6772 h7l = t7l = H7l;
6773 count = count - 1 | 0;
6774 while ((count | 0) > 0) {
6775 hmac_reset();
6776 _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);
6777 t0h = H0h;
6778 t0l = H0l;
6779 t1h = H1h;
6780 t1l = H1l;
6781 t2h = H2h;
6782 t2l = H2l;
6783 t3h = H3h;
6784 t3l = H3l;
6785 t4h = H4h;
6786 t4l = H4l;
6787 t5h = H5h;
6788 t5l = H5l;
6789 t6h = H6h;
6790 t6l = H6l;
6791 t7h = H7h;
6792 t7l = H7l;
6793 _hmac_opad();
6794 _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);
6795 t0h = H0h;
6796 t0l = H0l;
6797 t1h = H1h;
6798 t1l = H1l;
6799 t2h = H2h;
6800 t2l = H2l;
6801 t3h = H3h;
6802 t3l = H3l;
6803 t4h = H4h;
6804 t4l = H4l;
6805 t5h = H5h;
6806 t5l = H5l;
6807 t6h = H6h;
6808 t6l = H6l;
6809 t7h = H7h;
6810 t7l = H7l;
6811 h0h = h0h ^ H0h;
6812 h0l = h0l ^ H0l;
6813 h1h = h1h ^ H1h;
6814 h1l = h1l ^ H1l;
6815 h2h = h2h ^ H2h;
6816 h2l = h2l ^ H2l;
6817 h3h = h3h ^ H3h;
6818 h3l = h3l ^ H3l;
6819 h4h = h4h ^ H4h;
6820 h4l = h4l ^ H4l;
6821 h5h = h5h ^ H5h;
6822 h5l = h5l ^ H5l;
6823 h6h = h6h ^ H6h;
6824 h6l = h6l ^ H6l;
6825 h7h = h7h ^ H7h;
6826 h7l = h7l ^ H7l;
6827 count = count - 1 | 0;
6828 }
6829 H0h = h0h;
6830 H0l = h0l;
6831 H1h = h1h;
6832 H1l = h1l;
6833 H2h = h2h;
6834 H2l = h2l;
6835 H3h = h3h;
6836 H3l = h3l;
6837 H4h = h4h;
6838 H4l = h4l;
6839 H5h = h5h;
6840 H5l = h5l;
6841 H6h = h6h;
6842 H6l = h6l;
6843 H7h = h7h;
6844 H7l = h7l;
6845 if (~output) _state_to_heap(output);
6846 return 0;
6847 }
6848 return {
6849 reset: reset,
6850 init: init,
6851 process: process,
6852 finish: finish,
6853 hmac_reset: hmac_reset,
6854 hmac_init: hmac_init,
6855 hmac_finish: hmac_finish,
6856 pbkdf2_generate_block: pbkdf2_generate_block
6857 };
6858 }
6859 var _sha512_block_size = 128, _sha512_hash_size = 64;
6860 function sha512_constructor(options) {
6861 options = options || {};
6862 options.heapSize = options.heapSize || 4096;
6863 if (options.heapSize <= 0 || options.heapSize % 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
6864 this.heap = options.heap || new Uint8Array(options.heapSize);
6865 this.asm = options.asm || sha512_asm(global, null, this.heap.buffer);
6866 this.BLOCK_SIZE = _sha512_block_size;
6867 this.HASH_SIZE = _sha512_hash_size;
6868 this.reset();
6869 }
6870 function sha512_reset() {
6871 this.result = null;
6872 this.pos = 0;
6873 this.len = 0;
6874 this.asm.reset();
6875 return this;
6876 }
6877 function sha512_process(data) {
6878 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
6879 var dpos = 0, dlen = 0, clen = 0;
6880 if (is_buffer(data) || is_bytes(data)) {
6881 dpos = data.byteOffset || 0;
6882 dlen = data.byteLength;
6883 } else if (is_string(data)) {
6884 dlen = data.length;
6885 } else {
6886 throw new TypeError("data isn't of expected type");
6887 }
6888 while (dlen > 0) {
6889 clen = this.heap.byteLength - this.pos - this.len;
6890 clen = clen < dlen ? clen : dlen;
6891 if (is_buffer(data) || is_bytes(data)) {
6892 this.heap.set(new Uint8Array(data.buffer || data, dpos, clen), this.pos + this.len);
6893 } else {
6894 for (var i = 0; i < clen; i++) this.heap[this.pos + this.len + i] = data.charCodeAt(dpos + i);
6895 }
6896 this.len += clen;
6897 dpos += clen;
6898 dlen -= clen;
6899 clen = this.asm.process(this.pos, this.len);
6900 if (clen < this.len) {
6901 this.pos += clen;
6902 this.len -= clen;
6903 } else {
6904 this.pos = 0;
6905 this.len = 0;
6906 }
6907 }
6908 return this;
6909 }
6910 function sha512_finish() {
6911 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
6912 this.asm.finish(this.pos, this.len, 0);
6913 this.result = new Uint8Array(_sha512_hash_size);
6914 this.result.set(this.heap.subarray(0, _sha512_hash_size));
6915 this.pos = 0;
6916 this.len = 0;
6917 return this;
6918 }
6919 sha512_constructor.BLOCK_SIZE = _sha512_block_size;
6920 sha512_constructor.HASH_SIZE = _sha512_hash_size;
6921 var sha512_prototype = sha512_constructor.prototype;
6922 sha512_prototype.reset = sha512_reset;
6923 sha512_prototype.process = sha512_process;
6924 sha512_prototype.finish = sha512_finish;
6925 function hmac_constructor(options) {
6926 options = options || {};
6927 if (!options.hash) throw new SyntaxError("option 'hash' is required");
6928 if (!options.hash.HASH_SIZE) throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function");
6929 this.hash = options.hash;
6930 this.BLOCK_SIZE = this.hash.BLOCK_SIZE;
6931 this.HMAC_SIZE = this.hash.HASH_SIZE;
6932 this.key = null;
6933 this.verify = null;
6934 this.result = null;
6935 if (options.password !== undefined || options.verify !== undefined) this.reset(options);
6936 return this;
6937 }
6938 function hmac_sha256_constructor(options) {
6939 options = options || {};
6940 if (!(options.hash instanceof sha256_constructor)) options.hash = new sha256_constructor(options);
6941 hmac_constructor.call(this, options);
6942 return this;
6943 }
6944 function hmac_sha512_constructor(options) {
6945 options = options || {};
6946 if (!(options.hash instanceof sha512_constructor)) options.hash = new sha512_constructor(options);
6947 hmac_constructor.call(this, options);
6948 return this;
6949 }
6950 function _hmac_key(hash, password) {
6951 var key;
6952 if (is_buffer(password) || is_bytes(password)) {
6953 key = new Uint8Array(hash.BLOCK_SIZE);
6954 if (password.byteLength > hash.BLOCK_SIZE) {
6955 key.set(new Uint8Array(hash.reset().process(password).finish().result));
6956 } else if (is_buffer(password)) {
6957 key.set(new Uint8Array(password));
6958 } else {
6959 key.set(password);
6960 }
6961 } else if (is_string(password)) {
6962 key = new Uint8Array(hash.BLOCK_SIZE);
6963 if (password.length > hash.BLOCK_SIZE) {
6964 key.set(new Uint8Array(hash.reset().process(password).finish().result));
6965 } else {
6966 for (var i = 0; i < password.length; ++i) key[i] = password.charCodeAt(i);
6967 }
6968 } else {
6969 throw new TypeError("password isn't of expected type");
6970 }
6971 return key;
6972 }
6973 function _hmac_init_verify(verify) {
6974 if (is_buffer(verify) || is_bytes(verify)) {
6975 verify = new Uint8Array(verify);
6976 } else if (is_string(verify)) {
6977 verify = string_to_bytes(verify);
6978 } else {
6979 throw new TypeError("verify tag isn't of expected type");
6980 }
6981 if (verify.length !== this.HMAC_SIZE) throw new IllegalArgumentError("illegal verification tag size");
6982 this.verify = verify;
6983 }
6984 function hmac_reset(options) {
6985 options = options || {};
6986 var password = options.password;
6987 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
6988 this.result = null;
6989 this.hash.reset();
6990 if (password || is_string(password)) this.key = _hmac_key(this.hash, password);
6991 var ipad = new Uint8Array(this.key);
6992 for (var i = 0; i < ipad.length; ++i) ipad[i] ^= 54;
6993 this.hash.process(ipad);
6994 var verify = options.verify;
6995 if (verify !== undefined) {
6996 _hmac_init_verify.call(this, verify);
6997 } else {
6998 this.verify = null;
6999 }
7000 return this;
7001 }
7002 function hmac_sha256_reset(options) {
7003 options = options || {};
7004 var password = options.password;
7005 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
7006 this.result = null;
7007 this.hash.reset();
7008 if (password || is_string(password)) {
7009 this.key = _hmac_key(this.hash, password);
7010 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]);
7011 } else {
7012 this.hash.asm.hmac_reset();
7013 }
7014 var verify = options.verify;
7015 if (verify !== undefined) {
7016 _hmac_init_verify.call(this, verify);
7017 } else {
7018 this.verify = null;
7019 }
7020 return this;
7021 }
7022 function hmac_sha512_reset(options) {
7023 options = options || {};
7024 var password = options.password;
7025 if (this.key === null && !is_string(password) && !password) throw new IllegalStateError("no key is associated with the instance");
7026 this.result = null;
7027 this.hash.reset();
7028 if (password || is_string(password)) {
7029 this.key = _hmac_key(this.hash, password);
7030 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]);
7031 } else {
7032 this.hash.asm.hmac_reset();
7033 }
7034 var verify = options.verify;
7035 if (verify !== undefined) {
7036 _hmac_init_verify.call(this, verify);
7037 } else {
7038 this.verify = null;
7039 }
7040 return this;
7041 }
7042 function hmac_process(data) {
7043 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7044 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7045 this.hash.process(data);
7046 return this;
7047 }
7048 function hmac_finish() {
7049 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7050 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7051 var inner_result = this.hash.finish().result;
7052 var opad = new Uint8Array(this.key);
7053 for (var i = 0; i < opad.length; ++i) opad[i] ^= 92;
7054 var verify = this.verify;
7055 var result = this.hash.reset().process(opad).process(inner_result).finish().result;
7056 if (verify) {
7057 if (verify.length === result.length) {
7058 var diff = 0;
7059 for (var i = 0; i < verify.length; i++) {
7060 diff |= verify[i] ^ result[i];
7061 }
7062 this.result = !diff;
7063 } else {
7064 this.result = false;
7065 }
7066 } else {
7067 this.result = result;
7068 }
7069 return this;
7070 }
7071 function hmac_sha256_finish() {
7072 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7073 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7074 var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap;
7075 asm.hmac_finish(hash.pos, hash.len, 0);
7076 var verify = this.verify;
7077 var result = new Uint8Array(_sha256_hash_size);
7078 result.set(heap.subarray(0, _sha256_hash_size));
7079 if (verify) {
7080 if (verify.length === result.length) {
7081 var diff = 0;
7082 for (var i = 0; i < verify.length; i++) {
7083 diff |= verify[i] ^ result[i];
7084 }
7085 this.result = !diff;
7086 } else {
7087 this.result = false;
7088 }
7089 } else {
7090 this.result = result;
7091 }
7092 return this;
7093 }
7094 function hmac_sha512_finish() {
7095 if (this.key === null) throw new IllegalStateError("no key is associated with the instance");
7096 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7097 var hash = this.hash, asm = this.hash.asm, heap = this.hash.heap;
7098 asm.hmac_finish(hash.pos, hash.len, 0);
7099 var verify = this.verify;
7100 var result = new Uint8Array(_sha512_hash_size);
7101 result.set(heap.subarray(0, _sha512_hash_size));
7102 if (verify) {
7103 if (verify.length === result.length) {
7104 var diff = 0;
7105 for (var i = 0; i < verify.length; i++) {
7106 diff |= verify[i] ^ result[i];
7107 }
7108 this.result = !diff;
7109 } else {
7110 this.result = false;
7111 }
7112 } else {
7113 this.result = result;
7114 }
7115 return this;
7116 }
7117 var hmac_prototype = hmac_constructor.prototype;
7118 hmac_prototype.reset = hmac_reset;
7119 hmac_prototype.process = hmac_process;
7120 hmac_prototype.finish = hmac_finish;
7121 hmac_sha256_constructor.BLOCK_SIZE = sha256_constructor.BLOCK_SIZE;
7122 hmac_sha256_constructor.HMAC_SIZE = sha256_constructor.HASH_SIZE;
7123 var hmac_sha256_prototype = hmac_sha256_constructor.prototype;
7124 hmac_sha256_prototype.reset = hmac_sha256_reset;
7125 hmac_sha256_prototype.process = hmac_process;
7126 hmac_sha256_prototype.finish = hmac_sha256_finish;
7127 hmac_sha512_constructor.BLOCK_SIZE = sha512_constructor.BLOCK_SIZE;
7128 hmac_sha512_constructor.HMAC_SIZE = sha512_constructor.HASH_SIZE;
7129 var hmac_sha512_prototype = hmac_sha512_constructor.prototype;
7130 hmac_sha512_prototype.reset = hmac_sha512_reset;
7131 hmac_sha512_prototype.process = hmac_process;
7132 hmac_sha512_prototype.finish = hmac_sha512_finish;
7133 function pbkdf2_constructor(options) {
7134 options = options || {};
7135 if (!options.hmac) throw new SyntaxError("option 'hmac' is required");
7136 if (!options.hmac.HMAC_SIZE) throw new SyntaxError("option 'hmac' supplied doesn't seem to be a valid HMAC function");
7137 this.hmac = options.hmac;
7138 this.count = options.count || 4096;
7139 this.length = options.length || this.hmac.HMAC_SIZE;
7140 this.result = null;
7141 var password = options.password;
7142 if (password || is_string(password)) this.reset(options);
7143 return this;
7144 }
7145 function pbkdf2_hmac_sha256_constructor(options) {
7146 options = options || {};
7147 if (!(options.hmac instanceof hmac_sha256_constructor)) options.hmac = new hmac_sha256_constructor(options);
7148 pbkdf2_constructor.call(this, options);
7149 return this;
7150 }
7151 function pbkdf2_hmac_sha512_constructor(options) {
7152 options = options || {};
7153 if (!(options.hmac instanceof hmac_sha512_constructor)) options.hmac = new hmac_sha512_constructor(options);
7154 pbkdf2_constructor.call(this, options);
7155 return this;
7156 }
7157 function pbkdf2_reset(options) {
7158 this.result = null;
7159 this.hmac.reset(options);
7160 return this;
7161 }
7162 function pbkdf2_generate(salt, count, length) {
7163 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7164 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7165 count = count || this.count;
7166 length = length || this.length;
7167 this.result = new Uint8Array(length);
7168 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7169 for (var i = 1; i <= blocks; ++i) {
7170 var j = (i - 1) * this.hmac.HMAC_SIZE;
7171 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7172 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);
7173 this.result.set(tmp.subarray(0, l), j);
7174 for (var k = 1; k < count; ++k) {
7175 tmp = new Uint8Array(this.hmac.reset().process(tmp).finish().result);
7176 for (var r = 0; r < l; ++r) this.result[j + r] ^= tmp[r];
7177 }
7178 }
7179 return this;
7180 }
7181 function pbkdf2_hmac_sha256_generate(salt, count, length) {
7182 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7183 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7184 count = count || this.count;
7185 length = length || this.length;
7186 this.result = new Uint8Array(length);
7187 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7188 for (var i = 1; i <= blocks; ++i) {
7189 var j = (i - 1) * this.hmac.HMAC_SIZE;
7190 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7191 this.hmac.reset().process(salt);
7192 this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0);
7193 this.result.set(this.hmac.hash.heap.subarray(0, l), j);
7194 }
7195 return this;
7196 }
7197 function pbkdf2_hmac_sha512_generate(salt, count, length) {
7198 if (this.result !== null) throw new IllegalStateError("state must be reset before processing new data");
7199 if (!salt && !is_string(salt)) throw new IllegalArgumentError("bad 'salt' value");
7200 count = count || this.count;
7201 length = length || this.length;
7202 this.result = new Uint8Array(length);
7203 var blocks = Math.ceil(length / this.hmac.HMAC_SIZE);
7204 for (var i = 1; i <= blocks; ++i) {
7205 var j = (i - 1) * this.hmac.HMAC_SIZE;
7206 var l = (i < blocks ? 0 : length % this.hmac.HMAC_SIZE) || this.hmac.HMAC_SIZE;
7207 this.hmac.reset().process(salt);
7208 this.hmac.hash.asm.pbkdf2_generate_block(this.hmac.hash.pos, this.hmac.hash.len, i, count, 0);
7209 this.result.set(this.hmac.hash.heap.subarray(0, l), j);
7210 }
7211 return this;
7212 }
7213 var pbkdf2_prototype = pbkdf2_constructor.prototype;
7214 pbkdf2_prototype.reset = pbkdf2_reset;
7215 pbkdf2_prototype.generate = pbkdf2_generate;
7216 var pbkdf2_hmac_sha256_prototype = pbkdf2_hmac_sha256_constructor.prototype;
7217 pbkdf2_hmac_sha256_prototype.reset = pbkdf2_reset;
7218 pbkdf2_hmac_sha256_prototype.generate = pbkdf2_hmac_sha256_generate;
7219 var pbkdf2_hmac_sha512_prototype = pbkdf2_hmac_sha512_constructor.prototype;
7220 pbkdf2_hmac_sha512_prototype.reset = pbkdf2_reset;
7221 pbkdf2_hmac_sha512_prototype.generate = pbkdf2_hmac_sha512_generate;
7222 global.IllegalStateError = IllegalStateError;
7223 global.IllegalArgumentError = IllegalArgumentError;
7224 global.SecurityError = SecurityError;
7225 exports.string_to_bytes = string_to_bytes;
7226 exports.hex_to_bytes = hex_to_bytes;
7227 exports.base64_to_bytes = base64_to_bytes;
7228 exports.bytes_to_string = bytes_to_string;
7229 exports.bytes_to_hex = bytes_to_hex;
7230 exports.bytes_to_base64 = bytes_to_base64;
7231 var SHA256_instance = new sha256_constructor({
7232 heapSize: 1048576
7233 });
7234 function sha256_bytes(data) {
7235 if (data === undefined) throw new SyntaxError("data required");
7236 return SHA256_instance.reset().process(data).finish().result;
7237 }
7238 function sha256_hex(data) {
7239 var result = sha256_bytes(data);
7240 return bytes_to_hex(result);
7241 }
7242 function sha256_base64(data) {
7243 var result = sha256_bytes(data);
7244 return bytes_to_base64(result);
7245 }
7246 exports.SHA256 = {
7247 bytes: sha256_bytes,
7248 hex: sha256_hex,
7249 base64: sha256_base64
7250 };
7251 var SHA512_instance = new sha512_constructor({
7252 heapSize: 1048576
7253 });
7254 function sha512_bytes(data) {
7255 if (data === undefined) throw new SyntaxError("data required");
7256 return SHA512_instance.reset().process(data).finish().result;
7257 }
7258 function sha512_hex(data) {
7259 var result = sha512_bytes(data);
7260 return bytes_to_hex(result);
7261 }
7262 function sha512_base64(data) {
7263 var result = sha512_bytes(data);
7264 return bytes_to_base64(result);
7265 }
7266 exports.SHA512 = {
7267 bytes: sha512_bytes,
7268 hex: sha512_hex,
7269 base64: sha512_base64
7270 };
7271 var hmac_sha256_instance = new hmac_sha256_constructor({
7272 hash: SHA256_instance
7273 });
7274 function hmac_sha256_bytes(data, password) {
7275 if (data === undefined) throw new SyntaxError("data required");
7276 if (password === undefined) throw new SyntaxError("password required");
7277 return hmac_sha256_instance.reset({
7278 password: password
7279 }).process(data).finish().result;
7280 }
7281 function hmac_sha256_hex(data, password) {
7282 var result = hmac_sha256_bytes(data, password);
7283 return bytes_to_hex(result);
7284 }
7285 function hmac_sha256_base64(data, password) {
7286 var result = hmac_sha256_bytes(data, password);
7287 return bytes_to_base64(result);
7288 }
7289 exports.HMAC = exports.HMAC_SHA256 = {
7290 bytes: hmac_sha256_bytes,
7291 hex: hmac_sha256_hex,
7292 base64: hmac_sha256_base64
7293 };
7294 var hmac_sha512_instance = new hmac_sha512_constructor({
7295 hash: SHA512_instance
7296 });
7297 function hmac_sha512_bytes(data, password) {
7298 if (data === undefined) throw new SyntaxError("data required");
7299 if (password === undefined) throw new SyntaxError("password required");
7300 return hmac_sha512_instance.reset({
7301 password: password
7302 }).process(data).finish().result;
7303 }
7304 function hmac_sha512_hex(data, password) {
7305 var result = hmac_sha512_bytes(data, password);
7306 return bytes_to_hex(result);
7307 }
7308 function hmac_sha512_base64(data, password) {
7309 var result = hmac_sha512_bytes(data, password);
7310 return bytes_to_base64(result);
7311 }
7312 exports.HMAC_SHA512 = {
7313 bytes: hmac_sha512_bytes,
7314 hex: hmac_sha512_hex,
7315 base64: hmac_sha512_base64
7316 };
7317 var pbkdf2_hmac_sha256_instance = new pbkdf2_hmac_sha256_constructor({
7318 hmac: hmac_sha256_instance
7319 });
7320 function pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen) {
7321 if (password === undefined) throw new SyntaxError("password required");
7322 if (salt === undefined) throw new SyntaxError("salt required");
7323 return pbkdf2_hmac_sha256_instance.reset({
7324 password: password
7325 }).generate(salt, iterations, dklen).result;
7326 }
7327 function pbkdf2_hmac_sha256_hex(password, salt, iterations, dklen) {
7328 var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen);
7329 return bytes_to_hex(result);
7330 }
7331 function pbkdf2_hmac_sha256_base64(password, salt, iterations, dklen) {
7332 var result = pbkdf2_hmac_sha256_bytes(password, salt, iterations, dklen);
7333 return bytes_to_base64(result);
7334 }
7335 exports.PBKDF2 = exports.PBKDF2_HMAC_SHA256 = {
7336 bytes: pbkdf2_hmac_sha256_bytes,
7337 hex: pbkdf2_hmac_sha256_hex,
7338 base64: pbkdf2_hmac_sha256_base64
7339 };
7340 var pbkdf2_hmac_sha512_instance = new pbkdf2_hmac_sha512_constructor({
7341 hmac: hmac_sha512_instance
7342 });
7343 function pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen) {
7344 if (password === undefined) throw new SyntaxError("password required");
7345 if (salt === undefined) throw new SyntaxError("salt required");
7346 return pbkdf2_hmac_sha512_instance.reset({
7347 password: password
7348 }).generate(salt, iterations, dklen).result;
7349 }
7350 function pbkdf2_hmac_sha512_hex(password, salt, iterations, dklen) {
7351 var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen);
7352 return bytes_to_hex(result);
7353 }
7354 function pbkdf2_hmac_sha512_base64(password, salt, iterations, dklen) {
7355 var result = pbkdf2_hmac_sha512_bytes(password, salt, iterations, dklen);
7356 return bytes_to_base64(result);
7357 }
7358 exports.PBKDF2_HMAC_SHA512 = {
7359 bytes: pbkdf2_hmac_sha512_bytes,
7360 hex: pbkdf2_hmac_sha512_hex,
7361 base64: pbkdf2_hmac_sha512_base64
7362 };
7363 var cbc_aes_instance = new cbc_aes_constructor({
7364 heapSize: 1048576
7365 });
7366 function cbc_aes_encrypt_bytes(data, key, padding, iv) {
7367 if (data === undefined) throw new SyntaxError("data required");
7368 if (key === undefined) throw new SyntaxError("key required");
7369 return cbc_aes_instance.reset({
7370 key: key,
7371 padding: padding,
7372 iv: iv
7373 }).encrypt(data).result;
7374 }
7375 function cbc_aes_decrypt_bytes(data, key, padding, iv) {
7376 if (data === undefined) throw new SyntaxError("data required");
7377 if (key === undefined) throw new SyntaxError("key required");
7378 return cbc_aes_instance.reset({
7379 key: key,
7380 padding: padding,
7381 iv: iv
7382 }).decrypt(data).result;
7383 }
7384 exports.AES = exports.AES_CBC = {
7385 encrypt: cbc_aes_encrypt_bytes,
7386 decrypt: cbc_aes_decrypt_bytes
7387 };
7388 var ccm_aes_instance = new ccm_aes_constructor({
7389 heap: cbc_aes_instance.heap,
7390 asm: cbc_aes_instance.asm
7391 });
7392 function ccm_aes_encrypt_bytes(data, key, nonce, adata, tagSize) {
7393 if (data === undefined) throw new SyntaxError("data required");
7394 if (key === undefined) throw new SyntaxError("key required");
7395 if (nonce === undefined) throw new SyntaxError("nonce required");
7396 var dataLength = data.byteLength || data.length || 0;
7397 return ccm_aes_instance.reset({
7398 key: key,
7399 nonce: nonce,
7400 adata: adata,
7401 tagSize: tagSize,
7402 dataLength: dataLength
7403 }).encrypt(data).result;
7404 }
7405 function ccm_aes_decrypt_bytes(data, key, nonce, adata, tagSize) {
7406 if (data === undefined) throw new SyntaxError("data required");
7407 if (key === undefined) throw new SyntaxError("key required");
7408 if (nonce === undefined) throw new SyntaxError("nonce required");
7409 var dataLength = data.byteLength || data.length || 0;
7410 tagSize = tagSize || _aes_block_size;
7411 return ccm_aes_instance.reset({
7412 key: key,
7413 nonce: nonce,
7414 adata: adata,
7415 tagSize: tagSize,
7416 dataLength: dataLength - tagSize
7417 }).decrypt(data).result;
7418 }
7419 exports.AES_CCM = {
7420 encrypt: ccm_aes_encrypt_bytes,
7421 decrypt: ccm_aes_decrypt_bytes
7422 };
7423 var cfb_aes_instance = new cfb_aes_constructor({
7424 heap: cbc_aes_instance.heap,
7425 asm: cbc_aes_instance.asm
7426 });
7427 function cfb_aes_encrypt_bytes(data, key, padding, iv) {
7428 if (data === undefined) throw new SyntaxError("data required");
7429 if (key === undefined) throw new SyntaxError("key required");
7430 return cfb_aes_instance.reset({
7431 key: key,
7432 padding: padding,
7433 iv: iv
7434 }).encrypt(data).result;
7435 }
7436 function cfb_aes_decrypt_bytes(data, key, padding, iv) {
7437 if (data === undefined) throw new SyntaxError("data required");
7438 if (key === undefined) throw new SyntaxError("key required");
7439 return cfb_aes_instance.reset({
7440 key: key,
7441 padding: padding,
7442 iv: iv
7443 }).decrypt(data).result;
7444 }
7445 exports.AES_CFB = {
7446 encrypt: cfb_aes_encrypt_bytes,
7447 decrypt: cfb_aes_decrypt_bytes
7448 };
7449 var cfb_aes_decrypt_instance = new cfb_aes_decrypt_constructor({
7450 heap: cbc_aes_instance.heap,
7451 asm: cbc_aes_instance.asm
7452 });
7453 function cfb_aes_decrypt_init(key, padding, iv) {
7454 if (key === undefined) throw new SyntaxError("key required");
7455 return cfb_aes_decrypt_instance.reset({
7456 key: key,
7457 padding: padding,
7458 iv: iv
7459 });
7460 }
7461 exports.AES_CFB = exports.AES_CFB || {};
7462 exports.AES_CFB.decryptor = {
7463 init: cfb_aes_decrypt_init
7464 };
7465 })({}, function() {
7466 return this;
7467 }());