diff --git a/src/stub/arm64-linux.elf-entry.h b/src/stub/arm64-linux.elf-entry.h index c1865b95..43e106a6 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, 8110 (0x1fae) bytes + created from arm64-linux.elf-entry.bin, 8050 (0x1f72) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8110 -#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xaf20ceb5 -#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x1c7b1387 +#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8050 +#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xc594ba2a +#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x5df6790e -unsigned char stub_arm64_linux_elf_entry[8110] = { +unsigned char stub_arm64_linux_elf_entry[8050] = { /* 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, 88, 23, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 23, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 0, 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, /* 0x0050 */ 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82, 24, 0, 0, 20, @@ -333,214 +333,211 @@ unsigned char stub_arm64_linux_elf_entry[8110] = { /* 0x1260 */ 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105, /* 0x1270 */ 108,101,100, 46, 10, 0, 0, 0, 5, 0,128,210, 98, 0,128, 82, /* 0x1280 */ 200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214,244, 3, 30,170, -/* 0x1290 */ 0, 67, 95,184, 25, 51, 0,209, 57, 3, 0,203,149, 6, 64,185, -/* 0x12a0 */ 129, 2, 25,203, 4, 0,128, 18, 67, 4,128, 82, 33, 64, 53,139, -/* 0x12b0 */ 0, 0,128,210,241,255,255,151,224, 7,191,169,136, 10, 64,185, -/* 0x12c0 */ 129, 2, 25,203,228, 3, 27, 42, 67, 2,128, 82,250,111,191,169, -/* 0x12d0 */ 33, 0, 8,139,233,255,255,151, 23, 0, 25,203,232, 3, 24,170, -/* 0x12e0 */ 24, 3, 23,139,155, 2, 64,185,128, 66, 0,145,148, 2, 23,139, -/* 0x12f0 */ 157, 66, 53,139, 28, 3, 26,138,189, 3, 28,203,132, 50, 64, 57, -/* 0x1300 */ 245, 15, 31,248,227, 3, 0,145,226, 3, 20,170,129, 10, 64,185, -/* 0x1310 */ 0, 1, 63,214,232, 7, 65,248,128, 66, 64,248, 65, 3,192,218, -/* 0x1320 */ 33, 16,192,218, 33, 4, 0,145, 33,212,118,211, 0, 0, 1,170, -/* 0x1330 */ 128, 66, 0,248,162, 0,128, 82,225, 3, 29, 42,224, 3, 28,170, -/* 0x1340 */ 72, 28,128, 82, 1, 0, 0,212, 29, 67, 95,184, 60, 67, 59,139, -/* 0x1350 */ 156, 3, 23,139,128, 66, 0,145, 0, 0, 31,214, 47,112,114,111, -/* 0x1360 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 1,132, 64,248, -/* 0x1370 */ 225,255,255,181,192, 3, 95,214,194, 1,128, 82, 1,255,255, 16, -/* 0x1380 */ 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82, -/* 0x1390 */ 168, 11,128, 82, 1, 0, 0,212,248, 3, 30,170,224, 3, 0,145, -/* 0x13a0 */ 243,255,255,151,242,255,255,151,246, 3, 0,170, 1,136,192,168, -/* 0x13b0 */ 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53, 34, 0,160,210, -/* 0x13c0 */ 250, 3, 2,203, 96, 12,128, 18,161,252,255, 16, 2, 0,128, 82, -/* 0x13d0 */ 8, 7,128, 82, 1, 0, 0,212,251, 3, 0, 42, 31, 0, 0,113, -/* 0x13e0 */ 203,252,255, 84,170,255,255,151, 0, 0, 0, 0,102,105,108,101, -/* 0x13f0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105, -/* 0x1400 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99, -/* 0x1410 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, -/* 0x1420 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, -/* 0x1430 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1440 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1450 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, -/* 0x1460 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, -/* 0x1470 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, -/* 0x1480 */ 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x14a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x14b0 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x14c0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, -/* 0x14d0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, -/* 0x14e0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x14f0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1500 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1510 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 56, 32, -/* 0x1520 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x1530 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, -/* 0x1540 */ 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x1550 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1560 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1570 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1580 */ 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x1590 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, -/* 0x15a0 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, -/* 0x15b0 */ 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x15c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x15d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x15e0 */ 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x15f0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x1600 */ 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, -/* 0x1610 */ 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, -/* 0x1620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1630 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1640 */ 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1650 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x1660 */ 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, -/* 0x1670 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, -/* 0x1680 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1690 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x16a0 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 99, 32, 32, 50, 42, 42, -/* 0x16b0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x16c0 */ 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, -/* 0x16d0 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 56, -/* 0x16e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x16f0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1700 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 55, 99, 32, 32, -/* 0x1710 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1720 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x1730 */ 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, -/* 0x1740 */ 32, 32, 48, 48, 48, 48, 48, 57, 54, 56, 32, 32, 48, 48, 48, 48, -/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1770 */ 48, 48, 48, 48, 48, 52, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1780 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x1790 */ 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x17a0 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48, -/* 0x17b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x17c0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x17d0 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 57, 99, 32, 32, 50, 42, 42, -/* 0x17e0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x17f0 */ 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, -/* 0x1800 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1810 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1820 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1830 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 51, 56, 32, 32, -/* 0x1840 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1850 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 69, 76, 70, -/* 0x1860 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1870 */ 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1880 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 51, -/* 0x18a0 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x18b0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, -/* 0x18c0 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, -/* 0x18d0 */ 48, 48, 48, 49, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x18e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1900 */ 49, 50, 55, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, -/* 0x1910 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, -/* 0x1920 */ 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, -/* 0x1930 */ 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1940 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, -/* 0x1950 */ 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1970 */ 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1290 */ 0, 67, 95,184, 25, 51, 0,209, 57, 3, 0,203,129, 6, 64,185, +/* 0x12a0 */ 4, 0,128, 18, 67, 4,128, 82, 0, 0,128,210,243,255,255,151, +/* 0x12b0 */ 224, 7,191,169,250,111,191,169,251, 3, 0,170,226, 3, 0,170, +/* 0x12c0 */ 225, 15, 31,248,227, 3, 0,145,128, 66, 0,145,129, 10, 64,185, +/* 0x12d0 */ 132, 50, 64, 57, 0, 3, 63,214,232, 7, 65,248, 96, 67, 64,248, +/* 0x12e0 */ 65, 3,192,218, 33, 16,192,218, 33, 4, 0,145, 33,212,118,211, +/* 0x12f0 */ 0, 0, 1,170, 96, 67, 0,248,162, 0,128, 82,225, 27, 64,185, +/* 0x1300 */ 224, 3, 27,170, 72, 28,128, 82, 1, 0, 0,212,128, 2, 64,185, +/* 0x1310 */ 29, 67, 95,184, 60, 3, 0,139, 96, 67, 0,145, 0, 0, 31,214, +/* 0x1320 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 0, +/* 0x1330 */ 1,132, 64,248,225,255,255,181,192, 3, 95,214,194, 1,128, 82, +/* 0x1340 */ 1,255,255, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212, +/* 0x1350 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212,248, 3, 30,170, +/* 0x1360 */ 224, 3, 0,145,243,255,255,151,242,255,255,151,246, 3, 0,170, +/* 0x1370 */ 1,136,192,168, 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53, +/* 0x1380 */ 34, 0,160,210,250, 3, 2,203, 96, 12,128, 18,161,252,255, 16, +/* 0x1390 */ 2, 0,128, 82, 8, 7,128, 82, 1, 0, 0,212,251, 3, 0, 42, +/* 0x13a0 */ 31, 0, 0,113,203,252,255, 84,185,255,255,151, 0, 0, 0, 0, +/* 0x13b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, +/* 0x13c0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, +/* 0x13d0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, +/* 0x13e0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, +/* 0x13f0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x1400 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, +/* 0x1410 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, +/* 0x1420 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, +/* 0x1430 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, +/* 0x1440 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, +/* 0x1450 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1460 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1470 */ 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, +/* 0x1480 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1490 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, +/* 0x14a0 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x14b0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x14c0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x14d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x14e0 */ 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x14f0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x1500 */ 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, +/* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1530 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1540 */ 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1550 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1560 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, +/* 0x1570 */ 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, +/* 0x1580 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1590 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x15a0 */ 32, 48, 48, 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, +/* 0x15b0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x15c0 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, +/* 0x15d0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, +/* 0x15e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15f0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1600 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, +/* 0x1610 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1620 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, +/* 0x1630 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, +/* 0x1640 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1650 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1660 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 99, 32, +/* 0x1670 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1680 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, +/* 0x1690 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x16a0 */ 48, 48, 98, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16b0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, +/* 0x16d0 */ 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x16e0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x16f0 */ 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1700 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 54, 56, 32, 32, +/* 0x1710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1720 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1730 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 51, 52, 32, 32, 50, 42, +/* 0x1740 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1750 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, +/* 0x1760 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, +/* 0x1770 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1780 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1790 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 57, 99, 32, +/* 0x17a0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x17b0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, +/* 0x17c0 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x17d0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, +/* 0x1800 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1810 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, +/* 0x1820 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, +/* 0x1830 */ 48, 48, 48, 48, 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1860 */ 48, 49, 50, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1870 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x1880 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, +/* 0x1890 */ 32, 32, 48, 48, 48, 48, 48, 49, 51, 56, 32, 32, 48, 48, 48, 48, +/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x18c0 */ 48, 48, 48, 48, 49, 50, 55, 56, 32, 32, 50, 42, 42, 50, 32, 32, +/* 0x18d0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x18e0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, +/* 0x18f0 */ 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1910 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, +/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, +/* 0x1930 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1950 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, +/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, +/* 0x1970 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1980 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, -/* 0x1990 */ 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x1990 */ 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19c0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x19d0 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19e0 */ 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, +/* 0x19c0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x19d0 */ 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19e0 */ 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, /* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x1a00 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, +/* 0x1a00 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, /* 0x1a10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x1a20 */ 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a20 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1a40 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, -/* 0x1a60 */ 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a70 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, -/* 0x1a80 */ 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a90 */ 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x1ab0 */ 100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ae0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, -/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1b00 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1b20 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1b40 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1b60 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1b80 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1ba0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1bc0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, -/* 0x1be0 */ 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x1c00 */ 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c10 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, -/* 0x1c20 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c30 */ 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1c50 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, -/* 0x1c70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c80 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, -/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, -/* 0x1ca0 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109, -/* 0x1cb0 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1cc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1cd0 */ 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ce0 */ 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, -/* 0x1cf0 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, -/* 0x1d00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d10 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, -/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, -/* 0x1d30 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109, -/* 0x1d40 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1d60 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, -/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122, -/* 0x1d80 */ 109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1da0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, -/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95, -/* 0x1dc0 */ 100,101, 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, -/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, -/* 0x1de0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, -/* 0x1df0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, -/* 0x1e00 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x1e10 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x1e20 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x1e30 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x1e40 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e60 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, -/* 0x1e70 */ 32, 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, -/* 0x1e90 */ 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, -/* 0x1ea0 */ 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1eb0 */ 48, 48, 48, 49, 50, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x1ec0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x1ed0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, -/* 0x1ee0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x1ef0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1f00 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f10 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, -/* 0x1f20 */ 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, -/* 0x1f30 */ 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x1f40 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, -/* 0x1f50 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, -/* 0x1f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, -/* 0x1f70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, -/* 0x1f80 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f90 */ 49, 55, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, -/* 0x1fa0 */ 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x1a40 */ 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1a70 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, +/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, +/* 0x1a90 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1aa0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, +/* 0x1ab0 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ac0 */ 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1ae0 */ 100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, +/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1b00 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1b20 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, +/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1b40 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1b60 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, +/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1b80 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1ba0 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, +/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, +/* 0x1bc0 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, +/* 0x1be0 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bf0 */ 48, 48, 48, 48, 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, +/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, +/* 0x1c10 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, +/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115, +/* 0x1c30 */ 116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1c50 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c60 */ 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, 50,101, 95,100, +/* 0x1c70 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, +/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1c90 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, +/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, +/* 0x1cb0 */ 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1cc0 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cd0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, +/* 0x1ce0 */ 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cf0 */ 48, 48,102, 48, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100, +/* 0x1d00 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1d20 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1d30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, +/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, +/* 0x1d60 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, +/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d80 */ 101,110,100, 95,100,101, 99,111,109,112,114,101,115,115, 10, 48, +/* 0x1d90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1da0 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, +/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, +/* 0x1dc0 */ 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, +/* 0x1dd0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, +/* 0x1de0 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x1df0 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x1e00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x1e10 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e20 */ 48, 48, 48, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, +/* 0x1e30 */ 66, 83, 51, 50, 32, 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, +/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, +/* 0x1e50 */ 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, +/* 0x1e60 */ 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, +/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48,101, 52, 10, 10, 82, 69, 76, 79, +/* 0x1e80 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, +/* 0x1e90 */ 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, +/* 0x1ea0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1eb0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1ec0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x1ed0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, +/* 0x1ee0 */ 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, +/* 0x1ef0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, +/* 0x1f00 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x1f10 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, +/* 0x1f20 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, +/* 0x1f30 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1f40 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f50 */ 48, 48, 48, 48, 49, 51, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, +/* 0x1f60 */ 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, +/* 0x1f70 */ 79, 10 }; diff --git a/src/stub/arm64-linux.elf-fold.h b/src/stub/arm64-linux.elf-fold.h index ab6ef797..7cf2824b 100644 --- a/src/stub/arm64-linux.elf-fold.h +++ b/src/stub/arm64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm64-linux.elf-fold.h - created from arm64-linux.elf-fold.bin, 2672 (0xa70) bytes + created from arm64-linux.elf-fold.bin, 2692 (0xa84) bytes This file is part of the UPX executable compressor. @@ -31,20 +31,20 @@ */ -#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2672 -#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x3b16a767 -#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x456496b0 +#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2692 +#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x31d6ad75 +#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x6fb35e62 -unsigned char stub_arm64_linux_elf_fold[2672] = { +unsigned char stub_arm64_linux_elf_fold[2692] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 112, 10, 0, 0, 0, 0, 0, 0,112, 10, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 132, 10, 0, 0, 0, 0, 0, 0,132, 10, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 132, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146, @@ -56,151 +56,153 @@ unsigned char stub_arm64_linux_elf_fold[2672] = { /* 0x0110 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248, /* 0x0120 */ 194,255,255,181, 4, 32, 0,209, 31,132, 0,248,231, 3, 0,170, /* 0x0130 */ 246, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181, -/* 0x0140 */ 247, 3, 0,170,225, 3, 6,170,129, 0, 0,249, 98, 4, 0, 24, -/* 0x0150 */ 34, 68, 0,184,226,255,129, 82, 32, 4, 0, 16, 88, 0, 0,148, +/* 0x0140 */ 247, 3, 0,170,225, 3, 6,170,129, 0, 0,249, 2, 5, 0, 24, +/* 0x0150 */ 34, 68, 0,184,226,255,129, 82,192, 4, 0, 16, 93, 0, 0,148, /* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170, -/* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170, +/* 0x0170 */ 230, 3, 25,170,255, 3, 40,209, 69, 4, 0, 16,228, 3, 24,170, /* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170, -/* 0x0190 */ 222, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, -/* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210, -/* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148, -/* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248, -/* 0x01d0 */ 232, 26,128, 82, 64, 0, 31,214, 32, 32, 32, 61, 47,112,114,111, -/* 0x01e0 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 99, 28, 0, 18, -/* 0x01f0 */ 127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180, -/* 0x0200 */ 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113, -/* 0x0210 */ 129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184, -/* 0x0220 */ 1,255,255,181,192, 3, 95,214, 0, 0, 32,212,192, 3, 95,214, -/* 0x0230 */ 168, 11,128, 82, 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212, -/* 0x0240 */ 192, 3, 95,214, 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214, -/* 0x0250 */ 40, 7,128, 82, 1, 0, 0,212,192, 3, 95,214,168, 21,128, 82, -/* 0x0260 */ 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, 1, 0, 0,212, -/* 0x0270 */ 192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214, -/* 0x0280 */ 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214,230,241,255, 24, -/* 0x0290 */ 5, 0,128,210, 4, 0,128,146, 99, 0, 6, 42,200, 27,128, 82, -/* 0x02a0 */ 1, 0, 0,212,192, 3, 95,214, 2, 0,128,210,225, 3, 0,170, -/* 0x02b0 */ 96, 12,128, 18,104, 4,128, 82, 4, 0, 0, 20,200, 9,128, 82, -/* 0x02c0 */ 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170,226, 3, 1,170, -/* 0x02d0 */ 225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212,192, 3, 95,214, -/* 0x02e0 */ 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82, 1, 0, 0,212, -/* 0x02f0 */ 192, 3, 95,214,253,123,191,169, 3, 0,128,210,253, 3, 0,145, -/* 0x0300 */ 5, 0, 64,249, 4, 4, 64,249,191, 0, 2,235, 98, 0, 0, 84, -/* 0x0310 */ 224, 15,128, 82,199,255,255,151,127, 0, 2,235,160, 0, 0, 84, -/* 0x0320 */ 133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145,251,255,255, 23, -/* 0x0330 */ 1, 4, 64,249, 33, 0, 3,139, 1, 4, 0,249, 1, 0, 64,249, -/* 0x0340 */ 35, 0, 3,203, 3, 0, 0,249,253,123,193,168,192, 3, 95,214, -/* 0x0350 */ 253,123,187,169,253, 3, 0,145,243, 83, 1,169,245, 91, 2,169, -/* 0x0360 */ 244, 3, 0,170,243, 3, 1,170,246, 3, 2,170,245, 3, 3,170, -/* 0x0370 */ 96, 2, 64,249,160, 8, 0,180,224, 3, 20,170,130, 1,128,210, -/* 0x0380 */ 161, 3, 1,145,220,255,255,151,160, 67, 64,185,162, 71, 64,185, -/* 0x0390 */ 0, 1, 0, 53,160, 10,138, 82, 0, 43,164,114, 95, 0, 0,107, -/* 0x03a0 */ 225, 0, 0, 84,128, 2, 64,249, 0, 7, 0,180, 4, 0, 0, 20, -/* 0x03b0 */ 98, 0, 0, 52, 95, 0, 0,107,105, 0, 0, 84,224, 15,128, 82, -/* 0x03c0 */ 156,255,255,151, 99, 2, 64,249,225, 3, 0, 42, 63, 0, 3,235, -/* 0x03d0 */ 104,255,255, 84, 95, 0, 0,107, 2, 4, 0, 84,161, 31, 0,249, -/* 0x03e0 */ 225, 3, 2, 42,128, 6, 64,249,163,227, 0,145, 98, 6, 64,249, -/* 0x03f0 */ 164, 35, 65, 57,192, 2, 63,214, 32,254,255, 53,161, 31, 64,249, -/* 0x0400 */ 160, 67, 64,185, 63, 0, 0,235,161,253,255, 84,163, 39, 65, 57, -/* 0x0410 */ 85, 1, 0,180, 35, 1, 0, 52, 63, 0, 8,241,136, 0, 0, 84, -/* 0x0420 */ 96, 2, 64,249, 31, 0, 1,235,129, 0, 0, 84, 96, 6, 64,249, -/* 0x0430 */ 162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185,129, 6, 64,249, -/* 0x0440 */ 128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249, 0, 0, 3,203, -/* 0x0450 */ 128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,224, 3, 20,170, -/* 0x0460 */ 226, 3, 2, 42,164,255,255,151,163, 67, 64,185, 97, 6, 64,249, -/* 0x0470 */ 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249, 0, 0, 3,203, -/* 0x0480 */ 96, 2, 0,249,187,255,255, 23,243, 83, 65,169,245, 91, 66,169, -/* 0x0490 */ 253,123,197,168,192, 3, 95,214, 0, 2, 0,180,224, 1, 0, 55, -/* 0x04a0 */ 228, 3, 1, 42, 3, 0, 64,249,127, 0, 4,235,129, 0, 0, 84, -/* 0x04b0 */ 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20,127, 4, 0,241, -/* 0x04c0 */ 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23, 99, 0, 0,180, -/* 0x04d0 */ 0, 64, 0,145,244,255,255, 23,192, 3, 95,214,253,123,181,169, -/* 0x04e0 */ 253, 3, 0,145,234, 47, 7,109,202, 0,103,158, 6, 16, 64,249, -/* 0x04f0 */ 238, 63, 9,109,247, 99, 3,169,236, 55, 8,109,251,115, 5,169, -/* 0x0500 */ 232, 39, 6,109,247, 3, 0,170, 28, 0, 6,139, 64, 1,102,158, -/* 0x0510 */ 248, 3, 3,170,245, 91, 2,169,249,107, 4,169,243, 83, 1,169, -/* 0x0520 */ 77, 0, 39, 30,246, 3, 1,170,142, 0,103,158,250, 3, 7,170, -/* 0x0530 */ 175, 0,103,158, 2, 0, 64,249,161, 1, 0,180, 65, 16, 64,249, -/* 0x0540 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 65, 0, 1,139, -/* 0x0550 */ 32, 36, 64,249, 33, 20, 64,249, 64, 0, 0,203, 2, 0,128, 82, -/* 0x0560 */ 79,255,255,151,243, 3, 0,170, 43, 0, 0, 20,224, 34, 64,121, -/* 0x0570 */ 3, 2,128, 82,231,114, 64,121,228, 3, 28,170, 31, 12, 0,113, -/* 0x0580 */ 19, 0,128,146, 99, 16,159, 26,224, 3, 2,170, 99,136, 0, 17, -/* 0x0590 */ 231, 4, 0, 81,255, 4, 0, 49,160, 1, 0, 84,133, 0, 64,185, -/* 0x05a0 */ 191, 4, 0,113, 1, 1, 0, 84,136, 8, 64,249,133, 20, 64,249, -/* 0x05b0 */ 127, 2, 8,235, 5, 1, 5,139,115,146,136,154, 63, 0, 5,235, -/* 0x05c0 */ 33, 32,133,154,132,224, 0,145,242,255,255, 23,228, 3, 58,170, -/* 0x05d0 */ 115, 2, 26,138,129, 0, 1,139, 33, 0, 19,203, 33, 0, 26,138, -/* 0x05e0 */ 163, 0, 32, 55, 83, 0, 0,181,162, 0, 0,181, 0, 0,128,210, -/* 0x05f0 */ 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82, -/* 0x0600 */ 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, 36,255,255,151, -/* 0x0610 */ 19, 0, 19,203,224, 3, 58,170,232, 3, 39, 30, 12, 0,103,158, -/* 0x0620 */ 1, 1, 38, 30,224,114, 64,121, 63, 0, 0,107,106, 20, 0, 84, -/* 0x0630 */ 128, 3, 64,185, 54, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84, -/* 0x0640 */ 130, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, 98, 2, 2,139, -/* 0x0650 */ 146,255,255,151,148, 0, 0, 20, 31, 4, 0,113, 65, 18, 0, 84, -/* 0x0660 */ 86, 2, 0,180,128, 7, 64,249, 0, 2, 0,181,226, 18, 64,249, -/* 0x0670 */ 224, 3, 24,170,131, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139, -/* 0x0680 */ 66, 0, 3,139,133,255,255,151,226,114, 64,121,224, 3, 24,170, -/* 0x0690 */ 161, 0,128, 82,129,255,255,151,226,110, 64,121,224, 3, 24,170, -/* 0x06a0 */ 129, 0,128, 82,125,255,255,151,155, 7, 64,185, 0, 72,140, 82, -/* 0x06b0 */ 32,106,174,114,149, 11, 64,249,123, 11, 30, 83,223, 2, 31,235, -/* 0x06c0 */ 27, 36,219, 26,117, 2, 21,139, 96, 11, 0, 18,148, 19, 64,249, -/* 0x06d0 */ 135, 7, 64,249, 67, 6,128, 82, 9, 0, 39, 30,128, 23, 64,249, -/* 0x06e0 */ 180, 83, 0,249,160, 2, 0,139,181, 87, 0,249, 11, 0,103,158, -/* 0x06f0 */ 128, 1,102,158, 36, 1, 38, 30,165, 2, 0,138, 64, 0,128, 82, -/* 0x0700 */ 2, 16,159, 26,223, 2, 31,235, 66, 0, 4, 42, 64, 2,128, 82, -/* 0x0710 */ 164, 1, 38, 30,181, 2, 5,203, 3, 0,131, 26,180, 0, 20,139, -/* 0x0720 */ 223, 2, 31,235,224, 3, 21,170,225, 3, 20,170,229, 0, 5,203, -/* 0x0730 */ 132, 0,159, 90,218,254,255,151,191, 2, 0,235, 96, 0, 0, 84, -/* 0x0740 */ 224, 15,128, 82,187,254,255,151,214, 0, 0,180,194, 1,102,158, -/* 0x0750 */ 224, 3, 22,170,227, 1,102,158,161,131, 2,145,253,254,255,151, -/* 0x0760 */ 128, 1,102,158,249, 3, 20,203, 57, 3, 0,138,123, 0, 8, 55, -/* 0x0770 */ 86, 1, 0,181, 61, 0, 0, 20,217,255,255,180,161, 2, 20,139, -/* 0x0780 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 25,235, -/* 0x0790 */ 161,255,255, 84,247,255,255, 23,128, 3, 64,249,225, 3, 0,178, -/* 0x07a0 */ 0,128, 64,146, 31, 0, 1,235, 97, 5, 0, 84,128, 23, 64,249, -/* 0x07b0 */ 130, 19, 64,249,129, 11, 64,249, 31, 0, 2,235, 97, 1, 0, 84, -/* 0x07c0 */ 123, 14, 0,145,123, 3, 0,139,123, 3, 1,139,123,247,126,146, -/* 0x07d0 */ 224, 3, 27, 75, 0, 0, 58, 10, 31, 28, 0,113,105, 0, 0, 84, -/* 0x07e0 */ 0, 0,128, 82, 13, 0, 0, 20,128, 7, 64,249,224, 6, 0,180, -/* 0x07f0 */ 0, 0,128,210, 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82, -/* 0x0800 */ 4, 0,128, 18,229, 3, 0,170,165,254,255,151,251, 3, 0,170, -/* 0x0810 */ 32, 2, 0,180, 32, 0,128, 82, 33, 0,128, 82, 1,128,186,114, -/* 0x0820 */ 97, 3, 0,185, 1,120,128, 82,225,203,186,114, 97, 7, 0,185, -/* 0x0830 */ 160, 0, 0, 52,224, 3, 27,170, 1, 1,128,210,162, 0,128, 82, -/* 0x0840 */ 144,254,255,151, 0,251,127,146, 1, 0,128, 82,226, 3, 27,170, -/* 0x0850 */ 18,255,255,151, 34, 1, 38, 30,224, 3, 21,170,225, 3, 20,170, -/* 0x0860 */ 136,254,255,151,224,246,255, 53, 96, 1,102,158, 52, 3, 20,139, -/* 0x0870 */ 181, 2, 20,139,191, 2, 0,235, 98, 1, 0, 84, 97, 1,102,158, -/* 0x0880 */ 224, 3, 21,170, 34, 1, 38, 30, 67, 6,128, 82, 4, 0,128, 18, -/* 0x0890 */ 5, 0,128,210, 33, 0, 21,203,129,254,255,151,191, 2, 0,235, -/* 0x08a0 */ 1,245,255, 84, 0, 1, 38, 30,156,227, 0,145, 0, 4, 0, 17, -/* 0x08b0 */ 8, 0, 39, 30, 91,255,255, 23, 64, 1,102,158,192, 0, 0,180, -/* 0x08c0 */ 19, 0, 0,249, 4, 0, 0, 20, 59, 0, 19,139,123, 35, 0,145, -/* 0x08d0 */ 210,255,255, 23,224, 14, 64,249,232, 39, 70,109,245, 91, 66,169, -/* 0x08e0 */ 234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109,243, 83, 65,169, -/* 0x08f0 */ 238, 63, 73,109,247, 99, 67,169,249,107, 68,169,251,115, 69,169, -/* 0x0900 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145, -/* 0x0910 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169, -/* 0x0920 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185, -/* 0x0930 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145, -/* 0x0940 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145, -/* 0x0950 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249, -/* 0x0960 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249, -/* 0x0970 */ 164, 51, 0,249,119,254,255,151,164, 51, 64,249,161, 3, 2,145, -/* 0x0980 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, -/* 0x0990 */ 231, 3, 25,170,224, 3, 19,170,209,254,255,151,245, 3, 0,170, -/* 0x09a0 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,187,254,255,151, -/* 0x09b0 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, -/* 0x09c0 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, -/* 0x09d0 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 58,254,255,151, -/* 0x09e0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 17,254,255,151, -/* 0x09f0 */ 225, 3, 19,170, 2,128,128,210, 16,254,255,151, 31, 0, 16,241, -/* 0x0a00 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, -/* 0x0a10 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, -/* 0x0a20 */ 224, 3, 19,170,191, 55, 0,249,173,254,255,151,245, 3, 0,170, -/* 0x0a30 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,151,254,255,151, -/* 0x0a40 */ 224, 3, 24, 42, 3,254,255,151,148,226, 0,145,214, 6, 0, 17, -/* 0x0a50 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, -/* 0x0a60 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 +/* 0x0190 */ 227, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 33, 71, 64,249, +/* 0x01a0 */ 34, 43, 64,249,224, 3, 25,170, 33, 0, 2,203, 55, 0, 0,148, +/* 0x01b0 */ 5, 0,128,210,228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, +/* 0x01c0 */ 1, 0,130,210, 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, +/* 0x01d0 */ 37, 0, 0,148,254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42, +/* 0x01e0 */ 226,130, 95,248,232, 26,128, 82, 64, 0, 31,214, 32, 32, 32, 61, +/* 0x01f0 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 0, +/* 0x0200 */ 99, 28, 0, 18,127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, +/* 0x0210 */ 65, 1, 0,180, 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83, +/* 0x0220 */ 127, 20, 0,113,129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, +/* 0x0230 */ 2,120, 33,184, 1,255,255,181,192, 3, 95,214, 0, 0, 32,212, +/* 0x0240 */ 192, 3, 95,214,168, 11,128, 82, 1, 0, 0,212,232, 7,128, 82, +/* 0x0250 */ 1, 0, 0,212,192, 3, 95,214, 8, 8,128, 82, 1, 0, 0,212, +/* 0x0260 */ 192, 3, 95,214, 40, 7,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x0270 */ 168, 21,128, 82, 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, +/* 0x0280 */ 1, 0, 0,212,192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212, +/* 0x0290 */ 192, 3, 95,214, 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x02a0 */ 70,241,255, 24, 5, 0,128,210, 4, 0,128,146, 99, 0, 6, 42, +/* 0x02b0 */ 200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214, 2, 0,128,210, +/* 0x02c0 */ 225, 3, 0,170, 96, 12,128, 18,104, 4,128, 82, 4, 0, 0, 20, +/* 0x02d0 */ 200, 9,128, 82, 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170, +/* 0x02e0 */ 226, 3, 1,170,225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212, +/* 0x02f0 */ 192, 3, 95,214, 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82, +/* 0x0300 */ 1, 0, 0,212,192, 3, 95,214,253,123,191,169, 3, 0,128,210, +/* 0x0310 */ 253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,191, 0, 2,235, +/* 0x0320 */ 98, 0, 0, 84,224, 15,128, 82,199,255,255,151,127, 0, 2,235, +/* 0x0330 */ 160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145, +/* 0x0340 */ 251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139, 1, 4, 0,249, +/* 0x0350 */ 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,253,123,193,168, +/* 0x0360 */ 192, 3, 95,214,253,123,187,169,253, 3, 0,145,243, 83, 1,169, +/* 0x0370 */ 245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,246, 3, 2,170, +/* 0x0380 */ 245, 3, 3,170, 96, 2, 64,249,160, 8, 0,180,224, 3, 20,170, +/* 0x0390 */ 130, 1,128,210,161, 3, 1,145,220,255,255,151,160, 67, 64,185, +/* 0x03a0 */ 162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82, 0, 43,164,114, +/* 0x03b0 */ 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249, 0, 7, 0,180, +/* 0x03c0 */ 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,105, 0, 0, 84, +/* 0x03d0 */ 224, 15,128, 82,156,255,255,151, 99, 2, 64,249,225, 3, 0, 42, +/* 0x03e0 */ 63, 0, 3,235,104,255,255, 84, 95, 0, 0,107, 2, 4, 0, 84, +/* 0x03f0 */ 161, 31, 0,249,225, 3, 2, 42,128, 6, 64,249,163,227, 0,145, +/* 0x0400 */ 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214, 32,254,255, 53, +/* 0x0410 */ 161, 31, 64,249,160, 67, 64,185, 63, 0, 0,235,161,253,255, 84, +/* 0x0420 */ 163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52, 63, 0, 8,241, +/* 0x0430 */ 136, 0, 0, 84, 96, 2, 64,249, 31, 0, 1,235,129, 0, 0, 84, +/* 0x0440 */ 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185, +/* 0x0450 */ 129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249, +/* 0x0460 */ 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249, +/* 0x0470 */ 224, 3, 20,170,226, 3, 2, 42,164,255,255,151,163, 67, 64,185, +/* 0x0480 */ 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249, +/* 0x0490 */ 0, 0, 3,203, 96, 2, 0,249,187,255,255, 23,243, 83, 65,169, +/* 0x04a0 */ 245, 91, 66,169,253,123,197,168,192, 3, 95,214, 0, 2, 0,180, +/* 0x04b0 */ 224, 1, 0, 55,228, 3, 1, 42, 3, 0, 64,249,127, 0, 4,235, +/* 0x04c0 */ 129, 0, 0, 84, 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20, +/* 0x04d0 */ 127, 4, 0,241, 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23, +/* 0x04e0 */ 99, 0, 0,180, 0, 64, 0,145,244,255,255, 23,192, 3, 95,214, +/* 0x04f0 */ 253,123,181,169,253, 3, 0,145,234, 47, 7,109,202, 0,103,158, +/* 0x0500 */ 6, 16, 64,249,238, 63, 9,109,247, 99, 3,169,236, 55, 8,109, +/* 0x0510 */ 251,115, 5,169,232, 39, 6,109,247, 3, 0,170, 28, 0, 6,139, +/* 0x0520 */ 64, 1,102,158,248, 3, 3,170,245, 91, 2,169,249,107, 4,169, +/* 0x0530 */ 243, 83, 1,169, 77, 0, 39, 30,246, 3, 1,170,142, 0,103,158, +/* 0x0540 */ 250, 3, 7,170,175, 0,103,158, 2, 0, 64,249,161, 1, 0,180, +/* 0x0550 */ 65, 16, 64,249, 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, +/* 0x0560 */ 65, 0, 1,139, 32, 36, 64,249, 33, 20, 64,249, 64, 0, 0,203, +/* 0x0570 */ 2, 0,128, 82, 79,255,255,151,243, 3, 0,170, 43, 0, 0, 20, +/* 0x0580 */ 224, 34, 64,121, 3, 2,128, 82,231,114, 64,121,228, 3, 28,170, +/* 0x0590 */ 31, 12, 0,113, 19, 0,128,146, 99, 16,159, 26,224, 3, 2,170, +/* 0x05a0 */ 99,136, 0, 17,231, 4, 0, 81,255, 4, 0, 49,160, 1, 0, 84, +/* 0x05b0 */ 133, 0, 64,185,191, 4, 0,113, 1, 1, 0, 84,136, 8, 64,249, +/* 0x05c0 */ 133, 20, 64,249,127, 2, 8,235, 5, 1, 5,139,115,146,136,154, +/* 0x05d0 */ 63, 0, 5,235, 33, 32,133,154,132,224, 0,145,242,255,255, 23, +/* 0x05e0 */ 228, 3, 58,170,115, 2, 26,138,129, 0, 1,139, 33, 0, 19,203, +/* 0x05f0 */ 33, 0, 26,138,163, 0, 32, 55, 83, 0, 0,181,162, 0, 0,181, +/* 0x0600 */ 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, +/* 0x0610 */ 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, +/* 0x0620 */ 36,255,255,151, 19, 0, 19,203,224, 3, 58,170,232, 3, 39, 30, +/* 0x0630 */ 12, 0,103,158, 1, 1, 38, 30,224,114, 64,121, 63, 0, 0,107, +/* 0x0640 */ 106, 20, 0, 84,128, 3, 64,185, 54, 1, 0,180, 31, 24, 0,113, +/* 0x0650 */ 225, 0, 0, 84,130, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, +/* 0x0660 */ 98, 2, 2,139,146,255,255,151,148, 0, 0, 20, 31, 4, 0,113, +/* 0x0670 */ 65, 18, 0, 84, 86, 2, 0,180,128, 7, 64,249, 0, 2, 0,181, +/* 0x0680 */ 226, 18, 64,249,224, 3, 24,170,131, 11, 64,249, 97, 0,128, 82, +/* 0x0690 */ 98, 2, 2,139, 66, 0, 3,139,133,255,255,151,226,114, 64,121, +/* 0x06a0 */ 224, 3, 24,170,161, 0,128, 82,129,255,255,151,226,110, 64,121, +/* 0x06b0 */ 224, 3, 24,170,129, 0,128, 82,125,255,255,151,155, 7, 64,185, +/* 0x06c0 */ 0, 72,140, 82, 32,106,174,114,149, 11, 64,249,123, 11, 30, 83, +/* 0x06d0 */ 223, 2, 31,235, 27, 36,219, 26,117, 2, 21,139, 96, 11, 0, 18, +/* 0x06e0 */ 148, 19, 64,249,135, 7, 64,249, 67, 6,128, 82, 9, 0, 39, 30, +/* 0x06f0 */ 128, 23, 64,249,180, 83, 0,249,160, 2, 0,139,181, 87, 0,249, +/* 0x0700 */ 11, 0,103,158,128, 1,102,158, 36, 1, 38, 30,165, 2, 0,138, +/* 0x0710 */ 64, 0,128, 82, 2, 16,159, 26,223, 2, 31,235, 66, 0, 4, 42, +/* 0x0720 */ 64, 2,128, 82,164, 1, 38, 30,181, 2, 5,203, 3, 0,131, 26, +/* 0x0730 */ 180, 0, 20,139,223, 2, 31,235,224, 3, 21,170,225, 3, 20,170, +/* 0x0740 */ 229, 0, 5,203,132, 0,159, 90,218,254,255,151,191, 2, 0,235, +/* 0x0750 */ 96, 0, 0, 84,224, 15,128, 82,187,254,255,151,214, 0, 0,180, +/* 0x0760 */ 194, 1,102,158,224, 3, 22,170,227, 1,102,158,161,131, 2,145, +/* 0x0770 */ 253,254,255,151,128, 1,102,158,249, 3, 20,203, 57, 3, 0,138, +/* 0x0780 */ 123, 0, 8, 55, 86, 1, 0,181, 61, 0, 0, 20,217,255,255,180, +/* 0x0790 */ 161, 2, 20,139, 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, +/* 0x07a0 */ 31, 0, 25,235,161,255,255, 84,247,255,255, 23,128, 3, 64,249, +/* 0x07b0 */ 225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, 97, 5, 0, 84, +/* 0x07c0 */ 128, 23, 64,249,130, 19, 64,249,129, 11, 64,249, 31, 0, 2,235, +/* 0x07d0 */ 97, 1, 0, 84,123, 14, 0,145,123, 3, 0,139,123, 3, 1,139, +/* 0x07e0 */ 123,247,126,146,224, 3, 27, 75, 0, 0, 58, 10, 31, 28, 0,113, +/* 0x07f0 */ 105, 0, 0, 84, 0, 0,128, 82, 13, 0, 0, 20,128, 7, 64,249, +/* 0x0800 */ 224, 6, 0,180, 0, 0,128,210, 1, 0,130,210, 98, 0,128, 82, +/* 0x0810 */ 67, 4,128, 82, 4, 0,128, 18,229, 3, 0,170,165,254,255,151, +/* 0x0820 */ 251, 3, 0,170, 32, 2, 0,180, 32, 0,128, 82, 33, 0,128, 82, +/* 0x0830 */ 1,128,186,114, 97, 3, 0,185, 1,120,128, 82,225,203,186,114, +/* 0x0840 */ 97, 7, 0,185,160, 0, 0, 52,224, 3, 27,170, 1, 1,128,210, +/* 0x0850 */ 162, 0,128, 82,144,254,255,151, 0,251,127,146, 1, 0,128, 82, +/* 0x0860 */ 226, 3, 27,170, 18,255,255,151, 34, 1, 38, 30,224, 3, 21,170, +/* 0x0870 */ 225, 3, 20,170,136,254,255,151,224,246,255, 53, 96, 1,102,158, +/* 0x0880 */ 52, 3, 20,139,181, 2, 20,139,191, 2, 0,235, 98, 1, 0, 84, +/* 0x0890 */ 97, 1,102,158,224, 3, 21,170, 34, 1, 38, 30, 67, 6,128, 82, +/* 0x08a0 */ 4, 0,128, 18, 5, 0,128,210, 33, 0, 21,203,129,254,255,151, +/* 0x08b0 */ 191, 2, 0,235, 1,245,255, 84, 0, 1, 38, 30,156,227, 0,145, +/* 0x08c0 */ 0, 4, 0, 17, 8, 0, 39, 30, 91,255,255, 23, 64, 1,102,158, +/* 0x08d0 */ 192, 0, 0,180, 19, 0, 0,249, 4, 0, 0, 20, 59, 0, 19,139, +/* 0x08e0 */ 123, 35, 0,145,210,255,255, 23,224, 14, 64,249,232, 39, 70,109, +/* 0x08f0 */ 245, 91, 66,169,234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109, +/* 0x0900 */ 243, 83, 65,169,238, 63, 73,109,247, 99, 67,169,249,107, 68,169, +/* 0x0910 */ 251,115, 69,169,253,123,203,168,192, 3, 95,214,253,123,182,169, +/* 0x0920 */ 253, 3, 0,145,247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185, +/* 0x0930 */ 243, 83, 1,169,162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, +/* 0x0940 */ 2, 0, 64,185,162, 59, 0,249,226, 3, 4,170,160, 79, 0,249, +/* 0x0950 */ 116, 2, 1,145,163, 75, 0,249, 3, 0,128,210,160, 71, 0,249, +/* 0x0960 */ 160, 67, 2,145,161, 67, 0,249,161,195, 1,145,245, 91, 2,169, +/* 0x0970 */ 249, 35, 0,249,249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82, +/* 0x0980 */ 166, 55, 0,249,164, 51, 0,249,119,254,255,151,164, 51, 64,249, +/* 0x0990 */ 161, 3, 2,145,165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170, +/* 0x09a0 */ 166,163, 1,145,231, 3, 25,170,224, 3, 19,170,209,254,255,151, +/* 0x09b0 */ 245, 3, 0,170, 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170, +/* 0x09c0 */ 187,254,255,151, 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84, +/* 0x09d0 */ 128, 2, 64,185, 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249, +/* 0x09e0 */ 160, 55, 64,249, 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, +/* 0x09f0 */ 58,254,255,151,248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, +/* 0x0a00 */ 17,254,255,151,225, 3, 19,170, 2,128,128,210, 16,254,255,151, +/* 0x0a10 */ 31, 0, 16,241, 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42, +/* 0x0a20 */ 227, 3, 1,170,228, 3, 1,170,229, 3, 1,170,166,163, 1,145, +/* 0x0a30 */ 231, 3, 25,170,224, 3, 19,170,191, 55, 0,249,173,254,255,151, +/* 0x0a40 */ 245, 3, 0,170,162, 55, 64,249,224, 3, 23,170,225, 0,128, 82, +/* 0x0a50 */ 151,254,255,151,224, 3, 24, 42, 3,254,255,151,148,226, 0,145, +/* 0x0a60 */ 214, 6, 0, 17,216,255,255, 23,224, 3, 21,170,249, 35, 64,249, +/* 0x0a70 */ 243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,253,123,202,168, +/* 0x0a80 */ 192, 3, 95,214 }; diff --git a/src/stub/src/arm64-linux.elf-entry.S b/src/stub/src/arm64-linux.elf-entry.S index 68ed4521..49d4cf7a 100644 --- a/src/stub/src/arm64-linux.elf-entry.S +++ b/src/stub/src/arm64-linux.elf-entry.S @@ -90,26 +90,26 @@ __NR_write = 0x40 // 64 #endif //} //lr .req x30 -wLENU .req w29 +wLENU .req w29 // un-folded fold_begin and upx_main xLENU .req x29 xADRU .req x28 -wfd .req w27 + +wfd .req w27 // file descriptor of /proc/self/exe xfd .req x27 -xPMASK .req x26 +xPMASK .req x26 // PAGE_MASK // The above 4 registers are passed on stack to unfolded code. -xelfa .req x25 -xfexp .req x24 +xelfa .req x25 // hi &Elf64_Ehdr +xfexp .req x24 // de-compressor // xPMASK, xelfa, xfexp still are used here. -wLENM .req w29 // overlaps wLENU - xLENM .req x29 - wLENX .req wLENM -xADRM .req x28 // overlaps xADRU - xADRX .req xADRM -wobinf .req w27 // overlaps wfd +wLENC .req w29 // compressed input OVERLAPS wLENU + xLENC .req x29 +xADRC .req x28 // OVERLAPS xADRU +xADRM .req x27 // conveneinence; OVERLAPS wfd, xfd +wLENM .req w23 + xLENM .req x23 -xrelo .req x23 xauxv .req x22 wszuf .req w21 xszuf .req x21 @@ -187,70 +187,49 @@ mmap: unfold: mov xFOLD,lr -// Reserve enough space to decompress the folded code onto xFOLD +// Reserve enough space to decompress the folded code of the stub ldr w0, [xfexp,#sz_pack2 - f_exp] add xelfa,xfexp,#sz_pack2 - f_exp sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub - ldr wszuf,[xFOLD,#sz_unc + LBINFO - LxFOLD] // sz_unc of fold - sub x1,xFOLD,xelfa // offset(FOLD) + ldr w1,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold mov w4,#-1 // fd mov w3,#MAP_PRIVATE|MAP_ANONYMOUS - add x1,x1,wszuf,uxtw // length needed mov x0,#0 // kernel chooses addr call mmapRW0 PUSH2(x0,x1) // ADRU, LENU - -// Duplicate the input data. - ldr w8,[xFOLD,#sz_cpr + LBINFO - LxFOLD] // sz_cpr of fold - sub x1,xFOLD,xelfa // offset(FOLD) - mov w4,wfd // from file - mov w3,#MAP_PRIVATE|MAP_FIXED PUSH2(xPMASK,xfd) - add x1,x1,x8 // + sz_cpr of fold; x1 <= .st_size - call mmapRW0 // IN: x0= ADRU; OUT: x0= ADRU - sub xrelo,x0,xelfa // relocation amount - mov x8,xfexp; add xfexp,xfexp,xrelo // use old f_exp; xfexp= new &f_exp - -// Decompress from old folded code, overwriting new copy of folded code - ldr wobinf,[xFOLD,# LOBINFO - LxFOLD] // O_BINFO - add src,xFOLD,#sz_b_info + LBINFO - LxFOLD // old folded code - add xFOLD,xFOLD,xrelo // dst for unfolding; use copied data - add xLENM,xFOLD,wszuf,uxtw // + sz_unc = last of unfolded - and xADRM,xfexp,xPMASK // base for PROT_EXEC - sub xLENM,xLENM,xADRM // length for PROT_EXEC + mov xADRM,x0 // convenience +// Decompress folded code + mov dst,x0 // ADRU + PUSH1(x1); mov ldst,sp // &slot on stack; lzma uses for EOF + add src, xFOLD,#sz_b_info + LBINFO - LxFOLD // folded code + ldr lsrc, [XFOLD,#sz_cpr + LBINFO - LxFOLD] + ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD] TRACE(#1) - -// The new f_exp has PROT_WRITE, so use the old f_exp to decompress - ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD] - PUSH1(xszuf) // lzma uses for EOF - mov ldst,sp // &slot on stack - mov dst,xFOLD // dst for unfolding - ldr lsrc,[xFOLD,#sz_cpr + LBINFO - LxFOLD] - callr x8 // decompress it - POP1(x8) + callr xfexp // decompress it + POP1(x8) // discard lzma EOF // Generate code to compute PAGE_MASK - ldr x0,[xFOLD,#1*4] // 2nd instr + ldr x0,[xADRM,#1*4] // 2nd instr rbit x1,xPMASK clz x1,x1 // # trailing 0's in xPMASK add x1,x1,#1 lsl x1,x1,#2*5 // past two register numbers orr x0,x0,x1 - str x0,[xFOLD,#1*4] // modify 2nd instr: "add x1,x0,#1+ count" + str x0,[xADRM,#1*4] // modify 2nd instr: "add x1,x0,#1+ count" // PROT_EXEC mov w2,#PROT_EXEC|PROT_READ - mov w1,wLENM // length + ldr w1,[sp,3*NBPW] // LENU mov x0,xADRM // base TRACE(#2) do_sys __NR_mprotect // Use the unfolded code - ldr wLENX,[xfexp,#sz_pack2 - f_exp] - add xADRX,xelfa,wobinf,uxtw // old compressed &b_info - add xADRX,xADRX,xrelo // new compressed &b_info - - add x0,xFOLD,#4*4 // jmp over get_page_mask() + ldr w0,[xFOLD, #LOBINFO - LxFOLD] // O_BINFO + ldr wLENC,[xfexp,#sz_pack2 - f_exp] + add xADRC,xelfa,x0 // &b_info of compressed input data + add x0,xADRM,#4*4 // jmp over get_page_mask() jr x0 #if DEBUG //{ diff --git a/src/stub/src/arm64-linux.elf-fold.S b/src/stub/src/arm64-linux.elf-fold.S index aab29459..bd992d5c 100644 --- a/src/stub/src/arm64-linux.elf-fold.S +++ b/src/stub/src/arm64-linux.elf-fold.S @@ -28,11 +28,15 @@ // NBPW= 8 +#define call bl + #define ARM_OLDABI 1 #include "arch/arm64/v8/macros.S" -sz_Elf64_Ehdr= 64 -sz_Elf64_Phdr= 56 +sz_Ehdr= 8*NBPW +sz_Phdr= 7*NBPW + p_vaddr= 4+4+8 + sz_l_info = 12 sz_p_info = 12 sz_b_info = 12 @@ -59,7 +63,7 @@ PATH_MAX= 4096 #endif /*}*/ #if DEBUG //{ #define TRACE(arg) \ - stp lr,x0,[sp,#-2*NBPW]!; mov x0,arg; bl trace; \ + stp lr,x0,[sp,#-2*NBPW]!; mov x0,arg; call trace; \ ldp lr,x0,[sp],#2*NBPW #else //}{ #define TRACE(arg) /*empty*/ @@ -82,15 +86,16 @@ fold_begin: // In: sp/ PMASK,fd,ADRU,LENU, argc,argv,... //lr .req x30 -wLENX .req w29 -xADRX .req x28 +wLENC .req w29 // compressed input + xLENC .req x29 +xADRC .req x28 -wLENU .req w27 +wLENU .req w27 // unfolded fold_begin and upx_main xLENU .req x27 xADRU .req x26 -xelfa .req x25 -xfexp .req x24 +xelfa .req x25 // hi &Elf64_Ehdr +xfexp .req x24 // de-compressor xauxe .req x23 // past new auxv xauxv .req x22 @@ -146,7 +151,7 @@ xPMASK .req x20 mov w2,#PATH_MAX-1 // buffer length and null terminator adr x0,proc_self_exe - bl readlink + call readlink cmn x0,#4096; bcs 0f // error strb wzr,[x2,x0] // null terminate pathname (x2 is old x1) 0: @@ -159,12 +164,19 @@ xPMASK .req x20 mov x4,xfexp // &f_decompress mov x3,xauxv // new &Elf64_auxv_t mov x2,sp // ehdr - mov w1,wLENX // total size of compressed data - mov x0,xADRX // &b_info - bl upx_main + mov w1,wLENC // total size of compressed data + mov x0,xADRC // &b_info + call upx_main add sp,sp,#MAX_ELF_HDR + OVERHEAD // un-alloca mov xfexp,x0 // entry address +// Discard pages of compressed input data (includes [ADRC,+LENC) ) + ldr x1,[xelfa,#p_vaddr+sz_Phdr+sz_Ehdr] // Phdr[C_TEXT= 1].p_vaddr + ldr x2,[xelfa,#p_vaddr +sz_Ehdr] // Phdr[C_BASE= 0].p_vaddr + mov x0,xelfa // hi &Elf64_Ehdr + sub x1,x1,x2 + call munmap // discard C_TEXT compressed data + // Map 1 page of /proc/self/exe so that munmap does not remove all references mov x5,#0 // offset mov w4,wfd // fd @@ -172,22 +184,21 @@ xPMASK .req x20 mov w2,#PROT_READ mov x1,#PAGE_SIZE mov x0,#0 // addr - bl mmap + call mmap mov w0,wfd // fd - bl close + call close mov lr,xfexp // entry mov x0,xADRU mov w1,wLENU ldr x2,[xauxe,#NBPW - sz_auxv] // Elf64_auxv_t[AT_NULL@.a_type].a_val - mov w8,#__NR_munmap + mov w8,#__NR_munmap // munmap(ADRU, LENU) unfolded stub #if DEBUG //{ ldr w3,[x2,#0] // 1st instr ldr w4,[x2,#4] // 2nd instr TRACE(4) #endif //} - br x2 // goto escape hatch space3eq: @@ -256,18 +267,18 @@ trace: // preserves condition code (thank you, CBNZ) [if write() does!] sub sp,sp,#TRACE_BUFLEN mov x2,sp // output string - mov w1,#'\n'; bl trace_hex // In: r0 as label + mov w1,#'\n'; call trace_hex // In: r0 as label mov w1,#'>'; strb w1,[x2],#1 mov w5,#10 // nrows to print L600: // each row add x1,sp,#TRACE_BUFLEN sub x0,x4,x1 - lsr x0,x0,#3; mov w1,#'\n'; bl trace_hex2 // which block of 4 + lsr x0,x0,#3; mov w1,#'\n'; call trace_hex2 // which block of 4 mov w6,#4 // 64-bit words per row L610: // each word - ldr x0,[x4],#8; mov w1,#(' '<<8)|' '; bl trace_hex // next word + ldr x0,[x4],#8; mov w1,#(' '<<8)|' '; call trace_hex // next word sub w6,w6,#1; cbnz w6,L610 sub w5,w5,#1; cbnz w5,L600 diff --git a/src/stub/tmp/arm64-linux.elf-entry.bin.dump b/src/stub/tmp/arm64-linux.elf-entry.bin.dump index 849188bb..33e712b8 100644 --- a/src/stub/tmp/arm64-linux.elf-entry.bin.dump +++ b/src/stub/tmp/arm64-linux.elf-entry.bin.dump @@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn 8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000d9c 2**0 CONTENTS, READONLY 9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001238 2**0 CONTENTS, READONLY 10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001238 2**0 CONTENTS, READONLY - 11 ELFMAINZ 00000174 0000000000000000 0000000000000000 00001278 2**2 CONTENTS, RELOC, READONLY + 11 ELFMAINZ 00000138 0000000000000000 0000000000000000 00001278 2**2 CONTENTS, RELOC, READONLY SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ @@ -39,7 +39,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE 0000000000000000 R_AARCH64_ABS32 MFLG -0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x0000000000000120 +0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x00000000000000e4 RELOCATION RECORDS FOR [LZMA_ELF00]: OFFSET TYPE VALUE @@ -47,4 +47,4 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [ELFMAINZ]: OFFSET TYPE VALUE -0000000000000170 R_AARCH64_ABS32 O_BINFO +0000000000000134 R_AARCH64_ABS32 O_BINFO diff --git a/src/stub/tmp/arm64-linux.elf-fold.map b/src/stub/tmp/arm64-linux.elf-fold.map index 942acb9a..472d33b6 100644 --- a/src/stub/tmp/arm64-linux.elf-fold.map +++ b/src/stub/tmp/arm64-linux.elf-fold.map @@ -8,44 +8,44 @@ Linker script and memory map 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x9b4 +.text 0x00000000001000bc 0x9c8 *(.text) - .text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o - 0x0000000000100228 my_bkpt - 0x0000000000100230 exit - 0x0000000000100238 read - 0x0000000000100244 write - 0x0000000000100250 close - 0x000000000010025c getpid - 0x0000000000100268 brk - 0x0000000000100274 munmap - 0x0000000000100280 mprotect - 0x000000000010028c mmap_privanon - 0x000000000010029c mmap - 0x00000000001002a8 unlink - 0x00000000001002bc readlink - 0x00000000001002c4 open - 0x00000000001002e0 __clear_cache - .text 0x00000000001002f4 0x77c tmp/arm64-linux.elf-main.o - 0x0000000000100908 upx_main + .text 0x00000000001000bc 0x24c tmp/arm64-linux.elf-fold.o + 0x000000000010023c my_bkpt + 0x0000000000100244 exit + 0x000000000010024c read + 0x0000000000100258 write + 0x0000000000100264 close + 0x0000000000100270 getpid + 0x000000000010027c brk + 0x0000000000100288 munmap + 0x0000000000100294 mprotect + 0x00000000001002a0 mmap_privanon + 0x00000000001002b0 mmap + 0x00000000001002bc unlink + 0x00000000001002d0 readlink + 0x00000000001002d8 open + 0x00000000001002f4 __clear_cache + .text 0x0000000000100308 0x77c tmp/arm64-linux.elf-main.o + 0x000000000010091c upx_main *(.data) - .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o - .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o + .data 0x0000000000100a84 0x0 tmp/arm64-linux.elf-fold.o + .data 0x0000000000100a84 0x0 tmp/arm64-linux.elf-main.o -.iplt 0x0000000000100a70 0x0 - .iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o +.iplt 0x0000000000100a84 0x0 + .iplt 0x0000000000100a84 0x0 tmp/arm64-linux.elf-fold.o -.rela.dyn 0x0000000000100a70 0x0 - .rela.iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o +.rela.dyn 0x0000000000100a88 0x0 + .rela.iplt 0x0000000000100a88 0x0 tmp/arm64-linux.elf-fold.o .data LOAD tmp/arm64-linux.elf-fold.o LOAD tmp/arm64-linux.elf-main.o OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) -.igot.plt 0x0000000000100a70 0x0 - .igot.plt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o +.igot.plt 0x0000000000100a88 0x0 + .igot.plt 0x0000000000100a88 0x0 tmp/arm64-linux.elf-fold.o -.bss 0x0000000000100a70 0x0 - .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o - .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o +.bss 0x0000000000100a84 0x0 + .bss 0x0000000000100a84 0x0 tmp/arm64-linux.elf-fold.o + .bss 0x0000000000100a84 0x0 tmp/arm64-linux.elf-main.o