From 3926ccccad67c505839e8a9dcf2ddcf8f177b82f Mon Sep 17 00:00:00 2001 From: John Reiser Date: Wed, 2 Apr 2008 19:09:31 -0700 Subject: [PATCH] MIPS-linux.elf flush icache after moving decompressor --- src/stub/mips.r3000-linux.elf-entry.h | 379 ++++++++--------- src/stub/mipsel.r3000-linux.elf-entry.h | 381 +++++++++--------- src/stub/src/mipsel.r3000-linux.elf-entry.S | 35 +- .../tmp/mips.r3000-linux.elf-entry.bin.dump | 2 +- .../tmp/mipsel.r3000-linux.elf-entry.bin.dump | 2 +- 5 files changed, 405 insertions(+), 394 deletions(-) diff --git a/src/stub/mips.r3000-linux.elf-entry.h b/src/stub/mips.r3000-linux.elf-entry.h index fa3719d6..4fe59734 100644 --- a/src/stub/mips.r3000-linux.elf-entry.h +++ b/src/stub/mips.r3000-linux.elf-entry.h @@ -1,5 +1,5 @@ /* mips.r3000-linux.elf-entry.h - created from mips.r3000-linux.elf-entry.bin, 9819 (0x265b) bytes + created from mips.r3000-linux.elf-entry.bin, 9839 (0x266f) bytes This file is part of the UPX executable compressor. @@ -28,16 +28,16 @@ */ -#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 9819 -#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0xef594611 -#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x49a58062 +#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 9839 +#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x867947f3 +#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x39e02ae7 -unsigned char stub_mips_r3000_linux_elf_entry[9819] = { +unsigned char stub_mips_r3000_linux_elf_entry[9839] = { 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ - 0, 0, 28, 40, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 0, 28, 60, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ 0, 22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 43, /* 0x 40 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 48, /* 0x 40 */ 39,247, 0, 0, 60, 13,128, 0, 1,160, 72, 33, 16, 0, 0, 20, /* 0x 50 */ 36, 11, 0, 1,144,137, 0, 3,144,142, 0, 2, 0, 9, 74, 0, /* 0x 60 */ 1, 46, 72, 37,144,142, 0, 1, 0, 9, 74, 0, 1, 46, 72, 37, /* 0x 70 */ @@ -465,186 +465,187 @@ unsigned char stub_mips_r3000_linux_elf_entry[9819] = { 15,164, 0, 0, 0, 12, 36, 4, 0,127, 36, 2, 15,161, 0, 0, /* 0x1ad0 */ 0, 12, 39,189,255,224,142,228,255,224, 36, 6, 0, 7,142,229, /* 0x1ae0 */ 255,228, 36, 7, 8, 18,175,160, 0, 16, 36, 2, 15,250, 0, 0, /* 0x1af0 */ - 0, 12, 20,224, 0, 27, 0, 64, 32, 33,142,229,255,236,142,243, /* 0x1b00 */ -255,232,142,242,255,240,142,241,255,244, 16,133, 0, 13, 0,133, /* 0x1b10 */ - 64, 35, 2,215, 48, 35, 0,213, 48, 33, 2,232,184, 33,140,168, /* 0x1b20 */ - 0, 0, 36,132, 0, 8,140,169, 0, 4, 36,198,255,248,172,136, /* 0x1b30 */ -255,248, 36,165, 0, 8, 28,192,255,249,172,137,255,252, 0,128, /* 0x1b40 */ - 16, 33,142,200, 0, 0, 3,160, 56, 33,175,168, 0, 0, 0, 64, /* 0x1b50 */ - 48, 33,142,197, 0, 4, 38,196, 0, 12, 2,224, 0, 8, 0,192, /* 0x1b60 */ -248, 33, 16, 0,255,255, 0, 0, 0, 0,142,245,255,220, 4, 17, /* 0x1b70 */ -255,216, 3,224,176, 33,102,105,108,101, 32,102,111,114,109, 97, /* 0x1b80 */ -116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,115, 10, /* 0x1b90 */ - 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1ba0 */ - 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1bb0 */ -101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1bc0 */ - 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1bd0 */ -111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1be0 */ - 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, /* 0x1bf0 */ - 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, /* 0x1c00 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1c10 */ - 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1c20 */ - 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1c30 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, /* 0x1c40 */ - 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1c50 */ - 48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1c60 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c70 */ - 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1c80 */ - 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x1c90 */ - 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, /* 0x1ca0 */ - 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 48, 32, /* 0x1cb0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1cc0 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, 52, 32, 32, 50, /* 0x1cd0 */ - 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1ce0 */ - 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1cf0 */ - 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1d00 */ - 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1d10 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1d20 */ - 48, 48, 48, 48, 50,101, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1d30 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1d40 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, /* 0x1d50 */ - 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1d60 */ - 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1d70 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 48, /* 0x1d80 */ - 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1d90 */ - 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, /* 0x1da0 */ - 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, /* 0x1db0 */ - 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1dc0 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1dd0 */ - 48, 52, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1de0 */ - 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1df0 */ - 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, /* 0x1e00 */ - 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1e10 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1e20 */ - 48, 48, 48, 48,102, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1e30 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1e40 */ - 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x1e50 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, /* 0x1e60 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ - 32, 32, 48, 48, 48, 48, 49, 97, 53, 56, 32, 32, 50, 42, 42, 48, /* 0x1e80 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1e90 */ - 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, /* 0x1ea0 */ - 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, /* 0x1eb0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1ec0 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 99, 32, 32, 50, /* 0x1ed0 */ - 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1ee0 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, /* 0x1ef0 */ - 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f00 */ - 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f10 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 54, 99, /* 0x1f20 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1f30 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, /* 0x1f40 */ - 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1f50 */ - 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1f60 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1f70 */ - 97, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1f80 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x1f90 */ - 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, /* 0x1fa0 */ - 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1fc0 */ - 48, 48, 49, 97, 97, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1fd0 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1fe0 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, /* 0x1ff0 */ - 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2000 */ - 98, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2010 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 99, 97, /* 0x2020 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x2030 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, /* 0x2040 */ - 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2050 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, /* 0x2060 */ - 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, /* 0x2070 */ - 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x2080 */ - 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, /* 0x2090 */ - 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x20a0 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20b0 */ - 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, /* 0x20c0 */ - 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, /* 0x20d0 */ - 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x20e0 */ - 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x20f0 */ - 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2100 */ - 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, /* 0x2110 */ - 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2120 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, /* 0x2130 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, /* 0x2140 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2150 */ - 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, /* 0x2160 */ - 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, /* 0x2170 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2180 */ - 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, /* 0x2190 */ - 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, /* 0x21a0 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x21b0 */ - 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, /* 0x21c0 */ - 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, /* 0x21d0 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x21e0 */ - 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, /* 0x21f0 */ - 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, /* 0x2200 */ - 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2210 */ - 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2220 */ - 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, /* 0x2230 */ - 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, /* 0x2240 */ - 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, /* 0x2250 */ - 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2260 */ - 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, /* 0x2270 */ - 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, /* 0x2280 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2290 */ - 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, /* 0x22a0 */ - 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x22b0 */ - 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x22c0 */ - 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x22d0 */ - 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x22e0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, 48, 48, /* 0x22f0 */ - 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x2300 */ - 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x2310 */ - 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2320 */ - 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x2330 */ - 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2340 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x2350 */ - 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, 48, 48, /* 0x2360 */ - 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, /* 0x2370 */ - 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2380 */ - 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2390 */ - 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x23a0 */ - 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x23b0 */ - 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23c0 */ - 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x23d0 */ - 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x23e0 */ - 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, /* 0x23f0 */ - 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2400 */ - 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, /* 0x2410 */ - 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2420 */ - 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, /* 0x2430 */ - 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2440 */ - 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, /* 0x2450 */ - 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2460 */ - 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, /* 0x2470 */ - 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2480 */ - 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, /* 0x2490 */ - 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, /* 0x24a0 */ - 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x24b0 */ - 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x24c0 */ - 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, /* 0x24d0 */ - 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x24e0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x24f0 */ - 69, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 77, 73, 80, /* 0x2500 */ - 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x2510 */ - 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2520 */ - 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x2530 */ - 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2540 */ - 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2550 */ - 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 99, /* 0x2560 */ - 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x2570 */ - 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, /* 0x2580 */ - 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x2590 */ - 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, /* 0x25a0 */ - 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x25b0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x25c0 */ - 48, 48, 48, 48, 98, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, /* 0x25d0 */ - 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x25e0 */ - 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x25f0 */ - 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, /* 0x2600 */ - 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2610 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2620 */ - 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2630 */ - 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2640 */ - 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2650 */ + 0, 12, 20,224, 0, 32, 0, 64,128, 33,142,228,255,236,142,243, /* 0x1b00 */ +255,232,142,242,255,240,142,241,255,244, 18, 4, 0, 18, 2, 4, /* 0x1b10 */ + 64, 35, 2,215,160, 35, 2,149, 48, 33, 2,232,184, 33, 2, 0, /* 0x1b20 */ + 40, 33,140,136, 0, 0, 36,165, 0, 8,140,137, 0, 4, 36,198, /* 0x1b30 */ +255,248,172,168,255,248, 36,132, 0, 8, 28,192,255,249,172,169, /* 0x1b40 */ +255,252, 0,160,128, 33, 2,224, 32, 33, 36, 6, 0, 3, 36, 2, /* 0x1b50 */ + 16, 51, 0, 0, 0, 12,142,200, 0, 0, 3,160, 56, 33,175,168, /* 0x1b60 */ + 0, 0, 2, 0, 48, 33,142,197, 0, 4, 38,196, 0, 12, 2,224, /* 0x1b70 */ + 0, 8, 0,192,248, 33, 16, 0,255,255, 0, 0, 0, 0,142,245, /* 0x1b80 */ +255,220, 4, 17,255,211, 3,224,176, 33,102,105,108,101, 32,102, /* 0x1b90 */ +111,114,109, 97,116, 32,101,108,102, 51, 50, 45, 98,105,103,109, /* 0x1ba0 */ +105,112,115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, /* 0x1bb0 */ +100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1bc0 */ + 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, /* 0x1bd0 */ + 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, /* 0x1be0 */ +105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, /* 0x1bf0 */ +108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x1c00 */ + 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, /* 0x1c10 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c20 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, /* 0x1c30 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1c40 */ + 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1c50 */ + 32, 49, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1c60 */ + 32, 48, 48, 48, 48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c70 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1c80 */ + 48, 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1c90 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1ca0 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, /* 0x1cb0 */ + 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1cc0 */ + 49, 52, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1cd0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, /* 0x1ce0 */ + 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1cf0 */ + 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1d00 */ + 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, /* 0x1d10 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, /* 0x1d20 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d30 */ + 48, 32, 32, 48, 48, 48, 48, 48, 50,101, 52, 32, 32, 50, 42, 42, /* 0x1d40 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x1d50 */ + 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, /* 0x1d60 */ + 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, /* 0x1d70 */ + 48, 48, 48, 48, 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d80 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1d90 */ + 48, 48, 52, 48, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1da0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1db0 */ + 32, 32, 53, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, /* 0x1dc0 */ + 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, /* 0x1dd0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1de0 */ + 48, 48, 48, 48, 48, 52, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1df0 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1e00 */ + 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x1e10 */ + 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, /* 0x1e20 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1e30 */ + 48, 32, 32, 48, 48, 48, 48, 48,102, 56, 48, 32, 32, 50, 42, 42, /* 0x1e40 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1e50 */ + 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, /* 0x1e60 */ + 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x1e70 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e80 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 56, 32, 32, /* 0x1e90 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1ea0 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, /* 0x1eb0 */ + 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1ec0 */ + 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ed0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, /* 0x1ee0 */ + 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ef0 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, /* 0x1f00 */ + 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1f10 */ + 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f20 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f30 */ + 49, 97, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1f40 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1f50 */ + 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, /* 0x1f60 */ + 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x1f70 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1f80 */ + 48, 48, 48, 49, 97, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1f90 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1fa0 */ + 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, /* 0x1fb0 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, /* 0x1fc0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1fd0 */ + 32, 32, 48, 48, 48, 48, 49, 97, 97, 48, 32, 32, 50, 42, 42, 48, /* 0x1fe0 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1ff0 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, /* 0x2000 */ + 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x2010 */ + 48, 48, 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2030 */ + 49, 97, 99, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2040 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, /* 0x2050 */ + 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, /* 0x2060 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2070 */ + 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2080 */ + 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2090 */ + 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x20a0 */ + 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, /* 0x20b0 */ + 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x20c0 */ + 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, /* 0x20d0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x20e0 */ + 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20f0 */ + 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2100 */ + 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2110 */ +108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, /* 0x2120 */ + 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, /* 0x2130 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2140 */ + 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x2150 */ + 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2160 */ + 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, /* 0x2170 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, /* 0x2180 */ + 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2190 */ + 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, /* 0x21a0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x21b0 */ + 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x21c0 */ + 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, /* 0x21d0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x21e0 */ + 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x21f0 */ + 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, /* 0x2200 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x2210 */ + 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2220 */ + 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, /* 0x2230 */ + 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x2240 */ + 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2250 */ + 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2260 */ + 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2270 */ +108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2280 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x2290 */ + 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x22a0 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x22b0 */ + 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x22c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x22d0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, /* 0x22e0 */ + 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x22f0 */ + 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, /* 0x2300 */ + 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2310 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2320 */ + 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2330 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2340 */ + 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, /* 0x2350 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x2360 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, /* 0x2370 */ + 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, /* 0x2380 */ + 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, /* 0x2390 */ + 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, /* 0x23a0 */ + 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x23b0 */ + 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, /* 0x23c0 */ + 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x23d0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, /* 0x23e0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x23f0 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, /* 0x2400 */ + 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2410 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, /* 0x2420 */ + 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2430 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, /* 0x2440 */ + 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2450 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, /* 0x2460 */ + 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2470 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, /* 0x2480 */ + 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2490 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, /* 0x24a0 */ + 48, 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x24b0 */ + 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x24c0 */ + 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x24d0 */ + 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, /* 0x24e0 */ + 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x24f0 */ + 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2500 */ + 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, /* 0x2510 */ + 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x2520 */ + 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, /* 0x2530 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x2540 */ + 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2550 */ + 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2560 */ + 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x2570 */ + 48, 48, 99, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, /* 0x2580 */ + 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, /* 0x2590 */ + 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x25a0 */ + 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, /* 0x25b0 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x25c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x25d0 */ + 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 77, 73, 80, /* 0x25e0 */ + 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x25f0 */ + 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2600 */ + 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, /* 0x2610 */ + 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2620 */ + 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2630 */ + 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x2640 */ + 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x2650 */ + 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2660 */ }; diff --git a/src/stub/mipsel.r3000-linux.elf-entry.h b/src/stub/mipsel.r3000-linux.elf-entry.h index e6b3e150..7f416515 100644 --- a/src/stub/mipsel.r3000-linux.elf-entry.h +++ b/src/stub/mipsel.r3000-linux.elf-entry.h @@ -1,5 +1,5 @@ /* mipsel.r3000-linux.elf-entry.h - created from mipsel.r3000-linux.elf-entry.bin, 10330 (0x285a) bytes + created from mipsel.r3000-linux.elf-entry.bin, 10350 (0x286e) bytes This file is part of the UPX executable compressor. @@ -28,16 +28,16 @@ */ -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10330 -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xf9179c9a -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x24d5b17e +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10350 +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x7e9a9e7c +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x749cc664 -unsigned char stub_mipsel_r3000_linux_elf_entry[10330] = { +unsigned char stub_mipsel_r3000_linux_elf_entry[10350] = { 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ - 36, 30, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ + 56, 30, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ 22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 17, 4, /* 0x 40 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 17, 4, /* 0x 40 */ 0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 50 */ 194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 60 */ 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */ @@ -496,187 +496,188 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[10330] = { 108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, 2, 36, 12, 0, /* 0x1cc0 */ 0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, 0, 0,224,255, /* 0x1cd0 */ 189, 39,224,255,228,142, 7, 0, 6, 36,228,255,229,142, 18, 8, /* 0x1ce0 */ - 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 27, 0, /* 0x1cf0 */ -224, 20, 33, 32, 64, 0,236,255,229,142,232,255,243,142,240,255, /* 0x1d00 */ -242,142,244,255,241,142, 13, 0,133, 16, 35, 64,133, 0, 35, 48, /* 0x1d10 */ -215, 2, 33, 48,213, 0, 33,184,232, 2, 0, 0,168,140, 8, 0, /* 0x1d20 */ -132, 36, 4, 0,169,140,248,255,198, 36,248,255,136,172, 8, 0, /* 0x1d30 */ -165, 36,249,255,192, 28,252,255,137,172, 33, 16,128, 0, 0, 0, /* 0x1d40 */ -200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, 64, 0, 4, 0, /* 0x1d50 */ -197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248,192, 0,255,255, /* 0x1d60 */ - 0, 16, 0, 0, 0, 0,220,255,245,142,216,255, 17, 4, 33,176, /* 0x1d70 */ -224, 3,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, /* 0x1d80 */ -102, 51, 50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, /* 0x1d90 */ - 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, /* 0x1da0 */ -109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, /* 0x1db0 */ - 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */ - 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, /* 0x1dd0 */ -102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, /* 0x1de0 */ - 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, /* 0x1df0 */ - 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, /* 0x1e00 */ - 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1e10 */ - 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1e20 */ - 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1e30 */ - 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, /* 0x1e40 */ - 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1e50 */ - 48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1e60 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ - 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1e80 */ - 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1e90 */ - 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, /* 0x1ea0 */ - 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, 32, 32, /* 0x1eb0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1ec0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, 32, 32, 50, 42, /* 0x1ed0 */ - 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1ee0 */ - 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ef0 */ - 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1f00 */ - 48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f10 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f20 */ - 48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1f30 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1f40 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, /* 0x1f50 */ - 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f60 */ - 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f70 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 49, 48, /* 0x1f80 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1f90 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, /* 0x1fa0 */ - 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x1fb0 */ - 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1fc0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1fd0 */ - 54, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1fe0 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ff0 */ - 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, /* 0x2000 */ - 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2010 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2020 */ - 48, 48, 49, 49, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2030 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x2040 */ - 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, /* 0x2050 */ - 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, /* 0x2060 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2070 */ - 32, 48, 48, 48, 48, 49, 99, 53, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x2080 */ - 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x2090 */ - 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, 68, /* 0x20a0 */ - 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, /* 0x20b0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x20c0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 48, 32, 32, 50, 42, /* 0x20d0 */ - 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x20e0 */ - 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, /* 0x20f0 */ - 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, /* 0x2100 */ - 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2110 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 56, 32, /* 0x2120 */ - 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x2130 */ - 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, /* 0x2140 */ - 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x2150 */ - 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2160 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, /* 0x2170 */ - 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x2180 */ - 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, /* 0x2190 */ - 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, /* 0x21a0 */ - 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x21b0 */ - 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x21c0 */ - 48, 49, 99, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x21d0 */ - 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x21e0 */ - 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, /* 0x21f0 */ - 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, /* 0x2200 */ - 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2210 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 99, 54, 32, /* 0x2220 */ - 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x2230 */ - 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, /* 0x2240 */ - 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2250 */ - 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x2260 */ - 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, /* 0x2270 */ - 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2280 */ - 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, /* 0x2290 */ - 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x22a0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x22b0 */ - 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, /* 0x22c0 */ - 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, /* 0x22d0 */ - 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x22e0 */ - 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x22f0 */ - 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2300 */ -100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2310 */ - 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2320 */ - 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, /* 0x2330 */ - 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, /* 0x2340 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x2350 */ - 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x2360 */ - 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, /* 0x2370 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x2380 */ - 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x2390 */ - 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, /* 0x23a0 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x23b0 */ - 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x23c0 */ - 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, /* 0x23d0 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x23e0 */ - 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x23f0 */ - 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, /* 0x2400 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, /* 0x2410 */ - 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2420 */ - 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, /* 0x2430 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, /* 0x2440 */ - 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, 83, /* 0x2450 */ - 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2460 */ -100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, /* 0x2470 */ - 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, /* 0x2480 */ - 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x2490 */ - 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x24a0 */ - 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x24b0 */ - 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x24c0 */ - 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x24d0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x24e0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, 48, 48, 48, /* 0x24f0 */ - 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x2500 */ - 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, /* 0x2510 */ - 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2520 */ - 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2530 */ - 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2540 */ - 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2550 */ - 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, /* 0x2560 */ - 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, /* 0x2570 */ - 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95, /* 0x2580 */ -115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2590 */ - 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, /* 0x25a0 */ - 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x25b0 */ - 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x25c0 */ - 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x25d0 */ - 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x25e0 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, /* 0x25f0 */ - 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2600 */ - 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, /* 0x2610 */ - 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2620 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, /* 0x2630 */ - 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2640 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, /* 0x2650 */ - 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2660 */ - 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, /* 0x2670 */ - 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2680 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, /* 0x2690 */ - 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x26a0 */ - 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, /* 0x26b0 */ - 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x26c0 */ - 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, /* 0x26d0 */ - 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x26e0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x26f0 */ - 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, /* 0x2700 */ - 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x2710 */ - 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2720 */ - 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, /* 0x2730 */ - 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2740 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2750 */ - 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, /* 0x2760 */ - 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2770 */ - 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, /* 0x2780 */ - 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x2790 */ - 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, /* 0x27a0 */ - 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x27b0 */ - 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x27c0 */ - 48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, /* 0x27d0 */ - 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x27e0 */ - 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x27f0 */ - 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, /* 0x2800 */ - 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2810 */ - 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2820 */ - 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, /* 0x2830 */ - 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x2840 */ - 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2850 */ + 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 32, 0, /* 0x1cf0 */ +224, 20, 33,128, 64, 0,236,255,228,142,232,255,243,142,240,255, /* 0x1d00 */ +242,142,244,255,241,142, 18, 0, 4, 18, 35, 64, 4, 2, 35,160, /* 0x1d10 */ +215, 2, 33, 48,149, 2, 33,184,232, 2, 33, 40, 0, 2, 0, 0, /* 0x1d20 */ +136,140, 8, 0,165, 36, 4, 0,137,140,248,255,198, 36,248,255, /* 0x1d30 */ +168,172, 8, 0,132, 36,249,255,192, 28,252,255,169,172, 33,128, /* 0x1d40 */ +160, 0, 33, 32,224, 2, 3, 0, 6, 36, 51, 16, 2, 36, 12, 0, /* 0x1d50 */ + 0, 0, 0, 0,200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, /* 0x1d60 */ + 0, 2, 4, 0,197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248, /* 0x1d70 */ +192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255,245,142,211,255, /* 0x1d80 */ + 17, 4, 33,176,224, 3,102,105,108,101, 32,102,111,114,109, 97, /* 0x1d90 */ +116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101,109,105, /* 0x1da0 */ +112,115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100, /* 0x1db0 */ +120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */ + 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, /* 0x1dd0 */ + 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105, /* 0x1de0 */ +108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, /* 0x1df0 */ + 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x1e00 */ + 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, /* 0x1e10 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e20 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, /* 0x1e30 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1e40 */ + 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1e50 */ + 49, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1e60 */ + 48, 48, 48, 48, 48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e80 */ + 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1e90 */ + 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1ea0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, /* 0x1eb0 */ + 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x1ec0 */ +102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1ed0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, /* 0x1ee0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1ef0 */ + 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1f00 */ + 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, /* 0x1f10 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, /* 0x1f20 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f30 */ + 32, 32, 48, 48, 48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, /* 0x1f40 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1f50 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, /* 0x1f60 */ + 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, /* 0x1f70 */ + 48, 48, 48, 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f80 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f90 */ + 48, 54, 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1fa0 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1fb0 */ + 32, 53, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, /* 0x1fc0 */ + 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1fd0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1fe0 */ + 48, 48, 48, 48, 54, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1ff0 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x2000 */ + 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x2010 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, /* 0x2020 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2030 */ + 32, 32, 48, 48, 48, 48, 49, 49, 56, 52, 32, 32, 50, 42, 42, 48, /* 0x2040 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x2050 */ + 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x2060 */ + 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2070 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2080 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, 99, 32, 32, 50, /* 0x2090 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x20a0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, /* 0x20b0 */ + 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x20c0 */ + 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x20d0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 48, /* 0x20e0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x20f0 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, /* 0x2100 */ + 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2110 */ + 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2120 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2130 */ + 99, 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2140 */ + 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x2150 */ + 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2160 */ + 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2170 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2180 */ + 48, 48, 49, 99, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2190 */ + 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x21a0 */ + 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x21b0 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, /* 0x21c0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x21d0 */ + 32, 48, 48, 48, 48, 49, 99, 57, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x21e0 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x21f0 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, /* 0x2200 */ + 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2210 */ + 48, 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2220 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2230 */ + 99, 99, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2240 */ + 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, /* 0x2250 */ + 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, /* 0x2260 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x2270 */ + 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x2280 */ + 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2290 */ + 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x22a0 */ + 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, /* 0x22b0 */ + 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x22c0 */ + 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, /* 0x22d0 */ + 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x22e0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x22f0 */ + 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2300 */ + 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2310 */ + 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, /* 0x2320 */ + 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, /* 0x2330 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x2340 */ + 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x2350 */ + 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2360 */ +100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, /* 0x2370 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x2380 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2390 */ +100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, /* 0x23a0 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, /* 0x23b0 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x23c0 */ +100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, /* 0x23d0 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x23e0 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x23f0 */ +100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, /* 0x2400 */ + 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2410 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2420 */ +100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, /* 0x2430 */ + 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, /* 0x2440 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, /* 0x2450 */ + 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x2460 */ + 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2470 */ + 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, /* 0x2480 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2490 */ + 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x24a0 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x24b0 */ + 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x24c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x24d0 */ + 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, /* 0x24e0 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x24f0 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, /* 0x2500 */ + 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2510 */ + 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2520 */ + 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2530 */ + 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x2540 */ + 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, /* 0x2550 */ + 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2560 */ + 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, /* 0x2570 */ + 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, /* 0x2580 */ + 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, /* 0x2590 */ + 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, /* 0x25a0 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x25b0 */ + 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, /* 0x25c0 */ + 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x25d0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x25e0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x25f0 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, /* 0x2600 */ + 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2610 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, /* 0x2620 */ + 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2630 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, /* 0x2640 */ + 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2650 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, /* 0x2660 */ + 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2670 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, /* 0x2680 */ + 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2690 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, /* 0x26a0 */ + 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, /* 0x26b0 */ + 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x26c0 */ + 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x26d0 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, /* 0x26e0 */ + 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x26f0 */ + 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x2700 */ + 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, /* 0x2710 */ + 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x2720 */ + 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2730 */ + 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2740 */ + 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2750 */ + 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2760 */ + 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x2770 */ + 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x2780 */ + 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, /* 0x2790 */ + 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x27a0 */ + 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, /* 0x27b0 */ + 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x27c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x27d0 */ + 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, /* 0x27e0 */ + 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x27f0 */ + 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2800 */ + 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, /* 0x2810 */ + 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x2820 */ + 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2830 */ + 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x2840 */ + 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, /* 0x2850 */ + 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2860 */ }; diff --git a/src/stub/src/mipsel.r3000-linux.elf-entry.S b/src/stub/src/mipsel.r3000-linux.elf-entry.S index 5ddb7b98..b5cf6f4d 100644 --- a/src/stub/src/mipsel.r3000-linux.elf-entry.S +++ b/src/stub/src/mipsel.r3000-linux.elf-entry.S @@ -297,29 +297,38 @@ unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2 li a3, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS sw zero,a4_sys(sp) //; sw zero,a5_sys(sp) // MAP_ANON ==> ignore offset li v0,__NR_mmap; syscall; bnez a3,err_syscall - move a0,v0 // &new page(s) + move s0,v0 // ADRM: &new page(s); &dst for unfold, or © of PT_LOAD[0] - lw a1,adrc - decompressor(s7) + lw a0,adrc - decompressor(s7) lw s3,adru - decompressor(s7) // for unmap in fold lw s2,lenu - decompressor(s7) // for unmap in fold lw s1,adrx - decompressor(s7) // for upx_main - beq a0,a1,L80 // no copy - subu t0,a0,a1 // (ADRM - ADRC) == relocation amount - subu a2,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress) - addu a2,a2,s5 // + sz_pack2; length to copy + beq s0,a0,L80 // no copy + subu t0,s0,a0 // (ADRM - ADRC) == relocation amount + subu s4,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress) + addu a2,s4,s5 // + sz_pack2; length to copy addu s7,s7,t0 // update &decompress -move_up: // memcpy(dst=a0, src=a1, len=round_up(a2, 8)) - lw t0, 0(a1); addiu a0,a0, 8 - lw t1, 4(a1); addiu a2,a2,-8 - sw t0,-8(a0); addiu a1,a1, 8 + + move a1,s0 + // memcpy(dst=a1, src=a0, len=round_up(a2, 8)) +move_up: + lw t0, 0(a0); addiu a1,a1, 8 + lw t1, 4(a0); addiu a2,a2,-8 + sw t0,-8(a1); addiu a0,a0, 8 bgtz a2,move_up - sw t1,-4(a0) - move v0,a0 // unfolded stub follows copied decompressor + sw t1,-4(a1) + move s0,a1 // &dst for unfolding + + move a0,s7 // moved &decompressor + // a1 already == &end of moved decompressor + li a2,ICACHE|DCACHE + li v0,__NR_cacheflush + syscall // moved decompressor L80: // Decompress the folded part of this stub, then execute it. lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len - move a2,v0 // &dst + move a2,s0 // &dst lw a1,sz_cpr(s6) // src_len addiu a0,s6,sz_b_info jr s7 // decompress(src, srclen, dst, &dstlen /*, method*/) diff --git a/src/stub/tmp/mips.r3000-linux.elf-entry.bin.dump b/src/stub/tmp/mips.r3000-linux.elf-entry.bin.dump index d36b0361..494f6830 100644 --- a/src/stub/tmp/mips.r3000-linux.elf-entry.bin.dump +++ b/src/stub/tmp/mips.r3000-linux.elf-entry.bin.dump @@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags 9 NRV_TAIL 00000010 00000000 00000000 00001a6c 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 00001a7c 2**0 CONTENTS, READONLY 11 ELFMAINY 0000002a 00000000 00000000 00001aa0 2**0 CONTENTS, RELOC, READONLY - 12 ELFMAINZ 000000bc 00000000 00000000 00001aca 2**0 CONTENTS, READONLY + 12 ELFMAINZ 000000d0 00000000 00000000 00001aca 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d ELFMAINZ 00000000 ELFMAINZ diff --git a/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump b/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump index e53d0365..3bc37e86 100644 --- a/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump +++ b/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump @@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags 9 NRV_TAIL 00000010 00000000 00000000 00001c68 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 00001c78 2**0 CONTENTS, READONLY 11 ELFMAINY 0000002a 00000000 00000000 00001c9c 2**0 CONTENTS, RELOC, READONLY - 12 ELFMAINZ 000000bc 00000000 00000000 00001cc6 2**0 CONTENTS, READONLY + 12 ELFMAINZ 000000d0 00000000 00000000 00001cc6 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d ELFMAINZ 00000000 ELFMAINZ