| /******************************************************************************* |
| * Copyright (c) 2007 University of Illinois at Urbana-Champaign and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * UIUC - Initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.photran.internal.core.parser; |
| |
| import org.eclipse.photran.internal.core.lexer.*; import org.eclipse.photran.internal.core.analysis.binding.ScopingNode; import org.eclipse.photran.internal.core.SyntaxException; import java.io.IOException; |
| |
| import java.util.AbstractList; |
| import java.util.Collection; |
| import java.util.Collections; |
| import java.util.HashMap; |
| import java.util.Iterator; |
| import java.util.LinkedList; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Set; |
| import java.io.ByteArrayOutputStream; |
| import java.io.PrintStream; |
| |
| |
| import java.util.zip.Inflater; |
| |
| import org.eclipse.photran.internal.core.parser.Parser.Nonterminal; |
| import org.eclipse.photran.internal.core.parser.Parser.Production; |
| |
| @SuppressWarnings("all") |
| abstract class ParsingTables |
| { |
| // Constants used for accessing both the ACTION table and the error recovery table |
| public static final int ACTION_MASK = 0xC000; // 1100 0000 0000 0000 |
| public static final int VALUE_MASK = 0x3FFF; // 0011 1111 1111 1111 |
| |
| // Constants used for accessing the ACTION table |
| public static final int SHIFT_ACTION = 0x8000; // 1000 0000 0000 0000 |
| public static final int REDUCE_ACTION = 0x4000; // 0100 0000 0000 0000 |
| public static final int ACCEPT_ACTION = 0xC000; // 1100 0000 0000 0000 |
| |
| // Constants used for accessing the error recovery table |
| public static final int DISCARD_STATE_ACTION = 0x0000; // 0000 0000 0000 0000 |
| public static final int DISCARD_TERMINAL_ACTION = 0x8000; // 1000 0000 0000 0000 |
| public static final int RECOVER_ACTION = 0x4000; // 0100 0000 0000 0000 |
| |
| public abstract int getActionCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead); |
| public abstract int getActionCode(int state, int lookaheadTokenIndex); |
| public abstract int getGoTo(int state, Nonterminal nonterminal); |
| public abstract int getRecoveryCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead); |
| |
| protected static final int base64Decode(byte[] decodeIntoBuffer, String encodedString) |
| { |
| int[] encodedBuffer = new int[4]; |
| int bytesDecoded = 0; |
| int inputLength = encodedString.length(); |
| |
| if (inputLength % 4 != 0) throw new IllegalArgumentException("Invalid Base64-encoded data (wrong length)"); |
| |
| for (int inputOffset = 0; inputOffset < inputLength; inputOffset += 4) |
| { |
| int padding = 0; |
| |
| for (int i = 0; i < 4; i++) |
| { |
| char value = encodedString.charAt(inputOffset + i); |
| if (value >= 'A' && value <= 'Z') |
| encodedBuffer[i] = value - 'A'; |
| else if (value >= 'a' && value <= 'z') |
| encodedBuffer[i] = value - 'a' + 26; |
| else if (value >= '0' && value <= '9') |
| encodedBuffer[i] = value - '0' + 52; |
| else if (value == '+') |
| encodedBuffer[i] = 62; |
| else if (value == '/') |
| encodedBuffer[i] = 63; |
| else if (value == '=') |
| { encodedBuffer[i] = 0; padding++; } |
| else throw new IllegalArgumentException("Invalid character " + value + " in Base64-encoded data"); |
| } |
| |
| assert 0 <= padding && padding <= 2; |
| |
| decodeIntoBuffer[bytesDecoded+0] = (byte)( ((encodedBuffer[0] & 0x3F) << 2) |
| | ((encodedBuffer[1] & 0x30) >>> 4)); |
| if (padding < 2) |
| decodeIntoBuffer[bytesDecoded+1] = (byte)( ((encodedBuffer[1] & 0x0F) << 4) |
| | ((encodedBuffer[2] & 0x3C) >>> 2)); |
| |
| if (padding < 1) |
| decodeIntoBuffer[bytesDecoded+2] = (byte)( ((encodedBuffer[2] & 0x03) << 6) |
| | (encodedBuffer[3] & 0x3F)); |
| |
| bytesDecoded += (3 - padding); |
| } |
| |
| return bytesDecoded; |
| } |
| } |
| |
| @SuppressWarnings("all") |
| final class ExecutableProgramParsingTables extends ParsingTables |
| { |
| private static ExecutableProgramParsingTables instance = null; |
| |
| public static ExecutableProgramParsingTables getInstance() |
| { |
| if (instance == null) |
| instance = new ExecutableProgramParsingTables(); |
| return instance; |
| } |
| |
| @Override |
| public int getActionCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| return ActionTable.getActionCode(state, lookahead); |
| } |
| |
| @Override |
| public int getActionCode(int state, int lookaheadTokenIndex) |
| { |
| return ActionTable.get(state, lookaheadTokenIndex); |
| } |
| |
| @Override |
| public int getGoTo(int state, Nonterminal nonterminal) |
| { |
| return GoToTable.getGoTo(state, nonterminal); |
| } |
| |
| @Override |
| public int getRecoveryCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| return RecoveryTable.getRecoveryCode(state, lookahead); |
| } |
| |
| /** |
| * The ACTION table. |
| * <p> |
| * The ACTION table maps a state and an input symbol to one of four |
| * actions: shift, reduce, accept, or error. |
| */ |
| protected static final class ActionTable |
| { |
| /** |
| * Returns the action the parser should take if it is in the given state |
| * and has the given symbol as its lookahead. |
| * <p> |
| * The result value should be interpreted as follows: |
| * <ul> |
| * <li> If <code>result & ACTION_MASK == SHIFT_ACTION</code>, |
| * shift the terminal and go to state number |
| * <code>result & VALUE_MASK</code>. |
| * <li> If <code>result & ACTION_MASK == REDUCE_ACTION</code>, |
| * reduce by production number <code>result & VALUE_MASK</code>. |
| * <li> If <code>result & ACTION_MASK == ACCEPT_ACTION</code>, |
| * parsing has completed successfully. |
| * <li> Otherwise, a syntax error has been found. |
| * </ul> |
| * |
| * @return a code for the action to take (see above) |
| */ |
| protected static int getActionCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert lookahead != null; |
| |
| Integer index = Parser.terminalIndices.get(lookahead.getTerminal()); |
| if (index == null) |
| return 0; |
| else |
| return get(state, index); |
| } |
| |
| protected static final int[] rowmap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 2, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 62, 63, 64, 65, 3, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 18, 126, 0, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 8, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 15, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 109, 189, 190, 0, 191, 192, 102, 36, 1, 29, 0, 103, 193, 194, 195, 196, 197, 198, 199, 200, 201, 140, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 212, 220, 221, 222, 223, 224, 225, 226, 58, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 1, 2, 58, 3, 1, 8, 123, 4, 124, 15, 127, 5, 218, 237, 125, 6, 7, 128, 126, 0, 173, 238, 209, 212, 8, 214, 239, 215, 88, 29, 9, 216, 217, 240, 219, 102, 29, 114, 10, 220, 11, 241, 221, 12, 222, 13, 0, 14, 227, 2, 129, 228, 150, 242, 230, 243, 15, 16, 231, 29, 244, 245, 246, 17, 247, 30, 248, 249, 18, 115, 250, 251, 19, 252, 20, 253, 254, 255, 256, 257, 258, 130, 134, 0, 21, 137, 259, 260, 261, 262, 263, 22, 23, 264, 265, 24, 266, 267, 25, 3, 268, 269, 270, 26, 27, 152, 154, 28, 244, 271, 272, 237, 240, 273, 274, 4, 275, 276, 39, 29, 39, 245, 277, 278, 279, 0, 88, 280, 39, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 56, 291, 30, 292, 293, 156, 6, 294, 295, 296, 242, 297, 298, 299, 238, 300, 301, 103, 302, 7, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 29, 39, 313, 31, 314, 315, 32, 316, 5, 317, 318, 319, 33, 320, 0, 1, 2, 321, 322, 323, 29, 34, 324, 325, 58, 326, 239, 327, 144, 328, 8, 329, 246, 241, 247, 330, 243, 9, 173, 10, 331, 35, 332, 236, 8, 248, 249, 252, 253, 254, 333, 255, 256, 334, 88, 335, 257, 336, 337, 338, 258, 180, 250, 259, 339, 340, 341, 263, 265, 342, 343, 102, 344, 345, 346, 347, 348, 349, 11, 36, 37, 350, 12, 13, 14, 15, 0, 351, 352, 16, 17, 18, 19, 20, 353, 0, 354, 355, 21, 356, 22, 23, 24, 38, 357, 358, 359, 360, 361, 362, 363, 26, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 39, 28, 40, 31, 267, 41, 42, 32, 392, 33, 34, 393, 394, 395, 396, 43, 44, 397, 45, 46, 35, 36, 398, 37, 40, 41, 42, 399, 400, 401, 47, 48, 49, 402, 50, 51, 52, 53, 54, 1, 403, 404, 405, 406, 407, 55, 56, 2, 57, 59, 60, 408, 61, 3, 62, 409, 63, 64, 65, 0, 410, 66, 411, 67, 68, 47, 4, 412, 69, 70, 413, 6, 71, 414, 3, 415, 4, 48, 72, 5, 416, 73, 417, 418, 6, 419, 74, 420, 421, 75, 76, 7, 422, 77, 78, 423, 49, 50, 424, 79, 8, 80, 81, 425, 82, 426, 427, 1, 428, 429, 430, 431, 432, 433, 123, 83, 84, 434, 85, 435, 86, 9, 87, 53, 88, 10, 89, 0, 90, 91, 92, 436, 11, 8, 12, 93, 437, 94, 95, 1, 96, 97, 98, 13, 99, 14, 0, 100, 438, 101, 104, 105, 106, 107, 439, 108, 109, 440, 110, 111, 112, 113, 441, 114, 442, 443, 444, 116, 15, 445, 446, 447, 448, 449, 450, 451, 117, 118, 452, 119, 453, 120, 18, 121, 181, 454, 455, 8, 456, 122, 123, 19, 124, 126, 457, 458, 459, 460, 127, 129, 130, 25, 131, 20, 132, 15, 133, 134, 461, 21, 462, 463, 464, 128, 465, 466, 54, 467, 468, 135, 136, 55, 0, 137, 138, 139, 140, 141, 469, 142, 22, 470, 471, 472, 473, 143, 56, 145, 117, 146, 147, 148, 474, 475, 476, 149, 150, 151, 152, 23, 8, 153, 477, 478, 479, 480, 481, 482, 154, 483, 102, 484, 485, 486, 155, 57, 487, 488, 156, 489, 490, 491, 492, 493, 157, 494, 495, 251, 496, 497, 173, 169, 158, 498, 499, 500, 501, 502, 159, 503, 504, 160, 505, 506, 507, 508, 161, 509, 2, 510, 511, 56, 162, 512, 513, 514, 515, 516, 517, 518, 163, 519, 520, 521, 164, 165, 522, 523, 524, 102, 166, 525, 526, 170, 527, 528, 167, 529, 530, 531, 268, 532, 270, 18, 168, 171, 172, 174, 24, 533, 175, 534, 15, 260, 26, 535, 176, 536, 261, 537, 262, 538, 539, 177, 540, 271, 541, 542, 543, 15, 276, 544, 7, 8, 58, 9, 10, 178, 545, 546, 11, 547, 548, 549, 16, 143, 550, 18, 277, 551, 59, 0, 3, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 27, 564, 148, 565, 566, 567, 29, 168, 568, 569, 570, 174, 571, 31, 572, 32, 17, 573, 574, 575, 179, 180, 576, 577, 181, 182, 578, 183, 579, 580, 581, 582, 583, 584, 585, 586, 39, 587, 588, 589, 590, 591, 592, 593, 43, 44, 45, 46, 594, 595, 596, 597, 598, 47, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 1, 630, 280, 3, 631, 285, 48, 49, 63, 66, 60, 632, 50, 77, 633, 634, 4, 635, 184, 636, 637, 185, 638, 639, 640, 641, 5, 642, 6, 643, 12, 14, 644, 645, 646, 647, 27, 648, 649, 650, 186, 651, 652, 187, 188, 653, 78, 654, 655, 656, 657, 658, 659, 189, 190, 660, 191, 661, 182, 662, 192, 15, 663, 664, 665, 666, 667, 668, 80, 81, 669, 670, 671, 82, 672, 87, 88, 94, 95, 673, 193, 100, 674, 675, 2, 676, 101, 102, 103, 677, 678, 194, 679, 680, 112, 114, 115, 117, 118, 61, 681, 682, 683, 684, 28, 20, 685, 686, 687, 119, 7, 21, 22, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 125, 4, 703, 704, 705, 134, 135, 133, 706, 136, 62, 195, 143, 144, 145, 147, 707, 148, 153, 154, 708, 155, 156, 157, 709, 6, 158, 159, 160, 196, 197, 64, 198, 199, 710, 65, 184, 67, 68, 69, 70, 711, 712, 8, 9, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 29, 30, 32, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 179, 738, 739, 740, 741, 742, 743, 744, 745, 746, 161, 747, 162, 748, 749, 750, 163, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 24, 25, 26, 33, 773, 774, 775, 776, 777, 164, 778, 165, 779, 166, 205, 167, 780, 200, 781, 201, 782, 783, 169, 784, 34, 785, 786, 787, 788, 789, 790, 210, 791, 170, 792, 793, 794, 795, 796, 797, 798, 799, 800, 173, 801, 802, 803, 804, 175, 805, 806, 807, 808, 809, 10, 810, 811, 812, 813, 814, 815, 816, 817, 71, 7, 176, 177, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 178, 36, 184, 185, 828, 186, 187, 202, 1, 188, 73, 189, 190, 191, 193, 195, 74, 196, 197, 198, 199, 203, 204, 205, 206, 829, 830, 207, 831, 832, 0, 833, 36, 33, 834, 835, 836, 208, 210, 211, 75, 212, 76, 290, 837, 43, 838, 213, 214, 215, 217, 218, 219, 220, 839, 221, 203, 204, 840, 205, 841, 842, 843, 844, 845, 35, 222, 77, 846, 847, 223, 224, 8, 848, 225, 849, 225, 226, 78, 850, 275, 851, 227, 228, 229, 230, 852, 853, 291, 854, 206, 855, 231, 232, 233, 856, 857, 208, 209, 858, 210, 859, 860, 861, 211, 862, 863, 864, 212, 865, 866, 45, 213, 215, 867, 868, 227, 217, 869, 870, 871, 872, 218, 873, 220, 874, 875, 876, 44, 221, 877, 222, 878, 879, 880, 881, 79, 234, 235, 882, 83, 36, 46, 84, 85, 47, 50, 86, 89, 51, 52, 883, 236, 237, 238, 884, 885, 223, 886, 239, 887, 224, 888, 225, 889, 890, 58, 226, 891, 80, 241, 243, 36, 37, 247, 250, 2, 251, 38, 254, 892, 244, 893, 894, 895, 1, 896, 294, 897, 245, 53, 898, 88, 39, 248, 249, 40, 301, 102, 229, 899, 41, 900, 230, 901, 902, 253, 258, 259, 232, 903, 904, 233, 905, 906, 234, 907, 908, 235, 909, 81, 256, 257, 264, 54, 265, 267, 0, 236, 268, 269, 270, 271, 272, 238, 910, 911, 912, 273, 274, 278, 276, 279, 280, 281, 282, 283, 284, 285, 286, 287, 1, 913, 288, 289, 290, 291, 292, 293, 914, 294, 915, 916, 295, 296, 917, 918, 297, 298, 919, 299, 300, 301, 920, 302, 303, 921, 922, 42, 55, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 304, 305, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 306, 56, 57, 60, 61, 62, 64, 65, 67, 68, 69, 70, 71, 74, 75, 948, 240, 0, 949, 307, 308, 950, 951, 309, 952, 76, 953, 954, 955, 241, 246, 310, 311, 242, 312, 297, 313, 314, 956, 957, 315, 316, 317, 318, 247, 958, 319, 321, 322, 324, 326, 109, 327, 329, 43, 330, 959, 320, 323, 325, 333, 334, 960, 328, 961, 962, 963, 250, 336, 337, 338, 339, 964, 965, 966, 340, 967, 341, 44, 332, 79, 335, 342, 343, 344, 345, 90, 91, 347, 968, 346, 969, 251, 970, 348, 349, 350, 971, 353, 361, 362, 2, 972, 973, 365, 367, 368, 374, 82, 381, 974, 392, 383, 385, 387, 388, 393, 395, 90, 396, 397, 310, 398, 400, 313, 401, 975, 976, 402, 403, 977, 978, 404, 979, 980, 981, 982, 983, 405, 407, 11, 984, 985, 408, 410, 92, 93, 96, 412, 91, 986, 987, 988, 252, 92, 254, 989, 990, 991, 406, 992, 3, 993, 994, 995, 996, 997, 96, 998, 97, 999, 1000, 1001, 409, 1002, 4, 1003, 1004, 413, 1005, 1006, 97, 6, 1007, 1008, 1009, 98, 1010, 1011, 1012, 1013, 260, 1014, 98, 99, 1015, 261, 1016, 262, 1017, 414, 416, 419, 420, 421, 422, 423, 45, 0, 425, 1, 426, 2, 427, 428, 429, 430, 46, 431, 100, 2, 47, 432, 433, 434, 435, 436, 99, 437, 438, 439, 440, 441, 442, 444, 445, 446, 447, 448, 449, 452, 453, 454, 455, 456, 458, 459, 3, 263, 460, 461, 462, 463, 464, 465, 466, 467, 469, 470, 471, 472, 473, 474, 264, 475, 265, 476, 477, 479, 1018, 112, 483, 485, 486, 4, 267, 478, 480, 487, 481, 5, 489, 1019, 491, 482, 269, 270, 484, 488, 490, 492, 493, 494, 495, 496, 1020, 271, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 1021, 1022, 511, 512, 1023, 1024, 1025, 272, 513, 514, 3, 114, 115, 515, 1026, 516, 1027, 1028, 1029, 1, 4, 517, 518, 116, 101, 519, 520, 1030, 521, 522, 114, 48, 1031, 1032, 523, 524, 525, 1033, 277, 1034, 1035, 279, 526, 1036, 281, 7, 1037, 1038, 282, 1039, 1040, 1041, 117, 527, 529, 528, 1042, 530, 533, 1043, 283, 1044, 532, 303, 1045, 534, 1046, 284, 285, 535, 537, 538, 1047, 1048, 1049, 1050, 539, 1051, 1052, 1053, 286, 1054, 1055, 118, 1056, 0, 1057, 1058, 1059, 287, 1060, 1061, 1062, 1063, 1064, 1065, 120, 102, 103, 104, 121, 123, 124, 1066, 127, 129, 130, 131, 1067, 1068, 105, 1069, 1070, 1071, 1072, 123, 49, 1073, 50, 5, 540, 541, 51, 132, 542, 543, 106, 545, 546, 124, 544, 52, 1074, 1075, 312, 1076, 549, 547, 548, 550, 551, 552, 553, 315, 1077, 137, 1078, 1079, 1080, 320, 1081, 288, 1082, 1083, 554, 1084, 555, 556, 1085, 557, 1086, 1087, 289, 107, 1088, 108, 558, 559, 560, 561, 562, 563, 566, 1089, 1090, 564, 565, 567, 1091, 568, 1092, 571, 1093, 1094, 569, 1095, 1096, 1097, 1098, 1099, 1100, 138, 1101, 1102, 570, 1103, 1104, 1105, 572, 573, 574, 575, 576, 1106, 1107, 1108, 577, 578, 6, 7, 579, 582, 583, 585, 1109, 292, 1110, 1111, 1112, 293, 588, 1113, 297, 1114, 300, 1115, 590, 580, 1116, 1117, 109, 587, 589, 591, 592, 593, 595, 2, 1118, 1119, 1120, 125, 53, 596, 54, 597, 1121, 302, 598, 1122, 1123, 1124, 1125, 304, 599, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 605, 606, 1134, 1135, 614, 615, 1136, 617, 305, 1137, 1138, 618, 622, 1139, 628, 1140, 1141, 139, 1142, 1, 1143, 1144, 600, 601, 1145, 630, 624, 110, 9, 602, 631, 140, 306, 12, 1146, 603, 1147, 1148, 1149, 1150, 307, 1151, 308, 1152, 141, 142, 149, 632, 55, 1153, 1154, 1155, 1156, 1157, 635, 1158, 634, 1159, 636, 311, 638, 310, 639, 1160, 640, 111, 1161, 1162, 10, 641, 642, 644, 645, 646, 1163, 1164, 647, 1165, 648, 649, 316, 650, 112, 1166, 1167, 11, 1168, 651, 652, 314, 1169, 317, 1170, 653, 1171, 1172, 146, 1173, 150, 1174, 151, 1175, 318, 1176, 331, 342, 1177, 1178, 56, 604, 1179, 1180, 1181, 1182, 0, 1183, 1184, 1185, 1186, 1187, 654, 1188, 1189, 115, 343, 1190, 1191, 1192, 607, 608, 609, 57, 655, 1193, 656, 657, 1194, 658, 1195, 1196, 659, 1197, 1198, 1199, 1200, 152, 660, 661, 1201, 1202, 662, 663, 1203, 0, 1204, 1205, 1206, 8, 167, 168, 610, 611, 1207, 1208, 664, 171, 612, 613, 1209, 616, 1210, 172, 174, 1211, 344, 323, 1212, 665, 1213, 667, 1214, 666, 1215, 1216, 674, 669, 672, 1217, 12, 345, 1218, 620, 179, 1219, 675, 1220, 676, 348, 677, 349, 350, 1221, 351, 678, 1222, 1223, 325, 679, 681, 1224, 1, 1225, 1226, 352, 1227, 1228, 116, 1229, 117, 1230, 365, 1231, 367, 1232, 180, 621, 1233, 9, 1234, 625, 626, 1235, 683, 1236, 181, 328, 685, 637, 686, 687, 688, 689, 126, 58, 3, 4, 629, 680, 1237, 127, 59, 368, 1238, 374, 690, 1239, 381, 691, 118, 1240, 119, 1241, 1242, 1243, 182, 1244, 694, 13, 1245, 692, 693, 695, 1246, 696, 14, 697, 1247, 698, 1248, 15, 17, 18, 1249, 699, 1250, 1251, 1252, 1253, 186, 700, 1254, 1255, 701, 702, 1256, 703, 393, 704, 711, 331, 705, 707, 1257, 1258, 1259, 712, 709, 713, 714, 2, 128, 60, 120, 715, 716, 717, 1260, 1261, 718, 1262, 383, 1263, 332, 121, 123, 0, 124, 125, 719, 720, 187, 61, 62, 721, 722, 63, 723, 188, 64, 724, 1264, 385, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 1265, 735, 736, 1266, 737, 1267, 1268, 738, 127, 1269, 189, 187, 1270, 1271, 1272, 392, 739, 387, 1273, 740, 741, 1274, 131, 1275, 1276, 742, 1277, 19, 394, 132, 1278, 1279, 743, 744, 745, 8, 1280, 1281, 1282, 20, 397, 135, 1283, 746, 747, 1284, 388, 190, 191, 192, 2, 395, 396, 1285, 748, 1286, 1287, 749, 750, 65, 751, 193, 752, 753, 136, 754, 755, 756, 1288, 757, 758, 759, 398, 1289, 1290, 137, 1291, 1292, 1293, 1294, 760, 761, 1295, 762, 399, 1296, 1297, 1298, 197, 763, 764, 765, 1299, 766, 195, 767, 1300, 1301, 768, 1302, 769, 1303, 400, 770, 771, 772, 335, 773, 9, 196, 774, 10, 11, 1304, 775, 776, 1305, 1306, 1307, 401, 1308, 402, 1309, 404, 1310, 1311, 413, 1312, 1313, 138, 1314, 141, 1315, 1316, 777, 778, 779, 780, 781, 782, 783, 1317, 1318, 784, 1319, 785, 1320, 129, 66, 786, 1321, 1322, 1323, 345, 198, 787, 1324, 346, 130, 420, 67, 350, 1325, 1326, 1327, 1328, 199, 202, 788, 789, 1329, 790, 791, 1330, 800, 792, 1331, 1332, 1333, 793, 1334, 1335, 1336, 1337, 1338, 421, 10, 795, 11, 12, 1339, 1340, 794, 796, 797, 21, 22, 203, 798, 1341, 204, 1342, 68, 799, 1343, 801, 1344, 1345, 1346, 802, 1347, 803, 1348, 805, 1349, 804, 1350, 806, 807, 808, 810, 422, 69, 809, 1351, 142, 1352, 811, 13, 1353, 23, 812, 143, 1354, 1355, 1356, 1357, 1358, 424, 813, 14, 1359, 144, 425, 1360, 1361, 1362, 1363, 1364, 427, 814, 1365, 434, 1366, 435, 436, 1367, 1368, 437, 1369, 1370, 1371, 1372, 6, 13, 1373, 1374, 1375, 1376, 205, 1377, 815, 816, 817, 818, 1378, 819, 820, 338, 12, 206, 207, 1379, 821, 822, 825, 13, 827, 828, 354, 1380, 438, 439, 15, 1381, 17, 1382, 208, 1383, 1384, 440, 1385, 1386, 1387, 145, 147, 355, 1388, 1389, 356, 829, 14, 830, 210, 831, 1390, 70, 7, 8, 832, 833, 834, 835, 441, 836, 351, 1391, 1392, 442, 211, 212, 443, 444, 837, 838, 839, 1393, 1394, 1395, 840, 841, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 15, 844, 1403, 1404, 842, 843, 845, 1405, 1406, 341, 216, 222, 241, 1407, 1408, 1409, 188, 1410, 1411, 1412, 24, 449, 1413, 1414, 1415, 1416, 452, 453, 846, 454, 1417, 1418, 847, 1419, 1420, 1421, 1422, 455, 456, 848, 457, 1423, 1424, 243, 190, 1425, 1426, 71, 849, 850, 1427, 0, 244, 851, 852, 458, 245, 1428, 853, 854, 855, 1429, 856, 1430, 1431, 857, 858, 859, 860, 1432, 862, 861, 392, 1433, 1434, 863, 1435, 865, 1436, 460, 1437, 866, 864, 867, 868, 869, 870, 872, 1438, 1439, 1440, 1441, 352, 357, 358, 1442, 72, 459, 461, 359, 462, 18, 1443, 148, 150, 1444, 1445, 1446, 871, 1447, 1448, 1449, 1450, 1451, 873, 16, 874, 875, 876, 877, 1452, 878, 463, 1453, 1454, 879, 880, 881, 882, 464, 1455, 1456, 465, 466, 883, 467, 1457, 1458, 152, 1459, 884, 469, 885, 470, 1460, 1461, 153, 1462, 471, 1463, 1464, 1465, 151, 886, 1466, 472, 887, 1467, 888, 1468, 889, 890, 473, 891, 896, 892, 1469, 393, 893, 894, 895, 897, 474, 1470, 360, 363, 1471, 1472, 154, 155, 156, 1473, 1474, 898, 899, 900, 901, 902, 903, 1475, 1476, 1477, 1478, 1479, 904, 1480, 905, 1481, 1482, 475, 1483, 1484, 158, 1485, 1486, 25, 1487, 159, 1488, 1489, 26, 194, 906, 1490, 2, 1, 1491, 907, 908, 909, 910, 398, 916, 403, 364, 366, 369, 490, 493, 1492, 1493, 1494, 246, 247, 1495, 917, 918, 1496, 919, 1497, 921, 1498, 1499, 946, 948, 248, 950, 1500, 1501, 27, 494, 1502, 1503, 28, 495, 1504, 1505, 249, 161, 952, 954, 928, 933, 370, 1506, 371, 250, 251, 253, 496, 498, 254, 255, 258, 1507, 1508, 949, 1509, 951, 955, 502, 1510, 1511, 503, 504, 1512, 1513, 505, 956, 14, 957, 499, 506, 509, 515, 1514, 1515, 958, 960, 961, 259, 262, 1516, 516, 1517, 1518, 519, 1519, 263, 372, 1520, 1521, 1522, 962, 963, 1523, 1524, 964 }; |
| protected static final int[] columnmap = { 0, 1, 2, 3, 4, 5, 2, 6, 0, 7, 8, 9, 10, 11, 2, 12, 13, 14, 15, 16, 17, 18, 19, 20, 6, 1, 21, 2, 22, 8, 23, 24, 25, 2, 2, 7, 26, 0, 27, 28, 29, 30, 29, 31, 8, 32, 33, 0, 34, 35, 36, 37, 38, 39, 9, 2, 6, 9, 40, 14, 35, 41, 42, 31, 43, 38, 18, 44, 45, 18, 46, 47, 47, 20, 1, 48, 49, 17, 50, 33, 51, 52, 36, 48, 40, 53, 54, 55, 56, 57, 58, 59, 0, 60, 61, 62, 2, 63, 3, 64, 65, 66, 67, 68, 69, 70, 57, 71, 72, 73, 74, 75, 76, 77, 43, 78, 79, 54, 47, 80, 66, 81, 82, 0, 83, 67, 84, 49, 85, 86, 87, 88, 67, 3, 89, 0, 90, 91, 2, 92, 1, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 89, 68, 69, 104, 105, 106, 4, 71, 107, 108, 72, 109, 73, 4, 104, 5, 66, 110, 111, 24, 112, 113, 3, 114, 14, 3, 74, 115, 116, 117, 118, 119, 3, 120, 121, 122, 123, 124, 125, 126, 17, 127, 7, 88, 8, 128, 129, 94, 98, 130, 131, 132, 105, 133, 108, 1, 134, 135, 136, 137, 138, 139, 0, 140, 141, 142, 143, 144, 145, 146, 147, 110, 148, 2, 112, 70, 149, 150, 151, 152, 1, 153, 3, 154, 155, 0, 156, 157, 158, 159, 160, 6, 4, 161, 162, 0, 163 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return 0; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 3326; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdXU2IHMcVruotKaVhjVvKyNLBkB55BcOiKD7okGMvDME2CR" + |
| "mBD74YViCDLjnqPjImKNLBslc4l4CSHHzIIQfb7HkEiw8hhxhd" + |
| "DevomGMOOae6e2anf6rqe1Wve1dJG0lGT/Xq9Xuv3m+93u9f+3" + |
| "r38ftfqL8kyy8+2Pru5g9XjrefTC7dn+2P//3pbbX4/lcHu49n" + |
| "3+w8SpaHBr5bwu/8+P7s7vg/NPjnu4+Pnt54r4BPvtt9efl4XO" + |
| "I38NfnBPhrB4A+hN9PnxJSaCHEwvwSW+bX+fG2+T0TIhUP9oQY" + |
| "/P2Y+AuyDanOB+Ffv3rtUc31PPqX259fS5ZP1UiINz7Ino9+kI" + |
| "/Giyy5OCuoTs+ef1j/DHxm6C/0Txr8l4/VWv9O1s+e7oyK9XU4" + |
| "WX9552v7ghj9ThmRJcs/CplmYvyhSicX74r98Z9fz438fv31Xx" + |
| "8fHf70X5eeH95+68XPXl45vvrkn7+/f2TWP7s9/Pni8r/Un/zp" + |
| "9nuF/ojno5fykQrTHz99b16Qhn87YpEsF2LL8O+ND7fTSVry79" + |
| "M9iv4PzZ8e+GvX369o9mNg+ijna0j/wFxf6Y9q6s+duv4A+6tF" + |
| "Ure5SfH/K4uciuH9T8PYZy1tyE9B/mz/xpXvGcc3ZwzvMDQPix" + |
| "+Ghw/Mn8H9H4CD/Zv2IVnHZ2lD/z3xx9839vXQZv899vewH/82" + |
| "LH9I+uOLz4aPzxNHfF2etLGBP1xDpPlPXTbwRZl/yJwff6zkv+" + |
| "Py/8PnT0OfP1L8WOUfosw/WvHjwSo+Xh7OT+Ljg3L9M2r8MKvo" + |
| "n1f06379y7Dxo8plYpWfSmeF/Njwrn7oun6g9Zb8tP187MtfER" + |
| "zlpwh+VMGr/CQr85MNfM6Hc/NnLv6Q9fNqfRpCH8l+cPLrmn+b" + |
| "V+tFPb+A+TPAj9ZHwEVj/4Hz4/V6t308nf1d6+vweQUXdbg1f6" + |
| "/nX0B+Q68/E/hkUPy6UR9xxY93a/GFp/5Q+qf3D5v8vXOp6f88" + |
| "cBNFJbB+aT//X1HsB8zvof0Jxq/r+FF9gAtvns8X1fn8U8Xfn8" + |
| "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" + |
| "q3kV1+i57sa0B+LoepX9r0p8f6/cD5GSE/Zvk3fvwamB/ih9Cf" + |
| "68//G/7tce5X9Nj/kEw4I//xmSZm/IT7R6B+FFzfCoOz4zvAb2" + |
| "Z/bujziebr2Pzj1/dY8o2Lz+nrI+bTGioD15P5v76/3XajE6b8" + |
| "Dm6C78PdZM23nbH84PwU9h/o+5WE7zMF8CfnnD/b+2l//EXpP9" + |
| "Uzw3b9HRpIP/1w/kxbvv+zvn9CWI++f8adX0P0nbn97LV+8iLO" + |
| "/4frT9qf/2G8v8T2ke8/of1FP1/Im//D+SJAP2E+6eqq/tF+2W" + |
| "uVcmaynkc76hs++KD9BXS/jSA/Sv+IM7/mr+8wv99F+H4Na75N" + |
| "wPk1pN/Dxqfc+TZu/IqmhxB99Plhz3xz4oZP0l9KAy/6K1L8we" + |
| "yaZyLXxQUjrZt7x81Ps++HkOuD0lvfif5+GHd/ZLzI3weU1P7B" + |
| "tr1/IGn055GK7ILD+laM/9s8+Oc/UvGruPor934Xkn8oPPJ8kL" + |
| "9PGaq/zO+/Dn6+yOefyx//g/vvvdmftvy98z9s/WTf36Gev2H2" + |
| "x/jvEc8Xsg/nrPXTzvxUdz6MVZ91zZ8lbvwN5YLzayD+8OtfIk" + |
| "j3B3n1/9D8WwXZ97Z2LOzxmRdefxxw13r6fGGb/833w3DnfCEp" + |
| "eZPx9ul/BK6Y8HP/h3D6+Ubzqx79DPXPre/PE+bXSe8X9/5o/r" + |
| "YH/njh/fkfu3+bpLNV/ml4UeSfosg/y6qr+f0axB8wvxtVH6fj" + |
| "j82PtSX/qtfHENzfH4y7/0ynv7x/NWLMD1vjg4D8K3R+uCv/Pe" + |
| "U7n238tvz16Jsbfyvoe8vQd+X4zVZ+KTn5IX7/nJh/h9QXEP9s" + |
| "3weLqw+8cj8/vZ0XDFy/6KF/xLu/1sv9CVb+0wN/3T8fh7v+zO" + |
| "8nw59f5elP5j3NP3vsM/5+Mlu+e5z5NPv8ryrnfx0ZmM2+ueEn" + |
| "+Fv1I7maL/bsT4LT9u/adyn6eb/e+ON6P1J/w4tfeOYTiPFP/P" + |
| "wDO/5j1md1FaOm2eZ8lJ9NLecjU9GZz46uTznOH4wftbX/iO+3" + |
| "9wXX1vgwIfM3s8AVOf4jzp8L9/fzSPFZwrCvkeev6yF8q1/V/h" + |
| "Gh/8isP/LoO934+EUwnGA//N/HpvcvAufXqfdP/fPlne0XID5a" + |
| "uPIjR/22XR9ZFvsri3117e/6PnjNjiTw4FnmM6dU+TjmU6c0/L" + |
| "g+wMPv7K9NPfWpBv8RfgDXjvnVKa1+Tk6wo+tPfvqg/pDiN3d9" + |
| "hjv/gX6+FdxfeH8+IenvhoQPHd/+F8hRz+M="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 2912; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXc2rXEUWr6pXyZSPJ95oJ85CsF6M0IQgLly4vIGHODKCAy" + |
| "6yEToQIZtZzv5GRGKySEaDq4FxZulSJOsWwiwGFxPcCgn+CS5m" + |
| "7b237+vu27eqfqfq3Op+L6Q30Zyc+jh16nz8qk5dIdqfEr6fCd" + |
| "N/+fCry3cfPbjygZo/vHb4+PKv559M7h++/LejG5P/v/SRrjp+" + |
| "EWj/qlBSFEK3/6tLcbb5c79lVGO0n9j/dDFtwP/Lh19fvnv0w6" + |
| "U7zfj2Hl9++uqTg/vXX2nHd+8veHxcfv/PjkOPkK/uEdQ483tm" + |
| "6J10ykj+4U8/m/LJRF/+pFuEufl3PX5ML0P29wSsbzvxYrV/dI" + |
| "/xlOtn69+OHuh9Nf/mmqzt4/knuvVvs8n3nX+Tw/Ufs/+T4r/k" + |
| "dukFLX6hxx+b+um1/3F0vP/D+2Mk+1cM+A3NP6F/Auc/azpWvv" + |
| "7h+oibHf+ee/xk+3jGHR8C+eLxHTfD3d8ovtgRnRy/IH5J1Z/Y" + |
| "8RP9X3L7RP/FlT83fti1fvj2T27/ZEH+C+i0/Fkktw/o0H+9WM" + |
| "//42/0d018sff4rXb+i/jit53kp2WqA5fAxaT5txHyU4QfBOna" + |
| "HApjhKqMlK2Lem9S96jrRX9b3Lpa/5eRDV1Uzfwa+tk+nds+tH" + |
| "9O/6Tjly99/cLy9boYC1yQDeAgOIRR0MXZWP1PHP+W6ad9/GPT" + |
| "Y/HDQXxrUXyM4pOE/dH8qqV91PXeK+yKX7Z/ffs4STKVbpuqGQ" + |
| "rb/FUhiiMx0xfPjoAf5sE/T7D+b/BPasneXplAKfT5mrmybcZV" + |
| "psZ3MfGh6fOXi/Grsew3u30ePyn/CvZvgfwsxneC/TP5sX1g4X" + |
| "twfybJRZPjwzz4kk6guzcYXb/cjfP1kzx+j3yZ43/Ri1/+5sc3" + |
| "dIb1kan+E/0+o+EXuewDYf5O+dpR5DM/+OqimtfrK8SFa/bH/a" + |
| "fyzqSy6txRGwZg+5XdPoL8Fue/zPGD9lv5lQ8OWvmJVn66Jz+Y" + |
| "f/Hkx8YfRV75wPUJ6jHu/7UX5P6X+pKo1LwSe3X8euGTg+J6cU" + |
| "PMJv++dxXTkX7U/umtux8/7I//+str/jEzP1v/29XXPeNQxcAz" + |
| "Mfr580L//rWY3+uE/Q3HB/YP7J8cH3cCKH35f5p/erSwD277ut" + |
| "ifchj/UkC2gorPoPaJ/Sefz+20/zT7OF58Ml9ff4d/cOpvcv7w" + |
| "c3R8kT1/YdpHbD+X+MWmsbpIs1+R+c9W8DGuX+b3r1jzixgfxL" + |
| "cgfhbG35LzZzq+FvqNh/+ICPsTp99VkgJS8fU0/H2DT67cndSb" + |
| "elptcHTaZUk4JfP+JZZv7vieK/8Uegx+kzl/ZOZXfPwg3P7BC6" + |
| "LOP+q21fxbIev8Y/KJLg7PtfnHS6VDAaPjz3Hw3WJgP0wUf4je" + |
| "SqgqHDxzgh9B7Zd58aUo/LjYcA6CcH4bPv+F58PZ938qPkVdH+" + |
| "767Zof0I/FWxWlKk3TWaW0UW2/ar6GP+je/n1m5m9mvPkh+Uw7" + |
| "xmqykG8pPu/Jl6v/4H5TAr6e2L/vd3MU+++jv/nHv0qzL9TfG+" + |
| "Pzz9rC/ecdUxo9VeJdc+tPFvIfFn+W9WCa+5lS/KPmL62o+esF" + |
| "mpp2bcH8SP0ril+WnvY/7bf/xaJ90bW/azqKTxC/Nm+Kmi5uNf" + |
| "P/Q81S0zv/YRb+5XCDPunR4fgo+YlKP5+gy0/mWp9WPr72tfkU" + |
| "yDcs/9zjH65vXP+j7M9o+yOe008L3SBWFN8bRCbef0rMj5Lrp2" + |
| "LxKQ3ANrcQUfzPrp9t5xFBLynjj4kfUf9U+4GIsfGJaeMTvnxz" + |
| "558x+WkC/tHwq5z55QyMfwbnX63+sF0KvgYwE8dnUvHJlPg94v" + |
| "5GlvWn07n3V3LXL6SdQ+it0bn4Lhf/LZvzx9l9XW/hC4WY7z+V" + |
| "nzVMzfmj8N/vicbnRdb6Ac79p7HpVWz8hO2DduELclMCnvkv+N" + |
| "WgvlLWfsyS7H/Hf2aNX6/xg/6Z9Pb84NEPV/7b6PcbtX6/+uQ1" + |
| "fH4y4v7F+JzDP+qVf4T4kwuh0M4IKiM9HL+F+HH9kFwA2SKE7+" + |
| "16/jnl15//kB/R+z13+9dkGn90+9T839Txc1L+7zr/6uVnZWT9" + |
| "TTi/jG4f4M/Z3wexYH1tgn7EjM+C4IBrn8P57zI/M3Xyu8zPxD" + |
| "I/Y/vfVZ22+/4fPB8G8knKrwR9fOT8rnvfYH7sv5b7J6j/pP2t" + |
| "NuOjXnwC5m+I40+8v+Ol3xbE+6OtxIuV/dCLKU83N1BQf8Sgf5" + |
| "r+Q34ivf++he7jZ6H4mr9+THxNeN4HmY6jH/D+71jzc78vknZ/" + |
| "c/X7aVGfc8n3vtBPq/qdhy46zC/33fazotufuF8ZSc99/ycL/5" + |
| "bvZ2TFjyJxmYqiBIH2EX81Nv+21i8RX6Tun+h7jvaU6OcI+BKL" + |
| "Xu4Y339O3yndthrwP/3j2/V/XJnX2+z6tA6Pz91pELS54N9vTM" + |
| "VHn6/P9v1jkbC+SD8y+x9D7ddnX8Pv9/HpIdluY3/Nwu8Lktv3" + |
| "jR/MH9//649viW+ZjPoXI9/yhNOZ4582dl58VFTvNH9/X7wvLl" + |
| "ltVLFviPo5wvhP9P3rXbfPpafazx5+qrLZ99zvP2f3T9T8jHF/" + |
| "LbA/cH1FWD8J79ew3g/0LnIhifLr9K+HH2+sj4rN36LxG/r52h" + |
| "B/zKp/pieyYv2fW1K/ud9/Z9Kj64fI+Nra+dso9z8T72fy75di" + |
| "+ylC+L/ltu/ZH7azL9z3XQTz/h7Qv8z7k73+lPdPSfvLQ3S2r+" + |
| "ntZ/G/IsK+89aH4P+I5+to/c745Rvw7+h9K/b9xOzvI4X3N8k+" + |
| "2ND4PO+73ejOh8D44PtKzPeb4PsgzPe/COe/zPeTIs8X/fSI94" + |
| "lGjJ9h/X7m/pnjw+erYfnj+7nw/RqefYTv28D4NPH9YBuTX6zu" + |
| "p4jU/CIVfxwrfvblLzz/qPois2tUSw0xcP6xKnroi0lS8g8lVu" + |
| "+ryM33VdLO75+p98FHkk/a+83c+iMt5NlljrvI/w4Wkyu6+jHu" + |
| "+zVh/tz1Ixj/HKF9Dn9UfF9AFGzw/oD/fd6HzvcHyjh8LDc+wa" + |
| "Xj+r28+smls993gt/fuYnwlcT7k8fxw03n/Kj4Dawfh+8DpPIf" + |
| "329d1s/L9fp37/3WFPyIgD/I3s7XCfI545kfqs934Zgx9ZFcOh" + |
| "Uf0Vn84yCZqkB8UKWeX/joub/PwMWHw/XfY3wfWgf3B7M+PLb9" + |
| "If4tOfjbePGL1/7zvg9BO785zfF7eCPm/r6qQPXpSK+o+HwaPz" + |
| "f+58Y3OD7jxm/U8bvl09ZPl7366Xoh9bJ+2k1fq69e4i8e/BrH" + |
| "X1d59S/Wc75E11/Bqf8F9cW4/pfXP/1957T7Ufz3SZn+nYLvqX" + |
| "D+EPw+WNL7hILePrJpcHwDfg0iPBFTP4vr36Z9/YuO36j4PvUC" + |
| "xhjxIT2+Ed7hUvExZJ+Y33fYOL9Ra+c3xRj+j/19lxT7RMcX3f" + |
| "jIRv0s6X0Nt16Q6ie3Xb8Ziq+rgX+Ks89VZPzt7T90PhJzvkGL" + |
| "b3D9ZOB8nWa/fPkT9/tcaAOE60OX9D1Al6l0Xv0s9/u8+Ps2nv" + |
| "vhU7p+sfTT7d+2ph/bkA8r/x8BPwjHhxn0b/U7/v7ZB933bX7d" + |
| "/P4Zjg/X/LM6HnwRPp+I8Z/Qf0ecz6TgP6n3g42gnc8z8/sI/E" + |
| "M7Qj5S/KIY8m9jFNr5tk6TPys/I73f5j6f+552Puc8H9wavrL7" + |
| "+mfu+Rmy36B+Cp9/BfnR+PD3N/Pia6g+ZZT8hHU+P5b+Iv/tPr" + |
| "9s38+ufVRlpGyX+L1hfUio6hOer9wO2x96fQo6f0q9f2fl8Bwk" + |
| "6v42qn8B+JBdvJ+20T/9/iPPPqV9HzumfoW5Psz4Jc/36WPevw" + |
| "6ff+7+fk7e89mI74fIpPiU+z7N7/fXH1E="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 826; |
| final int cols = 8; |
| final int compressedBytes = 2038; |
| final int uncompressedBytes = 26433; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdXL2rHUUUPzNvDOvjhax681EE3BcTeDyCWFhYbuA1BgUFiz" + |
| "RCAhHSWNpvUkhMinwYUgmipaWE1DcQLOyCbeCF/AkW1u7uvd57" + |
| "d+/O+Z2ZM5v7cJuXl/Pm68ycr985M0T/fYaGvpef/7h/9+DJ+T" + |
| "t2+vTK1ov9V6cPd+5fe++7g+uTf+596SoabO9W2j/cv/v80cXL" + |
| "TfvdF/uvTx5O7u++27Y/8cW8vfW3JypI9jHtLdcO9J9RSdZQPu" + |
| "/TlXSs+bldE2Yd6+aH+CPg363eQC6MPzz/Xx6v9/+rx+43O31c" + |
| "7/+H7f4341+d/L3Yf44FGc+fs2+b7R/cearstKKtvKBTX+/k1/" + |
| "LrdHXy671Lov2xqxO2zb/npzIXjE/tPq58JU9m2pu49vz8nu88" + |
| "PGfLR26b6NSV4tn2K3NnUhX2nYNmee3+a9vz8j/8ueW8Mwr7qm" + |
| "D+mPnfGbl+cCHyO9i/Fbfn+Tep/+j28k8MuZN1R1XRsN+UAw3K" + |
| "Hn8R/zdMt90tLVa4XwSd+yxMTMX7j88H+62ur+iuXri+ImJdbr" + |
| "195Pqx/dbaV2L158vjtf06qPVPYz9MPf7JQze3H09PdPRPpP7F" + |
| "9EvD8rsnkl/Ufjf/zNQ/bE5bhn6qpbosqMxcZinLerbHhPkX3P" + |
| "xcwP7c4Oli/Q3337BC5B9ftf4LZ74x2TbZB7RF9HPN/+8/zmr+" + |
| "140/yW5+Wsjmp6Ev5v/WKPO/cObbLv2P3vrA/sn5Y4CAmY59sj" + |
| "75mDbrd8v1R8mf84+/bp+BTkL2YY/XP0r/GQyulu9Wvz9/cvHP" + |
| "Rr9/UMcHpw/PdvQ78l8k8Y1V2Fd1e4+Syk3fpazaznKRA+Mnl4" + |
| "n9C6X/PH78zbNpOosfdi438QM9235t7rhF/JAP2G+0+BKwpow1" + |
| "9L72GXX8+3JFZIPkV0ivpPa06I2Pzp12fon6j1lfu0IzeP6151" + |
| "M4fwuOKKY7JZ02Rd/r8r8M9f8Kz/6J7TOwL3z7GT7k/PiQeP4E" + |
| "5j+sH1r9N/XgJznGT9y6SOQdXbWOT7kg/DHKfgfipyp8tKdfK+" + |
| "A/VZz9+mumH36Z6Yf3W/3A799g+1X9Mui/O//8o+Mnn4ON9gfY" + |
| "L/X5ENg/lp41hCb+7cUHeyyDrNQ/wfG9EJ/bEP8xf1h6Evto/c" + |
| "tf4BdZPf4Cv6AB/MJEQtiFRD8z/q8gf6Twf+X9k0d/xfj/CB90" + |
| "cvWROj6JjX+yuPHj8EmXcP0x+GzvfA7jm7+nwDchf6L1oxR/uT" + |
| "Gon1b0IviudttTrz3mP48fYXqE/UNfwvxKtnY+XJj8ieBLv/+L" + |
| "+aebX9b8VvdfLPs37X/fnrvCifVDOdb+DcuHPL+H4id2w+LxWd" + |
| "g/oI+MD2rts8g/shr/AuknnX8D8TVU36CujyBoQLj4Stse1SfI" + |
| "6xd88qvEZ5ft4+oPUuenyzV8AORXlP0nzJ+Tpj6AtZ9L0L+rJo" + |
| "0+fzxbgpkPUXdoBPmbAPujHB/XJ4jH8fGfX7/EP9bF9zp4JYoe" + |
| "gK9H1Qfh/Lxcv94A9p8f35dftsv8sh5fYsePy3/bRPlv2L84/0" + |
| "D+/Igdwg8KYftMGx+lyJ9Qgvy3UkDHrk/U1j/H4TvB+FOo/sF0" + |
| "oXNkAuNHmfwL12+78V26/NVC/rMtMyz/mfD8E4jv2PyKjcanxP" + |
| "6TJP86Qn6lrx8qWfybDt+H+QsVvi/wbyLlE+FXt0mc35OsP9r/" + |
| "QvUVYH5B/B04nxvnL5+/ma7Gr9TGr736mUJ5/nX4A8IHcP5bjp" + |
| "+7AaWJ8e2Cje/E9tlzjnfzg3n9rp3lv2iW/6I2/3VOGD/Gzy8u" + |
| "v0Wh9i9BfigsP2CT5QdA/+seswv2z5F/yeQHXC3+9Umpu63pzR" + |
| "SPTRrEu2bqR3TzUif+5vGj2PstcH1z/8LbP58fgPi28n4Tpiey" + |
| "Txp8wbLyp/MPlPiwHj8G+C6gC85HaPzR+XB+BcmPSD4E7d/Q/T" + |
| "ifXGzqflQq/DyIDy4Z/qjXT1r4YrX/XDp+JY8vAX6I8EHgHyN8" + |
| "THS/xILzw9C148fjm3vS+A7df1Hih1nk/oXis0B+Y/VDsvsNjP" + |
| "KxGvns0aswfBXiR4D/uD5Yje+NWx852vxSxefFqPXPAnwCGSi+" + |
| "PnRk/mH872jzd+z6fORfx+H3lEy/huhPp/ZfUvmPKfMvCB9Q4g" + |
| "uwfrJgzzfCB8T4QTz/te9nqOr3kPyj+E5dP4D9pxTtLes/2fj4" + |
| "Psn92zHPh9Z/1L/voMV3UH2Pjq6O/4X4WRa7PhSf0hB9YVfU73" + |
| "sAOuxf6x8B/QTjW6X/G99/6PsgkfGlpH9FfD/O/Y+V49Tq1/uu" + |
| "nsKpnKa1f3ir6bTRrzTHR4XKTVv/Ynz4Fn7/bsz86RH378evT0" + |
| "D38/7v6wf2RZl/DcZ3Sol969UPsfevkP0E8YFW/6a536OoD5Le" + |
| "D/HRA/233vrE+Zvx/FtdfDq2/4jw0ZH9K0hPUZ+tel8F5TdIeX" + |
| "8d+X/j1kcnqg/h7vdJ8N/o9lr/YuP2T4mPH/X5wfxCCnxR5B8N" + |
| "S538/nRk/ZGyvkZbfyC4Hzou/hD1fugbxV/C8nOh+Sdo/+H9G5" + |
| "H8mU58HX4/yNc+Xf5dYR9RfpV7P1xbvwsPQDFufnLk8ePe9wvx" + |
| "77T5Ea1/rcZHE92/TFG/E0OPkR85XY1P6t9P18evRxnfehPjM/" + |
| "yD9ena91VGpqP4Fce3svyT1/5K6Ar523z8o+tfoB9Z/avdX/3+" + |
| "o/glAX+58f8FRFL96w=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 1217) |
| return sigmap[row][col]; |
| else if (row >= 1218 && row <= 2435) |
| return sigmap1[row-1218][col]; |
| else if (row >= 2436) |
| return sigmap2[row-2436][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap2 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 4746; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNqtXAuUnVV1vuRNVgYkRIm4EMRaTArVJmkIQpszjwtj7IIuHx" + |
| "TawJCA1jBOHhpDkkkW87/unbl3QmM1ycSihWkGRLTFdlVahRRB" + |
| "WRBeJa0W46toi9FFXZIQAkk6dp/Hvvtx/kSw5Kz/7n2+vfe399" + |
| "n3v/c//713Uh2vjmd/Wx23I1nZ2Ji/3+t2ZHsHTqmODzYIAZ+/" + |
| "Q21oR3XcTKyON5YBek+lUh0vTq6Op9fBsaU6bufAcGf25Wyl90" + |
| "8nVyq1xdbibeD/Kfs48MfDs8F6WaX1j7JZnc99dPuhgaclJvWB" + |
| "sykS+SqV9AXy5Lz5HlfLlEql/u1KJbvXW4ppPCPPRlj2xexuZD" + |
| "Ldpjt72T6CPAbHg/kEPwN9b3LYdOc7s+cQgdlpqDU+D4+TTHet" + |
| "YbqTr1qkODn4zITYg47hvuyh/LPB/5x8WrYasIdbXCNeDqfZ7q" + |
| "KSHc0eyCvZr/I2ypY9CsdTNIfZ4exb7QeSAxzLJzP7/QGbGOSk" + |
| "7JsOfyxbxbyOwPEvXq8/6WqfYroHL84ez/8ALMBeTGuxz+C5Qv" + |
| "wr2SPwuCd7Ij/JdKfzAOs1vZWKffQyexBndp7+pekt9hFCvqa3" + |
| "+XZ4nGB6hxNEoY/OUvsZIraPQxdiZKXSNRuwh5EB+hgs2W5rzR" + |
| "7w5yNlgz72Qh97ef7sW0O/lxyUGIu4X2Lg/02HP2Zz8wjoo9MH" + |
| "57nap5jeoWPQx6q3Qh9L2FkVjwAD9NFanceoGc1/ah9BvgDH9/" + |
| "MDfgb6i9nZZrQ+Kf9f0J/xGMSM0ngAZvn3nO8PCe3oyw96v/w7" + |
| "+Y8aX8fI/EjN8Ojap0Oeo/l/5D/J/yt/Pn8u35//PD/UquAlOI" + |
| "7xmPwHZnToT5OXnP5swP5TePzYPf43HP8Dxy/yX7r5yx19VL2V" + |
| "+T6+Ivton8N8CerIR3Ya/vnOD+evtHxTk4JMUbrzIcV5csikQ6" + |
| "d5nHxo2Fm2X+P5amSpVIpZjfvQF94fb+PR9beSRf7j/HHGoRuS" + |
| "o7pu6UGRVEm+Sq809gevq3RWsvMc9l/xhmJmy7fNtIFs89Jlbc" + |
| "OR7c1WgBwjhHx5lI9EzbR1fAytto8Y764z96KvG2OSodVFkY3P" + |
| "vd/QXcerSVdF2SoVqkrxjtHaARvTWWVFHAt99L7DZhjkMErnMY" + |
| "zz7DIzPHSmx8mHBlk43nEjsljZ/Af0hSvthTy6fhFZ1PkY8XNk" + |
| "aH/6h1bPLj1eTRRJlXTcqFca+8P52KuzxuuTFQfbKrMK5CqU0L" + |
| "sP+pnTP2RWDfWjnfuiNx1kq59OCPTxu+gP5+NczlB/kCyislU6" + |
| "B0egI99L2yUW6ySxktqccl6q3fVxSGeV+TkrVmuPZG0yKX/a74" + |
| "dwHcknk1OSl5PT4Xrdk8xqvhGQN8Ee8S0gb4LebgX9HaCvT87L" + |
| "boH5/mSuizofjgvgeHf9CsuV/H6yCKx/0dxHHep6FvANcFyadC" + |
| "eX1Y8k703eZ/F0Ge+j26dek1xbVMHTWZLrk48mK5KTkgl21tic" + |
| "vj94tSVv8BHJG+E4M/tUss7uH5OzoSP/CnFzeO5kXvC9KKzzks" + |
| "QkHekoz53fQn1wPldgTcWXW7Ut5f1KboDjw2aFWQH9XIHSdXgF" + |
| "zrMBs6LxE0LIF73pIFv154QQn1vLjzhD4zyyiPNxhc7BEejjl9" + |
| "LlEot1ntVLm7uMNx3la88f0lllfs6K1dqja0HXAsixAKVb7QKc" + |
| "Z2nXguYSj5MPDbJwvH4/soQzYQHqtQt4dKODLPJfzM+Rjn3px3" + |
| "Xd0oMiqZLa+XqlXk9H+drzR3XWeH2yYm8zhSmgnwVK1+EC59k9" + |
| "pmj+kcfJhwZZOD74HLKEZ6xAvWsbj25cThZ1Rkb8HOn4brpB1y" + |
| "09KJIqsbnlSr0O5yNbe/6UzhqvT1YcbD2mB2QPSmfpwXn2VdPT" + |
| "vJkQ8kVvOsjWmEsI8bnzcTdnaGwji6isR+fgCFy5dqc3SyzWed" + |
| "awln8s56XaXR//TWeV+TkrVus8RswI3F+POHnMjADTBD+D+d7q" + |
| "82akcQTurwH3GNxfj9CwKNxfj5Dd+cCuCu6vHeoyBd98muWj0X" + |
| "gSLe6u8Ch4uPtr4rIaZ4aaDpuR5kNpk+eE+2tVE2ATvZZP8nO4" + |
| "LjxPEXB/PUJ1USbY70Ic3F+zrHB/PRJV8UrrunSSGYH76xHTZ/" + |
| "qgj31OHjN9ro99Yb63482mr/nX0Mc+HNDHoAGzO6CPTuIj+MyE" + |
| "2IMecX0M/vm09kXkZfoG16NF9pGyYQ4a2WE4H/89vYVj0EcR4b" + |
| "CJQU7C2uxaWixHyJNqd30ELugjywp97NPD9tH7Qx/7oI99dt9T" + |
| "bE4nFBsGHm1dyWHfU/ttu+/pOAP2PXvsvgcOu++BPWdyDhzvcH" + |
| "6tfU+yxe57klv8viewhH0Pf8XW9lYqA0/hvqd6APc98T+37+kv" + |
| "2/ckzeah9LbgFfY9oNndGex7Bh6HDG7f41C274G1zAuo2PfIvM" + |
| "Wi9CRWxeW476F/A0/6fU/Lx+97dpqd0NudKN35sxPn2T+Znenf" + |
| "eJx8aJCF4+EsDFp6J6G1C3l0Osb9xTtkxM+RjmfSO3Td0oMiqZ" + |
| "LaQr3SUMUoX3v6BZ01Xp+sONiqBna79tFLZ6nivPqiqTYfJ4R8" + |
| "0ZsOzeM14nN71xc5Q+PbZBGVVXUOjrjV7pZYrPOsXtauLuel2n" + |
| "mFcp16eFas1h52f16rDM8vfpVM4/cTfr+e/TN+9pvMBr8p7j7l" + |
| "nORc/DQZXgfH6FNnOpL5aHdn4cTWXusz/JPoxnf85+HRa/rK5G" + |
| "prGV7gvQv1STT08RHwmp7ciEgyEyo8wzMnZ/nPw+U9ms0dfBeS" + |
| "lRhbr+uuZAl/XXt7bULygYBclXws8PRQjuq4ud3cDv28HaXr8O" + |
| "1+dM7unI0I96FBFo6H50loXrd8NJpt3F+ckRG/RNJ9um7pQZFU" + |
| "iV9LzMv9oY/v01nj9cmKg22dWQdyHUpnWYfz7OuIcB8aZOF44B" + |
| "ea1+un8OjmbO4vaov4JZJ+X9ctPSiSKsm+plca+0Mfb9JZ4/XJ" + |
| "ioOtw8AVyz566SwdfmR7u+6WCPmiN3jtR1TyeI2i3fl4F2dopm" + |
| "QRlXXoHBxxr+sDEot1ntVLu5YyXqrd9THRWWV+zorVOo9tZhvI" + |
| "bSidZRvOu76ICPehQRaOB36heb0+i0c3M+4vOhnxSySbpuuWHh" + |
| "RJlfi1xLzcH/o4orPG65MVB1vd1EHWUTpL3Y/O0zpPQ4T70CAL" + |
| "xwO/0Lxu+Wg0t3N/UVvEL5HsZF239KBIqsSvJebl/tDHL+ms8f" + |
| "pkxd7Gv//V3x/Dc3gXvxbL74rlFVrP+PWaffN8mH8fPDyh/Hod" + |
| "59DX62yGrFvay7+/9muJeXmlcGU+VWeV64+v8eF6PcvMgn7OQu" + |
| "k6PAvn2VmIcB/uzaPIB1lI83r905xhuJ/7i+dY5aAR+vhWXTe3" + |
| "y+pwXnxCr5RHo2+xVmclu64Ca3W2qWYqyKleOnwqDqj3Z2RFTG" + |
| "twnZnq4/QhGd35+DL62jF8MzGJykQ2nd/18Z3lNfG1EK+f106P" + |
| "rRTROh9n6ayyIo5htc6+xqwBuQals6zBeTZHIuSL3nRoHq9RtN" + |
| "sL38kZhneSRfRxjc7BEdfHuRKLdZ7VS5u7jJdqd338hs4q83NW" + |
| "rNZ5LDVw120fvXSWpTivviAR8kVvOjSP1zwH6mY+Zxj+HFlEH5" + |
| "fqHBxxfZwisVgniZVgHZqXanfvPG06q8zPWbFae6RfSf9eXhX4" + |
| "O3TKPmNN+9wvn+a73zzdU3bnZWfpdVngT+6VVw33bF/Br0SMe5" + |
| "m+zuBjem2Zf7aAX8Xk1cNeZ+QqvK12Ofpln5CcYu3vja+g+jpT" + |
| "9vmUeea1jTiiHClDNebniPoo6RUzeSTrOlEFA2dzVpkl5iW769" + |
| "gSnbWsR54Vq3UeM8wMkDO8dPgMHJVKPtvMyJYRQr48ykei5o/s" + |
| "oGZ05+OV6GtHOiYZWs+tyMbn6JctL69JV0XZ4P1xfWx1VYwSLz" + |
| "BfD7UfkOuUFRCG1Tr7FrMF5BaUzrIF5/lbEOE+NMjC8cAvNK/X" + |
| "rtLR5CU6GfFLJPuIrluzYiRV0rVBrzT2h/fHHp01Xp+sONhWmp" + |
| "UgV6J0lpU47xiUCPmiNx2ax2sU7fY9L2kG8mKVrdQ5OOLOml6J" + |
| "xTrnprWU8XpZ/4z3rT+js8r8nBWrdR67zC6Qu1A6yy6c528zu9" + |
| "zn4cKHhp3B/lHhgT9o6Z2E1nfxaHhdM3/RyV28Ip0R+rhW1y09" + |
| "KJIqyc/RKw1VjPK1Z5/UWYlPrxBrdbaNZiPIjSidZaMfnd2d3Y" + |
| "hwHxpk4XjgF5rXLZ+MJi9RW8QvkWxI161ZMZIq8WuJebm/2z+q" + |
| "rPH6ZMXe5q/jg2+H3cKj8efh+bv4/WXxYf95ON+XFNeQP9978N" + |
| "1E8WfIXH+suN5+z8XvbMvur8PvaK4LOT4S/WL8l8VSfQ/vD/89" + |
| "l4u6kWopboC1/K5DPxo4r6IqiuuK5Zi3vW3wXED+XH4eXlztHq" + |
| "8tltnvuUrvr3eYHdDPHShdh3f4ke3tegwR7kODLBwPz5PQvG75" + |
| "ZDR5iec44pdI9hVdt2bFSKrEryXm5f7Qxxk6a7w+WXGwdZpOkJ" + |
| "0onaXTj86ZnTNNZ/YDQsgXvenQPF4jPve6nqkZyItV1qlzcMS9" + |
| "i/1QYrHOub20uct44f2RrX1wvs4q83NWrNYe2Xvib3zo1Zld4h" + |
| "4vph09f9WHv37Yz+9A4H7mmvAd2cKS+5k15XcD8Wv6xPcz+ZvK" + |
| "PtNC/Tj3M6s1d9n9zGB7+f1M/KmZrMrcam71j14iZkfnqZ2nIs" + |
| "J9aJCF45yZ+Nz5eKqOJi9dleSXSH6GrluzYiRV4tcS83J/6GOX" + |
| "zhqvT1YcbANmAOQASmcZwHnX44hwHxpk4XjgF5rXLZ+MJi9RW8" + |
| "QvkfzNum7NipFUiV9LzMv9oY9X6Kzx+mTFwbbcwLXKPnrpLMtx" + |
| "3rVHIuSL3mY57B8DKnm8RtGuj3s0A3mxypbrHBxxr+szJRbrnJ" + |
| "vWUsZLtbsdxbk6q8zPWbFa57HZbAa5GaWzbMZ59ajZXD3qcfKh" + |
| "QRaOB37Q2jcRn6vyxzqa/EUnI36OtG+ydZ2oJopENrgSb9Irjf" + |
| "3hfLxbZ43XJysOtsVmMcjFKJ1lMc7z88zifA4h5IveZjGcjwGV" + |
| "PFZr7yc+V+WZmgEtorLFOgdHoCP9+VyJxTrn9rK9v5yXancV7t" + |
| "ZZZX7OitU6j/VmPcj1KJ1lPc6rv0CE+9CwM+ijwgO/0Lw+OFNH" + |
| "k5fo5HpekY6prbd1nagmiqRKajfplcb+lcrQu3RWsusVYq32KL" + |
| "sXoet7fv7/7/vC9g1y3zP4WzzD8e9nfs3fu27IL3jt3xe2b3g1" + |
| "3xcOzZcre9XfF24326Gf21G6Dm/Heb4QEe5DgywcD88TaLV+4n" + |
| "Md+KyOJn/xHEf8Esn/RNetWTES2dz5qFYa+0MfF+ms8fpkxcG2" + |
| "2sD+1D566SyrcZ5fKBHyRW86NI/XKNr9lvMJzUBerLLVOgdH3J" + |
| "3BsxKLdc7tpc1dxku1uz6u1Fllfs6K1TqPrWYryK0onWUrzvNF" + |
| "iHAfGmTheOAXmtdr23U0eYlORvwSyZu6bs2KkVRJbZteaewPfb" + |
| "xDZ43XJyv2thP/niK/6HX+PcUdr8f7I9Q1/NrfH2uff1Xvj1/4" + |
| "DX9PscnAHs8+euk6vAnnHfMQ4T40yMLx8DwJzevtf6WjyUs8xx" + |
| "G/RPL36Lo1K0ZSJX4tMS/3hz7erbPG65MVB9t0Mx3kdC8dPh0H" + |
| "9Hk/WRHTmpU+Th+S0V2v56BvGUOrMpFN53fnwP7ymjQnZZNr4b" + |
| "y8UujjvTqrrIhjWK2z9xv796z9KJ2lH+f5JYhwHxpk4XjgF5rX" + |
| "BxfraPISnYz4JZI/rOvWrBhJleQX65XG/pVKo6KzxuuTFQfbZD" + |
| "MZ5GQvHT4ZB7wW3k1WxLRmpY/jR3ZQM7r7wlvRt4yhVZnIpvO7" + |
| "73xuK69Jc1I2uRbOi/bw+55vQO0H5DplBYRhtc6+1qwFuRals6" + |
| "zFeXUEEe5DgywcD/xC8/pgv44mL9HJiF8ixVZdt2bFSKrEryXm" + |
| "5f5wPs7TWeP1yYop9vif41YPSkx+jpu1l/0uJb8vRpHdPPH6fI" + |
| "5bfO7VfI7L//cdXMuv+xy3cc1v+DnuMrPMP3qJmJ/nl0mEfNGb" + |
| "Ds3jNYp22tOagbxkTZqJENfH3RKLdZHVr+XScl6q3fXx4zqrzM" + |
| "9ZsVp7ZPYue8x9NzbNSzOGnTZjySH3P18AnsyG944psE8as38/" + |
| "w86MYz4qfL/2ov3/pMBnPkfx72c8E8N/hz+zNq/1gOgrk6tbv6" + |
| "C61v79DOuxq85VND35aavOmTA/I9Rwlj0fMRNlRC1ZyFGpQx+/" + |
| "liwhJLnc2+Xfz4T8PSL6/wApPsDZ"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value1 = null; |
| |
| protected static void value1Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 4012; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNqlW2uMXVUVHpRH28HHVCsIrS21FgpUfFFEHm7undsyU3nJQw" + |
| "kwjE4nHWo1ZqApE2Pbfe+ZuQ+gtY8YbOkjLRVf8YeaaIxGamzk" + |
| "JSAC8Y8m+KsG0AQjCCZT99nrrPnWWvt0LHBPzqy11/rWt76155" + |
| "77ONO6FW5FV5db4Qrb1cWr3K/M1xFgGY3T8pCH6ty74iHLABQe" + |
| "uptcM3bich1LfcmNWcp4oT3Hdh62XXV/ycpqI2KX2xXsLrYxs4" + |
| "vXlXkckRgcyMh4wa888lsNWw2U2smEX0fqV1jdlpUroYRmSXkl" + |
| "Puzji7ZrOp9WXOQylwWbsY2ZjNdZn8smdlEcGBzIyHjBr7yC+Q" + |
| "lbDZTSlvDrSLPb6rasXAkl2ZV2UvLr++XsnX/brul8WnGRO+AO" + |
| "BHuAbcwc4HVlgTuQjVIcGBz5qnHExgv+wmuei6h7UlY3z5F4pe" + |
| "2AVGQ7Bs4lVrdGoBJK8ln0pOSHfRSzV06yXcFnJ2StMTfshoMd" + |
| "Zhszw7zOrnHD8fk4jJj05Gl5yANfVPmUZQBKKBu2PWQkvj4+oG" + |
| "OpL7nJ5r3LeCful7N3XrVddX/JymojYqPbGOxGtjGzkdeVDRyR" + |
| "GBzIyHjBr7yC52lbDZTayYRfR5rO6rasXAklNEvKK/FhH1+zXd" + |
| "P5tOIit96tD3Y925hZz+vsOo5IDA5kZLzgV17B85StBkppS/h1" + |
| "pLnc6rasXAkl2bV20hTf1XXPEts1nU8rLnIb3IZgN7CNmQ28zm" + |
| "5wGyrPUxwYHMjIeMGvPPIrz9tqoJS2hF9HiOfYmlAJJXmNnpR8" + |
| "cMV9vN12TefTiovcDDcj2BlkY3wGH2Efb0KWY9bLLdXZUzNG7z" + |
| "nGljFMKVPdbP/43tVXrslyoluY5cY0iwrufc9XbFetSMZYbcyv" + |
| "cquCXcU2ZlbxunKejgDLaJyWhzxUR+9PlgEosY+rbA8Zifu4Us" + |
| "dSX3WdmqWMF9rjPjZtV91fsrLaiOh3/cH2s42Zfl5nd+gIsIzG" + |
| "aXnIQ3X0nrEMQIl97Lc9ZCR/1PfpWOqrrjTLSDkvtMd93Gq76v" + |
| "6SldVGxA63I9gdbGNmB68rl3JEYnAgI+MFv/IKnmdtNVBqJxN+" + |
| "HWleZXVbVq6EEpol5ZX4sI9/tl3T+bTiIjfhJoKdYBszE7yufI" + |
| "YjEoMDGRkv+JVHfiuz1UApbQm/jjQPWd2WlSuhhGZJeSW+q+ve" + |
| "ObZrOp9WXOS2u+3BbmcbM9t5XdnptsfvMwqDAxkZr+xklqLTdv" + |
| "ZzPl0NlNKW8OtIdqfVbVm5Ekry3npS8sP3GTH7vUtt13Q+rZhy" + |
| "vRf2XtjVlf8km2dolfuV3RyRGBzIyHhlN7NQJ8YSn64GSj5Sfh" + |
| "1pPmV1W1auhBKaJeWVeMyqNaQ9pNb8dHvcnrCfe9jGHd7D68xz" + |
| "RGJwICPjWZ1Zit/YHvZb47YaKPU7Tvh1pPm01W1ZuRJKsk120h" + |
| "SPWbWGtIfUGnMt1wq2xTZmWrzOWhyRGBzIyHjBrzzyWxO2Giil" + |
| "LeHXkeZfrG7LypVQkjXtpCkes2oNaQ+pNeZ6XW+wvWxjppfXlW" + |
| "U6AiyjXW/jCEc1D3mojvu43TIAJZT12h4yEj8//lXHUl9yY5Yy" + |
| "Xmjn7rqr7i9ZJd71ub5g+9jGTB+vs46OAMtonJaHPFTH18f7LA" + |
| "NQYh/7bA8ZyR+NM3Qs9SU32bx3GS+0c3fdVfeXrBLv1rg1wa5h" + |
| "GzNreF37u44Ay2icloc8VMf7XY9aBqDEPq6xPWQkfyw/RcdSX3" + |
| "KTnXiknBfaubvuqvtLVol3Q24o2CG2MTPE6+w+NxQ/9wwhJj15" + |
| "Wh7ywBf/PvNfydA8Bxm1j0O2h4zE63qJjqW+7FrM0iznDZ97xO" + |
| "x6IssuVWi8G3NjwY6xjZkxXmdbOCIxOJCR8ew2Zik6jbE/8Tdb" + |
| "DZTayYRfR1oXWN2WlSuhZOIFO2mKDxMP2K7pfFpxkeu4TrAdtj" + |
| "HT4XX2LdeJ98MVBgcyMl47l1mKTh32a+faaqCUtoRfR5ozrG7L" + |
| "ypVQkvfWk5Ifno9idkZpDWkPqTXm2q4dbJttzLR5nW3liMTgQE" + |
| "bGa4uZpejUZr+22FYDpbQl/DrS+qPVbVm5Ekry3nrSFA+U1pD2" + |
| "kFpjbqabGexMsjE+k4/wHrcIWTrqVWRhqc6emjG+Pj7A2DKGKW" + |
| "UzZQ/dv7jf06tjqQ8drETOInmlUj0HOspuiEm8884H69nGjOd1" + |
| "5WyOcDTso8eBDKqogqPgi/t4v60GSu1kwq8jYR+NbsvKlVBCs6" + |
| "S8Eo9ZtYa0h9Qac4NuMNhBtjEzyOvsYR1xg2EfByUap+UhD9Vx" + |
| "H3cDJfFmFwdtDxkpno+DGpVyAl/M8ptyXmjn7rqr7i9ZJd4NuI" + |
| "FgB9jGzACvK4t1xA3UX0dWn5aHPFTHfdwDlMSbfRywPWQk7uMb" + |
| "Opb6khuzlPFCO3fXXXV/ySrxtcnaZHh1nSQbX2kn+Qi/w98hyz" + |
| "HpuRPIUh2ftfMZJxmjdz5jwbXpWmbgh+5m+8dPJ4fLNZG/aT4q" + |
| "mY97p7xSKVByTq0AMVar9dcOYw72st/rbJ7xC4C0j8ZF9cHQZy" + |
| "4j9P6E9dyu43jUDqNDfaAMkT2iUbk31fPwpvmlrHMb3y7YJ6fp" + |
| "PVdO56+2u4OuehfcbDebfpLlGK0rKznC0fD6OFuiZRV4wAy+eF" + |
| "1/ByiLt6pkDxxTr49Gt8xrdbymWVJeicccVmWZComXz1x7XYXf" + |
| "+xPymk2va3316Od42XVdOdUy0HWdPCumva4rp7ae069HOl9+XW" + |
| "ePH891reeQ13D66iLx6euj2scna5P1A29vH+sPgb31W/l6Uz/4" + |
| "1vYxvH7c9Rb28Q/l+1jf///20fYo20e3xW0Jz8stbOMzdQuvaw" + |
| "23Jd6nUBgc+apxxMaL53vhtf6DaOslWd16VeLVtbJFKrIdA89r" + |
| "VrdGoBJK8ln0pOSH74VidtSlfHZCiXdrw3Ew/ow2xHgV1tlzMY" + |
| "oIsDkynkXVWv5ZYA5SJMz88hT+ILASX+g5WCBEt6keoj9hdUxX" + |
| "6JlYW/asrtBI6hS5dXat6SVYWUnEhkewjm3MOV7X3tARYBmNE7" + |
| "naIkRQHa+BRZYBKPEbdraHjESeN3Qs9SV3Mcuicl5olwpTlVYF" + |
| "pouIlW5lsCvZxsxKXmeTOgIso3EiVzsPEVRHledZBqDEPq60PW" + |
| "Qkfu45qmOpL7nJ5r3LeKFdKkxVWhWYLiK6XXew3WRjvJuPwPpP" + |
| "190+BRFgZRVVsodTM8Zr/B+MzY/2yZphah9VN7lmXOOFck1WFb" + |
| "rRLDabH+H1sVv2t121IhmTeDfq8veRUbYxM8rr8Xe40fbpiADL" + |
| "aDca3meKqOYhD3y5154lGdqnIaP2cdT2kJFiH0fLNGkNjC9mOa" + |
| "GcN+yjmJ0zek57MA54N8fNCXYO25iZw+vaDo5IjETLKmCYBR75" + |
| "7XmWASi1k6YHDsq3F1rdMq/V8ZpmSXklHnNYlWUqJN5tc9uC3c" + |
| "Y2ZrbxevxEjkgMDmRkvOBXHvntS2w1UEpbwq8j7Q9b3ZaVK6Ek" + |
| "a9pJUzxm1RrSHlJrzK12q4NdzTZmVvN6fJaOAMtonMjVliKC6v" + |
| "gqvtQyACWUrbY9ZCT+PpbpWOpLbrJ57zJeaJcKU5VWBaaLiH1u" + |
| "X7D72MbMPl6Pd3NEYnAgI+MFv/LI7/25rQZK7WTCryPtO6xuy8" + |
| "qVUJL31pOmeMyqNaQ9pFaubV3ZWtGq1Q4Fb3m8y/GTqfsdPw3X" + |
| "Q3w9zbNT93sOHetuyfgv64PZrxidPiZekqvWq/E9Y2/yrfAQ6s" + |
| "vv97Re06jc41XtUPn9nokXOZ/9Wsbr+213fOMT93sOWW1lM+p7" + |
| "aP4XHG18Pvzu478ea1wvv5Mf+75TfbCMe+rfZv2s67geqCnfx8" + |
| "YL5p6f+j59jH18ufxeXrKPk9MrK8+7nW4n/STLsfyonlU9y+1s" + |
| "76U4xziLCslBmK4uwqFH7hMfjvC5ZydQVpXm15Hwucfo1ghUYs" + |
| "a8t56U/PC5R8yeW4ksm08rLnLr3Lpg17GNmXV0VC+uXuzWtU+h" + |
| "OMc4iwrJQZig+mKKgi+8QsxIq4FS2hJ+HQn7aHRbVq5kNlKkJy" + |
| "U/7KOYPbcSWTafVky56e4/Np6pVu39t6xn+vtmETM7qK6W3X8E" + |
| "39u5/xhea3785u+bUe/juf/IyDdz/9HtduH1L/9JNu7wbjqql1" + |
| "Uv4whH8wgOZFCVY4LqyygKvriPSTVQ6nec8OtI+1Gr27JyJbNR" + |
| "bz1piie0RJbNpxUXuRE3EuwI25gZoaM6vzpfR/IYe4TGCZ4cQ7" + |
| "iiU4FnPskAlFA2YnvISHw+PqZjqS+5uXs5L7Rz93KVVgXw8PX7" + |
| "lJ+6/nvv1ln/g/i5Z9p3NP+x+E7/r7Jc792tkv8l7H9U2O+Xvy" + |
| "e2HlLoH4Z9fL31oH4lkvfhy9+veZbizvz3jv2O3Hil5O9cJX8t" + |
| "Ub/7rW4r/STLMVr3jrmtlf0UBwYHMjIumcEXZxmT1bVXJN6q0v" + |
| "w6UtlvdWsEKqEk760nJR9c3Ft3TefTiotcj+sJtodsjPfwUV1Q" + |
| "XeB6OpcjksfYQxVVskcYwknGcGVFPhnRDFPKemQPuWZceL/u0a" + |
| "hyVeiWd0+zqJDdJVLq1SowXcw3XCPYBtuYafB6/HTX6PRRHBgc" + |
| "yMh4wa888q94XVZ3+iVe7WTCryNhHxvTaUIllFTutJOmeELrru" + |
| "l8WnGR2+vyz9l72cbMXjqqC6sL3d7xMyjOMc6iQnIQJvz2F1IU" + |
| "fHksrQZKaUv4dWT8TKvbsnIls5EiPSn54fOjmD23Elk2n1ZMuf" + |
| "x1c/yb9a+Nj/kZ+rtPfo7Pq03m/45Ufh7zC/zC9F9mTPf3azza" + |
| "t+hPlMf6/Ohvjrq+IT8Byk9uzaDVz0IPPzt8Fz6Ns/T50b4XVO" + |
| "4qsMv051r7vdD3y39PYWfwX/RrS/9+fbR2NNij5Uf9MZtNseWR" + |
| "NFp/POzjrWkl/6Qqssdmokjnq9MpqD+KGPOFfRwt54UK7q67lu" + |
| "2OVpufbrPbHJ6Xm9nGZ+pmXo9f5DZ3HqQ4MDiQkfHi+a488tsj" + |
| "thooda0k/DoSXh83T6cJlVCSNe2kKZ7Qums6n1ZMOf9Of2J4tp" + |
| "7kT+br2n/Un+rf7d/j3xf2+WX//s53/af8B/zp/kw/13+Irmv/" + |
| "Eb84eGeH85zGER//Pbg/P5xL6fOj/2Q4L/SfLhgv85f7z8Z99L" + |
| "4WI8v9lX5Fp9/3+fhXN6/u5fqb/M3+Nj/gB4P/pXB+2Q/5EX+H" + |
| "P8G/g9+v/Uw/y3f7d/n3+p78uvZz/Gn+DP/B4M/bNN+HT5D+rH" + |
| "AuiXwX+I+H5+PX/SeCf5Ff5sP3f39JOC/1zleCrfpefV37z4Xz" + |
| "Kn+tv9pfE2PX+ev9Df5G/4VwXd/ib42x2wv8qnAOd/0PWTk4oA" + |
| "=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value2 = null; |
| |
| protected static void value2Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 4106; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "iqQy3ifTl/t9FDxOcb3uK1LGGaovOZ4cN+v7OOZuxR/Hem8vIp" + |
| "xDB7VwPNs3RAnKzS7fmlhizwn8SyT9pq/b94qWpAT6EvrlfOqr" + |
| "1BDG4FrJVv6G0nfla6EiW/Vz7e7mZNaXEkN7d0zVR97K/Z7IvZ" + |
| "tKu/s98fsU2JfqpP7Ym79XNdX9HnWWOgvOkCMG9d4l6iy3rgWH" + |
| "s7kVccgz+XOf3XPcQ6uT831VPAYd2f54ga+bt0t1WLd9kT2Fcm" + |
| "2U9533inuPqeB81aE6TN4BucM78DDrZ4fqaM4lhLjcCiyxREl6" + |
| "dOv6UuTao/WA9JArE9F4HXn1V+KafFUUzfTlwbDVHmYcO3h8P6" + |
| "pUxDHO11/RJ5r19059kr1Pka3GU/Us3aHNOKeP6LPtfNTvMekC" + |
| "3aXfmzTtfQr9AX2xQT5oUrdJ85yV+S6iF9h1nTTNzGvqK7W7W9" + |
| "16WF+jF+trLWZQd49YL9HX6+taO/QN+uPRvWGd3qRv1reY0q0m" + |
| "3aY/pT+rP6dn6BOy+fiQnqlPMS2n6dP1GfY+hT5Hn6s79fm2df" + |
| "uF2qxs/T6TPuS8fVhf5hSZq7y+Si+061r3mLRIK91bG9WJzvcv" + |
| "w7rRJHPt0Ev1Cr1Mu9/S+iaTPqFX6zV6rd6gNwqtnzbp9tieRL" + |
| "tN/Z5SyY6jvJ8mdyO5i9Ru8cektYvueDUWcNvWzvZ7lD3Xbo7t" + |
| "WK1RuU9hBMBgf6Q6tDXmE4/7rI3K/Zju/8le+vfu6veKNdSjeu" + |
| "CsegjBevqo6hnYQoipnUGtlIMdpoEzVU+yzffoPu1tyLVHa4f0" + |
| "wDXxFh4f56PEwjLpwT5C7NCvWdc9FN+yOJPrlSqod1y/WqwWUx" + |
| "mSGUfx3Qo4eEasfpAzot/BFqP3Zj+3bfOtbTH3FvLTXaQXNZFn" + |
| "OmPJ5ulOroT75H0nO9lLtJXciPJFahGVIZm5/C++ri0nGQImst" + |
| "Ui6cV9pkOQuJ1tSYasNdkUr2tgxGPAuia94JGrojOWIDrxuM/a" + |
| "KO+7VUgqwxicG93Z+XVmq0nuapTuFpwurZOavc6Y8sUZ1i0YC5" + |
| "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" + |
| "x/+buQGO56PfZf/V34H665Zag="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value3 = null; |
| |
| protected static void value3Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 3065; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "bPdTqHfnWt6nrs1rxX6K7pNmP4V6Rn1YLVc36NqN6iPer5ur1R" + |
| "r1abOfQn3W7KdQn1OfV/eoaWp6gTjLfHdV56hB3E+h3m72U5h+" + |
| "VAvMfgqdyH6Kxi71HrufQr3f7qdQ16lIjfD9FBrF9lOoj2Uabt" + |
| "Wp2E+h7mS+rtPp7mhupPvI5LaEum2nMziFtlwpqFFK9iQ/F+rd" + |
| "p23p00DeUzBr0r7ESJ9lCZ40fuCPlPqOKDdO6QVGlyGGo2FdDk" + |
| "MJddtujHMKbUFt9DDUQR715JaGod79tS25Bosn/cisSfsSI32W" + |
| "JXhCY6F6qe8Wza1yW1QrxfN5Rs5O6azq+XH0cA/z4/M4Y032/J" + |
| "j8sc78mPzJnR+lDd/8SJ6IUshtzRzp2zi3NdGOKT/4dJX2Rpeo" + |
| "Kly7yVHU60YaeC5M6/jgs52tUqnkc5xdZ8S+vWKdSc8W68yzp7" + |
| "jO/MHu25uSdWZ6rXVmurvOqPEa68xgNKjH96Ats/E+CKfux9nI" + |
| "BZqsmdLKycQ1Zv14CLA+DcXcx6xJ+xLDEVwnWtP5CZeLEoXeE9" + |
| "KqtIY08ET6X1zHLxTjWjxNq/3l73Oqvu51XzmzTzIwP3pHbC0N" + |
| "FKVW1LccHYmO2NyWQLPt9LzoSOchpCAW0JikHltDfdm7/RelBk" + |
| "Rxn6QmpGSrwSFOc+tUty2NbZ/e9g4aO49IaqdeSLy75qj7gdpe" + |
| "6f7ecr3q5YpM/tq7TN33nBiD/3pMXqmnu5zfS/TtTxXj+vze4y" + |
| "vza+QvU/cet57t9pqTs9l4LcsHbKI0Q4FawclwjQHfdwWJpTLF" + |
| "/PjfsA8hmaDnA9RTGoNfmmLL+qOCP1DGb8y2Kf9N1gE1HerrM/" + |
| "MjxyGy1i9F0CMv9y7jHaOHOAb8tzS/NNiW3DbbVdW+u9x2efRq" + |
| "Bt0fDvOjOpAOC9zB9oD6Xfn+cEf3i7mH2n7yak2Z1RWjb6Z/f7" + |
| "h6oWR+zMfNmdkf3s7+jiR63aacdk2+Er3evkfbJ2/bLA6RTNN1" + |
| "gTsCgh55ySt5dZmMt0/+bjHta6lfIOeXBtuSK67HL5TbDkWfc/" + |
| "9tU67rPqCm83w4RNa6syLo5B+9y9TBgP+W5pdOxurobn+lnF8e" + |
| "Pb/vgX5sTaQXnsx9T/urwfuef03hfc8/6+huf+1U7nui4zbx+T" + |
| "E6ns734RBZ69rK0e1RvV6/2ZtMMNoOx4D/luaXTo7X013OD0Vf" + |
| "/l0hvbzX7wr8bZl8b9bcMHXvzaztqvdmPKr63xXiY/Gxvj6T2z" + |
| "L7cnMM2ulioFAMnsih9Pz7D6vZevIfKY0o9u3I0c8p3KaLQEnE" + |
| "Jm/ISF08xsp9cG1QX00q/z6TXinem71U9d5MvVz23iz539S9N0" + |
| "verPPeTP69a93vM775E0dEepU7B+C4cGdt/xxMxvVtvewBL9s3" + |
| "TmcNPlphnXHG9W18HgutHb4Zy507SnxfB3n7G8W389+4XMjlc6" + |
| "Gryz2aX6rVi+tC8iGUqZm0+bdhabBdrrv9gJ8PVNQe0oO/U7vY" + |
| "9dh+0HeF9PrWEY9anxVqvlPxjyBTBu57TpzK+x7f6sn4a1trbW" + |
| "5LoNl2ejOnIBbQmKQeW9M6bgGqvibulRqAI32SmpAiMRxBfQC8" + |
| "LY1tn170HTRzq9wW1crxhWcbIMdxna5wuZCX/qYBRDqt1vW4od" + |
| "oCR5katELSyRvlvuUjcJuf72oP6WmthxyeZ3Ttuy4X8hJfnggh" + |
| "0rfW6sf1rfW9oUwNWiHptJ9GEvT9+36+qz2Am3B36mjbK6vXa7" + |
| "rOVK7Xg1O4Xg/WWa/Tme56Le/D687p6FN6e+gbvxtneB8AWTMH" + |
| "eM+GnmdkvKEYZG/C+3DfL9AccP6fSJ27mIkqmrXcHGoOaRtDUG" + |
| "YWh6CdrgIKxeCJHErP/WY1W08XSGlEsf529HMKt+kiUBKxyWIZ" + |
| "qYvHWLkPrg3qa8ab35zvRJHRTErvsFxoAxapvMUxruZ0IfIs1o" + |
| "ei0pDD6UeFLFN88gFJDVunFqpoueX/A5OIGlw="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value4 = null; |
| |
| protected static void value4Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2874; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrVW2+MFVcVn6pFg2kxUASWVogWG6CmiNHYRto3+97IPyvin4" + |
| "oJba1KwhZqaAuJfz7IzMTypl1M/VDbCm2aCibqR6ORAkW71sVP" + |
| "dqUUEhK/mFRiTIgxbVLFrffOnTPnnPv/7S6b+F7uveee8zu/c8" + |
| "59M/Nm5r3J9+bvSrRXvi+/VvQLkqR/d35drXm/aEtF+2eDWFH3" + |
| "N2WTSVJezFfVs5tF+4hoaxrMx/NPJolE4Ku3tLF9Ot+Qrxfjxn" + |
| "xzYn3ld+f31ON9df/1fGc+kl+Vv0NDXZO/r5EWijakou1fli9r" + |
| "tCtp7Hxto721GT+Vd/LhxPvKt1h029nsG6LtSJLixuJDxYJCrs" + |
| "I3xex6uY6AKT7AGco1Jmux1Ba/uMXQLBe1DCUz8ioWea2rbFpX" + |
| "7OIGQ7N6wGzWgtT/arO2h9X22Orv09ZxS7FlyrXPE7UsGcSj/z" + |
| "Un12d8fvuXWddxSTLLr+KuVvqyto7fngbrNrEyq2cl/y/ZtAdu" + |
| "nipfPj4IOn00fUD2qjVbRIXWun8AZT/XYHojk0cHQ9GsVR3u2H" + |
| "5uV2zC7uHJrxbtPe0ecGej/VP/CbGWPyK4V0SbyD840Kf5KsrD" + |
| "8yJ9vuKzDs+TGeZzCX6+aOKYmZ+h+WsrsaDBfsK7jgvyTd7Mtu" + |
| "W7A5/vKPRKkq/siGqgyyaLLrX7ueL1OiqEK3ocRbNOR+3HR7Tb" + |
| "OdV3vSs2eod4SJaHW+kZ7dN4ZQpHl2Z7LJ5NktHrZuX4eMi6Eg" + |
| "ujPsOF043e+aJq9Ps6XUGtvA9x2V6jS+IyCUfgKMzd7Q21uLiV" + |
| "vvglZ3Wzu3jkdt3ZWnP9pv1kj/GtXtn5ubV7H7Gs49KYdcwmwx" + |
| "E4SkowyyZVlsZZ1O3+3JraX0A78MgR2VEK7ont9pg9p1pofWLX" + |
| "dPTgzOy5NKfY88fieNQx4cS09ul/qdZwnQJt/1kbDpGx3O06/m" + |
| "BwnxgM5K90du/+mhju/kf99kGqL15qjykj2jFmozkvL3qP2xup" + |
| "z+iTV/YbRsXSs7TX4qj95Rn8vnu8/XS6Wi4b/HNL9hsoZvS5K7" + |
| "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" + |
| "Hn2Bv8qvwgf45dcqnn2LV1PN14eJ9jz0ZEhOBz7DWqeY5dSAtF" + |
| "G2r1tufYT6vn2IXV+xx7xv6PD8+xg7Zm30416jn27tnuWbFdno" + |
| "Wx3lLPwrx6AjQUg2+0UH2zvTNJyb1Tujei2L5i8HMNj2ki0BOx" + |
| "Mjav1MRjrTwHMwbNtbZNdCfEOAFjbZmAefUUaCgG32ih+oafSU" + |
| "ruHdO9EcVyM/i5hsc0EeiJWBmbV2risVaegxmD5lrbznTPiPEM" + |
| "jLXlDMyrMdBQDL7RQvUNP5OU3DuheyOK5Wbwcw2PaSLQE7EyNq" + |
| "/UxGOtPAczBs21tl3oXhDrxe4fKF33gjg+jktJythgTmfKBiPV" + |
| "asfHcbRRH8tKCn11GiPBG/l5DHtkiu2N61p3dBohpKORO2+qxq" + |
| "9nOm+WHe1qrMYBsrwj5uoEeUUtUf/v4T4xGMhf6ezeEDvE7bdj" + |
| "9Z7fcPYY14VdO2LKvxf+fjZ+ibdneWVjd1Z2Vqq+sxI1MM+e76" + |
| "yUjep0SY7KT2+csa7lJcDaGGhO1MLj1+ccjpx0TowGsU1emimv" + |
| "AyPSaKjj+FpeLd8t02rVRL5HVQMd7RGLo67V2XsvdiL+gwRoO5" + |
| "vOCTlBVqinkoxt46Y6Xj2vkr7dWaXzVeP7dTq/3GjDITJqLyPo" + |
| "3suD+8RgIH+ls3tD7BC33+6s/n8huOHl"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value5 = null; |
| |
| protected static void value5Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 3020; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdW3uMHVUZv2hLxBet3VrX7bZrbbFgmy4kPrCis3fura22xR" + |
| "IJ1i2IFIomKinWUv8Ae+6sdbgmhhiNLXQLWxMftTUoJpXEB4rv" + |
| "RwRjA//KH2aTLTQxmxCMNp4533zzPc6ZubNlrwbvZM7jd37f7/" + |
| "uduffsnbmz0z7fPt9otM+3XQ0v6GX91ilAOYdG+a57wON62OZI" + |
| "Vh78YMN76Ry0cYbvCcYPrtTOaC6+LmmRQ86Q85cuOD97RSuyDU" + |
| "eyFvTSOyTGS8Kp1qivLkfCL2RXxZAmekJXhPNWo3FoV0ibY3L2" + |
| "cpZ8C7ky+8wCWy40F5tXFNirzWvNpWaJPc5TZqA9ZZHX233ILE" + |
| "+223rErDJrzGW29Ra7r7X7FS5qnd3X2300V3mbeWfeusa8x7w3" + |
| "b7dduclsNu+z9RbzgdCRNDvNjeYmc7Ntfczut5jd5uPmE+Yi87" + |
| "L8MzBlLjGvtCOvMYvMYlu/ziw1y8wbzSB8Hs1Ki73J7pc7tQ3m" + |
| "SvuZ2Guusu13mLebq2290e7vNpFp2jo2rUYj2Zbnfr/dt9rd9s" + |
| "12c63Ddtj9Q+Z6c4P5sBk3u4TXW+1+W35sR7KteEdGYLdr4aTE" + |
| "eEk41Rr11eVIyedxpEpNa6IndEU4b+FctDbH5OzlLPkWnONQNA" + |
| "Ql1NjOtnggHoiGJu4khI/7UdjiCOaAdqbHEa4gPYUdIS/9TNiT" + |
| "1EQ+1JDb1+0clx50Vpmfq3J+NBwN23oYa2xD/95/SIT3/Chscc" + |
| "RlGsZ2+9tQhxTYcRTZdH7N0Z51jU4gt6/LvQNbZpW5uKrk+6/O" + |
| "37GV7KhegWObeq1RyUg/2+jrC7KFXaX7+pk5Go1GoYxGCcF+9+" + |
| "U0iphuZTXE6V0qurnchdyQAvfER2R+zZEMqUnZbO79/ihF8Owy" + |
| "q85GmOQ3Gs1zgEDdPIefx+a55IZGY2IAxzm3F+KjGSbR9IAfpT" + |
| "nhbBNLqxwcXKnnpFm83Tle7T08E92Kj8RHoIQaMeh3FyLCObTR" + |
| "CMdJmetxVGvhGLrz9SXi+9aqGEnc9G49U59Pc5Ue/Bz04rHyFX" + |
| "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" + |
| "r+SPdc/Dk9/a/ffJnwrgP4etwLY="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value6 = null; |
| |
| protected static void value6Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2520; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrNW2uPJFUZbhVdJCqKEGJcoxH4IiaaMQsJ+8Gq7mlCxpWdhY" + |
| "bZBbwlRk3koxsTvk1XCeNOor/BJUEl4ZKNJstHE5XEb8Ky3JPl" + |
| "koVkFzEao8tisN96+q33Uuecqu7pxqlKnTrvc573eZ9TU7fume" + |
| "n1aMn+gw3L6q96U5R7vIAnzC4Ls71Wl5zYQlqaw/6BhbNlVjup" + |
| "nZ59/klsWDaPMlo8G+IJs8vC7HExe05sKZ6zHPYPLJxdnOqmnR" + |
| "5PzX51lO+ZMPZIPM3ZQz2OgNAmzE7HZI+uFPcQy+miy/6BhbNl" + |
| "Vt11Q6Px8f4FtLSnFjEjxRnglcoR6SPWkeixRv9CfoQ4Wi/lAp" + |
| "kpHljFK1qNnbMf7UqUNKL1x8fD3v3R8bUsXl3zL6ClPbWIGSle" + |
| "A14dt3XpI9aR6LFG9kK+ThytF73z1NVTPKnvfdIGP9qVKGkkpe" + |
| "+rczVfy+K0DPahpT21iBnBOHr5Qekj1pHoSWZ+kDhWL7xI9RRP" + |
| "6nuftMGPdiVKGknp++pyDGwtiyv+AW7RC2H57YJyLJHXon1+O3" + |
| "IsnloGB2hNM5gnGUDhR1cMeWqrHjsuvqrlja8dXzP+9PjL02iv" + |
| "PK8nV//+3sKW8RcWqHV1cvRLwTtrZC7jzy3IU+I4bv2lQ/5ng+" + |
| "hXdttxLH/U9TiOr5/RzYo5f9e5HaxbrDjLvXwkKMcSeS3a56N8" + |
| "1MSTV9Y6rWkG8yQDKPzko3hWm4dmbTkuvmrjjP8bWtpTi5gRjK" + |
| "OX3yV9xDoSPcnM7yKO1Yu80dTVUzyp733SBj/alShpJKXvq8sx" + |
| "sLUsPnlyn8bKETYsx34zz1XX/3HwjeL04q7rtFZ4NOxqkb6yF9" + |
| "HSnlrEjBTngFfn32HpI9aR6LFG9mJ+mDhaL+UCmSme1Pc+aYMf" + |
| "7UqUNJLS99W5mq9l8fRz5thv53nO9O9b9nOmOD/H8/q+ZT5nhm" + |
| "eGZ9BiTzgi6h/7AyOaI6uMaDx7nVVQh7la29b1S1PfIk3fXpUz" + |
| "hZu97mfa5MtcrYdmDe2Vc7OX0NKeWsSMYBy9/JD0EeuovhJeks" + |
| "z8EHGsXuSKqquneFLf+6QNfrQrUdJISt9Xl2Nga1m8OuPPo6U9" + |
| "tf3zjPMIc/I7pY9YR6InmfmdxLF6kadTXT3FA6v6nsL5pA1+tC" + |
| "tR0khK31eXY2BrWbzqv4eW9tQiZgTj6OV3SB+xjkRPMvM7iGP1" + |
| "IjOoq6d4Ut/7pA1+tCtR0khK31eXY2BrWbx6o7wZLe2pRcwIxt" + |
| "HLN4TPsURasfgn9vkGcnSlyBtwXV0cxFjanThnP9qVKGkkpT/x" + |
| "/g9fUWdzvsWra/wNtLSnFjEjxb+AC5f7OtsirOGZTa7VQWaKJ/" + |
| "W9T+3QRx5J6fvqXo/z/QyT7z1/mue9J3tUv/cc+/PueO8hV8v9" + |
| "fF1Uv7kZrBXvUlt+cLA2xZ9Cj1rGOI5FFvNjIW59bC72emWveG" + |
| "+wRmuU9W9WERZ6tmb5oem3E5eEPBXvRK/rtbBnW6u4UNf5gLqT" + |
| "nkNLe2oRM4JxwaSvsy2iMy2eeM7U1VM8qe99aoc+8khK31f3ep" + |
| "wfmmF1pG/jFj3BbM/2fWQxPxbiNnNpTTOYNz3nPqxdx3LbxqV6" + |
| "7LjY8abO4Ea0tKcWMSMYF0z6OtsiOlN9A3hpk2t1kCkOYiztTp" + |
| "zb2Xh38RmEvfuj42s1ZzjYj5b21A72M84jzLF9nW0RnZnm2jFk" + |
| "ioMYS7sT53Y2vmJ8BmHv/uj4Ws0ZZs+jpT21iBkpPwpcuNzX2R" + |
| "ZhDc9scq0OMlM8qe99aoc+8khK31f3epzvZ5idxMoRtuk7y5Md" + |
| "vnU72UBe7cbbwTd9J2cfDbtapK/sLFraU4uYkfIy4MLlvs62CG" + |
| "t4ZpNrdZCZ4kl971M79JFHUvq+utfjfD/D5Hv43+f6/vGnu/H3" + |
| "XORqOe/hdYW30NKeWsSMYFww6etsi+hMi6ddIDPFk/rep3boI4" + |
| "+k9H11r8f5fobZE1g5wjY9Hzv8hZ6wa+Thbrwd3ImemH007Gqx" + |
| "vqon+Ijbwchitmf7PrKYHxuM2n2UHx+M0jx2at3FarZ58iw/Xn" + |
| "7MZsd0UvfH7Y/M9T3FY0He//n+GHa1uL+nyJ7EyhG26XH8fJf8" + |
| "xj3maAi1yjv1PPto/2hX9rwuBxla2lOLmBGMM1Z+Svo621wJV+" + |
| "jMNNeOobo4iLG0O3FuZ+MraiSl76t7Pc4Pz3CC3MotejHM9n1k" + |
| "MT8W4jZzaU0zmCcZ8ZptnprVY8fFV22c8W+jpT21iBkprwQuXO" + |
| "7rbIuwhmc2uVYHmSkeWOVVWo2d29l4d7EZuL/HbVT3epwfmmH2" + |
| "Drap8k8Y3b5k0p7QvOzEZDPfghZvNu4vJ7z2zPe/lpzhu5bD/o" + |
| "GFs9lVm3Z63M/eLvkN2LDU/69ww/DBiecHPU+Y4WXrlNeufjqz" + |
| "/L9CSwXypDnsH1g4e+vpbtrp8fbZ57/gFr3qef0JO9rsh85Hz2" + |
| "jHPasLT7O067baae1YbcmO6STfH6+d6/3xkd34+ZpcLefzNf2e" + |
| "q7wueRyvm1wP5n+Rtk53OI4P7crj+NAyj2NoWa2f6NufmRw586" + |
| "3m1nOeHXjOPN9b8rJ66+yjy3c1qXERm33OZBe3vxriCTOi9prP" + |
| "qX5ql8/mJ3kGHLAc9g8snM2uWt1fTI+25ee/5Ba96ny8yY42+y" + |
| "mt7rhndeFplnbdVjutHast2W06m5fWn+vq6317GGR+seUn+uvo" + |
| "dzlf63Y+bh5Jj2/fPOFcpvhXTLaru7nabHlv2VxLjh7evDd4L7" + |
| "ll9Ra02DM2jQ8xojmyUlS86fHscVEWPd23WmFX4sjnhHx7Vc4U" + |
| "bva4n2mTL3O1Hpo1tNdqbGN1Y7Lf4H01ssHx9kFGNEdWGdH4VN" + |
| "/00N962WcLy3hr6FvE1mwyJFO4D1zjZ9rky1yth2YN7VVy833Y" + |
| "pnfxs4yWX598gvy9uktUvHzfLM+w2djdcsiT5rB/YOFsnocf1f" + |
| "Nrrx2b/XBluIJ2uCIIx9u3DVf6vxNEuDoLmdyTzSpyXyNWQXvS" + |
| "I7Z+NfeIJ68p1ZDjR2mFlq5uq1pHGrP8wL1U/r/wZ403jlPtZx" + |
| "NlBd7Dn1nce1qZJd+K/hpz1fG9+vrFuBzXv5MtB+3s0Ofr6BH+" + |
| "4yL8zafSLWvrv4v7aavz8f65HN/f24XLcl319/b3osWesWl8o0" + |
| "WEy2zZvA56ks19qyAj1pNXEsRzLEN7YL7MJaQr3rXDpkvvwvMD" + |
| "d5/6P7TLby7uui7pu/+7348zr/xG8DcGnWr//PK574ap/78+N8" + |
| "/3ZhW6+/7/+oH3+/ue/nHd6x+f+V5xvNvI7Mo7yYzlzO/C/JR+" + |
| "WN5dfqc0n2fL79Xn49tzaX4riH5/sv1gQVfuPcnR785yPjrWt+" + |
| "e09D+UUs01"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value6 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value6[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value7 = null; |
| |
| protected static void value7Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2001; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "hXHsoLV6OclWermKSoPDKOx1M+5k23HcoJ3OTnDA/mP9Isurgy" + |
| "OW1oILE2sXtJM7hvNmvI/Ll9B93PosDa+9Hd3KPq57oaUdgCzv" + |
| "U8Rw031cfou99/Yqx6LvsJdw3B/2VrJvx+9sPj/y26O2nMfvTe" + |
| "/fymUNfcM/LPkdTVnR/3b4fQF3WHqwIbkV1S7j9yi6DzQ8aPRs" + |
| "fluY3sXvbuk+E/2fq9419L5TR3ud7mkF3mdy54Z9s/rVlu/XI1" + |
| "r6BmZbjeOIvOOI5sdey31ieIH9cXiBcdReFNB/nzH3x5j3AEZZ" + |
| "WuFmeQ8gNbet9wD4U1Ecb7A7rsvHiuuP7eeujomdH2/0azsszo" + |
| "/nFjiu28pd7in3iFTkUiau6/OlBGPgAzVYji2DvbC0X9UGlOoV" + |
| "tU8lut+qVamJsPvVlup4aCv1QefAvkrd+P7In27eH/8vR/Xs3B" + |
| "mjJ/r6AsvrnrEFjuu2cpeXl5eLVORSJq7rC6UEY+ADNViOLYO9" + |
| "sHRI1QaU6hW1TyW636pVqYmwh9SW6nhoK/VB58C+gm7sumeR5T" + |
| "4xssD+2F7u/wCAA6y4"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value7 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value7[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value8 = null; |
| |
| protected static void value8Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2456; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdW12oHdUVPil5ECGl/lVoFZV4EU0bewO5JCK5596Z0Zoqtq" + |
| "WkRpra+lPbIojG4JtmzrnH3LGn9Qd8KSJcH7S0EGqkbUAfBBGM" + |
| "Qikp0l6hKBrT85LGPhSfGtx71qzzrbX2zHhynZPBzGb2z7e/9a" + |
| "219pmfM3PujXfFuzqdeFdctJ0Oj3x/eBsjkoOCGYl3OqyCHvWT" + |
| "DdYaLLmF+hrRPkMGLMH1vnWmIR+56hhCHzLWfG5nvNO1O7nNZ3" + |
| "byeLiHEclBwYzEC33Vo35yvrUGS8UW6GtE+wwZsATX+9aZhnzk" + |
| "qmMIfchYae9d2dvYu6D3DUJ7l3Q66T7mDO+0GQ5etEjv652SrX" + |
| "dtgFzucjm308jWu7h29poytMp379IA2XSa0WxxK7k33ks1tfkK" + |
| "7+Xx8GFGJAfFj/ojixefk+pRP+taa7DUZ7xXRmRtoF4VEyzBXX" + |
| "7WZhrykauOIfQhY4Wt3nA8Js90zppturnE58TnUE0tYzTOFhmR" + |
| "HBTMSFwqQ0/2tVZ5VFpfI2HcVpUtwR2ss5mGfOSqYwh9yFhha7" + |
| "LYEPYa+tT+097xOG3fdfeZLJrA/jTuM43FvIb7zNKBSe4zg0Nr" + |
| "u8/UXx8HLzd8THzc4vF4xn33jo/X8c8N53KyxXU82eI6Hm5WOb" + |
| "ulvXVcfmiq3wZuT26n2reMUImui67DLGPcgxVZco84xJOKvkd6" + |
| "0lIqyJjkjPQfcjRDa8Ib+w51eR7KOmvrDRjzbfwlx+OrDZ9bv2" + |
| "nxvJ6q72R3sptq3zJCJdoR7cAsY9yDFVlyjzjEk4r58biDuWUK" + |
| "MiY5I/2HHM3QmvDGvkNdnoeyztp6A8b83GY1WnU+VrnNs10tyr" + |
| "wrBTJG58ezYwupQRw3micUenkvsAZLbqG+RrTPkAFLwZ23mYb8" + |
| "gj0vNUvyW9Wx5nPHomNBFjnm6k2uHCOE92gTj7kGX3K8pVX2er" + |
| "AouCX+oQlPXMpZ8B6iwrtBq7xHm6SHstjsqDwHvj72jw5ea/ga" + |
| "9WSL18ep+o6OR8epppYxX/pHo4QRRpfO41lYSI2cc74bJYRCL+" + |
| "8l1hosG5XW10gYt1VlS8FNbKYhv2AnUjPMT0fMttXPhf2jwwOf" + |
| "/7lwuIznwvip9p4Lq3w38/6xbBu8Xqz0TDTjnksfVKs/M8ExPl" + |
| "POI71Gvs/fvIYzr8J37/lJmWt9nnHXxzcavkb9qsXr41R9J9uS" + |
| "bVT7lhEq7rzOMMsc2/Mt2dldK+a57GdumYKMSc5o/5ajGVoT3t" + |
| "h3qCsj1XnAo/QGTPKT7cl2126nNse3c3Hr+FvMMsf2+iOyJETu" + |
| "WjFfxx5ztV9m2gigBMRyNENrwhv7DnVlpDoPeJTegGm+37qX+c" + |
| "JKvkej4XMakzXj/RHPS1SuC9TjR/VM+cbscjWryTFxVMBlz/su" + |
| "05aYzl5nKUtNVFf4ghHt7nh8UWOyBo7WolY9fkLPVKzjFXVqVp" + |
| "Nj4qiAy573XaYtMZ29zlKW6qgq7zNHGr7W91u8z0zVd/Ju8i7V" + |
| "aLm44/F3FsVIWkFH7r5mH9SPf01tmYKOyWoDsRzNCLU5EvId6s" + |
| "rYia292lWBquQnq4l7zvY1Wi7u+vgni2LEPXefKfq+lntSPM8z" + |
| "3+WyRK1WIL5YR+XN+rcczQi1ORLyHerK2ImtvdpVgarm157Xf2" + |
| "343Hq8xfP6jPsW6/i3hnNZbnEdp+q7u7W7lWrfMsLj4UHMMmZ7" + |
| "/RFZEiJ3rZjn8ghztV9mhhGE/i1HM7QmvLHvUFdGqvOAR+kNmO" + |
| "R357pzrp2jNsfnuLj7zB8xyxzbc+s4R3Z214r5Og6Zq/0y00YA" + |
| "JSCWoxlaE97Yd6grI9V5wKP0Bkzyo5VoxT2Zr3CbP6evUHHr+B" + |
| "IjkoPiR/2RxYun/XEfvfiAtdYW4zcFKzIia8OM6phgCa73rTMN" + |
| "+chVxxD6EG81VmTkaubg+J3Xy1Uz2Oh5pp4zvkY9Vu+voXeqBy" + |
| "f33eBdpe794wR/B3A6f5cSZy2+f8zO9PtHcb9+p+F75tMt3q/P" + |
| "uG+xjv9oOJdBMzqDf7bnu+Jacig6RDW1jPnizuu/MCI5KJiROJ" + |
| "SlXp5Laq21hYxK62skjNuqsiW43rfONOQjVx1D6EOuoIxcbuLv" + |
| "9r7fOWu2pQNTPouvrF7Hxe+tWfXaqa7JC7WzfyhDq3LR95ml35" + |
| "/+fSY/0zbHm7mnMb9nPyCUx5objjQHitojzcm2Oi6uudRFjz3M" + |
| "yV1TFy1a7V1HW+VTey75Rrh+/Bn+sPQqP5r2OTg4PgHnfdH/wO" + |
| "3/rudzLoMPP0P3vdrZYxXrPRPPcE9jfs92E8pjzQ1HmhPPlHuk" + |
| "OdlWx8U1l7rosYc5uRW4yaLV3nW0VT6l5/ShdH14fUy/7OoL3P" + |
| "PM4fTCHPmq29337fThgpErpVfR80yaf+9N3Tf59Jtu/1bB2Zpu" + |
| "s8rZj4u5G9Jvpze69qb0O+Xxp3vSnJv+NK/vSn+e/iJdl37JsD" + |
| "akXyl6F7n9a2O8+O0kvVr43pMW35fT4lep9Pq0my7Wr2N6awn2" + |
| "IzW62+33xLPxrFvPWW7zFZ7l8fAVRiQHxY/6I4sXn5PqUT/7ib" + |
| "UGS33GszIiawP1qphgCW52h8005CNXHUPoQ8bq9+RUcqoYbxy/" + |
| "a84xvy+8SbM8Zi5QPaI9uxcq7nx6wKzRRppLTg3u9/X+75b+3n" + |
| "FK+iA+Ys1+plnw7tX3X6Yjo41zkXHDvvJ3l2A+3qgxuS5V95mF" + |
| "f332faY/+mLcZziXKd1ntsRbqKaWMRoPX2VEclD8yJ3XBs9+CW" + |
| "Xoyb7WKo8KEVmbsritKluCu/x3m2nIR646htCHjJX2uv9Dmugb" + |
| "9xfk/5AWHpvke7hnNfZ/SOP/9lh4o3PWbNPNJXo7eptqahmjcX" + |
| "YfI5KDghmJQ1nqSVRrlUel9TUSxm1V2RLcwT6bachHrjqG0IeM" + |
| "Fbbl782c7/82fEysb/F4nLLvuvcUn0O19D1F9mB77ymyB6b5ni" + |
| "I6GZ2kmlrGaAxEclAwI3GpDD3f6/7fWoNlo9L6GgnjtqpsCa73" + |
| "rTMN+chVxxD6kLHCtvK8/p97vv+ouWO/Ka216FTZNBNTciQ5Qj" + |
| "VaLjSvUYy41x9xn9mwgg/0JYLWxiRnbEyaoxmhNkeS9axHyUQM" + |
| "1qtdFbkykl97PH7S7LU4a/Hv9pZfmqZ68lbyFtVoubhjfsGiGE" + |
| "kr6Mjd1+wDfYlIBR2T1QZiOZoRanMkMhepK2PnCMvytFFofvdE" + |
| "94S7Bp/gNr8bnODx4o0aAZfZ2K0O9WDNfa2AGWzamxyDq7GwL7" + |
| "WRS5kuYpcRhlHaKAz/U2mlUlI="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value8 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value8[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value9 = null; |
| |
| protected static void value9Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1672; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdXE2IHEUUnoMHGRQl6xJ01x+SFUWFQALrSZjunrmI4HU9KS" + |
| "bBi17cSGAxxu2ZnckQUMghxyUIESNJxIsBUSHgIaAuCsp6lBxi" + |
| "1MPkIMSfCHbN2zfvp2p6e3qru3e3m66f19/73lc1VdV/m9Rq9t" + |
| "Zeqe3CbeXvLKj2KX8R23eNYv/rty39fnX92LtTTpzlu7HUOThq" + |
| "t3NkLu/LG6N7f0YtL2XA1Fl5T3Ls3WQ8ntnAzm/C+3zq2YXl11" + |
| "324FBwCFLI0QZ1bSEsounQPMhA1uR3eU8zEEpq0kxck8RIBNdA" + |
| "bTB5746bl7Qjs4wqY+meIbxj1EyP1C5mWAVu7oz1MUtbkrbv9R" + |
| "ex+9B275PuTA6fBzOhZvMpatxq3IIUcrRBPTgmLYRFNB2aB0rk" + |
| "jWXJQGekJs1EFo2RCK4B8dQWFy9p5wptlVqFatGgMUjyAebDMw" + |
| "Os989IC2ERTYfmgRJ5Y1ky0BnWjwMdg1s0RiK4BsRDvvKxm5e0" + |
| "c4W2Sq1C4+0tvjEa5Y/6XR+be6pbC4qNHd2ObkMKOdqgHsyhhW" + |
| "NopzPczpmT3+IebcW9W+dntCrJLy22bokgT8JCW2xejqe2Sg12" + |
| "DK6VfGu11vHWcZNCGUvBAe6BGDpvcj4e0So340H4LL8u6RjnIx" + |
| "kxAvfjdZNDW9CPcxIX99P+EENiN7lm7Stq9Acz1c3r/qWyI7L1" + |
| "8XHP/ThbXT+e+rT0u7MnRqUnd897iv5nZURpLbQWqAxHMn4esT" + |
| "GYEpYjxnFzvBtl87hjaL2oiZgpxZLJTVtICefkbSc/3UrwldhN" + |
| "5vWx0W/4ye4Zj917y464/JaHNfaAZfnJ45u9C6mxf3CuzUcyre" + |
| "AJKn66+H6Mf9yx/Xg4Uz8e9tePNK+37TXjixz3Cq/4Q5U3rx2/" + |
| "zn0euV7I0Y+v+kNl7Mf/Clvrn6twDH+ZCfXVTujHKrfgZX8oew" + |
| "unw2lIIUcb1LWFsIimQ/MgA1mRT3O5NGkmrkliJIJroDaYPDjq" + |
| "5iXtw348qqPKWLpnqAfKHI/NXyp8b1ZC7NazZqcaHBIBKErRDu" + |
| "97oE5WN3vzuuYdp2Y8m+ZETahK2omved3FzW2y9bKVfHepaiw2" + |
| "FiGFHG1Q1xbCIpoOzYMMZE1W8a81A6GkJs3ENUmMRHAN1AaT9/" + |
| "5y85J2ZJZRZSzdM4Qv7b6nnYyJs57uw3/OMa/PFrpqnGuegxRy" + |
| "tEGdLBxDu6m1b2o7Zya+4Sp+SXsTSqsiRdrHpVuzoidhTWzZUh" + |
| "tPbZUa7BhcK/mW9TwTXKjwvqfg2PFcvD+eip/ZqM1OOq/jmYzP" + |
| "148lbfH0/ihO/VofP+XsxzGx44cty4TP1/HBsp8L+99W91zY/2" + |
| "Ynvjdz92NwucLn68u7pB+T63VwscL18eLuGY/Nj6obj75ib4t+" + |
| "PF9hP54vut/CAc/DQafN650HwoGN3cwSDlxxpLX/ne2lMe5one" + |
| "l0BbpNGsXL8QfpLUpjd5/NMh7jF7c0Hj8sYzy+6/yrJF+x88zr" + |
| "5prfee2NK8+8XquqH6OpaCqZfeLL1ta+cxk+L8/XOb5zjYttz+" + |
| "syvhdOeK+xVMR4DJZy3T8ulT0e8fk6momSZ77Om/6YI09/J9X/" + |
| "3l9sezz67sdarfX21tl8cPjYitbR+Bx2rMGxEfudLP7pVuSQzF" + |
| "vVPPnZcW2x0b5U0vrYOuFhHJzYHtdrH23J3Y8nPfTjSXq+9rXl" + |
| "eR/uoy0pd1WrzVVIIUcb1MnCMbTTGW7nzMQ3vPtf096E0qokv7" + |
| "TYujUrehLWxJYttfHUVqnBjsG1ku9W7nuy/nsFf+MxvJpnPIZX" + |
| "M90J3NgJ7yn8bL25XO9xf632fU94xeMbkSvV8Yzz8aWpzO8z3S" + |
| "OeNOf4PtP/cwxafJ/prOb/PhPVITW5SaM62k2p+xrYCRvVxXNC" + |
| "3XpyGHFopI2VPOCZhqP4WidXqGvaksavo2s+9He1sIz1cTgmfq" + |
| "vueaa3v+Cn6RLndXi6unk9Lra/eR3+A6nJTQp1tMB5slGZe0sL" + |
| "95T2lOvAKHoajuJrnVyhrmkL55fvKezomg/9XS2UW/eNwub1H2" + |
| "XM4K7zf5Do/1503GgeUpObNJpHO55BjCxzb2nhntKergI803AU" + |
| "X+vkCnVNW9L4dXTNh/66hY1rsGMNjgnevVzLZp2cedKY6Wdb72" + |
| "dBG9SkKgFf5nWm5enfnOa5zoyL7evvexrrsG/07TocE/wa69ms" + |
| "k7HmiZl+tnU6C9qgJlU6xP8P+BK/bA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value9 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value9[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value10 = null; |
| |
| protected static void value10Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1853; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "G38np1Oeb4glT+C6a8h5s="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value10 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value10[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value11 = null; |
| |
| protected static void value11Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2132; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value11 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value11[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value12 = null; |
| |
| protected static void value12Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1259; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrlWkFrE0EUXhRLEdRDDx5ULE1Qaa0FEaW3ZpNcSovUS4viod" + |
| "o/UFBp8WI32LQN/oNCwYMibTREClIvHluEUrFaCl7ESy968qAF" + |
| "wSTT6Zt5M5PubmZ3NtsJ2Z15881733v7Zmc2Wctykk7CaXMuW7" + |
| "XinLWsqYeWh+KckUp7BEm7ZaVvW1qKc7pub6dMqrLtnGNb+WsV" + |
| "SZdHNldrxzpxzGz6jaME125pK37iqPKFj2MjJXcSaX6wf3XSld" + |
| "42q8nKk/NSL0+EzQPi6Ooq7Ajjiyps9rW56AZr2+6wO8iRnKmM" + |
| "tDOfeQlgKdruyO1QKa+H1GA0rfMaoIfnhDWBBGN4BMuB4sEXmV" + |
| "7gzjIUWWIWGF8vHzNf9eajyeLGlwa0j2XGyJGcqWyvvUUlLAY+" + |
| "0MPKWc2gj63zuuSseP28ROSNtdKRDHYLeyriwVeeg2iD5Qpj+Q" + |
| "Lr9dxPKzZlZingVaXOvifVi9FPXzayfzS57xF9Ue17/OwfM+OZ" + |
| "cXIk51qmjtM2SFgMfKCHle/lO1fj67wuybwW9PMSkTfWSkcCdn" + |
| "YXeyriKzPwF7Yq+sczhrHqea19d3Dc3LwO37a3OIrrdR1fWgzG" + |
| "scXc/VEs098auT/aR83dH1W20fP1Hb/P16HOa4PrdbC27X67nx" + |
| "zJmcpIG0sAS9HwxXqoBpBWaq1YA6B4TlgTy4nH8AiWA/hQa7fK" + |
| "9QJ3qpm3ytvCkQG8WPJ3A7tqRwzmY6C2s1PZKXIkZyojbSwBLE" + |
| "XDl+lLgARG12oJrAFQPCfeBivBGB7B+gI+1NoJuV7gzjIUWWIW" + |
| "4B3U0X3zXVBXbe6vuXyc/RjtfY9kBj2K4nNhsKzy9yWyew0yfu" + |
| "yRw2gocXwc6P2xUsiRnKmMtKv1mS2QAJai4Qt9fS9AAvpondcA" + |
| "PTwn3gYrwRgewfoCPlTPVVYyvcCdZSiyxCww/qDfw2e2vV6bvu" + |
| "0ozuvwWXn7X0EygyYjeX+cbLY49i1FMh+Xmi4fJyKZjxNNl4+L" + |
| "kczHRXNxtBcqe+ddz1d+wXuPt5L77iMfFwzGcd7XDJr33hPCvA" + |
| "7dNv88M/dD09U5VfHlvSZdAz7iqLDtPA/n/qgrjjVfVgzm44q5" + |
| "ONo5X4xzVgRL+KwaXa/VpXDMXBzziWjH0dP/XKtaMms1vFERje" + |
| "OaljiuhTcqmnFMj5qb1+HbDjCOwwbjOByjOI4YjOOI2TjaZXVL" + |
| "cScqy3F22c1oV/e6sr4xon+6WKI4ltQtBbOSHGeX3Ix2FZOSvj" + |
| "Gif7pYojgW1S0Fs6IcZxdtTW/q+tGjGsM/z6i4R2wffsHgPvxP" + |
| "fJ5n9JTU7/BG6Ylj4ZIVm1K4aDCOnfGJ42yvuThm/8UnjkH7Uu" + |
| "890uxNF+Ob5D17lS963rM/IB8HY5SPg809rwvdh2Ne111nemK0" + |
| "Xl8xmI+3YjSvQ/eFWWeGhBhvurwW4jrzRR/D3Ku6tj9J4zjkOo" + |
| "+6tOfjQIzyccDcvNZ+j7pu8Pna2P9c6e50Za0t3GD70i5W3ypG" + |
| "hiP6tMxrH++luLeti+V+HJPppGAj6YJHUo6T6QuvuLeti2XUf+" + |
| "/xV1If9KEOdRzf6kNJVrH17Do5kjOVkTZIWAyLZkexLaoZ9NE6" + |
| "K2F7MCvWBnxUvHnOmFn1nFrGnrKj9+O4zHuG/RcZsz6j/eP+E1" + |
| "RqA/dNv2lozXxmMB83AlX/H1f43Cg="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value12 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value12[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value13 = null; |
| |
| protected static void value13Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1581; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtW81rHVUUn8SFWBAXpRFRIdISgh9VJH9A58570YXYRUlUBM" + |
| "miKzfaki7cKL6XpEmnjSUg6EaCO1tBuhJFkbjpwlVRF7UiaCi8" + |
| "TVduBX0z552cj3tn3rzJnTfJ2Bne3HvP/M7v/O559775fEFgL5" + |
| "3lYF9LHAYHcFn/edwROz9iLfwpaMxSbV/aW+0t2EKJNmiHf0gL" + |
| "YRFNH80DNfLGumSgPVKTZiKLxkgE14B46ouLl7RzhbZKrULj88" + |
| "Zjk5bwAX8oezFLZgm2UKIN2tpCWETTR/MgA1mRT3O5NGkmrkli" + |
| "JIJroD4kZTjh5iXtaR4ndFQZS2eGMuAYj1erGhOn/qlvPFYbe3" + |
| "5ifgK2UKIN2mThGFppD7dzZuJLj+QvaW9CaVWSX1ps3ZoVPQm7" + |
| "cU731MZTX6UGOwbXmu6bnJ/sl5NYpnsmsZ3UTQ/shKGV9nD7gF" + |
| "/UoG562ptQQpvFLy3Ak62JPElJ4iN7CnXiwtgyqt0/qZj7yuXD" + |
| "C1hrnRo+oru9gmdTv/qbRd0vciPdcp7VvjruXxLKo3nZ41lpzX" + |
| "n02ZdR8+j17L7mPIZThc57pqrIY7xoafylYNaeP2h5XHu48Df+" + |
| "jKeRsxw0cAkf84cadTyGR6qc1/FrY53XR6r8llp3W3dhCyXaoB" + |
| "2/gRaOoZX2cDtnJj5el1xuVZJfWmzdmhU9CRu/rntq46mvUoMd" + |
| "g2sl38zx+FCD5nXFfemc6BzvHO08O2g9IfL4XAH/xwseZ6b7v/" + |
| "VnPWl+NHfv0848ZvSl8yRvrXw2+nGm82J/RO62dmELZTpSd7Ed" + |
| "PoUWjqGV9nD7YLyLmqxLLse8tvilxdatWdGTsNAXm5fjqa9Sgx" + |
| "2DayXfrON1+EKD5vXY+1LRefgjHrleGd3n0tdFUPHS/TwOGY9v" + |
| "+UPVncfwWo15vNaceR1erzGP15uTx/h8fXm8eLyuPEbHomP93+" + |
| "cT/vKY8NWVx6zYnc8P4Xi88H8cjxXk8b3m5jHvurCQ/wjXheZy" + |
| "fdeFWbHldWFqKXFduP/xWPj5jLfzR7NTZjyanULn4e8fhnnd/q" + |
| "q+ee0rtp882s8V3OPR/Vxh4zc/Csvcx20Vft/M13OFZl4Xti/7" + |
| "Q42ax3i9OXlc/3Lc8xrvm0VT0VQQrJz3xxx5eqoZL/uLfRjPw+" + |
| "scj/FGc87DzYP15dFX7IOQx/Df+vLoK3aZPJrtUufJ25njcbvG" + |
| "8bhdZc7MGXMGtlCiDdraQlhE04f2hW+ThbyxLhloj9QkY3BL+l" + |
| "t3RdrsOueGMlHl4iXtXKGtUqvQeMe3Ld7HjT/w+K19H9S2VBvb" + |
| "bJpN2EKJNmhrC2ERbTa7PbRKHmQgK/JpLpcmzcQ1SYxEcA3Uh6" + |
| "SMP3Lzknau0FapVWi8I7dXeW308Wgy3y8339U4Hsce23xs18r5" + |
| "W+fCP9SXx2Kx4y3/1zP9jKyUyuNKcACX8asyn9q1nHsvvWx/a8" + |
| "9NL/pujs9rXzo/sWsj5THTKzpb47yuNHar3WrDFkq0QZssHENr" + |
| "0ur2tJ0zE1/al0XtTSitihRpH5duzYqehE1iy57aeOqr1GDH4F" + |
| "qTT3uuPRcEyTYp0ztwc7hCy9wgC2+RFyLxk2AAxxn74/RGYuUW" + |
| "ybB3D3COx+BtxElN2oN7Ih/46L3Uo725NNBOnFIRt6Fard9xXX" + |
| "g0aMxSbV/MaXMatlCiDdrxN9JCWETTR/NAjbyxLhloj9Skmcii" + |
| "MRLBNSAeykvvunlJO1doq9QqNH5c93vSs7Nv6xuP438PoPP34A" + |
| "g3E83o91ISy9Aj44wbB3w+lu6fJY7XGbHt++FlVJoFswBbKNGW" + |
| "rNHJ6KS0JDasAZo+xJNgAEcxkjrycQZCSU0yBrdojETwviAeo7" + |
| "t5STsyu1VqFYSnesZ4nI1m9fOZxDL0m59144DPy+9DiXs3WbEd" + |
| "47GUytz/K1hPgtd+t/yHvJeyem5gmdaY1XdK//KU+b/CrQy0eC" + |
| "/l4ptl30vJzeOdBuXxTpE8ru3s9/2e8B5uoUY2WZN1p+J7WWjp" + |
| "mcUj/d0IieKqs1mLqM+KTd5D4/yFW6i59tr1PK7ido0qguMorn" + |
| "pY7HzurNjkncWTO69vW3NxcdR5vWeZ9nhmVmZe3y4yr1cXSs7r" + |
| "/wCBcX+u"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value13 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value13[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value14 = null; |
| |
| protected static void value14Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2468; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrlW01vJFcVbUEUMSZiARKORKxEeISlZMR8Lex4EsbdVZUFGY" + |
| "2QEGwmWMoviAYpP4A27p7BrfyIWUfySB2hbJDIAjbAZrJBGiMg" + |
| "0WAPSAMSIFjwVa9u3T733Peq3W7KdjD1VPXeO++8c899XVWuru" + |
| "npdHTrPtGjtIBxi9uprfukic0zm3R4fprBLOu6WXUW902xMbtJ" + |
| "p3++v9z/Qv9C3Xuu0/ne25PZP+8cuvW/5JGdn5ToRe1t3655L3" + |
| "je9ludObf+4tTRF5Mr0ZBLfylCXjqimyuHrWO8bX97hnX8qV3H" + |
| "Ce+FTmvbPOt458NZ1nH7W8exjt0Lfs5g7/B1rNDJOg6eaVrHwc" + |
| "KJno8XZlnH4a151zHezDq2cA7pOiZG5l7H7W9MHb2ZXMcWr4fk" + |
| "ah7pup7l/sjn4yfluu6+Osv5GFjtX9c7e//9df1JWcedh7Os4+" + |
| "CD+dZx+OnBn2UdB38a1us4+Ovk0/nOvJkOPxV9An9rbx0Hf5k6" + |
| "+q/k+XhoLoN/1PW/W/q0/zn5DH/VOTNb0/nYztbd6m7JUWrFpO" + |
| "8RcJWN3euoAlDV81opT17JemIOM6wH5FD130zrwnvFfdNH5Vh+" + |
| "ZbAC087Hs7Td/dFMZ+1v2os4/PVR2FsH/yPX9e9POuLWU1Jnz2" + |
| "XlX50fnG9POeid1tYUu3+vDfX8cf5YjlIrFkq2lC3lj7//XcHB" + |
| "QcGIxa0y9KpclvxssLwr1mdk5w/et1fVmXASYnOm0u7fs7ljXq" + |
| "znM7T8fDVfLetVrauRVe0DsRyU0Ns68HitTy1us1ZiHVetIz8H" + |
| "6k2eMBPcnSc+05iPXNlDHMN6rcbW8rWyXtO6GlnTPhDLQQm9ch" + |
| "0dXutTi9uslVjHNevIz4F6kyfMBHfnjz7TmI9c2UMcw3qV/f/l" + |
| "e2HxzizfZwLrGL4X/v3srOOdd4/3/WPi7/Wzttf7YXv5t6U1j0" + |
| "7TnHY89a73rstRasWk332FEXCVjd3rSAuztc0KGGFPXgmI5zDD" + |
| "elA+cknpwrt1GLv0LlxGRa8o60LraqTQvkfAVTZ2r6MKQDud0Y" + |
| "JXAMusY+FjWMRzmGE9IIdQD5fTuvCuyhyVY/mVAf/Q63q3uddw" + |
| "ju+meb3dWWbPdBXttjcnzm8e9fz1/HU5Sq2Y9IFYDgpGLG6VoV" + |
| "edj5/3s8Hyrlifkdi3V9WZ4A6XfaYxH7myhziG9VqN3chvlPUN" + |
| "rauRG9offVERy0HBiMVrfWpxm7US6xjpM8IxU6o6E9y7L/tMYz" + |
| "5yZQ9xDOs17K899Vr5bTocpQ4j0gvt0aIiloOCEYuLPre4zVrx" + |
| "Osb6jHDMlKrOBHfnqz7TmI9c2UMcw3oNe3G5uFw+fV6Wun4Wva" + |
| "z94puCWo4ZNbvvCc/qadsiHNc8DbsYKJYRe4I6O0Musa51ynlY" + |
| "xbQLy5/2HF7cPEPfZ26e+HN4vabZpeySf28WkEPfUF1K80SvlT" + |
| "d7v53jvdmlWd+bteZS13ElW4lirMzgeCXNS+md4PvHlfaZ5q/N" + |
| "ufycHKVWLJTsSnYlP1e9f5xwAoKCEcwKnNLLFUGhF7B4NljeFe" + |
| "szMlryvr2qzkSOITZnKu3+PZt7qC0zlR871rnT7o+9W+3eH2fR" + |
| "O677Y1Psdu6P+dP509HZUGFh7z6QUe0rV9q2l+LEynaurVMsqC" + |
| "ov5rIH7Oys/ne9Bx5tjs5up2N1xIV8oawXtK5GFrTf3VPEclAw" + |
| "YvFan1rcZq2E00ifEY6ZUtWZ4Eousa7lI1f2EMewXsNebBab5T" + |
| "PBptTV88GmljL2hxiVMnoeo6hlnt8F377N6oix/RYrTJ5QNm0M" + |
| "jh9zmMGuEI1zsbpwCodW00cDZvnFraK8b4RjUd8/pC397i8wqp" + |
| "hvhVrm+Z0VtW0RVphkQtF8fM9hBmsiGudida1TzgMRbTRgzE/c" + |
| "N383eYf8uXafPUZfPsXfAdw+TvXijeINOYZaEe13f4lRxXwr1D" + |
| "LP76yobYuwgvVkRzi+5zCDNRGNc7G61inngYg2GjDLzx5lj6Ln" + |
| "0AoTPHvU+1jawDDm+cyJlYOWjgk3xbKz9agl1oGjOLLV7n3sUV" + |
| "FUrYZn8keHYRp56u+aP3N2vl835dLO82N2kB3IUepqhQ+0H9q9" + |
| "jwQHBwUjFq8/J2pJu/eRnw0WfcaRPiOi0+wJM+EkzOFMpQ0tjc" + |
| "1R4/zYcT22n+2X9b7W1ci+9rufVcRyUEJv68DjtT61uM1aiXXc" + |
| "t478HKg3ecJMcCWXWNfykSt7iGNYr2EvrhXXyvvkNamr++Y1LW" + |
| "XslzCqmG+FWub5nRW1bRFWmNzpKZqP7znMYE1E41ysrnXKeSCi" + |
| "jQbM8ov1Yr2s16Wu8HUtZewXMSpl9BWMopZ5fhd88AyrI8ZggR" + |
| "UmmazbGBw/5jCDXSEa52J14RQOraaPBoz5Yds4H4oqhZb0us8z" + |
| "Zo/AUXs0Vt+Y4VeAyp42B5rqSV0Bty3NxWtbjLPnLG2Z4mo5FP" + |
| "RkZ4awcASO2qOxutdNruPyNDWvqZ7UFXDbKtexm9K2WHXmdKFj" + |
| "Hdgyaybm+8xiy99nXj697zPD5eNULx4WD+WIWkuZ94pH0bOzoG" + |
| "P34iFioG0Rq8CevDYQz2FGrK1O7ryb8sze1WEqT++C+cVesVfW" + |
| "e7bWUrEcip6dJW1tWUQ0tD16VVVjBbOOFM3H9xxmxNrqZLic8s" + |
| "zekXGcZ2plwN9Y21grr/U1qavrfk2L9HrvAwHXzlKm31mxeg5/" + |
| "X7kphcn9iqLZvvKaPHlNRNPYsa5o2egclR1ZzPI3VjdWy3pV6g" + |
| "pf1SI9i9geZlmm3Vmxyv+BclMKk0womo/vOcxgTUTT2LGudcp5" + |
| "2FXgojzLT3ybaPydUGrE/7+P7Mi/Msp2273np/VGXzvWf418L3" + |
| "tPjlIrJn0gloMSeuX3QodD2epZ1GvpmHUFR35OyrdX1Zngjq77" + |
| "TGM+cmUPcQy7gtY5jdyffIYbTSNTPpn7R/4s77d8biT1mn7X3N" + |
| "o7qBP8nf2od3rvze7+7Fjfm42zsRylrj7PsfaBWA5K6JXXtcPr" + |
| "s8JoaGuU+9k8Y3JGja0jP0cZzZ4wE9xR5jON+ciVPcQxzNk/ts" + |
| "7tdrTz8UhX3Aen+LuUmWKPivnU84v5RW0xJn0cgfHY1kETJ4+u" + |
| "7ezHytEYKZadrUct09xjj3MKsT3aHN1GaF4xGzm/ml8t66taVy" + |
| "NXtQ/EclAwYvFan1rSHn3dzwaLvEX6jHDMmIGZ4A6XfaYxH7my" + |
| "hziG9VqNLebRPVswwfPF3ljasvfGguJoe+D0xrFyb9wbI4JwU/" + |
| "HhAdpaVIlZiB6jiO5RUeyN2SPUvUIaqyP/B5EPsKk="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value14 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value14[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value15 = null; |
| |
| protected static void value15Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 2349; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrlWkuIJFUWjfXoIOqiF6PlQAvaM4NSQy9cZlZU4kKxdNE0zD" + |
| "TMuBBBe9ppQRSZRs3sT6G5tkHoTelymMWs5+tnsOwSwR/ib+xN" + |
| "24KLKt1UIQwTL27eOPee9+JVVJlJVWsGed9755177rnRmZURQZ" + |
| "dr5VpRlGvlZCwKXelcIzg4sGPxooCKn42XOBt8+4r1PeJrxgxk" + |
| "gnvuIHca89Gr9xDXsF7rvdVytRpXdax3VnU9+JMiloMDOxaf6E" + |
| "/m46Mx6rUS5zHS94ivmVLVTHCll1jX8tGr9xDXsF7rvfVyvRrX" + |
| "dax31ifHfHVMkAadb3abDKshnGo1Lyj0aizKBst5i/Q94mvGDG" + |
| "Qa7jx3GvMn7Hmrmehv3Xut9zbKjWrc0LHe2dA1EMvBgR2LT/Td" + |
| "TObj33A2WM5bpO8RXzNmIBPc6ntNncZ89Oo9xDWs1/AerA2q73" + |
| "eIGPUoiv77jGJls2SuM4uEl/JkbhGrgJevxvWZ4xmxtjqxvVhd" + |
| "610dpvpkF54/uDi4WI0X7ahHzSIUK5slc52NjwERDTu3iFUw59" + |
| "FV4/rM8YxYW50sv5fy7L2j47jP1JkBv3+4f7j6tzqsY9iRlc4X" + |
| "vgQCrrLxZh1VAFoUC1+yAlh4+Wp2rdygk/LkPaCHMNocqyu49u" + |
| "47YnV/Zjx/eOvw4PDG4a8EHd5UFM890XR0iHs8+ykjw58Vidfw" + |
| "zgj5eTG11/BAdvcXKTTuZcK+2a7O/bZCfrlDN79O4ziP498V+/" + |
| "J15v7s7n0pdPnPs/WU+zyOf98h/yr5PL7wSZfPY43s6vOYPY8P" + |
| "/tjO49l/T+97PTpjVwuXp9f/tLR2o9OWM83+2s5j/1jxg3nNtp" + |
| "f+fH9eooyKyZoRcJXdnx9dUdTrqALQ6u/Eo6wAlvfEStaT53iG" + |
| "9YAewjh+JK0L76rsq/pafGbAT/yy3Terf7Xx8b37PJ47OEv13k" + |
| "ZvQ6KMioWjPFAe6G08fysQcJWNN+vIDHr1vegBVgDLe2IlIMzx" + |
| "DOtB+TKG2ind4Yrt3XfE6taF55db5VZVY0vHutstXQOxHBxhNb" + |
| "rC+OT+3c1kPj7B2WC5e/8t64hzoN7mCZngjv/AncZ89Oo9xDWs" + |
| "13pvs9ysxk0d651NXQOxHBxhVZ1Hwif6bibz8R85GyznbdM64h" + |
| "yot3lCJrjjx7jTmI9evYe4hvUa3oPjg+pvVogy1nfex3XNCLjK" + |
| "xpt1VAFo1ctJVgDLPKc4zjUswhzPsB7QQxjPHUzrwrsq+6q+Fp" + |
| "8Z8BPXlc0V1fKRXV0DPLovr3tm6mpxbnFOooyKyRqI5eDAjsUX" + |
| "TkAZenbutdKuvL5HYt+sqpngLpzgTmM+evUe4hrWq7zj+8LRSn" + |
| "Od8uwP6L7wjr27v+6ksoPzOB7t3Xlsu36c1nlsf25WHioPFUW4" + |
| "fjS/Toe21w2cFE/0pnLnemnnOW21hytdmV1eg6ODo5jLu/rb/E" + |
| "HM0QiuZSSeBp4MGZav8zOPtbuxailVVrSuEHUWxtALnFhN2zvy" + |
| "uEvJ9dyuzx/7H0f3jA9ftc/DP+7yvV5+6Pt+r/vnNcqMXJxPz1" + |
| "uuMc7vDGdWF55lWdfb1c5rt9VG9rZ1XtQos9RuPM9pdceZ1YVn" + |
| "Wdb1drXz2m21kd1Np74iWolnU7hS3WOtadbvWPHlyfgXnU1Tda" + |
| "+0plm/Y8VX4tk0VfdGa5r1O1yZvep+r2+PfpuWdqT2t9FrZ6+d" + |
| "ZF43wf6ju2d/0vD+Ucd/Rfmr1fsdwt6otO5trfj3onj2Foe8Xs" + |
| "eL3Mvon4nstc6dvVm93xq9nePgPC5+NMVrldEU/7V34WuavSTU" + |
| "LyxekCijYuEo58q5xQvhfsZzcGDH4lYZevWdwhxng8WuvL5HYt" + |
| "+sqpnghtq+U5kPV6wu8mI97tDzc5/H7/2s6pmZPAF7Zv94cfdY" + |
| "L0kMY4iytohyZNS5zfaIajAz5nodyczxrCP26bthd20dxB5T/c" + |
| "W1Uh3O7PN4aiafx1P7x4t9LXwnMYwhylqR048LDq7ObbZHVIOZ" + |
| "MdfrSGaOJ6zlp62aOvfdsLu2Dvzznrg662l+3GF5jcQwhihrRW" + |
| "QfGOY22yM20+OZ51pN9RwP9dmndcgrRnL6XJ31ND/usPeFxDCG" + |
| "KGtFZB8Y5jbbIzbT4+3nEdVzPNRnn9YhrxjJ6XN11tP8uMPeXy" + |
| "WGMURZKyL7wDC32R6xmR7PnMemeo6H+uzTOuQVIzl9rs56mh93" + |
| "2PtcYhhDlLUisg8Mc5vtEZvp8cx5bKrneKjPPq1DXjGS0+fqrK" + |
| "f5cYe9SxLDGGLvkuK6oxw/t9kesZkez5zHpnqOh/rs0zrkFSM5" + |
| "fa7OeprPHWafh3/Y4X7vanke/mGX5+E1ssvn4Qv/kxjGEGWtiO" + |
| "wDw9xme8Rmejxz3dNUz/FQn31ah7xiJKfP1VlP81Md1r/gSxrL" + |
| "pRzm57zyGO+VHZ4WlUvhyDOUh4z2mtt5iqu3nReu2qJwRGN5xG" + |
| "N+5ue88hjvlR3+n8vpn5ZH8jx16t211dzOE7N4//S1Prtdp/df" + |
| "iWEMUdaKyD4wzG22R2ymxzO/M031HA/12ad1yCtGcvpcnfU0nz" + |
| "vM/s7ctj9/Z0Zf7+J35rZZ/870n5IYxhBlrYjsA8PcZnvEZno8" + |
| "8xyhqZ7joT77tA55xUhOn6uznubHHZYLEsMYoqwVkX3FTl+Puc" + |
| "12f1FusJl5rt+T6nDQxrLu4Nx3wxUtktPn6qyn+XGHva8khjFE" + |
| "WSsi+8Awt9kesZkez/x9bKrneKjPPq1DXjGS0+fqrKf5cYf9Jy" + |
| "WGMURZKyL7wDC32R6xmR7PfK+b6jke6rNP65BXjOT0uTrraX7c" + |
| "YXm3xDCGKGtFZF8x8NMrxUbfpvZSXLsn1eGgjWXdwbnvhitaJK" + |
| "dfef8m9hzX8rjh36NRZtWv4rsxBmZ65THeS3Hj3HDkGcpDRnvN" + |
| "7TzF1dvOC1dtUXhAo8yAjS5bzM955THeS3Hj3HDkGcpDRnvN7T" + |
| "zF1dvOC1eNcu+SGMYQZa2I7APD3GZ7xGbmuX5PMuGgjWXdwbnv" + |
| "hiu2d5D2zmeHa8Ud9j6TGMYQZa2I7APD3GZ7xGZ6PPN73VTP8V" + |
| "CffVqHvGIkp8/VWU/z4w57VySGMURZKyL7wDC32R6xmR7PnMem" + |
| "eo6H+uzTOuQVIzl9rs56mk8d/h/cuIIO"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value15 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value15[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value16 = null; |
| |
| protected static void value16Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1490; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "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" + |
| "08zv9zimDY3jwWxVbXx/u7fU+r+/D/Ac82D50="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value16 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value16[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value17 = null; |
| |
| protected static void value17Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1385; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWr9vHEUU3i6FAQmloOC3E1sQDEYEUjlSzO2Jv4AKWXFBD0" + |
| "VwTc63RpZCg5Q2JRLQUdHCf4AEHalRmjRI6ZC43Xfv3ve9N7u+" + |
| "u6xz4TI7mpk333zzvfdGu7N7losiXre/KvK18DW6PLo0ujjamY" + |
| "5eWXQfRy8n0d2AvNFjzC91zl5ZSOtVHI3vTZB3Fozmg7yPfh8b" + |
| "JO/jCu/HfD7+/87Hk8/X9X4c3BnckVb6GpeR2toax4rNIC7qqO" + |
| "FR1oqRRX1GYtxeVVca12fBq5Vr66KezxD5g0eDR81o2qttuLaK" + |
| "2SxW5rAio4jgDMXmfFhBRowJc8HIUlnwavSN1a+MEU/nHg4eNq" + |
| "Npr7bh2ipms1j9CBVNDZVQM+yj82EFGTEmzAUjS2XBq9E3Vr8y" + |
| "Rixz5fXyelHUrfT1jIzU1tY4VmwGcdFni23WivsY9RlhnylVXY" + |
| "mR+Ewj31gcQ/SBsera4xfcuXlLrdPXJrMX1+N9evz8k/Z4+5f8" + |
| "FZN/F+bfM3kf8z4mz8d/n91T7vSTHt8z+ff1wld1tXqz+gjGm9" + |
| "UV3cdqJ3EP/9Giczn1XFevV1sz5M9qt2Vt81xUbzfth2fEe6n5" + |
| "hvmhg/HW6PdJO3s2q+2mfS/wWs+ZeZ/r6t3q/c7n/Va+v3o5xW" + |
| "f7+PF3y6xfbtUanrWf5j3I3+FPz3fP8U6+u5a/9v/WVqzUbLS7" + |
| "tObHPWseHrIw6rN8d2u3+bbVaZ398f5YWukVk7FHjKtsq15HFQ" + |
| "xVPa8VYh57H4h4DjMwBsshlQUzNVPOyKvHnTH+YufjyV/rfT5+" + |
| "89mT+X297vt48mt/75nRM/z7utfvxy/yHvSyj1/mPXiM75672o" + |
| "qVmo12l9b8uGfNw0MWRn2W727tNt+2uk0n/57B0bL/T3F6lP/e" + |
| "c15X/jtu3sdV/r3nPPZxtHueMY+/75z96THOxx8XPx9bv3u+zn" + |
| "dXL19Av612/SqzWjb28lp5TVrpFZOxIcixYjOIo7Lpoc1a6ahY" + |
| "n5EYt1fVlRiJzzTyjcUxRB8Yq611J8Y/+ZnM7+vVva/z7xmH5P" + |
| "/v6djH02/Pdx/zc93L18DR/pG00ismY48YV9lWvY4qGKp6XisV" + |
| "k1fCmJjDDIzBckhlwUzNlDPy6nFnjJ/PRxxVP/f3XJfPRStfT9" + |
| "P7unxxdfdjm+9+3jPlhfJC8NhggltrmNo4SnGiMq7FPsVi/1rS" + |
| "LPbuI0PP3Ld5j2vasanHjXJj0m9o38xs6NgQ5FixGcSn+mSxzV" + |
| "qJSIM+I+wzpaorMRKfaeQbi2OIPjDWug5vDm8WRd3WfX2JrWOb" + |
| "VcxbwlEmVlZUGxFW0Iu9ef+ewwzWNG+ci7fRv/fqvaEaqB4ODy" + |
| "f9ofQNfqhFRojgyFYhEysrqo0IK8wyIW/ev+cwgzXNG+fibfTv" + |
| "vXpvqAaqB8ODSX8gfYMfaJERIjiyVcjEyopqI8IKs0zIm/fvOc" + |
| "xgTfPGuXgb/Xuv3huqGX/wYPCgKOpW+npGRmpraxwrNoO46LPF" + |
| "NmvF8zHqM8I+U6q6EiPxmUa+sTiG6ANjreuNzRubRVG3dS+XjG" + |
| "RsrWI2i9WPhId6aiPCfu3yPqwgI8Zk6hxZKgtejXFj9StjxDI3" + |
| "3BvuTe7LPemb+3RPi4wQwZGtQiZWVlQbEVaYPVnkzfv3HGawpn" + |
| "njXLyN/r1X7w3VkN/s6VZdZju8JZV2fUtY1hpuvUejutdNXcru" + |
| "WmOaGpNGZThabdp+3rLnLLF0RLVdFxtJZYawrDXceo9Gda+b3M" + |
| "ftLjWvqTFpVIaj1abt5y17zhJLKqrh/eF9aa3XIvOM2ghXmQ5W" + |
| "UTCe6nl/imJMXhtjYg4zorZFkoqZYzdWzDO1M8D/D9KNc9w="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value17 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value17[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value18 = null; |
| |
| protected static void value18Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1671; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWz1vXEUUfVJaOkQoAAUBFSAhpQAsKGzv7q/gN8QFUuQ662" + |
| "jRpnUHFgtBFNAgG6WBAqWNEupIIPNR0BK5jITEvnf3+pxz7+zi" + |
| "3WwsE817ejN3zpw599zxvt3ndbK5sbnRNJsbm13fHhb7GLOOxc" + |
| "g4zuRLFT1mRBX80Gwxf+QoQzWRTWuJMeePWWM2VmN+PoZ/eTT+" + |
| "tKnHmY7end4da613zMZAmIMTM4xDmfUYjVo+x65UX5HsO6r6Sn" + |
| "BjFboa2WPWXB98Mr+wt4dzd/3wDD+Zw6V/lodrfm0cXozX6PiL" + |
| "0+jLesc+wT7ePo2+qrtxxnvgXu+etdY7ZmMgzMGJGcahzHqMql" + |
| "bZleorkn1HVV8JbqxCVzsX67JerJD5vZPeybQ/8b6bOfExEObg" + |
| "xAzjM32JNFatwj4mfUU0Z0nVV7KTWGnmg6Uecg722l6DB4MHTd" + |
| "O26P1sWRHFiFdZ7BEjpsExI6yAQ7PF/JGjjKwNJyXP6h2sXGdp" + |
| "Z8Dfurp1tWna1vp2xkYeMwKus3FFHVcA6npRK74aNRuPwVUsx6" + |
| "zNfdaFd3aYXUYXkT98Y/j68Pnh27Nn8Jeb5sb1Zd5hhy8V0XcS" + |
| "8ur63tWHLy6cfXMprVd4NLo7Rd5a0k23o8vt4+jXZ3sfP/lotX" + |
| "0cflDA31uptg9X3pV3V175/oV+fvyhPg+u4xi9UPdgLa/Hn+oe" + |
| "rGUf79Y9WPr3wse9x9Za75iNgTAHJ2YYZ2XocaxaZVeqr0j2HV" + |
| "V9JTuJlWY+WOoh52CvWBveH1+rr69lj8G1wTVrrXfMxhEB19m4" + |
| "oo4rAHW9qFXyFJXYk3KUwR5QQ6kKZXqlWlFUzztzyt0Z7Ez7He" + |
| "+7mR0fRwRcZ+OKOq4A1PWiVtrHnZiDkchRBntADaUqlOmVakVR" + |
| "Pe+Mc/tX+leapm2tb2ds5LG34ODEDOOmr5HGqpXvkqyviOYsqf" + |
| "pKdhIrzXyw1EPOwV67ueP+8bQ/9r6bOfYxEObgxAzjM32JNFat" + |
| "wj4mfUU0Z0nVV7KTWGnmg6Uecg722s3t9nen/a733cyuj4EwBy" + |
| "dmGJ/pS6SxahX2MekrojlLqr6SncRKMx8s9ZBzsNdubr+/P+33" + |
| "ve9m9n0MhDk4McP4TF8ijVWrsI9JXxHNWVL1lewkVpr5YKmHnI" + |
| "O9Yq0eN/6pzzFLP/ccDY6sbXtgPkbrGGb5iiNXhp7HjGhedcU5" + |
| "cJZ967y6gxNdoas5N1/aRhfgb1/evtw0bWt9O2MjjxkB19m4oo" + |
| "4rAHW9qBV3UbPxGFzFcsza3GddeGeH2WV0ofz+pD+Z3t8T77s7" + |
| "fuJjIMzBiRnGZ+8bEmmsWoX3x6SviOYsqfpKdhIrzXyw1EPOwV" + |
| "67uYP+wbQ/8L6bOfAxEObgxAzjM32JNFatwj4mfUU0Z0nVV7KT" + |
| "WGnmg6Uecg72irXh+56fn8Y78XBvfVp7Dy/eJ039OxePbn5+Pn" + |
| "/nqvs4bx8Lz4/Xm3qs8gz5mbVt37Y2ZsQ51nvMqxVxjcjMXNWx" + |
| "lYt47Cj61Gqiu3kVZI+l+nKuWGG9rxOy4n3de87atm9bGzty82" + |
| "PDwfWYVyviGpGZuapjKxfxjDV+yGruXKuJ7uZVMLxd9q7rcq5Y" + |
| "YX09rutzZvtra9u+bW3siM0DQ8yrFeGVis9fieyRl1mq5s61mp" + |
| "hjXgXZY8llzlWqMDyH/1I/e9fxHL7c7zP1c+b0c+aStW3ftjZ2" + |
| "ZPo5c8k51nvMqxVxjcjMXNWxlYt4xhofs5o712qiu3kVhM+ZlD" + |
| "3q+fpY4Xl+zox/f6Y/Zx5Z2/Zta2NHxn8aDq7HvFoR14jMzFUd" + |
| "W7mIZ6y9P1jNnWs10d28CvT1mLNHPV9fqvA8fi9c5/c9F+/Yvr" + |
| "9931rrHbMxEObgxAzjrAw9jlWr7Er1Fcm+o6qvZCex0swHSz3k" + |
| "HOwVa+v3FOs7tn7z1qLSbI4XaZ0dj6yz8JjFrv8r92Ltebmxuq" + |
| "wzmAwm1lrvmI2BMAcnZhhnZehxrFqFb3WSviLZd1T1lewkVpr5" + |
| "YKmHnIO9Ym29r5/0GH275P/7+Kb+PlN6fhw/Wm4fx3/XfZz3HJ" + |
| "7u6wX/LmX0Xb2HS0f/qH9krfWO2RgIc3BihnFWhh7HqlV2pfqK" + |
| "ZN9R1Veyk1hp5oOlHnIO9mrX//F73NH3F+++rvv4tN4fRz/W97" + |
| "u1/LTrPi59DG4NbllrvWM2jgi4zsYVdVwBqOtFrZKnqMSelKMM" + |
| "9oAaSlUo0yvViqJ63plT/r8h7l/H"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value18 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value18[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value19 = null; |
| |
| protected static void value19Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1615; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXE1vG1UUHQoSHxIVonxICV9qYNECQUJdRGoWMLaBim03iA" + |
| "aKaFUqwSYiP2Asy6m8yqrdsWPDLkKsuuKXdN8VEiA2iOCZ65tz" + |
| "z73PTsYZJzTMWPM+zjvv3HNv3jh2KjVfzVezLF/NJ32W6UzHFg" + |
| "FX2bi9jioAVT2vlbmLo9k5uIzFsdW2fdSFd+swuvQumN/d6m5l" + |
| "WdlKX67ITMfagoMXViwu+jziMWtl4Yr6jHDMlKrutE58ppEPFn" + |
| "uIMazX8u7d693LsrKVvlyRmY4tAq6ycXsdVQCqel7LV5Gj2Tm4" + |
| "jMWx1bZ91IV36zC69C6Yny/lS+NzuaR9dVKXdO4RcJWN2+uoAl" + |
| "DV81rhuV7yMSziOcywHpBDKgtmaqackVePlVFu52HnYZaVrfTl" + |
| "isx0rC04eGHF4qLPIx6zVnyuoz4jHDOlqjutE59p5IPFHmIM61" + |
| "Xu3l54rvZKTHC0wHgtPeNRKgLvSntgPmMp1qzI3at+NaV4mIv3" + |
| "aF2KJzyv2CrOjttz1fiFqn1pfC9n2ejpCeOtsh09OZldrNp3ZD" + |
| "Z6al9nbZqT4qPik+LjavTpFMZG8YWZfV18U9wuHivOONazxXNm" + |
| "tv/UF6/PqsPomQlrvfigyOvXsbhGsxvj+2aW9d/sr/TP9SdV6L" + |
| "9S1nGGh7Me6S+neP33AvJGln34T9bI1X955urFFDotdv/VgLxd" + |
| "0837VVurjgmVGnVs6pqnjlPZVMfR88dTx9GLp7uO7Xlspo7DX+" + |
| "etY7zyd+OozjXfrkVfi3WVX8gvSCu9YjL3CLjKxu11VAGo6nmt" + |
| "lCevZD0xhxnWA3JIZcFMzZQz8uqxMsod3Bp8Pvhy8JnNY/DV0X" + |
| "42vfMpdHBj2kr9a3Bt5ur1w7uaj5XYt9xbllZ6xWTuEXDtDosw" + |
| "ihg8Zq2Up2n60VHKAWvbPuqiBhqdo6bVPT9fy8eflstW+uqkru" + |
| "ncI+AqG7fXUQWgque1wnO95mNYxHOYYT0gh1QWzNRMOSOvHiuj" + |
| "3O5ud3f8nWlX++ob1K7OgVgOXlix+OR7GI14zFqJ73BBnxGOmV" + |
| "LVndaJzzTywWIPMYb1Kvej+Lln+POj/vnxzq3T/fnxzs356rj9" + |
| "+PB3qePwt+1JHYd/Hj3T7TPhDP3V4Hn8Y+bqnN/ih39P+r1mXO" + |
| "a346hJ1ZPRajJ+4tycwvM4eu34z2Nbx8U918PvFnHyR+ezY7qG" + |
| "357QN/ifpC37spW5RZQjvY7tbkZUg9lQTu1EdM9LsaxadOhnHr" + |
| "H63kXaZYzFePL3+PdZe9W8Onc7d6WVXjGZA7EcvLBicShbPYt6" + |
| "LV2zrlifkejbq+pOcH0WvBvRfdSYH3xafrzqfZ9pr6ln9Mf6K/" + |
| "U46R2H23kwq76DBn7HXMovSSu9YjL3CLjKxu11VAGo6nmtlCev" + |
| "ZD0xhxnWA3JIZcFMzZQz8uqxMuC3/z7TxN8p8o18Q1rpqwpv6N" + |
| "wj4Cobt9dRBaCq57XCedzwMSziOcywHpBDKgtmaqackVePlVFu" + |
| "Z7OzOX5H2dS+en/Z1DkQy8ELKxafvEsZDY96LV3bf4cL+oxwzJ" + |
| "Sq7gTXZ8G7Ed1HjfnBp+W3z/VJ/P3xtNdx8ENbx6PWcfDL/Oex" + |
| "s9PZkVb66onf0TkQy8ELKxafvG8YDY+yVuITYNBnJPr2qroTXJ" + |
| "8F71Yu9kU9nyHz2/PYvj/+X+vYuX5ydZwWuz2P/63z2P69p6Gf" + |
| "bXse2+e6fa7b57o9j+15PNarrWP9q3u5e1la6RWTORDLwQsrFr" + |
| "fK0LNj1kq7Yn1Gom+vqjutE59p5IPFHmIM67VaW++uj/t17auV" + |
| "dZ0DsRy8sGLxiT6NeMxaiToGfUY4ZkpVd1onPtPIB4s9xBjWq9" + |
| "zt75lFfX4cXW3rWPvvjw86D8I3+goTHC0wXgPf7ksr2wh2T5ph" + |
| "I+kL+hwjHZm1PTo9etwzHfOezMr9qar3D/7pWM5h+M1fB0VdhK" + |
| "t8JV+RVnrFZO4RcJWN2+uoAlDV81opT17JemIOM6wH5JDKgpma" + |
| "KWfk1WNlwG8/PzZyHq/kV6SVXjGZewRcZeP2OqoAVPW8VsqTV7" + |
| "KemMMM6wE5pLJgpmbKGXn1WBnwj/P/Azi9v697/V5fWulLXGY6" + |
| "tgi4ysbtdVQBqOp5Le+Lo9k5uIzFsdW2fdSFd+swuvQuHP9frX" + |
| "OIFQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value19 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value19[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value20 = null; |
| |
| protected static void value20Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1772; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWr9rLGUUXYz/gYWFCoKC8AwIVoIS3HU25StC+sc+jNikCd" + |
| "rEyo0mkDa9CHaClb2gzz7/gMEmpgiv8KFiI+ru3Dk599z7zWZ3" + |
| "2Txewszw/Trf+c4999uZ2R9Jr5ePzz/tdceCx/GDjB09fLoejk" + |
| "a3fx+H/WHfamuB2Tgi5ILNEnWgQBR6UavkKSp5T8pRhvfAHEpZ" + |
| "KBOZakZRPe8M+YVr9GF3ny56jN8t7ONHV72PF1B6b+lny4dLu3" + |
| "/nWd7b7vm4xPNxc7hptbXAbBwRcsFmiTpQIAq9qFXyFJW8J+Uo" + |
| "w3tgDqUslIlMNaOonneG/PHr49fGL4zXmzvl5UU/94xfKqJvJe" + |
| "TV1b36h9/PdHRvIf+vJOTNBZ8ub/d61ZPqidXWTnEboY+aHJ6c" + |
| "8bipa0/7qpWdZX1Fsu+oipXeScw088lSDzmG9zotw9Ph6eS6PE" + |
| "VbX6mnGBPxHM/2q/zIeOyx7xE/I3d2iMHTM7InqquzUha62sf2" + |
| "Ja7Mjm1uc21zrdeb1tZOZ2yEPmpyeHLG46avPe2rVt7HrK+Ixi" + |
| "ypYqV3EjPNfLLUQ47hvU7L8GR4MtnPE7T1Dp9gHBFywWaJOlAg" + |
| "Cr2ola7GkxjDI5GjDO+BOZSyUCYy1Yyiet4ZcAcPBpNvhtPa2u" + |
| "mMjdD3CLlgs0QdKBCFXtSK+6jR/JhcxXLfa/s269K7d5hdRhfK" + |
| "ry6qi8lz8gJt/eS8wJiI5/DkjMeb56/0tK9ahfeZpK+IxiypYq" + |
| "V3EjPNfLLUQ47hvVq5jZ97xi/e1OeeL75a8nPPeXVutbX1Dp9j" + |
| "TMRzeHLG483rJD3tq1bhekz6imTfURUrvZOYaeaTpR5yDO+1nl" + |
| "ur0vulYYazJoa+H5U41Vrp1cNa35ZYGh9nmaXRozMfWdu26HlN" + |
| "O9ZE3K/2J+0+2npmH2MinsOTMx5v9KWnfdUqOE36imjMkipWei" + |
| "cx08wnSz3kGN7rtAy2BluT95sttPU70BbGESEXbJaoAwWi0Ita" + |
| "6f16K8bwSOQow3tgDqUslIlMNaOonneG/MJz85MrtyfLvAsst+" + |
| "p2H4P7g/tWWwvMxhEhF2yWqAMFotCLWiVPUcl7Uo4yvAfmUMpC" + |
| "mchUM4rqeWeuuKPBaNKO0NYzI4wjQi7YLFEHCkShF7XSPo5iDI" + |
| "9EjjK8B+ZQykKZyFQziup5Z66424PtSbuNtp7Zxjgi5ILNEnWg" + |
| "QBR6USvt43aM4ZHIUYb3wBxKWSgTmWpGUT3vDPk4+o9RW4+Y9r" + |
| "RfOvqP29i6sk1H15cZyvKu21Xncd8Wm6uvjfMbauuVZnN/ltb8" + |
| "eGTNw/Ms7/q62LO122JzdVnn+LPue+Eqfg93O36Bul/45cBjpf" + |
| "l29jx4ZM3D8yzv+rrYs7XbYnN1m85i1+PhL3f7ejz8cbnr8Wjt" + |
| "8A/bx8Pfj5p9PPxrBX9LfS69An+v8O9cf86c/XdJ1X+a9r/F1/" + |
| "bH/bHV1gKzcUTIBZsl6kCBKPSiVslTVPKelKMM74E5lLJQJjLV" + |
| "jKJ63hny83HwfK87VvH/Db92e9Dt47Nz3Mz/kY4P7vTvPZeDS6" + |
| "utBWZjIp7DkzMe98rU833VKrtSfUWy76iKld5JzDTzyVIPOYb3" + |
| "Ws+dDc4m7RnaeuYMYyKew5MzHm/0pad91SrsY9JXRGOWVLHSO4" + |
| "mZZj5Z6iHH8F659mnc13f7qC6rS6utBWZjIp7DkzMe98rU833V" + |
| "KrtSfUWy76iKld5JzDTzyVIPOYb3aqX7nWIVv1MMNgYbVltb3/" + |
| "EbGEeEXLBZog4UiEIvaqWn40aM4ZHIUYb3wBxKWSgTmWpGUT3v" + |
| "DLjVTrUzuS530NZX6g7GRDyHJ2c83lzv0tO+ahXu66SviMYsqW" + |
| "KldxIzzXyy1EOO4b1a6e7rVdzX1W61a7W19Q7vYkzEc3hyxuPN" + |
| "6yQ97atW4XpM+opk31EVK72TmGnmk6UecgzvtZ7bq/Ym7R7aem" + |
| "YPYyKew5MzHm/0pad91SrsY9JXRGOWVLHSO4mZZj5Z6iHH8F6n" + |
| "ZTgajnq9aT1s/o5ofYw5Cyz2jAOmL6qIvkdUAYdGi/EjRxmqyW" + |
| "iaS+z7+DFqjObVPL9wv1/9Yn78dfcJe5Hj/TemJ0dWlGEs1sTZ" + |
| "RjSrR902N+1qUROe4Iq477Vpx3lmr1n6c95MPvh28ZnFOOUV86" + |
| "28nrW4g5s53H39TXevPmu/P3b72B1z/N6zXq2jp5iNWRPTuXYO" + |
| "FTWizfm23RdqnLPcs+Scst9Z0fOaUkzJ517VfIuqrr5NGWZj1s" + |
| "R0rp1TFb+fGQcx2lkaH2eZpdFLOWW/s6LnNaWYGjkfB1929+kq" + |
| "juPvuj1Y4lNO93vPCn7v6fZx1f+35+7rH7q7dCXPx0d3Mquf5m" + |
| "L9vKT8/xlOLXI="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value20 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value20[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value21 = null; |
| |
| protected static void value21Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1443; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtW01rJFUUbRezH3DhQgVBVyrIZJlV6O4iv0A3LoNIyCJZ6A" + |
| "+wx0k0kr/gbwiYnbiclSCzFAnOCBFmK7MUwa66dT3n3PuqnQ6d" + |
| "9KR5VdT7OO/cc897qa6vYZrD5nA0ag6bvh6NvOdtRsB1No6o4w" + |
| "pAXS9qjcKm2bgPrmK5zdpcZ114Z4fZZXQRZnTRXMzrC6v7kQv0" + |
| "UTqGUT5iz3is521GNC+tZMiBnRnZE9TVWWkWGs25+dAyumB+3r" + |
| "76clS3FWynP9c1WH6bvTd7d/b67MO+99bi8/Gbz1P8m0XVjxLy" + |
| "zgo9v7Fw9P2ltN6W+X02Rz5Y0s1WXcd1rWNBZaPW8evvr7uO9T" + |
| "6zjutjPR+Hz8edP61s67a0viM2DgxtjlaEIxUfdoPsi3jIH32y" + |
| "w9iLyCL9mD3qeXyc4W2ej6e/bvL5OH5hZVu3pfUdsXFgaHO0Ih" + |
| "yp+LAbZF/EQ/7okx3GXkQW6cfsUc/j8wwnr1nZ1m1pfUdOfzMc" + |
| "XG9ztCKuEZmZqzoWuYhnrId/sJo719lEd8MzKHuPqxNzlWZY79" + |
| "er2MZ/WdnWbWl9R2wcGNocrQhHKr7YhUUu4iF/9MkOYy8ii/Rj" + |
| "9qjn8XGGy91nTn9f/3PP+PF17jPjxy/1PvP37bzPnD6rz4/rfZ" + |
| "+ZPdzka2PztHlqpdWOWT8i4HIEI4oih7ZVq+RpSD87KjlQba6z" + |
| "LtbAs2vWsnrm59/1t7+86u+Fxz/c1O+6Q1Z0fazruJrr4/GP9V" + |
| "lw6evjSXNipdWOWT8i4DobR9RxBaCuF7VKnqISe1KOMtgD5lCa" + |
| "hTJ9pjqjqJ5XxrnT59Pno1FbWt2OWM/bXoKDHSOMm762tK1a+a" + |
| "+b9RXRnCVVj2QncaaZD5Z6yDnYa3tMLieX6R2zwwxHCUzHwOc4" + |
| "RwfeYi81pszgTL5DX3OUM6t2RIez55hhzDJPz6fn8/U897pb4X" + |
| "PvA2EOdoww3v+dpKVt1Sqcj0lfEc1ZUvVIdhJnmvlgqYecg70i" + |
| "tn6nqP+u8Co99+xstTt6dsjX9S1joQSurBIK9Z2t//fl7EUx0H" + |
| "RP7go4t4a04zhmr7Pk/WVnMvui/kqX3ab3pvfKmOEogXmbeyVO" + |
| "VuZYrod9een7kHvOHp1xZq2HsueYYYznHO7rP+XWXdrW47reZ2" + |
| "7qO0Vdx7qO61rHyf5k30qru+vLvveBMAc7Rhjvr1KkEdGo5WP/" + |
| "XeGSviLZd1T1SHDjLDQa2WPWPD/4JNWzydm8PvO6GznzPhDmYM" + |
| "cI470+aURUtQp3iqSviOYsqXokuHEWGu1cxGW9OEPl3+bverK3" + |
| "vt/1UO6b+45b36/rc0+9X9/tdWyumisrre6+lF95HwhzsGOE8f" + |
| "57u7S0rVqFf+1I+opk31HVI9lJnGnmg6Uecg72ith6fazXx3p9" + |
| "3KR1nG5Pt620uvsStO19IMzBjhHG++9J0tK2ahW+TCV9RbLvqO" + |
| "qR7CTONPPBUg85B3vtxvam8+fTtrS6G9nzPhDmYMcI472+tLSt" + |
| "WoV1TPqKaM6SqkeykzjTzAdLPeQc7LUbO5gezOsDr7uRA+8DYQ" + |
| "52jDDe60tL26pVWMekr4jmLKl6JDuJM818sNRDzsFeu7Gj6dG8" + |
| "PvK6GznyPhDmYMcI472+tLStWoV1TPqKaM6SqkeykzjTzAdLPe" + |
| "Qc7LU9mt1md/78s+t190S06/2IgOtsHFHHFYC6XtRKT4+7MQcj" + |
| "kaMM9oA5lGahTJ+pziiq55UBP2/fPahPg8tuzZPmiZVWO2Z9IM" + |
| "xhNkdxz5Wh521GeCS64hzYh3yr5+isNAuN5tx8xMjsmOcc3mf+" + |
| "qefXstv4/vi+lVY7Zv2IgOtsHFHHFYC6XtQqeYpK7Ek5ymAPmE" + |
| "NpFsr0meqMonpeGfDr+Vjfr1f/Xlj/H/vdOh+PLzf7fDz59Ha+" + |
| "9zz6ZLPX8dHH11zHfwGp4QLZ"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value21 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value21[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value22 = null; |
| |
| protected static void value22Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1418; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWj1vJEUQHRl8f4CAABBIXMRxQiIAJEhudtYhZ2JEhkSCCJ" + |
| "BxRICXY82xCMl/gIAIyUj+AfwVgiMwMRIGEuvAPTV1r15Vz5zH" + |
| "Gstrq2e0/fH61avXfb0zO3OuqsXtxauL5xavV+2xeLGq9r6oRh" + |
| "yLF7LoGwF5pZrsWDw/OPraKK2XAnJnpJs38/i4dbyK45vtwdH3" + |
| "r8LTuP24/O1m78f9D8t+vMr9uP/M8i/Zj8s/97v9uPx7At2NsJ" + |
| "P/nc718mRw9PEFVU+7+r/xsff27u1JKbVi0vcIuMrGx+uoAlDV" + |
| "81o5T17JemIOM6wHzCE3C2bqTHlGXj2uDPjlfj3F/Xrr1tYtKa" + |
| "VOuPS0rSU4ODFicVHnFrdZKzqL+oxE315VI60TP9PIB4s9xBzW" + |
| "a/o095v7VZVKqdOI9LStJTg4MWJx0ecWt1krrmPUZ4Rz5lQ10j" + |
| "rxM418sNhDzGG9tmPbzdm9L5VStyPb2gdiOTgxYvFOn1rcZq3M" + |
| "OgZ9RjhnTlUjrRM/08gHiz3EHNZr+mxtbm2e7ctNrduduql9IJ" + |
| "aDEyMW7/Y7tbjNWpnvddBnhHPmVDXSOvEzjXyw2EPMYb0i1l03" + |
| "/9DW6oOqHOc6Zo9mj/KY4CiB8Rj4Ni6vbDPYmH5fWuoJfc6Rz8" + |
| "zaHu3PHmP6Me/JjBz2qh6e41/mcPS/5eGYyKezxju4pD36y/iR" + |
| "cZx8xPkin84a7+ByjvV/vr4eR1nH8Udzt7mrLcakjxIYj/VzoM" + |
| "gZZczW/b601HPIPT5xTtHvUPYYk8tJ87nTdE+TzZOnSsGkjxIY" + |
| "j/VzmuxzqnA0Rz+L8+uZZ3H23Jyi36HsMSaXkzOX94/lfXh5H3" + |
| "7z9mM8Vh+V++/ob8i7GeztCym9d2EPb1048p11XtvVx2V/lXVc" + |
| "o3X8pKzBJOv4aVmD0c+Fu82ulFIrJn0gloMTIxa3ytCzbdbKu2" + |
| "J9RqJvr6qR1omfaeSDxR5iDusVseU9xaV8rz8ra3DZz4WZ+PJ3" + |
| "ANf2uXA9j/pUylSnsj5VPLW+uy04uNq20YyohmdGLutI5BBPWF" + |
| "//btXUOc/Gu+ubweKnvHe/Oj6Xn2H5Xk/zvS7rONX1cfaslKlO" + |
| "pfQVkXFgaNtoRmwk4/1ukH2Ih/zep3Xoex4Z0vfZvZ7GxxnWJ1" + |
| "KmOpX1ieKpdXZ9PFGO1DX9FWcd/qYTGp5ZD/z9J7IP8YTVXh+d" + |
| "T+vQ9zxi9d31MWT3ehqfm2G5X09xzDakTHUqZxuK64hyuG2jGb" + |
| "GRjA+7kMghHvJ7n9ah73lkSN9n93oaH2dY/yNlqlMpfUUefC44" + |
| "uNq20YyohmdGLutI5BBPWKsvrZo659l4d30zcN/rkN3rabyf4b" + |
| "j79bc/3Oz79YMfy/PMuh3LX8sajD3mD+cPpZRaMel7BFxl4+N1" + |
| "VAGo6nmtnCevZD0xhxnWA+aQmwUzdaY8I68eV0a5zU6zU1WplL" + |
| "p9M7mjfSCWgxMjFu/eb1KL26yVeY8b9BnhnDlVjbRO/EwjHyz2" + |
| "EHNYr/Ipz4Xl+Xq93z/OH1/va/5XL19F1nH7cfV92Y+5/dgcNU" + |
| "dSSt1eOY+0D8RycGLE4t31l1rcZq3MfSboMxJ9e1WNtE78TCMf" + |
| "LPYQc1iviC2/w6c46p+lTHUqpW8R5UitbRvNiGowG8q5SGT3vB" + |
| "zLqkWHvucRq+9d5F3GXIzPdme7UkqtmPSBWA5OjFgcylbPol5L" + |
| "x568Ywn6jETfXlUjwfWz4Ghk91nj/Gb0v/7d2MHs4Kw+0LodOd" + |
| "A+EMvBiRGLd/pGw6OslXl7FfQZ4Zw5VY0E18+Co5WLuKjnZ8j8" + |
| "8vux/A5fn3WcH8+PpZS6/R1+rH0gloMTIxbvfs1Ti9uslXkSCP" + |
| "qMRN9eVSOtEz/TyAeLPcQc1qt8yn6c5Hv9P5/ZfBU="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value22 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value22[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value23 = null; |
| |
| protected static void value23Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1275; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtW01rHEcQHQQiJ58CziEOGKKTHQjkFHB08Owu6G9EOM5Fp0" + |
| "B+QCZCFtr/4IPxzQiDwRDIWSf9iLDCf8AyOZlANFP7VFWvukc7" + |
| "60301TNsdffrV6+qWj07o5FdVc1G83XzefNN1R3Nvar67ddqwN" + |
| "F8mUS/Dcj9amVH80Xv7INBWl/Z0e7zM+ThwGy+62xZR6zh2zmy" + |
| "1DrGY9g6lmO+mmU/MrLEfhw9HT0VK22Lywh9WOXoqTMWF3WrwS" + |
| "hrYQ6ZRX2PxLxZFZ7K5Sq8t0bnqLE+zdPyy35cxX4s61ju11fp" + |
| "fj2+O77LuGCCq1XMz+U5UdlGEG6OBRwWZ5qVi+z5jOajR588hs" + |
| "hlP67m+zEeo5c5j/zMME7aYzHPi1nDM/j0Y7w2XktjgqtVDH07" + |
| "SnGisvW1bT4vWJy57G10zsxG9m0uevTJYxJx+jrynm3/vz/LZz" + |
| "9e/99mJpuTTbHSApMxI8oFWz+sAwVFocdaqZxYyebkOZ5hc9Aa" + |
| "UlV4Jir1FbF6XBlwm0dxbQ/On9enbwZ82/6w7M/y4MnS95vvr8" + |
| "x+rCe1WGmByZgR5YKtH9aBgqLQY61UTqxkc/Icz7A5aA2pKjwT" + |
| "lfqKWD2ujPIT+2O7KsfQK6P3uh6kdLuv663JllhpgcmYEeWCrR" + |
| "/WgYKi0GOtVE6sZHPyHM+wOWgNqSo8E5X6ilg9rgy449Px6dnz" + |
| "zyna7onoFGNFLEdPnbH4/LnK9XzfayWe0IK+R3zMlCo8bSZcae" + |
| "Qry+cQY9hc1dcf0z/K990qjvJ3hU85Hr+DlV5qNvb7tBbHmbUI" + |
| "z7Js1hfF7tfOxVbvxXS639P+KruqXNdlHa/5k3h5j7uC97jjnf" + |
| "GOWGm7J6IdjBWxHD11xuLz5yrX832vlXh+DPoeiXmzKjxtJlxp" + |
| "5CvL5xBj2Fzbz+hkdBLeJ3eY4GoV83PKt35AM2+sT7xPmmEj4V" + |
| "R9HyMd2Wszmo8effLYvI7ZaBZ4HSa4WsX8nPKtH9BMdjPvk2bY" + |
| "SDhV38dIR/bajOajR588xjmZmcOs6uHF3xaLcNIei3lezBqeQb" + |
| "nPXJX7TPI91qX8PG/esfdnWYNVHNNZWYOVrONJWYNyn7msf292" + |
| "9pxwR2zbtlbGQA42BFcu+tbbI9BgZuR6HfHs4wnr95lVQ+a+Gs" + |
| "4uV0HzIp2794uxYoX1P2LbtrUyBiLzimnfenvEeno8v44avY+n" + |
| "8TlPmyGPGOnT5+isB/9Y4WhdbNu2VsZAzvbjOjjSom+9PQINZk" + |
| "au1xHPPp6wuv1IedoMecSI1af9GKKzHvxjhfXfYtu2tTIGIvOK" + |
| "ad96e8R6erxnP55H7+NpfM7TZsgjRvr0OTrrwT9WOPpMbNu2Vs" + |
| "ZAdn8RXLnoW2+PQIOZket1xLOPJ6zpe6uGzH01nF2uAtqPITrr" + |
| "wZ8rLPfrVdyv6+P6WKy03V49xlgRy9FTZyw+vwJcz/e9VuLqCv" + |
| "oeiXmzKjxtJlxp5CvL5xBj2FzlM2w/Tj9c/n6sj5bZj/XRIvtx" + |
| "/2P5f3Hl95mb8N6srON/9f6xvDcbfkz2JntipQUmY0aUC7Z+WA" + |
| "cKikKPtVI5sZLNyXM8w+agNaSq8ExU6iti9bgyyh92Xe//fLOv" + |
| "6/2flr+u61di27a1MrYIONKib709Ag3PVuWUp0ZnXopl1WKGPG" + |
| "LE6nMW6SxjLI+X+0y5X5d1LOtY1rGsY1nHso635f1j9S/mIuaN"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value23 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value23[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value24 = null; |
| |
| protected static void value24Init() |
| { |
| try |
| { |
| final int rows = 59; |
| final int cols = 82; |
| final int compressedBytes = 1686; |
| final int uncompressedBytes = 19353; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWsFqJFUULXRwKQwuXKiMoCtnQHAlKAOT6tqKG79AMaEJZJ" + |
| "FkPzZjJoxD8gf+xJBsXPoF+YBZZePsBBU3Eq2qV7fOuee+qqST" + |
| "lrRY9ah33zv33HPvfdOV7kynKBYfLj5YvLV4ULTX4t2i+G6/WO" + |
| "JavJNFPw7I+8XKrsXbo96PltJ6z1ZPTjrk/pLVfFIU5Va5leZk" + |
| "GzztbG0zOBjwMJ7UWUNR1TKfVRb1PRLrVlWLBFe78NHIrlljf6" + |
| "iT+fFa7vU4Xd2rcnquFbnGcz2doz/HJz9O53ir7zO75W6ak21/" + |
| "cu7aHghzMOBhvPv5SxqKqpb5+p/dQd8jsW5VtUhwtQsfjeyaNf" + |
| "aHOkl1s9ys7abZ1rNpeyDMwYCH8U6fNBRVLfP1tQV9j/icOVWL" + |
| "BFe78NHIrlljf6gT/Nmd2R19nSYs4ZiB2Zp3OU5U5li2OZbPby" + |
| "PP8tm1Ms7s7VD2GDOMpYzly/Kl8hKWcMzAvA98jjM0f4E7xDLc" + |
| "ZhvQ9znymb22osPZY8wwljLP5rN5fZ5zs+0Jz20PhDkY8DDe/T" + |
| "u5lV97rcy/eND3iM+ZU7VIrkQ7jXywfA0xB9fa3FVZlUXRzMk2" + |
| "nrSzNSPgGhu36pgCUNNTLT1Fn4334HosrlmbbdRF7VxhrFKr8P" + |
| "yNuxt3i6KZk208aWdrRsA1Nm7VMQWgpqdaeo4+G+/B9Vhcszbb" + |
| "qIvaucJYpVah/Onz42o+h9v16Beb08pfjOX8w+yr4Mq6Co9ZXP" + |
| "Vluce1h3Ij+tI85zanVc4b12NaV8eVdRUes7jqy3KPaw/lRnRe" + |
| "5+nrB7+l5/rg16fdc33wx82fvKevKXLw5+qe64PfR70X11T9q7" + |
| "N/Lx+78WrjVZqTNSztgTAHAx7GWRl6vPZa+aq8vkdi3apqkVyJ" + |
| "dhr5YPkaYg6uFbHT/z/+G9d0jqu5Hv18u/G32dV1ay/Py/M8ln" + |
| "DMwLwPfI7LK3MGjhmuy2Yb0Pc58pm9tqLD2WPMMKY10fvWT9Mz" + |
| "uYrrh2+mM5jOcX2u5/enM1jJOT6YzmDZq3pRvUhzY4HZHrNh8P" + |
| "KtO1OGnq0Z8Xl9VZwDI1+39/vqUImP8NGcm28/axWkelqd1vY0" + |
| "2c5zij1mw+DlW3eJx3q2ZsTnpdokBwYzYk1Q95XluvDRnJtvP2" + |
| "sVzJ/+/zEg098B3Pgcb/L/uOWbaW5sM6e9IckPDGuO9ghHenzk" + |
| "N4c++xgP+bVOrlB3iozpa3bVs3jtcHo9Ts/1Op1j/dp8I82Nbe" + |
| "a0NyT5gWHN0R7hSI+PPNd99jEe8mudXKHuFBnT1+yqZ/Ha4fR6" + |
| "XMX7THVYHaY52fYT0aHtFQHX2LhVxxSAmp5qhU+Ph5qDEeV4Bt" + |
| "eAHnJdeKZ16jtS9XgyxA/fClUXDZZwzMC8L7/zq1wGH5WvwfM9" + |
| "lmMl+/heNfpNFyqNilf6HfBCd3mV6qL4T1+P791G1unn4yrer8" + |
| "t5OU9zsu170Nz2QJiDAQ/j3TsbaSiqWubr3yODvkdi3apqkeBq" + |
| "Fz4a2TVr7K90f2/W+fbL+tXXzMm2nn3bA2EOBjyMd/qkoahqma" + |
| "+vLeh7xOfMqVokuNqFj0Z2zRr7K93z2vl2yp3a7phtPTu2B8Ic" + |
| "DHgY7/RJQ1HVMl9fW9D3iM+ZU7VIcLULH43smjX2hzpJ9bg8ru" + |
| "2x2dZzbHsgzMGAh/FOnzQU9VqZT8NB3yM+Z07VIsHVLny0cREX" + |
| "9bRD5pd75V5t98y2nj3bA2EOBjyMd/qkoahqma+vLeh7xOfMqV" + |
| "okuNqFj0Z2zRr7Q52kul1u13bbbOvZtj0Q5mDAw3inTxqKqpb5" + |
| "+tqCvkd8zpyqRYKrXfhoZNessT/USapH5VFtj8y2niPbA2EOBj" + |
| "yMd/qkoajXyjzXQd8jPmdO1SLB1S58tHERF/W0Q+YvPotdPPu2" + |
| "/8brqyU+RX1+3U+Dz679Pe/i07X5nuth9TDNyRqW9oqAa2zcqm" + |
| "MKQE1PtXI1qRLX5DmewTWgh1wXnmmd+o5UPZ5Mz51Vs9rOzLae" + |
| "me0VAdfYuFXHFICanmqFc5xpDkaU4xlcA3rIdeGZ1qnvSNXjyf" + |
| "Tcs+qstmdmW8+Z7YEwh9kcxbvEwwprRtjjTlJyYDAj1gR1X1mu" + |
| "Cx/NufnWyFixcaffr1f1PZde6/93pN9/Oer9Yj2qnM5xNdfzr4" + |
| "vpWsU5Tn+3t/znx5PqJM3VCWO2x2wYvHzrzpShZ2tGfF5fFefA" + |
| "yNft/b46VOIjfDTn5tvPWgXzM6/Hren19f94n1nD6x8kzaeB"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value24 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value24[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value25 = null; |
| |
| protected static void value25Init() |
| { |
| try |
| { |
| final int rows = 50; |
| final int cols = 82; |
| final int compressedBytes = 1582; |
| final int uncompressedBytes = 16401; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtWU1u5GQQ9RLWLFgAEhJZARISF0g0Hh9hThElmizQTH4lGs" + |
| "0myiq5ARwif7fIDTgFLLFdfn6vXnlayigLNHJ/8leuV69eVbm7" + |
| "3d1J0zTNq3+acR/ssIcP5HIncGA8J5If1HBm5WadyNzGC9Yff6" + |
| "saOtd+sueI6m/+XO4959VaPuFmZ/PD5qvNz5P3bdP8/lvzjMfm" + |
| "m0X0l4J837zYY/P11uiPz9L6riA/PbObX9fr+FLXsfvQfYg97I" + |
| "CHh3NFyAWbh+tAgSj0XMv7ytXUJzdj9Vy11VZd9q4d1i69i8x/" + |
| "/eb1m6YZ9rBDJDycYyeHixHFQz+f5fOsVZ/hqp+RXHNJFZnaiU" + |
| "9a+WTlHmoN7TWO9X293h//P9exfde+iz3sgIeHc+zkcDGieKir" + |
| "hqOuhRg6q/oZqX27KjLJ9SlyNqt71Tof+xTV/Xa/t/uwY2QfPh" + |
| "HlcDGi+KQvGo66FmJzb0U/I7nmkioyyfUpcjare9U6H/sU1bP2" + |
| "rLdnsGPkDD4R5XAxovikLxqOuhZic29FPyO55pIqMsn1KXI2q3" + |
| "vVOh/7FNWb9qa3N7Bj5AY+EeVwMaL4pC8ajmatesep+hnJNZdU" + |
| "kUmuT5GzwWVe1fMJM3/9nHmRz5nj9jj2sOMVPoZPRDlcjCg+PU" + |
| "+i4ahrITY/x0U/I7VvV0UmuT5FzmZ1r1rnY5+iet1e9/Yadoxc" + |
| "wyeiHC5GFJ/0RcPRrLXwvi76Gck1l1SRSa5PkbPBZV7V8wkzf3" + |
| "1fv8jv691uN/aw4y/GXfiOkAs2D9eBAlHouVb5fb3rNRRxTmZo" + |
| "D5xhaYrMxKR5IlevV2bmPnVPvX2CHSNP8IkoR9mapV7weMZzRT" + |
| "SSrqTV4FJG7YnqubOlKXK21tbDM2vHOnN+XF026+MFHs+7P66P" + |
| "jz2urtZr8Amffevn9fp3s/U6fnbXsf82/kXsgx328IFc7gROLs" + |
| "41OyPQcGblZp3I3MYL1vB/V+9TO3TPEdXP/3et1V0P+XXCV//G" + |
| "PthhDx9IxInxXLMzopkZ//h1ZPVtPNb3PrVD9xzZpu/VXQ/5GW" + |
| "/ft+9jDwssfCLK4WJEcSqrnqKuhdj8Gij6Gal9uyoyyfUpcjar" + |
| "e9U6H/tU/np/XD9n1uu4Xsf1Oi7+3Wyv24s97PgXjD34jpALNg" + |
| "/XgQJR6LlW+WvPntdQxDmZoT1whqUpMhOT5olcvV4Z8hd+X/+1" + |
| "/lr+lEf7ZeyDHfbwgUScGM81OyOamfHtXUTmNh7re5/aoXuObN" + |
| "P36q6HfJ9wvT+unzPrdfzcrmP7tn0be9jxPf8WPhHlcDGi+HQn" + |
| "EQ1HXQux+Z5U9DNS+3ZVZJLrU+RsVveqdT72qfz19fgir8eD9i" + |
| "D2sOMVPoBPRDlcjCg+PU+i4ahrITY/x0U/I7VvV0UmuT5FzmZ1" + |
| "r1rnY5/kd/fdff898j7s9M3ynj53YIzq4V7wVA/niuS68k3can" + |
| "Apo/ZE9dzZ0hQ5W2vrkXfvQlRvu9ve3oadIrf0uQNjVA/3gqd6" + |
| "OFck15XerAaXMmpPVM+dLU2Rs7W2Hnn3Lshvz9vz/nV5Dju+Us" + |
| "/hE1EOFyOKT6930XDUtRCb3ytFPyO55pIqMsn1KXI2q3vVOh/7" + |
| "FNWj9qi3R7Bj5Ag+EeVwMaL4pC8ajroWYnNvRT8jueaSKjLJ9S" + |
| "lyNqt71Tof+xTVk/aktyewY+QEPhHlcDGi+KQvGo66FmJzb0U/" + |
| "I7nmkioyyfUpcjare9U6H/sU1cP2sLeHsGPkED4R5XAxovikLx" + |
| "qOuhZic29FPyO55pIqMsn1KXI2q3vVOh/7JL977B77++Rj2OnO" + |
| "+UifOzBG9XAveKqHc0VyXbl3Ww0uZdSeqJ47W5oiZ2ttPfLuXY" + |
| "jqXXfX27uwU+SOPndgjOrhXvBUD+eK5LrSm9XgUkbtieq5s6Up" + |
| "crbW1iPv3oWoPnQPvX0IO0Ue6HMHxqge7gVP9XCuSK4rvVkNLm" + |
| "XUnqieO1uaImdrbT3y7l2Q3160F/37+wJ2fMdfwCeiHC5GFJ/u" + |
| "G6LhqGshNt9zin5Gcs0lVWSS61PkbFb3qnU+9imqp+1pb09hx8" + |
| "gpfCLK4WJE8UlfNBx1LcTm3op+RnLNJVVkkutT5GxW96p1PvYp" + |
| "/P8AJ1CrPw=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value25 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value25[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| if (row <= 58) |
| return value[row][col]; |
| else if (row >= 59 && row <= 117) |
| return value1[row-59][col]; |
| else if (row >= 118 && row <= 176) |
| return value2[row-118][col]; |
| else if (row >= 177 && row <= 235) |
| return value3[row-177][col]; |
| else if (row >= 236 && row <= 294) |
| return value4[row-236][col]; |
| else if (row >= 295 && row <= 353) |
| return value5[row-295][col]; |
| else if (row >= 354 && row <= 412) |
| return value6[row-354][col]; |
| else if (row >= 413 && row <= 471) |
| return value7[row-413][col]; |
| else if (row >= 472 && row <= 530) |
| return value8[row-472][col]; |
| else if (row >= 531 && row <= 589) |
| return value9[row-531][col]; |
| else if (row >= 590 && row <= 648) |
| return value10[row-590][col]; |
| else if (row >= 649 && row <= 707) |
| return value11[row-649][col]; |
| else if (row >= 708 && row <= 766) |
| return value12[row-708][col]; |
| else if (row >= 767 && row <= 825) |
| return value13[row-767][col]; |
| else if (row >= 826 && row <= 884) |
| return value14[row-826][col]; |
| else if (row >= 885 && row <= 943) |
| return value15[row-885][col]; |
| else if (row >= 944 && row <= 1002) |
| return value16[row-944][col]; |
| else if (row >= 1003 && row <= 1061) |
| return value17[row-1003][col]; |
| else if (row >= 1062 && row <= 1120) |
| return value18[row-1062][col]; |
| else if (row >= 1121 && row <= 1179) |
| return value19[row-1121][col]; |
| else if (row >= 1180 && row <= 1238) |
| return value20[row-1180][col]; |
| else if (row >= 1239 && row <= 1297) |
| return value21[row-1239][col]; |
| else if (row >= 1298 && row <= 1356) |
| return value22[row-1298][col]; |
| else if (row >= 1357 && row <= 1415) |
| return value23[row-1357][col]; |
| else if (row >= 1416 && row <= 1474) |
| return value24[row-1416][col]; |
| else if (row >= 1475) |
| return value25[row-1475][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in value25 lookup"); |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| valueInit(); |
| value1Init(); |
| value2Init(); |
| value3Init(); |
| value4Init(); |
| value5Init(); |
| value6Init(); |
| value7Init(); |
| value8Init(); |
| value9Init(); |
| value10Init(); |
| value11Init(); |
| value12Init(); |
| value13Init(); |
| value14Init(); |
| value15Init(); |
| value16Init(); |
| value17Init(); |
| value18Init(); |
| value19Init(); |
| value20Init(); |
| value21Init(); |
| value22Init(); |
| value23Init(); |
| value24Init(); |
| value25Init(); |
| } |
| } |
| |
| /** |
| * The GOTO table. |
| * <p> |
| * The GOTO table maps a state and a nonterminal to a new state. |
| * It is used when the parser reduces. Suppose, for example, the parser |
| * is reducing by the production <code>A ::= B C D</code>. Then it |
| * will pop three symbols from the <code>stateStack</code> and three symbols |
| * from the <code>valueStack</code>. It will look at the value now on top |
| * of the state stack (call it <i>n</i>), and look up the entry for |
| * <i>n</i> and <code>A</code> in the GOTO table to determine what state |
| * it should transition to. |
| */ |
| protected static final class GoToTable |
| { |
| /** |
| * Returns the state the parser should transition to if the given |
| * state is on top of the <code>stateStack</code> after popping |
| * symbols corresponding to the right-hand side of the given production. |
| * |
| * @return the state to transition to (0 <= result < Parser.NUM_STATES) |
| */ |
| protected static int getGoTo(int state, Nonterminal nonterminal) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert nonterminal != null; |
| |
| return get(state, nonterminal.getIndex()); |
| } |
| |
| protected static final int[] rowmap = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, 0, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 18, 0, 0, 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 21, 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 0, 0, 2, 25, 0, 0, 0, 3, 0, 26, 0, 27, 0, 28, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 4, 30, 31, 0, 0, 32, 5, 0, 33, 0, 0, 6, 34, 0, 0, 0, 0, 0, 0, 35, 0, 4, 0, 36, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 6, 0, 0, 38, 7, 0, 0, 39, 40, 8, 0, 0, 0, 41, 42, 0, 0, 9, 0, 43, 0, 44, 0, 45, 0, 10, 46, 11, 0, 47, 0, 0, 0, 48, 49, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 11, 0, 0, 0, 0, 0, 0, 0, 51, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0, 0, 0, 0, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 2, 0, 14, 0, 15, 0, 0, 52, 0, 2, 0, 0, 16, 17, 0, 3, 0, 3, 3, 0, 0, 1, 18, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 53, 0, 0, 0, 20, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 55, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 56, 21, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 6, 57, 0, 58, 22, 0, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 59, 0, 23, 0, 9, 0, 0, 10, 1, 0, 0, 0, 60, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 2, 0, 12, 0, 0, 0, 0, 0, 13, 0, 0, 61, 14, 0, 0, 0, 0, 0, 0, 0, 0, 1, 62, 0, 0, 0, 63, 0, 0, 0, 64, 65, 0, 0, 14, 0, 0, 66, 15, 0, 0, 16, 0, 0, 67, 17, 0, 0, 0, 0, 0, 24, 25, 1, 0, 26, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 28, 1, 0, 0, 0, 0, 3, 4, 0, 0, 0, 29, 30, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 34, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 35, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 38, 3, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 39, 16, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 1, 6, 0, 5, 0, 43, 7, 0, 1, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 45, 0, 46, 47, 0, 48, 49, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 54, 0, 1, 55, 0, 0, 0, 8, 56, 0, 57, 0, 58, 0, 0, 0, 6, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 59, 60, 9, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 8, 61, 62, 0, 0, 9, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 63, 0, 0, 0, 0, 0, 69, 0, 0, 0, 64, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 67, 17, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 20, 0, 0, 68, 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, 69, 25, 26, 0, 0, 0, 70, 71, 0, 0, 0, 4, 0, 72, 0, 70, 5, 0, 0, 73, 1, 0, 0, 0, 27, 74, 0, 0, 0, 28, 0, 0, 29, 0, 0, 0, 1, 0, 6, 0, 11, 0, 0, 0, 0, 0, 19, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 72, 0, 30, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 11, 0, 75, 76, 12, 0, 73, 77, 0, 0, 1, 0, 0, 0, 2, 0, 3, 0, 0, 78, 0, 13, 79, 80, 81, 82, 0, 83, 74, 84, 1, 85, 0, 75, 86, 87, 88, 76, 14, 2, 15, 0, 0, 0, 89, 90, 0, 0, 0, 91, 0, 0, 92, 0, 93, 94, 0, 95, 96, 9, 0, 0, 2, 0, 97, 0, 0, 98, 1, 99, 0, 3, 0, 0, 0, 0, 0, 100, 2, 0, 0, 0, 0, 0, 0, 0, 101, 102, 0, 0, 0, 0, 0, 0, 0, 103, 104, 0, 3, 4, 0, 0, 0, 105, 1, 106, 0, 0, 0, 107, 108, 5, 0, 0, 0, 0, 0, 0, 0, 10, 0, 1, 0, 0, 0, 4, 109, 5, 0, 1, 110, 111, 0, 0, 4, 112, 0, 6, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 114, 0, 0, 0, 0, 1, 2, 0, 2, 0, 3, 0, 0, 0, 0, 0, 20, 0, 0, 6, 0, 16, 0, 115, 17, 1, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 18, 0, 0, 19, 0, 0, 0, 116, 7, 0, 117, 118, 0, 11, 0, 0, 0, 12, 119, 0, 0, 0, 0, 0, 20, 0, 2, 0, 0, 7, 0, 0, 0, 4, 0, 120, 121, 0, 5, 0, 0, 0, 0, 0, 122, 0, 0, 0, 123, 124, 125, 0, 8, 0, 126, 0, 13, 9, 0, 0, 2, 0, 127, 0, 2, 3, 128, 0, 0, 14, 129, 0, 0, 0, 15, 10, 0, 0, 0, 0, 77, 0, 0, 1, 0, 2, 0, 21, 0, 0, 0, 22, 0, 130, 131, 0, 132, 133, 134, 135, 0, 0, 0, 1, 0, 0, 0, 136, 0, 0, 23, 24, 25, 26, 27, 28, 29, 137, 30, 78, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 40, 0, 41, 42, 43, 0, 44, 45, 138, 46, 47, 48, 49, 139, 50, 51, 52, 55, 56, 57, 0, 5, 58, 1, 0, 2, 0, 6, 0, 0, 0, 0, 0, 0, 140, 141, 142, 0, 143, 0, 59, 4, 79, 0, 144, 7, 0, 0, 145, 146, 0, 0, 11, 60, 147, 148, 149, 150, 151, 80, 152, 0, 153, 154, 155, 156, 157, 158, 159, 160, 61, 0, 161, 162, 163, 164, 0, 0, 7, 0, 0, 0, 0, 62, 0, 0, 0, 0, 165, 0, 166, 0, 0, 0, 0, 1, 0, 2, 167, 168, 0, 0, 169, 0, 170, 12, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 0, 174, 175, 0, 8, 12, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 16, 0, 0, 17, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 176, 177, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 82, 0, 13, 0, 0, 0, 178, 2, 0, 3, 0, 0, 0, 14, 0, 179, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 180, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 182, 19, 0, 0, 0, 4, 0, 0, 5, 6, 0, 0, 1, 7, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 184, 185, 186, 0, 2, 0, 3, 0, 0, 0, 14, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 187, 0, 188, 189, 0, 0, 20, 0, 21, 0, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 17, 9, 10, 0, 11, 0, 12, 0, 0, 0, 0, 0, 13, 0, 14, 0, 0, 0, 0, 0, 191, 0, 0, 192, 0, 0, 0, 193, 22, 0, 0, 0, 0, 23, 194, 24, 18, 0, 0, 0, 0, 0, 0, 195, 0, 0, 1, 0, 0, 19, 196, 0, 3, 0, 0, 7, 15, 1, 0, 0, 0, 1, 0, 197, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 198, 0, 0, 199, 200, 0, 201, 20, 0, 0, 202, 0, 0, 21, 0, 0, 0, 83, 0, 26, 0, 203, 0, 0, 0, 0, 0, 204, 22, 0, 0, 0, 0, 18, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 7, 3, 0, 0, 0, 0, 0, 0, 1, 206, 207, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 209, 0, 0, 0, 210, 64, 0, 211, 0, 2, 3, 3, 0, 0, 0, 65, 86, 0, 0, 24, 0, 0, 0, 27, 212, 0, 213, 25, 28, 0, 214, 215, 0, 26, 216, 0, 217, 218, 219, 0, 220, 29, 221, 27, 222, 223, 224, 28, 225, 0, 226, 227, 6, 228, 229, 30, 0, 230, 231, 0, 0, 0, 0, 0, 66, 0, 2, 0, 0, 232, 0, 233, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 235, 31, 0, 0, 0, 0, 18, 19, 20, 21, 22, 0, 23, 236, 0, 24, 25, 30, 26, 27, 0, 28, 29, 0, 30, 31, 32, 33, 0, 67, 68, 0, 0, 0, 237, 4, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 238, 239, 1, 0, 1, 32, 0, 0, 0, 0, 4, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 240, 69, 0, 0, 241, 0, 0, 242, 243, 0, 0, 0, 0, 33, 34, 0, 0, 3, 0, 0, 244, 0, 245, 0, 87, 246, 0, 247, 0, 0, 35, 0, 0, 0, 248, 0, 249, 36, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 32, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 250, 20, 0, 251, 0, 0, 1, 38, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 7, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 252, 37, 253, 254, 38, 255, 0, 256, 39, 257, 0, 41, 0, 258, 0, 40, 259, 41, 0, 0, 0, 0, 0, 260, 0, 261, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 263, 0, 0, 264, 0, 8, 0, 0, 43, 0, 265, 266, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 23, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 268, 269, 270, 271, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 273, 44, 10, 0, 0, 12, 0, 13, 5, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 274, 0, 0, 0, 275, 0, 0, 0, 0, 43, 45, 0, 0, 276, 277, 278, 0, 46, 279, 0, 280, 47, 48, 0, 0, 8, 281, 0, 2, 282, 283, 0, 0, 0, 0, 8, 49, 284, 285, 50, 286, 0, 0, 51, 0, 3, 287, 288, 0, 289, 0, 0, 0, 0, 0, 0, 0, 290, 291, 52, 0, 0, 0, 53, 0, 0, 292, 0, 0, 0, 293, 0, 0, 0, 294, 1, 0, 0, 0, 5, 2, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 296, 45, 0, 0, 0, 0, 0, 71, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 2, 0, 298, 14, 3, 0, 0, 0, 0, 0, 11, 0, 0, 1, 0, 0, 2, 0, 299, 46, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, 55, 0, 0, 56, 0, 302, 0, 0, 0, 0, 0, 0, 57, 0, 0, 36, 0, 0, 0, 37, 5, 303, 6, 304, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 305, 3, 306, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, 308, 0, 309, 0, 0, 310, 0, 0, 0, 311, 0, 0, 58, 312, 0, 0, 0, 0, 0, 313, 0, 0, 7, 314, 0, 0, 0, 315, 316, 0, 47, 317, 0, 0, 0, 59, 88, 0, 0, 0, 318, 319, 60, 0, 61, 0, 2, 26, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 89, 0, 0, 0, 3, 48, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 320, 0, 49, 321, 50, 0, 72, 0, 51, 0, 0, 0, 0, 322, 323, 64, 0, 0, 324, 65, 66, 0, 52, 0, 325, 67, 326, 0, 68, 53, 327, 328, 69, 70, 0, 54, 0, 329, 330, 0, 71, 55, 331, 0, 56, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 332, 0, 9, 333, 0, 0, 334, 335, 336, 73, 0, 0, 0, 337, 0, 0, 0, 338, 339, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 58, 59, 340, 74, 0, 0, 0, 0, 75, 0, 0, 38, 0, 0, 0, 0, 0, 341, 60, 342, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 344, 0, 345, 0, 0, 27, 0, 0, 6, 0, 1, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 347, 0, 62, 348, 63, 0, 64, 349, 350, 0, 0, 65, 351, 0, 66, 0, 0, 76, 0, 0, 352, 353, 0, 0, 77, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 354, 355, 90, 0, 356, 0, 0, 0, 357, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 67, 0, 79, 0, 358, 0, 80, 68, 359, 0, 360, 361, 362, 81, 82, 0, 363, 69, 83, 364, 0, 365, 366, 367, 84, 0, 0, 0, 368, 0, 0, 0, 0, 0, 3, 0, 7, 0, 0, 34, 1, 8, 0, 0, 0, 0, 0, 0, 0, 70, 369, 0, 71, 0, 0, 0, 85, 0, 4, 5, 0, 0, 6, 0, 0, 3, 0, 0, 0, 370, 0, 371, 86, 372, 0, 0, 0, 0, 0, 72, 73, 0, 373, 1, 0, 4, 0, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 74, 75, 374, 76, 0, 88, 89, 77, 0, 78, 375, 0, 376, 377, 0, 0, 378, 379, 0, 0, 0, 7, 0, 91, 90, 0, 0, 380, 0, 381, 0, 382, 383, 384, 0, 91, 385, 386, 387, 388, 92, 93, 0, 0, 0, 389, 0, 390, 391, 392, 0, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 80, 393, 0, 0, 0, 0, 0, 7, 0, 16, 0, 0, 0, 0, 394, 0, 395, 0, 0, 96, 0, 97, 0, 0, 6, 0, 0, 0, 8, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 397, 0, 0, 398, 399, 0, 400, 0, 0, 0, 0, 98, 99, 0, 0, 0, 92, 93, 0, 100, 0, 101, 102, 401, 0, 103, 104, 0, 0, 0, 0, 81, 0, 0, 105, 0, 0, 0, 0, 82, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 402, 0, 403, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 106, 0, 83, 107, 108, 0, 84, 406, 407, 0, 0, 0, 408, 0, 409, 0, 109, 0, 0, 85, 0, 410, 0, 0, 86, 0, 411, 0, 0, 0, 0, 0, 0, 0, 0, 87, 8, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, 413, 0, 88, 414, 0, 415, 0, 89, 0, 110, 111, 112, 113, 0, 416, 0, 114, 417, 418, 0, 115, 419, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, 0, 420, 0, 421, 0, 0, 119, 422, 0, 120, 121, 423, 0, 122, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 124, 0, 125, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| protected static final int[] columnmap = { 0, 1, 2, 0, 3, 0, 4, 5, 2, 6, 3, 2, 0, 3, 3, 7, 8, 1, 9, 1, 2, 0, 4, 10, 1, 6, 9, 6, 1, 0, 11, 9, 12, 5, 11, 1, 13, 3, 1, 1, 3, 7, 0, 14, 15, 16, 17, 9, 11, 18, 3, 2, 16, 19, 3, 6, 11, 20, 4, 9, 7, 21, 22, 23, 24, 1, 0, 25, 26, 2, 27, 28, 1, 29, 30, 0, 3, 31, 16, 2, 32, 0, 11, 33, 34, 9, 1, 0, 8, 35, 36, 16, 1, 37, 38, 4, 1, 39, 1, 5, 6, 40, 41, 6, 42, 43, 13, 44, 45, 2, 46, 1, 47, 0, 1, 48, 49, 3, 3, 50, 9, 51, 52, 53, 54, 9, 1, 3, 1, 55, 56, 7, 4, 5, 0, 57, 0, 58, 59, 18, 7, 60, 61, 62, 63, 1, 18, 15, 64, 65, 66, 17, 67, 20, 68, 2, 69, 4, 70, 2, 71, 72, 73, 0, 0, 4, 20, 74, 4, 75, 76, 77, 18, 5, 78, 20, 79, 80, 81, 3, 82, 83, 10, 6, 11, 2, 84, 2, 85, 86, 5, 87, 1, 88, 1, 89, 90, 91, 92, 21, 93, 94, 95, 96, 3, 97, 98, 1, 7, 99, 10, 2, 100, 101, 102, 103, 22, 104, 105, 106, 0, 107, 108, 5, 109, 0, 110, 16, 8, 8, 3, 27, 111, 112, 9, 10, 113, 3, 3, 1, 114, 2, 12, 115, 116, 0, 117, 5, 118, 119, 120, 121, 122, 123, 124, 9, 21, 0, 125, 8, 1, 1, 126, 127, 2, 22, 0, 4, 0, 128, 11, 2, 14, 129, 29, 130, 131, 132, 1, 11, 29, 1, 133, 12, 1, 134, 5, 17, 5, 1, 135, 17, 18, 7, 136, 137, 138, 21, 25, 14, 5, 12, 139, 1, 8, 140, 141, 21, 142, 4, 143, 144, 5, 145, 146, 147, 148, 149, 150, 25, 30, 151, 152, 9, 9, 153, 31, 24, 8, 154, 155, 4, 156, 6, 157, 158, 159, 160, 10, 161, 2, 162, 163, 164, 33, 14, 165, 166, 167, 35, 168, 2, 7, 8, 169, 170, 9, 36, 171, 172, 2, 173, 174, 175, 39, 29, 40, 176, 177, 3, 178, 43, 9, 10, 179, 180, 13, 44, 181, 182, 183, 184, 185, 186, 15, 4, 187, 188, 21, 6, 1, 18, 189, 190, 191, 9, 192, 193, 12, 1, 194, 195, 196, 22, 0, 2, 20, 197, 25, 18, 198, 2, 11, 20, 14, 3, 10, 23, 0, 199, 10, 200, 201, 0, 8, 10, 202, 203, 204, 9, 205, 206, 13, 207, 22, 208, 209, 2, 0, 210, 211, 212, 30, 17, 11, 8, 2, 1, 213, 9, 31, 12, 214, 215, 11, 216, 217, 45, 218, 21, 219, 220, 221, 2, 222, 223, 224, 12, 22, 47, 3, 12, 225, 7, 14, 226, 227, 6, 228, 229, 16, 230, 56, 231, 232, 233, 1, 13, 234, 235, 236, 237, 238, 3 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return -1; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 1569; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXT2OGzcUfqTeyhNlC8rYwnbFxEKqFIsgB2CMLQIjhYoUKR" + |
| "fYdGl8BHqRAEGSwkdY9ylyhAWSA+QIPoKLHCDkaDSa0XD+NH/k" + |
| "6D3AsmeX0gzfz/d+Kd+xt/DrC31hXpev9PMf1BOQ36gfvxT/wP" + |
| "ca3v33OW5xwT+9xNd/f/X0zcNzuWHyCtb6lz8//P7dX0A0B+KF" + |
| "n6zMHyxdo+yLBpDEupmSKMg/Q2z/Dw/k/9LoYRQBGPxCrp8JWI" + |
| "Jk6gv7ZDcA14rjv+wTWF2iWkguYA0bIW/MXxd/3OpLwq/OdGf9" + |
| "xzOwr0tu/cfS+o/NJvEfHzhugXHLf+M/ttZ/QOI/bn8j/2Gg9C" + |
| "0DLaxJRQZhmVI7eEXxCKhBP1gr1Nwa4+NToR4iuTPOd1rCShH+" + |
| "eoM/7w3+rFL82RjJPBj8EQZ/toxhjD+3O/yBjU/4o9jCaFaqf9" + |
| "8qo10qgst1rH+Psf5Z34881T+jrvCzlpr0zw/8lSX4e2Pw96PF" + |
| "37Ubfyl+r/dfH3P+6w3xb0D8uTfIeYQ/ugx/9AD4EyVx7z4Exk" + |
| "Pmo5NfoL2SyTIZzQn/sHZBRNpKRERERDSr+K+6/g0LG/+9Kq9/" + |
| "ZxyjcHrUeAHbl1DlLpq4hj7ih7uLXPy6dcX/VfWXn9h7qMsfGO" + |
| "UPROHRVe2KrP2x2HijjDHH9iuS60jkE4X4DdIT/Ersd3GC/XtB" + |
| "PHlBTECTFTMSXiO/M6W0/yGy/Q9bf4RD/THuf7xM+h/gYf8jK2" + |
| "rO9/I2jvLQayqk6jlfS0RUxJSm+sOdC0buf6vshWhSkenj/u7+" + |
| "6R4/rmP8oP4p0Xj4P4F7D37+xeE/6/kX459i1H8+UgbecGEv8c" + |
| "fU/eMs/q9c8eNmHz+m95dD3L+4f3m8f+lj/9wL/CIKlmz/U7ef" + |
| "v9D+zl8c8rcm8be7//61s37xwlF/rOjf3+znz9Zhzp9hraOR3f" + |
| "1/j/p7X9RfPXv9Pfqhq/6fnx+Amc4PBE+sYv7j2Op2y/qTH/rA" + |
| "gHDmX3ys/GEQMp5eRjRFNIjhOrhe2n+GHvvPgRift1TTv294fm" + |
| "K6+K/z/qvnDxrsX56uFDJ8/vUX/pT0vx2wXdb/Fifzf1Ye7iTw" + |
| "xiLjLkrQfBj+1cl/oPmHmvmFkc6Pdamff1asn2O+fg5J/Xx7qJ" + |
| "/r2vp5+/yzQ8q7ZwPCskzjZjp/0aT/IfbyeyzKr7p/GuL8xazE" + |
| "SzS2SKUTK7hvuj3CPS5T7GaYOMx4JTt6p7CvUSoaCVymLtmAUX" + |
| "zB7g3m4CozJGKcTGNh6umDVtVnDeBkLeYTbrq1/iBLPwLzK7Ek" + |
| "LPAHBcLL31U9x8gfnmxYaqwHceLbY7BJO6tQR9GrRcmq7HQycf" + |
| "aRWjtUVfUspCvnzdDBWC3GUkT0SWEDIx1sFM88tbpun6HaSU7X" + |
| "cUMNYGvYK5N4ALY+sC5g6/2p7rYdIH7xHH9Efi86ixfo5FXX98" + |
| "+qisFOEoAsU7LK+Gl0L8OGej8OJifWMtQnStkupwW5xh5MuRBF" + |
| "VT14lzKOf6lLePjb0H+LDD6wKiHo4kV0HEN47ZhxoA/Fks9XXj" + |
| "0oUT+601o4irh3VjQYBk48lNnt/PW48QPpH1GGas9PpvMfi4r5" + |
| "D5q/OAv9Jfvxjv9Nzg+WnD8c+vwg1npp6Vp6pvPLZL+0/2mp4v" + |
| "znsdXO8vzg/PXn5Oefb6LefP554fH8c0siz0kUFP6pM98/UQj8" + |
| "H/n8IKG438TzsbMn4lLupNyhrOOe35wy62myf5jp/jPYSuenw/" + |
| "M/zvO74D6/Kxqd3x33+yMHRV/t//dvtzm/e1byC4SK5x9v0/OP" + |
| "i1jA8UXN+ce+6196ZEvLzX/pLFzqLM5jJiBSpDsn2SLxjYioCn" + |
| "8gjz/8aP5UNrej0caKsHivzH9S7/IOXPj0/HOn1qDLzgu0Ma9q" + |
| "MssEWaKPu/in1++PGGguTs5acln+8xr+Ryqq4j9l6qNH34PKLx" + |
| "rLuXTHR0pmu+L3QRsc+mN12uIvQBj23xIC8vt3+S9r07n9w9D7" + |
| "9yl4o6STqKnRsQbo7Js+YYW5SfeTi97u3Cn+HeX713oNmglLBt" + |
| "HfEg+oXCublpupfnA68ylkJSIaIyvv9v0D/wP21L0M"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 1144; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXUty3CAQbQh2EZcXpMqLLHHFB8gRSJUXXuYIOQpJZZGFFz" + |
| "lKjpAj5EiR7PGMmAEJxF/qtxjX2IOA7ub1a4Q1AAEgrj8wQCAQ" + |
| "+8Ow8sX4ykEefiOBygldqJc35AeAZjegjg0VO7ZANOZRE/L4cg" + |
| "BFI6UENWwuzHSrp8Znb2+GJmrTNiFpL6dKLJn5MetX5+oM4yHj" + |
| "ALhrWCbLanEZZ9XtF8RH2bUmT5z/FOY/BALhAeEmOkt6OVJOvf" + |
| "rbwn93vvr/PobTRbbxB9cvd3DFp1ne8Bgdri8syVSxi/411k/1" + |
| "odAECASu0sT1u3xLcxx5BpFZOiLqW48H7iSsHvmEf7TH/mF+Bt" + |
| "VrVLiDP8E1fkx3Tfi/gfs/F/lXeM5/K/cxqNuSfC6ePNZpbHus" + |
| "vxCInUsohWu9cTAf0g/P/8Qr/yszGih1hwZJfWM4ueRHRJpQd6" + |
| "nK/MvHXJxHQ4anZtf/9FN8Mbjbqz/zO1V1QQICLLU0Jl5EDZDN" + |
| "zow7N6bwoGQjopZt1jNv+vup3v4bxj+iXvyLmfqT+cZ/oRsLpH" + |
| "J71BCIjdm/q/8/wvjF+Edg/kSE8LdKxt8YP8ulsi8mm4sx5997" + |
| "h7iwxgJUOf+V0DefBpfzwfvf4Rej+qOAa5BEPYxdPw5mUZR9JQ" + |
| "Rubpl6J6mAD/AA8nH4cfX8Td/+acV+qfhLptOfeJzTm3/3zD+7" + |
| "yl/70m8UjB3URghBZbmmNKe9BI2cWVX8bcja3GmEq8UZZhBYEu" + |
| "MxVov7x3VpY+P+Q6BdKNq/ASAnNZGB2YnhVL4BhJ/fo5HtG5j/" + |
| "klHYKgcScJy0ZD0tdrIvqS1LJKKF/mnF/tcuFe4KG2kNdyryrN" + |
| "RQ/khz/zh2/SdozwOzt4DsDojkv1r8yxPNn536Z+f9kzKLsoj9" + |
| "4vN/7fhJrD90d/qvTQFMXJ/04b+S+Wfv+be6/8sICFv+HFr+9n" + |
| "/+nTL0w30b41+tf/zHH8tXsmoNknn/48z+YLM/HOwPdv1ZdeWG" + |
| "xM/K8bv9H9Y/VzXs14Kftg1z/cDU/4c3oyYz4g/SxB9iN/Ezw1" + |
| "8z/O3VHtGx8k6Qv/34C1bzV54MJoq1797/K/RP2FNY2o6fOvVj" + |
| "ofpNjPXNy+XodP/nvc2Fep1/Ec1C+vhRtTXmnYWeTFe/rqof2+" + |
| "JZlYY/LfaT3vZjTelfab5Ra+f/mgHO5v/FFT/X+efPA2ZhQbn9" + |
| "16MbsCTaCfh5fKrAdVqCFs+6bjM4t/v8tYKgUdHRugD8W67mFp" + |
| "X7R3grHtHVaJuqlNItZ2f9wV/5m/076cefN6cHrz+N+pkvGinL" + |
| "+OkKLVkO+P3FsckOMc9BtHvv9yH+eOfj9wUJOL+rz4SUVhZb3Z" + |
| "sftVC/HK/6OR/nxuS/u/Tnj2LFxYaLpQTzz//944gMmx25hBrf" + |
| "5RLZTC4qrtaj7r9ke/5OJ/ZDtFBzVp15tv9fm4Xl/Lhe3X+//N" + |
| "3H82dVs/YrXT1u1f8p5bTeXPznXj+5z59vot5A/V1YGohJrPX2" + |
| "/U/1FF0D5ateqiYa8t9/USSgUg=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 959; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXe1t2zAQpQiiIIqgUIEMQAMdoCNc/uVnRugobJEBOkpH6U" + |
| "i1HFuWXNKWxOOX+F4AI1Z4Jo/Hu3tH0YoQvLDjy4DO04o4u9RC" + |
| "KPdf5GPho2Q/vL4Kc75ihDST0dPpTffrqJX6PBk4qVEi5/hHLX" + |
| "yf4e3zIkkn/fVcfxpanPR/O13/Oej/ftH/aF+a6b+6/91DNqVt" + |
| "Gtt3sSZYLW3Vu+MX5PPKez6g87VUzPZ/uKoU1h/kI67/zPGv9f" + |
| "hbsf4X/qtD+G/b/idnH9DP84/9mNL/+yHEr734r5m/YQ4O3PWz" + |
| "zTwsG3VmOpSeddeP/R1bqgTyYot86FZBYP4ojP9Z9lGpvOvPbB" + |
| "mGnuyy7XD/ph8lf9/wx2c/f6QZfzxUMjsmuv8E7l80Lx8aP6L0" + |
| "H+x/KeaPpf7La3+G/Jl5/ebef0D8KAaoX1gztL5XqFpMXCJ+vb" + |
| "F/A8sEeIMptv9uavmw8wde/nKWV3+v/GUq/zrI6yI8z8+/OhH9" + |
| "/AkP/wusn+qOnFntBwAAUG/85Dp/+JD0p4//C/Jnbv5iyTFnhz" + |
| "vl0Ud7M4zqu7OBlInrW1p8MU51Ta4uE/YP5ActbCeLG6nhVC9f" + |
| "sVn2+AkeAqTlD2z1uy4ydWlOomdL0sxWMf91uJa7PhCtfT2n8f" + |
| "k3+55ktvi/+i4Q8S6TPP2XD1PJ+gF2jh1yEKz/tvMngPgBAAXn" + |
| "H4qff7af/wdRbzChmhb0l7A/1AWA8kFTF8PWNgCk4+8c59d4+b" + |
| "teJxn1/NpU/qT/+Ut5ic7fy40FC1ffOfvfH28GFrizhIEAIAa6" + |
| "Ih3+Jv/+SHr/iuH+GcPzj0vf3KD99u+ArdvLKx/+xkKgXcLkjF" + |
| "/GH7/6MX7hkedVwOTyH924/2usJtgfSJLFHBevzz+anrE1w0tX" + |
| "3Pi1399c2sl+9/a7D5y/SAiq2n4GBqyu/hCi9vPH+znsaRbbTz" + |
| "6wn05ov3rJl801Bc3eGcnND8B/AACIxTv6YuPByB/syP+el/K/" + |
| "Q0la8PHfDPrf33+4XTlmZf4pv/7a942MRutfVY59Ceu31f2LF1" + |
| "/8/oTnB7NBrilicVfGv8yw1IDUqPv8G1A1LjWUPf5Iq3txTMsd" + |
| "fRtTuxRvx1+/PAnqhnuuXy8RUr2TffqD+UP9AoSwtVS1kMmcVp" + |
| "b3j1qupWh2Uz/KbfVj7eefsH+A568BlRdxVRO2vONvN+ez3P9S" + |
| "1+ZXkKO3/ny2hsoaf9FrSwW5EuAC+Sa2XzXxlcRZ8BQK4X/kjB" + |
| "8vyb6/rEX2/39J0SwTzL//ARC7pWU="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap3 = null; |
| |
| protected static void sigmap3Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 898; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXctx2zAQXWIQD0cnHFQA0kFK2Nx8TEmIxwWktJSUkJZkyg" + |
| "IpkPgD7x08kqwVFov94kdJpIgkjaTpA1qJy8th+sPzm+GNyMgT" + |
| "MV3Bkr5TGuiN/8lH/smVfx2AN9/2LfTnPfJf0psM/Z9wJjnaPp" + |
| "/bF//5U3cf87X9DQxkIdkahXHZm2X/L29m2ZzuaXQA/QvTvhu9" + |
| "tNCn0P+S7e/GRTj7PYfxf2Mu/xHCf++0v6zj98d9/DhL/OoVal" + |
| "WhOG3j+80yGSrIX7jk/AkAAAAAgMYwQgQAABD1nOyjzgEAIBKm" + |
| "aRYDZxMCBiJoRv7jjvrjwPqF2vNlxtDmqB97p08jf3FnP8oSmL" + |
| "TFzHgmbFt/fENyH/oD/quXn97JAbtGe1/64hFw/VTtbhxpSRVo" + |
| "uaSTxDb958nyZ/3/NX/+e9L/99On4TM/2T93oZd/P+1nSf860Y" + |
| "9+5lNcvOlQfwKAbd7Q7hqHCkomgREFfPKPc/jzA6rwxEOuOoax" + |
| "llH0wJm+XbtpHrzdsf3/QMD4q+vsb0Vsr+iySNJyqftnpYt/We" + |
| "PfpON/zDl+qP88lUzVff4P9RfiNwAkwdBrx9lTUsnpAaAgT9Gu" + |
| "/j6b/1/mb/P8/2VTwt38P+crGnzXP4pCpCUU5F89QbhmOfU4NR" + |
| "PdRGBrAIC6DIBPbUxYMC7oX+1giKBpSMtGEb5Zn211UgQ6PxTy" + |
| "/skLvQp//xo/l18mO0qz/h5v/MqNH+wpfy7o/rDk44f1h+z++4" + |
| "n2q8DtI/8Dera/APFbR4vfUXueff+fbtxZ6CLH78Xz/u8X+HXg" + |
| "q5rrgk1lA2LltRXt3CqI+xGBhvM37UZ5KP5Zz/8OjvSGtp6/sE" + |
| "q/6/yxS/uw/0OBCSdcm/IcS/sRD/bzs+z8d83+9br9q1v9Jvfr" + |
| "/lcYtqQSWxPDH9/X02/+KEB+R/mnQPynad8+gqpds8b8NRARvJ" + |
| "50FpT/9he/NeH5P9H0PUjuXHj+Rz0+f9Nn/Gp/fmoK/a3Nz5jC" + |
| "5O+f/8XmP/b9zT0i3ORUTP9Vhv9pO//L4D878x+4Swv1Uwj/F6" + |
| "f+6r1OK7z/zd9/FcN+uKn5hzTxYyhYt4QnoXAsx1R2hjf1v7r1" + |
| "MwAAYoP3xE+cX2kHTTw/BXEKiFU/A8+9RZbxc3x+y8b+HbPh+u" + |
| "z7n7Afs+ZUpgaIyqUqonmBo+dvdftK4yQ/APnLEfwDk+rNjg=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap4 = null; |
| |
| protected static void sigmap4Init() |
| { |
| try |
| { |
| final int rows = 609; |
| final int cols = 16; |
| final int compressedBytes = 763; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtnVFu3CAQhscWitw+8dADkBvkCByhR6JVD155k2w2rR2DzT" + |
| "Az8H9SVptILDD8MDNA1kTgiID27+KI/Pq63GsJNL+9ndaXePtl" + |
| "+k2U3HeK94LRmbcr9G+MafCBnLgs5crb4lXXD+SZ337aD5g/qR" + |
| "YBTZ31v3HL/3re+v+815926geA5ty1P8JW6nCflmwARpG9XM2l" + |
| "/t/f828nUj/VrJ+h/T9y2/88sn4N5U8B469ZeT3aH/sXLfzHdn" + |
| "mvTz/x2ApL3uoVOxv/q+t33qRy3dpmf/7EA/0/7c2fovKM4yet" + |
| "n4YL8rzzHjSWSYAZNCYlbqBuLwyfES9PjNEXBgAAMAL//kNTIt" + |
| "v+QZ38XcQeToP9EaQe6m+hsv2rovLW45cW8/dq/wXsN7Wafzrs" + |
| "r3v/+/r48/kvzB8N/uu8fi3cn9esf8Q/2L8AAAAATpIEneV0pX" + |
| "6l96eGuf/kKG7Fr3E9grsZ4eft77/2/v/ly/h36iP/089n/S00" + |
| "Dlf1K22/FDfqfP5nTf8/lQtr21/g98AA+f/19seS+AP+Rxnd2G" + |
| "/CWLaIf+rH31F5/QDI5A914m/kPx/M/S0KqeK2RxIuDw4m4lxN" + |
| "4IAx/gG1LN/B+X938Wv2/TML95fkM1Vp/XDrXzeKdfKh/3TX/4" + |
| "nzu779VyCQaSaYarD4J6N8LPCfft8pTSwTs+r3VyL/wPoPDMa/" + |
| "dvWD+/uy/Wfwn0Xx92P5xNT/oFj/bfxXZOs/9Ktfv3bi90B4/o" + |
| "mRoKTWKcp8+HFpL8FSgl/XV//QidcGf9s6CH7oy0JVzDmXlcdj" + |
| "O5A/VIk/sH/eX/6+CJeXxm77cydIp3cfXNf1a86/QAv/FTmVW1" + |
| "8/UkGmdHBrO7gOhKMCAEB3+Q+f/2X6/oCuzv9OlFfVf4Hxbxy/" + |
| "2b0/gfuz3cZ/1Z5fEAzqN5CB5w+2mb8L5/y1fv9Euv+4/9EDpp" + |
| "6/ak5/BuNvAACwCvYPQDkC5//4/j3b8auO+nXHn9brz2bsy5Wh" + |
| "yVAl4fIA1OQvS+7TnA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap5 = null; |
| |
| protected static void sigmap5Init() |
| { |
| try |
| { |
| final int rows = 217; |
| final int cols = 16; |
| final int compressedBytes = 304; |
| final int uncompressedBytes = 13889; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmgEKwjAMRdNSZMqQCh6gggfJETxSEQ/kEd3mNhhuMJXRNP" + |
| "1PqJsQbdN0ST4SgX9wRL4dKwr9J4Fsf2nagbsbcyeK7kA8GrLr" + |
| "LGbsz2vtLzrX/5X9BvPPyv85EBLbS2aIodi8bKw87SgYvo6hae" + |
| "nWXB5rYkPW02lwhntwrJ8fX+enoS3DsUFx/KV+fuH8icRMb7no" + |
| "5zf2X/D+28nbHHEpwQCV/UuC+ndaqlTYlvyiCPsHAM6/yvqTk8" + |
| "4/wfpX16+5638C66/U+qc6/UJz/6f0/MB/IGd+i9/cGyeIQ6j/" + |
| "y1t5BvmDxc5fqP9E6fehcHvN/UsJ/XPIfP809z8ASAf5q2z9r/" + |
| "T8E7D+jVULfksX/Z9gYjfu5/SYqEesAcifIs6f+N8vff4ALPIC" + |
| "VXJMcQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 608) |
| return sigmap[row][col]; |
| else if (row >= 609 && row <= 1217) |
| return sigmap1[row-609][col]; |
| else if (row >= 1218 && row <= 1826) |
| return sigmap2[row-1218][col]; |
| else if (row >= 1827 && row <= 2435) |
| return sigmap3[row-1827][col]; |
| else if (row >= 2436 && row <= 3044) |
| return sigmap4[row-2436][col]; |
| else if (row >= 3045) |
| return sigmap5[row-3045][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap5 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 4281; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrdWwm41cQZPTNJJnd5LvgURX1SBFn6hAcqrT7AhSpFtFQt1m" + |
| "ItpSKIoCKKgKDIJptUoC6IbVVErFoFF9CKWlRA/Wq1X6FiXVpF" + |
| "wIUWlUoRRbj9ZzKTm9yb3JfHu0+0+b6bTCbJZJKTc/5l5lodwG" + |
| "BZzZBBlu/CfqgULVCFY3A4WqE9OlidUWMLVuu+g1o+CN1wvO3y" + |
| "5pkB6MH78ivxJ/R2XPSxIJ7Gz3EBBlrVGIJL+AqRci613k/3xC" + |
| "iMxDW4ViyDjRT2EU35LPtZtgsH4iAcZjXld9gDWcvUeWhtT2bV" + |
| "1lZU823ohKNTb2QWsy/5jTgWx/G7cQJOxvfR09rCv8RZ1iH8Cv" + |
| "44zsVP7bZsGfqxs9Jv2fvymXy7vTeG8c8wAqOtKbiaDWIuP9Va" + |
| "gwrsz58RLdEUB+BgNOMjcYg1Gd9CC9YKbdAO37YO4JZ9Ljpam/" + |
| "AdfJcfhy58vrgUJ+F7OIUP4D/NLMJpOJ3l+In2+TgT56S74jz0" + |
| "tw7EAJxvTcVLuBCDcSmG42Vczs/DWIxzLwCHA8Hfh4s072Fx9g" + |
| "X2wr5WG3cdmuBQ3i07wHLQkj2BI/hKuzp1MdriSByFzvYA3p09" + |
| "zE/gOb6Vj0JXdhJORHd7NU4Vy9ELP8AP8SOcjR+7A/ET9MXP8A" + |
| "t2LgbhIgzFxWIYLsMVuNJqjzG4SjyTyzmjne/b17rbnDGYzHfx" + |
| "IXxM+jmMF7WiS04tTk8PXz6WDxZ/UjUVvHl2aS7H++ZybEkulx" + |
| "6Qy1lIPZQLLen70wMJ315mXyzT9U/yeU5X0dXUOzPFeudqdcbp" + |
| "tNc0l3NXyb3Um9nV1O7CfIuYQPuEryy7vdx++vrN1Iuzcjl7X7" + |
| "qmjb039eszOpfwpXrCl655MxexWJPlmrUy+/Y4VbtJrvmFVOov" + |
| "RnhH+IBc5IL+zs3qmqlsabBePCfXmf766g/1/bg5nvmlqr84O9" + |
| "Ca4dW4s8WC1Ev+9e/wM60h4rfyAk69YieZI+7W4H0I34leiQ31" + |
| "rx2m30oPTKI9whdT+AOYSi3dx+/nu1RPlhQ/C6vNzBJ/ttRxt6" + |
| "PueV/dX/UE6Z3eXspS58zJPJSZEHrqZabEn6f2dvm9PF3yV5X2" + |
| "Y9USX74tF7tkTnBfL+iZbtft4Lev8FXHBqnn2RmPr9+LT1PrxY" + |
| "YgvsTfMbrnL4kVukRv2j4/0MaB6om7hlvm54Xu06kQX3edh29F" + |
| "O+sRem8tqLwyeAXx91Z95vN8UYl34aPKxhbiS/y9js6ge6Zs/i" + |
| "4svs7TZ/EyKp3xmMbfwXTS5xvQgb+NObiR1WZf4IPxS8zG8frr" + |
| "7aG3vel3vfsGrX+uWlb6TG0/mpmijpM+K/x3wdbP/w+Jr9Rneo" + |
| "LPMlvFeokvWqc2smqX3kZ6stRn1dvuqoXj6Ef6rJ7pNI+/xYvk" + |
| "rzp7mIdvqpvB16Y2sb8+eoDqwQYPX9C7xUxPn1MbDH9JnyV/3x" + |
| "LjpT77bFX6rEozcE4QX4vYgVlSnwPcHpdVegZhHZvHF3t5+KKJ" + |
| "wvfb1iOQT36Ef9WR9OssNnJfcfhG0NeDE/0zlD7TVukzbT19Du" + |
| "Dr6/OvcJVi8jppf+2qvP11NqJKLDL2N32OfSi9qQfFw/Zh1F63" + |
| "SHz7pIdmPpb2V9UofLNrss8afH37exP2oecjjoqHPHz196fwpS" + |
| "3xF9VU1vjqO/j4kv19V9pfXU/2V21vlvrs7GXwpd8tGJ35PUj1" + |
| "pT47e0v7q44p+5vnb97++mxT+Kb/gC7W22JCIb7qDb4n7a9fq+" + |
| "wvbbX9pdLl9CP7S2uu8D1e2l+DL9RXKO1v+gmqK8LXs7+pFv5X" + |
| "29zYXzp6qsHXs7/qioD9pT3f/pI+z9X4fkj43poZaI/Cr8Vs7G" + |
| "ePNviK6Whvj7CvxDwxh/yrG+jZpoFYIa4nHlFrmQv9fvUhPEkP" + |
| "PHxVv0ZmX80+J2bp4wpfVZL4HizxDWlsS72tFjMlvnELemZOoH" + |
| "UBvvrLVVZN3KCPkT5L/0rVTUWFrqUvC7cVtNkmpKabdG0Xu1KM" + |
| "j+nFmYEy4RvY8/FVe0qRre4evvoMozKHZoZIfIvaPooUdWXKR9" + |
| "y+StdrfPXejwps1Ng8vv45v9Hb251ao8+YjztQmT4Zd6ZPwW+J" + |
| "v3d5+kwtLMcCdfbd0fpM+L7m6bPhb8UR2ZVBfZb81VblV6TBPf" + |
| "L8TT0f5K+6Joa/Up+j3rjxrwx/jf31+Butz2pP8ndmMX+zv6Cr" + |
| "JFYR/E2tyutzoI9F+qy3wuoZqDUaQ/qcpe/C+SJKn4m/rYP6LP" + |
| "kbpc9B/gbuofhL24Uef8XHxN/fZQbifiwS20if76NjVelVOJy2" + |
| "7fGA0wU1eITVii1YLL6Q/MVDFB/R15J9WGwXn/v8/TzIX8J3Ss" + |
| "W3/Htq/uIeio92uE/RXbtG81fGR/orYEXv8F7i75tx/DX6XMxf" + |
| "qc8B/v4+j29J/l4Tzd7Ui4a/6J+Iv2fE81f8J4q/hG/bPL6l+I" + |
| "sHi/jr+5J4WOuaxNfKPib5q/CtxBLCd4uxv84kLJX+s9jiTHTX" + |
| "evZX4iv5K/H17C/h2TZsf6nmuiL7K+PfHequMfbX7WTsbx7foP" + |
| "3N7CjGF/3C/lUhvnansP3Fo37L0r+KsL8SX6dZNH8zBxbaX7WN" + |
| "t78/zuMbtL8evtH2N+A1Nvf8qzrsr8IXj0l8ff4+DqPthC/x1/" + |
| "evJH+zR/v4kvY6F7Fafa72ryS+FX3y/pVzrvSfw/jqKzS+VFL4" + |
| "6ii4RxBfZ6iHr0MKX9q/yh4b4V/1CzFA+lcjSuLbLAm+Ymg0vt" + |
| "L+JsUXfyB8+0b7VxJfd30UviE92T8RvqtNfiOgz3Pz+izmidtI" + |
| "n59Q/F2WPYb4ewrh+6TUZ6tJXp8lvs4NUp8197dnDjH6rLYXxH" + |
| "gkCl+jzx6+0frs4Ruvz2obqc8F5xbgG9bnJP6VmBvbdv30uV+0" + |
| "Pqv3F6nPYXx3W5+f0gp/EFbhadcVDCt4e2cnVuIFPMfb4Rnh4E" + |
| "XqQw2d05F35vSVcc87acOb8/1o24K35cfQliy1OIorxvH9ufKQ" + |
| "REfejJNfww8O9H25OqN18RsTdnEd75BLvLCzovAN+lexV7YqeJ" + |
| "+b/D7NzZVlsYaXyFDMKOj1H4veTCfpX9X5/EMDbTyrt88H7a+b" + |
| "kfqcaS71mV8WzD+LGtS4r/E+xN9aPszYX89/FtuNPovOnj5joK" + |
| "fPomOcPnv8pT2Vf47XZ8NfrDb6LPPPUfyN12dtwyL0GaQ7Mv9c" + |
| "rM8y/2z4W1qfg/yN0WeH9HlktP31+BvUZ5N/LsQ3Xp9N/pkPN/" + |
| "qcqfL1eYzRZz6DT+PXEX/fyLRwdvIJfCJeo+N/x1pCcrzkL22n" + |
| "iy3cz+h5+synSnx1P04u+O46Rujaq+rIjmT8Ldbn+iyGvyZ/Fb" + |
| "fwj+L467ap5x3XhPbe8lu8Ov6aQn3G36L4W8d9fxbkL+Gr87d4" + |
| "M8hf/CPvP3Pyn/ljef6q97BUbKGrJxXy1/jP4uywfxXNX5nfCP" + |
| "LXjzlO9Pir6kv6z8n4a+xvDH//mcS/cjs33L9S/vPcpPyN8q9K" + |
| "89f4V9a1efvr8/ftQPxr4Z1AfLQOVXQ8jO/TEt/sybH4npME30" + |
| "J9Lo6PGgNfa2cBvu8mwrdrefC1j298fHV8tD6E7waDr1qrrJ1Q" + |
| "IzepXoTgWlXSHhv/C3+N9Hl1hcqL8lfIv/ozbV82+Y0Y7VsTqU" + |
| "kR+pw6rWH6XOhfYWNp/0qs+er8K7t7cn2OeIejguODdftXAf/5" + |
| "Pb39hH5b3PfxAd6n0sf4EJuxib+OfwXuQvjSerXee4V+Hr7/LN" + |
| "m3InzxUUz/AvHR7i7F+Sv/yN5FPRsZ6+2WHV9naUOulvgm+L7H" + |
| "Rtjlf+vv6xipz6mFKv/8qbK//0JV6h6jz/o+m8UHwfxG4fiRKt" + |
| "WZ3/DGFyLs733F9jc6v1EW+/ufRPq8qTz67Dwer89UqkOf+bgk" + |
| "+mx3NvY3kN/YqvW5CbbjC3yWvgQ7QGor1BdsZQNv7EvJXz62mL" + |
| "91fHtrEn/jV+fKvCT1n+P5W7f/jP8merYnG8TfcYlsQOeI3ulZ" + |
| "EiDFpvjXlfx1900vVPlJNbsCZJskf+X4kaUsr/grcnHjR2Z8P4" + |
| "q/uhSKgoL8lfERAnmP+PGjBMgOi8I3PH4U4u/MKP56+hzD33qN" + |
| "HznLo8ePovkrx49CXkiT+PH9PH/58OLxIwaTf87l0kvcjNub30" + |
| "8llXtnl4T6XiPHF3KNuKQT2ShMqC9/8/M36s/fuu0v+ifi78oG" + |
| "8XdRyR5MLHFskrbNw9wz2HBv/lUJC96o+JbDvyo3vvXNb8Ti+2" + |
| "Lj4VvKv2KXBd6G9q9UuVIxKifnX0l9FjWYw65gKpPNLo+dfzUo" + |
| "rM/h+LcufQ76V18XfbYry6TPLzdEn038W1qfQz0x/pWef8UPsh" + |
| "ZknrDuJPTG8PaePmM8b+ffoQY1dY8vuBcWji9Y8wvHF/QX2TqZ" + |
| "PhePL9RfnxvZv0qmz39pCH9Fp4bqsxz/1Yy+hsqEW2a5l7+S8z" + |
| "ckvoy8W+tufW63yLb6uIPD44Ph/LMZHwzGR3H5jdLzr+o3PpiP" + |
| "jwLjgwnnX8XjW7/5V87f4scHI9o+Khrf0vOvqMaPj/waf/6V9Q" + |
| "CszCZv/hWbqPznO63FZv6V1GcZH2GBjI/k/CsvPkIPLz7S+nxR" + |
| "sT578VEyfbbu/b/V57V7SJ/1/Cs2yXoBFu0Tvmxytp9nf62/yv" + |
| "iIXZfHl+peKYHvkIbgK/X564Yvn18mfD9Jhq/1bHnxZVM8fIm/" + |
| "a2FZryt8p1mvojLVi/j7BpuKVtnBHr5yfJBNl+ODbEbev+JTA/" + |
| "gObZB/ddrXD1+pz2XBd+ue5a+0v2wWrVV0JO2vnH9l7C+bLf0r" + |
| "PMLlaNliz/7K+TmefxWwvxd79tfaELa/nn8VnJ8T5V+F+lcd61" + |
| "/di57pVIPtb8L5OWmnLvubbH6Os63x7K+ZnxNpf/X8SX6QzD+z" + |
| "m9X8uvYy/8xuRRVvFxwfzPvPMv/s+c/EX+U/ozc/nPC9lB8t88" + |
| "/Sf/b4a230/OfC8UGDb5C/ar8g/5zHN5h/TjdreP6Z3ZQk/5xu" + |
| "Wp78szisIfnnZOODHr7slmD+mc018ZH6f+gneXytzWF82TwPX+" + |
| "vjEvheVoTvRxH43tRQfCPHF26uH74F+hw3vtCmTPi2+qrwLRhf" + |
| "eNzgq55LeQG8vSpvplIg/mW/1vhuKxH/Di+Kfz9KHv9GZm7qMb" + |
| "9uz8S/yZbUXo0X/5bMad0Wjn+N/WW3S/sr+Ru2v/wILLazYfvL" + |
| "1Tx7xd/LJb4ef439zeP7jbS/vymP/U013UP29ykf6bv0dr6YTf" + |
| "Ur2QJ2t+RvdomZHyvmcKUaYppaXx/GV33tV9j7hPmr1rOSzY8N" + |
| "PM/M0vxNN4u9suj/Zf6RqbvD3/TtZeJvn3qoTuT82HoqV8H8WH" + |
| "YvVrGFdkv7cHaPxDe/VCzx9FnhO53e+GSDr0Yg8N7cEQX90viG" + |
| "7rw8gR7NrGOkKfWV4euUaWxs3p7Bl/3O959X4Wl1ZIW0v2Z+O1" + |
| "tE5cTz290rC+2v3Sr5/PbGtb/1WfL42pXlwTdzx57lL8/PYnzK" + |
| "869UbTv2JNYa/ibAd2QRvq2L8H31m4RvueY/Z+6qRxu7Of85tF" + |
| "8w/9nuqOLfZ1R81FvNv+oVMT+2iRlf8PJXXITnX7mjks5/jspf" + |
| "RcVHUfmr3YuPqLQb8VF6TXnio+wZeyg+ejv4/0Ev/yz9Z1SyFa" + |
| "iyTwrlN/z5kyr+Lc4/93FHF+Obzz8H499vCr7lin/pt2fw1fOf" + |
| "8T+i2Iu+"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value1 = null; |
| |
| protected static void value1Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 2032; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtXGlsFVUUPvfOnffa9yDShSWmQKhgRSw7KiK4AYFWNlv3GF" + |
| "wIIBFwAwQUEClLiyFAkQAii0UgcQEl8YeJBqM/FMREgkABEQUV" + |
| "KotG/7jkee6dO9t7M+/1LX2dqZ3kzr1z5868mfnmO985Z24biU" + |
| "Qv5HPrVqAPX7PhkbhLcK59O9A30qwLvJDaccoF445KIh5YAv1S" + |
| "PZJ8ptW0Ez6N30TPF7QULpMvyUG4QHtCg4kv7UsH0R5YtxdHlN" + |
| "CuNB/rbvQ6OhDrYnwa8+gAsa+QdtDwZRUUr41ebXvql7Dn2sZd" + |
| "H+3t1Jv7Y7bwzT3jc3wPaDWbbvR8Ze5lM6z8pV/To7j+Rj75Q1" + |
| "gOYrGMD86P5S89nPn7DfXIFr6ha7KLJHsqw/gekvUJWk3qaRU5" + |
| "Qo6S4/g78+licsxg0SLNPtMVWJZEMWyZBd8XW5p9ZgU+5++3un" + |
| "1mS7l9JqfISWGfv4OLKdjnhTH2uaop7HOr/iZtn18DAgo+kRCE" + |
| "yWnIB3xvoTOWYugOpdBb+lfr5XMbCsNka6Ssx2KpDC7C9USYJH" + |
| "qmwXSTvzAHZsNLsBBbDMtVRn9H6GRDROIOvbD0gwGWPYOx3Abo" + |
| "4cGo0Bxc3yP7H4KHRb3Odp6ZOr5g2BRoA4Wi7gDtwfLGQTcsJd" + |
| "ATrrfiCzdhGRKahes74C5jbDncLVsT4H6j9wl4XNRTYCrMgGew" + |
| "9SyW+bAA1xRLAEsQcuXottBO1HlQJHtQBcDQHLgB+sMgO75wK/" + |
| "bfDnfiejSWMhgD46AC7oX7xBEPwiPwGNaT4Ulco42Hp+E54Nf+" + |
| "B8zV+AuEbQpsZJvJT8jffHKW/ACdkb/FbAuURvMXhjrxF/FdzP" + |
| "kLkyz8fd3kr4avaF2ViL8cXzf+wiixjsLXjb9WfGWN10aiPDQo" + |
| "ceIvDAmsdz33BEtb4iu3DHzFFpW9Br7YbifrIpdz93fmr46v3K" + |
| "qIOc7A1+DvOVnzN/Yvch7XfztaiD7wj6a/bGuc+OiVlqa/oYT+" + |
| "M/zpafv8i66/QMgl2eb8beD2mfMXa8FfcrER/F0Sw99tmeMvrc" + |
| "s+f+k2n/P3V8NTrAOF7eb6y95kO6GA7SWX2TtsB3Rnu7j+wmq2" + |
| "h70vj7qi6S/bbtPfmmAV11/ZI/WXvYvlba6/sp/ZrshFf0XbRX" + |
| "8bxdyZTvzV9Bfr9rZerr8rnfQX+fuvq/5Wm/pr7F3F9deyvUDW" + |
| "AduotrLOM3qi9BeLo/4aI4T+Yh2lv5bfkPpLQOpviObSMA1SfL" + |
| "NoGyf7LEblRXm3gSj7vMxb9pm2Tds+e8F9TsM+G09iDC0X9Xgs" + |
| "Y0WrLAV8l7c0fJVHWwi+ndg+Ue/n+mv09rTlrxLHvyti4t8PYu" + |
| "NfMSKt+Dccyha+4ZyWgS+7LO+sna33vHHHefb8pJLvlJ90fMaH" + |
| "/czf+PkN1pCd+1AK0z5DsSpyDoot36ra/BANX7XAPf/shq+a51" + |
| "d8w4Ve4K/SoynOSqbb4t8+Gr4G9h0dvi9UN73+wsveyk9CFhQ6" + |
| "vn2GxXH2GRkJtUjPTyoY3UKBzl/ojkXERyZ/STUM0/gLIzV8ZX" + |
| "xUExsfafz1a3wU7uLz+GipmZ/U8eX5DShQyrT8hpl/tuY3EF/h" + |
| "XyG+wr+CsSK/sZIO4Pln7l9p+KpdNP/Kmn+GWjO/kSj/bPpX1v" + |
| "yzU36jifLPZ/ydfybrNXzVEjXKBih4H+qNsfob7/uv1/yr9O1z" + |
| "eLQX9De4KmXlLpfWeRzZLnsecFQAEf+qExJcx6bE+guf+Arf8m" + |
| "Z4Kz+O1V/O36TOsV/6UDv1+FetNO2zrr88/rXor2GflSmO9rkm" + |
| "uIPbZy3+lfa5wrTPVv1NZJ91/XWyz9nUX+5f+Vl/lanSPlepS9" + |
| "Sl4t4WxOHvsgT8/dBb+avW7/vm/Bx1OakPomUgR5VXZd8xM/6l" + |
| "p/0Y/8bHl571S/6KnktZf1ca+G4k9eoGjq+xb411ZA5yV0V9ZV" + |
| "0ivllaCn9Z13TxRf19i8+/yjmjrOXzr5Ra6/xY9jyb1Zj8M65t" + |
| "+Wc2W93RFPOvwrOdR+d8n3H/yhP8ZXNTts8HjPzGLizIX2Vdzs" + |
| "9uo9VN3uBleF7W/GdP4BtMWd90/eX5DXWv+p5olwLyUtlgnb8h" + |
| "vi9Y8hu5XZ3mb2j8Nedv4Buxx5vzr5SNUSNd5m+42+dszt/Qvy" + |
| "+kPv8Ke0kkkiuP4Pjq8yc1fOlp5Q1Ea5/cP9TxqiplPcnlqi34" + |
| "JmRerzj7RoVrM4Gv1b9yw9edv9nEV/evUp+fQy1RqNP3X3VIKv" + |
| "qLx30arb9srTX+TU1/s+c/J+tfsTXe8p9ZreFfHVa3IB5bnfEV" + |
| "WwLf3DnJ4Os0vz17+Db191/v+8+2t13mr0K99PyV6BX5Kyyrtf" + |
| "mx6gm8/ymO89trRGui7JkGlu+Lmf1+FP4oW/krbp+bP38VzEs3" + |
| "f0VOsDpSz3bz+Fc9yXYijqeUNXz+JL49uzT7bM6fNN6r7Y1498" + |
| "T8Sb/mN7zB3/TzG5ZcWOcwuHrbt0R8tWj4ksl+t8+ZiI9U4WkF" + |
| "bk6kv0n6Vw2t+uuNhdVh2R0oQ0x+5/aZ7cVi2Gcxwnf2uaXMn8" + |
| "zcEhgf52mJ7wsB6fO0zp/0Jb6Vtq2Bsfh6Yf5G+GIrf5PEdbB8" + |
| "X4c7//2CIhTe/PuF4AixHWieqw1f+X/hq2Rglm4AYzzleFDEjc" + |
| "oRed76qOeV4P8zeG1ptc/Gk5BZhuDmzPrPgRFN4T+3KWq1z0lG" + |
| "iv8BIShXYw=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value2 = null; |
| |
| protected static void value2Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 863; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtm19IFEEcx4dx73dbZw+WlvQSFmkGRVK9FhH0z7R/UFRQWB" + |
| "QmBKEoHqSFWZGP1ksYGFER+BYVRQW99NYfqMw0egysh6DXgra5" + |
| "ub29nb073bnb82bnfgO7M7/ZOXHmM9/fb2ZuD7ZZPEXHLIu2Jk" + |
| "p0l5WRaJXHBkvpRBfk97mKn6lStMHSIsF21pe/lhW5HQa+lS1z" + |
| "xTdmWtqk6D/YkeA7w3hdY9egp+5qCfjuR76S+t2ZzM2b6J+15N" + |
| "tsWaSC8X1OYn74kk0iX9LqbUs6yFnB7rFzQ6hdQmoFu95VbiLr" + |
| "05b5jNVstvXb6a9X5gvP/1SdrRWp4/dGsjo7X7KFbHXaNpPdTv" + |
| "lQlr/VLlj9di7ogNizjqRHc4UcLcLYkD28dJDfD7OrTWhxjnSR" + |
| "bjYCL0mck2oBHtPo3lDE3zjqV1K/+1yjUlS+5nQAfPt8zvPecu" + |
| "dr/hDteUMCdWEdQ9/TCXb/YFvv2PWGXW9n0dDHIuh3EPUrqd8D" + |
| "yXz+d1xf6bo/4nx/p/jCEYXj7zDylVbwUdavSbt/43Y+Ffz+17" + |
| "geAN87qsZfY1gtqsYNh++xBN/Yn2LzDZd/1imJ+184ru7+1/fq" + |
| "seD9L3+iwf7Xpx6YfqGtwBX79BzO2N5y129qf0Rr4ZQxAifgJC" + |
| "uvcXg2Mg8+6ljr4DRdyfIabjXQZXQhy+voKrqB5ct5LVccraaL" + |
| "bf9/izYxe2nGTKn3OaPWlmJU9PTPPvXbrn8/9eNLXVFQ1C90pP" + |
| "VLN8rqF86gfpVjLfAVnrj4stzhC525+LIy8lVav64dcpe8fpGv" + |
| "qnyh28s3L//cg3wVpp7hnwXL4evSeNyrX24j39DzhfPon8PPF/" + |
| "py8cX4q3KC/kLWz7i+Cin1C7Lx136C8TeE+yNRvzCA+g29fi+h" + |
| "fssp8fPny/r3U0f/bH9/dAW/PyrX+JvX+dUo8g1RPL5bHv3U0j" + |
| "8/gPuz6RfGpPV7D/WrCN+H8AQeB+6fHyFf5Vgn3697muVJyN5v" + |
| "R76u2Po6sy5SI9Dkv0+JLLItid+nRKqQb8n98zcYhwn4nPDP8B" + |
| "U+wWQg/vkL+ufAlTgl2f4Vv/9io5nj7IJeTJ9vhOn9dtSvXIpG" + |
| "cH8U3vMNY4QRhJnOr+T9M55fKUN4yO2fo5V0AP2zPon8B9AjfT" + |
| "o="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value3 = null; |
| |
| protected static void value3Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 503; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmstKw1AQhmVsctaKl6qLWqFqF/VCLfgMLgTvF1yIoDsfwo" + |
| "3gA6hohVLBK4KXtm+hFnSh4hvoQxxPY6lJKFqhoTmTfyDnnAnp" + |
| "IvPln+mchMKyYpSorOLSZjRCKYqpud3yBihCrWqO0iCNqbnPOp" + |
| "u0xjbq+P6N6KRR5XdLl1G/rMloSDbAmj8kM6Ow6PKCr/EJvvqY" + |
| "6AnGfXLUr0f5OQL9avQU7ChivdCvlvU36oV+Qznol3V+joEva7" + |
| "7DOvJlWFm94psEXx9Tj7v8lMOr8LV1UONOvuUrwbfxve2UlMbB" + |
| "79cYacRJ2//P017kZ+ME+dkn+p2BfgOl6LxiPus6V0BctM3Py2" + |
| "JRLIh5sUQJ813MmW/1yM/mK/KzT/P1SpVoQ7+8ma8iBpqS27Sp" + |
| "dNIaJ6rot8Xlm4icLvXXtq7n/tUW6q+PVb3tiHWRXtT4VPYe1X" + |
| "Gvjoc/CD0jjprQ3i3xdbCrgS9MG7574Mu8SlfhK/YRF20Ve4j6" + |
| "GyD1Fu36FRnkZ3aES9/XZREHHftfcz2UNtfEsbv/DWV++l9z49" + |
| "/f1x2h//VFpT21xRT7V/z4noEva77n4Mua7wX4suZ7Cb6s+V6B" + |
| "L2u+1+DLmu8N+PLe37Ct6/l+/xb7G77Q7x30y5pvDnwDSD3voI" + |
| "n3g/qSLEC/nK3pCwWi8Nw="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value3 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value3[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value4 = null; |
| |
| protected static void value4Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 523; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtm0tLQkEUx2PUmWkRVFREUFHQa2EUaa+PEBRFlNm2iFoU0S" + |
| "4IalFEVLQOF9GXiB6L3PWgTWUP8zMY1Bew8SqW1yhFhZnD/yzu" + |
| "zFxGr5yf/zPnHFGcxFLGRqzrUCzDWIVtzWMwI0ycgi9pvmfgS5" + |
| "rvOfiS5nsBvjBxCR+QYRn8Rb9R+MVMY7XiSkwJn5gUfubmETHB" + |
| "w+puR9qeLuZlLWqstlZtrJFVqrGJtTOPGputuz3WtYrVJF7DX1" + |
| "m3WtdlPK81y8/VCTYF4nvNn/gLf1ZzxZeHwFdX42857g9afG9S" + |
| "PnWnZnnzdY2Drx76/TEvIF9xC76axOc76Jc033vkV4SroYdsdr" + |
| "nG4Cmcv2nn7yP0q0l8DqE+olwfFUm/H+BLOj5/gi9lvpKBL2m+" + |
| "peBLmm85+OrBV9YXg69zC3wN+hbsKEU2wA9G6teD/iRdk95sdq" + |
| "E/ifzKll/1Qr+axOd+RWMgwZdHZB/is7axdjC3/Yn+pPQVQ7+O" + |
| "Y/AlHZ/94KuJ6qdV/nT4T34VgJ+MPX/n5Kyc/1u/ciFn/c5Av1" + |
| "rwHZZL1jhK6f8prMy4KLpYzHd3hJNPWU6ubb8kx/tXbNN2bxvq" + |
| "IKPyeH9yBX4gzXcVfkB9lMqv1pBf6cNXrn/zdUQL0t94B1/D4v" + |
| "MG/GBk/bvvDCh6e/b47DzKKz7vQr8GVWcH8IGZVvIFgCJtfQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value4 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value4[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value5 = null; |
| |
| protected static void value5Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 595; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtm81KW0EUx9PDzdwZ2oCNSSmtIGprdRGp1PQhLC1utLo0oE" + |
| "9iKdm1pZuSgiKKLmoXrXXtA/iF/bA10oVPYKsrEcfx5nJpbkJM" + |
| "Si7MTP4H5uMMcwM5v/nPmTskdFtKpyAlfyUlZaRv1K9GZwPvIW" + |
| "XpvmrTnveAOimp2i7qoyHVdnujj7w6RbdKzzjvaVD5d2TIqFfW" + |
| "ZTQgYU0w/saj0cNf14x2XpWZ0NhLRM+aVfAWMbCabwExMNNI5V" + |
| "8+x754/bL8+8+c/8i/fBb5VxNtKrbxd7XnxKFfY/XLN9ha8/XL" + |
| "VqFfLfg+5TteO6LKM683XGXWzZDPNP9WCeN20e3o8m/Qb2b+3Y" + |
| "V+DVpdB4iBuedn7/7qN+6vrOZ7CL6Wnp+P+J+r8i//2zDfF+Cr" + |
| "Cd+TSM5Xx+Cry/4cCd9T8NWFLz+rxhf5F/qtod9z8LWarwRfnd" + |
| "6PRAz7s518xbUo9Ot8Bl89zFlQ6iW/v+S3K86iqpdLnnCcT6Fn" + |
| "5uv43I+qfEB8dTQhQmrKlnmBfitUF+jX96FfPfleB1+rs3J/o3" + |
| "zFDfBtpfcjkcD5ymq+beBrUD5OIgaG32+0434D+3MD+3MKfHXh" + |
| "K9LV+EK/LZR/7yIGpuqXTTkFlhMdtfTLpqFf5N+y/HsPfPXgK3" + |
| "qj4Ivf11mu3z7wNWgV5BWxJ4iDkWfjkcqx+OMyutu0p+pd39tS" + |
| "ZUOVzSvWxFfE1uL9eQz7sybnq0l33H3ujrkTlGFFd5T9asr/f3" + |
| "+CryZ8c+w722M/LvXLiuwb+OpqbL/B+etSxi4ARB7hYw=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value5 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value5[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value6 = null; |
| |
| protected static void value6Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 600; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmstLG0Ecx+24md0ZFV+pxFzEgtqCBosJwf4fWj0rod568S" + |
| "Cop/ooFTy0l5KCIA229IHY6tn/QBR8RBEv7anqzcdBGMc1lCRS" + |
| "N7ETmR2+P9idzOxuCL9Pvr/H7pKQEFZSCDYsBOkQGSNP5Orc31" + |
| "kniZEWOT50Z22kidTJsZk8JlE5PnJXu9x9kDRcX2N9IE/lPCzy" + |
| "jLSKgoxEBEyBBSbYSAFnTcFTJhsbhQ/8atZHuX12KY5ZC3I/Lu" + |
| "ffrJTcf8qcsWgt5V0zX8D3fpfbV/hXC31OesTnJHzkTyOhrM85" + |
| "9VXW+h3qKzaN+koPvmymJHzfgK8msXlWxt/3iM/mxmf2Vr1+A4" + |
| "vQr9H59x34apJ/ZX/kdF/zpXtOnKZV8KU74KvanGfFnU9XXb4L" + |
| "dp/93O61+6/42j3ga56VpzP/kJeZ+W6et1/L7VXemkb3LNkaGP" + |
| "47/7rPF9bxfMFUvs4F27hZX2XzpQnw9XUPvOlxfAs+Qn+U0x9t" + |
| "Q79a5d808i/0WzhfZ/Q++bJ9kPTQ7wH0a3B99cvD25r3v7D/5P" + |
| "8bPjCa7yF84Nf8y4686yv6pej7zynkX6P732Pw1YcvO1XO9wR8" + |
| "NeJ7rpzvGfj6x3iFH3/1gwTI3cy/vEqFfnkl9KsHX16bzZdXq4" + |
| "nPvAZ89dMvD/J6vJ9jcnzmDdCvMVUTceNzI12hy6rrZ/oTfDXJ" + |
| "v2Fn0HlxO19nqOjngwPg6yOlt8MHvtVvJLc/UhOfA3+gXz37X0" + |
| "X1VRf46sL36v0NHsX7G4bG51gp9Gv9AF+j43McfHWwskt3qNK9"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value6 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value6[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value7 = null; |
| |
| protected static void value7Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 490; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtmr1Lw0AYxuUlPdJDF6kiLqLi16AoKroICuqkOIiLg4uLgq" + |
| "OjkwjSUQdBKnQS/wF1dhZF8Kt+gYuo4K4iQrxGCCaU1NJrubs8" + |
| "L7TXhGR5fnmeey9XqnO8ok7vV4fzp6ib+qlFjDXuURs1ULUYG6" + |
| "md+sTY5J7tdb8TVPt7Dx+kHnFc7wSKWp1/FXU5KAlFpeI7BL5G" + |
| "8x0GX42egqQgNgId4F/Pv6Pwr9F8x8BXn+Lj0AD+9fl3Av7VrL" + |
| "+ahA7G5vMUNEA++/J5GvmsBl8+Uwq+sTfwVSR7ZwWN7fBrYino" + |
| "ZEo+8yop+VwJ/2rk8TlooO38u8QO2YHs+Zftw7+q5LMlZle+HO" + |
| "RrpYvha+2Ar9HroxXwVSSfV9kVy7DrLF92zy7ZrZR8vgFf2cXu" + |
| "Crz+yOufNvKonRSftcC5dShuTP+8CQ0w//rm3y3ks9F8U+Cr0V" + |
| "OQ3R/chQ5G892DDibkM94/m8uXJ+wBrH8juD46hgb6+pef2Avh" + |
| "/bO9WKh/7Xn4V5185qey10fgqw5fd//oDPtHEV8fnUMHjf17Af" + |
| "8azTcDvhHP5wfooPv7DYn98xf8qwpf+zsX3+LymT+CrzplNfOn" + |
| "fPmM/2/om8/xd9n5zJ/L6V/+ApKhfD9l841/lJXvK0jmroofWN" + |
| "1KMQ=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value7 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value7[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value8 = null; |
| |
| protected static void value8Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 418; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtnL1KxEAUhWXMJmFnbVZdRRBR8K9YUXQLURG0thBd/1/BQi" + |
| "wUbLSw0BU7GxV8LcXHsBXjGCQYbaImMHf4brGTLIEs58u5Zy6E" + |
| "jaIsVX6NKJGler8c15Oj8dQ1k6qhhs3aHZ+NqgFVNeugGlMzZh" + |
| "2Kv52OP7tU7fOJeFNT5rzvx/1GMv6uCdjkw1erIviGL/C1hG87" + |
| "fOnPv+WrA/g6zVfDV9BTcGGIVdAB/yb+reJfp/l2wldYf66hA/" + |
| "5N/NuDf53m2w9fW/h6d4ZH4ztf7+E/fL17+ArL31l0kOhfPRds" + |
| "BZvBRrCt6v5z0PSf8ujP/iP+tYTvfBH5W1qDr9P7qwX42lB6Mc" + |
| "tVpVWUEtufl8hfh/27jH/J3z/k7wr+FTb/rqOD03yb6CAwf3fI" + |
| "X8f3z7vsnx327x7+pfQ+GjAfpeajA/qzsP3zITrg38S/R/jXab" + |
| "7H8BXWn0/QQeT8e/rx/lV4le/7V2EL/wqaj87QgPxN5e8l/rWk" + |
| "P7eK4Oudw9dO/5Y7cvl/hgp8BeXvNRqQv6n8vcG/TvO9ha8N1f" + |
| "YO51Ztfw=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value8 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value8[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value9 = null; |
| |
| protected static void value9Init() |
| { |
| try |
| { |
| final int rows = 40; |
| final int cols = 120; |
| final int compressedBytes = 393; |
| final int uncompressedBytes = 19201; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrtms0uBEEUhcdNDZ10IRFELIh/FoQghMdhwaN4hhlh4yextP" + |
| "UGIuI5WCEkEkppyUTPQmZCJVV3vrvo6u6kN/frU+fcTsuIa5Qs" + |
| "Ns4W3I+SZVmXGb8OFVdzMi4Dfp2QeVnz62Rxd7U4Dsrw9zN5TV" + |
| "b89ahrKpl1LZUsOeofSjxfU/M86s18zdFf+Jo6fOPgmx+G0K+5" + |
| "hG86lR/Tg3T35yD+e4J+VfM9hW9U+eqMfKU0X52Tr1TzvQjBt3" + |
| "oP34TeggO/g1/RB7Xz0TU9UM33hh4wH5Xmo1v8VzXfO/hGNf8+" + |
| "MP+q5vsIX/bn1vlmb/BNKD8/0wP0W8pXL+hXNd9X+MbBN3/Pdr" + |
| "O93/lm+2377w58Vev3A76R6DdMfn6Cr2b92gp8VfPtgq9qvga+" + |
| "qvlW4RsL36/vz7ab7886+dqeEPrl/7qUylp6gP+W/LcX/Ublv3" + |
| "34r1L/7cd/O0C/Y+i3g/PVFD1QzXeaHpCfS/l5g/05Kv/dxH/R" + |
| "bxv63YKvar7b8I2hKp86CHu/"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value9 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value9[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value10 = null; |
| |
| protected static void value10Init() |
| { |
| try |
| { |
| final int rows = 24; |
| final int cols = 120; |
| final int compressedBytes = 251; |
| final int uncompressedBytes = 11521; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt2bsKwkAQBVAZYreVqAQbUfBVKIra2VtbimBv7aOw8Acs1E" + |
| "6IkB9QBH9wXKJIYhXEIrncW2SzS7aZw5ANEVfV8VTNSFXa+o60" + |
| "7Kr/mXVlKDU7FoJZQ8qSs2NFmjKwYzVY7QfXvBRfe5yL9Oy8pF" + |
| "+RusaKdJT5Q8QN3Ud8Q+s/+JoxfZPiG/TvlP2LGDOL81R2wkql" + |
| "1HdOX8YsWAOeryLnqyXfv9C+K/pC+67pC+27oS+075a+0L47+q" + |
| "bo+2jPGrB/I/17YP9C+x7pC+17oi+075m+0L4efaF9+f8X29en" + |
| "L7Tvlb7Qvjf6Qvve6Qvt+6BvEpJ5Aj36ofM="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value10 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value10[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| if (row <= 39) |
| return value[row][col]; |
| else if (row >= 40 && row <= 79) |
| return value1[row-40][col]; |
| else if (row >= 80 && row <= 119) |
| return value2[row-80][col]; |
| else if (row >= 120 && row <= 159) |
| return value3[row-120][col]; |
| else if (row >= 160 && row <= 199) |
| return value4[row-160][col]; |
| else if (row >= 200 && row <= 239) |
| return value5[row-200][col]; |
| else if (row >= 240 && row <= 279) |
| return value6[row-240][col]; |
| else if (row >= 280 && row <= 319) |
| return value7[row-280][col]; |
| else if (row >= 320 && row <= 359) |
| return value8[row-320][col]; |
| else if (row >= 360 && row <= 399) |
| return value9[row-360][col]; |
| else if (row >= 400) |
| return value10[row-400][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in value10 lookup"); |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| sigmap3Init(); |
| sigmap4Init(); |
| sigmap5Init(); |
| valueInit(); |
| value1Init(); |
| value2Init(); |
| value3Init(); |
| value4Init(); |
| value5Init(); |
| value6Init(); |
| value7Init(); |
| value8Init(); |
| value9Init(); |
| value10Init(); |
| } |
| } |
| |
| /** |
| * The error recovery table. |
| * <p> |
| * See {@link #attemptToRecoverFromSyntaxError()} for a description of the |
| * error recovery algorithm. |
| * <p> |
| * This table takes the state on top of the stack and the current lookahead |
| * symbol and returns what action should be taken. The result value should |
| * be interpreted as follows: |
| * <ul> |
| * <li> If <code>result & ACTION_MASK == DISCARD_STATE_ACTION</code>, |
| * pop a symbol from the parser stacks; a "known" sequence |
| * of symbols has not been found. |
| * <li> If <code>result & ACTION_MASK == DISCARD_TERMINAL_ACTION</code>, |
| * a "known" sequence of symbols has been found, and we |
| * are looking for the error lookahead symbol. Shift the terminal. |
| * <li> If <code>result & ACTION_MASK == RECOVER_ACTION</code>, we have |
| * matched the error recovery production |
| * <code>Production.values[result & VALUE_MASK]</code>, so reduce |
| * by that production (including the lookahead symbol), and then |
| * continue with normal parsing. |
| * </ul> |
| * If it is not possible to recover from a syntax error, either the state |
| * stack will be emptied or the end of input will be reached before a |
| * RECOVER_ACTION is found. |
| * |
| * @return a code for the action to take (see above) |
| */ |
| protected static final class RecoveryTable |
| { |
| protected static int getRecoveryCode(int state, org.eclipse.photran.internal.core.lexer.Token lookahead) |
| { |
| assert 0 <= state && state < Parser.NUM_STATES; |
| assert lookahead != null; |
| |
| Integer index = Parser.terminalIndices.get(lookahead.getTerminal()); |
| if (index == null) |
| return 0; |
| else |
| return get(state, index); |
| } |
| |
| protected static final int[] rowmap = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 23, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| protected static final int[] columnmap = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248 }; |
| |
| public static int get(int row, int col) |
| { |
| if (isErrorEntry(row, col)) |
| return 0; |
| else if (columnmap[col] % 2 == 0) |
| return lookupValue(rowmap[row], columnmap[col]/2) >>> 16; |
| else |
| return lookupValue(rowmap[row], columnmap[col]/2) & 0xFFFF; |
| } |
| |
| protected static boolean isErrorEntry(int row, int col) |
| { |
| final int INT_BITS = 32; |
| int sigmapRow = row; |
| |
| int sigmapCol = col / INT_BITS; |
| int bitNumberFromLeft = col % INT_BITS; |
| int sigmapMask = 0x1 << (INT_BITS - bitNumberFromLeft - 1); |
| |
| return (lookupSigmap(sigmapRow, sigmapCol) & sigmapMask) == 0; |
| } |
| |
| protected static int[][] sigmap = null; |
| |
| protected static void sigmapInit() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 129; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt3ckNwCAMBEBKp/OlA3hZFvJMAfn4jiIludoLBov6QP6qL4" + |
| "DP+t/r+fqv/AIAsF8CuO/cl4g/ANPmk/1K/ni/If7ii/wA9as/" + |
| "IL/MT1AfyB8AMF/NVwDA/gEAAPZfAP0TAAAAcN8DAAAAAAAAAA" + |
| "AAAECt6v9Ptn/ffwBBk0qA"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap1 = null; |
| |
| protected static void sigmap1Init() |
| { |
| try |
| { |
| final int rows = 1218; |
| final int cols = 8; |
| final int compressedBytes = 71; |
| final int uncompressedBytes = 38977; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt1DERAAAIxLCXjnNwwMgxJBI6NAEAAAAAAAAAAAAAAAAAAA" + |
| "AAAIA/elcKAfgvAAAAAAAAAAAAAAAAAAAAAACcGce8PsM="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] sigmap2 = null; |
| |
| protected static void sigmap2Init() |
| { |
| try |
| { |
| final int rows = 826; |
| final int cols = 8; |
| final int compressedBytes = 60; |
| final int uncompressedBytes = 26433; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt1LERAAAEADGj25wNFHQuWeC7jwAAAAC4qVl+7wP+BAAAAA" + |
| "AAAAAAAAAAAAAAAAAAAADAUgNOaV4k"); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| sigmap2 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| sigmap2[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupSigmap(int row, int col) |
| { |
| if (row <= 1217) |
| return sigmap[row][col]; |
| else if (row >= 1218 && row <= 2435) |
| return sigmap1[row-1218][col]; |
| else if (row >= 2436) |
| return sigmap2[row-2436][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in sigmap2 lookup"); |
| } |
| |
| protected static int[][] value = null; |
| |
| protected static void valueInit() |
| { |
| try |
| { |
| final int rows = 39; |
| final int cols = 125; |
| final int compressedBytes = 178; |
| final int uncompressedBytes = 19501; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNrt2ksOgjAARdFO/f9QBF0P6+rSXYKSOGnfyZ0SBu8EEhpqqV" + |
| "9bNrWol8pPVzFnLuZiLuZiLuZiLuZiLuZirj+YD+vuupwt27z5" + |
| "bKk4852l4syPloozP1gqzvxhqTjzraXizCdLec7VvfnNUnHmF0" + |
| "s5b5fvczFX8+YvS8WZ7y0VZ/60VJz521Jx5ldLpZmvzb9RHTzn" + |
| "J0vFmd8t5UxG3ZuPloozHyzl3a6WzcsHlGXxyA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int[][] value1 = null; |
| |
| protected static void value1Init() |
| { |
| try |
| { |
| final int rows = 1; |
| final int cols = 125; |
| final int compressedBytes = 22; |
| final int uncompressedBytes = 501; |
| |
| byte[] decoded = new byte[compressedBytes]; |
| base64Decode(decoded, |
| "eNprYGggCN14GxhG4XCBQAAAwdF8VA=="); |
| |
| byte[] buffer = new byte[uncompressedBytes]; |
| Inflater inflater = new Inflater(); |
| inflater.setInput(decoded, 0, compressedBytes); |
| inflater.inflate(buffer); |
| inflater.end(); |
| |
| value1 = new int[rows][cols]; |
| for (int index = 0; index < uncompressedBytes-1; index += 4) |
| { |
| int byte1 = 0x000000FF & (int)buffer[index + 0]; |
| int byte2 = 0x000000FF & (int)buffer[index + 1]; |
| int byte3 = 0x000000FF & (int)buffer[index + 2]; |
| int byte4 = 0x000000FF & (int)buffer[index + 3]; |
| |
| int element = index / 4; |
| int row = element / cols; |
| int col = element % cols; |
| value1[row][col] = byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4; |
| } |
| } |
| catch (Exception e) |
| { |
| throw new Error(e); |
| } |
| } |
| |
| protected static int lookupValue(int row, int col) |
| { |
| if (row <= 38) |
| return value[row][col]; |
| else if (row >= 39) |
| return value1[row-39][col]; |
| else |
| throw new IllegalArgumentException("Unexpected location requested in value1 lookup"); |
| } |
| |
| static |
| { |
| sigmapInit(); |
| sigmap1Init(); |
| sigmap2Init(); |
| valueInit(); |
| value1Init(); |
| } |
| } |
| |
| } |