arm64 spills a few registers because syscall can trash x18

modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
This commit is contained in:
John Reiser
2017-10-10 20:31:11 -07:00
parent c59c8a1ea2
commit b72dda4ada
6 changed files with 453 additions and 441 deletions
+213 -214
View File
@@ -1,5 +1,5 @@
/* arm64-linux.elf-entry.h /* arm64-linux.elf-entry.h
created from arm64-linux.elf-entry.bin, 8098 (0x1fa2) bytes created from arm64-linux.elf-entry.bin, 8094 (0x1f9e) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,11 +31,11 @@
*/ */
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8098 #define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8094
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x769ac8b7 #define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x9d8fc8d1
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0xa44f7fd7 #define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0xf2a80a59
unsigned char stub_arm64_linux_elf_entry[8098] = { unsigned char stub_arm64_linux_elf_entry[8094] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 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, /* 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, 72, 23, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 23, 0, 0, 0, 0, 0, 0,
@@ -334,213 +334,212 @@ unsigned char stub_arm64_linux_elf_entry[8098] = {
/* 0x1270 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, /* 0x1270 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87,
/* 0x1280 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, /* 0x1280 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,
/* 0x1290 */ 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82, 1, 0, 0,212, /* 0x1290 */ 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82, 1, 0, 0,212,
/* 0x12a0 */ 192, 3, 95,214,243, 3, 30,170,128, 67, 95,184,150, 51, 0,209, /* 0x12a0 */ 192, 3, 95,214,244, 3, 30,170, 0, 67, 95,184, 25, 51, 0,209,
/* 0x12b0 */ 214, 2, 0,203, 96, 6, 64,185, 97, 2, 22,203, 4, 0,128, 18, /* 0x12b0 */ 57, 3, 0,203,149, 6, 64,185,129, 2, 25,203, 4, 0,128, 18,
/* 0x12c0 */ 242, 3, 0, 42, 67, 4,128, 82, 33, 0, 0,139,249, 3, 1, 42, /* 0x12c0 */ 67, 4,128, 82, 33, 64, 53,139, 0, 0,128,210,241,255,255,151,
/* 0x12d0 */ 0, 0,128,210,239,255,255,151,250, 3, 0,170,104, 10, 64,185, /* 0x12d0 */ 224, 7,191,169,136, 10, 64,185,129, 2, 25,203,228, 3, 27, 42,
/* 0x12e0 */ 97, 2, 22,203,228, 3, 24, 42, 67, 2,128, 82, 33, 0, 8,139, /* 0x12e0 */ 67, 2,128, 82,250,111,191,169, 33, 0, 8,139,233,255,255,151,
/* 0x12f0 */ 232,255,255,151, 17, 0, 22,203,232, 3, 28,170,156, 3, 17,139, /* 0x12f0 */ 23, 0, 25,203,232, 3, 24,170, 24, 3, 23,139,155, 2, 64,185,
/* 0x1300 */ 112, 2, 64,185, 96, 66, 0,145,115, 2, 17,139,116, 66, 50,139, /* 0x1300 */ 128, 66, 0,145,148, 2, 23,139,157, 66, 53,139, 28, 3, 26,138,
/* 0x1310 */ 149, 3, 27,138,148, 2, 21,203,100, 50, 64, 57,228, 15, 31,248, /* 0x1310 */ 189, 3, 28,203,132, 50, 64, 57,245, 15, 31,248,227, 3, 0,145,
/* 0x1320 */ 227, 3, 0,145,226, 3, 19,170, 97, 10, 64,185, 0, 1, 63,214, /* 0x1320 */ 226, 3, 20,170,129, 10, 64,185, 0, 1, 63,214,232, 7, 65,248,
/* 0x1330 */ 232, 7, 65,248, 96, 66, 64,248, 97, 3,192,218, 33, 16,192,218, /* 0x1330 */ 128, 66, 64,248, 65, 3,192,218, 33, 16,192,218, 33, 4, 0,145,
/* 0x1340 */ 33, 4, 0,145, 33,212,118,211, 0, 0, 1,170, 96, 66, 0,248, /* 0x1340 */ 33,212,118,211, 0, 0, 1,170,128, 66, 0,248,162, 0,128, 82,
/* 0x1350 */ 162, 0,128, 82,225, 3, 20, 42,224, 3, 21,170, 72, 28,128, 82, /* 0x1350 */ 225, 3, 29, 42,224, 3, 28,170, 72, 28,128, 82, 1, 0, 0,212,
/* 0x1360 */ 1, 0, 0,212,148, 67, 95,184,213, 66, 48,139,181, 2, 17,139, /* 0x1360 */ 29, 67, 95,184, 60, 67, 59,139,156, 3, 23,139,128, 66, 0,145,
/* 0x1370 */ 96, 66, 0,145, 0, 0, 31,214, 47,112,114,111, 99, 47,115,101, /* 0x1370 */ 0, 0, 31,214, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x1380 */ 108,102, 47,101,120,101, 0, 0, 1,132, 64,248,225,255,255,181, /* 0x1380 */ 120,101, 0, 0, 1,132, 64,248,225,255,255,181,192, 3, 95,214,
/* 0x1390 */ 192, 3, 95,214,252, 3, 30,170,224, 3, 0,145,251,255,255,151, /* 0x1390 */ 248, 3, 30,170,224, 3, 0,145,251,255,255,151,250,255,255,151,
/* 0x13a0 */ 250,255,255,151,247, 3, 0,170, 1,136,192,168, 63, 24, 0,113, /* 0x13a0 */ 246, 3, 0,170, 1,136,192,168, 63, 24, 0,113, 96, 0, 0, 84,
/* 0x13b0 */ 96, 0, 0, 84,161,255,255, 53, 34, 0,160,210,251, 3, 2,203, /* 0x13b0 */ 161,255,255, 53, 34, 0,160,210,250, 3, 2,203, 96, 12,128, 18,
/* 0x13c0 */ 96, 12,128, 18,161,253,255, 16, 2, 0,128, 82, 8, 7,128, 82, /* 0x13c0 */ 161,253,255, 16, 2, 0,128, 82, 8, 7,128, 82, 1, 0, 0,212,
/* 0x13d0 */ 1, 0, 0,212,248, 3, 0, 42,179,255,255,151, 0, 0, 0, 0, /* 0x13d0 */ 251, 3, 0, 42,180,255,255,151, 0, 0, 0, 0,102,105,108,101,
/* 0x13e0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, /* 0x13e0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,
/* 0x13f0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, /* 0x13f0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,
/* 0x1400 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1400 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
/* 0x1410 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1410 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
/* 0x1420 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1420 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1430 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, /* 0x1430 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1440 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1440 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
/* 0x1450 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1450 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
/* 0x1460 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, /* 0x1460 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
/* 0x1470 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, /* 0x1470 */ 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 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, 48, 48, 48, 48, 32, /* 0x1490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x14a0 */ 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x14a0 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x14b0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x14b0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x14c0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, /* 0x14c0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72,
/* 0x14d0 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x14d0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x14e0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x14e0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x14f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x14f0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1500 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1500 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 56, 32,
/* 0x1510 */ 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1510 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1520 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1520 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82,
/* 0x1530 */ 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, /* 0x1530 */ 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1540 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1540 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1550 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1550 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1560 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1570 */ 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1570 */ 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1580 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1580 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51,
/* 0x1590 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, /* 0x1590 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
/* 0x15a0 */ 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, /* 0x15a0 */ 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x15b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x15b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x15c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x15c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x15d0 */ 32, 48, 48, 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, /* 0x15d0 */ 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x15e0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x15e0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x15f0 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, /* 0x15f0 */ 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32,
/* 0x1600 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, /* 0x1600 */ 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48,
/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1620 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1630 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, /* 0x1630 */ 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1640 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1640 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1650 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, /* 0x1650 */ 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32,
/* 0x1660 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, /* 0x1660 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48,
/* 0x1670 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1680 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1680 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1690 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 99, 32, /* 0x1690 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 99, 32, 32, 50, 42, 42,
/* 0x16a0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x16a0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x16b0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, /* 0x16b0 */ 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69,
/* 0x16c0 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x16c0 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48,
/* 0x16d0 */ 48, 48,100, 48, 32, 32, 48, 48, 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, 48, 48, 48, 48, 32, 32, 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, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, /* 0x16f0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 55, 99, 32, 32,
/* 0x1700 */ 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1700 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1710 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1710 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1720 */ 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x1720 */ 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32,
/* 0x1730 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 54, 56, 32, 32, /* 0x1730 */ 32, 32, 48, 48, 48, 48, 48, 57, 54, 56, 32, 32, 48, 48, 48, 48,
/* 0x1740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1750 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1760 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 52, 99, 32, 32, 50, 42, /* 0x1760 */ 48, 48, 48, 48, 48, 52, 52, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1770 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1770 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1780 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, /* 0x1780 */ 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49,
/* 0x1790 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, /* 0x1790 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48,
/* 0x17a0 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x17b0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x17b0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17c0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 98, 52, 32, /* 0x17c0 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 98, 52, 32, 32, 50, 42, 42,
/* 0x17d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x17d0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x17e0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, /* 0x17e0 */ 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68,
/* 0x17f0 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x17f0 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1800 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1800 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1810 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1810 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, /* 0x1820 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, 48, 32, 32,
/* 0x1830 */ 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1830 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1840 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, /* 0x1840 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 69, 76, 70,
/* 0x1850 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, /* 0x1850 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1860 */ 48, 48, 48, 48, 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1860 */ 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1870 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53,
/* 0x1890 */ 48, 49, 50, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1890 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x18a0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x18a0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32,
/* 0x18b0 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, /* 0x18b0 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x18c0 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, /* 0x18c0 */ 48, 48, 48, 49, 52, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x18e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x18e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x18f0 */ 48, 48, 48, 48, 49, 50, 57, 48, 32, 32, 50, 42, 42, 50, 32, 32, /* 0x18f0 */ 49, 50, 57, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84,
/* 0x1900 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1900 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x1910 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, /* 0x1910 */ 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66,
/* 0x1920 */ 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1920 */ 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x1930 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77,
/* 0x1940 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, /* 0x1940 */ 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, /* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x1960 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1960 */ 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x1970 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
/* 0x1980 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, /* 0x1980 */ 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, /* 0x1990 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x19a0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19b0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, /* 0x19b0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x19c0 */ 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x19c0 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x19d0 */ 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48,
/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x19f0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, /* 0x19f0 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48,
/* 0x1a00 */ 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x1a10 */ 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, /* 0x1a10 */ 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x1a30 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, /* 0x1a30 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48,
/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84,
/* 0x1a50 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a50 */ 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x1a60 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86,
/* 0x1a70 */ 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a70 */ 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, /* 0x1a80 */ 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x1aa0 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, /* 0x1aa0 */ 100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, /* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10,
/* 0x1ac0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ad0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x1ad0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48,
/* 0x1ae0 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ae0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1af0 */ 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, /* 0x1af0 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1b00 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
/* 0x1b10 */ 100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, /* 0x1b10 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48,
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, /* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x1b30 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x1b30 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1b40 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
/* 0x1b50 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, /* 0x1b50 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48,
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, /* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x1b70 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x1b70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1b80 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
/* 0x1b90 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, /* 0x1b90 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48,
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, /* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x1bb0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x1bb0 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
/* 0x1bd0 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, /* 0x1bd0 */ 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, /* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1bf0 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1bf0 */ 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x1c00 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x1c10 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c10 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c20 */ 48, 48, 48, 48, 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, /* 0x1c20 */ 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, /* 0x1c30 */ 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x1c40 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, /* 0x1c40 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115, /* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
/* 0x1c60 */ 116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c60 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c70 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, /* 0x1c70 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9,
/* 0x1c80 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56,
/* 0x1c90 */ 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, 50,101, 95,100, /* 0x1c90 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109,
/* 0x1ca0 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, /* 0x1ca0 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, /* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, /* 0x1cc0 */ 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, /* 0x1cd0 */ 48, 48, 48, 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118,
/* 0x1ce0 */ 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115, /* 0x1ce0 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50,
/* 0x1cf0 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1cf0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d00 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, /* 0x1d00 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9,
/* 0x1d10 */ 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48,
/* 0x1d20 */ 48, 48,102, 48, 32,117, 99,108, 95,110,114,118, 50, 98, 95,100, /* 0x1d20 */ 32,117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,
/* 0x1d30 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, /* 0x1d30 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, /* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x1d50 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x1d50 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x1d60 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,
/* 0x1d70 */ 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, /* 0x1d70 */ 109, 97, 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, /* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x1d90 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, /* 0x1d90 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48,
/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,
/* 0x1db0 */ 101,110,100, 95,100,101, 99,111,109,112,114,101,115,115, 10, 48, /* 0x1db0 */ 100,101, 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x1dd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x1dd0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48,
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, /* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78,
/* 0x1df0 */ 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x1df0 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x1e00 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x1e00 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77,
/* 0x1e10 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x1e10 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x1e20 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, /* 0x1e20 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x1e30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x1e30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x1e40 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e50 */ 48, 48, 48, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, /* 0x1e50 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50,
/* 0x1e60 */ 66, 83, 51, 50, 32, 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, /* 0x1e60 */ 32, 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, /* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72,
/* 0x1e80 */ 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, /* 0x1e80 */ 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65,
/* 0x1e90 */ 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, /* 0x1e90 */ 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 49, 48, 52, 10, 10, 82, 69, 76, 79, /* 0x1ea0 */ 48, 48, 48, 49, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x1eb0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x1eb0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x1ec0 */ 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, /* 0x1ec0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70,
/* 0x1ed0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1ed0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x1ee0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1ee0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1ef0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x1ef0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, /* 0x1f00 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52,
/* 0x1f10 */ 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, /* 0x1f10 */ 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95,
/* 0x1f20 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, /* 0x1f20 */ 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x1f30 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x1f30 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
/* 0x1f40 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, /* 0x1f40 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x1f50 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, /* 0x1f50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x1f60 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x1f70 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f70 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54, /* 0x1f80 */ 49, 52, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66,
/* 0x1f90 */ 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, /* 0x1f90 */ 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x1fa0 */ 79, 10
}; };
+154 -153
View File
@@ -1,5 +1,5 @@
/* arm64-linux.elf-fold.h /* arm64-linux.elf-fold.h
created from arm64-linux.elf-fold.bin, 2528 (0x9e0) bytes created from arm64-linux.elf-fold.bin, 2536 (0x9e8) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,167 +31,168 @@
*/ */
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2528 #define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2536
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x4d5d7c01 #define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xc76f825d
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x6247915f #define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0xd99a5039
unsigned char stub_arm64_linux_elf_fold[2528] = { unsigned char stub_arm64_linux_elf_fold[2536] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 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, /* 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, /* 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, /* 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, /* 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, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 224, 9, 0, 0, 0, 0, 0, 0,224, 9, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 232, 9, 0, 0, 0, 0, 0, 0,232, 9, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 224, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 232, 9, 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, /* 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, /* 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, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146,
/* 0x00c0 */ 1, 0, 0,145, 0, 32,193,154,192, 3, 95,214,231, 3, 64,249, /* 0x00c0 */ 1, 0, 0,145, 0, 32,193,154,192, 3, 95,214,250,111, 65,169,
/* 0x00d0 */ 224, 3, 0,145,225, 3, 23,170, 34, 4, 65,248,226,255,255,181, /* 0x00d0 */ 244, 87,194,168,231, 3, 64,249,224, 3, 0,145,225, 3, 22,170,
/* 0x00e0 */ 32, 4, 64,209, 6, 16, 0,209, 33, 0, 6,203,192, 0, 1,203, /* 0x00e0 */ 34, 4, 65,248,226,255,255,181, 32, 4, 64,209, 6, 16, 0,209,
/* 0x00f0 */ 0, 32, 0,209, 0,236,124,146,225, 35, 0,145, 31, 0, 0,145, /* 0x00f0 */ 33, 0, 6,203,192, 0, 1,203, 0, 32, 0,209, 0,236,124,146,
/* 0x0100 */ 7,132, 0,248, 34,132, 64,248, 2,132, 0,248,194,255,255,181, /* 0x0100 */ 225, 35, 0,145, 31, 0, 0,145, 7,132, 0,248, 34,132, 64,248,
/* 0x0110 */ 34,132, 64,248, 2,132, 0,248,194,255,255,181, 4, 32, 0,209, /* 0x0110 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248,
/* 0x0120 */ 31,132, 0,248,231, 3, 0,170,247, 3, 0,170, 34, 12,193,168, /* 0x0120 */ 194,255,255,181, 4, 32, 0,209, 31,132, 0,248,231, 3, 0,170,
/* 0x0130 */ 2, 12,129,168,194,255,255,181,243, 3, 0,170,225, 3, 6,170, /* 0x0130 */ 246, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181,
/* 0x0140 */ 129, 0, 0,249, 98, 4, 0, 24, 34, 68, 0,184,226,255,129, 82, /* 0x0140 */ 247, 3, 0,170,225, 3, 6,170,129, 0, 0,249, 98, 4, 0, 24,
/* 0x0150 */ 32, 4, 0, 16, 88, 0, 0,148, 31, 4, 64,177, 66, 0, 0, 84, /* 0x0150 */ 34, 68, 0,184,226,255,129, 82, 32, 4, 0, 16, 88, 0, 0,148,
/* 0x0160 */ 95,104, 32, 56,231, 3, 27,170,230, 3, 22,170,255, 3, 40,209, /* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170,
/* 0x0170 */ 165, 3, 0, 16,228, 3, 28,170,227, 3, 23,170,226, 3, 0,145, /* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170,
/* 0x0180 */ 225, 3, 20, 42,224, 3, 21,170,189, 1, 0,148,255, 3, 40,145, /* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170,
/* 0x0190 */ 252, 3, 0,170, 5, 0,128,210,228, 3, 24, 42, 67, 0,128, 82, /* 0x0190 */ 189, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210,
/* 0x01a0 */ 34, 0,128, 82, 1, 0,130,210, 0, 0,128,210, 58, 0, 0,148, /* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210,
/* 0x01b0 */ 224, 3, 24, 42, 37, 0, 0,148,254, 3, 28,170,224, 3, 26,170, /* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148,
/* 0x01c0 */ 225, 3, 25, 42, 98,130, 95,248,232, 26,128, 82, 64, 0, 31,214, /* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248,
/* 0x01d0 */ 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,108,102, 47,101, /* 0x01d0 */ 232, 26,128, 82, 64, 0, 31,214, 32, 32, 32, 61, 47,112,114,111,
/* 0x01e0 */ 120,101, 0, 0, 99, 28, 0, 18,127, 72, 1,113,129, 1, 0, 84, /* 0x01e0 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 99, 28, 0, 18,
/* 0x01f0 */ 33,252, 66,211, 65, 1, 0,180, 33, 4, 0,209, 2,120, 97,184, /* 0x01f0 */ 127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180,
/* 0x0200 */ 67,120, 26, 83,127, 20, 0,113,129, 0, 0, 84, 67, 0, 1, 75, /* 0x0200 */ 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,
/* 0x0210 */ 98,100, 0, 51, 2,120, 33,184, 1,255,255,181,192, 3, 95,214, /* 0x0210 */ 129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184,
/* 0x0220 */ 0, 0, 32,212,192, 3, 95,214,168, 11,128, 82, 1, 0, 0,212, /* 0x0220 */ 1,255,255,181,192, 3, 95,214, 0, 0, 32,212,192, 3, 95,214,
/* 0x0230 */ 232, 7,128, 82, 1, 0, 0,212,192, 3, 95,214, 8, 8,128, 82, /* 0x0230 */ 168, 11,128, 82, 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,
/* 0x0240 */ 1, 0, 0,212,192, 3, 95,214, 40, 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 */ 192, 3, 95,214,168, 21,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 */ 200, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,232, 26,128, 82, /* 0x0260 */ 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, 1, 0, 0,212,
/* 0x0270 */ 1, 0, 0,212,192, 3, 95,214, 72, 28,128, 82, 1, 0, 0,212, /* 0x0270 */ 192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0280 */ 192, 3, 95,214, 38,242,255, 24, 5, 0,128,210, 4, 0,128,146, /* 0x0280 */ 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214,230,241,255, 24,
/* 0x0290 */ 99, 0, 6, 42,200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214, /* 0x0290 */ 5, 0,128,210, 4, 0,128,146, 99, 0, 6, 42,200, 27,128, 82,
/* 0x02a0 */ 2, 0,128,210,225, 3, 0,170, 96, 12,128, 18,104, 4,128, 82, /* 0x02a0 */ 1, 0, 0,212,192, 3, 95,214, 2, 0,128,210,225, 3, 0,170,
/* 0x02b0 */ 4, 0, 0, 20,200, 9,128, 82, 2, 0, 0, 20, 8, 7,128, 82, /* 0x02b0 */ 96, 12,128, 18,104, 4,128, 82, 4, 0, 0, 20,200, 9,128, 82,
/* 0x02c0 */ 227, 3, 2,170,226, 3, 1,170,225, 3, 0,170, 96, 12,128,146, /* 0x02c0 */ 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170,226, 3, 1,170,
/* 0x02d0 */ 1, 0, 0,212,192, 3, 95,214, 0, 0, 64,212, 2, 0,128, 82, /* 0x02d0 */ 225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212,192, 3, 95,214,
/* 0x02e0 */ 8, 0,128, 82, 1, 0, 0,212,192, 3, 95,214,160, 1, 0,180, /* 0x02e0 */ 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82, 1, 0, 0,212,
/* 0x02f0 */ 227, 3, 1, 42, 4, 0, 64,249,159, 0, 3,235,129, 0, 0, 84, /* 0x02f0 */ 192, 3, 95,214,160, 1, 0,180,227, 3, 1, 42, 4, 0, 64,249,
/* 0x0300 */ 3, 0, 0,249, 2, 4, 0,249, 6, 0, 0, 20,159, 4, 0,241, /* 0x0300 */ 159, 0, 3,235,129, 0, 0, 84, 3, 0, 0,249, 2, 4, 0,249,
/* 0x0310 */ 65, 0, 0, 84, 97,255,255, 53, 0, 64, 0,145,246,255,255, 23, /* 0x0310 */ 6, 0, 0, 20,159, 4, 0,241, 65, 0, 0, 84, 97,255,255, 53,
/* 0x0320 */ 192, 3, 95,214,253,123,191,169, 3, 0,128,210,253, 3, 0,145, /* 0x0320 */ 0, 64, 0,145,246,255,255, 23,192, 3, 95,214,253,123,191,169,
/* 0x0330 */ 5, 0, 64,249, 4, 4, 64,249,191, 0, 2,235, 98, 0, 0, 84, /* 0x0330 */ 3, 0,128,210,253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,
/* 0x0340 */ 224, 15,128, 82,185,255,255,151,127, 0, 2,235,160, 0, 0, 84, /* 0x0340 */ 191, 0, 2,235, 98, 0, 0, 84,224, 15,128, 82,185,255,255,151,
/* 0x0350 */ 133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145,251,255,255, 23, /* 0x0350 */ 127, 0, 2,235,160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56,
/* 0x0360 */ 1, 4, 64,249, 33, 0, 3,139, 1, 4, 0,249, 1, 0, 64,249, /* 0x0360 */ 99, 4, 0,145,251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139,
/* 0x0370 */ 35, 0, 3,203, 3, 0, 0,249,253,123,193,168,192, 3, 95,214, /* 0x0370 */ 1, 4, 0,249, 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,
/* 0x0380 */ 253,123,187,169,253, 3, 0,145,243, 83, 1,169,245, 91, 2,169, /* 0x0380 */ 253,123,193,168,192, 3, 95,214,253,123,187,169,253, 3, 0,145,
/* 0x0390 */ 244, 3, 0,170,243, 3, 1,170,246, 3, 2,170,245, 3, 3,170, /* 0x0390 */ 243, 83, 1,169,245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,
/* 0x03a0 */ 96, 2, 64,249,160, 8, 0,180,224, 3, 20,170,130, 1,128,210, /* 0x03a0 */ 246, 3, 2,170,245, 3, 3,170, 96, 2, 64,249,160, 8, 0,180,
/* 0x03b0 */ 161, 3, 1,145,220,255,255,151,160, 67, 64,185,162, 71, 64,185, /* 0x03b0 */ 224, 3, 20,170,130, 1,128,210,161, 3, 1,145,220,255,255,151,
/* 0x03c0 */ 0, 1, 0, 53,160, 10,138, 82, 0, 43,164,114, 95, 0, 0,107, /* 0x03c0 */ 160, 67, 64,185,162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82,
/* 0x03d0 */ 225, 0, 0, 84,128, 2, 64,249, 0, 7, 0,180, 4, 0, 0, 20, /* 0x03d0 */ 0, 43,164,114, 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249,
/* 0x03e0 */ 98, 0, 0, 52, 95, 0, 0,107,105, 0, 0, 84,224, 15,128, 82, /* 0x03e0 */ 0, 7, 0,180, 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,
/* 0x03f0 */ 142,255,255,151, 99, 2, 64,249,225, 3, 0, 42, 63, 0, 3,235, /* 0x03f0 */ 105, 0, 0, 84,224, 15,128, 82,142,255,255,151, 99, 2, 64,249,
/* 0x0400 */ 104,255,255, 84, 95, 0, 0,107, 2, 4, 0, 84,161, 31, 0,249, /* 0x0400 */ 225, 3, 0, 42, 63, 0, 3,235,104,255,255, 84, 95, 0, 0,107,
/* 0x0410 */ 225, 3, 2, 42,128, 6, 64,249,163,227, 0,145, 98, 6, 64,249, /* 0x0410 */ 2, 4, 0, 84,161, 31, 0,249,225, 3, 2, 42,128, 6, 64,249,
/* 0x0420 */ 164, 35, 65, 57,192, 2, 63,214, 32,254,255, 53,161, 31, 64,249, /* 0x0420 */ 163,227, 0,145, 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214,
/* 0x0430 */ 160, 67, 64,185, 63, 0, 0,235,161,253,255, 84,163, 39, 65, 57, /* 0x0430 */ 32,254,255, 53,161, 31, 64,249,160, 67, 64,185, 63, 0, 0,235,
/* 0x0440 */ 85, 1, 0,180, 35, 1, 0, 52, 63, 0, 8,241,136, 0, 0, 84, /* 0x0440 */ 161,253,255, 84,163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52,
/* 0x0450 */ 96, 2, 64,249, 31, 0, 1,235,129, 0, 0, 84, 96, 6, 64,249, /* 0x0450 */ 63, 0, 8,241,136, 0, 0, 84, 96, 2, 64,249, 31, 0, 1,235,
/* 0x0460 */ 162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185,129, 6, 64,249, /* 0x0460 */ 129, 0, 0, 84, 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,
/* 0x0470 */ 128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249, 0, 0, 3,203, /* 0x0470 */ 163, 71, 64,185,129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,
/* 0x0480 */ 128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,224, 3, 20,170, /* 0x0480 */ 129, 6, 0,249, 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20,
/* 0x0490 */ 226, 3, 2, 42,164,255,255,151,163, 67, 64,185, 97, 6, 64,249, /* 0x0490 */ 97, 6, 64,249,224, 3, 20,170,226, 3, 2, 42,164,255,255,151,
/* 0x04a0 */ 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249, 0, 0, 3,203, /* 0x04a0 */ 163, 67, 64,185, 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139,
/* 0x04b0 */ 96, 2, 0,249,187,255,255, 23,243, 83, 65,169,245, 91, 66,169, /* 0x04b0 */ 97, 6, 0,249, 0, 0, 3,203, 96, 2, 0,249,187,255,255, 23,
/* 0x04c0 */ 253,123,197,168,192, 3, 95,214,253,123,180,169,253, 3, 0,145, /* 0x04c0 */ 243, 83, 65,169,245, 91, 66,169,253,123,197,168,192, 3, 95,214,
/* 0x04d0 */ 234, 47, 7,109,202, 0,103,158, 6, 16, 64,249,236, 55, 8,109, /* 0x04d0 */ 253,123,180,169,253, 3, 0,145,234, 47, 7,109,202, 0,103,158,
/* 0x04e0 */ 245, 91, 2,169,232, 39, 6,109,245, 3, 0,170,249,107, 4,169, /* 0x04e0 */ 6, 16, 64,249,236, 55, 8,109,245, 91, 2,169,232, 39, 6,109,
/* 0x04f0 */ 26, 0, 6,139, 0, 32, 64,121,247, 99, 3,169, 31, 12, 0,113, /* 0x04f0 */ 245, 3, 0,170,249,107, 4,169, 26, 0, 6,139, 0, 32, 64,121,
/* 0x0500 */ 248, 3, 3,170, 64, 1,102,158, 3, 2,128, 82,141, 0,103,158, /* 0x0500 */ 247, 99, 3,169, 31, 12, 0,113,248, 3, 3,170, 64, 1,102,158,
/* 0x0510 */ 99, 16,159, 26,238, 75, 0,253,247, 3, 1,170,174, 0,103,158, /* 0x0510 */ 3, 2,128, 82,141, 0,103,158, 99, 16,159, 26,238, 75, 0,253,
/* 0x0520 */ 165,114, 64,121, 0, 0, 64,249, 99,136, 0, 17,243, 83, 1,169, /* 0x0520 */ 247, 3, 1,170,174, 0,103,158,165,114, 64,121, 0, 0, 64,249,
/* 0x0530 */ 251,115, 5,169, 76, 0, 39, 30,251, 3, 7,170,226, 3, 26,170, /* 0x0530 */ 99,136, 0, 17,243, 83, 1,169,251,115, 5,169, 76, 0, 39, 30,
/* 0x0540 */ 1, 0,128,210, 19, 0,128,146,165, 4, 0, 81,191, 4, 0, 49, /* 0x0540 */ 251, 3, 7,170,226, 3, 26,170, 1, 0,128,210, 19, 0,128,146,
/* 0x0550 */ 160, 1, 0, 84, 68, 0, 64,185,159, 4, 0,113, 1, 1, 0, 84, /* 0x0550 */ 165, 4, 0, 81,191, 4, 0, 49,160, 1, 0, 84, 68, 0, 64,185,
/* 0x0560 */ 71, 8, 64,249, 68, 20, 64,249,127, 2, 7,235,228, 0, 4,139, /* 0x0560 */ 159, 4, 0,113, 1, 1, 0, 84, 71, 8, 64,249, 68, 20, 64,249,
/* 0x0570 */ 115,146,135,154, 63, 0, 4,235, 33, 32,132,154, 66,224, 0,145, /* 0x0570 */ 127, 2, 7,235,228, 0, 4,139,115,146,135,154, 63, 0, 4,235,
/* 0x0580 */ 242,255,255, 23,226, 3, 59,170,115, 2, 27,138, 65, 0, 1,139, /* 0x0580 */ 33, 32,132,154, 66,224, 0,145,242,255,255, 23,226, 3, 59,170,
/* 0x0590 */ 33, 0, 19,203, 72, 0,103,158, 33, 0, 27,138,163, 0, 32, 55, /* 0x0590 */ 115, 2, 27,138, 65, 0, 1,139, 33, 0, 19,203, 72, 0,103,158,
/* 0x05a0 */ 83, 0, 0,181,160, 0, 0,181, 0, 0,128,210, 4, 0, 0, 20, /* 0x05a0 */ 33, 0, 27,138,163, 0, 32, 55, 83, 0, 0,181,160, 0, 0,181,
/* 0x05b0 */ 224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82, 2, 0,128, 82, /* 0x05b0 */ 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20,
/* 0x05c0 */ 4, 0,128, 18, 5, 0,128,210, 28, 0,128, 82, 50,255,255,151, /* 0x05c0 */ 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210,
/* 0x05d0 */ 19, 0, 19,203, 96,230,122,211, 11, 0,103,158,160,114, 64,121, /* 0x05d0 */ 28, 0,128, 82, 50,255,255,151, 19, 0, 19,203, 96,230,122,211,
/* 0x05e0 */ 159, 3, 0,107,234, 18, 0, 84, 64, 3, 64,185, 55, 1, 0,180, /* 0x05e0 */ 11, 0,103,158,160,114, 64,121,159, 3, 0,107,234, 18, 0, 84,
/* 0x05f0 */ 31, 24, 0,113,225, 0, 0, 84, 66, 11, 64,249,224, 3, 24,170, /* 0x05f0 */ 64, 3, 64,185, 55, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84,
/* 0x0600 */ 97, 0,128, 82, 98, 2, 2,139, 57,255,255,151,132, 0, 0, 20, /* 0x0600 */ 66, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0610 */ 31, 4, 0,113, 65, 16, 0, 84, 87, 2, 0,180, 64, 7, 64,249, /* 0x0610 */ 57,255,255,151,132, 0, 0, 20, 31, 4, 0,113, 65, 16, 0, 84,
/* 0x0620 */ 0, 2, 0,181,162, 18, 64,249,224, 3, 24,170, 67, 11, 64,249, /* 0x0620 */ 87, 2, 0,180, 64, 7, 64,249, 0, 2, 0,181,162, 18, 64,249,
/* 0x0630 */ 97, 0,128, 82, 98, 2, 2,139, 66, 0, 3,139, 44,255,255,151, /* 0x0630 */ 224, 3, 24,170, 67, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0640 */ 162,114, 64,121,224, 3, 24,170,161, 0,128, 82, 40,255,255,151, /* 0x0640 */ 66, 0, 3,139, 44,255,255,151,162,114, 64,121,224, 3, 24,170,
/* 0x0650 */ 162,110, 64,121,224, 3, 24,170,129, 0,128, 82, 36,255,255,151, /* 0x0650 */ 161, 0,128, 82, 40,255,255,151,162,110, 64,121,224, 3, 24,170,
/* 0x0660 */ 89, 7, 64,185, 0, 72,140, 82, 32,106,174,114, 84, 11, 64,249, /* 0x0660 */ 129, 0,128, 82, 36,255,255,151, 89, 7, 64,185, 0, 72,140, 82,
/* 0x0670 */ 57, 11, 30, 83,255, 2, 31,235, 0, 36,217, 26,160,163, 0,185, /* 0x0670 */ 32,106,174,114, 84, 11, 64,249, 57, 11, 30, 83,255, 2, 31,235,
/* 0x0680 */ 25, 8, 0, 18, 64, 23, 64,249,116, 2, 20,139, 86, 19, 64,249, /* 0x0680 */ 0, 36,217, 26,160,163, 0,185, 25, 8, 0, 18, 64, 23, 64,249,
/* 0x0690 */ 128, 2, 0,139, 71, 7, 64,249,182, 91, 0,249, 70, 6,128, 82, /* 0x0690 */ 116, 2, 20,139, 86, 19, 64,249,128, 2, 0,139, 71, 7, 64,249,
/* 0x06a0 */ 9, 0,103,158,180, 95, 0,249, 0, 1,102,158, 67, 2,128, 82, /* 0x06a0 */ 182, 91, 0,249, 70, 6,128, 82, 9, 0,103,158,180, 95, 0,249,
/* 0x06b0 */ 133, 2, 0,138, 64, 0,128, 82, 2, 16,159, 26,255, 2, 31,235, /* 0x06b0 */ 0, 1,102,158, 67, 2,128, 82,133, 2, 0,138, 64, 0,128, 82,
/* 0x06c0 */ 128, 1, 38, 30,148, 2, 5,203,182, 0, 22,139, 66, 0, 25, 42, /* 0x06c0 */ 2, 16,159, 26,255, 2, 31,235,128, 1, 38, 30,148, 2, 5,203,
/* 0x06d0 */ 225, 3, 22,170,229, 0, 5,203, 4, 0,159, 90,255, 2, 31,235, /* 0x06d0 */ 182, 0, 22,139, 66, 0, 25, 42,225, 3, 22,170,229, 0, 5,203,
/* 0x06e0 */ 195, 16,131, 26,224, 3, 20,170,235,254,255,151,159, 2, 0,235, /* 0x06e0 */ 4, 0,159, 90,255, 2, 31,235,195, 16,131, 26,224, 3, 20,170,
/* 0x06f0 */ 96, 0, 0, 84,224, 15,128, 82,204,254,255,151,215, 0, 0,180, /* 0x06f0 */ 235,254,255,151,159, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,
/* 0x0700 */ 162, 1,102,158,224, 3, 23,170,195, 1,102,158,161,195, 2,145, /* 0x0700 */ 204,254,255,151,215, 0, 0,180,162, 1,102,158,224, 3, 23,170,
/* 0x0710 */ 28,255,255,151, 0, 1,102,158,227, 3, 22,203, 99, 0, 0,138, /* 0x0710 */ 195, 1,102,158,161,195, 2,145, 28,255,255,151, 0, 1,102,158,
/* 0x0720 */ 160, 83, 64,249, 96, 0, 8, 55, 87, 1, 0,181, 45, 0, 0, 20, /* 0x0720 */ 227, 3, 22,203, 99, 0, 0,138,160, 83, 64,249, 96, 0, 8, 55,
/* 0x0730 */ 195,255,255,180,129, 2, 22,139, 0, 0,128,210, 63,104, 32, 56, /* 0x0730 */ 87, 1, 0,181, 45, 0, 0, 20,195,255,255,180,129, 2, 22,139,
/* 0x0740 */ 0, 4, 0,145, 31, 0, 3,235,161,255,255, 84,247,255,255, 23, /* 0x0740 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 3,235,
/* 0x0750 */ 64, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, /* 0x0750 */ 161,255,255, 84,247,255,255, 23, 64, 3, 64,249,225, 3, 0,178,
/* 0x0760 */ 33, 3, 0, 84, 65, 23, 64,249, 66, 19, 64,249, 64, 11, 64,249, /* 0x0760 */ 0,128, 64,146, 31, 0, 1,235, 33, 3, 0, 84, 65, 23, 64,249,
/* 0x0770 */ 63, 0, 2,235,161, 5, 0, 84, 98, 14, 0,145, 66, 0, 1,139, /* 0x0770 */ 66, 19, 64,249, 64, 11, 64,249, 63, 0, 2,235,161, 5, 0, 84,
/* 0x0780 */ 66, 0, 0,139, 66,244,126,146,225, 3, 2, 75, 33, 0, 59, 10, /* 0x0780 */ 98, 14, 0,145, 66, 0, 1,139, 66, 0, 0,139, 66,244,126,146,
/* 0x0790 */ 63, 28, 0,113,169, 4, 0, 84, 32, 0,128, 82, 1, 0,128, 82, /* 0x0790 */ 225, 3, 2, 75, 33, 0, 59, 10, 63, 28, 0,113,169, 4, 0, 84,
/* 0x07a0 */ 0,128,186,114, 64, 0, 0,185, 0,120,128, 82,163, 83, 0,249, /* 0x07a0 */ 32, 0,128, 82, 1, 0,128, 82, 0,128,186,114, 64, 0, 0,185,
/* 0x07b0 */ 224,203,186,114, 64, 4, 0,185,224, 3, 24,170,204,254,255,151, /* 0x07b0 */ 0,120,128, 82,163, 83, 0,249,224,203,186,114, 64, 4, 0,185,
/* 0x07c0 */ 163, 83, 64,249,224, 3, 20,170,225, 3, 22,170,226, 3, 25, 42, /* 0x07c0 */ 224, 3, 24,170,204,254,255,151,163, 83, 64,249,224, 3, 20,170,
/* 0x07d0 */ 163, 83, 0,249,169,254,255,151,163, 83, 64,249,192,248,255, 53, /* 0x07d0 */ 225, 3, 22,170,226, 3, 25, 42,163, 83, 0,249,169,254,255,151,
/* 0x07e0 */ 32, 1,102,158,118, 0, 22,139,148, 2, 22,139,159, 2, 0,235, /* 0x07e0 */ 163, 83, 64,249,192,248,255, 53, 32, 1,102,158,118, 0, 22,139,
/* 0x07f0 */ 98, 1, 0, 84, 33, 1,102,158,224, 3, 20,170,226, 3, 25, 42, /* 0x07f0 */ 148, 2, 22,139,159, 2, 0,235, 98, 1, 0, 84, 33, 1,102,158,
/* 0x0800 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 33, 0, 20,203, /* 0x0800 */ 224, 3, 20,170,226, 3, 25, 42, 67, 6,128, 82, 4, 0,128, 18,
/* 0x0810 */ 161,254,255,151,159, 2, 0,235,225,246,255, 84, 90,227, 0,145, /* 0x0810 */ 5, 0,128,210, 33, 0, 20,203,161,254,255,151,159, 2, 0,235,
/* 0x0820 */ 156, 7, 0, 17,110,255,255, 23, 97, 1,102,158, 2, 0, 1,139, /* 0x0820 */ 225,246,255, 84, 90,227, 0,145,156, 7, 0, 17,110,255,255, 23,
/* 0x0830 */ 64, 7, 64,249, 66, 32, 0,145, 0,251,255,180,226,255,255, 23, /* 0x0830 */ 97, 1,102,158, 2, 0, 1,139, 64, 7, 64,249, 66, 32, 0,145,
/* 0x0840 */ 64, 1,102,158,232, 39, 70,109,247, 99, 67,169,234, 47, 71,109, /* 0x0840 */ 0,251,255,180,226,255,255, 23, 64, 1,102,158,232, 39, 70,109,
/* 0x0850 */ 249,107, 68,169,236, 55, 72,109,251,115, 69,169, 19, 0, 0,249, /* 0x0850 */ 247, 99, 67,169,234, 47, 71,109,249,107, 68,169,236, 55, 72,109,
/* 0x0860 */ 238, 75, 64,253,160, 14, 64,249,245, 91, 66,169, 96, 2, 0,139, /* 0x0860 */ 251,115, 69,169, 19, 0, 0,249,238, 75, 64,253,160, 14, 64,249,
/* 0x0870 */ 243, 83, 65,169,253,123,204,168,192, 3, 95,214,253,123,182,169, /* 0x0870 */ 245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169,253,123,204,168,
/* 0x0880 */ 253, 3, 0,145,243, 83, 1,169,243, 3, 2,170,249, 35, 0,249, /* 0x0880 */ 192, 3, 95,214,253,123,182,169,253, 3, 0,145,243, 83, 1,169,
/* 0x0890 */ 162, 63, 0,249,249, 3, 7,170, 2, 0, 64,185,116, 2, 1,145, /* 0x0890 */ 243, 3, 2,170,249, 35, 0,249,162, 63, 0,249,249, 3, 7,170,
/* 0x08a0 */ 162, 59, 0,249, 2, 4, 64,185,247, 99, 3,169,160, 79, 0,249, /* 0x08a0 */ 2, 0, 64,185,116, 2, 1,145,162, 59, 0,249, 2, 4, 64,185,
/* 0x08b0 */ 247, 3, 3,170,162, 75, 0,249, 3, 0,128,210,226, 3, 4,170, /* 0x08b0 */ 247, 99, 3,169,160, 79, 0,249,247, 3, 3,170,162, 75, 0,249,
/* 0x08c0 */ 160, 71, 0,249,161, 67, 0,249,160, 67, 2,145,161,195, 1,145, /* 0x08c0 */ 3, 0,128,210,226, 3, 4,170,160, 71, 0,249,161, 67, 0,249,
/* 0x08d0 */ 165, 47, 0,249,245, 91, 2,169,166, 55, 0,249, 22, 0,128, 82, /* 0x08d0 */ 160, 67, 2,145,161,195, 1,145,165, 47, 0,249,245, 91, 2,169,
/* 0x08e0 */ 164, 51, 0,249,167,254,255,151,164, 51, 64,249,161, 3, 2,145, /* 0x08e0 */ 166, 55, 0,249, 22, 0,128, 82,164, 51, 0,249,167,254,255,151,
/* 0x08f0 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, /* 0x08f0 */ 164, 51, 64,249,161, 3, 2,145,165, 47, 64,249, 2, 0,128, 82,
/* 0x0900 */ 231, 3, 25,170,224, 3, 19,170,240,254,255,151,245, 3, 0,170, /* 0x0900 */ 227, 3, 23,170,166,163, 1,145,231, 3, 25,170,224, 3, 19,170,
/* 0x0910 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,116,254,255,151, /* 0x0910 */ 240,254,255,151,245, 3, 0,170, 33, 1,128, 82,224, 3, 23,170,
/* 0x0920 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, /* 0x0920 */ 226, 3, 21,170,116,254,255,151, 96,114, 64,121,223, 2, 0,107,
/* 0x0930 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, /* 0x0930 */ 226, 4, 0, 84,128, 2, 64,185, 31, 12, 0,113, 33, 4, 0, 84,
/* 0x0940 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 92,254,255,151, /* 0x0940 */ 129, 10, 64,249,160, 55, 64,249, 32, 0, 0,139, 1, 0,128, 82,
/* 0x0950 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 51,254,255,151, /* 0x0950 */ 226, 3, 1, 42, 92,254,255,151,248, 3, 0, 42, 96, 0,248, 54,
/* 0x0960 */ 225, 3, 19,170, 2,128,128,210, 50,254,255,151, 31, 0, 16,241, /* 0x0960 */ 224, 15,128, 82, 51,254,255,151,225, 3, 19,170, 2,128,128,210,
/* 0x0970 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, /* 0x0970 */ 50,254,255,151, 31, 0, 16,241, 65,255,255, 84, 1, 0,128,210,
/* 0x0980 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, /* 0x0980 */ 226, 3, 24, 42,227, 3, 1,170,228, 3, 1,170,229, 3, 1,170,
/* 0x0990 */ 224, 3, 19,170,191, 55, 0,249,204,254,255,151,245, 3, 0,170, /* 0x0990 */ 166,163, 1,145,231, 3, 25,170,224, 3, 19,170,191, 55, 0,249,
/* 0x09a0 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82, 80,254,255,151, /* 0x09a0 */ 204,254,255,151,245, 3, 0,170,162, 55, 64,249,224, 3, 23,170,
/* 0x09b0 */ 224, 3, 24, 42, 37,254,255,151,148,226, 0,145,214, 6, 0, 17, /* 0x09b0 */ 225, 0,128, 82, 80,254,255,151,224, 3, 24, 42, 37,254,255,151,
/* 0x09c0 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, /* 0x09c0 */ 148,226, 0,145,214, 6, 0, 17,216,255,255, 23,224, 3, 21,170,
/* 0x09d0 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 /* 0x09d0 */ 249, 35, 64,249,243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,
/* 0x09e0 */ 253,123,202,168,192, 3, 95,214
}; };
+35 -24
View File
@@ -86,24 +86,34 @@ __NR_write = 0x40 // 64
#define TRACE(arg) /*empty*/ #define TRACE(arg) /*empty*/
#endif //} #endif //}
//lr .req x30
wLENU .req w29
xLENU .req x29
xADRU .req x28
wfd .req w27
xfd .req x27
xPMASK .req x26
// The above 4 registers are passed on stack to unfolded code.
xfexp .req x28 xelfa .req x25
xPMASK .req x27 xfexp .req x24
xADRU .req x26 // xPMASK, xlefa, xfexp still are used here.
wLENU .req w25
wfd .req w24 wLENM .req w29 // overlaps wLENU
xauxv .req x23 xLENM .req x29
xelfa .req x22
xADRM .req x21
xADRX .req xADRM
wLENM .req w20
wLENX .req wLENM wLENX .req wLENM
xLENM .req x20 xADRM .req x28 // overlaps xADRU
xLENX .req xLENM xADRX .req xADRM
xFOLD .req x19 wobinf .req w27 // overlaps wfd
wszuf .req w18
xrelo .req x17 xrelo .req x23
wobinf .req w16 xauxv .req x22
wszuf .req w21
xszuf .req x21
xFOLD .req x20
// http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf
// x18 is CLOBBERED: "The platform register"
wmeth .req w4 wmeth .req w4
xmeth .req x4 xmeth .req x4
@@ -178,22 +188,23 @@ unfold:
ldr w0, [xfexp,#sz_pack2 - f_exp] ldr w0, [xfexp,#sz_pack2 - f_exp]
add xelfa,xfexp,#sz_pack2 - f_exp add xelfa,xfexp,#sz_pack2 - f_exp
sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub
ldr w0,[xFOLD,#sz_unc + LBINFO - LxFOLD] // sz_unc of fold ldr wszuf,[xFOLD,#sz_unc + LBINFO - LxFOLD] // sz_unc of fold
sub x1,xFOLD,xelfa // offset(FOLD) sub x1,xFOLD,xelfa // offset(FOLD)
mov w4,#-1 // fd mov w4,#-1 // fd
mov wszuf,w0 // save sz_unc of fold
mov w3,#MAP_PRIVATE|MAP_ANONYMOUS mov w3,#MAP_PRIVATE|MAP_ANONYMOUS
add x1,x1,x0; mov wLENU,w1 // length needed add x1,x1,wszuf,uxtw // length needed
mov x0,#0 // kernel chooses addr mov x0,#0 // kernel chooses addr
call mmapRW0; mov xADRU,x0 call mmapRW0
PUSH2(x0,x1) // ADRU, LENU
// Duplicate the input data. // Duplicate the input data.
ldr w8,[xFOLD,#sz_cpr + LBINFO - LxFOLD] // sz_cpr of fold ldr w8,[xFOLD,#sz_cpr + LBINFO - LxFOLD] // sz_cpr of fold
sub x1,xFOLD,xelfa // offset(FOLD) sub x1,xFOLD,xelfa // offset(FOLD)
mov w4,wfd // from file mov w4,wfd // from file
mov w3,#MAP_PRIVATE|MAP_FIXED mov w3,#MAP_PRIVATE|MAP_FIXED
PUSH2(xPMASK,xfd)
add x1,x1,x8 // + sz_cpr of fold; x1 <= .st_size add x1,x1,x8 // + sz_cpr of fold; x1 <= .st_size
call mmapRW0 call mmapRW0 // IN: x0= ADRU; OUT: x0= ADRU
sub xrelo,x0,xelfa // relocation amount sub xrelo,x0,xelfa // relocation amount
mov x8,xfexp; add xfexp,xfexp,xrelo // use old f_exp; xfexp= new &f_exp mov x8,xfexp; add xfexp,xfexp,xrelo // use old f_exp; xfexp= new &f_exp
@@ -207,7 +218,7 @@ unfold:
// The new f_exp has PROT_WRITE, so use the old f_exp to decompress // The new f_exp has PROT_WRITE, so use the old f_exp to decompress
ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD] ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD]
PUSH1(xmeth) // lzma uses for EOF PUSH1(xszuf) // lzma uses for EOF
mov ldst,sp // &slot on stack mov ldst,sp // &slot on stack
mov dst,xFOLD // dst for unfolding mov dst,xFOLD // dst for unfolding
ldr lsrc,[xFOLD,#sz_cpr + LBINFO - LxFOLD] ldr lsrc,[xFOLD,#sz_cpr + LBINFO - LxFOLD]
@@ -231,8 +242,8 @@ unfold:
// Use the unfolded code // Use the unfolded code
ldr wLENX,[xfexp,#sz_pack2 - f_exp] ldr wLENX,[xfexp,#sz_pack2 - f_exp]
add xADRX,xelfa,wobinf,uxtw // old compressed data add xADRX,xelfa,wobinf,uxtw // old compressed &b_info
add xADRX,xADRX,xrelo // new compressed data add xADRX,xADRX,xrelo // new compressed &b_info
add x0,xFOLD,#4*4 // jmp over get_page_mask() add x0,xFOLD,#4*4 // jmp over get_page_mask()
jr x0 jr x0
+18 -17
View File
@@ -73,24 +73,25 @@ get_page_size:
fold_begin: fold_begin:
//// brk #0 // DEBUG //// brk #0 // DEBUG
// In: sp/ argc,argv,... // In: sp/ PMASK,fd,ADRU,LENU, argc,argv,...
xfexp .req x28 //lr .req x30
xPMASK .req x27 wLENX .req w29
xADRX .req x28
wLENU .req w27
xLENU .req x27
xADRU .req x26 xADRU .req x26
wLENU .req w25
wfd .req w24 xelfa .req x25
xauxv .req x23 xfexp .req x24
xelfa .req x22 xauxe .req x23 // past new auxv
xADRM .req x21 xauxv .req x22
xADRX .req xADRM
wLENM .req w20 wfd .req w21
wLENX .req wLENM xfd .req x21
xLENM .req x20 xPMASK .req x20
xLENX .req xLENM
xFOLD .req x19 // unused POP4(xPMASK,xfd, xADRU,xLENU)
xauxe .req xFOLD // past new auxv
xrelo .req x17
wobinf .req w16
ldr x7,[sp,#0] // argc ldr x7,[sp,#0] // argc
mov x0,sp // current stack pointer mov x0,sp // current stack pointer
+3 -3
View File
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db4 2**0 CONTENTS, READONLY 8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db4 2**0 CONTENTS, READONLY
9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY 9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY 10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000150 0000000000000000 0000000000000000 00001290 2**2 CONTENTS, RELOC, READONLY 11 ELFMAINZ 0000014c 0000000000000000 0000000000000000 00001290 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ 0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
@@ -39,7 +39,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 MFLG 0000000000000000 R_AARCH64_ABS32 MFLG
0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x0000000000000104 0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x0000000000000100
RELOCATION RECORDS FOR [LZMA_ELF00]: RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -47,4 +47,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
000000000000014c R_AARCH64_ABS32 O_BINFO 0000000000000148 R_AARCH64_ABS32 O_BINFO
+30 -30
View File
@@ -8,44 +8,44 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x924 .text 0x00000000001000bc 0x92c
*(.text) *(.text)
.text 0x00000000001000bc 0x230 tmp/arm64-linux.elf-fold.o .text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100220 my_bkpt 0x0000000000100228 my_bkpt
0x0000000000100228 exit 0x0000000000100230 exit
0x0000000000100230 read 0x0000000000100238 read
0x000000000010023c write 0x0000000000100244 write
0x0000000000100248 close 0x0000000000100250 close
0x0000000000100254 getpid 0x000000000010025c getpid
0x0000000000100260 brk 0x0000000000100268 brk
0x000000000010026c munmap 0x0000000000100274 munmap
0x0000000000100278 mprotect 0x0000000000100280 mprotect
0x0000000000100284 mmap_privanon 0x000000000010028c mmap_privanon
0x0000000000100294 mmap 0x000000000010029c mmap
0x00000000001002a0 unlink 0x00000000001002a8 unlink
0x00000000001002b4 readlink 0x00000000001002bc readlink
0x00000000001002bc open 0x00000000001002c4 open
0x00000000001002d8 __clear_cache 0x00000000001002e0 __clear_cache
.text 0x00000000001002ec 0x6f4 tmp/arm64-linux.elf-main.o .text 0x00000000001002f4 0x6f4 tmp/arm64-linux.elf-main.o
0x000000000010087c upx_main 0x0000000000100884 upx_main
*(.data) *(.data)
.data 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .data 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009e0 0x0 tmp/arm64-linux.elf-main.o .data 0x00000000001009e8 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x00000000001009e0 0x0 .iplt 0x00000000001009e8 0x0
.iplt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .iplt 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009e0 0x0 .rela.dyn 0x00000000001009e8 0x0
.rela.iplt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .rela.iplt 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.data .data
LOAD tmp/arm64-linux.elf-fold.o LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o LOAD tmp/arm64-linux.elf-main.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x00000000001009e0 0x0 .igot.plt 0x00000000001009e8 0x0
.igot.plt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .igot.plt 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009e0 0x0 .bss 0x00000000001009e8 0x0
.bss 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .bss 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009e0 0x0 tmp/arm64-linux.elf-main.o .bss 0x00000000001009e8 0x0 tmp/arm64-linux.elf-main.o