From 715ddf0620279d3e43fb95e9c9ec186bb8aa0854 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Thu, 23 Mar 2017 20:32:41 -0700 Subject: [PATCH] arm64 hacking modified: stub/src/arch/arm64/v8/macros.S new file: stub/src/arch/arm64/v8/Makefile.extra modified: stub/src/arch/arm64/v8/lzma_d-arm.S modified: stub/src/arch/arm64/v8/lzma_d.S modified: stub/src/arch/arm64/v8/lzma_d_cf.S new file: stub/src/arch/arm64/v8/lzma_d_cs.S modified: stub/src/arm64-darwin.macho-entry.S modified: stub/arm64-darwin.macho-entry.h modified: stub/arm64-linux.elf-entry.h modified: stub/arm64-linux.shlib-init.h modified: stub/tmp/arm64-darwin.macho-entry.bin.dump modified: stub/tmp/arm64-linux.elf-entry.bin.dump modified: stub/tmp/arm64-linux.shlib-init.bin.dump --- src/stub/arm64-darwin.macho-entry.h | 630 ++++++++++----- src/stub/arm64-linux.elf-entry.h | 746 +++++++++++------- src/stub/arm64-linux.shlib-init.h | 716 +++++++++++------ src/stub/src/arch/arm64/v8/Makefile.extra | 58 ++ src/stub/src/arch/arm64/v8/lzma_d-arm.S | 11 +- src/stub/src/arch/arm64/v8/lzma_d.S | 630 ++++----------- src/stub/src/arch/arm64/v8/lzma_d_cf.S | 588 ++++---------- src/stub/src/arch/arm64/v8/lzma_d_cs.S | 140 ++++ src/stub/src/arch/arm64/v8/macros.S | 1 + src/stub/src/arm64-darwin.macho-entry.S | 24 +- .../tmp/arm64-darwin.macho-entry.bin.dump | 20 +- src/stub/tmp/arm64-linux.elf-entry.bin.dump | 20 +- src/stub/tmp/arm64-linux.shlib-init.bin.dump | 20 +- 13 files changed, 1897 insertions(+), 1707 deletions(-) create mode 100644 src/stub/src/arch/arm64/v8/Makefile.extra create mode 100644 src/stub/src/arch/arm64/v8/lzma_d_cs.S diff --git a/src/stub/arm64-darwin.macho-entry.h b/src/stub/arm64-darwin.macho-entry.h index 9f98ad44..860ebd18 100644 --- a/src/stub/arm64-darwin.macho-entry.h +++ b/src/stub/arm64-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* arm64-darwin.macho-entry.h - created from arm64-darwin.macho-entry.bin, 4200 (0x1068) bytes + created from arm64-darwin.macho-entry.bin, 7524 (0x1d64) bytes This file is part of the UPX executable compressor. @@ -31,15 +31,15 @@ */ -#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 4200 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xdbdf9711 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x1a848226 +#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7524 +#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xab18737f +#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0xcd232c53 -unsigned char stub_arm64_darwin_macho_entry[4200] = { +unsigned char stub_arm64_darwin_macho_entry[7524] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 11, 0, 0, 0, 0, 0, 0, -/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 13, 0, 10, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 21, 0, 0, 0, 0, 0, 0, +/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 18, 0, 15, 0, /* 0x0040 */ 255, 19, 0,209,224, 7,177,169,226, 15, 1,169,228, 23, 2,169, /* 0x0050 */ 230, 31, 3,169,232, 39, 4,169,234, 47, 5,169,236, 55, 6,169, /* 0x0060 */ 238, 63, 7,169,240, 71, 8,169,242, 79, 9,169,244, 87, 10,169, @@ -95,208 +95,416 @@ unsigned char stub_arm64_darwin_macho_entry[4200] = { /* 0x0380 */ 231,255,255,151, 33, 0, 1, 58,229,255,255,151, 33, 0, 1, 58, /* 0x0390 */ 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49, /* 0x03a0 */ 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56, -/* 0x03b0 */ 162,255,255, 84,233,255,255, 23,227, 19,189,169,229, 27, 1,169, -/* 0x03c0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170, -/* 0x03d0 */ 142, 64, 37,139,235, 3, 0,170, 6, 21, 64, 56,160, 5,128, 82, -/* 0x03e0 */ 196, 8,192, 26, 0,124, 4, 27,198, 0, 0, 75, 32, 1,128, 82, -/* 0x03f0 */ 197, 8,192, 26, 0,124, 5, 27,198, 0, 0, 75,174, 0, 6, 11, -/* 0x0400 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26, -/* 0x0410 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82, -/* 0x0420 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82, -/* 0x0430 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210, -/* 0x0440 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248, -/* 0x0450 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,231, 0, 0,148, -/* 0x0460 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185, -/* 0x0470 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11, -/* 0x0480 */ 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185, -/* 0x0490 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26, -/* 0x04a0 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11, -/* 0x04b0 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82, -/* 0x04c0 */ 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147, -/* 0x04d0 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145, -/* 0x04e0 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148, -/* 0x04f0 */ 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113, -/* 0x0500 */ 195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, -/* 0x0510 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82, -/* 0x0520 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26, -/* 0x0530 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148, -/* 0x0540 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185, -/* 0x0550 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113, -/* 0x0560 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, -/* 0x0570 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, -/* 0x0580 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, -/* 0x0590 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, -/* 0x05a0 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84, -/* 0x05b0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, -/* 0x05c0 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, -/* 0x05d0 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185, -/* 0x05e0 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185, -/* 0x05f0 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, -/* 0x0600 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, -/* 0x0610 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84, -/* 0x0620 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82, -/* 0x0630 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145, -/* 0x0640 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145, -/* 0x0650 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, -/* 0x0660 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82, -/* 0x0670 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, -/* 0x0680 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11, -/* 0x0690 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, -/* 0x06a0 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42, -/* 0x06b0 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82, -/* 0x06c0 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84, -/* 0x06d0 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83, -/* 0x06e0 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113, -/* 0x06f0 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75, -/* 0x0700 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, -/* 0x0710 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26, -/* 0x0720 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145, -/* 0x0730 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82, -/* 0x0740 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84, -/* 0x0750 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, -/* 0x0760 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185, -/* 0x0770 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107, -/* 0x0780 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, -/* 0x0790 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, -/* 0x07a0 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,227,229,255, 84, -/* 0x07b0 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203, -/* 0x07c0 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203, -/* 0x07d0 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82, -/* 0x07e0 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235, -/* 0x07f0 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42, -/* 0x0800 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, -/* 0x0810 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, -/* 0x0820 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27, -/* 0x0830 */ 159, 1, 2,107, 2, 1, 0, 84, 2, 0,129, 82,231, 3, 2, 42, -/* 0x0840 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, -/* 0x0850 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, -/* 0x0860 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,195, 3, 64,185, -/* 0x0870 */ 193, 7, 64,185,194, 67, 33,139, 66, 48, 0,145,192, 67, 35,139, -/* 0x0880 */ 0, 0, 3,145,228, 3, 1, 42, 73,204, 95,184,132, 16, 0, 81, -/* 0x0890 */ 9,204, 31,184,164,255,255, 53,196, 11, 64,185,222, 3, 2,145, -/* 0x08a0 */ 227, 15, 31,184,227, 3, 0,145,226, 3, 30,170,171, 32, 1,209, -/* 0x08b0 */ 234, 3, 30,170,160, 0, 63,214, 64, 1, 31,214,229, 3, 30,170, -/* 0x08c0 */ 235,255,255,151,102,105,108,101, 32,102,111,114,109, 97,116, 32, -/* 0x08d0 */ 101,108,102, 54, 52, 45,108,105,116,116,108,101, 97, 97,114, 99, -/* 0x08e0 */ 104, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, -/* 0x08f0 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x0900 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, -/* 0x0910 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, -/* 0x0920 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70, -/* 0x0930 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, -/* 0x0940 */ 108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x0950 */ 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, -/* 0x0960 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0970 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0980 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, -/* 0x0990 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x09a0 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x09b0 */ 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, -/* 0x09c0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x09d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x09e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x09f0 */ 48, 48, 48, 48, 48, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x0a00 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x0a10 */ 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, -/* 0x0a20 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, -/* 0x0a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x0a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0a50 */ 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32, 32, 50, 42, 42, 48, -/* 0x0a60 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x0a70 */ 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, -/* 0x0a80 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, -/* 0x0a90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0aa0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ab0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, 99, 32, 32, 50, -/* 0x0ac0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x0ad0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, -/* 0x0ae0 */ 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x0af0 */ 102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b00 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b10 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 99, 56, -/* 0x0b20 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x0b30 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, -/* 0x0b40 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x0b50 */ 48, 48, 52, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b60 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x0b80 */ 51, 98, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x0b90 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x0ba0 */ 54, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, -/* 0x0bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x0bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x0bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x0be0 */ 48, 48, 48, 56, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x0bf0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x0c00 */ 10, 32, 32, 55, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, -/* 0x0c10 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 53, 56, 32, 32, 48, 48, 48, -/* 0x0c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x0c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0c40 */ 32, 48, 48, 48, 48, 48, 56, 54, 99, 32, 32, 50, 42, 42, 48, 32, -/* 0x0c50 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, -/* 0x0c60 */ 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, -/* 0x0c70 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0c80 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, -/* 0x0c90 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ca0 */ 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, -/* 0x0cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0cc0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x0cd0 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ce0 */ 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, -/* 0x0cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x0d00 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, -/* 0x0d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d20 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, -/* 0x0d30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x0d40 */ 100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, -/* 0x0d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d70 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, -/* 0x0d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0d90 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0da0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x0db0 */ 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0dc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, -/* 0x0dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x0de0 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, -/* 0x0df0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x0e00 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x0e20 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, -/* 0x0e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, -/* 0x0e40 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e50 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, -/* 0x0e60 */ 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, -/* 0x0e80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e90 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, -/* 0x0ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, -/* 0x0eb0 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109, -/* 0x0ec0 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ed0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x0ee0 */ 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ef0 */ 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, -/* 0x0f00 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, -/* 0x0f10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f20 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, -/* 0x0f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, -/* 0x0f40 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, -/* 0x0f50 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x0f70 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, -/* 0x0f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, -/* 0x0f90 */ 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x0fb0 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, -/* 0x0fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100, -/* 0x0fd0 */ 101, 99,111,109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, -/* 0x0fe0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x0ff0 */ 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, -/* 0x1000 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1010 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1020 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1030 */ 48, 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, 65, 65, 82, 67, 72, -/* 0x1040 */ 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, -/* 0x1050 */ 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1060 */ 48, 48, 48, 48, 48, 53, 48, 10 +/* 0x03b0 */ 162,255,255, 84,233,255,255, 23,159, 56, 0,113, 1, 0, 0, 84, +/* 0x03c0 */ 1, 64, 33,139, 4, 0,128,210,225, 11,190,169,227,123, 1,169, +/* 0x03d0 */ 228, 19,191,169,224, 3, 0,145,227, 35, 0,145,230, 51, 0,145, +/* 0x03e0 */ 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,231, 32,200, 26, +/* 0x03f0 */ 253, 3, 0,145,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203, +/* 0x0400 */ 100, 16,129,168,127, 0, 8,235,195,255,255, 84,230, 3, 3,170, +/* 0x0410 */ 229, 3, 7, 42,228, 3, 2,170, 34, 8, 0, 81,225, 3, 0,170, +/* 0x0420 */ 39, 20, 64, 56,231, 8, 0, 18,231, 11, 0, 57, 39, 20, 64, 56, +/* 0x0430 */ 232,124, 4, 83,232, 7, 0, 57,231, 12, 0, 18,231, 3, 0, 57, +/* 0x0440 */ 224, 3, 0,145, 17, 0, 0,148,191, 3, 0,145,228,123, 65,169, +/* 0x0450 */ 225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185, +/* 0x0460 */ 228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, +/* 0x0470 */ 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84, +/* 0x0480 */ 224, 3, 4,170,192, 3, 95,214,243, 83,184,169, 39, 0,128, 82, +/* 0x0490 */ 20, 16, 0,145,245, 91, 1,169,247, 99, 2,169,249,107, 3,169, +/* 0x04a0 */ 251,115, 4,169,254, 43, 0,249, 8, 4, 64, 57, 26, 8, 64, 57, +/* 0x04b0 */ 28, 0, 64, 57,127, 0, 0,185,250, 32,218, 26,223, 0, 0,185, +/* 0x04c0 */ 231, 32,200, 26,231, 4, 0, 81,231,111, 0,185, 8, 4, 64, 57, +/* 0x04d0 */ 7, 96,128, 82, 90, 7, 0, 81, 8, 1, 28, 11,232, 32,200, 26, +/* 0x04e0 */ 8,217, 28, 49,224, 0, 0, 84, 7, 0,128,210, 9,128,128, 82, +/* 0x04f0 */ 137,122, 39,120,231, 4, 0,145, 31, 1, 7,107,168,255,255, 84, +/* 0x0500 */ 51, 64, 34,139,127, 2, 1,235, 0, 15, 0, 84,235, 3, 1,170, +/* 0x0510 */ 34, 4, 0,145,103, 85, 64, 56,127, 2, 2,235, 96, 14, 0, 84, +/* 0x0520 */ 72, 20, 64, 56,127, 1, 2,235, 7, 33, 7, 42, 97,255,255, 84, +/* 0x0530 */ 37, 68, 0, 52, 9,176, 41,145, 59, 0,128, 82,233, 63, 0,249, +/* 0x0540 */ 9, 1,128, 82, 41, 1, 28, 75, 10, 0,128, 18,245, 3, 27, 42, +/* 0x0550 */ 25, 0,128, 82, 8, 0,128, 82, 2, 0,128, 82, 16,224,191, 18, +/* 0x0560 */ 17, 0,129, 82,251,107, 0,185,251,115, 0,185,233,119, 0,185, +/* 0x0570 */ 78, 0, 26, 10, 44,111, 28, 83, 95, 1, 16,107,201,125, 64,147, +/* 0x0580 */ 44,193, 44,139,143,249,127,211,232, 0, 0, 84,127, 2, 11,235, +/* 0x0590 */ 192, 10, 0, 84,105, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x05a0 */ 39, 33, 7, 42,141,122,108,120, 73,125, 11, 83,169,125, 9, 27, +/* 0x05b0 */ 255, 0, 9,107,162, 10, 0, 84,234,211, 65, 57, 63, 27, 0,113, +/* 0x05c0 */ 8, 41,202, 26,234,111, 64,185, 79, 0, 10, 10,239, 33,220, 26, +/* 0x05d0 */ 239, 1, 8, 11, 40, 2, 13, 75,234,117, 30, 83, 79, 1, 15, 75, +/* 0x05e0 */ 173, 21,136, 11,239, 93,120,211,141,122, 44,120,239,217, 28,145, +/* 0x05f0 */ 143, 6, 15,139, 45, 31, 0, 84, 72, 0, 21, 75,146,104,104, 56, +/* 0x0600 */ 40, 0,128, 82, 7, 0, 0, 20,236,121, 42,120, 8,121, 31, 83, +/* 0x0610 */ 233, 3, 14, 42,205, 56, 0, 53, 31,253, 3,113,204, 3, 0, 84, +/* 0x0620 */ 82,122, 31, 83, 63, 1, 16,107, 77, 2, 24, 18, 22,121, 31, 83, +/* 0x0630 */ 170,125, 64,147, 74, 1, 4,145, 74,193, 40,139,232, 0, 0, 84, +/* 0x0640 */ 127, 1, 19,235, 41, 93, 24, 83, 0, 5, 0, 84,108, 1, 64, 57, +/* 0x0650 */ 107, 5, 0,145,135, 33, 7, 42,236,121,106,120, 46,125, 11, 83, +/* 0x0660 */ 55, 2, 12, 75,142,125, 14, 27,152, 21, 76, 75,140, 21,151, 11, +/* 0x0670 */ 255, 0, 14,107, 41, 1, 14, 75,131,252,255, 84,248,121, 42,120, +/* 0x0680 */ 200, 6, 0, 17,231, 0, 14, 75,141,252,255, 53, 31,253, 3,113, +/* 0x0690 */ 45, 27, 0, 84, 8, 29, 0, 83,234, 3, 9, 42,136, 72, 34, 56, +/* 0x06a0 */ 66, 4, 0, 17, 63, 39, 0,113,140, 49, 0, 84, 57, 15, 0, 81, +/* 0x06b0 */ 191, 0, 2,107,232,245,255, 84, 0,224,191, 18, 95, 1, 0,107, +/* 0x06c0 */ 136, 0, 0, 84,127, 2, 11,235, 0, 1, 0, 84,107, 5, 0,145, +/* 0x06d0 */ 97, 1, 1,203, 97, 0, 0,185, 0, 0,128, 82,194, 0, 0,185, +/* 0x06e0 */ 3, 0, 0, 20, 31, 32, 3,213, 32, 0,128, 82,245, 91, 65,169, +/* 0x06f0 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249, +/* 0x0700 */ 243, 83,200,168,192, 3, 95,214, 74, 1, 9, 75,173, 21, 77, 75, +/* 0x0710 */ 231, 0, 9, 75,141,122, 44,120, 41,127, 64,147, 95, 1, 16,107, +/* 0x0720 */ 41, 1, 3,145, 45,249,127,211,232, 0, 0, 84,127, 1, 19,235, +/* 0x0730 */ 192,253,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0740 */ 7, 33, 7, 42,140,122,105,120, 72,125, 11, 83,136,125, 8, 27, +/* 0x0750 */ 255, 0, 8,107, 98, 25, 0, 84,234,107, 64,185, 63, 31, 0,113, +/* 0x0760 */ 251,115, 64,185,234,115, 0,185, 42, 2, 12, 75,245,107, 0,185, +/* 0x0770 */ 140, 21,138, 11,140,122, 41,120,105, 0,128, 82,249,179,137, 26, +/* 0x0780 */ 9,160, 25,145, 31, 1, 16,107,232, 0, 0, 84,127, 2, 11,235, +/* 0x0790 */ 192,250,255, 84,106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, +/* 0x07a0 */ 71, 33, 7, 42, 44, 1, 64,121, 10,125, 11, 83,138,125, 10, 27, +/* 0x07b0 */ 255, 0, 10,107,226, 30, 0, 84,210,113, 29, 83, 40, 2, 12, 75, +/* 0x07c0 */ 22, 0,128, 82,126, 0,128, 82, 82,126, 64,147,140, 21,136, 11, +/* 0x07d0 */ 82, 10, 0,145, 44, 1, 0,121, 50, 5, 18,139,238, 3, 30, 42, +/* 0x07e0 */ 45, 0,128, 82, 6, 0, 0, 20,232, 1, 0,121,206, 5, 0,113, +/* 0x07f0 */ 173,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107, +/* 0x0800 */ 183,121, 31, 83, 79,198, 45,139,232, 0, 0, 84,127, 2, 11,235, +/* 0x0810 */ 74, 93, 24, 83,160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, +/* 0x0820 */ 7, 33, 7, 42,232, 1, 64,121, 73,125, 11, 83, 44, 2, 8, 75, +/* 0x0830 */ 9,125, 9, 27, 24, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, +/* 0x0840 */ 74, 1, 9, 75, 35,253,255, 84,248, 1, 0,121,206, 5, 0,113, +/* 0x0850 */ 231, 0, 9, 75,237, 6, 0, 17, 33,253,255, 84, 40, 0,128, 82, +/* 0x0860 */ 63, 15, 0,113, 30, 33,222, 26,222, 2, 30, 75,205, 3, 13, 11, +/* 0x0870 */ 236, 22, 0, 84,191, 13, 0,113,104, 0,128, 82,181,209,136, 26, +/* 0x0880 */ 207, 0,128, 82,181,102, 26, 83, 46, 0,128, 82,181,126, 64,147, +/* 0x0890 */ 181,194, 6,145,181,250,127,211, 7, 0, 0, 20, 31, 32, 3,213, +/* 0x08a0 */ 136,106, 50,120,239, 5, 0,113,206,121, 31, 83,234, 3, 9, 42, +/* 0x08b0 */ 32, 3, 0, 84, 95, 1, 16,107,214,121, 31, 83,178,198, 46,139, +/* 0x08c0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,240,255, 84, +/* 0x08d0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,136,106,114,120, +/* 0x08e0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 23, 21, 72, 75, +/* 0x08f0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84, +/* 0x0900 */ 151,106, 50,120,239, 5, 0,113,231, 0, 9, 75,206, 6, 0, 17, +/* 0x0910 */ 33,253,255, 84,213, 1, 1, 81,191, 14, 0,113, 45, 17, 0, 84, +/* 0x0920 */ 191, 54, 0,113,168, 2, 0, 18, 8, 1, 31, 50,169,126, 1, 19, +/* 0x0930 */ 44, 32, 0, 84, 47, 5, 0, 81, 9, 86,128,210, 46,193, 53,203, +/* 0x0940 */ 21, 33,207, 26,206, 65, 53,139,142, 6, 14,139,206, 9, 0,209, +/* 0x0950 */ 50, 0,128, 82,247, 3, 18, 42, 8, 0, 0, 20, 31, 32, 3,213, +/* 0x0960 */ 200, 2, 0,121, 82,122, 31, 83,234, 3, 9, 42,239, 5, 0,113, +/* 0x0970 */ 247,122, 31, 83, 96, 14, 0, 84, 95, 1, 16,107, 88,122, 31, 83, +/* 0x0980 */ 214,197, 50,139,232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83, +/* 0x0990 */ 192,234,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42, +/* 0x09a0 */ 200, 2, 64,121, 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, +/* 0x09b0 */ 30, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, +/* 0x09c0 */ 3,253,255, 84,222, 2, 0,121,231, 0, 9, 75,181, 2, 23, 42, +/* 0x09d0 */ 18, 7, 0, 17,230,255,255, 23, 40, 0,128, 82, 6, 0, 0, 20, +/* 0x09e0 */ 8,121, 31, 83,234,121, 46,120, 31,253, 3,113,233, 3, 12, 42, +/* 0x09f0 */ 44, 3, 0, 84, 63, 1, 16,107, 18,121, 31, 83, 14,125, 64,147, +/* 0x0a00 */ 232, 0, 0, 84,127, 2, 11,235, 41, 93, 24, 83,224,230,255, 84, +/* 0x0a10 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,234,121,110,120, +/* 0x0a20 */ 44,125, 11, 83, 45, 2, 10, 75, 76,125, 12, 27, 86, 21, 74, 75, +/* 0x0a30 */ 74, 21,141, 11,255, 0, 12,107, 41, 1, 12, 75, 35,253,255, 84, +/* 0x0a40 */ 72, 6, 0, 17,246,121, 46,120, 31,253, 3,113,231, 0, 12, 75, +/* 0x0a50 */ 45,253,255, 84, 8, 29, 0, 83, 63, 15, 0,113,136, 72, 34, 56, +/* 0x0a60 */ 234, 3, 9, 42, 66, 4, 0, 17,236,225,255, 84,191, 0, 2,107, +/* 0x0a70 */ 25, 0,128, 82,232,215,255, 84, 16,255,255, 23, 31, 32, 3,213, +/* 0x0a80 */ 74, 1, 8, 75,140, 21, 76, 75, 95, 1, 16,107,140,122, 41,120, +/* 0x0a90 */ 231, 0, 8, 75,169, 97, 0,145,232, 0, 0, 84,127, 2, 11,235, +/* 0x0aa0 */ 64,226,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0ab0 */ 7, 33, 7, 42,140,106,105,120, 72,125, 11, 83,136,125, 8, 27, +/* 0x0ac0 */ 255, 0, 8,107,226, 9, 0, 84, 42, 2, 12, 75, 31, 1, 16,107, +/* 0x0ad0 */ 239,129, 7,145,140, 21,138, 11,140,106, 41,120,232, 0, 0, 84, +/* 0x0ae0 */ 127, 2, 11,235, 32,224,255, 84,105, 1, 64, 57, 8, 93, 24, 83, +/* 0x0af0 */ 107, 5, 0,145, 39, 33, 7, 42,137,106,111,120, 10,125, 11, 83, +/* 0x0b00 */ 42,125, 10, 27,255, 0, 10,107,130, 16, 0, 84, 40, 2, 9, 75, +/* 0x0b10 */ 41, 21,136, 11,137,106, 47,120,130,222,255, 52, 72, 0, 21, 75, +/* 0x0b20 */ 63, 31, 0,113, 41, 1,128, 82,108, 1,128, 82, 57,177,140, 26, +/* 0x0b30 */ 136,104,104, 56,136, 72, 34, 56, 66, 4, 0, 17,221,254,255, 23, +/* 0x0b40 */ 181, 6, 0, 49,160,219,255, 84, 57, 31, 0, 17,191, 2, 2,107, +/* 0x0b50 */ 173, 9, 0, 17,168,220,255, 84,233, 3, 2, 42, 72, 0, 21, 75, +/* 0x0b60 */ 173, 5, 0, 81, 66, 4, 0, 17,191, 1, 31,107,160, 16, 66,122, +/* 0x0b70 */ 136,104,104, 56,136, 72, 41, 56,233, 3, 2, 42, 8,255,255, 84, +/* 0x0b80 */ 191, 0, 2,107,104,207,255, 84,204,254,255, 23, 31, 32, 3,213, +/* 0x0b90 */ 8, 1, 10, 75,140, 21, 76, 75, 31, 1, 16,107, 44, 1, 0,121, +/* 0x0ba0 */ 231, 0, 10, 75,232, 0, 0, 84,127, 2, 11,235,224,217,255, 84, +/* 0x0bb0 */ 106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, +/* 0x0bc0 */ 44, 5, 64,121, 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107, +/* 0x0bd0 */ 66, 7, 0, 84,210,113, 29, 83, 40, 2, 12, 75, 22, 1,128, 82, +/* 0x0be0 */ 126, 0,128, 82, 82,126, 64,147,136, 21,136, 11, 82, 10, 2,145, +/* 0x0bf0 */ 40, 5, 0,121, 50, 5, 18,139,249,254,255, 23, 31, 32, 3,213, +/* 0x0c00 */ 74, 1, 8, 75,231, 0, 8, 75, 95, 1, 16,107,136, 21, 76, 75, +/* 0x0c10 */ 136,106, 41,120,172,193, 0,145,232, 0, 0, 84,127, 2, 11,235, +/* 0x0c20 */ 64,214,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0c30 */ 7, 33, 7, 42,137,106,108,120, 72,125, 11, 83, 40,125, 8, 27, +/* 0x0c40 */ 255, 0, 8,107, 35, 5, 0, 84, 74, 1, 8, 75, 41, 21, 73, 75, +/* 0x0c50 */ 95, 1, 16,107,137,106, 44,120,231, 0, 8, 75,173, 33, 1,145, +/* 0x0c60 */ 232, 0, 0, 84,127, 2, 11,235, 0,212,255, 84,104, 1, 64, 57, +/* 0x0c70 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,109,120, +/* 0x0c80 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107,226, 7, 0, 84, +/* 0x0c90 */ 234, 3, 21, 42,236,107, 64,185,234,107, 0,185, 42, 2, 9, 75, +/* 0x0ca0 */ 245,115, 64,185, 41, 21,138, 11,236,115, 0,185,137,106, 45,120, +/* 0x0cb0 */ 20, 0, 0, 20, 31, 32, 3,213,231, 0, 10, 75, 50, 17, 8,145, +/* 0x0cc0 */ 10, 1, 10, 75, 22, 2,128, 82,136, 21, 76, 75, 30, 1,128, 82, +/* 0x0cd0 */ 40, 5, 0,121,194,254,255, 23,191, 0, 2,107, 57, 27, 0, 81, +/* 0x0ce0 */ 136,196,255, 84,117,254,255, 23,234, 3, 21, 42,245,107, 64,185, +/* 0x0cf0 */ 234,107, 0,185, 42, 2, 9, 75, 41, 21,138, 11,137,106, 44,120, +/* 0x0d00 */ 63, 31, 0,113, 10, 1,128, 82,108, 1,128, 82,233, 63, 64,249, +/* 0x0d10 */ 89,177,140, 26,156,254,255, 23, 41, 21, 73, 75, 8, 1, 10, 75, +/* 0x0d20 */ 137,106, 47,120,231, 0, 10, 75,246,255,255, 23,233, 3, 14, 42, +/* 0x0d30 */ 87,254,255, 23, 41, 21, 0, 81, 95, 1, 16,107, 8,121, 31, 83, +/* 0x0d40 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,204,255, 84, +/* 0x0d50 */ 108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, 74,125, 1, 83, +/* 0x0d60 */ 255, 0, 10,107, 99, 0, 0, 84,231, 0, 10, 75, 8, 1, 0, 50, +/* 0x0d70 */ 41, 5, 0,113, 33,254,255, 84, 21,109, 28, 83, 14, 32, 25,145, +/* 0x0d80 */ 143, 0,128, 82,243,254,255, 23, 41, 21, 73, 75,137,106, 45,120, +/* 0x0d90 */ 233,107, 64,185,236, 3, 21, 42,231, 0, 8, 75,245, 3, 27, 42, +/* 0x0da0 */ 72, 1, 8, 75,251,115, 64,185,236,107, 0,185,233,115, 0,185, +/* 0x0db0 */ 212,255,255, 23, 2, 0,128, 82,227, 19,189,169,229, 27, 1,169, +/* 0x0dc0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170, +/* 0x0dd0 */ 142, 64, 37,139, 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, +/* 0x0de0 */ 4, 8, 64, 57,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26, +/* 0x0df0 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, +/* 0x0e00 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82, +/* 0x0e10 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, +/* 0x0e20 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, +/* 0x0e30 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, +/* 0x0e40 */ 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235,193,255,255, 84, +/* 0x0e50 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10, +/* 0x0e60 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148, +/* 0x0e70 */ 129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10, +/* 0x0e80 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, +/* 0x0e90 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11, +/* 0x0ea0 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, +/* 0x0eb0 */ 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56, +/* 0x0ec0 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, +/* 0x0ed0 */ 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107, +/* 0x0ee0 */ 193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20, +/* 0x0ef0 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, +/* 0x0f00 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26, +/* 0x0f10 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, +/* 0x0f20 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185, +/* 0x0f30 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, +/* 0x0f40 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26, +/* 0x0f50 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, +/* 0x0f60 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11, +/* 0x0f70 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113, +/* 0x0f80 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203, +/* 0x0f90 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x0fa0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145, +/* 0x0fb0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145, +/* 0x0fc0 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185, +/* 0x0fd0 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185, +/* 0x0fe0 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113, +/* 0x0ff0 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145, +/* 0x1000 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145, +/* 0x1010 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1020 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84, +/* 0x1030 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82, +/* 0x1040 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, +/* 0x1050 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82, +/* 0x1060 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x1070 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113, +/* 0x1080 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113, +/* 0x1090 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, +/* 0x10a0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, +/* 0x10b0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113, +/* 0x10c0 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18, +/* 0x10d0 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26, +/* 0x10e0 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, +/* 0x10f0 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83, +/* 0x1100 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, +/* 0x1110 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, +/* 0x1120 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, +/* 0x1130 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83, +/* 0x1140 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185, +/* 0x1150 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, +/* 0x1160 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147, +/* 0x1170 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235, +/* 0x1180 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, +/* 0x1190 */ 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82, +/* 0x11a0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185, +/* 0x11b0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185, +/* 0x11c0 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83, +/* 0x11d0 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, +/* 0x11e0 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, +/* 0x11f0 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83, +/* 0x1200 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121, +/* 0x1210 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84, +/* 0x1220 */ 2, 0,129, 82,231, 3, 2, 42, 66, 0, 3, 75, 0, 0, 0, 58, +/* 0x1230 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75, +/* 0x1240 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, +/* 0x1250 */ 32, 2, 95,214,195, 3, 64,185,193, 7, 64,185,194, 67, 33,139, +/* 0x1260 */ 66, 48, 0,145,192, 67, 35,139, 0, 0, 3,145,228, 3, 1, 42, +/* 0x1270 */ 73,204, 95,184,132, 16, 0, 81, 9,204, 31,184,164,255,255, 53, +/* 0x1280 */ 196, 11, 64,185,222, 3, 2,145,227, 15, 31,184,227, 3, 0,145, +/* 0x1290 */ 226, 3, 30,170,171, 32, 1,209,234, 3, 30,170,160, 0, 63,214, +/* 0x12a0 */ 64, 1, 31,214,229, 3, 30,170,235,255,255,151,102,105,108,101, +/* 0x12b0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105, +/* 0x12c0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99, +/* 0x12d0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, +/* 0x12e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, +/* 0x12f0 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1300 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1310 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, +/* 0x1320 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, +/* 0x1330 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, +/* 0x1340 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1370 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1380 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x1390 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, +/* 0x13a0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x13b0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x13c0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x13d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32, +/* 0x13e0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x13f0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, +/* 0x1400 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1410 */ 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1420 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1430 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1440 */ 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1450 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, +/* 0x1460 */ 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, +/* 0x1470 */ 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x14a0 */ 48, 48, 49, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x14b0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x14c0 */ 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, +/* 0x14d0 */ 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, +/* 0x14e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x14f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1500 */ 48, 48, 48, 48, 48, 50, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1510 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1520 */ 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, +/* 0x1530 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1540 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1550 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1560 */ 48, 32, 32, 48, 48, 48, 48, 48, 51, 98, 56, 32, 32, 50, 42, 42, +/* 0x1570 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, +/* 0x1580 */ 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, +/* 0x1590 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48, +/* 0x15a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15b0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 98, 56, 32, 32, +/* 0x15d0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x15e0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x15f0 */ 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, +/* 0x1600 */ 32, 32, 48, 48, 48, 48, 48, 57, 51, 48, 32, 32, 48, 48, 48, 48, +/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1630 */ 48, 48, 48, 48, 48, 52, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1640 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1650 */ 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x1660 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48, +/* 0x1670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1680 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1690 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 98, 56, 32, 32, 50, 42, 42, +/* 0x16a0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, +/* 0x16b0 */ 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, +/* 0x16c0 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16e0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16f0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, 52, 32, 32, +/* 0x1700 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x1710 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67, +/* 0x1720 */ 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x1730 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1740 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, +/* 0x1760 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1770 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, +/* 0x1780 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48, +/* 0x1790 */ 48, 48, 48, 48, 53, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x17b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x17c0 */ 49, 50, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x17d0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, +/* 0x17e0 */ 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, +/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1800 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1810 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1820 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, +/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1840 */ 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, +/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1860 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, +/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1880 */ 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, +/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, +/* 0x18a0 */ 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x18c0 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, +/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, +/* 0x18e0 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1900 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1910 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1930 */ 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, +/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, +/* 0x1950 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1960 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, +/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1980 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x19a0 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, +/* 0x19c0 */ 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19d0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x19e0 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1a00 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a10 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1a20 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1a40 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1a60 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1a80 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a90 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, +/* 0x1aa0 */ 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, +/* 0x1ac0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ad0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, +/* 0x1ae0 */ 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1af0 */ 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, +/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, +/* 0x1b10 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, +/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95, +/* 0x1b30 */ 110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115,115, +/* 0x1b40 */ 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b50 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, +/* 0x1b60 */ 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b70 */ 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, +/* 0x1b80 */ 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, +/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, +/* 0x1ba0 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108, 95, +/* 0x1bc0 */ 110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, +/* 0x1bd0 */ 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x1bf0 */ 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99, +/* 0x1c10 */ 111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c20 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, +/* 0x1c30 */ 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111, +/* 0x1c50 */ 109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x1c60 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x1c70 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, +/* 0x1c80 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, +/* 0x1c90 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x1ca0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 48, 48, 52, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, +/* 0x1cc0 */ 67, 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x1cd0 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ce0 */ 48, 48, 53, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x1cf0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, +/* 0x1d00 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x1d10 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x1d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x1d30 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, +/* 0x1d50 */ 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1d60 */ 67, 51, 48, 10 }; diff --git a/src/stub/arm64-linux.elf-entry.h b/src/stub/arm64-linux.elf-entry.h index cdb20ed0..c1cb0a76 100644 --- a/src/stub/arm64-linux.elf-entry.h +++ b/src/stub/arm64-linux.elf-entry.h @@ -1,5 +1,5 @@ /* arm64-linux.elf-entry.h - created from arm64-linux.elf-entry.bin, 5288 (0x14a8) bytes + created from arm64-linux.elf-entry.bin, 8615 (0x21a7) bytes This file is part of the UPX executable compressor. @@ -31,15 +31,15 @@ */ -#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 5288 -#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x88bc6b3d -#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0xabd0824b +#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8615 +#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x36f948c1 +#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x99bc5d91 -unsigned char stub_arm64_linux_elf_entry[5288] = { +unsigned char stub_arm64_linux_elf_entry[8615] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,240, 12, 0, 0, 0, 0, 0, 0, -/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 17, 0, 14, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,136, 23, 0, 0, 0, 0, 0, 0, +/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 22, 0, 19, 0, /* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 76,255,255, 16,129, 41, 64, 41,139, 53, 65, 41, /* 0x0060 */ 107, 1, 12,139, 74, 1, 12,139, 99, 1, 64,185,137, 1, 1,203, @@ -105,266 +105,474 @@ unsigned char stub_arm64_linux_elf_entry[5288] = { /* 0x0420 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151, /* 0x0430 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56, /* 0x0440 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23, -/* 0x0450 */ 227, 19,189,169,229, 27, 1,169,254, 19, 0,249,232, 3, 1,170, -/* 0x0460 */ 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139,235, 3, 0,170, -/* 0x0470 */ 6, 21, 64, 56,160, 5,128, 82,196, 8,192, 26, 0,124, 4, 27, -/* 0x0480 */ 198, 0, 0, 75, 32, 1,128, 82,197, 8,192, 26, 0,124, 5, 27, -/* 0x0490 */ 198, 0, 0, 75,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26, -/* 0x04a0 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, -/* 0x04b0 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82, -/* 0x04c0 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, -/* 0x04d0 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, -/* 0x04e0 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, -/* 0x04f0 */ 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235,193,255,255, 84, -/* 0x0500 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10, -/* 0x0510 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148, -/* 0x0520 */ 129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10, -/* 0x0530 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, -/* 0x0540 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11, -/* 0x0550 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, -/* 0x0560 */ 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56, -/* 0x0570 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, -/* 0x0580 */ 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107, -/* 0x0590 */ 193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20, -/* 0x05a0 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, -/* 0x05b0 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26, -/* 0x05c0 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, -/* 0x05d0 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185, -/* 0x05e0 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, -/* 0x05f0 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26, -/* 0x0600 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, -/* 0x0610 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11, -/* 0x0620 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113, -/* 0x0630 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203, -/* 0x0640 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, -/* 0x0650 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145, -/* 0x0660 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145, -/* 0x0670 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185, -/* 0x0680 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185, -/* 0x0690 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113, -/* 0x06a0 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145, -/* 0x06b0 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145, -/* 0x06c0 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, -/* 0x06d0 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84, -/* 0x06e0 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82, -/* 0x06f0 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, -/* 0x0700 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82, -/* 0x0710 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84, -/* 0x0720 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113, -/* 0x0730 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113, -/* 0x0740 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, -/* 0x0750 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, -/* 0x0760 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113, -/* 0x0770 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18, -/* 0x0780 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26, -/* 0x0790 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, -/* 0x07a0 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83, -/* 0x07b0 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, -/* 0x07c0 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, -/* 0x07d0 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, -/* 0x07e0 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83, -/* 0x07f0 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185, -/* 0x0800 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, -/* 0x0810 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147, -/* 0x0820 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235, -/* 0x0830 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, -/* 0x0840 */ 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82, -/* 0x0850 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185, -/* 0x0860 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185, -/* 0x0870 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83, -/* 0x0880 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, -/* 0x0890 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, -/* 0x08a0 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83, -/* 0x08b0 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121, -/* 0x08c0 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84, -/* 0x08d0 */ 2, 0,129, 82,231, 3, 2, 42, 66, 0, 3, 75, 0, 0, 0, 58, -/* 0x08e0 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75, -/* 0x08f0 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, -/* 0x0900 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82, -/* 0x0910 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, -/* 0x0920 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, -/* 0x0930 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, -/* 0x0940 */ 10, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, -/* 0x0950 */ 102, 54, 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, -/* 0x0960 */ 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, -/* 0x0970 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, -/* 0x0980 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, -/* 0x0990 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, -/* 0x09a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108, -/* 0x09b0 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, -/* 0x09c0 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, -/* 0x09d0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 99, 32, 32, 48, -/* 0x09e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x09f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0a00 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, -/* 0x0a10 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, -/* 0x0a20 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, -/* 0x0a30 */ 32, 76, 85, 78, 77, 80, 48, 48, 48, 32, 32, 32, 32, 32, 32, 48, -/* 0x0a40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x0a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x0a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x0a70 */ 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x0a80 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x0a90 */ 32, 32, 50, 32, 76, 85, 78, 77, 80, 48, 48, 49, 32, 32, 32, 32, -/* 0x0aa0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x0ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x0ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x0ad0 */ 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x0ae0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x0af0 */ 76, 89, 10, 32, 32, 51, 32, 69, 76, 70, 77, 65, 73, 78, 88,117, -/* 0x0b00 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 97, 48, 32, 32, 48, -/* 0x0b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0b20 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b30 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, -/* 0x0b40 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, -/* 0x0b50 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, -/* 0x0b60 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, -/* 0x0b70 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x0b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x0b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x0ba0 */ 48, 48, 49, 49, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x0bb0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x0bc0 */ 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, -/* 0x0bd0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x0be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x0bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x0c00 */ 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x0c10 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x0c20 */ 76, 89, 10, 32, 32, 54, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, -/* 0x0c30 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, -/* 0x0c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0c50 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0c60 */ 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 50, 42, 42, -/* 0x0c70 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x0c80 */ 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 78, 82, 86, 50, 68, 32, -/* 0x0c90 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, -/* 0x0ca0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0cb0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0cc0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 52, 52, 32, 32, -/* 0x0cd0 */ 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x0ce0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, -/* 0x0cf0 */ 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x0d00 */ 53, 97, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d10 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d20 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 54, -/* 0x0d30 */ 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x0d40 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, -/* 0x0d50 */ 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, -/* 0x0d60 */ 48, 48, 48, 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x0d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x0d90 */ 48, 57, 48, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, -/* 0x0da0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x0db0 */ 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, -/* 0x0dc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x0dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x0de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x0df0 */ 48, 48, 48, 48, 57, 52, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x0e00 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x0e10 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, -/* 0x0e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e30 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x0e40 */ 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e50 */ 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, -/* 0x0e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x0e70 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, -/* 0x0e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, -/* 0x0e90 */ 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x0eb0 */ 32, 76, 85, 78, 77, 80, 48, 48, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x0ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 85, 78, 77, 80, -/* 0x0ed0 */ 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ee0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 85, 78, -/* 0x0ef0 */ 77, 80, 48, 48, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f00 */ 48, 48, 48, 48, 48, 48, 32, 76, 85, 78, 77, 80, 48, 48, 49, 10, -/* 0x0f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f20 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x0f30 */ 88,117, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f40 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,117, 10, 48, 48, -/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x0f60 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, -/* 0x0f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f80 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, -/* 0x0f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x0fa0 */ 100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, -/* 0x0fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, -/* 0x0fc0 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0fd0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x0fe0 */ 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ff0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, -/* 0x1000 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x1010 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, -/* 0x1020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, -/* 0x1030 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1040 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, -/* 0x1050 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1060 */ 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1070 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1080 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, -/* 0x1090 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, -/* 0x10a0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x10b0 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, -/* 0x10c0 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x10d0 */ 48, 48, 48, 32, 76, 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x10e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, -/* 0x10f0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1100 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 80, 82, 48, 10, 48, 48, -/* 0x1110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1120 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, -/* 0x1130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 70, -/* 0x1140 */ 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1150 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, -/* 0x1160 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1170 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1180 */ 48, 48, 48, 48, 48, 48, 49, 52, 32,103, 32, 32, 32, 32, 32, 32, -/* 0x1190 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, -/* 0x11a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114, -/* 0x11b0 */ 116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x11c0 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, -/* 0x11d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, -/* 0x11e0 */ 56, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111, -/* 0x11f0 */ 109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, -/* 0x1200 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, -/* 0x1210 */ 32, 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1220 */ 48, 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114, -/* 0x1230 */ 118, 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, -/* 0x1240 */ 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1250 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, -/* 0x1260 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, -/* 0x1270 */ 48, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111, -/* 0x1280 */ 109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, -/* 0x1290 */ 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,103, 32, 32, 32, 32, -/* 0x12a0 */ 32, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x12b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, -/* 0x12c0 */ 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x12d0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, -/* 0x12e0 */ 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x12f0 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111, -/* 0x1300 */ 109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1310 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1320 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,112,114, 48, 10, 10, -/* 0x1340 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x1350 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, -/* 0x1360 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, -/* 0x1370 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1380 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, -/* 0x1390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 65, -/* 0x13a0 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 76, -/* 0x13b0 */ 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x13c0 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, -/* 0x13d0 */ 66, 83, 51, 50, 32, 32, 32, 67, 80, 82, 48, 10, 48, 48, 48, 48, -/* 0x13e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 65, -/* 0x13f0 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 77, -/* 0x1400 */ 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1410 */ 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, -/* 0x1420 */ 66, 83, 54, 52, 32, 32, 32, 65, 68, 82, 77, 10, 10, 82, 69, 76, -/* 0x1430 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, -/* 0x1440 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88,117, 93, 58, -/* 0x1450 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1460 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1470 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x1480 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 52, 32, 82, 95, 65, 65, 82, -/* 0x1490 */ 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 69, -/* 0x14a0 */ 76, 70, 77, 65, 73, 78, 89, 10 +/* 0x0450 */ 159, 56, 0,113, 1, 0, 0, 84, 1, 64, 33,139, 4, 0,128,210, +/* 0x0460 */ 225, 11,190,169,227,123, 1,169,228, 19,191,169,224, 3, 0,145, +/* 0x0470 */ 227, 35, 0,145,230, 51, 0,145, 8, 0, 64, 57, 7,192,128, 82, +/* 0x0480 */ 8,125, 3, 83,231, 32,200, 26,253, 3, 0,145,231,192, 57, 17, +/* 0x0490 */ 232, 3, 0,145,255, 67, 39,203,100, 16,129,168,127, 0, 8,235, +/* 0x04a0 */ 195,255,255, 84,230, 3, 3,170,229, 3, 7, 42,228, 3, 2,170, +/* 0x04b0 */ 34, 8, 0, 81,225, 3, 0,170, 39, 20, 64, 56,231, 8, 0, 18, +/* 0x04c0 */ 231, 11, 0, 57, 39, 20, 64, 56,232,124, 4, 83,232, 7, 0, 57, +/* 0x04d0 */ 231, 12, 0, 18,231, 3, 0, 57,224, 3, 0,145, 17, 0, 0,148, +/* 0x04e0 */ 191, 3, 0,145,228,123, 65,169,225, 15,194,168, 0, 0, 1,203, +/* 0x04f0 */ 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, +/* 0x0500 */ 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, +/* 0x0510 */ 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,192, 3, 95,214, +/* 0x0520 */ 243, 83,184,169, 39, 0,128, 82, 20, 16, 0,145,245, 91, 1,169, +/* 0x0530 */ 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249, +/* 0x0540 */ 8, 4, 64, 57, 26, 8, 64, 57, 28, 0, 64, 57,127, 0, 0,185, +/* 0x0550 */ 250, 32,218, 26,223, 0, 0,185,231, 32,200, 26,231, 4, 0, 81, +/* 0x0560 */ 231,111, 0,185, 8, 4, 64, 57, 7, 96,128, 82, 90, 7, 0, 81, +/* 0x0570 */ 8, 1, 28, 11,232, 32,200, 26, 8,217, 28, 49,224, 0, 0, 84, +/* 0x0580 */ 7, 0,128,210, 9,128,128, 82,137,122, 39,120,231, 4, 0,145, +/* 0x0590 */ 31, 1, 7,107,168,255,255, 84, 51, 64, 34,139,127, 2, 1,235, +/* 0x05a0 */ 0, 15, 0, 84,235, 3, 1,170, 34, 4, 0,145,103, 85, 64, 56, +/* 0x05b0 */ 127, 2, 2,235, 96, 14, 0, 84, 72, 20, 64, 56,127, 1, 2,235, +/* 0x05c0 */ 7, 33, 7, 42, 97,255,255, 84, 37, 68, 0, 52, 9,176, 41,145, +/* 0x05d0 */ 59, 0,128, 82,233, 63, 0,249, 9, 1,128, 82, 41, 1, 28, 75, +/* 0x05e0 */ 10, 0,128, 18,245, 3, 27, 42, 25, 0,128, 82, 8, 0,128, 82, +/* 0x05f0 */ 2, 0,128, 82, 16,224,191, 18, 17, 0,129, 82,251,107, 0,185, +/* 0x0600 */ 251,115, 0,185,233,119, 0,185, 78, 0, 26, 10, 44,111, 28, 83, +/* 0x0610 */ 95, 1, 16,107,201,125, 64,147, 44,193, 44,139,143,249,127,211, +/* 0x0620 */ 232, 0, 0, 84,127, 2, 11,235,192, 10, 0, 84,105, 1, 64, 57, +/* 0x0630 */ 74, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42,141,122,108,120, +/* 0x0640 */ 73,125, 11, 83,169,125, 9, 27,255, 0, 9,107,162, 10, 0, 84, +/* 0x0650 */ 234,211, 65, 57, 63, 27, 0,113, 8, 41,202, 26,234,111, 64,185, +/* 0x0660 */ 79, 0, 10, 10,239, 33,220, 26,239, 1, 8, 11, 40, 2, 13, 75, +/* 0x0670 */ 234,117, 30, 83, 79, 1, 15, 75,173, 21,136, 11,239, 93,120,211, +/* 0x0680 */ 141,122, 44,120,239,217, 28,145,143, 6, 15,139, 45, 31, 0, 84, +/* 0x0690 */ 72, 0, 21, 75,146,104,104, 56, 40, 0,128, 82, 7, 0, 0, 20, +/* 0x06a0 */ 236,121, 42,120, 8,121, 31, 83,233, 3, 14, 42,205, 56, 0, 53, +/* 0x06b0 */ 31,253, 3,113,204, 3, 0, 84, 82,122, 31, 83, 63, 1, 16,107, +/* 0x06c0 */ 77, 2, 24, 18, 22,121, 31, 83,170,125, 64,147, 74, 1, 4,145, +/* 0x06d0 */ 74,193, 40,139,232, 0, 0, 84,127, 1, 19,235, 41, 93, 24, 83, +/* 0x06e0 */ 0, 5, 0, 84,108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, +/* 0x06f0 */ 236,121,106,120, 46,125, 11, 83, 55, 2, 12, 75,142,125, 14, 27, +/* 0x0700 */ 152, 21, 76, 75,140, 21,151, 11,255, 0, 14,107, 41, 1, 14, 75, +/* 0x0710 */ 131,252,255, 84,248,121, 42,120,200, 6, 0, 17,231, 0, 14, 75, +/* 0x0720 */ 141,252,255, 53, 31,253, 3,113, 45, 27, 0, 84, 8, 29, 0, 83, +/* 0x0730 */ 234, 3, 9, 42,136, 72, 34, 56, 66, 4, 0, 17, 63, 39, 0,113, +/* 0x0740 */ 140, 49, 0, 84, 57, 15, 0, 81,191, 0, 2,107,232,245,255, 84, +/* 0x0750 */ 0,224,191, 18, 95, 1, 0,107,136, 0, 0, 84,127, 2, 11,235, +/* 0x0760 */ 0, 1, 0, 84,107, 5, 0,145, 97, 1, 1,203, 97, 0, 0,185, +/* 0x0770 */ 0, 0,128, 82,194, 0, 0,185, 3, 0, 0, 20, 31, 32, 3,213, +/* 0x0780 */ 32, 0,128, 82,245, 91, 65,169,247, 99, 66,169,249,107, 67,169, +/* 0x0790 */ 251,115, 68,169,254, 43, 64,249,243, 83,200,168,192, 3, 95,214, +/* 0x07a0 */ 74, 1, 9, 75,173, 21, 77, 75,231, 0, 9, 75,141,122, 44,120, +/* 0x07b0 */ 41,127, 64,147, 95, 1, 16,107, 41, 1, 3,145, 45,249,127,211, +/* 0x07c0 */ 232, 0, 0, 84,127, 1, 19,235,192,253,255, 84,104, 1, 64, 57, +/* 0x07d0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,122,105,120, +/* 0x07e0 */ 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107, 98, 25, 0, 84, +/* 0x07f0 */ 234,107, 64,185, 63, 31, 0,113,251,115, 64,185,234,115, 0,185, +/* 0x0800 */ 42, 2, 12, 75,245,107, 0,185,140, 21,138, 11,140,122, 41,120, +/* 0x0810 */ 105, 0,128, 82,249,179,137, 26, 9,160, 25,145, 31, 1, 16,107, +/* 0x0820 */ 232, 0, 0, 84,127, 2, 11,235,192,250,255, 84,106, 1, 64, 57, +/* 0x0830 */ 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, 44, 1, 64,121, +/* 0x0840 */ 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,226, 30, 0, 84, +/* 0x0850 */ 210,113, 29, 83, 40, 2, 12, 75, 22, 0,128, 82,126, 0,128, 82, +/* 0x0860 */ 82,126, 64,147,140, 21,136, 11, 82, 10, 0,145, 44, 1, 0,121, +/* 0x0870 */ 50, 5, 18,139,238, 3, 30, 42, 45, 0,128, 82, 6, 0, 0, 20, +/* 0x0880 */ 232, 1, 0,121,206, 5, 0,113,173,121, 31, 83,234, 3, 9, 42, +/* 0x0890 */ 32, 3, 0, 84, 95, 1, 16,107,183,121, 31, 83, 79,198, 45,139, +/* 0x08a0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,160,246,255, 84, +/* 0x08b0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,232, 1, 64,121, +/* 0x08c0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 24, 21, 72, 75, +/* 0x08d0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84, +/* 0x08e0 */ 248, 1, 0,121,206, 5, 0,113,231, 0, 9, 75,237, 6, 0, 17, +/* 0x08f0 */ 33,253,255, 84, 40, 0,128, 82, 63, 15, 0,113, 30, 33,222, 26, +/* 0x0900 */ 222, 2, 30, 75,205, 3, 13, 11,236, 22, 0, 84,191, 13, 0,113, +/* 0x0910 */ 104, 0,128, 82,181,209,136, 26,207, 0,128, 82,181,102, 26, 83, +/* 0x0920 */ 46, 0,128, 82,181,126, 64,147,181,194, 6,145,181,250,127,211, +/* 0x0930 */ 7, 0, 0, 20, 31, 32, 3,213,136,106, 50,120,239, 5, 0,113, +/* 0x0940 */ 206,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107, +/* 0x0950 */ 214,121, 31, 83,178,198, 46,139,232, 0, 0, 84,127, 2, 11,235, +/* 0x0960 */ 74, 93, 24, 83,224,240,255, 84,104, 1, 64, 57,107, 5, 0,145, +/* 0x0970 */ 7, 33, 7, 42,136,106,114,120, 73,125, 11, 83, 44, 2, 8, 75, +/* 0x0980 */ 9,125, 9, 27, 23, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, +/* 0x0990 */ 74, 1, 9, 75, 35,253,255, 84,151,106, 50,120,239, 5, 0,113, +/* 0x09a0 */ 231, 0, 9, 75,206, 6, 0, 17, 33,253,255, 84,213, 1, 1, 81, +/* 0x09b0 */ 191, 14, 0,113, 45, 17, 0, 84,191, 54, 0,113,168, 2, 0, 18, +/* 0x09c0 */ 8, 1, 31, 50,169,126, 1, 19, 44, 32, 0, 84, 47, 5, 0, 81, +/* 0x09d0 */ 9, 86,128,210, 46,193, 53,203, 21, 33,207, 26,206, 65, 53,139, +/* 0x09e0 */ 142, 6, 14,139,206, 9, 0,209, 50, 0,128, 82,247, 3, 18, 42, +/* 0x09f0 */ 8, 0, 0, 20, 31, 32, 3,213,200, 2, 0,121, 82,122, 31, 83, +/* 0x0a00 */ 234, 3, 9, 42,239, 5, 0,113,247,122, 31, 83, 96, 14, 0, 84, +/* 0x0a10 */ 95, 1, 16,107, 88,122, 31, 83,214,197, 50,139,232, 0, 0, 84, +/* 0x0a20 */ 127, 2, 11,235, 74, 93, 24, 83,192,234,255, 84,104, 1, 64, 57, +/* 0x0a30 */ 107, 5, 0,145, 7, 33, 7, 42,200, 2, 64,121, 73,125, 11, 83, +/* 0x0a40 */ 44, 2, 8, 75, 9,125, 9, 27, 30, 21, 72, 75, 8, 21,140, 11, +/* 0x0a50 */ 255, 0, 9,107, 74, 1, 9, 75, 3,253,255, 84,222, 2, 0,121, +/* 0x0a60 */ 231, 0, 9, 75,181, 2, 23, 42, 18, 7, 0, 17,230,255,255, 23, +/* 0x0a70 */ 40, 0,128, 82, 6, 0, 0, 20, 8,121, 31, 83,234,121, 46,120, +/* 0x0a80 */ 31,253, 3,113,233, 3, 12, 42, 44, 3, 0, 84, 63, 1, 16,107, +/* 0x0a90 */ 18,121, 31, 83, 14,125, 64,147,232, 0, 0, 84,127, 2, 11,235, +/* 0x0aa0 */ 41, 93, 24, 83,224,230,255, 84,106, 1, 64, 57,107, 5, 0,145, +/* 0x0ab0 */ 71, 33, 7, 42,234,121,110,120, 44,125, 11, 83, 45, 2, 10, 75, +/* 0x0ac0 */ 76,125, 12, 27, 86, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107, +/* 0x0ad0 */ 41, 1, 12, 75, 35,253,255, 84, 72, 6, 0, 17,246,121, 46,120, +/* 0x0ae0 */ 31,253, 3,113,231, 0, 12, 75, 45,253,255, 84, 8, 29, 0, 83, +/* 0x0af0 */ 63, 15, 0,113,136, 72, 34, 56,234, 3, 9, 42, 66, 4, 0, 17, +/* 0x0b00 */ 236,225,255, 84,191, 0, 2,107, 25, 0,128, 82,232,215,255, 84, +/* 0x0b10 */ 16,255,255, 23, 31, 32, 3,213, 74, 1, 8, 75,140, 21, 76, 75, +/* 0x0b20 */ 95, 1, 16,107,140,122, 41,120,231, 0, 8, 75,169, 97, 0,145, +/* 0x0b30 */ 232, 0, 0, 84,127, 2, 11,235, 64,226,255, 84,104, 1, 64, 57, +/* 0x0b40 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,106,105,120, +/* 0x0b50 */ 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107,226, 9, 0, 84, +/* 0x0b60 */ 42, 2, 12, 75, 31, 1, 16,107,239,129, 7,145,140, 21,138, 11, +/* 0x0b70 */ 140,106, 41,120,232, 0, 0, 84,127, 2, 11,235, 32,224,255, 84, +/* 0x0b80 */ 105, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42, +/* 0x0b90 */ 137,106,111,120, 10,125, 11, 83, 42,125, 10, 27,255, 0, 10,107, +/* 0x0ba0 */ 130, 16, 0, 84, 40, 2, 9, 75, 41, 21,136, 11,137,106, 47,120, +/* 0x0bb0 */ 130,222,255, 52, 72, 0, 21, 75, 63, 31, 0,113, 41, 1,128, 82, +/* 0x0bc0 */ 108, 1,128, 82, 57,177,140, 26,136,104,104, 56,136, 72, 34, 56, +/* 0x0bd0 */ 66, 4, 0, 17,221,254,255, 23,181, 6, 0, 49,160,219,255, 84, +/* 0x0be0 */ 57, 31, 0, 17,191, 2, 2,107,173, 9, 0, 17,168,220,255, 84, +/* 0x0bf0 */ 233, 3, 2, 42, 72, 0, 21, 75,173, 5, 0, 81, 66, 4, 0, 17, +/* 0x0c00 */ 191, 1, 31,107,160, 16, 66,122,136,104,104, 56,136, 72, 41, 56, +/* 0x0c10 */ 233, 3, 2, 42, 8,255,255, 84,191, 0, 2,107,104,207,255, 84, +/* 0x0c20 */ 204,254,255, 23, 31, 32, 3,213, 8, 1, 10, 75,140, 21, 76, 75, +/* 0x0c30 */ 31, 1, 16,107, 44, 1, 0,121,231, 0, 10, 75,232, 0, 0, 84, +/* 0x0c40 */ 127, 2, 11,235,224,217,255, 84,106, 1, 64, 57, 8, 93, 24, 83, +/* 0x0c50 */ 107, 5, 0,145, 71, 33, 7, 42, 44, 5, 64,121, 10,125, 11, 83, +/* 0x0c60 */ 138,125, 10, 27,255, 0, 10,107, 66, 7, 0, 84,210,113, 29, 83, +/* 0x0c70 */ 40, 2, 12, 75, 22, 1,128, 82,126, 0,128, 82, 82,126, 64,147, +/* 0x0c80 */ 136, 21,136, 11, 82, 10, 2,145, 40, 5, 0,121, 50, 5, 18,139, +/* 0x0c90 */ 249,254,255, 23, 31, 32, 3,213, 74, 1, 8, 75,231, 0, 8, 75, +/* 0x0ca0 */ 95, 1, 16,107,136, 21, 76, 75,136,106, 41,120,172,193, 0,145, +/* 0x0cb0 */ 232, 0, 0, 84,127, 2, 11,235, 64,214,255, 84,104, 1, 64, 57, +/* 0x0cc0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,108,120, +/* 0x0cd0 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107, 35, 5, 0, 84, +/* 0x0ce0 */ 74, 1, 8, 75, 41, 21, 73, 75, 95, 1, 16,107,137,106, 44,120, +/* 0x0cf0 */ 231, 0, 8, 75,173, 33, 1,145,232, 0, 0, 84,127, 2, 11,235, +/* 0x0d00 */ 0,212,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0d10 */ 7, 33, 7, 42,137,106,109,120, 72,125, 11, 83, 40,125, 8, 27, +/* 0x0d20 */ 255, 0, 8,107,226, 7, 0, 84,234, 3, 21, 42,236,107, 64,185, +/* 0x0d30 */ 234,107, 0,185, 42, 2, 9, 75,245,115, 64,185, 41, 21,138, 11, +/* 0x0d40 */ 236,115, 0,185,137,106, 45,120, 20, 0, 0, 20, 31, 32, 3,213, +/* 0x0d50 */ 231, 0, 10, 75, 50, 17, 8,145, 10, 1, 10, 75, 22, 2,128, 82, +/* 0x0d60 */ 136, 21, 76, 75, 30, 1,128, 82, 40, 5, 0,121,194,254,255, 23, +/* 0x0d70 */ 191, 0, 2,107, 57, 27, 0, 81,136,196,255, 84,117,254,255, 23, +/* 0x0d80 */ 234, 3, 21, 42,245,107, 64,185,234,107, 0,185, 42, 2, 9, 75, +/* 0x0d90 */ 41, 21,138, 11,137,106, 44,120, 63, 31, 0,113, 10, 1,128, 82, +/* 0x0da0 */ 108, 1,128, 82,233, 63, 64,249, 89,177,140, 26,156,254,255, 23, +/* 0x0db0 */ 41, 21, 73, 75, 8, 1, 10, 75,137,106, 47,120,231, 0, 10, 75, +/* 0x0dc0 */ 246,255,255, 23,233, 3, 14, 42, 87,254,255, 23, 41, 21, 0, 81, +/* 0x0dd0 */ 95, 1, 16,107, 8,121, 31, 83,232, 0, 0, 84,127, 2, 11,235, +/* 0x0de0 */ 74, 93, 24, 83,224,204,255, 84,108, 1, 64, 57,107, 5, 0,145, +/* 0x0df0 */ 135, 33, 7, 42, 74,125, 1, 83,255, 0, 10,107, 99, 0, 0, 84, +/* 0x0e00 */ 231, 0, 10, 75, 8, 1, 0, 50, 41, 5, 0,113, 33,254,255, 84, +/* 0x0e10 */ 21,109, 28, 83, 14, 32, 25,145,143, 0,128, 82,243,254,255, 23, +/* 0x0e20 */ 41, 21, 73, 75,137,106, 45,120,233,107, 64,185,236, 3, 21, 42, +/* 0x0e30 */ 231, 0, 8, 75,245, 3, 27, 42, 72, 1, 8, 75,251,115, 64,185, +/* 0x0e40 */ 236,107, 0,185,233,115, 0,185,212,255,255, 23, 2, 0,128, 82, +/* 0x0e50 */ 227, 19,189,169,229, 27, 1,169,254, 19, 0,249,232, 3, 1,170, +/* 0x0e60 */ 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139, 11, 16, 0,145, +/* 0x0e70 */ 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,174, 0, 6, 11, +/* 0x0e80 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26, +/* 0x0e90 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82, +/* 0x0ea0 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82, +/* 0x0eb0 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210, +/* 0x0ec0 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248, +/* 0x0ed0 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,231, 0, 0,148, +/* 0x0ee0 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185, +/* 0x0ef0 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11, +/* 0x0f00 */ 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185, +/* 0x0f10 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26, +/* 0x0f20 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11, +/* 0x0f30 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82, +/* 0x0f40 */ 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147, +/* 0x0f50 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145, +/* 0x0f60 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148, +/* 0x0f70 */ 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113, +/* 0x0f80 */ 195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, +/* 0x0f90 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82, +/* 0x0fa0 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26, +/* 0x0fb0 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148, +/* 0x0fc0 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185, +/* 0x0fd0 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113, +/* 0x0fe0 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, +/* 0x0ff0 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, +/* 0x1000 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, +/* 0x1010 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x1020 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84, +/* 0x1030 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, +/* 0x1040 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, +/* 0x1050 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185, +/* 0x1060 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185, +/* 0x1070 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, +/* 0x1080 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, +/* 0x1090 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84, +/* 0x10a0 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82, +/* 0x10b0 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145, +/* 0x10c0 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145, +/* 0x10d0 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x10e0 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82, +/* 0x10f0 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, +/* 0x1100 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11, +/* 0x1110 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, +/* 0x1120 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42, +/* 0x1130 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82, +/* 0x1140 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x1150 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83, +/* 0x1160 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113, +/* 0x1170 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75, +/* 0x1180 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, +/* 0x1190 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26, +/* 0x11a0 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145, +/* 0x11b0 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82, +/* 0x11c0 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84, +/* 0x11d0 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, +/* 0x11e0 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185, +/* 0x11f0 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107, +/* 0x1200 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, +/* 0x1210 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, +/* 0x1220 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,227,229,255, 84, +/* 0x1230 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203, +/* 0x1240 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203, +/* 0x1250 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82, +/* 0x1260 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235, +/* 0x1270 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42, +/* 0x1280 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, +/* 0x1290 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, +/* 0x12a0 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27, +/* 0x12b0 */ 159, 1, 2,107, 2, 1, 0, 84, 2, 0,129, 82,231, 3, 2, 42, +/* 0x12c0 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, +/* 0x12d0 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, +/* 0x12e0 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,194, 3,128, 82, +/* 0x12f0 */ 225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212, +/* 0x1300 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, 80, 82, 79, 84, +/* 0x1310 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, +/* 0x1320 */ 32,102, 97,105,108,101,100, 46, 10, 0,102,105,108,101, 32,102, +/* 0x1330 */ 111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116, +/* 0x1340 */ 108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105, +/* 0x1350 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, +/* 0x1360 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, +/* 0x1370 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1380 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1390 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, +/* 0x13a0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, +/* 0x13b0 */ 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x13c0 */ 48, 48, 48, 51, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x13d0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x13e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x13f0 */ 48, 52, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, +/* 0x1400 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1410 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 76, 85, 78, 77, 80, 48, 48, +/* 0x1420 */ 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1430 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1440 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1450 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, +/* 0x1460 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1470 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 76, 85, 78, 77, +/* 0x1480 */ 80, 48, 48, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1490 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x14a0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x14b0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, +/* 0x14c0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x14d0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 69, +/* 0x14e0 */ 76, 70, 77, 65, 73, 78, 88,117, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x14f0 */ 48, 48, 48, 97, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1500 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1520 */ 48, 55, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, +/* 0x1530 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1540 */ 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x1550 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1560 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1570 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1580 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 50, +/* 0x1590 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x15a0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95, +/* 0x15b0 */ 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x15c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15d0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, +/* 0x15f0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1600 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 78, +/* 0x1610 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1620 */ 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1630 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1650 */ 49, 49, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, +/* 0x1660 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x1670 */ 55, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1680 */ 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1690 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x16a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x16b0 */ 48, 48, 48, 50, 52, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, +/* 0x16c0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x16d0 */ 10, 32, 32, 56, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, +/* 0x16e0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, +/* 0x16f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1700 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1710 */ 32, 48, 48, 48, 48, 48, 51, 54, 48, 32, 32, 50, 42, 42, 50, 32, +/* 0x1720 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x1730 */ 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1740 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48, 32, 32, +/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1760 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1770 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 53, 48, 32, 32, 50, 42, +/* 0x1780 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1790 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, +/* 0x17a0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, +/* 0x17b0 */ 48, 48, 48, 48, 48, 57, 51, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x17c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x17e0 */ 48, 48, 48, 53, 50, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x17f0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1800 */ 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, +/* 0x1810 */ 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48, 48, 48, +/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1840 */ 32, 48, 48, 48, 48, 48,101, 53, 48, 32, 32, 50, 42, 42, 50, 32, +/* 0x1850 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x1860 */ 78, 76, 89, 10, 32, 49, 50, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1870 */ 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1890 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18a0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 50,101, 99, 32, 32, 50, 42, +/* 0x18b0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x18c0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, 76, 70, 77, 65, +/* 0x18d0 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, +/* 0x18e0 */ 101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18f0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1900 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50,101, 99, 32, +/* 0x1910 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1920 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 52, 32, 69, 76, +/* 0x1930 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1940 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1950 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 51, +/* 0x1970 */ 50, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1980 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, +/* 0x1990 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, +/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x19b0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, +/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x19d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x19f0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, +/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, +/* 0x1a10 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1a30 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, +/* 0x1a50 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a60 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 85, 78, 77, +/* 0x1a70 */ 80, 48, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a80 */ 48, 48, 48, 48, 48, 32, 76, 85, 78, 77, 80, 48, 48, 48, 10, 48, +/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1aa0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 85, 78, 77, 80, 48, 48, 49, +/* 0x1ab0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ac0 */ 48, 32, 76, 85, 78, 77, 80, 48, 48, 49, 10, 48, 48, 48, 48, 48, +/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1ae0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,117, 9, 48, 48, +/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, +/* 0x1b00 */ 76, 70, 77, 65, 73, 78, 88,117, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x1b20 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, +/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, +/* 0x1b40 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b50 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1b60 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x1b80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, +/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1bd0 */ 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1c00 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, +/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, +/* 0x1c20 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c30 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1c40 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1c60 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c70 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1c80 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1ca0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1cc0 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1ce0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cf0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x1d00 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, +/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d30 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, +/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1d50 */ 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, +/* 0x1d70 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d80 */ 48, 48, 48, 32, 67, 80, 82, 48, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, +/* 0x1da0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 70, 76, 71, 10, 48, 48, +/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1dd0 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, +/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, +/* 0x1df0 */ 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e00 */ 48, 49, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x1e10 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e20 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, +/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1e40 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, +/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, +/* 0x1e60 */ 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1e70 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e80 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1e90 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ea0 */ 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, 95,100, +/* 0x1eb0 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, +/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1ed0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, +/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108, +/* 0x1ef0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1f00 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f10 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x1f20 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, +/* 0x1f40 */ 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f50 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, +/* 0x1f60 */ 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111, +/* 0x1f80 */ 109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, +/* 0x1fa0 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,112,114, 48, 10, 10, +/* 0x1fc0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x1fd0 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x1fe0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, +/* 0x1ff0 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2000 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, +/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 65, +/* 0x2020 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 76, +/* 0x2030 */ 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2040 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, +/* 0x2050 */ 66, 83, 51, 50, 32, 32, 32, 67, 80, 82, 48, 10, 48, 48, 48, 48, +/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 65, +/* 0x2070 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 77, +/* 0x2080 */ 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2090 */ 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, +/* 0x20a0 */ 66, 83, 54, 52, 32, 32, 32, 65, 68, 82, 77, 10, 10, 82, 69, 76, +/* 0x20b0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x20c0 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88,117, 93, 58, +/* 0x20d0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x20e0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x20f0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x2100 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 52, 32, 82, 95, 65, 65, 82, +/* 0x2110 */ 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 69, +/* 0x2120 */ 76, 70, 77, 65, 73, 78, 89, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x2130 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x2140 */ 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, +/* 0x2150 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, +/* 0x2160 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2170 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2180 */ 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, +/* 0x2190 */ 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, +/* 0x21a0 */ 95, 68, 69, 67, 51, 48, 10 }; diff --git a/src/stub/arm64-linux.shlib-init.h b/src/stub/arm64-linux.shlib-init.h index e735df5f..15c72a5f 100644 --- a/src/stub/arm64-linux.shlib-init.h +++ b/src/stub/arm64-linux.shlib-init.h @@ -1,5 +1,5 @@ /* arm64-linux.shlib-init.h - created from arm64-linux.shlib-init.bin, 4860 (0x12fc) bytes + created from arm64-linux.shlib-init.bin, 8187 (0x1ffb) bytes This file is part of the UPX executable compressor. @@ -31,15 +31,15 @@ */ -#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 4860 -#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x945c9f2b -#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0x4db9e7f6 +#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 8187 +#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x72487b5d +#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0x563aae83 -unsigned char stub_arm64_linux_shlib_init[4860] = { +unsigned char stub_arm64_linux_shlib_init[8187] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,200, 13, 0, 0, 0, 0, 0, 0, -/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 13, 0, 10, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 88, 24, 0, 0, 0, 0, 0, 0, +/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 18, 0, 15, 0, /* 0x0040 */ 0, 0, 32,212,253,123,190,169,224, 11, 0,249,227, 19,190,169, /* 0x0050 */ 230, 31, 1,169,224, 7,190,169,226, 11, 0,249,253, 3, 0,145, /* 0x0060 */ 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139, @@ -93,251 +93,459 @@ unsigned char stub_arm64_linux_shlib_init[4860] = { /* 0x0360 */ 231,255,255,151, 33, 0, 1, 58,229,255,255,151, 33, 0, 1, 58, /* 0x0370 */ 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49, /* 0x0380 */ 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56, -/* 0x0390 */ 162,255,255, 84,233,255,255, 23,227, 19,189,169,229, 27, 1,169, -/* 0x03a0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170, -/* 0x03b0 */ 142, 64, 37,139,235, 3, 0,170, 6, 21, 64, 56,160, 5,128, 82, -/* 0x03c0 */ 196, 8,192, 26, 0,124, 4, 27,198, 0, 0, 75, 32, 1,128, 82, -/* 0x03d0 */ 197, 8,192, 26, 0,124, 5, 27,198, 0, 0, 75,174, 0, 6, 11, -/* 0x03e0 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26, -/* 0x03f0 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82, -/* 0x0400 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82, -/* 0x0410 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210, -/* 0x0420 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248, -/* 0x0430 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,231, 0, 0,148, -/* 0x0440 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185, -/* 0x0450 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11, -/* 0x0460 */ 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185, -/* 0x0470 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26, -/* 0x0480 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11, -/* 0x0490 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82, -/* 0x04a0 */ 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147, -/* 0x04b0 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145, -/* 0x04c0 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148, -/* 0x04d0 */ 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113, -/* 0x04e0 */ 195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148, -/* 0x04f0 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82, -/* 0x0500 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26, -/* 0x0510 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148, -/* 0x0520 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185, -/* 0x0530 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113, -/* 0x0540 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20, -/* 0x0550 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185, -/* 0x0560 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84, -/* 0x0570 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, -/* 0x0580 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84, -/* 0x0590 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, -/* 0x05a0 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185, -/* 0x05b0 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185, -/* 0x05c0 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185, -/* 0x05d0 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42, -/* 0x05e0 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26, -/* 0x05f0 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84, -/* 0x0600 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82, -/* 0x0610 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145, -/* 0x0620 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145, -/* 0x0630 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82, -/* 0x0640 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82, -/* 0x0650 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148, -/* 0x0660 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11, -/* 0x0670 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17, -/* 0x0680 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42, -/* 0x0690 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82, -/* 0x06a0 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84, -/* 0x06b0 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83, -/* 0x06c0 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113, -/* 0x06d0 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75, -/* 0x06e0 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81, -/* 0x06f0 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26, -/* 0x0700 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145, -/* 0x0710 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82, -/* 0x0720 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84, -/* 0x0730 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84, -/* 0x0740 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185, -/* 0x0750 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107, -/* 0x0760 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, -/* 0x0770 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113, -/* 0x0780 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,227,229,255, 84, -/* 0x0790 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203, -/* 0x07a0 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203, -/* 0x07b0 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82, -/* 0x07c0 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235, -/* 0x07d0 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42, -/* 0x07e0 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82, -/* 0x07f0 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16, -/* 0x0800 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27, -/* 0x0810 */ 159, 1, 2,107, 2, 1, 0, 84, 2, 0,129, 82,231, 3, 2, 42, -/* 0x0820 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121, -/* 0x0830 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75, -/* 0x0840 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,194, 3,128, 82, -/* 0x0850 */ 225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212, -/* 0x0860 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, 80, 82, 79, 84, -/* 0x0870 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, -/* 0x0880 */ 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,226, 3, 30,170, -/* 0x0890 */ 65,208, 0,209,229, 3, 1,170, 36, 68, 64,184,165, 0, 4,203, -/* 0x08a0 */ 36, 68, 64,184,164, 0, 4,139,164, 75, 0,185, 36, 68, 64,184, -/* 0x08b0 */ 164, 0, 4,139,228,207, 31,248, 36, 68, 64,184,160, 0, 4, 11, -/* 0x08c0 */ 1, 96, 0, 17,255, 35, 0,209, 36, 4, 64,185, 33, 48, 0,145, -/* 0x08d0 */ 33, 0, 4,139, 36, 68, 64,184, 5, 44, 12, 83,165,124, 22, 83, -/* 0x08e0 */ 132, 8, 5, 11,228,207, 31,184, 0, 8, 5, 75,224,207, 31,184, -/* 0x08f0 */ 132, 8, 5, 75, 0, 8, 5, 11,229,207, 31,184, 16, 0, 0,148, -/* 0x0900 */ 99, 28, 0, 18,127, 64, 1,113,129, 1, 0, 84, 33,252, 66,211, -/* 0x0910 */ 65, 1, 0,180, 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83, -/* 0x0920 */ 127, 20, 0,113,129, 0, 0, 84, 66, 0, 1, 75, 98, 20, 26, 83, -/* 0x0930 */ 2,120, 33,184, 1,255,255,181,192, 3, 95,214,254,207, 31,248, -/* 0x0940 */ 35, 20, 64, 57,227,207, 31,248, 35, 24, 64, 57,227,207, 31,248, -/* 0x0950 */ 228,207, 31,248,224,207, 31,248, 36, 68, 64,184,229, 3, 4, 42, -/* 0x0960 */ 36, 68, 64,184,228,207, 31,248,226,207, 31,248,163, 83, 1,209, -/* 0x0970 */ 227,207, 31,248,224,207, 31,248,229,207, 31,248,225,207, 31,248, -/* 0x0980 */ 35, 4, 64,146,165, 12, 0,145,165, 0, 3,139,163, 3, 93,184, -/* 0x0990 */ 98, 8, 69,139,163,131, 89,184,115, 0, 0,148,163,131, 92,184, -/* 0x09a0 */ 113, 0, 0,148, 67, 0, 0,148, 4, 0,128,146, 67, 6,128,210, -/* 0x09b0 */ 98, 0,128,210,161,195, 93,248,160,131, 93,248,230, 3, 0,170, -/* 0x09c0 */ 200, 27,128, 82, 1, 0, 0,212, 31, 0, 6,235, 64, 0, 0, 84, -/* 0x09d0 */ 0, 0, 32,212,165, 3, 93,184,161, 67, 95,248, 44, 0, 0,148, -/* 0x09e0 */ 226, 15, 65,169,224, 7,194,168,228, 7, 65,248,128, 0, 63,214, -/* 0x09f0 */ 255, 35, 0,145, 10, 0, 0,148,232, 26,128, 82, 1, 0, 0,212, -/* 0x0a00 */ 226, 11, 64,249,224, 7,194,168,230, 31, 65,169,228, 23,194,168, -/* 0x0a10 */ 225, 11, 64,249,253,123,194,168, 32, 0, 31,214,164,195, 95,184, -/* 0x0a20 */ 192, 7, 64,169,128, 4, 0,169,226, 15, 65,169,224, 7,194,168, -/* 0x0a30 */ 228, 51,193,168, 67, 0, 0,180,128, 0, 63,214,224, 3, 64,249, -/* 0x0a40 */ 225, 67, 64,248, 2, 0,128,210, 33, 0, 0,139, 33, 32, 0,145, -/* 0x0a50 */ 8, 0,176, 82, 1, 0, 0,212,224, 7,193,168,162, 0,128,210, -/* 0x0a60 */ 72, 28,128, 82, 1, 0, 0,212,254, 11, 64,249,224, 7,194,168, -/* 0x0a70 */ 192, 3, 31,214, 37,192, 95,184,165, 92, 0, 18,165, 4, 0, 17, -/* 0x0a80 */ 35, 68, 64,184,165, 4, 0, 81, 3, 68, 0,184,191, 8, 0,114, -/* 0x0a90 */ 129,255,255, 84,165,124, 3, 83,165, 0, 0, 52, 34, 12,193,168, -/* 0x0aa0 */ 165, 4, 0,113, 2, 12,129,168,165,255,255, 53,192, 3, 95,214, -/* 0x0ab0 */ 254,207, 31,248,227, 3, 30,170, 43, 0, 0,148, 65,244,126,211, -/* 0x0ac0 */ 4, 0,128,146, 67, 4,128,210,226, 0,128,210,161,195, 31,248, -/* 0x0ad0 */ 0, 0,128,210,200, 27,128, 82, 1, 0, 0,212, 31, 4, 64,177, -/* 0x0ae0 */ 67, 0, 0, 84, 0, 0, 32,212,160, 67, 31,248,161,131, 93,184, -/* 0x0af0 */ 165, 3, 93,184,230,255,255,151,161,131, 87,184,165,195, 87,184, -/* 0x0b00 */ 35, 4, 0, 18, 33, 0, 3, 75,165, 0, 3, 11, 99, 0, 0, 11, -/* 0x0b10 */ 163,131, 23,184,165, 28, 0, 17,165,124, 3, 83,220,255,255,151, -/* 0x0b20 */ 226, 3, 0,170,161,131, 89,248,160,131, 25,248,210,255,255,151, -/* 0x0b30 */ 161,131, 92,248,160,131, 28,248,207,255,255,151,225, 71, 64,248, -/* 0x0b40 */ 224,207, 31,248,204,255,255,151,225, 3, 0,170,224, 3, 2,170, -/* 0x0b50 */ 2, 0,128,210, 8, 0,176, 82, 1, 0, 0,212,254, 71, 64,248, -/* 0x0b60 */ 192, 3, 31,214, 99,192, 95,184, 99, 92, 0, 18, 99, 4, 0, 17, -/* 0x0b70 */ 66, 0, 3,139,192, 3, 95,214,102,105,108,101, 32,102,111,114, -/* 0x0b80 */ 109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116,108,101, -/* 0x0b90 */ 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,111,110, -/* 0x0ba0 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, -/* 0x0bb0 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, -/* 0x0bc0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x0bd0 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x0be0 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, -/* 0x0bf0 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, -/* 0x0c00 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x0c10 */ 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0c20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0c30 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, -/* 0x0c40 */ 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x0c50 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x0c60 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, -/* 0x0c70 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x0c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x0c90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ca0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 50, 42, 42, -/* 0x0cb0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x0cc0 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, -/* 0x0cd0 */ 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ce0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0cf0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d00 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, -/* 0x0d10 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x0d20 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, -/* 0x0d30 */ 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x0d40 */ 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d50 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0d60 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 54, -/* 0x0d70 */ 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x0d80 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, -/* 0x0d90 */ 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, -/* 0x0da0 */ 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x0dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x0dd0 */ 48, 49, 56, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, -/* 0x0de0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x0df0 */ 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x0e00 */ 32, 48, 48, 48, 48, 48, 53, 97, 52, 32, 32, 48, 48, 48, 48, 48, -/* 0x0e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x0e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x0e30 */ 48, 48, 48, 48, 50, 97, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, -/* 0x0e40 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x0e50 */ 89, 10, 32, 32, 54, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, -/* 0x0e60 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51,101, 32, 32, 48, 48, -/* 0x0e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x0e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0e90 */ 32, 32, 48, 48, 48, 48, 48, 56, 52, 99, 32, 32, 50, 42, 42, 50, -/* 0x0ea0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x0eb0 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x0ec0 */ 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50,101, 99, 32, -/* 0x0ed0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ee0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0ef0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 56, 56, 99, 32, 32, 50, -/* 0x0f00 */ 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x0f10 */ 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, -/* 0x0f20 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f30 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, -/* 0x0f40 */ 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x0f60 */ 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f70 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, -/* 0x0f80 */ 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0f90 */ 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, -/* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x0fb0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, -/* 0x0fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x0fd0 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, -/* 0x0fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x0ff0 */ 100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, -/* 0x1000 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, -/* 0x1010 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1020 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, -/* 0x1030 */ 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1040 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, -/* 0x1050 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x1060 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, -/* 0x1070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, -/* 0x1080 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1090 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, -/* 0x10a0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x10b0 */ 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x10c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x10d0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, -/* 0x10e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, -/* 0x10f0 */ 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1100 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, -/* 0x1110 */ 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1120 */ 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, -/* 0x1130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, -/* 0x1140 */ 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, -/* 0x1150 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99, -/* 0x1160 */ 108, 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101, -/* 0x1170 */ 115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1180 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, -/* 0x1190 */ 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x11a0 */ 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, 95, -/* 0x11b0 */ 100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, -/* 0x11c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, -/* 0x11d0 */ 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, -/* 0x11e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99, -/* 0x11f0 */ 108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101, -/* 0x1200 */ 115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1210 */ 48, 48, 48, 48,102, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x1220 */ 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1230 */ 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, -/* 0x1240 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1250 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x1260 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1270 */ 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101, -/* 0x1280 */ 115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x1290 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x12a0 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x12b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x12c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x12d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 48, -/* 0x12e0 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, -/* 0x12f0 */ 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 +/* 0x0390 */ 162,255,255, 84,233,255,255, 23,159, 56, 0,113, 1, 0, 0, 84, +/* 0x03a0 */ 1, 64, 33,139, 4, 0,128,210,225, 11,190,169,227,123, 1,169, +/* 0x03b0 */ 228, 19,191,169,224, 3, 0,145,227, 35, 0,145,230, 51, 0,145, +/* 0x03c0 */ 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,231, 32,200, 26, +/* 0x03d0 */ 253, 3, 0,145,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203, +/* 0x03e0 */ 100, 16,129,168,127, 0, 8,235,195,255,255, 84,230, 3, 3,170, +/* 0x03f0 */ 229, 3, 7, 42,228, 3, 2,170, 34, 8, 0, 81,225, 3, 0,170, +/* 0x0400 */ 39, 20, 64, 56,231, 8, 0, 18,231, 11, 0, 57, 39, 20, 64, 56, +/* 0x0410 */ 232,124, 4, 83,232, 7, 0, 57,231, 12, 0, 18,231, 3, 0, 57, +/* 0x0420 */ 224, 3, 0,145, 17, 0, 0,148,191, 3, 0,145,228,123, 65,169, +/* 0x0430 */ 225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185, +/* 0x0440 */ 228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, +/* 0x0450 */ 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84, +/* 0x0460 */ 224, 3, 4,170,192, 3, 95,214,243, 83,184,169, 39, 0,128, 82, +/* 0x0470 */ 20, 16, 0,145,245, 91, 1,169,247, 99, 2,169,249,107, 3,169, +/* 0x0480 */ 251,115, 4,169,254, 43, 0,249, 8, 4, 64, 57, 26, 8, 64, 57, +/* 0x0490 */ 28, 0, 64, 57,127, 0, 0,185,250, 32,218, 26,223, 0, 0,185, +/* 0x04a0 */ 231, 32,200, 26,231, 4, 0, 81,231,111, 0,185, 8, 4, 64, 57, +/* 0x04b0 */ 7, 96,128, 82, 90, 7, 0, 81, 8, 1, 28, 11,232, 32,200, 26, +/* 0x04c0 */ 8,217, 28, 49,224, 0, 0, 84, 7, 0,128,210, 9,128,128, 82, +/* 0x04d0 */ 137,122, 39,120,231, 4, 0,145, 31, 1, 7,107,168,255,255, 84, +/* 0x04e0 */ 51, 64, 34,139,127, 2, 1,235, 0, 15, 0, 84,235, 3, 1,170, +/* 0x04f0 */ 34, 4, 0,145,103, 85, 64, 56,127, 2, 2,235, 96, 14, 0, 84, +/* 0x0500 */ 72, 20, 64, 56,127, 1, 2,235, 7, 33, 7, 42, 97,255,255, 84, +/* 0x0510 */ 37, 68, 0, 52, 9,176, 41,145, 59, 0,128, 82,233, 63, 0,249, +/* 0x0520 */ 9, 1,128, 82, 41, 1, 28, 75, 10, 0,128, 18,245, 3, 27, 42, +/* 0x0530 */ 25, 0,128, 82, 8, 0,128, 82, 2, 0,128, 82, 16,224,191, 18, +/* 0x0540 */ 17, 0,129, 82,251,107, 0,185,251,115, 0,185,233,119, 0,185, +/* 0x0550 */ 78, 0, 26, 10, 44,111, 28, 83, 95, 1, 16,107,201,125, 64,147, +/* 0x0560 */ 44,193, 44,139,143,249,127,211,232, 0, 0, 84,127, 2, 11,235, +/* 0x0570 */ 192, 10, 0, 84,105, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0580 */ 39, 33, 7, 42,141,122,108,120, 73,125, 11, 83,169,125, 9, 27, +/* 0x0590 */ 255, 0, 9,107,162, 10, 0, 84,234,211, 65, 57, 63, 27, 0,113, +/* 0x05a0 */ 8, 41,202, 26,234,111, 64,185, 79, 0, 10, 10,239, 33,220, 26, +/* 0x05b0 */ 239, 1, 8, 11, 40, 2, 13, 75,234,117, 30, 83, 79, 1, 15, 75, +/* 0x05c0 */ 173, 21,136, 11,239, 93,120,211,141,122, 44,120,239,217, 28,145, +/* 0x05d0 */ 143, 6, 15,139, 45, 31, 0, 84, 72, 0, 21, 75,146,104,104, 56, +/* 0x05e0 */ 40, 0,128, 82, 7, 0, 0, 20,236,121, 42,120, 8,121, 31, 83, +/* 0x05f0 */ 233, 3, 14, 42,205, 56, 0, 53, 31,253, 3,113,204, 3, 0, 84, +/* 0x0600 */ 82,122, 31, 83, 63, 1, 16,107, 77, 2, 24, 18, 22,121, 31, 83, +/* 0x0610 */ 170,125, 64,147, 74, 1, 4,145, 74,193, 40,139,232, 0, 0, 84, +/* 0x0620 */ 127, 1, 19,235, 41, 93, 24, 83, 0, 5, 0, 84,108, 1, 64, 57, +/* 0x0630 */ 107, 5, 0,145,135, 33, 7, 42,236,121,106,120, 46,125, 11, 83, +/* 0x0640 */ 55, 2, 12, 75,142,125, 14, 27,152, 21, 76, 75,140, 21,151, 11, +/* 0x0650 */ 255, 0, 14,107, 41, 1, 14, 75,131,252,255, 84,248,121, 42,120, +/* 0x0660 */ 200, 6, 0, 17,231, 0, 14, 75,141,252,255, 53, 31,253, 3,113, +/* 0x0670 */ 45, 27, 0, 84, 8, 29, 0, 83,234, 3, 9, 42,136, 72, 34, 56, +/* 0x0680 */ 66, 4, 0, 17, 63, 39, 0,113,140, 49, 0, 84, 57, 15, 0, 81, +/* 0x0690 */ 191, 0, 2,107,232,245,255, 84, 0,224,191, 18, 95, 1, 0,107, +/* 0x06a0 */ 136, 0, 0, 84,127, 2, 11,235, 0, 1, 0, 84,107, 5, 0,145, +/* 0x06b0 */ 97, 1, 1,203, 97, 0, 0,185, 0, 0,128, 82,194, 0, 0,185, +/* 0x06c0 */ 3, 0, 0, 20, 31, 32, 3,213, 32, 0,128, 82,245, 91, 65,169, +/* 0x06d0 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249, +/* 0x06e0 */ 243, 83,200,168,192, 3, 95,214, 74, 1, 9, 75,173, 21, 77, 75, +/* 0x06f0 */ 231, 0, 9, 75,141,122, 44,120, 41,127, 64,147, 95, 1, 16,107, +/* 0x0700 */ 41, 1, 3,145, 45,249,127,211,232, 0, 0, 84,127, 1, 19,235, +/* 0x0710 */ 192,253,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0720 */ 7, 33, 7, 42,140,122,105,120, 72,125, 11, 83,136,125, 8, 27, +/* 0x0730 */ 255, 0, 8,107, 98, 25, 0, 84,234,107, 64,185, 63, 31, 0,113, +/* 0x0740 */ 251,115, 64,185,234,115, 0,185, 42, 2, 12, 75,245,107, 0,185, +/* 0x0750 */ 140, 21,138, 11,140,122, 41,120,105, 0,128, 82,249,179,137, 26, +/* 0x0760 */ 9,160, 25,145, 31, 1, 16,107,232, 0, 0, 84,127, 2, 11,235, +/* 0x0770 */ 192,250,255, 84,106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, +/* 0x0780 */ 71, 33, 7, 42, 44, 1, 64,121, 10,125, 11, 83,138,125, 10, 27, +/* 0x0790 */ 255, 0, 10,107,226, 30, 0, 84,210,113, 29, 83, 40, 2, 12, 75, +/* 0x07a0 */ 22, 0,128, 82,126, 0,128, 82, 82,126, 64,147,140, 21,136, 11, +/* 0x07b0 */ 82, 10, 0,145, 44, 1, 0,121, 50, 5, 18,139,238, 3, 30, 42, +/* 0x07c0 */ 45, 0,128, 82, 6, 0, 0, 20,232, 1, 0,121,206, 5, 0,113, +/* 0x07d0 */ 173,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107, +/* 0x07e0 */ 183,121, 31, 83, 79,198, 45,139,232, 0, 0, 84,127, 2, 11,235, +/* 0x07f0 */ 74, 93, 24, 83,160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, +/* 0x0800 */ 7, 33, 7, 42,232, 1, 64,121, 73,125, 11, 83, 44, 2, 8, 75, +/* 0x0810 */ 9,125, 9, 27, 24, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, +/* 0x0820 */ 74, 1, 9, 75, 35,253,255, 84,248, 1, 0,121,206, 5, 0,113, +/* 0x0830 */ 231, 0, 9, 75,237, 6, 0, 17, 33,253,255, 84, 40, 0,128, 82, +/* 0x0840 */ 63, 15, 0,113, 30, 33,222, 26,222, 2, 30, 75,205, 3, 13, 11, +/* 0x0850 */ 236, 22, 0, 84,191, 13, 0,113,104, 0,128, 82,181,209,136, 26, +/* 0x0860 */ 207, 0,128, 82,181,102, 26, 83, 46, 0,128, 82,181,126, 64,147, +/* 0x0870 */ 181,194, 6,145,181,250,127,211, 7, 0, 0, 20, 31, 32, 3,213, +/* 0x0880 */ 136,106, 50,120,239, 5, 0,113,206,121, 31, 83,234, 3, 9, 42, +/* 0x0890 */ 32, 3, 0, 84, 95, 1, 16,107,214,121, 31, 83,178,198, 46,139, +/* 0x08a0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,240,255, 84, +/* 0x08b0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,136,106,114,120, +/* 0x08c0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 23, 21, 72, 75, +/* 0x08d0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84, +/* 0x08e0 */ 151,106, 50,120,239, 5, 0,113,231, 0, 9, 75,206, 6, 0, 17, +/* 0x08f0 */ 33,253,255, 84,213, 1, 1, 81,191, 14, 0,113, 45, 17, 0, 84, +/* 0x0900 */ 191, 54, 0,113,168, 2, 0, 18, 8, 1, 31, 50,169,126, 1, 19, +/* 0x0910 */ 44, 32, 0, 84, 47, 5, 0, 81, 9, 86,128,210, 46,193, 53,203, +/* 0x0920 */ 21, 33,207, 26,206, 65, 53,139,142, 6, 14,139,206, 9, 0,209, +/* 0x0930 */ 50, 0,128, 82,247, 3, 18, 42, 8, 0, 0, 20, 31, 32, 3,213, +/* 0x0940 */ 200, 2, 0,121, 82,122, 31, 83,234, 3, 9, 42,239, 5, 0,113, +/* 0x0950 */ 247,122, 31, 83, 96, 14, 0, 84, 95, 1, 16,107, 88,122, 31, 83, +/* 0x0960 */ 214,197, 50,139,232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83, +/* 0x0970 */ 192,234,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42, +/* 0x0980 */ 200, 2, 64,121, 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, +/* 0x0990 */ 30, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, +/* 0x09a0 */ 3,253,255, 84,222, 2, 0,121,231, 0, 9, 75,181, 2, 23, 42, +/* 0x09b0 */ 18, 7, 0, 17,230,255,255, 23, 40, 0,128, 82, 6, 0, 0, 20, +/* 0x09c0 */ 8,121, 31, 83,234,121, 46,120, 31,253, 3,113,233, 3, 12, 42, +/* 0x09d0 */ 44, 3, 0, 84, 63, 1, 16,107, 18,121, 31, 83, 14,125, 64,147, +/* 0x09e0 */ 232, 0, 0, 84,127, 2, 11,235, 41, 93, 24, 83,224,230,255, 84, +/* 0x09f0 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,234,121,110,120, +/* 0x0a00 */ 44,125, 11, 83, 45, 2, 10, 75, 76,125, 12, 27, 86, 21, 74, 75, +/* 0x0a10 */ 74, 21,141, 11,255, 0, 12,107, 41, 1, 12, 75, 35,253,255, 84, +/* 0x0a20 */ 72, 6, 0, 17,246,121, 46,120, 31,253, 3,113,231, 0, 12, 75, +/* 0x0a30 */ 45,253,255, 84, 8, 29, 0, 83, 63, 15, 0,113,136, 72, 34, 56, +/* 0x0a40 */ 234, 3, 9, 42, 66, 4, 0, 17,236,225,255, 84,191, 0, 2,107, +/* 0x0a50 */ 25, 0,128, 82,232,215,255, 84, 16,255,255, 23, 31, 32, 3,213, +/* 0x0a60 */ 74, 1, 8, 75,140, 21, 76, 75, 95, 1, 16,107,140,122, 41,120, +/* 0x0a70 */ 231, 0, 8, 75,169, 97, 0,145,232, 0, 0, 84,127, 2, 11,235, +/* 0x0a80 */ 64,226,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0a90 */ 7, 33, 7, 42,140,106,105,120, 72,125, 11, 83,136,125, 8, 27, +/* 0x0aa0 */ 255, 0, 8,107,226, 9, 0, 84, 42, 2, 12, 75, 31, 1, 16,107, +/* 0x0ab0 */ 239,129, 7,145,140, 21,138, 11,140,106, 41,120,232, 0, 0, 84, +/* 0x0ac0 */ 127, 2, 11,235, 32,224,255, 84,105, 1, 64, 57, 8, 93, 24, 83, +/* 0x0ad0 */ 107, 5, 0,145, 39, 33, 7, 42,137,106,111,120, 10,125, 11, 83, +/* 0x0ae0 */ 42,125, 10, 27,255, 0, 10,107,130, 16, 0, 84, 40, 2, 9, 75, +/* 0x0af0 */ 41, 21,136, 11,137,106, 47,120,130,222,255, 52, 72, 0, 21, 75, +/* 0x0b00 */ 63, 31, 0,113, 41, 1,128, 82,108, 1,128, 82, 57,177,140, 26, +/* 0x0b10 */ 136,104,104, 56,136, 72, 34, 56, 66, 4, 0, 17,221,254,255, 23, +/* 0x0b20 */ 181, 6, 0, 49,160,219,255, 84, 57, 31, 0, 17,191, 2, 2,107, +/* 0x0b30 */ 173, 9, 0, 17,168,220,255, 84,233, 3, 2, 42, 72, 0, 21, 75, +/* 0x0b40 */ 173, 5, 0, 81, 66, 4, 0, 17,191, 1, 31,107,160, 16, 66,122, +/* 0x0b50 */ 136,104,104, 56,136, 72, 41, 56,233, 3, 2, 42, 8,255,255, 84, +/* 0x0b60 */ 191, 0, 2,107,104,207,255, 84,204,254,255, 23, 31, 32, 3,213, +/* 0x0b70 */ 8, 1, 10, 75,140, 21, 76, 75, 31, 1, 16,107, 44, 1, 0,121, +/* 0x0b80 */ 231, 0, 10, 75,232, 0, 0, 84,127, 2, 11,235,224,217,255, 84, +/* 0x0b90 */ 106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, +/* 0x0ba0 */ 44, 5, 64,121, 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107, +/* 0x0bb0 */ 66, 7, 0, 84,210,113, 29, 83, 40, 2, 12, 75, 22, 1,128, 82, +/* 0x0bc0 */ 126, 0,128, 82, 82,126, 64,147,136, 21,136, 11, 82, 10, 2,145, +/* 0x0bd0 */ 40, 5, 0,121, 50, 5, 18,139,249,254,255, 23, 31, 32, 3,213, +/* 0x0be0 */ 74, 1, 8, 75,231, 0, 8, 75, 95, 1, 16,107,136, 21, 76, 75, +/* 0x0bf0 */ 136,106, 41,120,172,193, 0,145,232, 0, 0, 84,127, 2, 11,235, +/* 0x0c00 */ 64,214,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145, +/* 0x0c10 */ 7, 33, 7, 42,137,106,108,120, 72,125, 11, 83, 40,125, 8, 27, +/* 0x0c20 */ 255, 0, 8,107, 35, 5, 0, 84, 74, 1, 8, 75, 41, 21, 73, 75, +/* 0x0c30 */ 95, 1, 16,107,137,106, 44,120,231, 0, 8, 75,173, 33, 1,145, +/* 0x0c40 */ 232, 0, 0, 84,127, 2, 11,235, 0,212,255, 84,104, 1, 64, 57, +/* 0x0c50 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,109,120, +/* 0x0c60 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107,226, 7, 0, 84, +/* 0x0c70 */ 234, 3, 21, 42,236,107, 64,185,234,107, 0,185, 42, 2, 9, 75, +/* 0x0c80 */ 245,115, 64,185, 41, 21,138, 11,236,115, 0,185,137,106, 45,120, +/* 0x0c90 */ 20, 0, 0, 20, 31, 32, 3,213,231, 0, 10, 75, 50, 17, 8,145, +/* 0x0ca0 */ 10, 1, 10, 75, 22, 2,128, 82,136, 21, 76, 75, 30, 1,128, 82, +/* 0x0cb0 */ 40, 5, 0,121,194,254,255, 23,191, 0, 2,107, 57, 27, 0, 81, +/* 0x0cc0 */ 136,196,255, 84,117,254,255, 23,234, 3, 21, 42,245,107, 64,185, +/* 0x0cd0 */ 234,107, 0,185, 42, 2, 9, 75, 41, 21,138, 11,137,106, 44,120, +/* 0x0ce0 */ 63, 31, 0,113, 10, 1,128, 82,108, 1,128, 82,233, 63, 64,249, +/* 0x0cf0 */ 89,177,140, 26,156,254,255, 23, 41, 21, 73, 75, 8, 1, 10, 75, +/* 0x0d00 */ 137,106, 47,120,231, 0, 10, 75,246,255,255, 23,233, 3, 14, 42, +/* 0x0d10 */ 87,254,255, 23, 41, 21, 0, 81, 95, 1, 16,107, 8,121, 31, 83, +/* 0x0d20 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,204,255, 84, +/* 0x0d30 */ 108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, 74,125, 1, 83, +/* 0x0d40 */ 255, 0, 10,107, 99, 0, 0, 84,231, 0, 10, 75, 8, 1, 0, 50, +/* 0x0d50 */ 41, 5, 0,113, 33,254,255, 84, 21,109, 28, 83, 14, 32, 25,145, +/* 0x0d60 */ 143, 0,128, 82,243,254,255, 23, 41, 21, 73, 75,137,106, 45,120, +/* 0x0d70 */ 233,107, 64,185,236, 3, 21, 42,231, 0, 8, 75,245, 3, 27, 42, +/* 0x0d80 */ 72, 1, 8, 75,251,115, 64,185,236,107, 0,185,233,115, 0,185, +/* 0x0d90 */ 212,255,255, 23, 2, 0,128, 82,227, 19,189,169,229, 27, 1,169, +/* 0x0da0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170, +/* 0x0db0 */ 142, 64, 37,139, 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, +/* 0x0dc0 */ 4, 8, 64, 57,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26, +/* 0x0dd0 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, +/* 0x0de0 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82, +/* 0x0df0 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, +/* 0x0e00 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, +/* 0x0e10 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, +/* 0x0e20 */ 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235,193,255,255, 84, +/* 0x0e30 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10, +/* 0x0e40 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148, +/* 0x0e50 */ 129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10, +/* 0x0e60 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, +/* 0x0e70 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11, +/* 0x0e80 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, +/* 0x0e90 */ 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56, +/* 0x0ea0 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, +/* 0x0eb0 */ 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107, +/* 0x0ec0 */ 193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20, +/* 0x0ed0 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, +/* 0x0ee0 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26, +/* 0x0ef0 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, +/* 0x0f00 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185, +/* 0x0f10 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, +/* 0x0f20 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26, +/* 0x0f30 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, +/* 0x0f40 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11, +/* 0x0f50 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113, +/* 0x0f60 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203, +/* 0x0f70 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, +/* 0x0f80 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145, +/* 0x0f90 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145, +/* 0x0fa0 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185, +/* 0x0fb0 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185, +/* 0x0fc0 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113, +/* 0x0fd0 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145, +/* 0x0fe0 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145, +/* 0x0ff0 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, +/* 0x1000 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84, +/* 0x1010 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82, +/* 0x1020 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, +/* 0x1030 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82, +/* 0x1040 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84, +/* 0x1050 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113, +/* 0x1060 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113, +/* 0x1070 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, +/* 0x1080 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, +/* 0x1090 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113, +/* 0x10a0 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18, +/* 0x10b0 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26, +/* 0x10c0 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, +/* 0x10d0 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83, +/* 0x10e0 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, +/* 0x10f0 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, +/* 0x1100 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, +/* 0x1110 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83, +/* 0x1120 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185, +/* 0x1130 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, +/* 0x1140 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147, +/* 0x1150 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235, +/* 0x1160 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, +/* 0x1170 */ 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82, +/* 0x1180 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185, +/* 0x1190 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185, +/* 0x11a0 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83, +/* 0x11b0 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, +/* 0x11c0 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, +/* 0x11d0 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83, +/* 0x11e0 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121, +/* 0x11f0 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84, +/* 0x1200 */ 2, 0,129, 82,231, 3, 2, 42, 66, 0, 3, 75, 0, 0, 0, 58, +/* 0x1210 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75, +/* 0x1220 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, +/* 0x1230 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82, +/* 0x1240 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, +/* 0x1250 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, +/* 0x1260 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, +/* 0x1270 */ 10, 0, 0, 0,226, 3, 30,170, 65,208, 0,209,229, 3, 1,170, +/* 0x1280 */ 36, 68, 64,184,165, 0, 4,203, 36, 68, 64,184,164, 0, 4,139, +/* 0x1290 */ 164, 75, 0,185, 36, 68, 64,184,164, 0, 4,139,228,207, 31,248, +/* 0x12a0 */ 36, 68, 64,184,160, 0, 4, 11, 1, 96, 0, 17,255, 35, 0,209, +/* 0x12b0 */ 36, 4, 64,185, 33, 48, 0,145, 33, 0, 4,139, 36, 68, 64,184, +/* 0x12c0 */ 5, 44, 12, 83,165,124, 22, 83,132, 8, 5, 11,228,207, 31,184, +/* 0x12d0 */ 0, 8, 5, 75,224,207, 31,184,132, 8, 5, 75, 0, 8, 5, 11, +/* 0x12e0 */ 229,207, 31,184, 16, 0, 0,148, 99, 28, 0, 18,127, 64, 1,113, +/* 0x12f0 */ 129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180, 33, 4, 0,209, +/* 0x1300 */ 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,129, 0, 0, 84, +/* 0x1310 */ 66, 0, 1, 75, 98, 20, 26, 83, 2,120, 33,184, 1,255,255,181, +/* 0x1320 */ 192, 3, 95,214,254,207, 31,248, 35, 20, 64, 57,227,207, 31,248, +/* 0x1330 */ 35, 24, 64, 57,227,207, 31,248,228,207, 31,248,224,207, 31,248, +/* 0x1340 */ 36, 68, 64,184,229, 3, 4, 42, 36, 68, 64,184,228,207, 31,248, +/* 0x1350 */ 226,207, 31,248,163, 83, 1,209,227,207, 31,248,224,207, 31,248, +/* 0x1360 */ 229,207, 31,248,225,207, 31,248, 35, 4, 64,146,165, 12, 0,145, +/* 0x1370 */ 165, 0, 3,139,163, 3, 93,184, 98, 8, 69,139,163,131, 89,184, +/* 0x1380 */ 115, 0, 0,148,163,131, 92,184,113, 0, 0,148, 67, 0, 0,148, +/* 0x1390 */ 4, 0,128,146, 67, 6,128,210, 98, 0,128,210,161,195, 93,248, +/* 0x13a0 */ 160,131, 93,248,230, 3, 0,170,200, 27,128, 82, 1, 0, 0,212, +/* 0x13b0 */ 31, 0, 6,235, 64, 0, 0, 84, 0, 0, 32,212,165, 3, 93,184, +/* 0x13c0 */ 161, 67, 95,248, 44, 0, 0,148,226, 15, 65,169,224, 7,194,168, +/* 0x13d0 */ 228, 7, 65,248,128, 0, 63,214,255, 35, 0,145, 10, 0, 0,148, +/* 0x13e0 */ 232, 26,128, 82, 1, 0, 0,212,226, 11, 64,249,224, 7,194,168, +/* 0x13f0 */ 230, 31, 65,169,228, 23,194,168,225, 11, 64,249,253,123,194,168, +/* 0x1400 */ 32, 0, 31,214,164,195, 95,184,192, 7, 64,169,128, 4, 0,169, +/* 0x1410 */ 226, 15, 65,169,224, 7,194,168,228, 51,193,168, 67, 0, 0,180, +/* 0x1420 */ 128, 0, 63,214,224, 3, 64,249,225, 67, 64,248, 2, 0,128,210, +/* 0x1430 */ 33, 0, 0,139, 33, 32, 0,145, 8, 0,176, 82, 1, 0, 0,212, +/* 0x1440 */ 224, 7,193,168,162, 0,128,210, 72, 28,128, 82, 1, 0, 0,212, +/* 0x1450 */ 254, 11, 64,249,224, 7,194,168,192, 3, 31,214, 37,192, 95,184, +/* 0x1460 */ 165, 92, 0, 18,165, 4, 0, 17, 35, 68, 64,184,165, 4, 0, 81, +/* 0x1470 */ 3, 68, 0,184,191, 8, 0,114,129,255,255, 84,165,124, 3, 83, +/* 0x1480 */ 165, 0, 0, 52, 34, 12,193,168,165, 4, 0,113, 2, 12,129,168, +/* 0x1490 */ 165,255,255, 53,192, 3, 95,214,254,207, 31,248,227, 3, 30,170, +/* 0x14a0 */ 43, 0, 0,148, 65,244,126,211, 4, 0,128,146, 67, 4,128,210, +/* 0x14b0 */ 226, 0,128,210,161,195, 31,248, 0, 0,128,210,200, 27,128, 82, +/* 0x14c0 */ 1, 0, 0,212, 31, 4, 64,177, 67, 0, 0, 84, 0, 0, 32,212, +/* 0x14d0 */ 160, 67, 31,248,161,131, 93,184,165, 3, 93,184,230,255,255,151, +/* 0x14e0 */ 161,131, 87,184,165,195, 87,184, 35, 4, 0, 18, 33, 0, 3, 75, +/* 0x14f0 */ 165, 0, 3, 11, 99, 0, 0, 11,163,131, 23,184,165, 28, 0, 17, +/* 0x1500 */ 165,124, 3, 83,220,255,255,151,226, 3, 0,170,161,131, 89,248, +/* 0x1510 */ 160,131, 25,248,210,255,255,151,161,131, 92,248,160,131, 28,248, +/* 0x1520 */ 207,255,255,151,225, 71, 64,248,224,207, 31,248,204,255,255,151, +/* 0x1530 */ 225, 3, 0,170,224, 3, 2,170, 2, 0,128,210, 8, 0,176, 82, +/* 0x1540 */ 1, 0, 0,212,254, 71, 64,248,192, 3, 31,214, 99,192, 95,184, +/* 0x1550 */ 99, 92, 0, 18, 99, 4, 0, 17, 66, 0, 3,139,192, 3, 95,214, +/* 0x1560 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, +/* 0x1570 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, +/* 0x1580 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, +/* 0x1590 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, +/* 0x15a0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x15b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, +/* 0x15c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, +/* 0x15d0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, +/* 0x15e0 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, +/* 0x15f0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, +/* 0x1600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1620 */ 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 50, 32, +/* 0x1630 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1640 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, +/* 0x1650 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1660 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1670 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1680 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1690 */ 48, 54, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x16a0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x16b0 */ 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, +/* 0x16c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x16d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x16e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x16f0 */ 48, 48, 48, 48, 54, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1700 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1710 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, +/* 0x1720 */ 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, +/* 0x1730 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1750 */ 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 50, 42, 42, 50, 32, +/* 0x1760 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x1770 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, +/* 0x1780 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, +/* 0x1790 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17b0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 99, 32, 32, 50, 42, +/* 0x17c0 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x17d0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, +/* 0x17e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, +/* 0x17f0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1800 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1810 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 97, 56, 32, +/* 0x1820 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1830 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, +/* 0x1840 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1850 */ 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1860 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, +/* 0x1880 */ 57, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1890 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x18a0 */ 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x18b0 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 51, 48, 32, 32, +/* 0x18c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18e0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, +/* 0x18f0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1900 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, +/* 0x1910 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, +/* 0x1920 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1930 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1940 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 57, 56, 32, +/* 0x1950 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1960 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, +/* 0x1970 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1980 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, +/* 0x19b0 */ 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x19c0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, +/* 0x19d0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1a10 */ 48, 49, 50, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, +/* 0x1a20 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x1a30 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, +/* 0x1a40 */ 32, 32, 48, 48, 48, 48, 48, 50,101, 99, 32, 32, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1a70 */ 48, 48, 48, 48, 49, 50, 55, 52, 32, 32, 50, 42, 42, 50, 32, 32, +/* 0x1a80 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1a90 */ 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, +/* 0x1aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x1ac0 */ 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ad0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1ae0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1af0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x1b00 */ 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, +/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1b30 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, +/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1b50 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x1b70 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, +/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, +/* 0x1b90 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ba0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1bb0 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x1bd0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, +/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c00 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1c20 */ 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1c50 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, +/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, +/* 0x1c70 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c80 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1c90 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, +/* 0x1cb0 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cc0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1cd0 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1cf0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d00 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, +/* 0x1d10 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1d30 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, +/* 0x1d50 */ 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, +/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d80 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, +/* 0x1d90 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1da0 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x1dc0 */ 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1dd0 */ 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, +/* 0x1de0 */ 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x1df0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e00 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9, +/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 99, +/* 0x1e20 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109, +/* 0x1e30 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, +/* 0x1e50 */ 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e60 */ 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108, 95,110,114,118, +/* 0x1e70 */ 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, +/* 0x1e80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e90 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x1ea0 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1eb0 */ 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, +/* 0x1ec0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ed0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x1ee0 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ef0 */ 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101, +/* 0x1f00 */ 115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x1f10 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, +/* 0x1f20 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x1f30 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x1f40 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 48, +/* 0x1f60 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, +/* 0x1f70 */ 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, +/* 0x1f80 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x1f90 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, +/* 0x1fa0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1fb0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1fc0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, +/* 0x1fe0 */ 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, +/* 0x1ff0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10 }; diff --git a/src/stub/src/arch/arm64/v8/Makefile.extra b/src/stub/src/arch/arm64/v8/Makefile.extra new file mode 100644 index 00000000..6a038a2e --- /dev/null +++ b/src/stub/src/arch/arm64/v8/Makefile.extra @@ -0,0 +1,58 @@ +MAKEFLAGS += -rR +.SUFFIXES: +.SECONDEXPANSION: + +ifndef top_srcdir +__dir_list = . .. ../.. ../../.. ../../../.. ../../../../.. +__dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../.. +__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3) +top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND) +endif +include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local) +vpath %.c $(top_srcdir)/src/stub/src/c + +STUBS = +include $(top_srcdir)/src/stub/src/c/Makevars.lzma +ifneq ($(UPX_LZMA_VERSION),) +STUBS += lzma_d_cf.S lzma_d_cs.S +endif + +default.targets = all +ifeq ($(strip $(STUBS)),) +STUBS = NO_STUBS +all.targets = +endif +include $(top_srcdir)/src/stub/Makefile + + +# /*********************************************************************** +# // method-lzma +# ************************************************************************/ + +lzma_d_c%.S : tc_list = method-lzma arm64-linux.elf default +lzma_d_c%.S : tc_bfdname = elf64-littleaarch64 + +c := tc.method-lzma.gcc +$c = $(tc.arm64-linux.elf.gcc) +$c += -fomit-frame-pointer +$c += -fno-unit-at-a-time +$c += -ffunction-sections +$c += -fwrapv +$c += -DWITH_LZMA=$(UPX_LZMA_VERSION) +$c += -I$(UPX_LZMADIR) +$c += -I$(top_srcdir)/src +$c += -Wno-error + +tc.method-lzma.objcopy = /usr/bin/aarch64-linux-gnu-objcopy +tc.method-lzma.objdump = /usr/bin/aarch64-linux-gnu-objdump + +lzma_d_c%.S : lzma_d_c.c + $(call tc,gcc) $(PP_FLAGS) -c $< -o tmp/$T.o + $(call tc,f-objstrip,tmp/$T.o) + $(call tc,objcopy) -O binary --only-section .text.LzmaDecode tmp/$T.o tmp/$T.bin + head -c-4 tmp/$T.bin > tmp/$T.out + $(call tc,objdump) -b binary -m aarch64 -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm + $(call tc,bin2h) --mode=gas tmp/$T.out $@ + +lzma_d_cf.% : PP_FLAGS = -DFAST -O2 +lzma_d_cs.% : PP_FLAGS = -DSMALL -Os diff --git a/src/stub/src/arch/arm64/v8/lzma_d-arm.S b/src/stub/src/arch/arm64/v8/lzma_d-arm.S index d4ab6e78..2fc703ae 100644 --- a/src/stub/src/arch/arm64/v8/lzma_d-arm.S +++ b/src/stub/src/arch/arm64/v8/lzma_d-arm.S @@ -71,8 +71,9 @@ Align= (SpecPos + kNumFullDistances - kEndPosModelIndex) RepLenCoder= (LenCoder + kNumLenProbs) Literal= (RepLenCoder + kNumLenProbs) -LZMA_BASE_SIZE= Literal /* 1846 */ -LZMA_LIT_SIZE= 768 +// Already #define in lzma_d.S +//LZMA_BASE_SIZE= Literal +//LZMA_LIT_SIZE= 768 #define call bl /* subroutine call */ @@ -137,7 +138,7 @@ vs_lc= 0 */ LzmaDecode: .globl LzmaDecode // save &inSizeProcesesed and caller registers - PUSH5(x3,x4,x5,x6, x30) + PUSH5(x3,x4,x5,x6, lr) mov inPtr,x1 add inLim,x1,w2, uxtw mov outPtr,x4 @@ -489,8 +490,8 @@ rcGetBit_mi: // rcGetBit(mi, mi + p_in) add p_in,p_in,mi, uxtw #1 rcGetBit: // Out: CC set on mo lsr t0,Range,#kNumTopBits - mov t2x,x30 // save lr if need rcLoad - adr x30,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call + mov t2x,lr // save lr if need rcLoad + adr lr,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call rcGetBitCont: #define starp t0 #define bound t1 diff --git a/src/stub/src/arch/arm64/v8/lzma_d.S b/src/stub/src/arch/arm64/v8/lzma_d.S index d8ec3b39..2091b12a 100644 --- a/src/stub/src/arch/arm64/v8/lzma_d.S +++ b/src/stub/src/arch/arm64/v8/lzma_d.S @@ -1,525 +1,165 @@ -// In LZMA SDK 4.63 file lzma.txt (2008-12-30): -// LZMA SDK is written and placed in the public domain by Igor Pavlov. -// The creative expression of this hand compilation into assembly language, -// including (but not limited to) code organization and register assignment, -// remains copyright by John F. Reiser and licensed under GNU Lesser General -// Public License (GNU LGPL). +/* lzma_d.S -- arm64 decompressor for LZMA -// Hand compiled Copyright (c) 2006-2017 John F. Reiser (2007-06-18) -// from modified LzmaDecode.c. -// LZMA SDK 4.40 Copyright (c) 1999-2017 Igor Pavlov (2006-05-01) -// -// This file is licensed under either of these two licenses: -// 1) GNU Lesser General Public License (GNU LGPL) -// 2) Common Public License (CPL) -// See files LGPL.txt and CPL.html for the text of the licenses. + This file is part of the UPX executable compressor. -#include "macros.S" + Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2017 Laszlo Molnar + Copyright (C) 2000-2017 John F. Reiser + All Rights Reserved. -kLzmaStreamWasFinishedId= (-1) + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. -kNumTopBits= 24 -kTopValue= 1< -kLenNumLowBits= 3 -kLenNumLowSymbols= (1 << kLenNumLowBits) -kLenNumMidBits= 3 -kLenNumMidSymbols= (1 << kLenNumMidBits) -kLenNumHighBits= 8 -kLenNumHighSymbols= (1 << kLenNumHighBits) - -LenChoice= 0 -LenChoice2= (LenChoice + 1) -LenLow= (LenChoice2 + 1) -LenMid= (LenLow + (kNumPosStatesMax << kLenNumLowBits)) -LenHigh= (LenMid + (kNumPosStatesMax << kLenNumMidBits)) -kNumLenProbs= (LenHigh + kLenNumHighSymbols) - -kNumStates= 12 -kNumLitStates= 7 - -kStartPosModelIndex= 4 -kEndPosModelIndex= 14 -kNumFullDistances= (1 << (kEndPosModelIndex >> 1)) - -kNumPosSlotBits= 6 -kNumLenToPosStates= 4 - -kNumAlignBits= 4 -kAlignTableSize= (1 << kNumAlignBits) - -kMatchMinLen= 2 - -IsMatch= 0 -IsRep= (IsMatch + (kNumStates << kNumPosBitsMax)) -IsRepG0= (IsRep + kNumStates) -IsRepG1= (IsRepG0 + kNumStates) -IsRepG2= (IsRepG1 + kNumStates) -IsRep0Long= (IsRepG2 + kNumStates) -PosSlot= (IsRep0Long + (kNumStates << kNumPosBitsMax)) -SpecPos= (PosSlot + (kNumLenToPosStates << kNumPosSlotBits)) -Align= (SpecPos + kNumFullDistances - kEndPosModelIndex) - - LenCoder= (Align + kAlignTableSize) -RepLenCoder= (LenCoder + kNumLenProbs) -Literal= (RepLenCoder + kNumLenProbs) - -LZMA_BASE_SIZE= Literal /* 1846 */ -LZMA_LIT_SIZE= 768 - -#define call bl /* subroutine call */ - -#define symbol mi -#define mo mi - -#define mi w0 -#define p_in x1 -#define t1 w2 -#define t1x x2 -#define t0 w3 -#define t0x x3 - -#define bit w4 -#define bitx x4 -#define i w5 -#define ix x5 -#define state w6 -#define Range w7 - -#define inPtr x8 -#define outPtr x9 -#define prob x10 -#define p x11 - -#define Code w12 -#define inLim x13 -#define outLim x14 - -#define rep0 w15 - -#define t2x x17 - -#define nowPos bit /* temporary only */ -#define nowPosx bitx /* temporary only */ -#define distance bit -#define numDirectBits bit -#define hibit bit -#define matchB i -#define probLen ix -#define probLit ix -#define posSlot posState -#define r_posSlot t0 - -#define r_len i - -#define vs x0 -vs_ps= 2 -vs_lp= 1 -vs_lc= 0 - -#if !defined(PARAMETER_STYLE) /*{*/ - #define PARAMETER_STYLE 1 -// Possible choices: -// 1 /* 0 bytes; 1-byte encoding of pb,lp,lc [default] */ -// 2 /* -24 bytes; 2-byte encoding requires no division */ -// 3 /* -32 bytes; separate bytes lc,lp,pb,xx at -4+ probs */ -#endif /*}*/ - -/* LzmaDecode(x0=vs, x1=inStream, w2=inSize, x3= &inSizeProcessed, - x4= outStream, w5= outSize, x6= &outSizeProcessed) + John F. Reiser + */ -LzmaDecode: .globl LzmaDecode - // save &inSizeProcesesed and caller registers - PUSH5(x3,x4,x5,x6, lr) - mov inPtr,x1 - add inLim,x1,w2, uxtw - mov outPtr,x4 - add outLim,x4,w5, uxtw -#if 1==PARAMETER_STYLE /*{ [0]: pb*45 + lp*9 + lc */ - mov p,vs - ldrb w6,[inPtr],#1 +#define section .section - mov w0,#45; udiv w4,w6,w0 // w4 = quo(w6, 45) = pb - mul w0,w0,w4; sub w6,w6,w0 // w6 = rem(w6, 45) + section LZMA_ELF00 +//decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method) +/* Arguments according to calling convention */ +src .req x0 +#define lsrc w1 +dst .req x2 +#define ldst x3 /* Out: actually a reference: &len_dst */ +#define meth w4 - mov w0,#9; udiv w5,w6,w0 // w5 = quo(w6, 9) = lp - mul w0,w0,w5; sub w6,w6,w0 // w6 = rem(w6, 9) = lc -#endif /*}*/ +#define M_LZMA 14 + cmp meth,#M_LZMA; bne not_lzma -#if 2==PARAMETER_STYLE /*{ [0]: ((lc + lp)<<3) | pb; [1]: (lp<<4) | lc */ - mov p,vs - ldrb w4,[inPtr],#1; and w4,w4,#7 // pb - ldrb w6,[inPtr],#1; mov w5,w6,lsr #4 // lp - and w6,w6,#0xf // lc + add x1,src,len,uxtw // x1= eof_src; + mov x4,#0 + PUSH4(x1,x2,x3, lr) -#endif /*}*/ + PUSH2(x4,x4) // clear CLzmaDecoderState, inSizeProcessed, outSizeProcessed +State= 0 +#define a0 x0 /* &CLzmaDecoderState */ + add a0,sp,#State +#define a1 x1 /* inp */ +#define a2 w2 /* inSize */ +#define a3 x3 /* &inSizeProcessed */ + add a3,sp,#8 +#define a4 x4 /* outp */ +#define a5 w5 /* outSize */ +#define a6 x6 /* &outSizeProcessed */ + add a6,sp,#12 -#if 3==PARAMETER_STYLE /*{ lc,lp,pb,xx in separate bytes before probs[] */ - add p,vs,#4 - ldrb w6,[vs, #vs_lc] - ldrb w5,[vs, #vs_lp] - ldrb w4,[vs, #vs_ps] -#endif /*}*/ -#undef vs +#define t0 w7 +#define t1 w8 +#define t1x x8 - add w14,w5,w6 // lp + lc - mov Range,#~0 - lsl w5,Range,w5; mvn w5,w5 // ~(~0<>W)<>1) // 0.5 starting probability - mov x1,p - orr x0,x0,x0,lsl #16 - orr x0,x0,x0,lsl #32 -L10: - str x0,[x1],#4*2 // 4 at a time - subs w2,w2,#4; bgt L10 +1: // clear inSizeProcessed and CLzmaDecoderState + stp x4,x4,[x3],#2*8 + cmp x3,t1x + blo 1b - add x0,inPtr,#5 // sentinel -L14: - call rcInit2; cmp x0,inPtr; bne L14 + mov a6,ldst // &outSizeProcessed + mov a5,t0 // outSize + mov a4,dst // outp + sub w2,lsrc,#2 // inSize + mov a1,src // inp -L200: // main loop - ldr t0x,outBuf - ldr t1,posStateMask - sub nowPosx,outPtr,t0x - and mi,nowPos,t1 - str mi,posState - add mi,mi,state, lsl #kNumPosBitsMax - add p_in,p,#IsMatch<<1 - call rcGetBit_mi0; bne L270 + ldrb t0,[a1],#1 // first byte, replaces LzmaDecodeProperties() + and t0,t0,#7 // posBits + strb t0,[sp,#2 + State] + ldrb t0,[a1],#1 // second byte, replaces LzmaDecodeProperties() + lsr t1,t0,#4 // lit_pos_bits + strb t1,[sp,#1 + State] + and t0,t0,#0xf // lib_context_bits + strb t0,[sp,#0 + State] - ldr t0,litPosMask - ldr t1,lc - and t0,t0,nowPos - ldrb mi,prevB - lsl t0,t0,t1 // (nowPos & litPosMask)<> (8- lc) - add t0,t0,t1 - add prob, p,#Literal<<1 - add t0,t0,t0,lsl #1 // *3 - uxtw t0x,t0 - mov symbol,#1 - add prob,prob,t0x,lsl #1+ 8 // *768 *2 + add a0,sp,#State + bl 1f // the call + mov sp,fp - cmp state,#kNumLitStates; blo L240 -L205: - sxtw t0x,rep0 - neg t0x,t0x - ldrb matchB,[outPtr,t0x] -L210: // symbol === mi === mo - lsl matchB,matchB,#1 - add p_in,prob,#0x100<<1 - and bit,matchB,#0x100 - uxtw t0x,bit - add p_in,p_in,t0x,lsl #1 - call rcGetBit_mi - and t0,symbol,#1 - cmp t0,bit,lsr #8; bne L243 // break - cmp symbol,#0x100; blo L210 - b L245 -L240: // symbol === mi === mo - mov p_in,prob - call rcGetBit_mi -L243: - cmp symbol,#0x100; blo L240 -L245: - mov t1,#3; mov t0,#6 - cmp state,#10; csel t0,t1, t0,lo - cmp state,# 4; csel t0,state,t0,lo - sub state,state,t0 - b L298 // assumes symbol===w0 -L270: - add p_in,p,#IsRep<<1 - call rcGetBit_state0; bne L290 - ldr t0,rep2 - ldr t1,rep1 - str t0,rep3 - str t1,rep2 - str rep0,rep1 - mov t0,#0 - cmp state,#kNumLitStates - mov state,#3 - csel state,t0,state,lo - add prob, p,#LenCoder<<1 - b L350 -L290: - add p_in,p,#IsRepG0<<1 - call rcGetBit_state0; bne L300 -L293: - ldr t0,posState - add p_in,p,#IsRep0Long<<1 - add mi,t0,state,lsl #kNumPosBitsMax - call rcGetBit_mi0; bne L340 -L295: - mov t0,#9 - cmp state,#kNumLitStates - mov state,#11 - csel state,t0,state,lo -L297: - ldr t0x,outBuf - sub nowPosx,outPtr,t0x - cmp nowPos,rep0; blo lzmaDataError - sxtw t0x,rep0 - neg t0x,t0x - ldrb w0,[outPtr,t0x] -L298: - strb w0,[outPtr],#1 - b L519 -L300: - add p_in,p,#IsRepG1<<1 - call rcGetBit_state0; ldr distance,rep1; beq L330 -L310: - add p_in,p,#IsRepG2<<1 - call rcGetBit_state0; ldr distance,rep2; beq L325 -L320: - ldr t0,rep2 - ldr distance,rep3 - str t0,rep3 -L325: - ldr t0,rep1 - str t0,rep2 -L330: - str rep0,rep1 - mov rep0,distance -L340: - mov t0,#8 - cmp state,#kNumLitStates - mov state,#11 - csel state,t0,state,lo - add prob, p,#RepLenCoder<<1 -L350: - add p_in,prob,#LenChoice<<1 - call rcGetBit_0; bne L360 - ldr t0,posState - add probLen,prob,#LenLow<<1 - uxtw t0x,t0 - mov t1,#0 - add probLen,probLen,t0x,lsl #1+ kLenNumLowBits - mov hibit,#1<=Range) Code-=Range; - adc rep0,rep0,rep0 // rep0 = (rep0<<1) + (Code>=Range) -L430: - subs numDirectBits,numDirectBits,#1; bne L420 - add prob,p, #Align<<1 - lsl rep0,rep0,#kNumAlignBits - mov numDirectBits,#kNumAlignBits -L438: - mov i,#1 - mov mi,#1 -L440: - mov p_in,prob; call rcGetBit_mi - tst mo,#1; beq L445 - orr rep0,rep0,i -L445: - lsl i,i,#1 - subs numDirectBits,numDirectBits,#1; bne L440 - b L465 -L450: -L460: - ldr rep0,posSlot -L465: - adds rep0,rep0,#1 -#if 0 /*{ only for the stream version */ - bne L470 - mov t0,#kLzmaStreamWasFinishedId - str t0,m_len - b L530 -L470: -#endif /*}*/ - ldr r_len,m_len -L500: - ldr t0x,outBuf - add r_len,r_len,#kMatchMinLen - sub t0x,outPtr,t0x // nowPos - cmp rep0,t0; bhi lzmaDataError - sxtw t0x,rep0 - neg t0x,t0x -L510: // const t0x= -rep0; - ldrb w0,[outPtr,t0x] - strb w0,[outPtr],#1 - cmp outPtr,outLim; bhs L530 - subs r_len,r_len,#1; bne L510 - // FIXME: prfm PLDL1KEEP,outPtr,#32 // fetch next cache line -L519: - strb w0,prevB // implicit &0xFF -L520: // bottom of while loop - cmp outPtr,outLim; blo L200 -L530: - call rcNormalize - mov w0,#0 // success -lzmaExit: - ldr t1x,inBuf - sub t0x,inPtr,t1x - ldr t1x,inSizeProcessed - str t0,[t1x] + mov x0,x3 // orig_dst + add x1,x3,dst // orig_dst + dst_len +cache_lzma: + dc cvau,x0 // Clean by VA to point of Unification + ic ivau,x0 // Invalidate by VA to point of Unification + add x0,x0,#64 // next line + cmp x0,x1; blo cache_lzma - ldr t1x,outBuf - sub t0x,outPtr,t1x - ldr t1x,outSizeProcessed - str t0,[t1x] - - add sp,sp,#(14+1)*4 -// FIXME ldmia sp!,{r4,r5,r6,r7, r8,r9,r10,r11, pc} - -lzmaDataError: - mov w0,#1 // failure - b lzmaExit - - -rcNormalize: - lsr t0,Range,#kNumTopBits - cbnz t0,retNorm -rcLoad: - cmp inPtr,inLim - lsl Range,Range,#8 - bhs lzmaDataError -rcInit2: - ldrb t0,[inPtr],#1 - orr Code,t0,Code, lsl #8 -retNorm: + mov x0,x4 // result value ret -rcGetBit_state0: // rcGetBit(0, state + p_in) - mov mi,state -rcGetBit_mi0: // rcGetBit(0, mi + p_in) - add p_in,p_in,mi, uxtw #1 -rcGetBit_0: // rcGetBit(0, p_in) - mov mi,#0 -rcGetBit_mi: // rcGetBit(mi, mi + p_in) - add p_in,p_in,mi, uxtw #1 -rcGetBit: // Out: CC set on mo - lsr t0,Range,#kNumTopBits - mov t2x,lr // save lr if need rcLoad - adr lr,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call -rcGetBitCont: -#define starp t0 -#define bound t1 -#define y0tmp t1 - ldrh starp,[p_in] - lsr y0tmp,Range,#kNumBitModelTotalBits - mul bound,starp,y0tmp - cmp Code,bound; bhs rcGB1 -rcGB0: // Code < bound - mov y0tmp,#kBitModelTotal - mov Range,bound - sub y0tmp,y0tmp,starp - adcs mo,mi,mi // mo = (mi<<1) | (Code >= bound); set CC - add starp,starp,y0tmp, lsr #kNumMoveBits - strh starp,[p_in] - ret t2x -rcGB1: // Code >= bound - sub Code,Code,bound - sub Range,Range,bound - sub starp,starp,starp, lsr #kNumMoveBits - adcs mo,mi,mi // mo = (mi<<1) | (Code >= bound); set CC - strh starp,[p_in] - ret t2x -#undef y0tmp -#undef bound -#undef starp -#undef t1x -#undef t1 -#undef t0x #undef t0 +#undef t1 +#undef t1x + +#undef lsrc +#undef ldst +#undef meth + +#undef a0 +#undef a1 +#undef a2 +#undef a3 +#undef a4 +#undef a5 +#undef a6 + +1: // entry to C-lang LzmaDecode + + section LZMA_DEC20 +#include "lzma_d_cf.S" + + section LZMA_DEC10 +#if 0 /*{*/ +#include "lzma_d_cs.S" +#else /*}{*/ +#define PARAMETER_STYLE 3 +#include "lzma_d-arm.S" +#endif /*}*/ + + section LZMA_DEC30 + +not_lzma: // vi:ts=8:et + diff --git a/src/stub/src/arch/arm64/v8/lzma_d_cf.S b/src/stub/src/arch/arm64/v8/lzma_d_cf.S index f235102e..fbb35c64 100644 --- a/src/stub/src/arch/arm64/v8/lzma_d_cf.S +++ b/src/stub/src/arch/arm64/v8/lzma_d_cf.S @@ -1,441 +1,147 @@ -// .section .text.LzmaDecode,"ax",%progbits -// .align 2 -// .global LzmaDecode -// .type LzmaDecode, %function -//LzmaDecode: - stp x29, x30, [sp, -112]! - mov w8, 1024 - add x29, sp, 0 - stp x19, x20, [sp, 16] - stp x21, x22, [sp, 32] - stp x23, x24, [sp, 48] - stp x25, x26, [sp, 64] - ldp w19, w15, [x0] - ldr w14, [x0, 8] - ldr x11, [x0, 16] - str wzr, [x3] - str wzr, [x6] - ldr w7, [x0, 4] - mov w0, 768 - add w7, w19, w7 - lsl w7, w0, w7 - mov w0, 1 - adds w7, w7, 1846 - lsl w14, w0, w14 - lsl w0, w0, w15 - sub w14, w14, #1 - sub w15, w0, #1 - mov x0, 0 - beq .L22 -.L79: - strh w8, [x11, x0, lsl 1] - add x0, x0, 1 - cmp w7, w0 - bhi .L79 -.L22: - add x2, x1, x2, uxtw - mov w27, 0 - str x2, [x29, 96] - mov w28, -1 - add x0, x1, 1 - add x10, x1, 6 - add x2, x2, 1 -.L20: - cmp x0, x2 - mov x8, x0 - beq .L41 - str x0, [x29, 104] - add x0, x0, 1 - cmp x0, x10 - ldrb w7, [x0, -2] - orr w27, w7, w27, lsl 8 - bne .L20 - stp x1, x6, [x29, 80] - mov x9, x4 - mov x25, x3 - cbz w5, .L63 - mov w23, 1 - mov w26, 8 - mov w22, w23 - mov w21, w23 - mov w7, w23 - mov w10, 0 - mov w13, 0 - mov w6, 0 - sub w20, w26, w19 -.L60: - and w12, w14, w6 - lsl w8, w10, 4 - add x18, x29, 96 - mov w0, 0 - sxtw x1, w12 - add x8, x1, x8, sxtw - lsl x8, x8, 1 - add x1, x11, x8 - bl rcGetBit.2736 - cbnz w0, .L26 - and w0, w15, w6 - asr w8, w13, w20 - lsl w0, w0, w19 - cmp w10, 6 - add w8, w0, w8 - lsl w0, w8, 2 - sub w8, w0, w8 - ubfiz x8, x8, 8, 24 - add x8, x8, 1846 - add x8, x11, x8, lsl 1 - ble .L64 - sub w0, w6, w7 - mov w2, 1 - ldrb w12, [x9, x0] - b .L32 -.L96: - cbnz w13, .L29 -.L30: - cmp w2, 255 - bgt .L31 -.L32: - lsl w12, w12, 1 - mov w0, w2 - and w13, w12, 256 - add x18, x29, 96 - sxtw x1, w13 - add x1, x1, 256 - add x1, x1, x2, sxtw - add x1, x8, x1, lsl 1 - bl rcGetBit.2736 - mov w2, w0 - tbz x2, 0, .L96 - cbnz w13, .L30 -.L29: - cmp w2, 255 - bgt .L31 -.L33: - add x1, x8, x2, sxtw 1 - mov w0, w2 - add x18, x29, 96 - bl rcGetBit.2736 - cmp w0, 255 - mov w2, w0 - ble .L33 - uxtb w13, w0 - cmp w10, 3 - strb w13, [x9, w6, uxtw] - add w6, w6, 1 - bgt .L62 - mov w10, 0 -.L34: - cmp w5, w6 - bhi .L60 -.L58: - mov w1, 16777215 - cmp w28, w1 - bhi .L97 - ldp x2, x1, [x29, 96] - cmp x1, x2 - beq .L41 - add x8, x1, 1 - str x8, [x29, 104] - lsl w28, w28, 8 - ldrb w0, [x1] - orr w27, w0, w27, lsl 8 -.L25: - ldr x0, [x29, 80] - ldp x19, x20, [sp, 16] - sub x8, x8, x0 - ldr x0, [x29, 88] - str w8, [x25] - ldp x21, x22, [sp, 32] - str w6, [x0] - mov w0, 0 - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldp x29, x30, [sp], 112 - ret -.L64: - mov w2, 1 - b .L33 -.L31: - uxtb w13, w2 - strb w13, [x9, w6, uxtw] - add w6, w6, 1 -.L62: - cmp w10, 9 - bgt .L35 - sub w10, w10, #3 - b .L34 -.L26: - sxtw x13, w10 - add x18, x29, 96 - add x13, x13, 192 - mov w0, 0 - lsl x13, x13, 1 - add x1, x11, x13 - bl rcGetBit.2736 - cbnz w0, .L36 - mov w0, 3 - cmp w10, 6 - mov w23, w22 - csel w10, w0, wzr, gt - mov w22, w21 - add x24, x11, 1636 - mov w21, w7 -.L38: - add x18, x29, 96 - mov x1, x24 - mov w0, 0 - bl rcGetBit.2736 - cbnz w0, .L44 - lsl w12, w12, 3 - mov w8, -8 - mov w13, 3 - sxtw x12, w12 - add x12, x12, 2 - add x12, x24, x12, lsl 1 -.L45: - mov w0, 1 -.L47: - add x18, x29, 96 - add x1, x12, x0, uxtw 1 - bl rcGetBit.2736 - subs w13, w13, #1 - bne .L47 - cmp w10, 3 - add w8, w0, w8 - bgt .L48 - mov w7, 3 - mov w12, 6 - cmp w8, w7 - mov w0, 1 - csel w7, w8, w7, le - lsl w7, w7, 6 - sxtw x7, w7 - add x7, x7, 432 - lsl x7, x7, 1 -.L49: - add x1, x7, x0, uxtw 1 - add x18, x29, 96 - add x1, x11, x1 - bl rcGetBit.2736 - subs w12, w12, #1 - bne .L49 - sub w7, w0, #64 - add w10, w10, 7 - cmp w7, 3 - mov w12, w7 - ble .L50 - cmp w7, 13 - and w0, w7, 1 - asr w1, w7, 1 - orr w7, w0, 2 - bgt .L51 - sub w13, w1, #1 - mov x0, 688 - lsl w7, w7, w13 - sub x12, x0, x12, sxtw - add x12, x12, x7, uxtw - add x12, x11, x12, lsl 1 - sub x12, x12, #2 -.L52: - mov w0, 1 - mov w24, w0 -.L57: - add x1, x12, x0, sxtw 1 - add x18, x29, 96 - bl rcGetBit.2736 - and w3, w0, 1 - orr w1, w7, w24 - cmp w3, wzr - csel w7, w1, w7, ne - subs w13, w13, #1 - lsl w24, w24, 1 - bne .L57 -.L50: - adds w7, w7, 1 - beq .L58 -.L48: - cmp w7, w6 - add w0, w8, 2 - bhi .L41 - mov w1, w6 -.L59: - sub w2, w6, w7 - sub w0, w0, #1 - add w6, w6, 1 - cmp w0, wzr - ccmp w5, w6, 0, ne - ldrb w13, [x9, x2] - strb w13, [x9, w1, uxtw] - mov w1, w6 - bhi .L59 - b .L34 -.L35: - sub w10, w10, #6 - b .L34 -.L36: - add x1, x13, 24 - add x18, x29, 96 - add x1, x11, x1 - mov w0, 0 - bl rcGetBit.2736 - cbnz w0, .L39 - add x1, x8, 480 - add x18, x29, 96 - add x1, x11, x1 - bl rcGetBit.2736 - cbnz w0, .L67 - cbz w6, .L41 - sub w0, w6, w7 - cmp w10, 6 - mov w10, 11 - ldrb w13, [x9, x0] - mov w0, 9 - strb w13, [x9, w6, uxtw] - csel w10, w10, w0, gt - add w6, w6, 1 - b .L34 -.L44: - add x18, x29, 96 - add x1, x24, 2 - mov w0, 0 - bl rcGetBit.2736 - mov w8, w0 - cbnz w0, .L46 - lsl w0, w12, 3 - mov w13, 3 - sxtw x0, w0 - add x0, x0, 130 - add x12, x24, x0, lsl 1 - b .L45 -.L39: - add x1, x13, 48 - add x18, x29, 96 - add x1, x11, x1 - mov w0, 0 - bl rcGetBit.2736 - cbnz w0, .L98 -.L40: - cmp w10, 6 - mov w0, w7 - mov w10, 11 - mov w7, w21 - csel w10, w10, w26, gt - mov w21, w0 - add x24, x11, 2664 - b .L38 -.L46: - add x12, x24, 516 - mov w8, -240 - mov w13, 8 - b .L45 -.L41: - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - mov w0, 1 - ldp x29, x30, [sp], 112 - ret -.L51: - ldr x12, [x29, 96] - sub w1, w1, #5 - mov w3, 16777215 -.L55: - cmp w28, w3 - lsl w7, w7, 1 - bhi .L53 - ldr x2, [x29, 104] - cmp x2, x12 - add x4, x2, 1 - beq .L41 - str x4, [x29, 104] - lsl w28, w28, 8 - ldrb w0, [x2] - orr w27, w0, w27, lsl 8 -.L53: - lsr w0, w28, 1 - cmp w0, w27 - mov w28, w0 - bhi .L54 - sub w27, w27, w0 - orr w7, w7, 1 -.L54: - subs w1, w1, #1 - bne .L55 - lsl w7, w7, 4 - add x12, x11, 1604 - mov w13, 4 - b .L52 -.L67: - mov w0, w21 - mov w21, w7 - mov w7, w0 - b .L40 -.L98: - add x1, x13, 72 - add x18, x29, 96 - add x1, x11, x1 - mov w0, 0 - bl rcGetBit.2736 - cbnz w0, .L69 - mov w0, w21 - mov w21, w22 - mov w22, w0 - b .L40 -.L69: - mov w0, w21 - mov w21, w23 - mov w23, w22 - mov w22, w0 - b .L40 -.L97: - ldr x8, [x29, 104] - b .L25 -.L63: - mov w6, 0 - b .L25 -// .size LzmaDecode, .-LzmaDecode - -// .section .text.rcGetBit.2736,"ax",%progbits -// .align 2 -// .type rcGetBit.2736, %function -rcGetBit.2736: - mov w3, 16777215 - cmp w28, w3 - bhi .L2 - ldp x4, x3, [x18] - cmp x3, x4 - beq .L5 - add x4, x3, 1 - str x4, [x18, 8] - lsl w28, w28, 8 - ldrb w2, [x3] - orr w27, w2, w27, lsl 8 -.L2: - ldrh w3, [x1] - lsr w2, w28, 11 - mul w2, w2, w3 - cmp w2, w27 - bhi .L7 - lsl w0, w0, 1 - sub w3, w3, w3, lsr 5 - sub w27, w27, w2 - sub w28, w28, w2 - strh w3, [x1] - add w0, w0, 1 - ret -.L7: - mov w4, 2048 - mov w28, w2 - sub w2, w4, w3 - lsl w0, w0, 1 - add w3, w3, w2, asr 5 - strh w3, [x1] - ret -.L5: - mov w0, 1 - ret -// .size rcGetBit.2736, .-rcGetBit.2736 - -// .ident "GCC: (GNU) 5.2.1 20151104 (Red Hat Cross 5.2.1-4)" -// .section .note.GNU-stack,"",%progbits +/* 0x0000 */ .byte 243, 83,184,169, 39, 0,128, 82, 20, 16, 0,145,245, 91, 1,169 +/* 0x0010 */ .byte 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249 +/* 0x0020 */ .byte 8, 4, 64, 57, 26, 8, 64, 57, 28, 0, 64, 57,127, 0, 0,185 +/* 0x0030 */ .byte 250, 32,218, 26,223, 0, 0,185,231, 32,200, 26,231, 4, 0, 81 +/* 0x0040 */ .byte 231,111, 0,185, 8, 4, 64, 57, 7, 96,128, 82, 90, 7, 0, 81 +/* 0x0050 */ .byte 8, 1, 28, 11,232, 32,200, 26, 8,217, 28, 49,224, 0, 0, 84 +/* 0x0060 */ .byte 7, 0,128,210, 9,128,128, 82,137,122, 39,120,231, 4, 0,145 +/* 0x0070 */ .byte 31, 1, 7,107,168,255,255, 84, 51, 64, 34,139,127, 2, 1,235 +/* 0x0080 */ .byte 0, 15, 0, 84,235, 3, 1,170, 34, 4, 0,145,103, 85, 64, 56 +/* 0x0090 */ .byte 127, 2, 2,235, 96, 14, 0, 84, 72, 20, 64, 56,127, 1, 2,235 +/* 0x00a0 */ .byte 7, 33, 7, 42, 97,255,255, 84, 37, 68, 0, 52, 9,176, 41,145 +/* 0x00b0 */ .byte 59, 0,128, 82,233, 63, 0,249, 9, 1,128, 82, 41, 1, 28, 75 +/* 0x00c0 */ .byte 10, 0,128, 18,245, 3, 27, 42, 25, 0,128, 82, 8, 0,128, 82 +/* 0x00d0 */ .byte 2, 0,128, 82, 16,224,191, 18, 17, 0,129, 82,251,107, 0,185 +/* 0x00e0 */ .byte 251,115, 0,185,233,119, 0,185, 78, 0, 26, 10, 44,111, 28, 83 +/* 0x00f0 */ .byte 95, 1, 16,107,201,125, 64,147, 44,193, 44,139,143,249,127,211 +/* 0x0100 */ .byte 232, 0, 0, 84,127, 2, 11,235,192, 10, 0, 84,105, 1, 64, 57 +/* 0x0110 */ .byte 74, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42,141,122,108,120 +/* 0x0120 */ .byte 73,125, 11, 83,169,125, 9, 27,255, 0, 9,107,162, 10, 0, 84 +/* 0x0130 */ .byte 234,211, 65, 57, 63, 27, 0,113, 8, 41,202, 26,234,111, 64,185 +/* 0x0140 */ .byte 79, 0, 10, 10,239, 33,220, 26,239, 1, 8, 11, 40, 2, 13, 75 +/* 0x0150 */ .byte 234,117, 30, 83, 79, 1, 15, 75,173, 21,136, 11,239, 93,120,211 +/* 0x0160 */ .byte 141,122, 44,120,239,217, 28,145,143, 6, 15,139, 45, 31, 0, 84 +/* 0x0170 */ .byte 72, 0, 21, 75,146,104,104, 56, 40, 0,128, 82, 7, 0, 0, 20 +/* 0x0180 */ .byte 236,121, 42,120, 8,121, 31, 83,233, 3, 14, 42,205, 56, 0, 53 +/* 0x0190 */ .byte 31,253, 3,113,204, 3, 0, 84, 82,122, 31, 83, 63, 1, 16,107 +/* 0x01a0 */ .byte 77, 2, 24, 18, 22,121, 31, 83,170,125, 64,147, 74, 1, 4,145 +/* 0x01b0 */ .byte 74,193, 40,139,232, 0, 0, 84,127, 1, 19,235, 41, 93, 24, 83 +/* 0x01c0 */ .byte 0, 5, 0, 84,108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42 +/* 0x01d0 */ .byte 236,121,106,120, 46,125, 11, 83, 55, 2, 12, 75,142,125, 14, 27 +/* 0x01e0 */ .byte 152, 21, 76, 75,140, 21,151, 11,255, 0, 14,107, 41, 1, 14, 75 +/* 0x01f0 */ .byte 131,252,255, 84,248,121, 42,120,200, 6, 0, 17,231, 0, 14, 75 +/* 0x0200 */ .byte 141,252,255, 53, 31,253, 3,113, 45, 27, 0, 84, 8, 29, 0, 83 +/* 0x0210 */ .byte 234, 3, 9, 42,136, 72, 34, 56, 66, 4, 0, 17, 63, 39, 0,113 +/* 0x0220 */ .byte 140, 49, 0, 84, 57, 15, 0, 81,191, 0, 2,107,232,245,255, 84 +/* 0x0230 */ .byte 0,224,191, 18, 95, 1, 0,107,136, 0, 0, 84,127, 2, 11,235 +/* 0x0240 */ .byte 0, 1, 0, 84,107, 5, 0,145, 97, 1, 1,203, 97, 0, 0,185 +/* 0x0250 */ .byte 0, 0,128, 82,194, 0, 0,185, 3, 0, 0, 20, 31, 32, 3,213 +/* 0x0260 */ .byte 32, 0,128, 82,245, 91, 65,169,247, 99, 66,169,249,107, 67,169 +/* 0x0270 */ .byte 251,115, 68,169,254, 43, 64,249,243, 83,200,168,192, 3, 95,214 +/* 0x0280 */ .byte 74, 1, 9, 75,173, 21, 77, 75,231, 0, 9, 75,141,122, 44,120 +/* 0x0290 */ .byte 41,127, 64,147, 95, 1, 16,107, 41, 1, 3,145, 45,249,127,211 +/* 0x02a0 */ .byte 232, 0, 0, 84,127, 1, 19,235,192,253,255, 84,104, 1, 64, 57 +/* 0x02b0 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,122,105,120 +/* 0x02c0 */ .byte 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107, 98, 25, 0, 84 +/* 0x02d0 */ .byte 234,107, 64,185, 63, 31, 0,113,251,115, 64,185,234,115, 0,185 +/* 0x02e0 */ .byte 42, 2, 12, 75,245,107, 0,185,140, 21,138, 11,140,122, 41,120 +/* 0x02f0 */ .byte 105, 0,128, 82,249,179,137, 26, 9,160, 25,145, 31, 1, 16,107 +/* 0x0300 */ .byte 232, 0, 0, 84,127, 2, 11,235,192,250,255, 84,106, 1, 64, 57 +/* 0x0310 */ .byte 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, 44, 1, 64,121 +/* 0x0320 */ .byte 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,226, 30, 0, 84 +/* 0x0330 */ .byte 210,113, 29, 83, 40, 2, 12, 75, 22, 0,128, 82,126, 0,128, 82 +/* 0x0340 */ .byte 82,126, 64,147,140, 21,136, 11, 82, 10, 0,145, 44, 1, 0,121 +/* 0x0350 */ .byte 50, 5, 18,139,238, 3, 30, 42, 45, 0,128, 82, 6, 0, 0, 20 +/* 0x0360 */ .byte 232, 1, 0,121,206, 5, 0,113,173,121, 31, 83,234, 3, 9, 42 +/* 0x0370 */ .byte 32, 3, 0, 84, 95, 1, 16,107,183,121, 31, 83, 79,198, 45,139 +/* 0x0380 */ .byte 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,160,246,255, 84 +/* 0x0390 */ .byte 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,232, 1, 64,121 +/* 0x03a0 */ .byte 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 24, 21, 72, 75 +/* 0x03b0 */ .byte 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84 +/* 0x03c0 */ .byte 248, 1, 0,121,206, 5, 0,113,231, 0, 9, 75,237, 6, 0, 17 +/* 0x03d0 */ .byte 33,253,255, 84, 40, 0,128, 82, 63, 15, 0,113, 30, 33,222, 26 +/* 0x03e0 */ .byte 222, 2, 30, 75,205, 3, 13, 11,236, 22, 0, 84,191, 13, 0,113 +/* 0x03f0 */ .byte 104, 0,128, 82,181,209,136, 26,207, 0,128, 82,181,102, 26, 83 +/* 0x0400 */ .byte 46, 0,128, 82,181,126, 64,147,181,194, 6,145,181,250,127,211 +/* 0x0410 */ .byte 7, 0, 0, 20, 31, 32, 3,213,136,106, 50,120,239, 5, 0,113 +/* 0x0420 */ .byte 206,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107 +/* 0x0430 */ .byte 214,121, 31, 83,178,198, 46,139,232, 0, 0, 84,127, 2, 11,235 +/* 0x0440 */ .byte 74, 93, 24, 83,224,240,255, 84,104, 1, 64, 57,107, 5, 0,145 +/* 0x0450 */ .byte 7, 33, 7, 42,136,106,114,120, 73,125, 11, 83, 44, 2, 8, 75 +/* 0x0460 */ .byte 9,125, 9, 27, 23, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107 +/* 0x0470 */ .byte 74, 1, 9, 75, 35,253,255, 84,151,106, 50,120,239, 5, 0,113 +/* 0x0480 */ .byte 231, 0, 9, 75,206, 6, 0, 17, 33,253,255, 84,213, 1, 1, 81 +/* 0x0490 */ .byte 191, 14, 0,113, 45, 17, 0, 84,191, 54, 0,113,168, 2, 0, 18 +/* 0x04a0 */ .byte 8, 1, 31, 50,169,126, 1, 19, 44, 32, 0, 84, 47, 5, 0, 81 +/* 0x04b0 */ .byte 9, 86,128,210, 46,193, 53,203, 21, 33,207, 26,206, 65, 53,139 +/* 0x04c0 */ .byte 142, 6, 14,139,206, 9, 0,209, 50, 0,128, 82,247, 3, 18, 42 +/* 0x04d0 */ .byte 8, 0, 0, 20, 31, 32, 3,213,200, 2, 0,121, 82,122, 31, 83 +/* 0x04e0 */ .byte 234, 3, 9, 42,239, 5, 0,113,247,122, 31, 83, 96, 14, 0, 84 +/* 0x04f0 */ .byte 95, 1, 16,107, 88,122, 31, 83,214,197, 50,139,232, 0, 0, 84 +/* 0x0500 */ .byte 127, 2, 11,235, 74, 93, 24, 83,192,234,255, 84,104, 1, 64, 57 +/* 0x0510 */ .byte 107, 5, 0,145, 7, 33, 7, 42,200, 2, 64,121, 73,125, 11, 83 +/* 0x0520 */ .byte 44, 2, 8, 75, 9,125, 9, 27, 30, 21, 72, 75, 8, 21,140, 11 +/* 0x0530 */ .byte 255, 0, 9,107, 74, 1, 9, 75, 3,253,255, 84,222, 2, 0,121 +/* 0x0540 */ .byte 231, 0, 9, 75,181, 2, 23, 42, 18, 7, 0, 17,230,255,255, 23 +/* 0x0550 */ .byte 40, 0,128, 82, 6, 0, 0, 20, 8,121, 31, 83,234,121, 46,120 +/* 0x0560 */ .byte 31,253, 3,113,233, 3, 12, 42, 44, 3, 0, 84, 63, 1, 16,107 +/* 0x0570 */ .byte 18,121, 31, 83, 14,125, 64,147,232, 0, 0, 84,127, 2, 11,235 +/* 0x0580 */ .byte 41, 93, 24, 83,224,230,255, 84,106, 1, 64, 57,107, 5, 0,145 +/* 0x0590 */ .byte 71, 33, 7, 42,234,121,110,120, 44,125, 11, 83, 45, 2, 10, 75 +/* 0x05a0 */ .byte 76,125, 12, 27, 86, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107 +/* 0x05b0 */ .byte 41, 1, 12, 75, 35,253,255, 84, 72, 6, 0, 17,246,121, 46,120 +/* 0x05c0 */ .byte 31,253, 3,113,231, 0, 12, 75, 45,253,255, 84, 8, 29, 0, 83 +/* 0x05d0 */ .byte 63, 15, 0,113,136, 72, 34, 56,234, 3, 9, 42, 66, 4, 0, 17 +/* 0x05e0 */ .byte 236,225,255, 84,191, 0, 2,107, 25, 0,128, 82,232,215,255, 84 +/* 0x05f0 */ .byte 16,255,255, 23, 31, 32, 3,213, 74, 1, 8, 75,140, 21, 76, 75 +/* 0x0600 */ .byte 95, 1, 16,107,140,122, 41,120,231, 0, 8, 75,169, 97, 0,145 +/* 0x0610 */ .byte 232, 0, 0, 84,127, 2, 11,235, 64,226,255, 84,104, 1, 64, 57 +/* 0x0620 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,106,105,120 +/* 0x0630 */ .byte 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107,226, 9, 0, 84 +/* 0x0640 */ .byte 42, 2, 12, 75, 31, 1, 16,107,239,129, 7,145,140, 21,138, 11 +/* 0x0650 */ .byte 140,106, 41,120,232, 0, 0, 84,127, 2, 11,235, 32,224,255, 84 +/* 0x0660 */ .byte 105, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42 +/* 0x0670 */ .byte 137,106,111,120, 10,125, 11, 83, 42,125, 10, 27,255, 0, 10,107 +/* 0x0680 */ .byte 130, 16, 0, 84, 40, 2, 9, 75, 41, 21,136, 11,137,106, 47,120 +/* 0x0690 */ .byte 130,222,255, 52, 72, 0, 21, 75, 63, 31, 0,113, 41, 1,128, 82 +/* 0x06a0 */ .byte 108, 1,128, 82, 57,177,140, 26,136,104,104, 56,136, 72, 34, 56 +/* 0x06b0 */ .byte 66, 4, 0, 17,221,254,255, 23,181, 6, 0, 49,160,219,255, 84 +/* 0x06c0 */ .byte 57, 31, 0, 17,191, 2, 2,107,173, 9, 0, 17,168,220,255, 84 +/* 0x06d0 */ .byte 233, 3, 2, 42, 72, 0, 21, 75,173, 5, 0, 81, 66, 4, 0, 17 +/* 0x06e0 */ .byte 191, 1, 31,107,160, 16, 66,122,136,104,104, 56,136, 72, 41, 56 +/* 0x06f0 */ .byte 233, 3, 2, 42, 8,255,255, 84,191, 0, 2,107,104,207,255, 84 +/* 0x0700 */ .byte 204,254,255, 23, 31, 32, 3,213, 8, 1, 10, 75,140, 21, 76, 75 +/* 0x0710 */ .byte 31, 1, 16,107, 44, 1, 0,121,231, 0, 10, 75,232, 0, 0, 84 +/* 0x0720 */ .byte 127, 2, 11,235,224,217,255, 84,106, 1, 64, 57, 8, 93, 24, 83 +/* 0x0730 */ .byte 107, 5, 0,145, 71, 33, 7, 42, 44, 5, 64,121, 10,125, 11, 83 +/* 0x0740 */ .byte 138,125, 10, 27,255, 0, 10,107, 66, 7, 0, 84,210,113, 29, 83 +/* 0x0750 */ .byte 40, 2, 12, 75, 22, 1,128, 82,126, 0,128, 82, 82,126, 64,147 +/* 0x0760 */ .byte 136, 21,136, 11, 82, 10, 2,145, 40, 5, 0,121, 50, 5, 18,139 +/* 0x0770 */ .byte 249,254,255, 23, 31, 32, 3,213, 74, 1, 8, 75,231, 0, 8, 75 +/* 0x0780 */ .byte 95, 1, 16,107,136, 21, 76, 75,136,106, 41,120,172,193, 0,145 +/* 0x0790 */ .byte 232, 0, 0, 84,127, 2, 11,235, 64,214,255, 84,104, 1, 64, 57 +/* 0x07a0 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,108,120 +/* 0x07b0 */ .byte 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107, 35, 5, 0, 84 +/* 0x07c0 */ .byte 74, 1, 8, 75, 41, 21, 73, 75, 95, 1, 16,107,137,106, 44,120 +/* 0x07d0 */ .byte 231, 0, 8, 75,173, 33, 1,145,232, 0, 0, 84,127, 2, 11,235 +/* 0x07e0 */ .byte 0,212,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145 +/* 0x07f0 */ .byte 7, 33, 7, 42,137,106,109,120, 72,125, 11, 83, 40,125, 8, 27 +/* 0x0800 */ .byte 255, 0, 8,107,226, 7, 0, 84,234, 3, 21, 42,236,107, 64,185 +/* 0x0810 */ .byte 234,107, 0,185, 42, 2, 9, 75,245,115, 64,185, 41, 21,138, 11 +/* 0x0820 */ .byte 236,115, 0,185,137,106, 45,120, 20, 0, 0, 20, 31, 32, 3,213 +/* 0x0830 */ .byte 231, 0, 10, 75, 50, 17, 8,145, 10, 1, 10, 75, 22, 2,128, 82 +/* 0x0840 */ .byte 136, 21, 76, 75, 30, 1,128, 82, 40, 5, 0,121,194,254,255, 23 +/* 0x0850 */ .byte 191, 0, 2,107, 57, 27, 0, 81,136,196,255, 84,117,254,255, 23 +/* 0x0860 */ .byte 234, 3, 21, 42,245,107, 64,185,234,107, 0,185, 42, 2, 9, 75 +/* 0x0870 */ .byte 41, 21,138, 11,137,106, 44,120, 63, 31, 0,113, 10, 1,128, 82 +/* 0x0880 */ .byte 108, 1,128, 82,233, 63, 64,249, 89,177,140, 26,156,254,255, 23 +/* 0x0890 */ .byte 41, 21, 73, 75, 8, 1, 10, 75,137,106, 47,120,231, 0, 10, 75 +/* 0x08a0 */ .byte 246,255,255, 23,233, 3, 14, 42, 87,254,255, 23, 41, 21, 0, 81 +/* 0x08b0 */ .byte 95, 1, 16,107, 8,121, 31, 83,232, 0, 0, 84,127, 2, 11,235 +/* 0x08c0 */ .byte 74, 93, 24, 83,224,204,255, 84,108, 1, 64, 57,107, 5, 0,145 +/* 0x08d0 */ .byte 135, 33, 7, 42, 74,125, 1, 83,255, 0, 10,107, 99, 0, 0, 84 +/* 0x08e0 */ .byte 231, 0, 10, 75, 8, 1, 0, 50, 41, 5, 0,113, 33,254,255, 84 +/* 0x08f0 */ .byte 21,109, 28, 83, 14, 32, 25,145,143, 0,128, 82,243,254,255, 23 +/* 0x0900 */ .byte 41, 21, 73, 75,137,106, 45,120,233,107, 64,185,236, 3, 21, 42 +/* 0x0910 */ .byte 231, 0, 8, 75,245, 3, 27, 42, 72, 1, 8, 75,251,115, 64,185 +/* 0x0920 */ .byte 236,107, 0,185,233,115, 0,185,212,255,255, 23, 2, 0,128, 82 diff --git a/src/stub/src/arch/arm64/v8/lzma_d_cs.S b/src/stub/src/arch/arm64/v8/lzma_d_cs.S new file mode 100644 index 00000000..42f9b3c5 --- /dev/null +++ b/src/stub/src/arch/arm64/v8/lzma_d_cs.S @@ -0,0 +1,140 @@ +/* 0x0000 */ .byte 243, 83,184,169, 39, 0,128, 82, 12, 16, 0,145,245, 91, 1,169 +/* 0x0010 */ .byte 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249 +/* 0x0020 */ .byte 9,128,128, 82, 8, 8, 64, 57, 23, 0, 64, 57,232, 32,200, 26 +/* 0x0030 */ .byte 8, 5, 0, 81,232,111, 0,185, 8, 4, 64, 57,127, 0, 0,185 +/* 0x0040 */ .byte 231, 32,200, 26,223, 0, 0,185,231, 4, 0, 81,231,123, 0,185 +/* 0x0050 */ .byte 7, 4, 64, 57, 8, 96,128, 82,231, 0, 23, 11, 7, 33,199, 26 +/* 0x0060 */ .byte 8, 0,128,210,231,216, 28, 17,255, 0, 8,107,137, 0, 0, 84 +/* 0x0070 */ .byte 137,121, 40,120, 8, 5, 0,145,252,255,255, 23, 34, 64, 34,139 +/* 0x0080 */ .byte 41, 20, 0,145,231, 3, 1,170, 8, 0,128, 82, 95, 0, 7,235 +/* 0x0090 */ .byte 97, 0, 0, 84, 32, 0,128, 82, 1, 2, 0, 20,234, 20, 64, 56 +/* 0x00a0 */ .byte 63, 1, 7,235, 72, 33, 8, 42, 33,255,255, 84, 53, 0,128, 82 +/* 0x00b0 */ .byte 11,176, 41,145, 24, 1,128, 82,235, 59, 0,249, 7, 0,128, 18 +/* 0x00c0 */ .byte 11, 3, 23, 75,254, 3, 21, 42,243, 3, 21, 42,234, 3, 21, 42 +/* 0x00d0 */ .byte 13, 0,128, 82, 26, 0,128, 82, 14, 0,128, 82, 17,224,191, 18 +/* 0x00e0 */ .byte 18, 0,129, 82,121, 1,128, 82,235,127, 0,185,223, 1, 5,107 +/* 0x00f0 */ .byte 34, 60, 0, 84,235,111, 64,185,175,109, 28, 83,255, 0, 17,107 +/* 0x0100 */ .byte 212, 1, 11, 10,139,126, 64,147,111,193, 47,139,239,249,127,211 +/* 0x0110 */ .byte 232, 0, 0, 84, 63, 1, 2,235,224,251,255, 84, 43, 1, 64, 57 +/* 0x0120 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,150,105,111,120 +/* 0x0130 */ .byte 240,124, 11, 83,208,126, 16, 27, 31, 1, 16,107,130, 12, 0, 84 +/* 0x0140 */ .byte 71, 2, 22, 75,191, 25, 0,113,214, 22,135, 11,231,123, 64,185 +/* 0x0150 */ .byte 150,105, 47,120,239,243, 65, 57,199, 1, 7, 10,231, 32,215, 26 +/* 0x0160 */ .byte 75, 43,207, 26,246, 0, 11, 11, 7, 96,128, 82,214,126, 7, 27 +/* 0x0170 */ .byte 214,218, 28,145,150, 5, 22,139,108, 0, 0, 84, 43, 0,128, 82 +/* 0x0180 */ .byte 26, 0, 0, 20,199, 1, 10, 75, 43, 0,128, 82,154,104,103, 56 +/* 0x0190 */ .byte 231, 3, 16, 42, 90,123, 31, 83,255, 0, 17,107, 91, 3, 24, 18 +/* 0x01a0 */ .byte 111,127, 64,147,239, 1, 4,145,239,193, 43,139,239,249,127,211 +/* 0x01b0 */ .byte 9, 2, 0, 84,212,106,111,120,240,124, 11, 83,107,121, 31, 83 +/* 0x01c0 */ .byte 144,126, 16, 27, 31, 1, 16,107, 35, 2, 0, 84,148, 22, 84, 75 +/* 0x01d0 */ .byte 212,106, 47,120,231, 0, 16, 75, 8, 1, 16, 75,107, 5, 0, 17 +/* 0x01e0 */ .byte 27, 2, 0, 53,240, 3, 7, 42,231, 3, 16, 42, 29, 0, 0, 20 +/* 0x01f0 */ .byte 63, 1, 2,235, 0,245,255, 84, 48, 1, 64, 57,231, 92, 24, 83 +/* 0x0200 */ .byte 41, 5, 0,145, 8, 34, 8, 42,235,255,255, 23, 71, 2, 20, 75 +/* 0x0210 */ .byte 148, 22,135, 11,212,106, 47,120,155,254,255, 53,231, 3, 16, 42 +/* 0x0220 */ .byte 127,253, 3,113,141,251,255, 84, 30, 0, 0, 20,255, 0, 17,107 +/* 0x0230 */ .byte 116,125,127,147,201, 1, 0, 84,208,106,116,120,239,124, 11, 83 +/* 0x0240 */ .byte 107,121, 31, 83, 15,126, 15, 27, 31, 1, 15,107,226, 1, 0, 84 +/* 0x0250 */ .byte 71, 2, 16, 75, 16, 22,135, 11,208,106, 52,120,231, 3, 15, 42 +/* 0x0260 */ .byte 127,253, 3,113, 77,254,255, 84, 14, 0, 0, 20, 63, 1, 2,235 +/* 0x0270 */ .byte 32,241,255, 84, 47, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145 +/* 0x0280 */ .byte 232, 33, 8, 42,237,255,255, 23, 8, 1, 15, 75, 16, 22, 80, 75 +/* 0x0290 */ .byte 107, 5, 0, 17,208,106, 52,120,239, 0, 15, 75,240,255,255, 23 +/* 0x02a0 */ .byte 122, 29, 0, 83,191, 13, 0,113,154, 72, 46, 56,207, 5, 0, 17 +/* 0x02b0 */ .byte 205, 45, 0, 84,191, 37, 0,113,108, 0, 0, 84,173, 13, 0, 81 +/* 0x02c0 */ .byte 107, 1, 0, 20,173, 25, 0, 81,105, 1, 0, 20,231, 0, 16, 75 +/* 0x02d0 */ .byte 8, 1, 16, 75,214, 22, 86, 75,176,125, 64,147,150,105, 47,120 +/* 0x02e0 */ .byte 255, 0, 17,107, 16, 2, 3,145, 16,250,127,211,232, 0, 0, 84 +/* 0x02f0 */ .byte 63, 1, 2,235, 0,237,255, 84, 43, 1, 64, 57,231, 92, 24, 83 +/* 0x0300 */ .byte 41, 5, 0,145,104, 33, 8, 42,150,105,112,120,235,124, 11, 83 +/* 0x0310 */ .byte 203,126, 11, 27, 31, 1, 11,107,130, 1, 0, 84, 71, 2, 22, 75 +/* 0x0320 */ .byte 191, 29, 0,113,245, 3, 30, 42, 15,160, 25,145,214, 22,135, 11 +/* 0x0330 */ .byte 103, 0,128, 82,254, 3, 19, 42,150,105, 48,120,237,179,135, 26 +/* 0x0340 */ .byte 243, 3, 10, 42,117, 0, 0, 20,231, 0, 11, 75,214, 22, 86, 75 +/* 0x0350 */ .byte 255, 0, 17,107,150,105, 48,120, 8, 1, 11, 75, 26, 98, 0,145 +/* 0x0360 */ .byte 232, 0, 0, 84, 63, 1, 2,235, 96,233,255, 84, 43, 1, 64, 57 +/* 0x0370 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,150,105,122,120 +/* 0x0380 */ .byte 235,124, 11, 83,203,126, 11, 27, 31, 1, 11,107,194, 4, 0, 84 +/* 0x0390 */ .byte 71, 2, 22, 75,127, 1, 17,107,239,129, 7,145,214, 22,135, 11 +/* 0x03a0 */ .byte 150,105, 58,120,232, 0, 0, 84, 63, 1, 2,235, 64,231,255, 84 +/* 0x03b0 */ .byte 39, 1, 64, 57,107, 93, 24, 83, 41, 5, 0,145,232, 32, 8, 42 +/* 0x03c0 */ .byte 144,105,111,120,103,125, 11, 83, 7,126, 7, 27, 31, 1, 7,107 +/* 0x03d0 */ .byte 162, 1, 0, 84, 75, 2, 16, 75, 16, 22,139, 11,144,105, 47,120 +/* 0x03e0 */ .byte 174,229,255, 52, 43, 1,128, 82,191, 29, 0,113,109,177,153, 26 +/* 0x03f0 */ .byte 203, 1, 10, 75,207, 5, 0, 17,154,104,107, 56,154, 72, 46, 56 +/* 0x0400 */ .byte 27, 1, 0, 20,107, 1, 7, 75, 8, 1, 7, 75, 16, 22, 80, 75 +/* 0x0410 */ .byte 231, 3, 30, 42,144,105, 47,120,254, 3, 10, 42,234, 3, 19, 42 +/* 0x0420 */ .byte 24, 0, 0, 20,231, 0, 11, 75,214, 22, 86, 75,255, 0, 17,107 +/* 0x0430 */ .byte 150,105, 58,120, 8, 1, 11, 75, 22,194, 0,145,232, 0, 0, 84 +/* 0x0440 */ .byte 63, 1, 2,235,128,226,255, 84, 43, 1, 64, 57,231, 92, 24, 83 +/* 0x0450 */ .byte 41, 5, 0,145,104, 33, 8, 42,143,105,118,120,235,124, 11, 83 +/* 0x0460 */ .byte 235,125, 11, 27, 31, 1, 11,107, 2, 1, 0, 84, 71, 2, 15, 75 +/* 0x0470 */ .byte 239, 21,135, 11,231, 3, 30, 42,143,105, 54,120,254, 3, 19, 42 +/* 0x0480 */ .byte 243, 3, 7, 42, 30, 0, 0, 20,231, 0, 11, 75,239, 21, 79, 75 +/* 0x0490 */ .byte 255, 0, 17,107,143,105, 54,120, 8, 1, 11, 75, 16, 34, 1,145 +/* 0x04a0 */ .byte 232, 0, 0, 84, 63, 1, 2,235, 96,223,255, 84, 43, 1, 64, 57 +/* 0x04b0 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,143,105,112,120 +/* 0x04c0 */ .byte 235,124, 11, 83,235,125, 11, 27, 31, 1, 11,107,162, 0, 0, 84 +/* 0x04d0 */ .byte 71, 2, 15, 75,239, 21,135, 11,143,105, 48,120, 8, 0, 0, 20 +/* 0x04e0 */ .byte 8, 1, 11, 75,235, 0, 11, 75,231, 3, 30, 42,239, 21, 79, 75 +/* 0x04f0 */ .byte 254, 3, 21, 42,143,105, 48,120,245, 3, 7, 42,231, 3, 10, 42 +/* 0x0500 */ .byte 191, 29, 0,113,239, 59, 64,249,234, 3, 30, 42, 13,179,153, 26 +/* 0x0510 */ .byte 254, 3, 19, 42,243, 3, 7, 42,127, 1, 17,107,232, 0, 0, 84 +/* 0x0520 */ .byte 63, 1, 2,235,128,219,255, 84, 39, 1, 64, 57,107, 93, 24, 83 +/* 0x0530 */ .byte 41, 5, 0,145,232, 32, 8, 42,240, 1, 64,121,103,125, 11, 83 +/* 0x0540 */ .byte 7,126, 7, 27, 31, 1, 7,107, 66, 1, 0, 84,148,114, 29, 83 +/* 0x0550 */ .byte 75, 2, 16, 75,148,126, 64,147, 16, 22,139, 11,148, 10, 0,145 +/* 0x0560 */ .byte 240, 1, 0,121, 16, 0,128, 82,239, 5, 20,139, 26, 0, 0, 20 +/* 0x0570 */ .byte 107, 1, 7, 75, 16, 22, 80, 75,127, 1, 17,107,240, 1, 0,121 +/* 0x0580 */ .byte 8, 1, 7, 75,232, 0, 0, 84, 63, 1, 2,235, 64,216,255, 84 +/* 0x0590 */ .byte 39, 1, 64, 57,107, 93, 24, 83, 41, 5, 0,145,232, 32, 8, 42 +/* 0x05a0 */ .byte 240, 5, 64,121,103,125, 11, 83, 7,126, 7, 27, 31, 1, 7,107 +/* 0x05b0 */ .byte 98, 1, 0, 84,148,114, 29, 83, 75, 2, 16, 75,148,126, 64,147 +/* 0x05c0 */ .byte 16, 22,139, 11,148, 10, 2,145,240, 5, 0,121, 16, 1,128, 82 +/* 0x05d0 */ .byte 239, 5, 20,139,122, 0,128, 82, 8, 0, 0, 20, 16, 22, 80, 75 +/* 0x05e0 */ .byte 8, 1, 7, 75,240, 5, 0,121,103, 1, 7, 75,239, 17, 8,145 +/* 0x05f0 */ .byte 16, 2,128, 82, 26, 1,128, 82,251, 3, 26, 42, 43, 0,128, 82 +/* 0x0600 */ .byte 255, 0, 17,107,252,197, 43,139,232, 0, 0, 84, 63, 1, 2,235 +/* 0x0610 */ .byte 32,212,255, 84, 52, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145 +/* 0x0620 */ .byte 136, 34, 8, 42,150, 3, 64,121,244,124, 11, 83,107,121, 31, 83 +/* 0x0630 */ .byte 212,126, 20, 27, 31, 1, 20,107,194, 0, 0, 84, 71, 2, 22, 75 +/* 0x0640 */ .byte 214, 22,135, 11,231, 3, 20, 42,150, 3, 0,121, 6, 0, 0, 20 +/* 0x0650 */ .byte 214, 22, 86, 75,231, 0, 20, 75, 8, 1, 20, 75,150, 3, 0,121 +/* 0x0660 */ .byte 107, 5, 0, 17,123, 7, 0,113,193,252,255, 84, 47, 0,128, 82 +/* 0x0670 */ .byte 191, 13, 0,113,250, 33,218, 26, 16, 2, 26, 75, 16, 2, 11, 11 +/* 0x0680 */ .byte 172, 13, 0, 84,106, 0,128, 82, 31, 14, 0,113, 11,210,138, 26 +/* 0x0690 */ .byte 214, 0,128, 82,107,101, 26, 83,234, 3, 15, 42,107,125, 64,147 +/* 0x06a0 */ .byte 107,193, 6,145,107,249,127,211,255, 0, 17,107,122,197, 42,139 +/* 0x06b0 */ .byte 232, 0, 0, 84, 63, 1, 2,235,224,206,255, 84, 47, 1, 64, 57 +/* 0x06c0 */ .byte 231, 92, 24, 83, 41, 5, 0,145,232, 33, 8, 42,148,105,122,120 +/* 0x06d0 */ .byte 239,124, 11, 83, 74,121, 31, 83,143,126, 15, 27, 31, 1, 15,107 +/* 0x06e0 */ .byte 194, 0, 0, 84, 71, 2, 20, 75,148, 22,135, 11,231, 3, 15, 42 +/* 0x06f0 */ .byte 148,105, 58,120, 6, 0, 0, 20,148, 22, 84, 75,231, 0, 15, 75 +/* 0x0700 */ .byte 8, 1, 15, 75,148,105, 58,120, 74, 5, 0, 17,214, 6, 0,113 +/* 0x0710 */ .byte 193,252,255, 84, 75, 1, 1, 81,127, 13, 0,113, 77, 8, 0, 84 +/* 0x0720 */ .byte 127, 53, 0,113,106, 1, 0, 18,111,125, 1, 19, 74, 1, 31, 50 +/* 0x0730 */ .byte 44, 1, 0, 84,239, 5, 0, 81, 20, 86,128,210, 74, 33,207, 26 +/* 0x0740 */ .byte 139,194, 43,203,107, 65, 42,139,139, 5, 11,139,107, 9, 0,209 +/* 0x0750 */ .byte 21, 0, 0, 20,239, 21, 0, 81,255, 0, 17,107,232, 0, 0, 84 +/* 0x0760 */ .byte 63, 1, 2,235,128,201,255, 84, 43, 1, 64, 57,231, 92, 24, 83 +/* 0x0770 */ .byte 41, 5, 0,145,104, 33, 8, 42,231,124, 1, 83, 74,121, 31, 83 +/* 0x0780 */ .byte 31, 1, 7,107, 99, 0, 0, 84, 8, 1, 7, 75, 74, 1, 0, 50 +/* 0x0790 */ .byte 239, 5, 0,113, 33,254,255, 84, 11, 32, 25,145, 74,109, 28, 83 +/* 0x07a0 */ .byte 143, 0,128, 82, 52, 0,128, 82,251, 3, 20, 42,255, 0, 17,107 +/* 0x07b0 */ .byte 124,197, 52,139,232, 0, 0, 84, 63, 1, 2,235,192,198,255, 84 +/* 0x07c0 */ .byte 54, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145,200, 34, 8, 42 +/* 0x07d0 */ .byte 154, 3, 64,121,246,124, 11, 83,148,122, 31, 83, 86,127, 22, 27 +/* 0x07e0 */ .byte 31, 1, 22,107,194, 0, 0, 84, 71, 2, 26, 75, 90, 23,135, 11 +/* 0x07f0 */ .byte 231, 3, 22, 42,154, 3, 0,121, 7, 0, 0, 20, 90, 23, 90, 75 +/* 0x0800 */ .byte 231, 0, 22, 75, 8, 1, 22, 75,154, 3, 0,121,148, 6, 0, 17 +/* 0x0810 */ .byte 74, 1, 27, 42,239, 5, 0,113,123,123, 31, 83,129,252,255, 84 +/* 0x0820 */ .byte 2, 0, 0, 20,234, 3, 11, 42, 74, 5, 0, 49, 64, 2, 0, 84 +/* 0x0830 */ .byte 173, 29, 0, 17,223, 1, 10,107, 11, 10, 0, 17,195,194,255, 84 +/* 0x0840 */ .byte 207, 1, 10, 75,107, 5, 0, 81,127, 1, 31,107,154,104,111, 56 +/* 0x0850 */ .byte 207, 5, 0, 17,154, 72, 46, 56,160, 16, 79,122,238, 3, 15, 42 +/* 0x0860 */ .byte 8,255,255, 84, 2, 0, 0, 20, 13, 0,128, 82,238, 3, 15, 42 +/* 0x0870 */ .byte 31,254,255, 23, 0,224,191, 18,255, 0, 0,107,136, 0, 0, 84 +/* 0x0880 */ .byte 63, 1, 2,235,128,192,255, 84, 41, 5, 0,145, 33, 1, 1,203 +/* 0x0890 */ .byte 97, 0, 0,185, 0, 0,128, 82,206, 0, 0,185,245, 91, 65,169 +/* 0x08a0 */ .byte 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249 +/* 0x08b0 */ .byte 243, 83,200,168 diff --git a/src/stub/src/arch/arm64/v8/macros.S b/src/stub/src/arch/arm64/v8/macros.S index 98ecfebe..76a38465 100644 --- a/src/stub/src/arch/arm64/v8/macros.S +++ b/src/stub/src/arch/arm64/v8/macros.S @@ -31,6 +31,7 @@ .altmacro lr .req x30 +fp .req x29 // ARM64 (AARCH64) REQUIRES 16-BYTE ALIGNED STACK POINTER (SP) // Therefore PUSH of an odd number of registers, inserts an 8-byte hole. diff --git a/src/stub/src/arm64-darwin.macho-entry.S b/src/stub/src/arm64-darwin.macho-entry.S index e7f56148..f6e4a6f6 100644 --- a/src/stub/src/arm64-darwin.macho-entry.S +++ b/src/stub/src/arm64-darwin.macho-entry.S @@ -29,19 +29,6 @@ * */ -//#define SIMULATE_ON_DEBIAN_EABI4 1 -#undef SIMULATE_ON_DEBIAN_EABI4 - -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ - #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */ - #define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */ -#else /*}{ usual case */ - #define DARWIN_ARM_CACHEFLUSH 1 - #define ARMEL_DARWIN 1 -#endif /*}*/ - -#define lr x30 - #include "arch/arm64/v8/macros.S" sz_b_info= 12 @@ -116,9 +103,9 @@ end_decompress: .globl end_decompress /* IDENTSTR goes here */ section MACHMAINZ -#define lsrc w1 -#define ldst w3 -#define ldstx x3 +lsrc .req w1 +ldst .req w3 +ldstx .req x3 unfold: // lr= &L100 ldr ldst,[lr,#sz_unc] ldr lsrc,[lr,#sz_cpr] @@ -126,7 +113,7 @@ unfold: // lr= &L100 add src,lr,ldst,uxtw; add src,src,#GAP+NO_LAP // defend against prefetch and overlap mov w4,lsrc // loop count -#define t0 w9 +t0 .req w9 movup: // descending copy folded_loader to higher address ldr t0,[dst,#-4]!; sub w4,w4,#4 str t0,[src,#-4]!; cbnz w4,movup @@ -149,7 +136,4 @@ L100: GAP= 128 // > farthest prefetch; must match ../../p_mach.cpp NO_LAP= 64 // avoid overlap for folded loader; must match ../../p_mach.cpp -#undef ldstx -#undef ldst - /* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump index f43d5a6e..50741619 100644 --- a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump @@ -7,10 +7,15 @@ Idx Name Size VMA LMA File off Algn 2 NRV2E 00000128 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, READONLY 3 NRV2D 0000011c 0000000000000000 0000000000000000 000001ac 2**0 CONTENTS, READONLY 4 NRV2B 000000f0 0000000000000000 0000000000000000 000002c8 2**0 CONTENTS, READONLY - 5 NRV_TAIL 000004b4 0000000000000000 0000000000000000 000003b8 2**0 CONTENTS, READONLY - 6 MACHMAINY 00000000 0000000000000000 0000000000000000 0000086c 2**0 CONTENTS, READONLY - 7 MACHMAINZ 00000058 0000000000000000 0000000000000000 0000086c 2**0 CONTENTS, READONLY + 5 NRV_TAIL 00000000 0000000000000000 0000000000000000 000003b8 2**0 CONTENTS, READONLY + 6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 000003b8 2**0 CONTENTS, RELOC, READONLY + 7 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000488 2**0 CONTENTS, READONLY + 8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db8 2**0 CONTENTS, READONLY + 9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY + 10 MACHMAINY 00000000 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY + 11 MACHMAINZ 00000058 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY SYMBOL TABLE: +0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d MACHMAINZ 0000000000000000 MACHMAINZ 0000000000000000 l d MACHMAINX 0000000000000000 MACHMAINX 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD @@ -18,14 +23,21 @@ SYMBOL TABLE: 0000000000000000 l d NRV2D 0000000000000000 NRV2D 0000000000000000 l d NRV2B 0000000000000000 NRV2B 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL +0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00 +0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20 +0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10 0000000000000000 l d MACHMAINY 0000000000000000 MACHMAINY 0000000000000000 g MACHMAINX 0000000000000000 _start 0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32 0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32 0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32 -0000000000000000 g NRV_TAIL 0000000000000000 LzmaDecode +0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode 0000000000000000 g MACHMAINY 0000000000000000 end_decompress RELOCATION RECORDS FOR [MACHMAINX]: OFFSET TYPE VALUE 0000000000000040 R_AARCH64_CALL26 MACHMAINZ+0x0000000000000050 + +RELOCATION RECORDS FOR [LZMA_ELF00]: +OFFSET TYPE VALUE +0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30 diff --git a/src/stub/tmp/arm64-linux.elf-entry.bin.dump b/src/stub/tmp/arm64-linux.elf-entry.bin.dump index 36fa7b31..678a0b3f 100644 --- a/src/stub/tmp/arm64-linux.elf-entry.bin.dump +++ b/src/stub/tmp/arm64-linux.elf-entry.bin.dump @@ -10,10 +10,15 @@ Idx Name Size VMA LMA File off Algn 5 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000011c 2**0 CONTENTS, READONLY 6 NRV2E 00000128 0000000000000000 0000000000000000 0000011c 2**2 CONTENTS, READONLY 7 NRV2D 0000011c 0000000000000000 0000000000000000 00000244 2**2 CONTENTS, READONLY - 8 NRV2B 000005a4 0000000000000000 0000000000000000 00000360 2**2 CONTENTS, READONLY - 9 ELFMAINY 0000003e 0000000000000000 0000000000000000 00000904 2**2 CONTENTS, READONLY - 10 ELFMAINZ 00000000 0000000000000000 0000000000000000 00000942 2**0 CONTENTS, READONLY + 8 NRV2B 000000f0 0000000000000000 0000000000000000 00000360 2**2 CONTENTS, READONLY + 9 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000450 2**2 CONTENTS, RELOC, READONLY + 10 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000520 2**0 CONTENTS, READONLY + 11 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000e50 2**2 CONTENTS, READONLY + 12 LZMA_DEC30 00000000 0000000000000000 0000000000000000 000012ec 2**0 CONTENTS, READONLY + 13 ELFMAINY 0000003e 0000000000000000 0000000000000000 000012ec 2**2 CONTENTS, READONLY + 14 ELFMAINZ 00000000 0000000000000000 0000000000000000 0000132a 2**0 CONTENTS, READONLY SYMBOL TABLE: +0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY 0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX 0000000000000000 l d LUNMP000 0000000000000000 LUNMP000 @@ -24,6 +29,9 @@ SYMBOL TABLE: 0000000000000000 l d NRV2E 0000000000000000 NRV2E 0000000000000000 l d NRV2D 0000000000000000 NRV2D 0000000000000000 l d NRV2B 0000000000000000 NRV2B +0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00 +0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20 +0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10 0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ 0000000000000000 *UND* 0000000000000000 LENF 0000000000000000 *UND* 0000000000000000 CPR0 @@ -33,7 +41,7 @@ SYMBOL TABLE: 0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32 0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32 0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32 -00000000000000f0 g NRV2B 0000000000000000 LzmaDecode +0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode 0000000000000000 g ELFMAINY 0000000000000000 end_decompress 0000000000000000 g ELFMAINZ 0000000000000000 cpr0 @@ -47,3 +55,7 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [ELFMAINXu]: OFFSET TYPE VALUE 0000000000000024 R_AARCH64_CONDBR19 ELFMAINY + +RELOCATION RECORDS FOR [LZMA_ELF00]: +OFFSET TYPE VALUE +0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30 diff --git a/src/stub/tmp/arm64-linux.shlib-init.bin.dump b/src/stub/tmp/arm64-linux.shlib-init.bin.dump index 8d849bb9..6a9f80ed 100644 --- a/src/stub/tmp/arm64-linux.shlib-init.bin.dump +++ b/src/stub/tmp/arm64-linux.shlib-init.bin.dump @@ -7,10 +7,15 @@ Idx Name Size VMA LMA File off Algn 2 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000064 2**0 CONTENTS, READONLY 3 NRV2E 00000128 0000000000000000 0000000000000000 00000064 2**2 CONTENTS, READONLY 4 NRV2D 0000011c 0000000000000000 0000000000000000 0000018c 2**2 CONTENTS, READONLY - 5 NRV2B 000005a4 0000000000000000 0000000000000000 000002a8 2**2 CONTENTS, READONLY - 6 ELFMAINY 0000003e 0000000000000000 0000000000000000 0000084c 2**2 CONTENTS, READONLY - 7 ELFMAINZ 000002ec 0000000000000000 0000000000000000 0000088c 2**2 CONTENTS, READONLY + 5 NRV2B 000000f0 0000000000000000 0000000000000000 000002a8 2**2 CONTENTS, READONLY + 6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000398 2**2 CONTENTS, RELOC, READONLY + 7 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000468 2**0 CONTENTS, READONLY + 8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000d98 2**2 CONTENTS, READONLY + 9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001234 2**0 CONTENTS, READONLY + 10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001234 2**2 CONTENTS, READONLY + 11 ELFMAINZ 000002ec 0000000000000000 0000000000000000 00001274 2**2 CONTENTS, READONLY SYMBOL TABLE: +0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ 0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD @@ -18,14 +23,21 @@ SYMBOL TABLE: 0000000000000000 l d NRV2E 0000000000000000 NRV2E 0000000000000000 l d NRV2D 0000000000000000 NRV2D 0000000000000000 l d NRV2B 0000000000000000 NRV2B +0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00 +0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20 +0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10 0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY 0000000000000000 g ELFMAINX 0000000000000000 _start 0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32 0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32 0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32 -00000000000000f0 g NRV2B 0000000000000000 LzmaDecode +0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode 0000000000000000 g ELFMAINY 0000000000000000 end_decompress RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE 0000000000000020 R_AARCH64_CALL26 ELFMAINZ + +RELOCATION RECORDS FOR [LZMA_ELF00]: +OFFSET TYPE VALUE +0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30