1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

mips stubs: implement ET_DYN (-pie).

modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	plus associated *.h, *.bin.dump, and ../.github/travis_testsuite_1.sh
This commit is contained in:
John Reiser 2017-09-26 10:05:22 -07:00
parent 2f11a629fa
commit 26be845563
9 changed files with 492 additions and 458 deletions

View File

@ -156,7 +156,7 @@ f8e9a7201a3016b4bbd97c0e468fc69affccc18fc5a71ba70c0aa1d2212f3027 *armeb-linux.el
f0ad83e018214c26093c0ada70ea0156b63c824a5bdf0ead9120634d67f73cea *i386-linux.elf/upx-3.91
d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe
c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos/upx-3.91.ttp
26131a01234ab9ef11a45aece1a2883dfa8125ed2d185c04c6cb6db24cfe3523 *mipsel-linux.elf/upx-3.91
60a5d572b45cd819c17ee1b6178eb09865f47e7db9ffb29152326f3a826371ba *mipsel-linux.elf/upx-3.91
16b0d079f5d005222f346466e8c567219dfe4feb71a0662342d04168c07c3f8b *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
@ -167,7 +167,7 @@ c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djg
89dca0f4252c058767832a4f5021f1c2682ed8b54bf5cd779f0252bc1ea50beb *i386-linux.elf/upx-3.91
5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe
ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos/upx-3.91.ttp
93fd5c5a789901ee2823cc7a43502245678e7408922548048983a7ee91ece886 *mipsel-linux.elf/upx-3.91
901a01c0170e8550102ab96b991bd1d607bcf423f52322e546a29ce286fc5385 *mipsel-linux.elf/upx-3.91
81ee676127a44a63945a3b2d6e7272623df0620c6bef935252b43970c977f562 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
@ -178,7 +178,7 @@ ea3103c3df4f09ab6f9a720be8c52ce8d3f8540b0ddc33abfbaa3273fcb5bd87 *armeb-linux.el
bc5174b72168fc614245560fc0a0ba1de440fb5b59f56a66c19a6b40d5c4b3b3 *i386-linux.elf/upx-3.91
ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe
dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos/upx-3.91.ttp
ddd208079ad2fbbcc101baca1f7db3cbd31d88fcceeda5940e11798594672422 *mipsel-linux.elf/upx-3.91
34d1faebe6a8f6228de4ec44f3df4111d103c1a4fab81ecc1147422a1538b37a *mipsel-linux.elf/upx-3.91
f5d1badd9bdeb0e5c9ad6bacec7c24963bd37fa8e7a36a2db8b3d8f957f16ae6 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
@ -189,7 +189,7 @@ f75a024db06d60dd70ab321196847af955c4e812f55439a584ff960bd336ec10 *amd64-linux.el
828f34977b65e1555688766a6dd20739a66be47ecf69119aaea5f5279ea0fd75 *i386-linux.elf/upx-3.91
171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe
8826c1f910007360ba6cec02c91bd7cdc87bce1ce27804ca728846b92d9086c9 *m68k-atari.tos/upx-3.91.ttp
07c0946c4e03128d3ccd49f103da1cb9c150da001af15f81ca1c4586d16afcbf *mipsel-linux.elf/upx-3.91
2466d621b46a084718a50327bef8ac54ac961fd297a9d8cc747603cd255ac68e *mipsel-linux.elf/upx-3.91
b79c08d2ba96a669b207f8b09a9603df17fdda316f49159d2d30857d18c7ab85 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
@ -200,7 +200,7 @@ dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/u
7c33a5300d93079e6612229242584c80103a11826e78c0fcf6f8e5047d638c27 *i386-linux.elf/upx-3.91
7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe
25e9e84bf4e01350b362d088f8107d8228b4576bc47b6b718e9e742f7e4a5205 *m68k-atari.tos/upx-3.91.ttp
8b23cb8a3366bc243fc09881097e807e1e9cb251fbd6fcd54f0c15c28c021779 *mipsel-linux.elf/upx-3.91
9a3a2af66cffe78d99ccc53ee83d9a05c7a047e4e98469c499d8b72549f6e9c9 *mipsel-linux.elf/upx-3.91
7323c6f928549a61f1ff705af523ce4b8b420d114f4abd1fa91dab33b0938329 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
@ -211,7 +211,7 @@ expected_sha256sums__t160_compress_all_methods_1_no_filter="\
5f4eb68842b46b9a1c138e5330e588b493d2927e27130be245f6d7aded82ef15 *i386-linux.elf/upx-3.91
4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe
0f902defbce3c9a8ea08910ff2ac62b9f06e7ceed0570501cb3b6287bfd6d797 *m68k-atari.tos/upx-3.91.ttp
44e879dbc1a9ab186a9d9ee30f8d188fbefc4e54b1b9c6e43623f093e0617782 *mipsel-linux.elf/upx-3.91
dfe91501e4cb0b9e4686ffa9aa1e0e9bf1ea8b4c363fbc2cd35713d11267bcc5 *mipsel-linux.elf/upx-3.91
a25a6932e539861cd28eaa0b7b9192c5f4de826d4552d9ef0206565adedc2da5 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
@ -222,7 +222,7 @@ ffcdbd72b65c94924e51248fc68c2d787798633846af9324719e6f67140e92b1 *amd64-linux.el
a0630df230ec301d1919d4fb15c66e7a403d17a03dfe4c79cd7835e2eb0d1b19 *i386-linux.elf/upx-3.91
14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe
2eb756cf3c7e4f80fea379a267071c981f3ab1fbb3eaab7057ca18a2b400fb8f *m68k-atari.tos/upx-3.91.ttp
e761eea73dcf7ba19180c292dd54d4ed6bbd0954534aaf1a0bf38e5383ee417a *mipsel-linux.elf/upx-3.91
4db8801f9b71e42949ebac0d12b01314b8411ed416d72dd60765da912acce32c *mipsel-linux.elf/upx-3.91
6624628c98403eb74de906a4589f2a9a0f93c3e743d742ee71eeace202736778 *powerpc-linux.elf/upx-3.91
"
########## end .sha256sums.recreate

View File

@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-entry.h
created from mips.r3000-linux.elf-entry.bin, 10002 (0x2712) bytes
created from mips.r3000-linux.elf-entry.bin, 10082 (0x2762) bytes
This file is part of the UPX executable compressor.
@ -31,16 +31,16 @@
*/
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 10002
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x92e54b4a
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x2fd0c791
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 10082
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0xc99b601a
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x482f567c
unsigned char stub_mips_r3000_linux_elf_entry[10002] = {
unsigned char stub_mips_r3000_linux_elf_entry[10082] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 28, 76, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0020 */ 0, 0, 28,156, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 48,
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 66,
/* 0x0050 */ 39,247, 0, 0, 60, 13,128, 0, 1,160, 72, 33, 36, 11, 0, 1,
/* 0x0060 */ 4, 17, 0, 77, 36, 15, 0, 1, 17,192, 0, 5,144,142, 0, 0,
/* 0x0070 */ 36,132, 0, 1, 36,198, 0, 1, 16, 0,255,249,160,206,255,255,
@ -467,199 +467,204 @@ unsigned char stub_mips_r3000_linux_elf_entry[10002] = {
/* 0x1ac0 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46,
/* 0x1ad0 */ 10, 0, 36, 4, 0, 2, 36, 2, 15,164, 0, 0, 0, 12, 36, 4,
/* 0x1ae0 */ 0,127, 36, 2, 15,161, 0, 0, 0, 12, 39,189,255,224,142,228,
/* 0x1af0 */ 255,224, 36, 6, 0, 7,142,229,255,228, 36, 7, 8, 18,175,160,
/* 0x1b00 */ 0, 16, 36, 2, 15,250, 0, 0, 0, 12, 20,224, 0, 32, 0, 64,
/* 0x1b10 */ 128, 33,142,228,255,236,142,243,255,232,142,242,255,240,142,241,
/* 0x1b20 */ 255,244, 18, 4, 0, 18, 2, 4, 64, 35, 2,215,160, 35, 2,149,
/* 0x1b30 */ 48, 33, 2,232,184, 33, 2, 0, 40, 33,140,136, 0, 0, 36,165,
/* 0x1b40 */ 0, 8,140,137, 0, 4, 36,198,255,248,172,168,255,248, 36,132,
/* 0x1b50 */ 0, 8, 28,192,255,249,172,169,255,252, 0,160,128, 33, 2,224,
/* 0x1b60 */ 32, 33, 36, 6, 0, 3, 36, 2, 16, 51, 0, 0, 0, 12,142,200,
/* 0x1b70 */ 0, 0, 3,160, 56, 33,175,168, 0, 0, 2, 0, 48, 33,142,197,
/* 0x1b80 */ 0, 4, 38,196, 0, 12, 2,224, 0, 8, 0,192,248, 33, 16, 0,
/* 0x1b90 */ 255,255, 0, 0, 0, 0,142,245,255,220, 4, 17,255,211, 39,246,
/* 0x1ba0 */ 0, 4, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,
/* 0x1bb0 */ 116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,115, 10,
/* 0x1bc0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x1bd0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x1be0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x1bf0 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x1c00 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x1c10 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x1c20 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48,
/* 0x1c30 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1c40 */ 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32,
/* 0x1c50 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x1c60 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78,
/* 0x1c70 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1c80 */ 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1c90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1ca0 */ 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1cb0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x1cc0 */ 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32,
/* 0x1cd0 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32,
/* 0x1af0 */ 255,224, 36, 6, 0, 3,142,229,255,228, 36, 7, 8, 18,175,160,
/* 0x1b00 */ 0, 16, 36, 2, 15,250, 0, 0, 0, 12, 20,224, 0, 50, 0, 64,
/* 0x1b10 */ 128, 33,142,243,255,232,142,242,255,240,142,241,255,244,142,228,
/* 0x1b20 */ 255,236,142,200,255,252, 2, 0, 40, 33, 2,168,168, 34, 16,144,
/* 0x1b30 */ 0, 4, 2,136, 32, 32, 2,160, 48, 33, 4, 17, 0, 28, 0,160,
/* 0x1b40 */ 136, 33,142,200, 0, 0, 3,160, 56, 33,175,168, 0, 0, 0,160,
/* 0x1b50 */ 48, 33,142,197, 0, 4, 38,196, 0, 12, 2,224,248, 9, 0,192,
/* 0x1b60 */ 160, 33,143,168, 0, 0,142,228,255,236, 1, 20, 40, 32, 16,144,
/* 0x1b70 */ 0, 8, 2,215, 48, 35, 2,224, 32, 33, 4, 17, 0, 12, 0,160,
/* 0x1b80 */ 184, 33, 2,224, 32, 33, 36, 6, 0, 3, 36, 2, 16, 51, 0, 0,
/* 0x1b90 */ 0, 12, 2, 0, 32, 33, 0,176, 40, 34, 36, 6, 0, 5, 36, 2,
/* 0x1ba0 */ 16, 29, 0, 0, 0, 12, 2,128, 0, 8, 0, 0, 0, 0,140,136,
/* 0x1bb0 */ 0, 0, 36,165, 0, 8,140,137, 0, 4, 36,198,255,248,172,168,
/* 0x1bc0 */ 255,248, 36,132, 0, 8, 28,192,255,249,172,169,255,252, 3,224,
/* 0x1bd0 */ 0, 8, 0, 0, 0, 0, 16, 0,255,255, 0, 0, 0, 0,142,245,
/* 0x1be0 */ 255,220, 38,244,255,220, 2,149,160, 34, 4, 17,255,191, 39,246,
/* 0x1bf0 */ 0, 4, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,
/* 0x1c00 */ 116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,115, 10,
/* 0x1c10 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x1c20 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x1c30 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x1c40 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x1c50 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x1c60 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x1c70 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48,
/* 0x1c80 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1c90 */ 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32,
/* 0x1ca0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x1cb0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78,
/* 0x1cc0 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1cd0 */ 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ce0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, 56, 32, 32, 50,
/* 0x1d00 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1d10 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1d20 */ 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1d30 */ 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1d50 */ 48, 48, 48, 48, 50,101, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1d60 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
/* 0x1d70 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77,
/* 0x1d80 */ 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d90 */ 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 49,
/* 0x1db0 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1dc0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,
/* 0x1dd0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48,
/* 0x1de0 */ 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1df0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1e00 */ 48, 52, 98, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1e10 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1e20 */ 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32,
/* 0x1e30 */ 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48,
/* 0x1e40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1e50 */ 48, 48, 48, 48,102, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1e60 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1e70 */ 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x1e80 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48,
/* 0x1e90 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ea0 */ 32, 32, 48, 48, 48, 48, 49, 97, 54, 48, 32, 32, 50, 42, 42, 48,
/* 0x1eb0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68,
/* 0x1ec0 */ 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1ed0 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32,
/* 0x1ee0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1ef0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 54, 52, 32, 32, 50,
/* 0x1f00 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1f10 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95,
/* 0x1f20 */ 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1f30 */ 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 55, 52,
/* 0x1f50 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1f60 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67,
/* 0x1f70 */ 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1f80 */ 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1f90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x1fa0 */ 97, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1fb0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49,
/* 0x1fc0 */ 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32,
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1fe0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1ff0 */ 48, 48, 49, 97, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2000 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82,
/* 0x2010 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77,
/* 0x2020 */ 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2030 */ 100, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97,100, 50,
/* 0x2050 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x2060 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x2070 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10,
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x2090 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48,
/* 0x20a0 */ 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48,
/* 0x20b0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
/* 0x20c0 */ 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69,
/* 0x20d0 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x20f0 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65,
/* 0x2100 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x2110 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48,
/* 0x2120 */ 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x2130 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68,
/* 0x2140 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10,
/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x2160 */ 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2170 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2180 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48,
/* 0x2190 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x21a0 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x21b0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x21c0 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x21d0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x21e0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49,
/* 0x21f0 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x2200 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2210 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51,
/* 0x2220 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x2230 */ 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2240 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9,
/* 0x2250 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x2260 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x2270 */ 100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48,
/* 0x2280 */ 48, 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x22a0 */ 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70,
/* 0x22b0 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x22c0 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48,
/* 0x22d0 */ 48, 48, 48, 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
/* 0x22f0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10,
/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2310 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2320 */ 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x2330 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x2340 */ 48, 48, 48, 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48,
/* 0x2350 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x2360 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48,
/* 0x2370 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2380 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65,
/* 0x2390 */ 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32,
/* 0x23a0 */ 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48,
/* 0x23b0 */ 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48,
/* 0x23c0 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x23d0 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95,
/* 0x23e0 */ 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x23f0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
/* 0x2400 */ 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2410 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2420 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2430 */ 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2440 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48,
/* 0x2450 */ 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2460 */ 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48,
/* 0x2470 */ 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2480 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48,
/* 0x2490 */ 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24a0 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48,
/* 0x24b0 */ 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24c0 */ 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48,
/* 0x24d0 */ 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24e0 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48,
/* 0x24f0 */ 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32,
/* 0x2500 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10,
/* 0x2510 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2520 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10,
/* 0x2530 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x2540 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x2550 */ 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 77, 73, 80, 83,
/* 0x2560 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x2570 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2580 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x2590 */ 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84,
/* 0x25a0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x25b0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32,
/* 0x25c0 */ 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32,
/* 0x25d0 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x25e0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x25f0 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83,
/* 0x2600 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2610 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2620 */ 48, 48, 48, 54, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49,
/* 0x2630 */ 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2640 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2650 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x2660 */ 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x2670 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2680 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82,
/* 0x2690 */ 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32,
/* 0x26a0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x26b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x26c0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x26d0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x26e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x26f0 */ 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51,
/* 0x2700 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70,
/* 0x2710 */ 79, 10
/* 0x1cf0 */ 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1d00 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x1d10 */ 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32,
/* 0x1d20 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32,
/* 0x1d30 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, 56, 32, 32, 50,
/* 0x1d50 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1d60 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1d70 */ 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1d80 */ 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1da0 */ 48, 48, 48, 48, 50,101, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1db0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
/* 0x1dc0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77,
/* 0x1dd0 */ 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1de0 */ 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1df0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 49,
/* 0x1e00 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1e10 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,
/* 0x1e20 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48,
/* 0x1e30 */ 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e40 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1e50 */ 48, 52, 98, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1e60 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1e70 */ 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32,
/* 0x1e80 */ 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48,
/* 0x1e90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1ea0 */ 48, 48, 48, 48,102, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1eb0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1ec0 */ 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x1ed0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ef0 */ 32, 32, 48, 48, 48, 48, 49, 97, 54, 48, 32, 32, 50, 42, 42, 48,
/* 0x1f00 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68,
/* 0x1f10 */ 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x1f20 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32,
/* 0x1f30 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1f40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 54, 52, 32, 32, 50,
/* 0x1f50 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1f60 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95,
/* 0x1f70 */ 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1f80 */ 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 55, 52,
/* 0x1fa0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1fb0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67,
/* 0x1fc0 */ 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1fd0 */ 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1fe0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x1ff0 */ 97, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x2000 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49,
/* 0x2010 */ 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32,
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2030 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2040 */ 48, 48, 49, 97, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2050 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82,
/* 0x2060 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77,
/* 0x2070 */ 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,
/* 0x2080 */ 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2090 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97,100, 50,
/* 0x20a0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x20b0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x20c0 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10,
/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x20e0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48,
/* 0x20f0 */ 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48,
/* 0x2100 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
/* 0x2110 */ 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69,
/* 0x2120 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2130 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x2140 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65,
/* 0x2150 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x2160 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48,
/* 0x2170 */ 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x2180 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68,
/* 0x2190 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10,
/* 0x21a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x21b0 */ 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x21c0 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x21d0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48,
/* 0x21e0 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x21f0 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2200 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x2210 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x2220 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2230 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49,
/* 0x2240 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x2250 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2260 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51,
/* 0x2270 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95,
/* 0x2280 */ 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x2290 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65,
/* 0x22b0 */ 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
/* 0x22c0 */ 100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48,
/* 0x22d0 */ 48, 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x22f0 */ 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70,
/* 0x2300 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2310 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48,
/* 0x2320 */ 48, 48, 48, 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48,
/* 0x2330 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
/* 0x2340 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10,
/* 0x2350 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2360 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2370 */ 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x2380 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x2390 */ 48, 48, 48, 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48,
/* 0x23a0 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x23b0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48,
/* 0x23c0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23d0 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65,
/* 0x23e0 */ 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32,
/* 0x23f0 */ 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48,
/* 0x2400 */ 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48,
/* 0x2410 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x2420 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95,
/* 0x2430 */ 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x2440 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
/* 0x2450 */ 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2460 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2470 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2480 */ 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2490 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48,
/* 0x24a0 */ 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24b0 */ 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48,
/* 0x24c0 */ 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24d0 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48,
/* 0x24e0 */ 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x24f0 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48,
/* 0x2500 */ 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2510 */ 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48,
/* 0x2520 */ 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32,
/* 0x2530 */ 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48,
/* 0x2540 */ 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32,
/* 0x2550 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10,
/* 0x2560 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2570 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10,
/* 0x2580 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x2590 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x25a0 */ 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 77, 73, 80, 83,
/* 0x25b0 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x25c0 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x25d0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82,
/* 0x25e0 */ 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84,
/* 0x25f0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2600 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32,
/* 0x2610 */ 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32,
/* 0x2620 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79,
/* 0x2630 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x2640 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83,
/* 0x2650 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2660 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2670 */ 48, 48, 48, 54, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49,
/* 0x2680 */ 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2690 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x26a0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x26b0 */ 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x26c0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x26d0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82,
/* 0x26e0 */ 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32,
/* 0x26f0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x2700 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2710 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x2720 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x2730 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x2740 */ 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51,
/* 0x2750 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70,
/* 0x2760 */ 79, 10
};

View File

@ -32,8 +32,8 @@
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 2552
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xbe052fbc
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0x0d4d788c
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xfb682e54
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0xaac9c55c
unsigned char stub_mips_r3000_linux_elf_fold[2552] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -57,12 +57,12 @@ unsigned char stub_mips_r3000_linux_elf_fold[2552] = {
/* 0x0120 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 36, 2, 15,245,
/* 0x0130 */ 0, 0, 0, 12, 4,224, 0, 2, 0,162, 8, 33,160, 32, 0, 0,
/* 0x0140 */ 39,189,254, 0, 3,192, 80, 33, 0, 0, 72, 33, 2,224, 64, 33,
/* 0x0150 */ 2,128, 56, 33, 3,160, 48, 33, 50, 33, 15,255, 2,161, 40, 35,
/* 0x0160 */ 4, 16, 0, 1, 36, 2, 1,104, 3,226, 16, 35, 36, 66, 8,112,
/* 0x0170 */ 0, 64,248, 9, 2, 32, 32, 33, 0, 64,200, 33, 39,161, 2, 0,
/* 0x0180 */ 39,189,254,212, 39,189, 0, 4, 23,161,255,254,175,160,255,252,
/* 0x0190 */ 142,193,255,252, 2, 64, 40, 33, 16, 32, 0, 3, 2, 96, 32, 33,
/* 0x01a0 */ 0, 32, 0, 8, 36, 2, 15,251, 3, 32, 0, 8, 0, 0, 0, 0,
/* 0x0150 */ 2,128, 56, 33, 3,160, 48, 33, 2,160, 40, 33, 4, 16, 0, 1,
/* 0x0160 */ 36, 2, 1,100, 3,226, 16, 35, 36, 66, 8,112, 0, 64,248, 9,
/* 0x0170 */ 2, 32, 32, 33, 0, 64,200, 33, 39,161, 2, 0, 39,189,254,212,
/* 0x0180 */ 39,189, 0, 4, 23,161,255,254,175,160,255,252,142,193,255,252,
/* 0x0190 */ 2, 64, 40, 33, 16, 32, 0, 3, 2, 96, 32, 33, 0, 32, 0, 8,
/* 0x01a0 */ 36, 2, 15,251, 3, 32, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01b0 */ 36, 2, 15,250, 39,189,255,224,175,168, 0, 16,175,169, 0, 20,
/* 0x01c0 */ 0, 0, 0, 12, 16, 0, 0, 2, 39,189, 0, 32, 0, 0, 0, 12,
/* 0x01d0 */ 20,224, 0, 3, 0, 0, 0, 0, 3,224, 0, 8, 0, 0, 0, 0,

View File

@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-entry.h
created from mipsel.r3000-linux.elf-entry.bin, 9885 (0x269d) bytes
created from mipsel.r3000-linux.elf-entry.bin, 9965 (0x26ed) bytes
This file is part of the UPX executable compressor.
@ -31,16 +31,16 @@
*/
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 9885
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x1c3f36c7
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0xec8e529c
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 9965
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xca634a98
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x22e7cda2
unsigned char stub_mipsel_r3000_linux_elf_entry[9885] = {
unsigned char stub_mipsel_r3000_linux_elf_entry[9965] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 212, 27, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 36, 28, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 17, 4,
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 17, 4,
/* 0x0050 */ 0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36,
/* 0x0060 */ 67, 0, 17, 4, 1, 0, 15, 36, 5, 0,192, 17, 0, 0,142,144,
/* 0x0070 */ 1, 0,132, 36, 1, 0,198, 36,249,255, 0, 16,255,255,206,160,
@ -459,199 +459,204 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[9885] = {
/* 0x1a40 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69,
/* 0x1a50 */ 32,102, 97,105,108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15,
/* 0x1a60 */ 2, 36, 12, 0, 0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0,
/* 0x1a70 */ 0, 0,224,255,189, 39,224,255,228,142, 7, 0, 6, 36,228,255,
/* 0x1a70 */ 0, 0,224,255,189, 39,224,255,228,142, 3, 0, 6, 36,228,255,
/* 0x1a80 */ 229,142, 18, 8, 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0,
/* 0x1a90 */ 0, 0, 32, 0,224, 20, 33,128, 64, 0,236,255,228,142,232,255,
/* 0x1aa0 */ 243,142,240,255,242,142,244,255,241,142, 18, 0, 4, 18, 35, 64,
/* 0x1ab0 */ 4, 2, 35,160,215, 2, 33, 48,149, 2, 33,184,232, 2, 33, 40,
/* 0x1ac0 */ 0, 2, 0, 0,136,140, 8, 0,165, 36, 4, 0,137,140,248,255,
/* 0x1ad0 */ 198, 36,248,255,168,172, 8, 0,132, 36,249,255,192, 28,252,255,
/* 0x1ae0 */ 169,172, 33,128,160, 0, 33, 32,224, 2, 3, 0, 6, 36, 51, 16,
/* 0x1af0 */ 2, 36, 12, 0, 0, 0, 0, 0,200,142, 33, 56,160, 3, 0, 0,
/* 0x1b00 */ 168,175, 33, 48, 0, 2, 4, 0,197,142, 12, 0,196, 38, 8, 0,
/* 0x1b10 */ 224, 2, 33,248,192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255,
/* 0x1b20 */ 245,142,211,255, 17, 4, 4, 0,246, 39, 0, 0, 0, 0,102,105,
/* 0x1b30 */ 108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,
/* 0x1b40 */ 108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101, 99,116,
/* 0x1b50 */ 105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32,
/* 0x1b60 */ 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32,
/* 0x1b70 */ 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32,
/* 0x1b80 */ 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32,
/* 0x1b90 */ 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,
/* 0x1ba0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1bb0 */ 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1bd0 */ 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1be0 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x1bf0 */ 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 50, 69, 32,
/* 0x1c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99,
/* 0x1a90 */ 0, 0, 50, 0,224, 20, 33,128, 64, 0,232,255,243,142,240,255,
/* 0x1aa0 */ 242,142,244,255,241,142,236,255,228,142,252,255,200,142, 33, 40,
/* 0x1ab0 */ 0, 2, 34,168,168, 2, 4, 0,144, 16, 32, 32,136, 2, 33, 48,
/* 0x1ac0 */ 160, 2, 28, 0, 17, 4, 33,136,160, 0, 0, 0,200,142, 33, 56,
/* 0x1ad0 */ 160, 3, 0, 0,168,175, 33, 48,160, 0, 4, 0,197,142, 12, 0,
/* 0x1ae0 */ 196, 38, 9,248,224, 2, 33,160,192, 0, 0, 0,168,143,236,255,
/* 0x1af0 */ 228,142, 32, 40, 20, 1, 8, 0,144, 16, 35, 48,215, 2, 33, 32,
/* 0x1b00 */ 224, 2, 12, 0, 17, 4, 33,184,160, 0, 33, 32,224, 2, 3, 0,
/* 0x1b10 */ 6, 36, 51, 16, 2, 36, 12, 0, 0, 0, 33, 32, 0, 2, 34, 40,
/* 0x1b20 */ 176, 0, 5, 0, 6, 36, 29, 16, 2, 36, 12, 0, 0, 0, 8, 0,
/* 0x1b30 */ 128, 2, 0, 0, 0, 0, 0, 0,136,140, 8, 0,165, 36, 4, 0,
/* 0x1b40 */ 137,140,248,255,198, 36,248,255,168,172, 8, 0,132, 36,249,255,
/* 0x1b50 */ 192, 28,252,255,169,172, 8, 0,224, 3, 0, 0, 0, 0,255,255,
/* 0x1b60 */ 0, 16, 0, 0, 0, 0,220,255,245,142,220,255,244, 38, 34,160,
/* 0x1b70 */ 149, 2,191,255, 17, 4, 4, 0,246, 39, 0, 0, 0, 0,102,105,
/* 0x1b80 */ 108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,
/* 0x1b90 */ 108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101, 99,116,
/* 0x1ba0 */ 105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32,
/* 0x1bb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32,
/* 0x1bc0 */ 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32,
/* 0x1bd0 */ 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32,
/* 0x1be0 */ 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,
/* 0x1bf0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x1c00 */ 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c10 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1c20 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 52, 32, 32,
/* 0x1c30 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1c40 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1c50 */ 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32,
/* 0x1c60 */ 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48,
/* 0x1c70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1c80 */ 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1c90 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x1ca0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82,
/* 0x1cb0 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1cc0 */ 48, 49, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,
/* 0x1ce0 */ 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1cf0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1d00 */ 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x1d10 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 99, 32, 32,
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1d30 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, 32, 32, 50, 42,
/* 0x1d40 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1d50 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95,
/* 0x1d60 */ 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100,
/* 0x1d70 */ 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1d80 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 51, 56, 32,
/* 0x1d90 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1da0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
/* 0x1db0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,102,
/* 0x1de0 */ 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1df0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55,
/* 0x1e00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48,
/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e20 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1e30 */ 48, 49, 57,101, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1e40 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1e50 */ 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32,
/* 0x1e60 */ 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48,
/* 0x1e70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1e80 */ 48, 48, 48, 48, 49, 57,101, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1e90 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1ea0 */ 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x1eb0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ed0 */ 48, 32, 32, 48, 48, 48, 48, 49, 57,102, 99, 32, 32, 50, 42, 42,
/* 0x1ee0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1ef0 */ 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72,
/* 0x1f00 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52,
/* 0x1f10 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1f20 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 48, 99, 32, 32,
/* 0x1f30 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1f40 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70,
/* 0x1f50 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1f60 */ 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 51,
/* 0x1f80 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1f90 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1fa0 */ 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x1fb0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 52, 32, 32, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fd0 */ 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 97, 32, 32, 50, 42, 42,
/* 0x1fe0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x1ff0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77,
/* 0x2000 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
/* 0x2010 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95,
/* 0x2020 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x2030 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2040 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x2050 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x2060 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2070 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48,
/* 0x2080 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x2090 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x20a0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x20b0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x20c0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48,
/* 0x20d0 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48,
/* 0x20e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x20f0 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66,
/* 0x2100 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2110 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48,
/* 0x2120 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2130 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2140 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48,
/* 0x2150 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x2160 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2170 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x2180 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x2190 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x21a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48,
/* 0x21b0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x21c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x21d0 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48,
/* 0x21e0 */ 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48,
/* 0x21f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70,
/* 0x2200 */ 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x2210 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2220 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48,
/* 0x2230 */ 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89,
/* 0x2240 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x2250 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2260 */ 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x2270 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48,
/* 0x2280 */ 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48,
/* 0x2290 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
/* 0x22a0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10,
/* 0x22b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22c0 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x22d0 */ 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x22e0 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x22f0 */ 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48,
/* 0x2300 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x2310 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48,
/* 0x2320 */ 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32,
/* 0x2330 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2340 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2350 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, 70, 79,
/* 0x2370 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2380 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x2390 */ 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x23a0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23b0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x23c0 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23d0 */ 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82,
/* 0x23e0 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23f0 */ 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82,
/* 0x2400 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2410 */ 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82,
/* 0x2420 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2430 */ 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82,
/* 0x2440 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2450 */ 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82,
/* 0x2460 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2470 */ 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32, 82,
/* 0x2480 */ 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32,
/* 0x2490 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x24a0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x24b0 */ 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x24c0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24d0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x24e0 */ 48, 48, 55, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54,
/* 0x24f0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10,
/* 0x2500 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2510 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58,
/* 0x2520 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x2530 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x2540 */ 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 77, 73, 80,
/* 0x2550 */ 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86,
/* 0x2560 */ 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x2570 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78,
/* 0x2580 */ 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x2590 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x25a0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 54, 52,
/* 0x25b0 */ 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32,
/* 0x25c0 */ 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76,
/* 0x25d0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x25e0 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10,
/* 0x25f0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x2600 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x2610 */ 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83,
/* 0x2620 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x2630 */ 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2640 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x2650 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x2660 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2670 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x2680 */ 100, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32,
/* 0x2690 */ 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x1c20 */ 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1c30 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x1c40 */ 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 50, 69, 32,
/* 0x1c50 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99,
/* 0x1c60 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1c70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 52, 32, 32,
/* 0x1c80 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1c90 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1ca0 */ 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32,
/* 0x1cb0 */ 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48,
/* 0x1cc0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1cd0 */ 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1ce0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x1cf0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82,
/* 0x1d00 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1d10 */ 48, 49, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,
/* 0x1d30 */ 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1d40 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1d50 */ 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x1d60 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 99, 32, 32,
/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1d80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, 32, 32, 50, 42,
/* 0x1d90 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1da0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95,
/* 0x1db0 */ 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100,
/* 0x1dc0 */ 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1dd0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 51, 56, 32,
/* 0x1de0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1df0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
/* 0x1e00 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1e10 */ 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,102,
/* 0x1e30 */ 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1e40 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55,
/* 0x1e50 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48,
/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e70 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1e80 */ 48, 49, 57,101, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1e90 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1ea0 */ 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32,
/* 0x1eb0 */ 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48,
/* 0x1ec0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1ed0 */ 48, 48, 48, 48, 49, 57,101, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1ee0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1ef0 */ 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x1f00 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48,
/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f20 */ 48, 32, 32, 48, 48, 48, 48, 49, 57,102, 99, 32, 32, 50, 42, 42,
/* 0x1f30 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x1f40 */ 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72,
/* 0x1f50 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52,
/* 0x1f60 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1f70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 48, 99, 32, 32,
/* 0x1f80 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x1f90 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70,
/* 0x1fa0 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x1fb0 */ 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 51,
/* 0x1fd0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1fe0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1ff0 */ 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x2000 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 52, 32, 32, 48,
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2020 */ 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 97, 32, 32, 50, 42, 42,
/* 0x2030 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x2040 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77,
/* 0x2050 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
/* 0x2060 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95,
/* 0x2070 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82,
/* 0x2080 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2090 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x20a0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x20b0 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x20c0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48,
/* 0x20d0 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x20e0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x20f0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x2100 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2110 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48,
/* 0x2120 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48,
/* 0x2130 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x2140 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66,
/* 0x2150 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2160 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48,
/* 0x2170 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2180 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2190 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48,
/* 0x21a0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x21b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x21c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x21d0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x21e0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x21f0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48,
/* 0x2200 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x2210 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2220 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48,
/* 0x2230 */ 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48,
/* 0x2240 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70,
/* 0x2250 */ 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x2260 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2270 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48,
/* 0x2280 */ 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89,
/* 0x2290 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x22a0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x22b0 */ 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x22c0 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48,
/* 0x22d0 */ 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48,
/* 0x22e0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
/* 0x22f0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10,
/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2310 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2320 */ 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x2330 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x2340 */ 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48,
/* 0x2350 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x2360 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48,
/* 0x2370 */ 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32,
/* 0x2380 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2390 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x23a0 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
/* 0x23b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, 70, 79,
/* 0x23c0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x23d0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x23e0 */ 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x23f0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2400 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82,
/* 0x2410 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2420 */ 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82,
/* 0x2430 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2440 */ 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82,
/* 0x2450 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2460 */ 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82,
/* 0x2470 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2480 */ 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82,
/* 0x2490 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24a0 */ 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82,
/* 0x24b0 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x24c0 */ 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32, 82,
/* 0x24d0 */ 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32,
/* 0x24e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67,
/* 0x24f0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2500 */ 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2510 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2520 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x2530 */ 48, 48, 55, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54,
/* 0x2540 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10,
/* 0x2550 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2560 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58,
/* 0x2570 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x2580 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x2590 */ 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 77, 73, 80,
/* 0x25a0 */ 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86,
/* 0x25b0 */ 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x25c0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78,
/* 0x25d0 */ 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x25e0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x25f0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 54, 52,
/* 0x2600 */ 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32,
/* 0x2610 */ 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76,
/* 0x2620 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x2630 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10,
/* 0x2640 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x2650 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x2660 */ 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83,
/* 0x2670 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x2680 */ 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2690 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x26a0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x26b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x26c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49,
/* 0x26d0 */ 50, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32,
/* 0x26e0 */ 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};

View File

@ -32,8 +32,8 @@
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2552
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x265a2fbb
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x1da33a96
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x61572e53
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xafda48c2
unsigned char stub_mipsel_r3000_linux_elf_fold[2552] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -57,12 +57,12 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[2552] = {
/* 0x0120 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,245, 15, 2, 36,
/* 0x0130 */ 12, 0, 0, 0, 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160,
/* 0x0140 */ 0,254,189, 39, 33, 80,192, 3, 33, 72, 0, 0, 33, 64,224, 2,
/* 0x0150 */ 33, 56,128, 2, 33, 48,160, 3,255, 15, 33, 50, 35, 40,161, 2,
/* 0x0160 */ 1, 0, 16, 4,104, 1, 2, 36, 35, 16,226, 3,112, 8, 66, 36,
/* 0x0170 */ 9,248, 64, 0, 33, 32, 32, 2, 33,200, 64, 0, 0, 2,161, 39,
/* 0x0180 */ 212,254,189, 39, 4, 0,189, 39,254,255,161, 23,252,255,160,175,
/* 0x0190 */ 252,255,193,142, 33, 40, 64, 2, 3, 0, 32, 16, 33, 32, 96, 2,
/* 0x01a0 */ 8, 0, 32, 0,251, 15, 2, 36, 8, 0, 32, 3, 0, 0, 0, 0,
/* 0x0150 */ 33, 56,128, 2, 33, 48,160, 3, 33, 40,160, 2, 1, 0, 16, 4,
/* 0x0160 */ 100, 1, 2, 36, 35, 16,226, 3,112, 8, 66, 36, 9,248, 64, 0,
/* 0x0170 */ 33, 32, 32, 2, 33,200, 64, 0, 0, 2,161, 39,212,254,189, 39,
/* 0x0180 */ 4, 0,189, 39,254,255,161, 23,252,255,160,175,252,255,193,142,
/* 0x0190 */ 33, 40, 64, 2, 3, 0, 32, 16, 33, 32, 96, 2, 8, 0, 32, 0,
/* 0x01a0 */ 251, 15, 2, 36, 8, 0, 32, 3, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x01b0 */ 250, 15, 2, 36,224,255,189, 39, 16, 0,168,175, 20, 0,169,175,
/* 0x01c0 */ 12, 0, 0, 0, 2, 0, 0, 16, 32, 0,189, 39, 12, 0, 0, 0,
/* 0x01d0 */ 3, 0,224, 20, 0, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0,

View File

@ -70,6 +70,7 @@ __NR_Linux = 4000
__NR_write = 4+ __NR_Linux
__NR_exit = 1+ __NR_Linux
__NR_mmap = 90+ __NR_Linux
__NR_mprotect = 125+ __NR_Linux
__NR_cacheflush = 147+ __NR_Linux
/* asm/cachectl.h */
@ -273,7 +274,7 @@ die:
PT_LOAD, which is the only way that linux allows to set the brk() for the
uncompressed program. [This is a significant kernel misfeature.]
*/
unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2
unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2; s4= &Elf32_Ehdr
/* Get some pages. If small, then get 1 page located just after the end
of the first PT_LOAD of the compressed program. This will still be below
@ -288,53 +289,77 @@ unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2
addiu sp,sp,-sp_frame
lw a0,adrm - decompressor(s7)
li a2, PROT_READ | PROT_WRITE | PROT_EXEC
li a2, PROT_READ | PROT_WRITE
lw a1,lenm - decompressor(s7)
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 s0,v0 // ADRM: &new page(s); &dst for unfold, or &copy of PT_LOAD[0]
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 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
// Copy compressed data if needed.
lw a0,adrc - decompressor(s7) // where to copy f_exp
lw t0,-4(s6) // O_BINFO
move a1,s0 // dst
sub s5,s5,t0 // sz_pack2 - O_BINFO; ~= total_size compressed
beq a0,s0,L78 // not needed
add a0,s4,t0 // &b_info for upx_main
move a2,s5 // total_size
bal memcpy
move s1,a1 // new adrx
L78:
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(a1)
move s0,a1 // &dst for unfolding
// Decompress the folded part of this stub, using original decompressor.
lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len
move a2,a1 // &dst
lw a1,sz_cpr(s6) // src_len
addiu a0,s6,sz_b_info
jalr s7 // decompress(src, srclen, dst, &dstlen /*, method*/)
move s4,a2 // &dst
move a0,s7 // moved &decompressor
// a1 already == &end of moved decompressor
// Copy decompressor if needed.
lw t0,0(sp) // dst_len
lw a0,adrc - decompressor(s7) // where to copy f_exp
add a1,t0,s4 // a1= last of unfolded
beq a0,s0,L80 // no copy f_exp
subu a2,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress)
move a0,s7 // src= &decompress
bal memcpy
move s7,a1 // new &f_exp
move a0,s7 // new &f_exp
// a1= last of unfolded, or last of copy
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,s0 // &dst
lw a1,sz_cpr(s6) // src_len
addiu a0,s6,sz_b_info
jr s7 // decompress(src, srclen, dst, &dstlen /*, method*/)
move ra,a2 // return to decompressed code
move a0,s0 // new page
sub a1,a1,s0 // len
li a2,PROT_READ|PROT_EXEC
li v0,__NR_mprotect
syscall
jr s4 // unfold
nop
memcpy:
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,memcpy
sw t1,-4(a1)
jr ra
nop
err_syscall:
b err_syscall
nop
main:
lw s5,sz_pack2 - decompressor(s7) // length before stub
lw s5, sz_pack2 - decompressor(s7) // length before stub
la s4,sz_pack2 - decompressor(s7)
sub s4,s4,s5 // &Elf32_Ehdr
bal unfold
addiu s6,ra,4 // &b_info for folded_loader
.long O_BINFO

View File

@ -74,7 +74,7 @@ BAL=0x04110000
/* In:
s7= &decompress
s5= sz_pack2
s5= total_size
s3= ADRU
s2= LENU
@ -136,8 +136,7 @@ AT_PAGESZ= 6
move t0,s7 # &f_decompress
move a3,s4 # new &auxv[0]
move a2,sp # &Elf32_Ehdr tmp space
andi tmp,s1,~PAGE_MASK # O_BINFO # FIXME
subu a1,s5,tmp # total_size
move a1,s5 # total_size
/* We need a position-independent call of upx_main, which is external.
"bal upx_main" cannot be assembled by mipsel-elf-as-20060406.

View File

@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags
9 NRV_TAIL 00000010 00000000 00000000 00001a74 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a84 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001aa8 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000000d4 00000000 00000000 00001ad2 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000124 00000000 00000000 00001ad2 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ
@ -66,4 +66,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
000000d0 R_MIPS_32 O_BINFO
00000120 R_MIPS_32 O_BINFO

View File

@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags
9 NRV_TAIL 00000010 00000000 00000000 000019fc 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a0c 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001a30 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000000d4 00000000 00000000 00001a5a 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000124 00000000 00000000 00001a5a 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ
@ -66,4 +66,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
000000d0 R_MIPS_32 O_BINFO
00000120 R_MIPS_32 O_BINFO