/proc/self/exe in powerpc64*.S stub; unify with powerpc*.S.

modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64le-linux.elf-entry.S
	modified:   stub/src/powerpc64le-linux.elf-fold.S
	modified:   .github/travis_testsuite_1.sh

	also corresponding *.h *.dump *.map files
This commit is contained in:
John Reiser
2017-06-26 21:34:28 -07:00
parent 31b42345c3
commit a7a0876298
16 changed files with 1637 additions and 1320 deletions
+7 -7
View File
@@ -157,7 +157,7 @@ e10077f957cf7582bb58aa5283479d7be2205929e7fa6f109fdd600e482080e3 *armeb-linux.el
d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe
c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos/upx-3.91.ttp c4c8b912a48bcaaef72fd94cd0c307659a03be2ec359bf01a42a2a39307dd964 *m68k-atari.tos/upx-3.91.ttp
856744328060427972111f8bf91ca69481fc97f4777138a7960b664b98c17f9c *mipsel-linux.elf/upx-3.91 856744328060427972111f8bf91ca69481fc97f4777138a7960b664b98c17f9c *mipsel-linux.elf/upx-3.91
73fde1ed57abe551abec91fbb05dc78e0f7eba74f403fc39c9fe65c5db9a97da *powerpc-linux.elf/upx-3.91 4fbff658b66f358d55c30a4c7fe3bc3f3b4b5d85572919094202fb0564de332c *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\ expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
70c7e9da1ea26ff9369560b4b33f49296fff9b6d7bb5683d06d2ceb31f5d3405 *amd64-linux.elf/upx-3.91 70c7e9da1ea26ff9369560b4b33f49296fff9b6d7bb5683d06d2ceb31f5d3405 *amd64-linux.elf/upx-3.91
@@ -168,7 +168,7 @@ c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djg
5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe 5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe
ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos/upx-3.91.ttp ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos/upx-3.91.ttp
521a16b5e4aba197ab60ac16c14f96234a4d668d45d894a9d1cc950769928605 *mipsel-linux.elf/upx-3.91 521a16b5e4aba197ab60ac16c14f96234a4d668d45d894a9d1cc950769928605 *mipsel-linux.elf/upx-3.91
f249c2c09a7dcb66a7d727665af8dfcdd66c7c91ec864dd2108de9ba28d52209 *powerpc-linux.elf/upx-3.91 7d2b30ecd665d2433ba1e011cec3692f3b83610d71ee988b5d4b0badb5180d12 *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
0aa0397c6e6e728992c8cd09fb203bc90d7e114ed9f40c2880b72ed78fa63589 *amd64-linux.elf/upx-3.91 0aa0397c6e6e728992c8cd09fb203bc90d7e114ed9f40c2880b72ed78fa63589 *amd64-linux.elf/upx-3.91
@@ -179,7 +179,7 @@ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe
dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos/upx-3.91.ttp dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos/upx-3.91.ttp
cdb2c6365aeec9cc9a881b70155e8d522d1f8ed634098614809f839f50f09824 *mipsel-linux.elf/upx-3.91 cdb2c6365aeec9cc9a881b70155e8d522d1f8ed634098614809f839f50f09824 *mipsel-linux.elf/upx-3.91
d0ffb3f65f4d429f7f48e67c4e63c0b0f2c505a595aacc9d4be9f2c5eb52eb61 *powerpc-linux.elf/upx-3.91 8de15527e1d3847c7613c4e18753d530ef66692e222605beaf39ad6581e32f5b *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t140_compress_lzma_2_no_filter="\ expected_sha256sums__t140_compress_lzma_2_no_filter="\
926006d4461c7df64659aa7b484a663ff0d482712c2240c3b40f7a63d3f9c07c *amd64-linux.elf/upx-3.91 926006d4461c7df64659aa7b484a663ff0d482712c2240c3b40f7a63d3f9c07c *amd64-linux.elf/upx-3.91
@@ -190,7 +190,7 @@ df91b5daf91a7a43907c1635c225fc810e4e587edf22dc06acc9d394f9116c3e *i386-linux.elf
171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe 171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe
8826c1f910007360ba6cec02c91bd7cdc87bce1ce27804ca728846b92d9086c9 *m68k-atari.tos/upx-3.91.ttp 8826c1f910007360ba6cec02c91bd7cdc87bce1ce27804ca728846b92d9086c9 *m68k-atari.tos/upx-3.91.ttp
ebb6a2d07e105848562c18cc0a57dac035fcc16f41dab231bd26a42075dd53ee *mipsel-linux.elf/upx-3.91 ebb6a2d07e105848562c18cc0a57dac035fcc16f41dab231bd26a42075dd53ee *mipsel-linux.elf/upx-3.91
7a9c60fdd5107fd8b56a51641ad53ca03d1f9bbd9f9bb1dcee1697e247f2e4d1 *powerpc-linux.elf/upx-3.91 52b483fd134c12689c4fef77b1013572aa3f99be01977ba13ae9d141ed250040 *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t150_compress_ucl_2_all_filters="\ expected_sha256sums__t150_compress_ucl_2_all_filters="\
b7ae93def74c119d62ef1a92eb06074b8ce3a4429512ac64de6120097fb48692 *amd64-linux.elf/upx-3.91 b7ae93def74c119d62ef1a92eb06074b8ce3a4429512ac64de6120097fb48692 *amd64-linux.elf/upx-3.91
@@ -201,7 +201,7 @@ dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/u
7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe 7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe
25e9e84bf4e01350b362d088f8107d8228b4576bc47b6b718e9e742f7e4a5205 *m68k-atari.tos/upx-3.91.ttp 25e9e84bf4e01350b362d088f8107d8228b4576bc47b6b718e9e742f7e4a5205 *m68k-atari.tos/upx-3.91.ttp
b0adb7a28cbc72a6b230a8958fcf08ffbbbdf802b0c1c7d9db4b797bfed19028 *mipsel-linux.elf/upx-3.91 b0adb7a28cbc72a6b230a8958fcf08ffbbbdf802b0c1c7d9db4b797bfed19028 *mipsel-linux.elf/upx-3.91
d8edf4efb13072b23c6a3b5f0fb87908a8120c2495b573ad427eae779ec4ee75 *powerpc-linux.elf/upx-3.91 c36cfd8c12ba20e7644dfcb95ff06369ec1e56fe9f604cce792215abb17e2dea *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t160_compress_all_methods_1_no_filter="\ expected_sha256sums__t160_compress_all_methods_1_no_filter="\
e091849d471a5eb866a34ebe09ca4ccae014dae5b592b59b013a4a689bd67385 *amd64-linux.elf/upx-3.91 e091849d471a5eb866a34ebe09ca4ccae014dae5b592b59b013a4a689bd67385 *amd64-linux.elf/upx-3.91
@@ -212,7 +212,7 @@ c3e3a0dd6e15524c0730e5b23759ae842efc77e2cd1bd3500ea2cf42ccdf93d0 *i386-linux.elf
4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe 4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe
0f902defbce3c9a8ea08910ff2ac62b9f06e7ceed0570501cb3b6287bfd6d797 *m68k-atari.tos/upx-3.91.ttp 0f902defbce3c9a8ea08910ff2ac62b9f06e7ceed0570501cb3b6287bfd6d797 *m68k-atari.tos/upx-3.91.ttp
9864b3dcf778e65baa86dfacb468be2cd137733e0ede6042bd5a33bb544c7d70 *mipsel-linux.elf/upx-3.91 9864b3dcf778e65baa86dfacb468be2cd137733e0ede6042bd5a33bb544c7d70 *mipsel-linux.elf/upx-3.91
65f6559e66e7b66339577005f648bf3e160fd2ad6f17b8f3f0d1ac9a21b46faf *powerpc-linux.elf/upx-3.91 fb2b45c8e8092313bb952d58131c1e5cd41accabe67ce8a757d02dfe30d315db *powerpc-linux.elf/upx-3.91
" "
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\ expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
46d8a75ddc5141f042431188404f720aa2966982d3df25d058b43f4dec692eb0 *amd64-linux.elf/upx-3.91 46d8a75ddc5141f042431188404f720aa2966982d3df25d058b43f4dec692eb0 *amd64-linux.elf/upx-3.91
@@ -223,7 +223,7 @@ a16de8811f3668791d85a795d749e2a844145541c02b6bb1f193dad95042b317 *armeb-linux.el
14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe 14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe
2eb756cf3c7e4f80fea379a267071c981f3ab1fbb3eaab7057ca18a2b400fb8f *m68k-atari.tos/upx-3.91.ttp 2eb756cf3c7e4f80fea379a267071c981f3ab1fbb3eaab7057ca18a2b400fb8f *m68k-atari.tos/upx-3.91.ttp
2e6eb5ba0dfe44f0721fdee84ed7cb82c1c85e398d378c39defa89591212099e *mipsel-linux.elf/upx-3.91 2e6eb5ba0dfe44f0721fdee84ed7cb82c1c85e398d378c39defa89591212099e *mipsel-linux.elf/upx-3.91
7838c1206d49957e14bf1202bcf64ee239382ee9ff318f785bf912310c95810d *powerpc-linux.elf/upx-3.91 005af559b536dcc1a5aaf8c9bd59a78989f49a5cb0b7e9e35c0aa74ef6a779f5 *powerpc-linux.elf/upx-3.91
" "
########## end .sha256sums.recreate ########## end .sha256sums.recreate
+223 -224
View File
@@ -1,5 +1,5 @@
/* powerpc-linux.elf-entry.h /* powerpc-linux.elf-entry.h
created from powerpc-linux.elf-entry.bin, 9553 (0x2551) bytes created from powerpc-linux.elf-entry.bin, 9537 (0x2541) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,14 +31,14 @@
*/ */
#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9553 #define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 9537
#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0xaa3ecfa7 #define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0x6a98cabc
#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0x8835025d #define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0xd9add15a
unsigned char stub_powerpc_linux_elf_entry[9553] = { unsigned char stub_powerpc_linux_elf_entry[9537] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 26,148, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x0020 */ 0, 0, 26,132, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 0, 0, 0, 72, 0, 1,165,124, 0, 41,236,125,168, 2,166, /* 0x0030 */ 0, 0, 0, 0, 72, 0, 1,165,124, 0, 41,236,125,168, 2,166,
/* 0x0040 */ 40, 7, 0, 8, 64,130, 1, 60,144,166, 0, 0,124,132, 26, 20, /* 0x0040 */ 40, 7, 0, 8, 64,130, 1, 60,144,166, 0, 0,124,132, 26, 20,
/* 0x0050 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255, /* 0x0050 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255,
@@ -416,222 +416,221 @@ unsigned char stub_powerpc_linux_elf_entry[9553] = {
/* 0x1790 */ 124,100, 24, 80,124,135, 40, 80, 56, 99, 0, 1, 56,132, 0, 1, /* 0x1790 */ 124,100, 24, 80,124,135, 40, 80, 56, 99, 0, 1, 56,132, 0, 1,
/* 0x17a0 */ 144,134, 0, 0, 96,231, 0, 31,124, 0, 56,108,124, 7, 40, 64, /* 0x17a0 */ 144,134, 0, 0, 96,231, 0, 31,124, 0, 56,108,124, 7, 40, 64,
/* 0x17b0 */ 124, 0, 63,172, 56,231, 0, 32, 65,128,255,240,124, 0, 4,172, /* 0x17b0 */ 124, 0, 63,172, 56,231, 0, 32, 65,128,255,240,124, 0, 4,172,
/* 0x17c0 */ 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1, 80, 82, 79, 84, /* 0x17c0 */ 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1,109,109, 97,112,
/* 0x17d0 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, /* 0x17d0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, 0, 14,124,136,
/* 0x17e0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, 0, 30,124,136, /* 0x17e0 */ 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96,
/* 0x17f0 */ 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, /* 0x17f0 */ 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191,
/* 0x1800 */ 0,127, 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191, /* 0x1800 */ 255,248,128, 29, 0, 0,131,120, 0, 12,127,160,232, 80,160, 29,
/* 0x1810 */ 255,248,128, 29, 0, 0,131,120, 0, 12,127,160,232, 80,160, 29, /* 0x1810 */ 0, 16, 40, 0, 0, 3, 65,130, 0, 76,131,157, 0, 72, 57, 0,
/* 0x1820 */ 0, 16, 40, 0, 0, 3, 65,130, 0, 76,131,157, 0, 72, 57, 0, /* 0x1820 */ 0, 0,127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192,
/* 0x1830 */ 0, 0,127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192, /* 0x1830 */ 0, 50,127,156,240, 56, 56,160, 0, 3,128,152, 0, 16,124,125,
/* 0x1840 */ 0, 50,127,156,240, 56, 56,160, 0, 3,128,152, 0, 16,124,125, /* 0x1840 */ 226, 20,127,156, 34, 20,124,110, 27,120, 56, 0, 0, 90, 68, 0,
/* 0x1850 */ 226, 20,127,156, 34, 20,124,110, 27,120, 56, 0, 0, 90, 68, 0, /* 0x1850 */ 0, 2,124, 14, 24, 64, 64,130, 0, 0, 59, 32, 0, 0, 72, 0,
/* 0x1860 */ 0, 2,124, 14, 24, 64, 64,130, 0, 0, 59, 32, 0, 0, 72, 0, /* 0x1860 */ 0,188,127,185,235,120,130,221, 0, 72,128, 24, 0, 16,127,128,
/* 0x1870 */ 0,188,127,185,235,120,130,221, 0, 72,128, 24, 0, 16,127,128, /* 0x1870 */ 178, 20,127,132,227,120,126,228,232, 80,126,247,240, 56,127, 67,
/* 0x1880 */ 178, 20,127,132,227,120,126,228,232, 80,126,247,240, 56,127, 67, /* 0x1880 */ 211,120,128,195, 0, 0,129, 3, 0, 4, 56, 99, 0, 8, 43,134,
/* 0x1890 */ 211,120,128,195, 0, 0,129, 3, 0, 4, 56, 99, 0, 8, 43,134, /* 0x1890 */ 0, 0, 65,158, 0, 44, 56,198,255,224, 43,134, 0, 1, 65,157,
/* 0x18a0 */ 0, 0, 65,158, 0, 44, 56,198,255,224, 43,134, 0, 1, 65,157, /* 0x18a0 */ 255,228,124,215, 64, 80,127,134, 32, 64, 64,156,255,216,124,196,
/* 0x18b0 */ 255,228,124,215, 64, 80,127,134, 32, 64, 64,156,255,216,124,196, /* 0x18b0 */ 48, 80,126,247, 50, 20,126,247,240, 56, 75,255,255,200,126,227,
/* 0x18c0 */ 48, 80,126,247, 50, 20,126,247,240, 56, 75,255,255,200,126,227, /* 0x18c0 */ 187,120, 57, 0, 0, 0, 56,224,255,255, 56,192, 0, 50, 56,160,
/* 0x18d0 */ 187,120, 57, 0, 0, 0, 56,224,255,255, 56,192, 0, 50, 56,160, /* 0x18d0 */ 0, 3, 56, 0, 0, 90, 68, 0, 0, 2,124, 3,184, 64, 64,130,
/* 0x18e0 */ 0, 3, 56, 0, 0, 90, 68, 0, 0, 2,124, 3,184, 64, 64,130, /* 0x18e0 */ 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120, 56,198,
/* 0x18f0 */ 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120, 56,198, /* 0x18f0 */ 0, 7, 56,157,255,252, 84,198,232,254, 56, 99,255,252,124,201,
/* 0x1900 */ 0, 7, 56,157,255,252, 84,198,232,254, 56, 99,255,252,124,201, /* 0x1900 */ 3,166,128,164, 0, 4,132,196, 0, 8,144,163, 0, 4,148,195,
/* 0x1910 */ 3,166,128,164, 0, 4,132,196, 0, 8,144,163, 0, 4,148,195, /* 0x1910 */ 0, 8, 66, 0,255,240,126,253,187,120,124,101, 27,120,124,119,
/* 0x1920 */ 0, 8, 66, 0,255,240,126,253,187,120,124,101, 27,120,124,119, /* 0x1920 */ 27,120,127,233, 3,166,128, 24, 0, 16,136,248, 0, 24, 56,193,
/* 0x1930 */ 27,120,127,233, 3,166,128, 24, 0, 16,136,248, 0, 24, 56,193, /* 0x1930 */ 0,140,144, 1, 0,140,128,152, 0, 20, 56,120, 0, 28, 78,128,
/* 0x1940 */ 0,140,144, 1, 0,140,128,152, 0, 20, 56,120, 0, 28, 78,128, /* 0x1940 */ 4, 33, 87,192,186,126,176, 23, 0, 2, 56,160, 0, 5,127,132,
/* 0x1950 */ 4, 33, 87,192,186,126,176, 23, 0, 2, 56,160, 0, 5,127,132, /* 0x1950 */ 227,120,127,163,235,120, 56, 0, 0,125, 68, 0, 0, 2, 56, 23,
/* 0x1960 */ 227,120,127,163,235,120, 56, 0, 0,125, 68, 0, 0, 2, 56, 23, /* 0x1960 */ 0, 16,124, 9, 3,166, 78,128, 4, 32,128, 3, 0, 0, 56, 99,
/* 0x1970 */ 0, 16,124, 9, 3,166, 78,128, 4, 32,128, 3, 0, 0, 56, 99, /* 0x1970 */ 0, 4, 47,128, 0, 0, 64,158,255,244, 78,128, 0, 32,148, 33,
/* 0x1980 */ 0, 4, 47,128, 0, 0, 64,158,255,244, 78,128, 0, 32,148, 33, /* 0x1980 */ 255,112,188, 65, 0, 20,127,232, 2,166, 56, 97, 0,144, 75,255,
/* 0x1990 */ 255,112,188, 65, 0, 20,127,232, 2,166, 56, 97, 0,144, 75,255, /* 0x1990 */ 255,221, 75,255,255,217,124,122, 27,120,128, 3, 0, 0,128,131,
/* 0x19a0 */ 255,221, 75,255,255,217,124,122, 27,120,128, 3, 0, 0,128,131, /* 0x19a0 */ 0, 4, 56, 99, 0, 8, 47,128, 0, 6, 65,158, 0, 16, 44, 0,
/* 0x19b0 */ 0, 4, 56, 99, 0, 8, 47,128, 0, 6, 65,158, 0, 16, 44, 0, /* 0x19b0 */ 0, 0, 64,130,255,232, 56,128, 16, 0,127,196, 0,208, 75,255,
/* 0x19c0 */ 0, 0, 64,130,255,232, 56,128, 16, 0,127,196, 0,208, 75,255, /* 0x19c0 */ 254, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x19d0 */ 254, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x19d0 */ 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,
/* 0x19e0 */ 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, /* 0x19e0 */ 102, 51, 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99,
/* 0x19f0 */ 102, 51, 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99, /* 0x19f0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
/* 0x1a00 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, /* 0x1a00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
/* 0x1a10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, /* 0x1a10 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65,
/* 0x1a20 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, /* 0x1a20 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
/* 0x1a30 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, /* 0x1a30 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
/* 0x1a40 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, /* 0x1a40 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
/* 0x1a50 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, /* 0x1a50 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1a60 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1a70 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1a70 */ 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1a80 */ 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1a80 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x1a90 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x1a90 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72,
/* 0x1aa0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, /* 0x1aa0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ab0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1ab0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1ac0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1ac0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32,
/* 0x1ad0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, /* 0x1ad0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1ae0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x1ae0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82,
/* 0x1af0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, /* 0x1af0 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1b00 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1b00 */ 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1b10 */ 48, 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1b20 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1b30 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1b30 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x1b40 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1b40 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32,
/* 0x1b50 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, /* 0x1b50 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32,
/* 0x1b60 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, /* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1b70 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42,
/* 0x1b80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 48, 32, 32, 50, 42, /* 0x1b80 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x1b90 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1b90 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x1ba0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ba0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1bb0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1bb0 */ 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1bc0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1bd0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1bd0 */ 48, 48, 48, 50, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x1be0 */ 48, 48, 48, 50, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1be0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82,
/* 0x1bf0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1bf0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65,
/* 0x1c00 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, /* 0x1c00 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1c10 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1c10 */ 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1c20 */ 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1c20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99,
/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 99, /* 0x1c30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1c40 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1c40 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
/* 0x1c50 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1c50 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x1c60 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x1c60 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48,
/* 0x1c70 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, /* 0x1c70 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c80 */ 32, 32, 48, 48, 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48,
/* 0x1c90 */ 32, 32, 48, 48, 48, 48, 48, 52, 50, 99, 32, 32, 50, 42, 42, 48, /* 0x1c90 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68,
/* 0x1ca0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1ca0 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x1cb0 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x1cb0 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32,
/* 0x1cc0 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, /* 0x1cc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1cd0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50,
/* 0x1ce0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 99, 56, 32, 32, 50, /* 0x1ce0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
/* 0x1cf0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1cf0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65,
/* 0x1d00 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, /* 0x1d00 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1d10 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d10 */ 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1d20 */ 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52,
/* 0x1d30 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 54, 52, /* 0x1d30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1d40 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1d40 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78,
/* 0x1d50 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, /* 0x1d50 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1d60 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1d60 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1d70 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1d70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x1d80 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1d80 */ 55, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1d90 */ 55, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1d90 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49,
/* 0x1da0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x1da0 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1db0 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1db0 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1dc0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1dd0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1dd0 */ 48, 48, 49, 55, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x1de0 */ 48, 48, 49, 55, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1de0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x1df0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1df0 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32,
/* 0x1e00 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x1e00 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48,
/* 0x1e10 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 50, 32, 32, 48, 48, 48, /* 0x1e10 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1e20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1e20 */ 32, 48, 48, 48, 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32,
/* 0x1e30 */ 32, 48, 48, 48, 48, 49, 55, 99, 56, 32, 32, 50, 42, 42, 48, 32, /* 0x1e30 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
/* 0x1e40 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1e40 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69,
/* 0x1e50 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, /* 0x1e50 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48,
/* 0x1e60 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1e60 */ 48, 48, 49,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1e70 */ 48, 48, 49,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1e70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49,
/* 0x1e80 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1e80 */ 55,100, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
/* 0x1e90 */ 55,101, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1e90 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
/* 0x1ea0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x1ea0 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76,
/* 0x1eb0 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, /* 0x1eb0 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1ec0 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x1ec0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
/* 0x1ed0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, /* 0x1ed0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x1ee0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1ef0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x1ef0 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48,
/* 0x1f00 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, /* 0x1f00 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48,
/* 0x1f10 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, /* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x1f20 */ 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f30 */ 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1f30 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48,
/* 0x1f40 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, /* 0x1f40 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x1f50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, /* 0x1f50 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x1f60 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, /* 0x1f60 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1f70 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1f70 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x1f80 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x1f80 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x1f90 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x1f90 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1fa0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x1fa0 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48,
/* 0x1fb0 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, /* 0x1fb0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48,
/* 0x1fc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x1fd0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
/* 0x1fe0 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x1fe0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x1ff0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x1ff0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48,
/* 0x2000 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, /* 0x2000 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48,
/* 0x2010 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, /* 0x2010 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
/* 0x2020 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, /* 0x2020 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66,
/* 0x2030 */ 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, /* 0x2030 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2040 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x2040 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48,
/* 0x2050 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, /* 0x2050 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2060 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x2060 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x2070 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x2070 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48,
/* 0x2080 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, /* 0x2080 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x2090 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x2090 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x20a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48,
/* 0x20b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, /* 0x20b0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x20c0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, /* 0x20c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x20d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20d0 */ 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x20e0 */ 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x20e0 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x20f0 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x20f0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x2100 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x2100 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,
/* 0x2110 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97, /* 0x2110 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x2120 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2120 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48,
/* 0x2130 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x2130 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2140 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2140 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48,
/* 0x2150 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48,
/* 0x2160 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, /* 0x2160 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
/* 0x2170 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x2170 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78,
/* 0x2180 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, /* 0x2180 */ 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32,
/* 0x2190 */ 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2190 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x21a0 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x21a0 */ 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67,
/* 0x21b0 */ 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, /* 0x21b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x21c0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x21c0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70,
/* 0x21d0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, /* 0x21d0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x21e0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x21e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x21f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69,
/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, /* 0x2200 */ 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x2210 */ 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x2210 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 49, 97, 52, 10, 10, 82,
/* 0x2220 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 49, 97, 52, 10, 10, 82, /* 0x2220 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x2230 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x2230 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79,
/* 0x2240 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, /* 0x2240 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x2250 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x2250 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, /* 0x2260 */ 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82,
/* 0x2270 */ 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, /* 0x2270 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84,
/* 0x2280 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, /* 0x2280 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x2290 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x2290 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86,
/* 0x22a0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, /* 0x22a0 */ 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x22b0 */ 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x22b0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22c0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x22c0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82,
/* 0x22d0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, /* 0x22d0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32,
/* 0x22e0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, /* 0x22e0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67,
/* 0x22f0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, /* 0x22f0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x2300 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x2300 */ 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2310 */ 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2310 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2320 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2320 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x2330 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x2330 */ 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52,
/* 0x2340 */ 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, /* 0x2340 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10,
/* 0x2350 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, /* 0x2350 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x2360 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x2360 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76,
/* 0x2370 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, /* 0x2370 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84,
/* 0x2380 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2380 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2390 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2390 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32,
/* 0x23a0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x23a0 */ 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32,
/* 0x23b0 */ 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, /* 0x23b0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48,
/* 0x23c0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, /* 0x23c0 */ 48, 48, 48, 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84,
/* 0x23d0 */ 48, 48, 48, 48, 48, 50, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x23d0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
/* 0x23e0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x23e0 */ 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83,
/* 0x23f0 */ 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, /* 0x23f0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2400 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2400 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2410 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x2410 */ 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50,
/* 0x2420 */ 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, /* 0x2420 */ 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x2430 */ 52, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x2430 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2440 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x2440 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73,
/* 0x2450 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, /* 0x2450 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
/* 0x2460 */ 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2460 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2470 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2470 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82,
/* 0x2480 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, /* 0x2480 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32,
/* 0x2490 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, /* 0x2490 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 49,
/* 0x24a0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 49, /* 0x24a0 */ 48, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32,
/* 0x24b0 */ 48, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, /* 0x24b0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48,
/* 0x24c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, /* 0x24c0 */ 48, 48, 48, 49,101, 56, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68,
/* 0x24d0 */ 48, 48, 48, 49,101, 56, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, /* 0x24d0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48,
/* 0x24e0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, /* 0x24e0 */ 48, 48, 48, 49,101, 99, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68,
/* 0x24f0 */ 48, 48, 48, 49,101, 99, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, /* 0x24f0 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48,
/* 0x2500 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, /* 0x2500 */ 48, 48, 48, 49,102, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68,
/* 0x2510 */ 48, 48, 48, 49,102, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, /* 0x2510 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48,
/* 0x2520 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, /* 0x2520 */ 48, 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68,
/* 0x2530 */ 48, 48, 48, 49,102, 52, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, /* 0x2530 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79,
/* 0x2540 */ 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, /* 0x2540 */ 10
/* 0x2550 */ 10
}; };
+3 -3
View File
@@ -32,8 +32,8 @@
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4444 #define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4444
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x86f59bb6 #define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0xc5199bba
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0xefd8aac9 #define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0xef648c2c
unsigned char stub_powerpc_linux_elf_fold[4444] = { unsigned char stub_powerpc_linux_elf_fold[4444] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -65,7 +65,7 @@ unsigned char stub_powerpc_linux_elf_fold[4444] = {
/* 0x01a0 */ 124,133, 26, 20,124,105, 3,166,126, 35,139,120, 56,160, 0, 0, /* 0x01a0 */ 124,133, 26, 20,124,105, 3,166,126, 35,139,120, 56,160, 0, 0,
/* 0x01b0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248, /* 0x01b0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248,
/* 0x01c0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120, /* 0x01c0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120,
/* 0x01d0 */ 84, 0, 7,122,124, 96, 24, 80,126,100,155,120,127, 82, 24, 80, /* 0x01d0 */ 84, 0, 7,126,124, 96, 24, 80,126,100,155,120,127, 82, 24, 80,
/* 0x01e0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244, /* 0x01e0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244,
/* 0x01f0 */ 124, 97, 27,120,148, 33,247,240,128,159,255,248,124,125,218, 20, /* 0x01f0 */ 124, 97, 27,120,148, 33,247,240,128,159,255,248,124,125,218, 20,
/* 0x0200 */ 124,155, 32, 80, 56,161, 0, 16,127, 70,211,120,127,231,251,120, /* 0x0200 */ 124,155, 32, 80, 56,161, 0, 16,127, 70,211,120,127,231,251,120,
+273 -251
View File
@@ -1,5 +1,5 @@
/* powerpc64-linux.elf-entry.h /* powerpc64-linux.elf-entry.h
created from powerpc64-linux.elf-entry.bin, 15420 (0x3c3c) bytes created from powerpc64-linux.elf-entry.bin, 15764 (0x3d94) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,14 +31,14 @@
*/ */
#define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 15420 #define STUB_POWERPC64_LINUX_ELF_ENTRY_SIZE 15764
#define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0xda5e216d #define STUB_POWERPC64_LINUX_ELF_ENTRY_ADLER32 0x3e40ab70
#define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0x89c87f48 #define STUB_POWERPC64_LINUX_ELF_ENTRY_CRC32 0x7e27b4c9
unsigned char stub_powerpc64_linux_elf_entry[15420] = { unsigned char stub_powerpc64_linux_elf_entry[15764] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,112, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,184,
/* 0x0030 */ 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,
/* 0x0040 */ 72, 0, 0, 1,124, 0, 41,236,125,168, 2,166, 40, 7, 0, 8, /* 0x0040 */ 72, 0, 0, 1,124, 0, 41,236,125,168, 2,166, 40, 7, 0, 8,
/* 0x0050 */ 64,130, 1, 72,248,166, 0, 0,124,132, 26, 20, 60, 0,128, 0, /* 0x0050 */ 64,130, 1, 72,248,166, 0, 0,124,132, 26, 20, 60, 0,128, 0,
@@ -752,252 +752,274 @@ unsigned char stub_powerpc64_linux_elf_entry[15420] = {
/* 0x2c90 */ 56,132, 0, 1,248,134, 0, 0, 96,231, 0, 31,124, 0, 56,108, /* 0x2c90 */ 56,132, 0, 1,248,134, 0, 0, 96,231, 0, 31,124, 0, 56,108,
/* 0x2ca0 */ 124, 39, 40, 64,124, 0, 63,172, 56,231, 0, 32, 65,128,255,240, /* 0x2ca0 */ 124, 39, 40, 64,124, 0, 63,172, 56,231, 0, 32, 65,128,255,240,
/* 0x2cb0 */ 124, 0, 4,172, 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1, /* 0x2cb0 */ 124, 0, 4,172, 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1,
/* 0x2cc0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, /* 0x2cc0 */ 109,109, 97,112, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,
/* 0x2cd0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, /* 0x2cd0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x2ce0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x2ce0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56,160, 0, 14,124,136, 2,166,
/* 0x2cf0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56,160, 0, 30,124,136, 2,166, /* 0x2cf0 */ 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, 0,127,
/* 0x2d00 */ 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, 0,127, /* 0x2d00 */ 56, 0, 0, 1, 68, 0, 0, 2,127, 8, 2,166, 59,191,255,248,
/* 0x2d10 */ 56, 0, 0, 1, 68, 0, 0, 2,127,200, 2,166,131, 94, 0, 0, /* 0x2d10 */ 128, 29, 0, 0,131,120, 0, 0,127,160,232, 80,160, 29, 0, 16,
/* 0x2d20 */ 128,126, 0, 8, 57, 0, 0, 0, 60,128, 0, 1, 56,224,255,255, /* 0x2d20 */ 40, 0, 0, 3, 65,130, 0, 68,235,157, 0,104, 57, 0, 0, 0,
/* 0x2d30 */ 124, 99,242, 20, 56,192, 0, 50, 56, 99, 0, 15, 56,160, 0, 7, /* 0x2d30 */ 127,158,224, 80, 56,224,255,255, 59,156,255,255, 56,192, 0, 50,
/* 0x2d40 */ 124, 99, 34, 20, 56, 0, 0, 90,120, 99, 4, 36, 68, 0, 0, 2, /* 0x2d40 */ 127,156,240, 56, 56,160, 0, 3,128,152, 0, 4,124,125,226, 20,
/* 0x2d50 */ 65,195, 0, 0,127,233, 3,166,128, 30, 0, 4,136,254, 0, 12, /* 0x2d50 */ 127,156, 34, 20, 56, 0, 0, 90, 68, 0, 0, 2, 65,195, 0, 0,
/* 0x2d60 */ 56,193, 1,104,144, 1, 1,104,124,101, 27,120,124,104, 3,166, /* 0x2d60 */ 59, 32, 0, 0, 72, 0, 0,184,127,185,235,120,234,221, 0,104,
/* 0x2d70 */ 128,158, 0, 8, 56,126, 0, 16,248, 33,255,145, 78,128, 4, 32, /* 0x2d70 */ 128, 24, 0, 4,127,128,178, 20,127,132,227,120,126,228,232, 80,
/* 0x2d80 */ 248, 33,254,145,248, 65, 0,120,248, 97, 0,128,248,129, 0,136, /* 0x2d80 */ 126,247,240, 56,127, 67,211,120,232,195, 0, 0,233, 3, 0, 8,
/* 0x2d90 */ 248,161, 0,144,248,193, 0,152,248,225, 0,160,249, 1, 0,168, /* 0x2d90 */ 56, 99, 0, 16, 43,166, 0, 0, 65,222, 0, 44, 56,198,255,224,
/* 0x2da0 */ 249, 33, 0,176,249, 65, 0,184,249, 97, 0,192,249,129, 0,200, /* 0x2da0 */ 43,166, 0, 1, 65,253,255,228,124,215, 64, 80,127,166, 32, 64,
/* 0x2db0 */ 249,161, 0,208,249,193, 0,216,249,225, 0,224,250, 1, 0,232, /* 0x2db0 */ 64,252,255,216,124,196, 48, 80,126,247, 50, 20,126,247,240, 56,
/* 0x2dc0 */ 250, 33, 0,240,250, 65, 0,248,250, 97, 1, 0,250,129, 1, 8, /* 0x2dc0 */ 75,255,255,200,126,227,187,120, 57, 0, 0, 0, 56,224,255,255,
/* 0x2dd0 */ 250,161, 1, 16,250,193, 1, 24,250,225, 1, 32,251, 1, 1, 40, /* 0x2dd0 */ 56,192, 0, 50, 56,160, 0, 3, 56, 0, 0, 90, 68, 0, 0, 2,
/* 0x2de0 */ 251, 33, 1, 48,251, 65, 1, 56,251, 97, 1, 64,251,129, 1, 72, /* 0x2de0 */ 65,195, 0, 0,124, 29,184, 80,127,255, 2, 20,126,198,179,120,
/* 0x2df0 */ 251,161, 1, 80,251,193, 1, 88,251,225, 1, 96,127,232, 2,166, /* 0x2df0 */ 56,198, 0, 15, 56,157,255,248,120,198,225, 2, 56, 99,255,248,
/* 0x2e00 */ 75,255,255, 25, 0, 0, 0, 0,102,105,108,101, 32,102,111,114, /* 0x2e00 */ 124,201, 3,166,232,164, 0, 8,232,196, 0, 17,248,163, 0, 8,
/* 0x2e10 */ 109, 97,116, 32,101,108,102, 54, 52, 45,112,111,119,101,114,112, /* 0x2e10 */ 248,195, 0, 17, 66, 0,255,240,126,253,187,120,124,101, 27,120,
/* 0x2e20 */ 99, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, /* 0x2e20 */ 124,119, 27,120,127,233, 3,166,128, 24, 0, 4,136,248, 0, 12,
/* 0x2e30 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, /* 0x2e30 */ 56,193, 1,104,144, 1, 1,104,128,152, 0, 8, 56,120, 0, 16,
/* 0x2e40 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, /* 0x2e40 */ 78,128, 4, 33, 56,160, 0, 5,127,132,227,120,127,163,235,120,
/* 0x2e50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, /* 0x2e50 */ 56, 0, 0,125, 68, 0, 0, 2,126,233, 3,166, 78,128, 4, 32,
/* 0x2e60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108, /* 0x2e60 */ 232, 3, 0, 0, 56, 99, 0, 8, 47,160, 0, 0, 64,254,255,244,
/* 0x2e70 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, /* 0x2e70 */ 78,128, 0, 32,124,128, 0, 8,248, 33,254,145,248, 65, 0,120,
/* 0x2e80 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, /* 0x2e80 */ 248, 97, 0,128,248,129, 0,136,248,161, 0,144,248,193, 0,152,
/* 0x2e90 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, /* 0x2e90 */ 248,225, 0,160,249, 1, 0,168,249, 33, 0,176,249, 65, 0,184,
/* 0x2ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2ea0 */ 249, 97, 0,192,249,129, 0,200,249,161, 0,208,249,193, 0,216,
/* 0x2eb0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2eb0 */ 249,225, 0,224,250, 1, 0,232,250, 33, 0,240,250, 65, 0,248,
/* 0x2ec0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, /* 0x2ec0 */ 250, 97, 1, 0,250,129, 1, 8,250,161, 1, 16,250,193, 1, 24,
/* 0x2ed0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x2ed0 */ 250,225, 1, 32,251, 1, 1, 40,251, 33, 1, 48,251, 65, 1, 56,
/* 0x2ee0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, /* 0x2ee0 */ 251, 97, 1, 64,251,129, 1, 72,251,161, 1, 80,251,193, 1, 88,
/* 0x2ef0 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, /* 0x2ef0 */ 251,225, 1, 96,127,232, 2,166, 56, 97, 1,112, 75,255,255,101,
/* 0x2f00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2f00 */ 75,255,255, 97,124,122, 27,120,232, 3, 0, 0,232,131, 0, 8,
/* 0x2f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2f10 */ 56, 99, 0, 16, 47,160, 0, 6, 65,222, 0, 16, 44, 32, 0, 0,
/* 0x2f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2f20 */ 64,226,255,232, 60,128, 0, 1,127,196, 0,208, 75,255,253,221,
/* 0x2f30 */ 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x2f30 */ 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
/* 0x2f40 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x2f40 */ 101,108,102, 54, 52, 45,112,111,119,101,114,112, 99, 10, 10, 83,
/* 0x2f50 */ 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2f50 */ 101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,
/* 0x2f60 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, /* 0x2f60 */ 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32,
/* 0x2f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2f70 */ 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2f80 */ 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x2f90 */ 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x2f90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,
/* 0x2fa0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x2fa0 */ 102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32,
/* 0x2fb0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, /* 0x2fb0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32,
/* 0x2fc0 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x2fc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48,
/* 0x2fd0 */ 48, 49, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x2fe0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x2ff0 */ 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x3000 */ 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x3000 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
/* 0x3010 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x3010 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86,
/* 0x3020 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, /* 0x3020 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x3030 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32, /* 0x3030 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3040 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3050 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3050 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52,
/* 0x3060 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42, /* 0x3060 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x3070 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x3070 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32,
/* 0x3080 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x3080 */ 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x3090 */ 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, /* 0x3090 */ 48, 48, 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x30a0 */ 48, 48, 48, 48, 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x30a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x30b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x30b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x30c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x30c0 */ 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x30d0 */ 48, 48, 48, 51,100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x30d0 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
/* 0x30e0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x30e0 */ 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32,
/* 0x30f0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, /* 0x30f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52,
/* 0x3100 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x3100 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3110 */ 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3110 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3120 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3120 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 56, 32, 32,
/* 0x3130 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, /* 0x3130 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x3140 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x3140 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x3150 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, /* 0x3150 */ 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32,
/* 0x3160 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x3160 */ 32, 32, 48, 48, 48, 48, 48, 48,102, 56, 32, 32, 48, 48, 48, 48,
/* 0x3170 */ 48, 49, 50, 55, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x3180 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x3180 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x3190 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x3190 */ 48, 48, 48, 48, 48, 50,100, 99, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x31a0 */ 52, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x31a0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x31b0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x31b0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90,
/* 0x31c0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, /* 0x31c0 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x31d0 */ 48, 48, 48, 48, 49, 53, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x31d0 */ 48, 48, 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x31e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x31e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x31f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x31f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,
/* 0x3200 */ 48, 48, 49, 55, 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x3200 */ 100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x3210 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x3210 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x3220 */ 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, /* 0x3220 */ 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x3230 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, /* 0x3230 */ 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 56, 32, 32,
/* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x3240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x3250 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3260 */ 32, 48, 48, 48, 48, 50, 99, 55, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x3260 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42,
/* 0x3270 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x3270 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x3280 */ 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, /* 0x3280 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95,
/* 0x3290 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, /* 0x3290 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 49, 50, 55,
/* 0x32a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x32a0 */ 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x32b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x32b0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x32c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 50, 99, 57, 56, 32, 32, 50, 42, /* 0x32c0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 57, 48, 32,
/* 0x32d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x32d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x32e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, /* 0x32e0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90,
/* 0x32f0 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, /* 0x32f0 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x3300 */ 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3300 */ 49, 53, 55, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3310 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3310 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3320 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 99, 98, 99, 32, /* 0x3320 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,
/* 0x3330 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x3330 */ 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x3340 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x3340 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57,
/* 0x3350 */ 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32, /* 0x3350 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48,
/* 0x3360 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, /* 0x3360 */ 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x3370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x3370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x3380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x3380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x3390 */ 32, 48, 48, 48, 48, 50, 99,101, 48, 32, 32, 50, 42, 42, 51, 32, /* 0x3390 */ 48, 50, 99, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x33a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x33a0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x33b0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, /* 0x33b0 */ 32, 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32,
/* 0x33c0 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x33c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48,
/* 0x33d0 */ 48, 48, 49, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x33d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x33e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x33e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x33f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, /* 0x33f0 */ 48, 48, 48, 48, 50, 99, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x3400 */ 99,102, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, /* 0x3400 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x3410 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x3410 */ 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32,
/* 0x3420 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, /* 0x3420 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 50, 32, 32, 48,
/* 0x3430 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x3440 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, /* 0x3440 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3450 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3450 */ 48, 32, 32, 48, 48, 48, 48, 50, 99, 98, 99, 32, 32, 50, 42, 42,
/* 0x3460 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x3460 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x3470 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3470 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50,
/* 0x3480 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x3480 */ 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 32, 32, 32, 32, 32, 48,
/* 0x3490 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3490 */ 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x34a0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, /* 0x34a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x34b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x34b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x34c0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x34c0 */ 48, 50, 99,100, 48, 32, 32, 50, 42, 42, 51, 32, 32, 67, 79, 78,
/* 0x34d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x34d0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x34e0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, /* 0x34e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, 76, 70, 77, 65,
/* 0x34f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x34f0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52,
/* 0x3500 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x3500 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, /* 0x3510 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3520 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3520 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 99,101, 56, 32,
/* 0x3530 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x3530 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x3540 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x3540 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x3550 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x3550 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
/* 0x3560 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x3570 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x3570 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x3580 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3580 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3590 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x3590 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48,
/* 0x35a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x35a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x35b0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, /* 0x35b0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x35c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x35c0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x35d0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x35d0 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
/* 0x35e0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x35e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x35f0 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x35f0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48,
/* 0x3600 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, /* 0x3600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x3610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x3610 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3620 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, /* 0x3620 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x3630 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, /* 0x3630 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x3640 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x3650 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, /* 0x3650 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3660 */ 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3660 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x3670 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x3670 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3680 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3680 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x3690 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x3690 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x36a0 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x36a0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x36b0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x36b0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x36c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x36c0 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x36d0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x36d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x36e0 */ 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x36e0 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48,
/* 0x36f0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, /* 0x36f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69,
/* 0x3700 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3700 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3710 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, /* 0x3710 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9,
/* 0x3720 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3730 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x3730 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x3740 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x3750 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48, /* 0x3750 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, /* 0x3760 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48,
/* 0x3770 */ 77, 65, 73, 78, 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x3780 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, /* 0x3780 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x3790 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x3790 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x37a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, /* 0x37a0 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48,
/* 0x37b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x37b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x37c0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x37c0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x37d0 */ 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x37d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x37e0 */ 48, 48, 48, 48, 32,101,110,116,114,121, 95,100,101,115, 99,114, /* 0x37e0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48,
/* 0x37f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x37f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x3800 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x3800 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x3810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3810 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3820 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x3820 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48,
/* 0x3830 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x3830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x3840 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, /* 0x3840 */ 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48,
/* 0x3850 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, /* 0x3850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x3860 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3860 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3870 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3870 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76,
/* 0x3880 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, /* 0x3880 */ 70, 77, 65, 73, 78, 90,101, 9, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3890 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x3890 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x38a0 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x38a0 */ 90,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x38b0 */ 48, 48, 56, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x38b0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x38c0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, /* 0x38c0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x38d0 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, /* 0x38d0 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48,
/* 0x38e0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x38e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x38f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x38f0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,101, 9,
/* 0x3900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, /* 0x3900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3910 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, /* 0x3910 */ 32,101,110,116,114,121, 95,100,101,115, 99,114, 10, 48, 48, 48,
/* 0x3920 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, /* 0x3920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x3930 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x3930 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x3940 */ 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, /* 0x3940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66,
/* 0x3950 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, /* 0x3950 */ 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x3960 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x3960 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x3970 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3970 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x3980 */ 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, /* 0x3980 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x3990 */ 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x3990 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x39a0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x39a0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x39b0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, /* 0x39b0 */ 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52,
/* 0x39c0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x39c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120,
/* 0x39d0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x39d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 56, 99,
/* 0x39e0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x39e0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x39f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, /* 0x39f0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93,
/* 0x3a00 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, /* 0x3a00 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3a10 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x3a10 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3a20 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x3a20 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x3a30 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, /* 0x3a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95, 80, 80,
/* 0x3a40 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, /* 0x3a40 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82,
/* 0x3a50 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3a50 */ 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x3a60 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3a60 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x3a70 */ 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, /* 0x3a70 */ 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x3a80 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x3a80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x3a90 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3a90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x3aa0 */ 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x3aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99,
/* 0x3ab0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x3ab0 */ 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32,
/* 0x3ac0 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x3ac0 */ 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69,
/* 0x3ad0 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, /* 0x3ad0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x3ae0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x3ae0 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70,
/* 0x3af0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3af0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
/* 0x3b00 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, /* 0x3b00 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3b10 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x3b10 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3b20 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x3b20 */ 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95,
/* 0x3b30 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, /* 0x3b30 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65,
/* 0x3b40 */ 90,101, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, /* 0x3b40 */ 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x3b50 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x3b50 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65,
/* 0x3b60 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x3b60 */ 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x3b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, /* 0x3b70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x3b80 */ 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32, /* 0x3b80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x3b90 */ 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x3b90 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3ba0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x3ba0 */ 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52,
/* 0x3bb0 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, /* 0x3bb0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43,
/* 0x3bc0 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, /* 0x3bc0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3bd0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x3bd0 */ 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x3be0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3be0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77,
/* 0x3bf0 */ 48, 48, 48, 53, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, /* 0x3bf0 */ 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x3c00 */ 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x3c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x3c10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, /* 0x3c10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x3c20 */ 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, /* 0x3c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3c30 */ 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 /* 0x3c30 */ 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52, 32, 32,
/* 0x3c40 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76,
/* 0x3c50 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x3c60 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90,101, 93, 58,
/* 0x3c70 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3c80 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3c90 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x3ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67,
/* 0x3cb0 */ 54, 52, 95, 65, 68, 68, 82, 54, 52, 32, 32, 32, 32, 95,115,116,
/* 0x3cc0 */ 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x3cd0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x3ce0 */ 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x3cf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x3d00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x3d10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55,
/* 0x3d20 */ 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32,
/* 0x3d30 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48,
/* 0x3d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95,
/* 0x3d50 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32,
/* 0x3d60 */ 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x3d70 */ 48, 48, 48, 48, 48, 48, 50, 52, 56, 32, 82, 95, 80, 80, 67, 54,
/* 0x3d80 */ 52, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, 66, 73,
/* 0x3d90 */ 78, 70, 79, 10
}; };
+176 -158
View File
@@ -1,5 +1,5 @@
/* powerpc64-linux.elf-fold.h /* powerpc64-linux.elf-fold.h
created from powerpc64-linux.elf-fold.bin, 2552 (0x9f8) bytes created from powerpc64-linux.elf-fold.bin, 2840 (0xb18) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,169 +31,187 @@
*/ */
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 2552 #define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 2840
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x133b8465 #define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x315ae8a8
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x9f5c5208 #define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x30151ef5
unsigned char stub_powerpc64_linux_elf_fold[2552] = { unsigned char stub_powerpc64_linux_elf_fold[2840] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 9,168, /* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 10,200,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 9,168, 0, 0, 0, 0, 0, 0, 9,168, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 10,196, 0, 0, 0, 0, 0, 0, 10,196,
/* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, /* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 9,168, 0, 0, 0, 0, 0, 16, 9,168, /* 0x0080 */ 0, 0, 0, 0, 0, 0, 10,200, 0, 0, 0, 0, 0, 16, 10,200,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 9,168, 0, 0, 0, 0, 0, 0, 0, 80, /* 0x0090 */ 0, 0, 0, 0, 0, 16, 10,200, 0, 0, 0, 0, 0, 0, 0, 80,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0,125, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,128, 0, 8,
/* 0x00c0 */ 40, 6, 0,208, 76,194, 0, 32, 84,132,240,191, 77,194, 0, 32, /* 0x00c0 */ 72, 0, 0,125, 40, 6, 0,208, 76,194, 0, 32, 84,132,240,191,
/* 0x00d0 */ 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,124, 4, 3,120, /* 0x00d0 */ 77,194, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,
/* 0x00e0 */ 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,124,137, 3,166, /* 0x00e0 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,
/* 0x00f0 */ 72, 0, 0, 28, 84, 11, 2,186,125, 99, 88, 80,125,107, 58, 20, /* 0x00f0 */ 124,137, 3,166, 72, 0, 0, 28, 84, 11, 2,186,125, 99, 88, 80,
/* 0x0100 */ 81, 96, 1,186,144, 3, 0, 0, 79, 64, 0, 32,132, 3, 0, 4, /* 0x0100 */ 125,107, 58, 20, 81, 96, 1,186,144, 3, 0, 0, 79, 64, 0, 32,
/* 0x0110 */ 84, 11, 85,190,124, 11, 40, 64, 65,194,255,220, 67, 32,255,240, /* 0x0110 */ 132, 3, 0, 4, 84, 11, 85,190,124, 11, 40, 64, 65,194,255,220,
/* 0x0120 */ 78,128, 0, 32,232, 9, 0, 0, 57, 41, 0, 8, 43,160, 0, 0, /* 0x0120 */ 67, 32,255,240, 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111,
/* 0x0130 */ 64,254,255,244, 78,128, 0, 32, 56, 33, 0,112,125, 8, 2,166, /* 0x0130 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,168, 2,166,
/* 0x0140 */ 233, 33, 0, 0, 75,255,255,225, 75,255,255,221, 57, 65, 0,248, /* 0x0140 */ 56,128, 0, 0, 56,117, 0,104, 72, 0, 2, 45,124,116, 27,120,
/* 0x0150 */ 248, 10, 0, 0, 56, 33,247,144,128,159,255,248,121, 30, 3,228, /* 0x0150 */ 56,129,255,248, 56, 33,239,248, 56, 97,255,248, 59, 90,255,248,
/* 0x0160 */ 127,164,248, 80, 59,189,255,248,127,231,251,120,124,125,210, 20, /* 0x0160 */ 232, 4, 0, 9,127,164,208, 64,248, 3, 0, 9, 65,156,255,244,
/* 0x0170 */ 124,154, 32, 80, 56,161, 0,112,128,195, 0, 0,248,225, 0, 24, /* 0x0170 */ 59, 67, 0, 16,248, 3, 0, 9,232, 4, 0, 8, 43,160, 0, 0,
/* 0x0180 */ 56,225, 0, 24,249, 1, 0, 32, 57, 1, 0, 32, 72, 0, 5,229, /* 0x0180 */ 248, 3, 0, 8,232, 4, 0, 17,248, 3, 0, 17, 64,158,255,236,
/* 0x0190 */ 232, 1, 9,104,232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0, /* 0x0190 */ 58, 99, 0, 8,126, 90,152, 80,124,128, 0, 8,128, 21, 0,100,
/* 0x01a0 */ 124, 99, 2, 20,124,127, 27,120,127,163,235,120,124,157,240, 80, /* 0x01a0 */ 58, 36, 0, 8,148, 3, 0, 8, 57,195, 0, 4, 56,160, 15,255,
/* 0x01b0 */ 72, 0, 0,177,127,232, 3,166,232, 97, 8,128,232,129, 8,136, /* 0x01b0 */ 125,196,115,120, 56,117, 0,104, 72, 0, 1,165, 56,174,255,252,
/* 0x01c0 */ 232,161, 8,144,232,193, 8,152,232,225, 8,160,233, 1, 8,168, /* 0x01c0 */ 44, 35, 0, 0, 65,129, 0, 12, 56,181, 0,100, 56, 96, 0, 12,
/* 0x01d0 */ 233, 33, 8,176,233, 65, 8,184,233, 97, 8,192,233,129, 8,200, /* 0x01d0 */ 56, 99, 0, 4,124,133, 26, 20,124,105, 3,166,126, 35,139,120,
/* 0x01e0 */ 233,161, 8,208,233,193, 8,216,233,225, 8,224,234, 1, 8,232, /* 0x01e0 */ 56,160, 0, 0,156,163,255,255,140, 4,255,255,156, 3,255,255,
/* 0x01f0 */ 234, 33, 8,240,234, 65, 8,248,234, 97, 9, 0,234,129, 9, 8, /* 0x01f0 */ 66, 0,255,248,248,122,255,240,120, 99, 7, 36,124, 32, 34,120,
/* 0x0200 */ 234,161, 9, 16,234,193, 9, 24,234,225, 9, 32,235, 1, 9, 40, /* 0x0200 */ 124, 0, 26,120,120, 0, 7, 32,124, 96, 24, 80,126,100,155,120,
/* 0x0210 */ 235, 33, 9, 48,235, 65, 9, 56,235, 97, 9, 64,235,129, 9, 72, /* 0x0210 */ 127, 82, 24, 80,232, 4,255,249,127,164, 8, 64,248, 3,255,249,
/* 0x0220 */ 235,161, 9, 80,235,193, 9, 88,235,225, 9, 96,232, 33, 8,112, /* 0x0220 */ 65,253,255,244,124, 97, 27,120, 57, 65, 0,248, 56, 0, 0, 0,
/* 0x0230 */ 56, 0, 0, 0,124, 15,241, 32,124, 9, 3,166, 78,128, 0, 32, /* 0x0230 */ 248, 10, 0, 0,248, 33,247,145,128,159,255,248,124,125,218, 20,
/* 0x0240 */ 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, /* 0x0240 */ 124,155, 32, 80, 56,161, 0,112,127, 70,211,120,127,231,251,120,
/* 0x0250 */ 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, /* 0x0250 */ 126,168,171,120,127, 41,203,120,248,225, 0, 24, 56,225, 0, 24,
/* 0x0260 */ 56, 0, 0, 91, 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, /* 0x0260 */ 249, 1, 0, 32, 57, 1, 0, 32, 72, 0, 6, 37,232, 1, 9,104,
/* 0x0270 */ 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 90, 68, 0, 0, 2, /* 0x0270 */ 232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0,124, 99, 2, 20,
/* 0x0280 */ 64,227, 0, 8, 56, 96,255,255, 78,128, 0, 32, 44, 35, 0, 0, /* 0x0280 */ 56, 33, 8,112,124,127, 27,120, 57, 0, 0, 0,126,135,163,120,
/* 0x0290 */ 77,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, /* 0x0290 */ 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208, 56, 96, 0, 0,
/* 0x02a0 */ 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, /* 0x02a0 */ 72, 0, 0,245,126,131,163,120, 72, 0, 0,197,127, 67,211,120,
/* 0x02b0 */ 43,170, 0, 1, 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, /* 0x02b0 */ 232, 3, 0, 0,232,131, 0, 8, 56, 99, 0, 16, 43,160, 0, 0,
/* 0x02c0 */ 75,255,255,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x02c0 */ 64,254,255,240,124,137, 3,166,127,163,235,120,127,132,227,120,
/* 0x02d0 */ 233, 67, 0, 0,233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0, /* 0x02d0 */ 56, 0, 0, 91,127,232, 3,166,232, 97, 0,128,232,129, 0,136,
/* 0x02e0 */ 124,233, 3,166,127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, /* 0x02e0 */ 232,161, 0,144,232,193, 0,152,232,225, 0,160,233, 1, 0,168,
/* 0x02f0 */ 56, 96, 0,127,248, 1, 0, 16,248, 33,255,145, 75,255,255, 69, /* 0x02f0 */ 233, 33, 0,176,233, 65, 0,184,233, 97, 0,192,233,129, 0,200,
/* 0x0300 */ 96, 0, 0, 0, 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, /* 0x0300 */ 233,161, 0,208,233,193, 0,216,233,225, 0,224,234, 1, 0,232,
/* 0x0310 */ 57, 41, 0, 1, 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20, /* 0x0310 */ 234, 33, 0,240,234, 65, 0,248,234, 97, 1, 0,234,129, 1, 8,
/* 0x0320 */ 249, 67, 0, 8,233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, /* 0x0320 */ 234,161, 1, 16,234,193, 1, 24,234,225, 1, 32,235, 1, 1, 40,
/* 0x0330 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, /* 0x0330 */ 235, 33, 1, 48,235, 65, 1, 56,235, 97, 1, 64,235,129, 1, 72,
/* 0x0340 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,241, /* 0x0340 */ 235,161, 1, 80,235,193, 1, 88,235,225, 1, 96, 56, 33, 1,112,
/* 0x0350 */ 248, 33,255, 81,124,126, 27,120,124,159, 35,120,124,189, 43,120, /* 0x0350 */ 78,128, 4, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 85,
/* 0x0360 */ 124,220, 51,120, 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, /* 0x0360 */ 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, 56, 0, 0, 6,
/* 0x0370 */ 65,158, 1, 64,127,195,243,120, 56,129, 0,112, 56,160, 0, 12, /* 0x0370 */ 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 91,
/* 0x0380 */ 75,255,255, 81,129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, /* 0x0380 */ 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 3,
/* 0x0390 */ 64,158, 0, 32,109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28, /* 0x0390 */ 72, 0, 0, 8, 56, 0, 0, 90, 68, 0, 0, 2, 64,227, 0, 8,
/* 0x03a0 */ 233, 62, 0, 0, 47,169, 0, 0, 65,254, 1, 8, 72, 0, 0, 12, /* 0x03a0 */ 56, 96,255,255, 78,128, 0, 32, 44, 35, 0, 0, 77,130, 0, 32,
/* 0x03b0 */ 121, 41, 0, 33, 64,226, 0, 16, 56, 96, 0,127, 75,255,254,133, /* 0x03b0 */ 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, 64,158, 0, 16,
/* 0x03c0 */ 96, 0, 0, 0,127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0, /* 0x03c0 */ 248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, 43,170, 0, 1,
/* 0x03d0 */ 127,170, 64, 64, 65,221,255,228,232,191, 0, 8, 64,152, 0,164, /* 0x03d0 */ 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, 75,255,255,216,
/* 0x03e0 */ 125, 36, 75,120,233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128, /* 0x03e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233, 67, 0, 0,
/* 0x03f0 */ 249, 65, 0,128,248, 65, 0, 40,136,225, 0,120,233,125, 0, 16, /* 0x03f0 */ 233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0,124,233, 3,166,
/* 0x0400 */ 125, 41, 3,166,232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, /* 0x0400 */ 127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, 56, 96, 0,127,
/* 0x0410 */ 47,163, 0, 0, 64,222,255,164,232,129, 0,128,129, 33, 0,112, /* 0x0410 */ 248, 1, 0, 16,248, 33,255,145, 75,255,255, 61, 96, 0, 0, 0,
/* 0x0420 */ 127,164, 72, 0, 64,222,255,148,136,193, 0,121, 47,166, 0, 0, /* 0x0420 */ 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, 57, 41, 0, 1,
/* 0x0430 */ 65,158, 0, 48, 65,146, 0, 44,232,127, 0, 8,136,161, 0,122, /* 0x0430 */ 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,
/* 0x0440 */ 120,132, 0, 32,248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16, /* 0x0440 */ 233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32,
/* 0x0450 */ 125, 41, 3,166,232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40, /* 0x0450 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,
/* 0x0460 */ 129, 1, 0,116,233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20, /* 0x0460 */ 124, 8, 2,166,145,129, 0, 8, 72, 0, 5,241,248, 33,255, 81,
/* 0x0470 */ 125, 40, 72, 80,249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20, /* 0x0470 */ 124,126, 27,120,124,159, 35,120,124,189, 43,120,124,220, 51,120,
/* 0x0480 */ 124,164, 43,120,127,195,243,120,125, 37, 75,120, 75,255,254, 69, /* 0x0480 */ 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 64,
/* 0x0490 */ 129, 1, 0,112,233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20, /* 0x0490 */ 127,195,243,120, 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,
/* 0x04a0 */ 125, 40, 72, 80,249, 95, 0, 8,249, 63, 0, 0, 75,255,254,188, /* 0x04a0 */ 129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, 64,158, 0, 32,
/* 0x04b0 */ 56, 33, 0,176,129,129, 0, 8,125,144,129, 32, 72, 0, 4,208, /* 0x04b0 */ 109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28,233, 62, 0, 0,
/* 0x04c0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,124, 8, 2,166, /* 0x04c0 */ 47,169, 0, 0, 65,254, 1, 8, 72, 0, 0, 12,121, 41, 0, 33,
/* 0x04d0 */ 125,128, 0, 38, 72, 0, 4, 49,125, 58, 75,120,161, 35, 0, 16, /* 0x04d0 */ 64,226, 0, 16, 56, 96, 0,127, 75,255,254,125, 96, 0, 0, 0,
/* 0x04e0 */ 235,163, 0, 32,124,215, 51,120,124,123, 27,120,124,153, 35,120, /* 0x04e0 */ 127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0,127,170, 64, 64,
/* 0x04f0 */ 47,137, 0, 3,145,129, 0, 8,248, 33,254,241,124,184, 43,120, /* 0x04f0 */ 65,221,255,228,232,191, 0, 8, 64,152, 0,164,125, 36, 75,120,
/* 0x0500 */ 124,246, 59,120,125, 21, 67,120,127,163,234, 20, 56,192, 0, 16, /* 0x0500 */ 233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128,249, 65, 0,128,
/* 0x0510 */ 64,158, 0, 8, 56,192, 0, 0,161, 59, 0, 56, 56,198, 8, 34, /* 0x0510 */ 248, 65, 0, 40,136,225, 0,120,233,125, 0, 16,125, 41, 3,166,
/* 0x0520 */ 127,168,235,120, 57, 64, 0, 0, 59,192,255,255, 57, 41, 0, 1, /* 0x0520 */ 232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, 47,163, 0, 0,
/* 0x0530 */ 125, 41, 3,166, 66, 64, 0, 60,129, 40, 0, 0, 47,137, 0, 1, /* 0x0530 */ 64,222,255,164,232,129, 0,128,129, 33, 0,112,127,164, 72, 0,
/* 0x0540 */ 64,158, 0, 40,232,232, 0, 16,127,190, 56, 64, 64,157, 0, 8, /* 0x0540 */ 64,222,255,148,136,193, 0,121, 47,166, 0, 0, 65,158, 0, 48,
/* 0x0550 */ 124,254, 59,120,233, 40, 0, 40,125, 39, 74, 20,127,170, 72, 64, /* 0x0550 */ 65,146, 0, 44,232,127, 0, 8,136,161, 0,122,120,132, 0, 32,
/* 0x0560 */ 64,156, 0, 8,125, 42, 75,120, 57, 8, 0, 56, 75,255,255,200, /* 0x0560 */ 248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16,125, 41, 3,166,
/* 0x0570 */ 61, 74, 0, 1,123,222, 3,228, 57, 74,255,255,127,195,243,120, /* 0x0570 */ 232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40,129, 1, 0,116,
/* 0x0580 */ 124,158, 80, 80, 56,160, 0, 0,120,132, 3,228,124,198, 7,180, /* 0x0580 */ 233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20,125, 40, 72, 80,
/* 0x0590 */ 56,224,255,255, 57, 0, 0, 0, 75,255,252,225, 96, 0, 0, 0, /* 0x0590 */ 249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20,124,164, 43,120,
/* 0x05a0 */ 62, 64,115, 81, 58,128, 0, 0, 46, 57, 0, 0, 98, 82, 98, 64, /* 0x05a0 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 69,129, 1, 0,112,
/* 0x05b0 */ 127,222, 24, 80, 58, 32, 0, 0,161, 59, 0, 56,127,137,160, 0, /* 0x05b0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80,
/* 0x05c0 */ 64,157, 1,128,129, 61, 0, 0, 65,146, 0, 36, 47,137, 0, 6, /* 0x05c0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,188, 56, 33, 0,176,
/* 0x05d0 */ 64,158, 0, 28,232,189, 0, 16,126,227,187,120, 56,128, 0, 3, /* 0x05d0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 4,208, 0, 0, 0, 0,
/* 0x05e0 */ 124,190, 42, 20, 75,255,252,169, 72, 0, 1, 72, 47,137, 0, 1, /* 0x05e0 */ 0, 0, 0, 3,128, 4, 0, 0,124, 8, 2,166,125,128, 0, 38,
/* 0x05f0 */ 64,158, 1, 64,129,253, 0, 4,235,157, 0, 16,235,253, 0, 32, /* 0x05f0 */ 72, 0, 4, 49,125, 58, 75,120,161, 35, 0, 16,235,163, 0, 32,
/* 0x0600 */ 234,125, 0, 40, 85,239, 22,250,127,158,226, 20,251,225, 0,112, /* 0x0600 */ 124,215, 51,120,124,123, 27,120,124,153, 35,120, 47,137, 0, 3,
/* 0x0610 */ 126, 79,124, 48,123,137, 4, 32,251,129, 0,120,126,124,154, 20, /* 0x0610 */ 145,129, 0, 8,248, 33,254,241,124,184, 43,120,124,246, 59,120,
/* 0x0620 */ 127,233,250, 20,123,156, 3,228, 85,240, 7,126, 64,146, 0, 12, /* 0x0620 */ 125, 21, 67,120,127,163,234, 20, 56,192, 0, 16, 64,158, 0, 8,
/* 0x0630 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,131,120, /* 0x0630 */ 56,192, 0, 0,161, 59, 0, 56, 56,198, 8, 34,127,168,235,120,
/* 0x0640 */ 124,165, 7,180, 64,146, 0, 16,127, 7,195,120, 56,192, 0, 18, /* 0x0640 */ 57, 64, 0, 0, 59,192,255,255, 57, 41, 0, 1,125, 41, 3,166,
/* 0x0650 */ 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,233, 29, 0, 8, /* 0x0650 */ 66, 64, 0, 60,129, 40, 0, 0, 47,137, 0, 1, 64,158, 0, 40,
/* 0x0660 */ 127,131,227,120,127,228,251,120,125, 9, 64, 80, 75,255,252, 13, /* 0x0660 */ 232,232, 0, 16,127,190, 56, 64, 64,157, 0, 8,124,254, 59,120,
/* 0x0670 */ 96, 0, 0, 0,127,188, 24, 0, 65,254, 0, 16, 56, 96, 0,127, /* 0x0670 */ 233, 40, 0, 40,125, 39, 74, 20,127,170, 72, 64, 64,156, 0, 8,
/* 0x0680 */ 75,255,251,193, 96, 0, 0, 0, 65,146, 0, 24,127, 35,203,120, /* 0x0680 */ 125, 42, 75,120, 57, 8, 0, 56, 75,255,255,200, 61, 74, 0, 1,
/* 0x0690 */ 56,129, 0,112,126,197,179,120,126,166,171,120, 75,255,252,165, /* 0x0690 */ 123,222, 3,228, 57, 74,255,255,127,195,243,120,124,158, 80, 80,
/* 0x06a0 */ 125,223, 0,208,121,233,255,227,121,206, 4, 32, 64,130, 0, 12, /* 0x06a0 */ 56,160, 0, 0,120,132, 3,228,124,198, 7,180, 56,224,255,255,
/* 0x06b0 */ 64,146, 0, 44, 72, 0, 0, 68, 47,174, 0, 0, 65,158,255,244, /* 0x06b0 */ 57, 0, 0, 0, 75,255,252,225, 96, 0, 0, 0, 62, 64,115, 81,
/* 0x06c0 */ 125,201, 3,166,125, 92,250, 20, 57, 32, 0, 0,126, 42, 73,174, /* 0x06c0 */ 58,128, 0, 0, 46, 57, 0, 0, 98, 82, 98, 64,127,222, 24, 80,
/* 0x06d0 */ 57, 41, 0, 1, 66, 0,255,248, 75,255,255,216,127,131,227,120, /* 0x06d0 */ 58, 32, 0, 0,161, 59, 0, 56,127,137,160, 0, 64,157, 1,128,
/* 0x06e0 */ 127,228,251,120,126, 5, 7,180, 75,255,251,129, 96, 0, 0, 0, /* 0x06e0 */ 129, 61, 0, 0, 65,146, 0, 36, 47,137, 0, 6, 64,158, 0, 28,
/* 0x06f0 */ 47,163, 0, 0, 64,222,255,136,127,238,250, 20,127,252,250, 20, /* 0x06f0 */ 232,189, 0, 16,126,227,187,120, 56,128, 0, 3,124,190, 42, 20,
/* 0x0700 */ 127,191,152, 64, 64,156, 0, 44,127,227,251,120,124,159,152, 80, /* 0x0700 */ 75,255,252,169, 72, 0, 1, 72, 47,137, 0, 1, 64,158, 1, 64,
/* 0x0710 */ 126, 5, 7,180, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, /* 0x0710 */ 129,253, 0, 4,235,157, 0, 16,235,253, 0, 32,234,125, 0, 40,
/* 0x0720 */ 75,255,251, 89, 96, 0, 0, 0,127,191, 24, 0, 64,222,255, 80, /* 0x0720 */ 85,239, 22,250,127,158,226, 20,251,225, 0,112,126, 79,124, 48,
/* 0x0730 */ 58,148, 0, 1, 59,189, 0, 56,126,148, 7,180, 75,255,254,124, /* 0x0730 */ 123,137, 4, 32,251,129, 0,120,126,124,154, 20,127,233,250, 20,
/* 0x0740 */ 47,186, 0, 0, 65,158, 0, 8,251,218, 0, 0, 56, 33, 1, 16, /* 0x0740 */ 123,156, 3,228, 85,240, 7,126, 64,146, 0, 12, 56,160, 0, 0,
/* 0x0750 */ 232,123, 0, 24,124,126, 26, 20,129,129, 0, 8,125,144,129, 32, /* 0x0750 */ 72, 0, 0, 8, 56,160, 0, 2,124,165,131,120,124,165, 7,180,
/* 0x0760 */ 72, 0, 1,244, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, /* 0x0760 */ 64,146, 0, 16,127, 7,195,120, 56,192, 0, 18, 72, 0, 0, 12,
/* 0x0770 */ 124, 8, 2,166, 56,192, 0, 0, 72, 0, 1,185,248, 33,255, 17, /* 0x0770 */ 56,192, 0, 50, 56,224,255,255,233, 29, 0, 8,127,131,227,120,
/* 0x0780 */ 124,191, 43,120,125, 62, 75,120,125, 91, 83,120,129, 35, 0, 0, /* 0x0780 */ 127,228,251,120,125, 9, 64, 80, 75,255,252, 13, 96, 0, 0, 0,
/* 0x0790 */ 59,133, 0, 64, 59,160, 0, 0,248, 97, 0,152,248,129, 0,144, /* 0x0790 */ 127,188, 24, 0, 65,254, 0, 16, 56, 96, 0,127, 75,255,251,185,
/* 0x07a0 */ 248,161, 0,136,249, 33, 0,128,124,229, 59,120,248,225, 0,160, /* 0x07a0 */ 96, 0, 0, 0, 65,146, 0, 24,127, 35,203,120, 56,129, 0,112,
/* 0x07b0 */ 249, 1, 0,168, 56, 97, 0,144, 56,129, 0,128,233, 65, 0,144, /* 0x07b0 */ 126,197,179,120,126,166,171,120, 75,255,252,165,125,223, 0,208,
/* 0x07c0 */ 233, 97, 0,152,249, 65, 0,112,249, 97, 0,120, 75,255,251,117, /* 0x07c0 */ 121,233,255,227,121,206, 4, 32, 64,130, 0, 12, 64,146, 0, 44,
/* 0x07d0 */ 127,195,243,120, 56,128, 0, 3,232,191, 0, 80, 56,165, 0, 64, /* 0x07d0 */ 72, 0, 0, 68, 47,174, 0, 0, 65,158,255,244,125,201, 3,166,
/* 0x07e0 */ 75,255,250,173,160,191, 0, 56,127,195,243,120, 56,128, 0, 5, /* 0x07e0 */ 125, 92,250, 20, 57, 32, 0, 0,126, 42, 73,174, 57, 41, 0, 1,
/* 0x07f0 */ 75,255,250,157,128,191, 0, 28,127,195,243,120, 56,128, 0, 9, /* 0x07f0 */ 66, 0,255,248, 75,255,255,216,127,131,227,120,127,228,251,120,
/* 0x0800 */ 75,255,250,141,232,225, 0,160,233, 1, 0,168, 56,129, 0,112, /* 0x0800 */ 126, 5, 7,180, 75,255,251,129, 96, 0, 0, 0, 47,163, 0, 0,
/* 0x0810 */ 56,160, 0, 0,127,198,243,120,127,105,219,120,127,227,251,120, /* 0x0810 */ 64,222,255,136,127,238,250, 20,127,252,250, 20,127,191,152, 64,
/* 0x0820 */ 75,255,252,173, 56,128, 0, 9,124,122, 27,120,127,195,243,120, /* 0x0820 */ 64,156, 0, 44,127,227,251,120,124,159,152, 80,126, 5, 7,180,
/* 0x0830 */ 127, 69,211,120, 75,255,250, 89,161, 63, 0, 56,127,137,232, 0, /* 0x0830 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,251, 89,
/* 0x0840 */ 64,157, 0,172,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,144, /* 0x0840 */ 96, 0, 0, 0,127,191, 24, 0, 64,222,255, 80, 58,148, 0, 1,
/* 0x0850 */ 232,124, 0, 16,233, 59, 0, 0, 56,128, 0, 0, 56,160, 0, 0, /* 0x0850 */ 59,189, 0, 56,126,148, 7,180, 75,255,254,124, 47,186, 0, 0,
/* 0x0860 */ 124, 99, 74, 20, 75,255,249,245, 96, 0, 0, 0, 47,131, 0, 0, /* 0x0860 */ 65,158, 0, 8,251,218, 0, 0, 56, 33, 1, 16,232,123, 0, 24,
/* 0x0870 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,249,197, /* 0x0870 */ 124,126, 26, 20,129,129, 0, 8,125,144,129, 32, 72, 0, 1,244,
/* 0x0880 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,249,229, /* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166,
/* 0x0890 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 56,128, 0, 0, /* 0x0890 */ 56,192, 0, 0, 72, 0, 1,185,248, 33,255, 17,124,191, 43,120,
/* 0x08a0 */ 127, 37,203,120, 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0, /* 0x08a0 */ 125, 62, 75,120,125, 91, 83,120,129, 35, 0, 0, 59,133, 0, 64,
/* 0x08b0 */ 127,105,219,120,127,227,251,120, 75,255,252, 21,232,187, 0, 0, /* 0x08b0 */ 59,160, 0, 0,248, 97, 0,152,248,129, 0,144,248,161, 0,136,
/* 0x08c0 */ 56,128, 0, 7,124,122, 27,120,127,195,243,120, 75,255,249,193, /* 0x08c0 */ 249, 33, 0,128,124,229, 59,120,248,225, 0,160,249, 1, 0,168,
/* 0x08d0 */ 127, 35,203,120, 75,255,249,125, 96, 0, 0, 0, 59,189, 0, 1, /* 0x08d0 */ 56, 97, 0,144, 56,129, 0,128,233, 65, 0,144,233, 97, 0,152,
/* 0x08e0 */ 59,156, 0, 56,127,189, 7,180, 75,255,255, 80, 56, 33, 0,240, /* 0x08e0 */ 249, 65, 0,112,249, 97, 0,120, 75,255,251,117,127,195,243,120,
/* 0x08f0 */ 127, 67,211,120, 72, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x08f0 */ 56,128, 0, 3,232,191, 0, 80, 56,165, 0, 64, 75,255,250,173,
/* 0x0900 */ 128, 7, 0, 0,249,193,255,112,249,225,255,120,250, 1,255,128, /* 0x0900 */ 160,191, 0, 56,127,195,243,120, 56,128, 0, 5, 75,255,250,157,
/* 0x0910 */ 250, 33,255,136,250, 65,255,144,250, 97,255,152,250,129,255,160, /* 0x0910 */ 128,191, 0, 28,127,195,243,120, 56,128, 0, 9, 75,255,250,141,
/* 0x0920 */ 250,161,255,168,250,193,255,176,250,225,255,184,251, 1,255,192, /* 0x0920 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,112, 56,160, 0, 0,
/* 0x0930 */ 251, 33,255,200,251, 65,255,208,251, 97,255,216,251,129,255,224, /* 0x0930 */ 127,198,243,120,127,105,219,120,127,227,251,120, 75,255,252,173,
/* 0x0940 */ 251,161,255,232,251,193,255,240,251,225,255,248,248, 1, 0, 16, /* 0x0940 */ 56,128, 0, 9,124,122, 27,120,127,195,243,120,127, 69,211,120,
/* 0x0950 */ 78,128, 0, 32,233,193,255,112,233,225,255,120,234, 1,255,128, /* 0x0950 */ 75,255,250, 89,161, 63, 0, 56,127,137,232, 0, 64,157, 0,172,
/* 0x0960 */ 234, 33,255,136,234, 65,255,144,234, 97,255,152,234,129,255,160, /* 0x0960 */ 129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,144,232,124, 0, 16,
/* 0x0970 */ 234,161,255,168,234,193,255,176,234,225,255,184,235, 1,255,192, /* 0x0970 */ 233, 59, 0, 0, 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20,
/* 0x0980 */ 235, 33,255,200,235, 65,255,208,235, 97,255,216,235,129,255,224, /* 0x0980 */ 75,255,249,245, 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120,
/* 0x0990 */ 232, 1, 0, 16,235,161,255,232,124, 8, 3,166,235,193,255,240, /* 0x0990 */ 64,252, 0, 16, 56, 96, 0,127, 75,255,249,189, 96, 0, 0, 0,
/* 0x09a0 */ 235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, 0, 16, 2,140, /* 0x09a0 */ 127,228,251,120, 56,160, 4, 0, 75,255,249,229, 96, 0, 0, 0,
/* 0x09b0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 2,208, /* 0x09b0 */ 47,163, 4, 0, 64,222,255,224, 56,128, 0, 0,127, 37,203,120,
/* 0x09c0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 3, 64, /* 0x09c0 */ 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,127,105,219,120,
/* 0x09d0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 4,204, /* 0x09d0 */ 127,227,251,120, 75,255,252, 21,232,187, 0, 0, 56,128, 0, 7,
/* 0x09e0 */ 0, 0, 0, 0, 0, 16,137,168, 0, 0, 0, 0, 0, 16, 7,112, /* 0x09e0 */ 124,122, 27,120,127,195,243,120, 75,255,249,193,127, 35,203,120,
/* 0x09f0 */ 0, 0, 0, 0, 0, 16,137,168 /* 0x09f0 */ 75,255,249,125, 96, 0, 0, 0, 59,189, 0, 1, 59,156, 0, 56,
/* 0x0a00 */ 127,189, 7,180, 75,255,255, 80, 56, 33, 0,240,127, 67,211,120,
/* 0x0a10 */ 72, 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 1,128, 7, 0, 0,
/* 0x0a20 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136,
/* 0x0a30 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168,
/* 0x0a40 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200,
/* 0x0a50 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232,
/* 0x0a60 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32,
/* 0x0a70 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136,
/* 0x0a80 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168,
/* 0x0a90 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200,
/* 0x0aa0 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16,
/* 0x0ab0 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248,
/* 0x0ac0 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,168,
/* 0x0ad0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 3,236,
/* 0x0ae0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 4, 92,
/* 0x0af0 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 5,232,
/* 0x0b00 */ 0, 0, 0, 0, 0, 16,138,200, 0, 0, 0, 0, 0, 16, 8,140,
/* 0x0b10 */ 0, 0, 0, 0, 0, 16,138,200
}; };
+249 -228
View File
@@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-entry.h /* powerpc64le-linux.elf-entry.h
created from powerpc64le-linux.elf-entry.bin, 12198 (0x2fa6) bytes created from powerpc64le-linux.elf-entry.bin, 12542 (0x30fe) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,14 +31,14 @@
*/ */
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 12198 #define STUB_POWERPC64LE_LINUX_ELF_ENTRY_SIZE 12542
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0xebffab25 #define STUB_POWERPC64LE_LINUX_ELF_ENTRY_ADLER32 0x76c53439
#define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0xf8cdde06 #define STUB_POWERPC64LE_LINUX_ELF_ENTRY_CRC32 0x1e50f567
unsigned char stub_powerpc64le_linux_elf_entry[12198] = { unsigned char stub_powerpc64le_linux_elf_entry[12542] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,208, 37, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 39, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, 8, 0, 7, 40, /* 0x0040 */ 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, 8, 0, 7, 40,
/* 0x0050 */ 72, 1,130, 64, 0, 0,166,248, 20, 26,132,124, 0,128, 0, 60, /* 0x0050 */ 72, 1,130, 64, 0, 0,166,248, 20, 26,132,124, 0,128, 0, 60,
@@ -574,229 +574,250 @@ unsigned char stub_powerpc64le_linux_elf_entry[12198] = {
/* 0x2170 */ 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96,108, 56, 0,124, /* 0x2170 */ 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96,108, 56, 0,124,
/* 0x2180 */ 64, 40, 39,124,172, 63, 0,124, 32, 0,231, 56,240,255,128, 65, /* 0x2180 */ 64, 40, 39,124,172, 63, 0,124, 32, 0,231, 56,240,255,128, 65,
/* 0x2190 */ 172, 4, 0,124, 44, 1, 0, 76, 32, 0,128, 78, 1, 0, 0, 72, /* 0x2190 */ 172, 4, 0,124, 44, 1, 0, 76, 32, 0,128, 78, 1, 0, 0, 72,
/* 0x21a0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, /* 0x21a0 */ 109,109, 97,112, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,
/* 0x21b0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0, /* 0x21b0 */ 14, 0,160, 56,166, 2,136,124, 2, 0, 96, 56, 4, 0, 0, 56,
/* 0x21c0 */ 30, 0,160, 56,166, 2,136,124, 2, 0, 96, 56, 4, 0, 0, 56, /* 0x21c0 */ 2, 0, 0, 68,127, 0, 96, 56, 1, 0, 0, 56, 2, 0, 0, 68,
/* 0x21d0 */ 2, 0, 0, 68,127, 0, 96, 56, 1, 0, 0, 56, 2, 0, 0, 68, /* 0x21d0 */ 166, 2, 8,127,248,255,191, 59, 0, 0, 29,128, 0, 0,120,131,
/* 0x21e0 */ 166, 2,200,127, 0, 0, 94,131, 8, 0,126,128, 0, 0, 0, 57, /* 0x21e0 */ 80,232,160,127, 16, 0, 29,160, 3, 0, 0, 40, 68, 0,130, 65,
/* 0x21f0 */ 1, 0,128, 60,255,255,224, 56, 20,242, 99,124, 50, 0,192, 56, /* 0x21f0 */ 104, 0,157,235, 0, 0, 0, 57, 80,224,158,127,255,255,224, 56,
/* 0x2200 */ 15, 0, 99, 56, 7, 0,160, 56, 20, 34, 99,124, 90, 0, 0, 56, /* 0x2200 */ 255,255,156, 59, 50, 0,192, 56, 56,240,156,127, 3, 0,160, 56,
/* 0x2210 */ 36, 4, 99,120, 2, 0, 0, 68, 0, 0,195, 65,166, 3,233,127, /* 0x2210 */ 4, 0,152,128, 20,226,125,124, 20, 34,156,127, 90, 0, 0, 56,
/* 0x2220 */ 4, 0, 30,128, 12, 0,254,136,104, 1,193, 56,104, 1, 1,144, /* 0x2220 */ 2, 0, 0, 68, 0, 0,195, 65, 0, 0, 32, 59,184, 0, 0, 72,
/* 0x2230 */ 120, 27,101,124,166, 3,104,124, 8, 0,158,128, 16, 0,126, 56, /* 0x2230 */ 120,235,185,127,104, 0,221,234, 4, 0, 24,128, 20,178,128,127,
/* 0x2240 */ 145,255, 33,248, 32, 4,128, 78,145,254, 33,248,120, 0, 65,248, /* 0x2240 */ 120,227,132,127, 80,232,228,126, 56,240,247,126,120,211, 67,127,
/* 0x2250 */ 128, 0, 97,248,136, 0,129,248,144, 0,161,248,152, 0,193,248, /* 0x2250 */ 0, 0,195,232, 8, 0, 3,233, 16, 0, 99, 56, 0, 0,166, 43,
/* 0x2260 */ 160, 0,225,248,168, 0, 1,249,176, 0, 33,249,184, 0, 65,249, /* 0x2260 */ 44, 0,222, 65,224,255,198, 56, 1, 0,166, 43,228,255,253, 65,
/* 0x2270 */ 192, 0, 97,249,200, 0,129,249,208, 0,161,249,216, 0,193,249, /* 0x2270 */ 80, 64,215,124, 64, 32,166,127,216,255,252, 64, 80, 48,196,124,
/* 0x2280 */ 224, 0,225,249,232, 0, 1,250,240, 0, 33,250,248, 0, 65,250, /* 0x2280 */ 20, 50,247,126, 56,240,247,126,200,255,255, 75,120,187,227,126,
/* 0x2290 */ 0, 1, 97,250, 8, 1,129,250, 16, 1,161,250, 24, 1,193,250, /* 0x2290 */ 0, 0, 0, 57,255,255,224, 56, 50, 0,192, 56, 3, 0,160, 56,
/* 0x22a0 */ 32, 1,225,250, 40, 1, 1,251, 48, 1, 33,251, 56, 1, 65,251, /* 0x22a0 */ 90, 0, 0, 56, 2, 0, 0, 68, 0, 0,195, 65, 80,184, 29,124,
/* 0x22b0 */ 64, 1, 97,251, 72, 1,129,251, 80, 1,161,251, 88, 1,193,251, /* 0x22b0 */ 20, 2,255,127,120,179,198,126, 15, 0,198, 56,248,255,157, 56,
/* 0x22c0 */ 96, 1,225,251,166, 2,232,127, 25,255,255, 75, 0, 0, 0, 0, /* 0x22c0 */ 2,225,198,120,248,255, 99, 56,166, 3,201,124, 8, 0,164,232,
/* 0x22d0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, /* 0x22d0 */ 17, 0,196,232, 8, 0,163,248, 17, 0,195,248,240,255, 0, 66,
/* 0x22e0 */ 52, 45,112,111,119,101,114,112, 99,108,101, 10, 10, 83,101, 99, /* 0x22e0 */ 120,187,253,126,120, 27,101,124,120, 27,119,124,166, 3,233,127,
/* 0x22f0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, /* 0x22f0 */ 4, 0, 24,128, 12, 0,248,136,104, 1,193, 56,104, 1, 1,144,
/* 0x2300 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, /* 0x2300 */ 8, 0,152,128, 16, 0,120, 56, 33, 4,128, 78, 5, 0,160, 56,
/* 0x2310 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2310 */ 120,227,132,127,120,235,163,127,125, 0, 0, 56, 2, 0, 0, 68,
/* 0x2320 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2320 */ 166, 3,233,126, 32, 4,128, 78, 0, 0, 3,232, 8, 0, 99, 56,
/* 0x2330 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, /* 0x2330 */ 0, 0,160, 47,244,255,254, 64, 32, 0,128, 78, 8, 0,128,124,
/* 0x2340 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, /* 0x2340 */ 145,254, 33,248,120, 0, 65,248,128, 0, 97,248,136, 0,129,248,
/* 0x2350 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, /* 0x2350 */ 144, 0,161,248,152, 0,193,248,160, 0,225,248,168, 0, 1,249,
/* 0x2360 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2360 */ 176, 0, 33,249,184, 0, 65,249,192, 0, 97,249,200, 0,129,249,
/* 0x2370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2370 */ 208, 0,161,249,216, 0,193,249,224, 0,225,249,232, 0, 1,250,
/* 0x2380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2380 */ 240, 0, 33,250,248, 0, 65,250, 0, 1, 97,250, 8, 1,129,250,
/* 0x2390 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x2390 */ 16, 1,161,250, 24, 1,193,250, 32, 1,225,250, 40, 1, 1,251,
/* 0x23a0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x23a0 */ 48, 1, 33,251, 56, 1, 65,251, 64, 1, 97,251, 72, 1,129,251,
/* 0x23b0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, /* 0x23b0 */ 80, 1,161,251, 88, 1,193,251, 96, 1,225,251,166, 2,232,127,
/* 0x23c0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x23c0 */ 112, 1, 97, 56,101,255,255, 75, 97,255,255, 75,120, 27,122,124,
/* 0x23d0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x23d0 */ 0, 0, 3,232, 8, 0,131,232, 16, 0, 99, 56, 6, 0,160, 47,
/* 0x23e0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x23e0 */ 16, 0,222, 65, 0, 0, 32, 44,232,255,226, 64, 1, 0,128, 60,
/* 0x23f0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, /* 0x23f0 */ 208, 0,196,127,221,253,255, 75, 0, 0, 0, 0,102,105,108,101,
/* 0x2400 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x2400 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,112,111,
/* 0x2410 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, /* 0x2410 */ 119,101,114,112, 99,108,101, 10, 10, 83,101, 99,116,105,111,110,
/* 0x2420 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x2420 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
/* 0x2430 */ 48, 49, 53, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2430 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86,
/* 0x2440 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2440 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2450 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2450 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2460 */ 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x2460 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,
/* 0x2470 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x2470 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70,
/* 0x2480 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, /* 0x2480 */ 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x2490 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32, 32, /* 0x2490 */ 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x24a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x24a0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x24b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x24b0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52,
/* 0x24c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, /* 0x24c0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x24d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x24d0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x24e0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x24e0 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32,
/* 0x24f0 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x24f0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2500 */ 48, 48, 48, 48, 48, 48,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2500 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2510 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2520 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42,
/* 0x2530 */ 48, 48, 48, 50,100, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2530 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
/* 0x2540 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x2540 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32,
/* 0x2550 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, /* 0x2550 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 53, 52,
/* 0x2560 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2560 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2570 */ 57, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2570 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2580 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2580 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32, 32,
/* 0x2590 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,100, 52, /* 0x2590 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
/* 0x25a0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x25a0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x25b0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x25b0 */ 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32,
/* 0x25c0 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x25c0 */ 32, 32, 48, 48, 48, 48, 48, 49, 52, 52, 32, 32, 48, 48, 48, 48,
/* 0x25d0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, /* 0x25d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x25e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x25e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x25f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x25f0 */ 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x2600 */ 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, 42, 48, /* 0x2600 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
/* 0x2610 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x2610 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82,
/* 0x2620 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x2620 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x2630 */ 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 49, 48, 57, 99, 32, /* 0x2630 */ 48, 48,102, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2640 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2640 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2650 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2650 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,
/* 0x2660 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 57, 48, 32, 32, 50, /* 0x2660 */ 100, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x2670 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x2670 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
/* 0x2680 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, /* 0x2680 */ 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70,
/* 0x2690 */ 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 99, /* 0x2690 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 52, 32, 32,
/* 0x26a0 */ 51, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x26a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26b0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x26b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x26c0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 53, 50, 99, /* 0x26c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,100, 52, 32, 32, 50, 42,
/* 0x26d0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x26d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x26e0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, /* 0x26e0 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
/* 0x26f0 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x26f0 */ 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32,
/* 0x2700 */ 48, 48, 48, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2700 */ 48, 48, 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x2720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, /* 0x2720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x2730 */ 49, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2730 */ 48, 48, 48, 52, 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x2740 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x2740 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x2750 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2750 */ 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32,
/* 0x2760 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2760 */ 32, 32, 32, 48, 48, 48, 48, 49, 48, 57, 99, 32, 32, 48, 48, 48,
/* 0x2770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2790 */ 48, 48, 50, 49, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2790 */ 32, 48, 48, 48, 48, 48, 52, 57, 48, 32, 32, 50, 42, 42, 48, 32,
/* 0x27a0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x27a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
/* 0x27b0 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x27b0 */ 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x27c0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 50, 32, 32, 48, 48, 48, /* 0x27c0 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 99, 51, 48, 32, 32,
/* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x27d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x27e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x27f0 */ 32, 48, 48, 48, 48, 50, 49, 57, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x27f0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 53, 50, 99, 32, 32, 50, 42,
/* 0x2800 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x2800 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
/* 0x2810 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, /* 0x2810 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84,
/* 0x2820 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2820 */ 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,
/* 0x2830 */ 48, 48, 49, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2830 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2840 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2840 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, /* 0x2850 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49, 53, 99, 32,
/* 0x2860 */ 49, 99, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, /* 0x2860 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x2870 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x2870 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70,
/* 0x2880 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, /* 0x2880 */ 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x2890 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2890 */ 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28a0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, /* 0x28a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x28b0 */ 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x28b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49,
/* 0x28c0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x28c0 */ 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x28d0 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x28d0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49,
/* 0x28e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x28e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48,
/* 0x28f0 */ 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x28f0 */ 48, 48, 48, 48, 48, 49, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x2900 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, /* 0x2900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x2920 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2920 */ 48, 50, 49, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x2930 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2930 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x2940 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, /* 0x2940 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65,
/* 0x2950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2950 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52,
/* 0x2960 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x2960 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, /* 0x2970 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2980 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2980 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 50, 49, 98, 48, 32,
/* 0x2990 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2990 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x29a0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x29a0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
/* 0x29b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x29b0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
/* 0x29c0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x29c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x29d0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x29d0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x29e0 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x29e0 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x29f0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x29f0 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48,
/* 0x2a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2a10 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, /* 0x2a10 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
/* 0x2a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x2a20 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2a30 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2a30 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
/* 0x2a40 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2a50 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2a50 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48,
/* 0x2a60 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, /* 0x2a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
/* 0x2a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2a70 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2a80 */ 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, /* 0x2a80 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, /* 0x2a90 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x2ab0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, /* 0x2ab0 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2ac0 */ 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2ac0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x2ad0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x2ad0 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2ae0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2ae0 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x2af0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x2af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2b00 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2b00 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x2b10 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x2b10 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2b20 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2b20 */ 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
/* 0x2b30 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x2b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x2b40 */ 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2b40 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48,
/* 0x2b50 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, /* 0x2b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69,
/* 0x2b60 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2b60 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2b70 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, /* 0x2b70 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9,
/* 0x2b80 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2b90 */ 48, 32, 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2b90 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, /* 0x2ba0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2bb0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, /* 0x2bb0 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97, /* 0x2bc0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48,
/* 0x2bd0 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2be0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2be0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x2bf0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2bf0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c00 */ 48, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, /* 0x2c00 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48,
/* 0x2c10 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x2c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2c20 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, /* 0x2c20 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x2c30 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2c30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c40 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2c40 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48,
/* 0x2c50 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, /* 0x2c60 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48,
/* 0x2c70 */ 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x2c70 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2c80 */ 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2c80 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48,
/* 0x2c90 */ 48, 48, 48, 48, 56, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x2ca0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x2ca0 */ 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, 72, 9, 48, 48, 48,
/* 0x2cb0 */ 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x2cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70,
/* 0x2cc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x2cc0 */ 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2cd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x2cd0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x2ce0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, /* 0x2ce0 */ 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2cf0 */ 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, /* 0x2cf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48,
/* 0x2d00 */ 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, /* 0x2d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x2d10 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2d10 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48,
/* 0x2d20 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, /* 0x2d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79,
/* 0x2d30 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, /* 0x2d30 */ 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x2d40 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2d40 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x2d50 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2d50 */ 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2d60 */ 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, /* 0x2d60 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
/* 0x2d70 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, /* 0x2d70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2d80 */ 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x2d80 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2d90 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, /* 0x2d90 */ 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76,
/* 0x2da0 */ 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, /* 0x2da0 */ 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43,
/* 0x2db0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2db0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
/* 0x2dc0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x2dc0 */ 56, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
/* 0x2dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, /* 0x2dd0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50,
/* 0x2de0 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, /* 0x2de0 */ 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
/* 0x2df0 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2df0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x2e00 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2e00 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x2e10 */ 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, /* 0x2e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 48, 32, 82, 95,
/* 0x2e20 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e20 */ 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32,
/* 0x2e30 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2e30 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2e40 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2e40 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2e50 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, /* 0x2e50 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2e60 */ 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, /* 0x2e60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x2e70 */ 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2e70 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x2e80 */ 48, 48, 48, 48, 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2e80 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2e90 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2e90 */ 48, 99, 99, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49,
/* 0x2ea0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, /* 0x2ea0 */ 52, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10,
/* 0x2eb0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, /* 0x2eb0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x2ec0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2ec0 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10,
/* 0x2ed0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2ed0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2ee0 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, /* 0x2ee0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2ef0 */ 69, 76, 50, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2ef0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x2f00 */ 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2f00 */ 48, 48, 48, 48, 48, 48, 48, 57, 56, 32, 82, 95, 80, 80, 67, 54,
/* 0x2f10 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, /* 0x2f10 */ 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 78, 82, 86, 95,
/* 0x2f20 */ 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, /* 0x2f20 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2f30 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x2f30 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90,
/* 0x2f40 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x2f40 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x2f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 56, 32, /* 0x2f50 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
/* 0x2f60 */ 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, /* 0x2f60 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x2f70 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, /* 0x2f70 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 80, 80, /* 0x2f80 */ 48, 48, 48, 52, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76,
/* 0x2f90 */ 67, 54, 52, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 79, 95, /* 0x2f90 */ 49, 52, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51,
/* 0x2fa0 */ 66, 73, 78, 70, 79, 10 /* 0x2fa0 */ 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2fb0 */ 48, 48, 50, 56, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x2fc0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x2fd0 */ 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x2fe0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x2ff0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x3000 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x3010 */ 48, 48, 32, 82, 95, 80, 80, 67, 54, 52, 95, 82, 69, 76, 50, 52,
/* 0x3020 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82,
/* 0x3030 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x3040 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93,
/* 0x3050 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3060 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x3070 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x3080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 80, 80,
/* 0x3090 */ 67, 54, 52, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 69, 76,
/* 0x30a0 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x30b0 */ 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95,
/* 0x30c0 */ 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x30d0 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x30e0 */ 50, 52, 56, 32, 82, 95, 80, 80, 67, 54, 52, 95, 65, 68, 68, 82,
/* 0x30f0 */ 51, 50, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
}; };
+173 -155
View File
@@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-fold.h /* powerpc64le-linux.elf-fold.h
created from powerpc64le-linux.elf-fold.bin, 2507 (0x9cb) bytes created from powerpc64le-linux.elf-fold.bin, 2795 (0xaeb) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,166 +31,184 @@
*/ */
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 2507 #define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 2795
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xd4d27643 #define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xc168da42
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x23402ac4 #define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xebae1d09
unsigned char stub_powerpc64le_linux_elf_fold[2507] = { unsigned char stub_powerpc64le_linux_elf_fold[2795] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,128, 9, 16, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,160, 10, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 128, 9, 0, 0, 0, 0, 0, 0,128, 9, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 156, 10, 0, 0, 0, 0, 0, 0,156, 10, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0080 */ 128, 9, 0, 0, 0, 0, 0, 0,128, 9, 16, 0, 0, 0, 0, 0, /* 0x0080 */ 160, 10, 0, 0, 0, 0, 0, 0,160, 10, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 128, 9, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 160, 10, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 0, 0, 72, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,124,
/* 0x00c0 */ 208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84, 32, 0,194, 77, /* 0x00c0 */ 125, 0, 0, 72,208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84,
/* 0x00d0 */ 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65,120, 3, 4,124, /* 0x00d0 */ 32, 0,194, 77, 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65,
/* 0x00e0 */ 32, 1,165, 56,120, 27,103,124,252,255, 99, 56,166, 3,137,124, /* 0x00e0 */ 120, 3, 4,124, 32, 1,165, 56,120, 27,103,124,252,255, 99, 56,
/* 0x00f0 */ 28, 0, 0, 72,186, 2, 11, 84, 80, 88, 99,125, 20, 58,107,125, /* 0x00f0 */ 166, 3,137,124, 28, 0, 0, 72,186, 2, 11, 84, 80, 88, 99,125,
/* 0x0100 */ 186, 1, 96, 81, 0, 0, 3,144, 32, 0, 64, 79, 4, 0, 3,132, /* 0x0100 */ 20, 58,107,125,186, 1, 96, 81, 0, 0, 3,144, 32, 0, 64, 79,
/* 0x0110 */ 190, 85, 11, 84, 64, 40, 11,124,220,255,194, 65,240,255, 32, 67, /* 0x0110 */ 4, 0, 3,132,190, 85, 11, 84, 64, 40, 11,124,220,255,194, 65,
/* 0x0120 */ 32, 0,128, 78, 0, 0, 9,232, 8, 0, 41, 57, 0, 0,160, 43, /* 0x0120 */ 240,255, 32, 67, 32, 0,128, 78, 32, 32, 32, 61, 47,112,114,111,
/* 0x0130 */ 244,255,254, 64, 32, 0,128, 78,112, 0, 33, 56,166, 2, 8,125, /* 0x0130 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,166, 2,168,126,
/* 0x0140 */ 0, 0, 33,233,225,255,255, 75,221,255,255, 75,248, 0, 65, 57, /* 0x0140 */ 0, 0,128, 56,104, 0,117, 56, 13, 2, 0, 72,120, 27,116,124,
/* 0x0150 */ 0, 0, 10,248,144,247, 33, 56,248,255,159,128,228, 3, 30,121, /* 0x0150 */ 248,255,129, 56,248,239, 33, 56,248,255, 97, 56,248,255, 90, 59,
/* 0x0160 */ 80,248,164,127,248,255,189, 59,120,251,231,127, 20,210,125,124, /* 0x0160 */ 9, 0, 4,232, 64,208,164,127, 9, 0, 3,248,244,255,156, 65,
/* 0x0170 */ 80, 32,154,124,112, 0,161, 56, 0, 0,195,128,213, 5, 0, 72, /* 0x0170 */ 16, 0, 67, 59, 9, 0, 3,248, 8, 0, 4,232, 0, 0,160, 43,
/* 0x0180 */ 120, 27,127,124,120,235,163,127, 80,240,157,124,181, 0, 0, 72, /* 0x0180 */ 8, 0, 3,248, 17, 0, 4,232, 17, 0, 3,248,236,255,158, 64,
/* 0x0190 */ 166, 3,232,127,120, 8, 65,232,128, 8, 97,232,136, 8,129,232, /* 0x0190 */ 8, 0, 99, 58, 80,152, 90,126, 8, 0,128,124,100, 0, 21,128,
/* 0x01a0 */ 144, 8,161,232,152, 8,193,232,160, 8,225,232,168, 8, 1,233, /* 0x01a0 */ 8, 0, 36, 58, 8, 0, 3,148, 4, 0,195, 57,255, 15,160, 56,
/* 0x01b0 */ 176, 8, 33,233,184, 8, 65,233,192, 8, 97,233,200, 8,129,233, /* 0x01b0 */ 120,115,196,125,104, 0,117, 56,133, 1, 0, 72,252,255,174, 56,
/* 0x01c0 */ 208, 8,161,233,216, 8,193,233,224, 8,225,233,232, 8, 1,234, /* 0x01c0 */ 0, 0, 35, 44, 12, 0,129, 65,100, 0,181, 56, 12, 0, 96, 56,
/* 0x01d0 */ 240, 8, 33,234,248, 8, 65,234, 0, 9, 97,234, 8, 9,129,234, /* 0x01d0 */ 4, 0, 99, 56, 20, 26,133,124,166, 3,105,124,120,139, 35,126,
/* 0x01e0 */ 16, 9,161,234, 24, 9,193,234, 32, 9,225,234, 40, 9, 1,235, /* 0x01e0 */ 0, 0,160, 56,255,255,163,156,255,255, 4,140,255,255, 3,156,
/* 0x01f0 */ 48, 9, 33,235, 56, 9, 65,235, 64, 9, 97,235, 72, 9,129,235, /* 0x01f0 */ 248,255, 0, 66,240,255,122,248, 36, 7, 99,120,120, 34, 32,124,
/* 0x0200 */ 80, 9,161,235, 88, 9,193,235, 96, 9,225,235,112, 8, 33,232, /* 0x0200 */ 120, 26, 0,124, 32, 7, 0,120, 80, 24, 96,124,120,155,100,126,
/* 0x0210 */ 0, 0, 0, 56, 32,241, 15,124,166, 3, 9,124, 32, 0,128, 78, /* 0x0210 */ 80, 24, 82,127,249,255, 4,232, 64, 8,164,127,249,255, 3,248,
/* 0x0220 */ 1, 0, 0, 56, 8, 0, 0, 72, 45, 0, 0, 56, 8, 0, 0, 72, /* 0x0220 */ 244,255,253, 65,120, 27, 97,124,248, 0, 65, 57, 0, 0, 0, 56,
/* 0x0230 */ 6, 0, 0, 56, 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, /* 0x0230 */ 0, 0, 10,248,145,247, 33,248,248,255,159,128, 20,218,125,124,
/* 0x0240 */ 91, 0, 0, 56, 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, /* 0x0240 */ 80, 32,155,124,112, 0,161, 56,120,211, 70,127,120,251,231,127,
/* 0x0250 */ 3, 0, 0, 56, 8, 0, 0, 72, 90, 0, 0, 56, 2, 0, 0, 68, /* 0x0250 */ 120,171,168,126,120,203, 41,127, 21, 6, 0, 72,112, 8, 33, 56,
/* 0x0260 */ 8, 0,227, 64,255,255, 96, 56, 32, 0,128, 78, 0, 0, 35, 44, /* 0x0260 */ 120, 27,127,124, 0, 0, 0, 57,120,163,135,126, 2, 0,192, 56,
/* 0x0270 */ 32, 0,130, 77, 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127, /* 0x0270 */ 1, 0,160, 56,208, 0,158,124, 0, 0, 96, 56,249, 0, 0, 72,
/* 0x0280 */ 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78, /* 0x0280 */ 120,163,131,126,201, 0, 0, 72,120,211, 67,127, 0, 0, 3,232,
/* 0x0290 */ 1, 0,170, 43, 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56, /* 0x0290 */ 8, 0,131,232, 16, 0, 99, 56, 0, 0,160, 43,240,255,254, 64,
/* 0x02a0 */ 216,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x02a0 */ 166, 3,137,124,120,235,163,127,120,227,132,127, 91, 0, 0, 56,
/* 0x02b0 */ 0, 0, 67,233, 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57, /* 0x02b0 */ 166, 3,232,127,120, 0, 65,232,128, 0, 97,232,136, 0,129,232,
/* 0x02c0 */ 166, 3,233,124, 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124, /* 0x02c0 */ 144, 0,161,232,152, 0,193,232,160, 0,225,232,168, 0, 1,233,
/* 0x02d0 */ 127, 0, 96, 56, 16, 0, 1,248,145,255, 33,248, 69,255,255, 75, /* 0x02d0 */ 176, 0, 33,233,184, 0, 65,233,192, 0, 97,233,200, 0,129,233,
/* 0x02e0 */ 0, 0, 0, 96, 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125, /* 0x02e0 */ 208, 0,161,233,216, 0,193,233,224, 0,225,233,232, 0, 1,234,
/* 0x02f0 */ 1, 0, 41, 57,240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125, /* 0x02f0 */ 240, 0, 33,234,248, 0, 65,234, 0, 1, 97,234, 8, 1,129,234,
/* 0x0300 */ 8, 0, 67,249, 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249, /* 0x0300 */ 16, 1,161,234, 24, 1,193,234, 32, 1,225,234, 40, 1, 1,235,
/* 0x0310 */ 32, 0,128, 78, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, /* 0x0310 */ 48, 1, 33,235, 56, 1, 65,235, 64, 1, 97,235, 72, 1,129,235,
/* 0x0320 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,233, 5, 0, 72, /* 0x0320 */ 80, 1,161,235, 88, 1,193,235, 96, 1,225,235,112, 1, 33, 56,
/* 0x0330 */ 81,255, 33,248,120, 27,126,124,120, 35,159,124,120, 43,189,124, /* 0x0330 */ 32, 4,128, 78, 1, 0, 0, 56, 8, 0, 0, 72, 85, 0, 0, 56,
/* 0x0340 */ 120, 51,220,124, 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47, /* 0x0340 */ 8, 0, 0, 72, 45, 0, 0, 56, 8, 0, 0, 72, 6, 0, 0, 56,
/* 0x0350 */ 64, 1,158, 65,120,243,195,127,112, 0,129, 56, 12, 0,160, 56, /* 0x0350 */ 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, 91, 0, 0, 56,
/* 0x0360 */ 81,255,255, 75,112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47, /* 0x0360 */ 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, 3, 0, 0, 56,
/* 0x0370 */ 32, 0,158, 64, 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64, /* 0x0370 */ 8, 0, 0, 72, 90, 0, 0, 56, 2, 0, 0, 68, 8, 0,227, 64,
/* 0x0380 */ 0, 0, 62,233, 0, 0,169, 47, 8, 1,254, 65, 12, 0, 0, 72, /* 0x0380 */ 255,255, 96, 56, 32, 0,128, 78, 0, 0, 35, 44, 32, 0,130, 77,
/* 0x0390 */ 33, 0, 41,121, 16, 0,226, 64,127, 0, 96, 56,133,254,255, 75, /* 0x0390 */ 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127, 16, 0,158, 64,
/* 0x03a0 */ 0, 0, 0, 96, 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233, /* 0x03a0 */ 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78, 1, 0,170, 43,
/* 0x03b0 */ 64, 64,170,127,228,255,221, 65, 8, 0,191,232,164, 0,152, 64, /* 0x03b0 */ 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56,216,255,255, 75,
/* 0x03c0 */ 120, 75, 36,125, 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56, /* 0x03c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,233,
/* 0x03d0 */ 128, 0, 65,249, 40, 0, 65,248,120, 0,225,136, 16, 0,125,233, /* 0x03d0 */ 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57,166, 3,233,124,
/* 0x03e0 */ 166, 3, 41,125, 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232, /* 0x03e0 */ 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124,127, 0, 96, 56,
/* 0x03f0 */ 0, 0,163, 47,164,255,222, 64,128, 0,129,232,112, 0, 33,129, /* 0x03f0 */ 16, 0, 1,248,145,255, 33,248, 61,255,255, 75, 0, 0, 0, 96,
/* 0x0400 */ 0, 72,164,127,148,255,222, 64,121, 0,193,136, 0, 0,166, 47, /* 0x0400 */ 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125, 1, 0, 41, 57,
/* 0x0410 */ 48, 0,158, 65, 44, 0,146, 65, 8, 0,127,232,122, 0,161,136, /* 0x0410 */ 240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249,
/* 0x0420 */ 32, 0,132,120, 40, 0, 65,248, 0, 0, 60,233, 16, 0,124,233, /* 0x0420 */ 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78,
/* 0x0430 */ 166, 3, 41,125, 8, 0, 92,232, 33, 4,128, 78, 40, 0, 65,232, /* 0x0430 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,
/* 0x0440 */ 116, 0, 1,129, 8, 0, 94,233, 0, 0, 62,233, 20, 66, 74,125, /* 0x0440 */ 166, 2, 8,124, 8, 0,129,145,233, 5, 0, 72, 81,255, 33,248,
/* 0x0450 */ 80, 72, 40,125, 8, 0, 94,249, 0, 0, 62,249, 20, 0, 0, 72, /* 0x0450 */ 120, 27,126,124,120, 35,159,124,120, 43,189,124,120, 51,220,124,
/* 0x0460 */ 120, 43,164,124,120,243,195,127,120, 75, 37,125, 69,254,255, 75, /* 0x0460 */ 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47, 64, 1,158, 65,
/* 0x0470 */ 112, 0, 1,129, 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, /* 0x0470 */ 120,243,195,127,112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,
/* 0x0480 */ 80, 72, 40,125, 8, 0, 95,249, 0, 0, 63,249,188,254,255, 75, /* 0x0480 */ 112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47, 32, 0,158, 64,
/* 0x0490 */ 176, 0, 33, 56, 8, 0,129,129, 32,129,144,125,200, 4, 0, 72, /* 0x0490 */ 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64, 0, 0, 62,233,
/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0,166, 2, 8,124, /* 0x04a0 */ 0, 0,169, 47, 8, 1,254, 65, 12, 0, 0, 72, 33, 0, 41,121,
/* 0x04b0 */ 38, 0,128,125, 41, 4, 0, 72,120, 75, 58,125, 16, 0, 35,161, /* 0x04b0 */ 16, 0,226, 64,127, 0, 96, 56,125,254,255, 75, 0, 0, 0, 96,
/* 0x04c0 */ 32, 0,163,235,120, 51,215,124,120, 27,123,124,120, 35,153,124, /* 0x04c0 */ 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233, 64, 64,170,127,
/* 0x04d0 */ 3, 0,137, 47, 8, 0,129,145,241,254, 33,248,120, 43,184,124, /* 0x04d0 */ 228,255,221, 65, 8, 0,191,232,164, 0,152, 64,120, 75, 36,125,
/* 0x04e0 */ 120, 59,246,124,120, 67, 21,125, 20,234,163,127, 16, 0,192, 56, /* 0x04e0 */ 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56,128, 0, 65,249,
/* 0x04f0 */ 8, 0,158, 64, 0, 0,192, 56, 56, 0, 59,161, 34, 8,198, 56, /* 0x04f0 */ 40, 0, 65,248,120, 0,225,136, 16, 0,125,233,166, 3, 41,125,
/* 0x0500 */ 120,235,168,127, 0, 0, 64, 57,255,255,192, 59, 1, 0, 41, 57, /* 0x0500 */ 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232, 0, 0,163, 47,
/* 0x0510 */ 166, 3, 41,125, 60, 0, 64, 66, 0, 0, 40,129, 1, 0,137, 47, /* 0x0510 */ 164,255,222, 64,128, 0,129,232,112, 0, 33,129, 0, 72,164,127,
/* 0x0520 */ 40, 0,158, 64, 16, 0,232,232, 64, 56,190,127, 8, 0,157, 64, /* 0x0520 */ 148,255,222, 64,121, 0,193,136, 0, 0,166, 47, 48, 0,158, 65,
/* 0x0530 */ 120, 59,254,124, 40, 0, 40,233, 20, 74, 39,125, 64, 72,170,127, /* 0x0530 */ 44, 0,146, 65, 8, 0,127,232,122, 0,161,136, 32, 0,132,120,
/* 0x0540 */ 8, 0,156, 64,120, 75, 42,125, 56, 0, 8, 57,200,255,255, 75, /* 0x0540 */ 40, 0, 65,248, 0, 0, 60,233, 16, 0,124,233,166, 3, 41,125,
/* 0x0550 */ 1, 0, 74, 61,228, 3,222,123,255,255, 74, 57,120,243,195,127, /* 0x0550 */ 8, 0, 92,232, 33, 4,128, 78, 40, 0, 65,232,116, 0, 1,129,
/* 0x0560 */ 80, 80,158,124, 0, 0,160, 56,228, 3,132,120,180, 7,198,124, /* 0x0560 */ 8, 0, 94,233, 0, 0, 62,233, 20, 66, 74,125, 80, 72, 40,125,
/* 0x0570 */ 255,255,224, 56, 0, 0, 0, 57,225,252,255, 75, 0, 0, 0, 96, /* 0x0570 */ 8, 0, 94,249, 0, 0, 62,249, 20, 0, 0, 72,120, 43,164,124,
/* 0x0580 */ 81,115, 64, 62, 0, 0,128, 58, 0, 0, 57, 46, 64, 98, 82, 98, /* 0x0580 */ 120,243,195,127,120, 75, 37,125, 69,254,255, 75,112, 0, 1,129,
/* 0x0590 */ 80, 24,222,127, 0, 0, 32, 58, 56, 0, 59,161, 0,160,137,127, /* 0x0590 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125,
/* 0x05a0 */ 128, 1,157, 64, 0, 0, 61,129, 36, 0,146, 65, 6, 0,137, 47, /* 0x05a0 */ 8, 0, 95,249, 0, 0, 63,249,188,254,255, 75,176, 0, 33, 56,
/* 0x05b0 */ 28, 0,158, 64, 16, 0,189,232,120,187,227,126, 3, 0,128, 56, /* 0x05b0 */ 8, 0,129,129, 32,129,144,125,200, 4, 0, 72, 0, 0, 0, 0,
/* 0x05c0 */ 20, 42,190,124,169,252,255, 75, 72, 1, 0, 72, 1, 0,137, 47, /* 0x05c0 */ 0, 0, 0, 3,128, 4, 0, 0,166, 2, 8,124, 38, 0,128,125,
/* 0x05d0 */ 64, 1,158, 64, 4, 0,253,129, 16, 0,157,235, 32, 0,253,235, /* 0x05d0 */ 41, 4, 0, 72,120, 75, 58,125, 16, 0, 35,161, 32, 0,163,235,
/* 0x05e0 */ 40, 0,125,234,250, 22,239, 85, 20,226,158,127,112, 0,225,251, /* 0x05e0 */ 120, 51,215,124,120, 27,123,124,120, 35,153,124, 3, 0,137, 47,
/* 0x05f0 */ 48,124, 79,126, 32, 4,137,123,120, 0,129,251, 20,154,124,126, /* 0x05f0 */ 8, 0,129,145,241,254, 33,248,120, 43,184,124,120, 59,246,124,
/* 0x0600 */ 20,250,233,127,228, 3,156,123,126, 7,240, 85, 12, 0,146, 64, /* 0x0600 */ 120, 67, 21,125, 20,234,163,127, 16, 0,192, 56, 8, 0,158, 64,
/* 0x0610 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,131,165,124, /* 0x0610 */ 0, 0,192, 56, 56, 0, 59,161, 34, 8,198, 56,120,235,168,127,
/* 0x0620 */ 180, 7,165,124, 16, 0,146, 64,120,195, 7,127, 18, 0,192, 56, /* 0x0620 */ 0, 0, 64, 57,255,255,192, 59, 1, 0, 41, 57,166, 3, 41,125,
/* 0x0630 */ 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, 8, 0, 29,233, /* 0x0630 */ 60, 0, 64, 66, 0, 0, 40,129, 1, 0,137, 47, 40, 0,158, 64,
/* 0x0640 */ 120,227,131,127,120,251,228,127, 80, 64, 9,125, 13,252,255, 75, /* 0x0640 */ 16, 0,232,232, 64, 56,190,127, 8, 0,157, 64,120, 59,254,124,
/* 0x0650 */ 0, 0, 0, 96, 0, 24,188,127, 16, 0,254, 65,127, 0, 96, 56, /* 0x0650 */ 40, 0, 40,233, 20, 74, 39,125, 64, 72,170,127, 8, 0,156, 64,
/* 0x0660 */ 193,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65,120,203, 35,127, /* 0x0660 */ 120, 75, 42,125, 56, 0, 8, 57,200,255,255, 75, 1, 0, 74, 61,
/* 0x0670 */ 112, 0,129, 56,120,179,197,126,120,171,166,126,165,252,255, 75, /* 0x0670 */ 228, 3,222,123,255,255, 74, 57,120,243,195,127, 80, 80,158,124,
/* 0x0680 */ 208, 0,223,125,227,255,233,121, 32, 4,206,121, 12, 0,130, 64, /* 0x0680 */ 0, 0,160, 56,228, 3,132,120,180, 7,198,124,255,255,224, 56,
/* 0x0690 */ 44, 0,146, 64, 68, 0, 0, 72, 0, 0,174, 47,244,255,158, 65, /* 0x0690 */ 0, 0, 0, 57,225,252,255, 75, 0, 0, 0, 96, 81,115, 64, 62,
/* 0x06a0 */ 166, 3,201,125, 20,250, 92,125, 0, 0, 32, 57,174, 73, 42,126, /* 0x06a0 */ 0, 0,128, 58, 0, 0, 57, 46, 64, 98, 82, 98, 80, 24,222,127,
/* 0x06b0 */ 1, 0, 41, 57,248,255, 0, 66,216,255,255, 75,120,227,131,127, /* 0x06b0 */ 0, 0, 32, 58, 56, 0, 59,161, 0,160,137,127,128, 1,157, 64,
/* 0x06c0 */ 120,251,228,127,180, 7, 5,126,129,251,255, 75, 0, 0, 0, 96, /* 0x06c0 */ 0, 0, 61,129, 36, 0,146, 65, 6, 0,137, 47, 28, 0,158, 64,
/* 0x06d0 */ 0, 0,163, 47,136,255,222, 64, 20,250,238,127, 20,250,252,127, /* 0x06d0 */ 16, 0,189,232,120,187,227,126, 3, 0,128, 56, 20, 42,190,124,
/* 0x06e0 */ 64,152,191,127, 44, 0,156, 64,120,251,227,127, 80,152,159,124, /* 0x06e0 */ 169,252,255, 75, 72, 1, 0, 72, 1, 0,137, 47, 64, 1,158, 64,
/* 0x06f0 */ 180, 7, 5,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, /* 0x06f0 */ 4, 0,253,129, 16, 0,157,235, 32, 0,253,235, 40, 0,125,234,
/* 0x0700 */ 89,251,255, 75, 0, 0, 0, 96, 0, 24,191,127, 80,255,222, 64, /* 0x0700 */ 250, 22,239, 85, 20,226,158,127,112, 0,225,251, 48,124, 79,126,
/* 0x0710 */ 1, 0,148, 58, 56, 0,189, 59,180, 7,148,126,124,254,255, 75, /* 0x0710 */ 32, 4,137,123,120, 0,129,251, 20,154,124,126, 20,250,233,127,
/* 0x0720 */ 0, 0,186, 47, 8, 0,158, 65, 0, 0,218,251, 16, 1, 33, 56, /* 0x0720 */ 228, 3,156,123,126, 7,240, 85, 12, 0,146, 64, 0, 0,160, 56,
/* 0x0730 */ 24, 0,123,232, 20, 26,126,124, 8, 0,129,129, 32,129,144,125, /* 0x0730 */ 8, 0, 0, 72, 2, 0,160, 56,120,131,165,124,180, 7,165,124,
/* 0x0740 */ 236, 1, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, /* 0x0740 */ 16, 0,146, 64,120,195, 7,127, 18, 0,192, 56, 12, 0, 0, 72,
/* 0x0750 */ 166, 2, 8,124, 0, 0,192, 56,177, 1, 0, 72, 17,255, 33,248, /* 0x0750 */ 50, 0,192, 56,255,255,224, 56, 8, 0, 29,233,120,227,131,127,
/* 0x0760 */ 120, 43,191,124,120, 75, 62,125, 64, 0,133, 59, 0, 0, 35,129, /* 0x0760 */ 120,251,228,127, 80, 64, 9,125, 13,252,255, 75, 0, 0, 0, 96,
/* 0x0770 */ 120, 83, 91,125, 0, 0,160, 59,152, 0, 97,248,144, 0,129,248, /* 0x0770 */ 0, 24,188,127, 16, 0,254, 65,127, 0, 96, 56,185,251,255, 75,
/* 0x0780 */ 136, 0,161,248,128, 0, 33,249,120, 59,229,124,112, 0,129,248, /* 0x0780 */ 0, 0, 0, 96, 24, 0,146, 65,120,203, 35,127,112, 0,129, 56,
/* 0x0790 */ 120, 0, 97,248,160, 0,225,248,168, 0, 1,249,144, 0, 97, 56, /* 0x0790 */ 120,179,197,126,120,171,166,126,165,252,255, 75,208, 0,223,125,
/* 0x07a0 */ 128, 0,129, 56,125,251,255, 75, 80, 0,191,232,120,243,195,127, /* 0x07a0 */ 227,255,233,121, 32, 4,206,121, 12, 0,130, 64, 44, 0,146, 64,
/* 0x07b0 */ 3, 0,128, 56, 64, 0,165, 56,181,250,255, 75, 56, 0,191,160, /* 0x07b0 */ 68, 0, 0, 72, 0, 0,174, 47,244,255,158, 65,166, 3,201,125,
/* 0x07c0 */ 120,243,195,127, 5, 0,128, 56,165,250,255, 75, 24, 0,191,128, /* 0x07c0 */ 20,250, 92,125, 0, 0, 32, 57,174, 73, 42,126, 1, 0, 41, 57,
/* 0x07d0 */ 120,243,195,127, 9, 0,128, 56,149,250,255, 75,160, 0,225,232, /* 0x07d0 */ 248,255, 0, 66,216,255,255, 75,120,227,131,127,120,251,228,127,
/* 0x07e0 */ 168, 0, 1,233,112, 0,129, 56, 0, 0,160, 56,120,243,198,127, /* 0x07e0 */ 180, 7, 5,126,129,251,255, 75, 0, 0, 0, 96, 0, 0,163, 47,
/* 0x07f0 */ 120,219,105,127,120,251,227,127,181,252,255, 75, 9, 0,128, 56, /* 0x07f0 */ 136,255,222, 64, 20,250,238,127, 20,250,252,127, 64,152,191,127,
/* 0x0800 */ 120, 27,122,124,120,243,195,127,120,211, 69,127, 97,250,255, 75, /* 0x0800 */ 44, 0,156, 64,120,251,227,127, 80,152,159,124,180, 7, 5,126,
/* 0x0810 */ 56, 0, 63,161, 0,232,137,127,172, 0,157, 64, 0, 0, 60,129, /* 0x0810 */ 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, 89,251,255, 75,
/* 0x0820 */ 3, 0,137, 47,144, 0,158, 64, 16, 0,124,232, 0, 0, 59,233, /* 0x0820 */ 0, 0, 0, 96, 0, 24,191,127, 80,255,222, 64, 1, 0,148, 58,
/* 0x0830 */ 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124,253,249,255, 75, /* 0x0830 */ 56, 0,189, 59,180, 7,148,126,124,254,255, 75, 0, 0,186, 47,
/* 0x0840 */ 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64, /* 0x0840 */ 8, 0,158, 65, 0, 0,218,251, 16, 1, 33, 56, 24, 0,123,232,
/* 0x0850 */ 127, 0, 96, 56,205,249,255, 75, 0, 0, 0, 96,120,251,228,127, /* 0x0850 */ 20, 26,126,124, 8, 0,129,129, 32,129,144,125,236, 1, 0, 72,
/* 0x0860 */ 0, 4,160, 56,237,249,255, 75, 0, 0, 0, 96, 0, 4,163, 47, /* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,
/* 0x0870 */ 224,255,222, 64, 0, 0,128, 56,120,203, 37,127, 0, 0,192, 56, /* 0x0870 */ 0, 0,192, 56,177, 1, 0, 72, 17,255, 33,248,120, 43,191,124,
/* 0x0880 */ 0, 0,224, 56, 0, 0, 0, 57,120,219,105,127,120,251,227,127, /* 0x0880 */ 120, 75, 62,125, 64, 0,133, 59, 0, 0, 35,129,120, 83, 91,125,
/* 0x0890 */ 29,252,255, 75, 0, 0,187,232, 7, 0,128, 56,120, 27,122,124, /* 0x0890 */ 0, 0,160, 59,152, 0, 97,248,144, 0,129,248,136, 0,161,248,
/* 0x08a0 */ 120,243,195,127,201,249,255, 75,120,203, 35,127,133,249,255, 75, /* 0x08a0 */ 128, 0, 33,249,120, 59,229,124,112, 0,129,248,120, 0, 97,248,
/* 0x08b0 */ 0, 0, 0, 96, 1, 0,189, 59, 56, 0,156, 59,180, 7,189,127, /* 0x08b0 */ 160, 0,225,248,168, 0, 1,249,144, 0, 97, 56,128, 0,129, 56,
/* 0x08c0 */ 80,255,255, 75,240, 0, 33, 56,120,211, 67,127,140, 0, 0, 72, /* 0x08c0 */ 125,251,255, 75, 80, 0,191,232,120,243,195,127, 3, 0,128, 56,
/* 0x08d0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 7, 0, 0,112,255,193,249, /* 0x08d0 */ 64, 0,165, 56,181,250,255, 75, 56, 0,191,160,120,243,195,127,
/* 0x08e0 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250, /* 0x08e0 */ 5, 0,128, 56,165,250,255, 75, 24, 0,191,128,120,243,195,127,
/* 0x08f0 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250, /* 0x08f0 */ 9, 0,128, 56,149,250,255, 75,160, 0,225,232,168, 0, 1,233,
/* 0x0900 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251, /* 0x0900 */ 112, 0,129, 56, 0, 0,160, 56,120,243,198,127,120,219,105,127,
/* 0x0910 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251, /* 0x0910 */ 120,251,227,127,181,252,255, 75, 9, 0,128, 56,120, 27,122,124,
/* 0x0920 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233, /* 0x0920 */ 120,243,195,127,120,211, 69,127, 97,250,255, 75, 56, 0, 63,161,
/* 0x0930 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234, /* 0x0930 */ 0,232,137,127,172, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47,
/* 0x0940 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234, /* 0x0940 */ 144, 0,158, 64, 16, 0,124,232, 0, 0, 59,233, 0, 0,128, 56,
/* 0x0950 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235, /* 0x0950 */ 0, 0,160, 56, 20, 74, 99,124,253,249,255, 75, 0, 0, 0, 96,
/* 0x0960 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235, /* 0x0960 */ 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56,
/* 0x0970 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78, /* 0x0970 */ 197,249,255, 75, 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56,
/* 0x0980 */ 108, 2, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, /* 0x0980 */ 237,249,255, 75, 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64,
/* 0x0990 */ 176, 2, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, /* 0x0990 */ 0, 0,128, 56,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56,
/* 0x09a0 */ 32, 3, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, /* 0x09a0 */ 0, 0, 0, 57,120,219,105,127,120,251,227,127, 29,252,255, 75,
/* 0x09b0 */ 172, 4, 16, 0, 0, 0, 0, 0,128,137, 16, 0, 0, 0, 0, 0, /* 0x09b0 */ 0, 0,187,232, 7, 0,128, 56,120, 27,122,124,120,243,195,127,
/* 0x09c0 */ 80, 7, 16, 0, 0, 0, 0, 0,128,137, 16 /* 0x09c0 */ 201,249,255, 75,120,203, 35,127,133,249,255, 75, 0, 0, 0, 96,
/* 0x09d0 */ 1, 0,189, 59, 56, 0,156, 59,180, 7,189,127, 80,255,255, 75,
/* 0x09e0 */ 240, 0, 33, 56,120,211, 67,127,140, 0, 0, 72, 0, 0, 0, 0,
/* 0x09f0 */ 0, 0, 0, 1,128, 7, 0, 0,112,255,193,249,120,255,225,249,
/* 0x0a00 */ 128,255, 1,250,136,255, 33,250,144,255, 65,250,152,255, 97,250,
/* 0x0a10 */ 160,255,129,250,168,255,161,250,176,255,193,250,184,255,225,250,
/* 0x0a20 */ 192,255, 1,251,200,255, 33,251,208,255, 65,251,216,255, 97,251,
/* 0x0a30 */ 224,255,129,251,232,255,161,251,240,255,193,251,248,255,225,251,
/* 0x0a40 */ 16, 0, 1,248, 32, 0,128, 78,112,255,193,233,120,255,225,233,
/* 0x0a50 */ 128,255, 1,234,136,255, 33,234,144,255, 65,234,152,255, 97,234,
/* 0x0a60 */ 160,255,129,234,168,255,161,234,176,255,193,234,184,255,225,234,
/* 0x0a70 */ 192,255, 1,235,200,255, 33,235,208,255, 65,235,216,255, 97,235,
/* 0x0a80 */ 224,255,129,235, 16, 0, 1,232,232,255,161,235,166, 3, 8,124,
/* 0x0a90 */ 240,255,193,235,248,255,225,235, 32, 0,128, 78, 0, 0, 0, 0,
/* 0x0aa0 */ 136, 3, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0,
/* 0x0ab0 */ 204, 3, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0,
/* 0x0ac0 */ 60, 4, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0,
/* 0x0ad0 */ 200, 5, 16, 0, 0, 0, 0, 0,160,138, 16, 0, 0, 0, 0, 0,
/* 0x0ae0 */ 108, 8, 16, 0, 0, 0, 0, 0,160,138, 16
}; };
+23 -21
View File
@@ -29,22 +29,29 @@
* <jreiser@users.sourceforge.net> * <jreiser@users.sourceforge.net>
*/ */
NBPW= 4 // Number of Bytes Per Word
#include "arch/powerpc/32/macros.S" #include "arch/powerpc/32/macros.S"
#include "arch/powerpc/32/ppc_regs.h" #include "arch/powerpc/32/ppc_regs.h"
SZ_FRAME= (2 + 2)*4 // (sp,LR, 2 slots) 0 mod 16 SZ_FRAME= (2 + 2)*NBPW // (sp,LR, 2 slots) 0 mod 16
sz_b_info= 12 sz_b_info= 12
sz_unc= 0 sz_unc= 0
sz_cpr= 4 sz_cpr= 4
b_method= 8 b_method= 8
szElf32_Ehdr= 13*4 szElf32_Ehdr= 13*NBPW
p_memsz= 5*4 p_memsz= 5*NBPW
e_type= 16 e_type= 16
ET_EXEC= 2 ET_EXEC= 2
ET_DYN= 3 ET_DYN= 3
AT_NULL= 0 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
PROT_READ= 1 PROT_READ= 1
PROT_WRITE= 2 PROT_WRITE= 2
PROT_EXEC= 4 PROT_EXEC= 4
@@ -143,7 +150,7 @@ cfl_ret:
msg_SELinux: msg_SELinux:
call L72 call L72
L70: L70:
.asciz "PROT_EXEC|PROT_WRITE failed.\n" .asciz "mmap failed.\n"
L71: L71:
// IDENTSTR goes here // IDENTSTR goes here
@@ -236,14 +243,14 @@ AT_SYSINFO_EHDR= 33 // Elf32_Ehdr for VDSO
add r_exp,r_exp,r0 // relocate &f_exp add r_exp,r_exp,r0 // relocate &f_exp
mr a3,r_LENM // length to move mr a3,r_LENM // length to move
addi a3,a3,7 // roundup (8, ) addi a3,a3,-1+ 2*NBPW // roundup (8, )
addi a1,r_ADRU,-4 // prepare for lwu addi a1,r_ADRU,-NBPW // prepare for lwu
srwi a3,a3,3 // number of 8-byte chunks srwi a3,a3,3 // number of 8-byte chunks
addi a0,a0,-4 // prepare for stwu addi a0,a0,-NBPW // prepare for stwu
mtctr a3 mtctr a3
0: 0:
lwz a2,4(a1); lwzu a3,2*4(a1) lwz a2,NBPW(a1); lwzu a3,2*NBPW(a1)
stw a2,4(a0); stwu a3,2*4(a0); bdnz 0b stw a2,NBPW(a0); stwu a3,2*NBPW(a0); bdnz 0b
mr r_ADRU,r_ADRM // relocate mr r_ADRU,r_ADRM // relocate
// section ELFufold // section ELFufold
@@ -253,8 +260,8 @@ fold:
mtctr r_exp // &decompress mtctr r_exp // &decompress
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD) lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
lbz meth,b_method + LBINFO - LrFLD(r_FLD) lbz meth,b_method + LBINFO - LrFLD(r_FLD)
la ldst,SZ_FRAME+31*4(sp) // &slot on stack la ldst,SZ_FRAME+31*NBPW(sp) // &slot on stack
stw r0,SZ_FRAME+31*4(sp) // lzma uses for EOF stw r0,SZ_FRAME+31*NBPW(sp) // lzma uses for EOF
lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD) lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD)
la src,sz_b_info + LBINFO - LrFLD(r_FLD) la src,sz_b_info + LBINFO - LrFLD(r_FLD)
bctrl // decompress it bctrl // decompress it
@@ -267,7 +274,7 @@ fold:
mr a0,r_ADRU // base mr a0,r_ADRU // base
li r0,__NR_mprotect; sc li r0,__NR_mprotect; sc
addi r0,r23,4*4 // jmp over get_page_mask() addi r0,r23,4*NBPW // jmp over get_page_mask()
mtctr r0 mtctr r0
bctr bctr
@@ -284,26 +291,21 @@ fold:
// blr # goto return address // blr # goto return address
zfind: zfind:
lwz r0,0(a0); addi a0,a0,4 lwz r0,0(a0); addi a0,a0,NBPW
cmpi cr7,r0,0; bne+ cr7,zfind cmpi cr7,r0,0; bne+ cr7,zfind
ret ret
main: main:
stwu r1,-(SZ_FRAME+32*4)(sp) // allocate space (keeping 0 mod 16), chain r1 stwu r1,-(SZ_FRAME+32*NBPW)(sp) // allocate space (keeping 0 mod 16), chain r1
stmw r2, SZ_FRAME+2*4-4(sp) // save registers r2 thru r31 stmw r2, SZ_FRAME+ 2*NBPW - NBPW(sp) // save registers r2 thru r31
mflr r_exp // &f_exp (decompress) mflr r_exp // &f_exp (decompress)
la a0,SZ_FRAME+32*4(sp) la a0,SZ_FRAME+32*NBPW(sp) // &argc
call zfind // a0= envp call zfind // a0= envp
call zfind // a0= &Elf32_auxv call zfind // a0= &Elf32_auxv
mr r_auxv,a0 // save for folded code mr r_auxv,a0 // save for folded code
// set r_PMASK by finding actual page size in Elf32_auxv_t // set r_PMASK by finding actual page size in Elf32_auxv_t
AT_NULL= 0 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= 4
sz_auxv= 2*4
1: 1:
lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv
cmpi cr7,r0,AT_PAGESZ; beq- cr7,2f cmpi cr7,r0,AT_PAGESZ; beq- cr7,2f
+38 -34
View File
@@ -29,8 +29,10 @@
* <jreiser@users.sourceforge.net> * <jreiser@users.sourceforge.net>
*/ */
NBPW= 4 // Number of Bytes Per Word
#include "arch/powerpc/32/macros.S" #include "arch/powerpc/32/macros.S"
#include "arch/powerpc/32/ppc_regs.h" #include "arch/powerpc/32/ppc_regs.h"
PATH_MAX= 4096 // /usr/include/linux/limits.h PATH_MAX= 4096 // /usr/include/linux/limits.h
szElf32_Ehdr= 0x34 szElf32_Ehdr= 0x34
@@ -55,10 +57,11 @@ O_RDONLY= 0
OVERHEAD= 2048 OVERHEAD= 2048
// http://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf p.3-17 (pdf p.33) // http://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf p.3-17 (pdf p.33)
// SZ_LINKA= (2 + max(0, #params - 8))*4 // (sp,lr, arg9,arg10, ... ) // SZ_LINKA= (2 + max(0, #params - 8))*NBPW // (sp,lr, arg9,arg10, ... )
SZ_LINKA= (2 + 2)*4 // (sp,pc, arg9,arg10,... ) and 16-byte aligned SZ_LINKA= (2 + 2)*NBPW // (sp,pc, arg9,arg10,... ) and 16-byte aligned
SZ_FRAME= SZ_LINKA SZ_FRAME= SZ_LINKA
sz_pack2_f_exp= -4 -4 // 4 bytes and one Instruction before r_exp
// In: // In:
r_exp= 31 // f_exp == &decompress() r_exp= 31 // f_exp == &decompress()
r_PMASK= 30 // PAGE_MASK r_PMASK= 30 // PAGE_MASK
@@ -91,46 +94,47 @@ get_page_mask: .globl get_page_mask
L90b: L90b:
#include "arch/powerpc/32/bxx.S" #include "arch/powerpc/32/bxx.S"
L90a: L90a:
L_PFX= 4 // strlen(" =")
.asciz " =/proc/self/exe" .asciz " =/proc/self/exe"
.balign 4 .balign 4
L90: L90:
mflr r_unf // L90b = &ppcbxx: f_unfilter mflr r_unf // L90b = &ppcbxx: f_unfilter
// open /proc/self/exe // open /proc/self/exe
li a1,O_RDONLY li a1,O_RDONLY
la a0,4+ L90a - L90b(r_unf) // "/proc/self/exe" la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call open; movr r_fd,a0 call open; movr r_fd,a0
// slide {<<stuff>>,argc,argv,0,env,0,auxv} down with maximum room before strings // slide {<<stuff>>,argc,argv,0,env,0,auxv} down with maximum room before strings
la a1,-4(sp) // src ready for lwzu la a1,-NBPW(sp) // src ready for lwzu
la sp,-(4+ PATH_MAX)(sp) la sp,-(-NBPW & (-1+ NBPW + (L_PFX + PATH_MAX)))(sp)
la a0,-4(sp) // dst ready for stwu la a0,-NBPW(sp) // dst ready for stwu
la r_auxv,-4(r_auxv) // &end ready for lwzu la r_auxv,-NBPW(r_auxv) // &end ready for lwzu
0: // copy upto auxv 0: // copy upto auxv
lwzu r0,4(a1); cmplw cr7,a1,r_auxv lwzu r0,NBPW(a1); cmplw cr7,a1,r_auxv
stwu r0,4(a0); blt cr7,0b stwu r0,NBPW(a0); blt cr7,0b
la r_auxv,8(a0) // new &auxv la r_auxv,2*NBPW(a0) // new &auxv
stwu r0,4(a0) // new env_terminator stwu r0,NBPW(a0) // new env_terminator
0: // copy auxv 0: // copy auxv
lwz r0,4(a1); cmpli cr7,r0,AT_NULL lwz r0,NBPW(a1); cmplwi cr7,r0,AT_NULL
stw r0,4(a0) stw r0,NBPW(a0)
lwzu r0,2*4(a1) lwzu r0,2*NBPW(a1)
stwu r0,2*4(a0); bne cr7,0b stwu r0,2*NBPW(a0); bne cr7,0b
la av_hi,4(a0) // tmp end of auxv la av_hi,NBPW(a0) // tmp end of auxv
subf av_len,r_auxv,av_hi // length of auxv subf av_len,r_auxv,av_hi // length of auxv
lwz r0,L90a - L90b(r_unf) // " =" lwz r0,L90a - L90b(r_unf) // " ="
la cblk,4(a1) // original &strings la cblk,NBPW(a1) // original &strings
stwu r0,4(a0) stwu r0,NBPW(a0)
la r14,4(a0) // buffer la r14,L_PFX(a0) // buffer
// readlink("/proc/self/exe", buffer, -1+ PATH_MAX) // readlink("/proc/self/exe", buffer, -1+ PATH_MAX)
li a2,-1+ PATH_MAX li a2,-1+ PATH_MAX
movr a1,r14 // buffer movr a1,r14 // buffer
la a0,4+ L90a - L90b(r_unf) // "/proc/self/exe" la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call readlink; la a2,-4(r14) // a0= len; a2= buffer call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer
cmpwi a0,0; bgt 0f // success cmpwi a0,0; bgt 0f // success
la a2,L90a - L90b(r_unf) // " =/proc/self/exe" la a2,L90a - L90b(r_unf) // " =/proc/self/exe"
li a0,L90 - (4+ L90a) // round_up(4, strlen("/proc/self/exe")) li a0,L90 - (NBPW+ L90a) // round_up(NBPW, strlen("/proc/self/exe"))
0: 0:
addi a0,a0,4 // len += strlen(" ="); addi a0,a0,L_PFX // len += strlen(" =");
add a1,a2,a0 // beyond end of path add a1,a2,a0 // beyond end of path
mtctr a0 mtctr a0
movr a0,cblk // old &strings movr a0,cblk // old &strings
@@ -139,24 +143,24 @@ L90:
0: // slide path up 0: // slide path up
lbzu r0,-1(a1) lbzu r0,-1(a1)
stbu r0,-1(a0); bdnz 0b stbu r0,-1(a0); bdnz 0b
stw a0,-2*4(r_auxv) // &" =<<path>>" for env stw a0,-2*NBPW(r_auxv) // &" =<<path>>" for env
clrrwi a0,a0,2 // word align clrrwi a0,a0,2 // word align
xor r0,sp,a1 // parity of length xor r0,sp,a1 // parity of length
xor r0,r0,a0 // length vs destination xor r0,r0,a0 // length vs destination
rlwinm r0,r0,0,29,29 // andi r0,r0,1<<(31-29) clrlwi r0,r0,-3+ 8*NBPW // keep bottom 3 bits
sub a0,a0,r0 sub a0,a0,r0
// slide the rest of the stack up // slide the rest of the stack up
movr a1,av_hi movr a1,av_hi
sub r_auxv,a0,av_len sub r_auxv,a0,av_len
0: 0:
lwzu r0,-4(a1); cmpl cr7,a1,sp lwzu r0,-NBPW(a1); cmplw cr7,a1,sp
stwu r0,-4(a0); bgt+ cr7,0b stwu r0,-NBPW(a0); bgt+ cr7,0b
movr sp,a0 movr sp,a0
stwu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame stwu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame
lwz a1,-2*4(r_exp) // sz_pack2 == #bytes which preceed -2*4(r_exp) lwz a1,sz_pack2_f_exp(r_exp) // sz_pack2 == #bytes which preceed -2*NBPW(r_exp)
add a0,r_ADRU,r_BINFO // &b_info add a0,r_ADRU,r_BINFO // &b_info
sub a1,a1,r_BINFO // total_size sub a1,a1,r_BINFO // total_size
@@ -186,14 +190,14 @@ L90:
AT_NULL= 0 // <elf.h> AT_NULL= 0 // <elf.h>
a_type= 0 a_type= 0
a_val= 4 a_val= NBPW
sz_auxv= 2*4 sz_auxv= 2*NBPW
// find the escape hatch in auxv[{AT_NULL}].a_val // find the escape hatch in auxv[{AT_NULL}].a_val
mr a0,r_auxv mr a0,r_auxv
0: 0:
lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv lwz r0,a_type(a0); lwz a1,a_val(a0); addi a0,a0,sz_auxv
cmpli cr7,r0,AT_NULL; bne+ cr7,0b cmplwi cr7,r0,AT_NULL; bne+ cr7,0b
mtctr a1 // escape hatch mtctr a1 // escape hatch
mr a0,r_ADRU mr a0,r_ADRU
@@ -201,10 +205,10 @@ sz_auxv= 2*4
li r0,SYS_munmap li r0,SYS_munmap
mtlr r_exp // entry address mtlr r_exp // entry address
lmw a2,SZ_FRAME+(a2 - r2 + 2)*4 - 4(sp) // restore registers a2 thru r31 lmw a2,SZ_FRAME+(a2 - r2 + 2)*NBPW - NBPW(sp) // restore registers a2 thru r31
la sp, SZ_FRAME+32*4(sp) // deallocate outer frame la sp, SZ_FRAME+32*NBPW(sp) // deallocate outer frame
bctr bctr // goto escape hatch
SYS_exit= 1 SYS_exit= 1
SYS_fork= 2 SYS_fork= 2
+183 -62
View File
@@ -33,6 +33,7 @@
#define BIG_ENDIAN 0 #define BIG_ENDIAN 0
#endif #endif
NBPW= 8 // Number of Bytes Per Word
#include "arch/powerpc/64le/macros.S" #include "arch/powerpc/64le/macros.S"
#include "arch/powerpc/64le/ppc_regs.h" #include "arch/powerpc/64le/ppc_regs.h"
@@ -41,6 +42,19 @@ sz_b_info= 12
sz_cpr= 4 sz_cpr= 4
b_method= 8 b_method= 8
szElf64_Ehdr= 16 + 2*2 + 4 + 3*NBPW + 4 + 6*2
p_memsz= 2*4 + 4*NBPW
e_type= 16
ET_EXEC= 2
ET_DYN= 3
AT_NULL= 0 // <elf.h>
AT_PAGESZ= 6
a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
PROT_READ= 1 PROT_READ= 1
PROT_WRITE= 2 PROT_WRITE= 2
PROT_EXEC= 4 PROT_EXEC= 4
@@ -56,13 +70,16 @@ PAGE_SIZE = -(~0<<PAGE_SHIFT)
__NR_write = 4 __NR_write = 4
__NR_exit = 1 __NR_exit = 1
__NR_mmap = 90 __NR_mmap = 90
__NR_munmap = 91
__NR_mprotect = 125
section ELFMAINX section ELFMAINX
sz_pack2= -4+ _start
_start: .globl _start _start: .globl _start
call main // must be exactly 1 instruction; link_register= &decompress call main // link_register= &f_exp (&decompress)
/* Returns 0 on success; non-zero on failure. */ /* Returns 0 on success; non-zero on failure. */
decompress: // (uchar const *src, size_t lsrc, uchar *dst, size_t &ldst, uint method) f_exp: // (uchar const *src, size_t lsrc, uchar *dst, size_t &ldst, uint method)
section NRV_HEAD section NRV_HEAD
SZ_DLINE=128 # size of data cache line in Apple G5 SZ_DLINE=128 # size of data cache line in Apple G5
@@ -141,7 +158,7 @@ cfl_ret:
msg_SELinux: msg_SELinux:
call L72 call L72
L70: L70:
.asciz "PROT_EXEC|PROT_WRITE failed.\n" .asciz "mmap failed.\n"
L71: L71:
// IDENTSTR goes here // IDENTSTR goes here
@@ -164,72 +181,176 @@ die:
li a0,127 li a0,127
li 0,__NR_exit; sc li 0,__NR_exit; sc
r_exp= 31
r_PMASK= 30
r_ADRU= 29
r_LENU= 28
r_BINFO= 27
r_auxv= 26
r_slide= 25
r_FLD= 24
r_ADRM= 23
r_LENM= 22
/* Decompress the rest of this loader, and jump to it. */ /* Decompress the rest of this loader, and jump to it. */
unfold: unfold:
mflr r30 // -4+ &{ b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} mflr r_FLD // LrFLD
lwz r26,0(r30) // O_BINFO la r_ADRU,sz_pack2 - f_exp(r_exp) // &sz_pack2
sz_obinfo= 4 lwz r0,0(r_ADRU) // sz_pack2
lwz a0,sz_obinfo + sz_cpr(r30) // sz_cpr(fold) (< 1 Page) lwz r_BINFO,LOBINFO - LrFLD(r_FLD) // O_BINFO
li a5,0 // off_t sub r_ADRU,r_ADRU,r0 // ADRU == &Elf64_Ehdr of stub
lis a1,1<<(PAGE_SHIFT - 16) // PAGE_SIZE 64KiB
li a4,-1 // fd; cater to *BSD for MAP_ANON
add a0,a0,r30 // beyond compressed fold
li a3,MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS
addi a0,a0,sz_obinfo + sz_b_info-1
li a2,PROT_READ | PROT_WRITE | PROT_EXEC
add a0,a0,a1 // across next page boundary
li 0,__NR_mmap
rldicr a0,a0,0,64 - PAGE_SHIFT // next page boundary after fold
sc; bso- msg_SELinux // Branch if SummaryOverflow (failure)
mtctr r31 lhz r0,e_type(r_ADRU)
lwz r0,sz_obinfo + sz_unc(r30) // size uncompressed cmplwi r0,ET_DYN; beq pie
lbz meth,sz_obinfo + b_method(r30)
la ldst,SZ_FRAME+31*8(sp) // &slot on stack // section ELF_EXEC // ET_EXEC; addresses do not change
stw r0,SZ_FRAME+31*8(sp) // lzma uses for EOF; BEWARE: 32 bits only ld r_LENU,p_memsz + szElf64_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
mr dst,a0 li a5,0 // off_t
mtlr a0 // &continuation sub r_LENU,r_LENU,r_PMASK // begin round_up(PAGE_SIZE, r_LENU)
lwz lsrc,sz_obinfo + sz_cpr(r30) // size of compressed li a4,-1 // fd; cater to *BSD for MAP_ANON
addi src,r30,sz_obinfo + sz_b_info addi r_LENU,r_LENU,-1
stdu sp,-SZ_FRAME(sp) // ABI calling convention (for lzma compiled by gcc) li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
bctr // goto decomrpess; return to link register (mmap'ed page) and r_LENU,r_LENU,r_PMASK
li a2,PROT_READ | PROT_WRITE
lwz a1,sz_unc + LBINFO - LrFLD(r_FLD) // space to unfold fold_begin
add a0,r_ADRU,r_LENU // append to this stub
add r_LENU,r_LENU,a1 // unmap more, eventually
li r0,__NR_mmap; sc; bso- msg_SELinux
li r_slide,0
b fold
// section ELF_DYN // -pie ET_DYN; stub is where user code will be
pie:
// Allocate and copy stub (and fold_begin) to adjacent lower pages.
// VDSO might also intrude; move down to avoid it.
AT_SYSINFO= 32 // VDSO table
AT_SYSINFO_EHDR= 33 // Elf64_Ehdr for VDSO
mr r_slide,r_ADRU // dynbase
ld r_LENM,p_memsz + szElf64_Ehdr(r_ADRU) // PT_LOAD[0 {.text}].p_memsz
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
add r_LENU,r0,r_LENM
mr a1,r_LENU // total size needed
sub r_ADRM,r_ADRU,a1 // below this stub
and r_ADRM,r_ADRM,r_PMASK // lower to page boundary
mr a0,r_auxv
0:
ld a3,a_type(a0); ld a5,a_val(a0); la a0,sz_auxv(a0)
cmpldi cr7,a3,AT_NULL; beq- cr7,5f // end of auxv
subi a3,a3,AT_SYSINFO
cmpldi cr7,a3,AT_SYSINFO_EHDR - AT_SYSINFO; bgt+ cr7,0b
sub a3,a5,r_ADRM // offset
cmpld cr7,a3,a1; bge+ cr7,0b // no conflict
sub a3,a3,a1 // alas, non-CMP cr0 is signed
add r_ADRM,r_ADRM,a3 // move down
and r_ADRM,r_ADRM,r_PMASK // to page boundary
b 0b
5:
mr a0,r_ADRM // desired address
li a5,0 // off_t
li a4,-1 // fd; cater to *BSD for MAP_ANON
li a3,MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
li a2,PROT_READ | PROT_WRITE
li r0,__NR_mmap; sc; bso- msg_SELinux
sub r0,r_ADRM,r_ADRU // (ADRM - ADRU) == relocation amount
add r_exp,r_exp,r0 // relocate &f_exp
mr a3,r_LENM // length to move
addi a3,a3,-1+ 2*NBPW // roundup (16, )
addi a1,r_ADRU,-NBPW // prepare for lwu
srdi a3,a3,4 // number of 16-byte chunks
addi a0,a0,-NBPW // prepare for stwu
mtctr a3
0:
ld a2,NBPW(a1); ldu a3,2*NBPW(a1)
std a2,NBPW(a0); stdu a3,2*NBPW(a0); bdnz 0b
mr r_ADRU,r_ADRM // relocate
// section ELFufold
fold:
mr dst,a0 // fold_begin.unc
mr r23,a0
mtctr r_exp // &decompress
lwz r0,sz_unc + LBINFO - LrFLD(r_FLD)
lbz meth,b_method + LBINFO - LrFLD(r_FLD)
la ldst,SZ_FRAME+31*NBPW(sp) // &slot on stack
stw r0,SZ_FRAME+31*NBPW(sp) // lzma uses for EOF
lwz lsrc,sz_cpr + LBINFO - LrFLD(r_FLD)
la src,sz_b_info + LBINFO - LrFLD(r_FLD)
bctrl // decompress it
li a2,PROT_EXEC | PROT_READ
mr a1,r_LENU // length
mr a0,r_ADRU // base
li r0,__NR_mprotect; sc
mtctr r23
bctr
zfind:
ld r0,0(a0); addi a0,a0,NBPW
cmpdi cr7,r0,0; bne+ cr7,zfind
ret
main: main:
//// teq r0,r0 // debugging teq r0,r0 // debugging
stdu r1,-(SZ_FRAME + 32*8)(sp) // allocate space (keeping 0 mod 16), save r1 stdu r1,-(SZ_FRAME + 32*NBPW)(sp) // allocate space (keeping 0 mod 16), save r1
std 2,SZ_FRAME+ 2*8-8(sp) // stmd r2,SZ_FRAME+(-1+ 2)*NBPW(sp) // save registers r2 thru r31
std 3,SZ_FRAME+ 3*8-8(sp) std 2,SZ_FRAME+(-1+ 2)*NBPW(sp)
std 4,SZ_FRAME+ 4*8-8(sp) std 3,SZ_FRAME+(-1+ 3)*NBPW(sp)
std 5,SZ_FRAME+ 5*8-8(sp) std 4,SZ_FRAME+(-1+ 4)*NBPW(sp)
std 6,SZ_FRAME+ 6*8-8(sp) std 5,SZ_FRAME+(-1+ 5)*NBPW(sp)
std 7,SZ_FRAME+ 7*8-8(sp) std 6,SZ_FRAME+(-1+ 6)*NBPW(sp)
std 8,SZ_FRAME+ 8*8-8(sp) std 7,SZ_FRAME+(-1+ 7)*NBPW(sp)
std 9,SZ_FRAME+ 9*8-8(sp) std 8,SZ_FRAME+(-1+ 8)*NBPW(sp)
std 10,SZ_FRAME+10*8-8(sp) std 9,SZ_FRAME+(-1+ 9)*NBPW(sp)
std 11,SZ_FRAME+11*8-8(sp) std 10,SZ_FRAME+(-1+ 10)*NBPW(sp)
std 12,SZ_FRAME+12*8-8(sp) std 11,SZ_FRAME+(-1+ 11)*NBPW(sp)
std 13,SZ_FRAME+13*8-8(sp) std 12,SZ_FRAME+(-1+ 12)*NBPW(sp)
std 14,SZ_FRAME+14*8-8(sp) std 13,SZ_FRAME+(-1+ 13)*NBPW(sp)
std 15,SZ_FRAME+15*8-8(sp) std 14,SZ_FRAME+(-1+ 14)*NBPW(sp)
std 16,SZ_FRAME+16*8-8(sp) std 15,SZ_FRAME+(-1+ 15)*NBPW(sp)
std 17,SZ_FRAME+17*8-8(sp) std 16,SZ_FRAME+(-1+ 16)*NBPW(sp)
std 18,SZ_FRAME+18*8-8(sp) std 17,SZ_FRAME+(-1+ 17)*NBPW(sp)
std 19,SZ_FRAME+19*8-8(sp) std 18,SZ_FRAME+(-1+ 18)*NBPW(sp)
std 20,SZ_FRAME+20*8-8(sp) std 19,SZ_FRAME+(-1+ 19)*NBPW(sp)
std 21,SZ_FRAME+21*8-8(sp) std 20,SZ_FRAME+(-1+ 20)*NBPW(sp)
std 22,SZ_FRAME+22*8-8(sp) std 21,SZ_FRAME+(-1+ 21)*NBPW(sp)
std 23,SZ_FRAME+23*8-8(sp) std 22,SZ_FRAME+(-1+ 22)*NBPW(sp)
std 24,SZ_FRAME+24*8-8(sp) std 23,SZ_FRAME+(-1+ 23)*NBPW(sp)
std 25,SZ_FRAME+25*8-8(sp) std 24,SZ_FRAME+(-1+ 24)*NBPW(sp)
std 26,SZ_FRAME+26*8-8(sp) std 25,SZ_FRAME+(-1+ 25)*NBPW(sp)
std 27,SZ_FRAME+27*8-8(sp) std 26,SZ_FRAME+(-1+ 26)*NBPW(sp)
std 28,SZ_FRAME+28*8-8(sp) std 27,SZ_FRAME+(-1+ 27)*NBPW(sp)
std 29,SZ_FRAME+29*8-8(sp) std 28,SZ_FRAME+(-1+ 28)*NBPW(sp)
std 30,SZ_FRAME+30*8-8(sp) std 29,SZ_FRAME+(-1+ 29)*NBPW(sp)
std 31,SZ_FRAME+31*8-8(sp) std 30,SZ_FRAME+(-1+ 30)*NBPW(sp)
mflr r31 // &decompress std 31,SZ_FRAME+(-1+ 31)*NBPW(sp)
mflr r_exp // &f_exp (decompress)
la a0,SZ_FRAME+32*NBPW(sp) // &argc
call zfind // a0= envp
call zfind // a0= &Elf64_auxv
mr r_auxv,a0 // save for folded code
// set r_PMASK by finding actual page size in Elf64_auxv_t
1:
ld r0,a_type(a0); ld a1,a_val(a0); addi a0,a0,sz_auxv
cmpdi cr7,r0,AT_PAGESZ; beq- cr7,2f
cmpdi cr0,r0,AT_NULL; bne+ cr0,1b
lis a1,PAGE_SIZE>>16 // not found; use default
2:
neg r_PMASK,a1 // save for folded code
call unfold call unfold
LrFLD:
LOBINFO:
.long O_BINFO // .int4 .long O_BINFO // .int4
LBINFO:
/* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */ /* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */
/* vim:set ts=8 sw=8 et: */ /* vim:set ts=8 sw=8 et: */
+194 -86
View File
@@ -29,16 +29,20 @@
* <jreiser@users.sourceforge.net> * <jreiser@users.sourceforge.net>
*/ */
#include "arch/powerpc/64le/macros.S"
#include "arch/powerpc/64le/ppc_regs.h"
#ifndef BIG_ENDIAN #ifndef BIG_ENDIAN
#define BIG_ENDIAN 0 #define BIG_ENDIAN 0
#endif #endif
#define szElf64_Ehdr 0x40 NBPW= 8 //Number of Bytes Per Word
#define szElf64_Phdr 0x38 #include "arch/powerpc/64le/macros.S"
#define e_phnum 56 #include "arch/powerpc/64le/ppc_regs.h"
PATH_MAX= 4096 // /usr/include/linux/limits.h
szElf64_Ehdr= 0x40
szElf64_Phdr= 0x38
e_phnum= 56
AT_NULL= 0
sz_b_info= 12 sz_b_info= 12
sz_unc= 0 sz_unc= 0
@@ -47,6 +51,13 @@ sz_b_info= 12
sz_l_info= 12 sz_l_info= 12
sz_p_info= 12 sz_p_info= 12
MAP_PRIVATE= 0x02
MAP_FIXED= 0x10
PROT_READ= 0x1
O_RDONLY= 0
OVERHEAD= 2048 OVERHEAD= 2048
// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#STACK // http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#STACK
@@ -56,105 +67,199 @@ OVERHEAD= 2048
// It shall be doubleword aligned, and shall be at least 8 doublewords in length. // It shall be doubleword aligned, and shall be at least 8 doublewords in length.
//SZ_FRAME= SZ_LINK + SZ_PSAV // in ppc_regs.h //SZ_FRAME= SZ_LINK + SZ_PSAV // in ppc_regs.h
/* In: sz_pack2_f_exp= -4 -4 // 4 bytes and one Instruction before r_exp
r31= &decompress; also 8+ (char *)&(#bytes which preceed &-8(r31) // In:
r26= o_binfo r_exp= 31 // f_exp == &decompress()
sp/ {SZ_FRAME},regsav(r1-31),&eof_src,argc,argv,0,env,0,auxv,0,chars r_PMASK= 30 // PAGE_MASK
*/ r_ADRU= 29 // &base to unmap
r_LENU= 28 // length to unmap
r_BINFO= 27
r_auxv= 26
r_slide= 25
//r_FLD= 24
//r_ADRM= 23
//r_LENM= 22
// r29= reserved for &our_Elf32_Ehdr
// sp/ {SZ_FRAME},regsav(r1-31),&eof_src,argc,argv,0,env,0,auxv,0,chars
r_unf= 21 // f_unf == &unfilter()
r_fd= 20
av_hi= 19
av_len= 18
cblk= 17
pag= 16
fold_begin: fold_begin:
//// teq r0,r0 // debugging teq r0,r0 // debugging
call L90 call L90
L90b:
#include "arch/powerpc/64le/bxx.S" #include "arch/powerpc/64le/bxx.S"
L90a:
zfind: L_PFX= 4 // strlen(" =")
ld r0,0(a6) // parameters are 16byte aligned .asciz " =/proc/self/exe"
addi a6,a6,8 .balign 4
cmpldi cr7,r0,0; bne+ cr7,zfind
ret
L90: L90:
la sp,SZ_FRAME(sp) // trim save area used by decompressor mflr r_unf // L90b = &ppcbxx: f_unfilter
mflr a5 // &ppcbxx: f_unfilter // open /proc/self/exe
ld a6,0(sp) // &argc; sp from regsav at execve li a1,O_RDONLY
call zfind // a6= &env la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call zfind // a6= &Elf64_auxv; r0= 0 call open; movr r_fd,a0
// slide {<<stuff>>,argc,argv,0,env,0,auxv} down with maximum room before strings
la a1,-NBPW(sp) // src ready for ldu
la sp,-(-NBPW & (-1+ NBPW + (L_PFX + PATH_MAX)))(sp)
la a0,-NBPW(sp) // dst ready for stdu
la r_auxv,-NBPW(r_auxv) // &end ready for ldu
0: // copy upto auxv
ldu r0,NBPW(a1); cmpld cr7,a1,r_auxv
stdu r0,NBPW(a0); blt cr7,0b
la r_auxv,2*NBPW(a0) // new &auxv
stdu r0,NBPW(a0) // new env_terminator
0: // copy auxv
ld r0,NBPW(a1); cmpldi cr7,r0,AT_NULL
std r0,NBPW(a0)
ldu r0,2*NBPW(a1)
stdu r0,2*NBPW(a0); bne cr7,0b
la av_hi,NBPW(a0) // tmp end of auxv
subf av_len,r_auxv,av_hi // length of auxv
teq r0,r0
lwz r0,L90a - L90b(r_unf) // " ="
la cblk,NBPW(a1) // original &strings
stwu r0,NBPW(a0)
la r14,L_PFX(a0) // buffer
// readlink("/proc/self/exe", buffer, -1+ PATH_MAX)
li a2,-1+ PATH_MAX
movr a1,r14 // buffer
la a0,L_PFX+ L90a - L90b(r_unf) // "/proc/self/exe"
call readlink; la a2,-L_PFX(r14) // a0= len; a2= buffer
cmpdi a0,0; bgt 0f // success
la a2,L90a - L90b(r_unf) // " =/proc/self/exe"
li a0,L90 - (NBPW+ L90a) // round_up(NBPW, strlen("/proc/self/exe"))
0:
addi a0,a0,L_PFX // len += strlen(" =");
add a1,a2,a0 // beyond end of path
mtctr a0
movr a0,cblk // old &strings
li a2,0
stbu a2,-1(a0) // NUL terminate
0: // slide path up
lbzu r0,-1(a1)
stbu r0,-1(a0); bdnz 0b
std a0,-2*NBPW(r_auxv) // &" =<<path>>" for env
clrrdi a0,a0,3 // word align
xor r0,sp,a1 // parity of length
xor r0,r0,a0 // length vs destination
clrldi r0,r0,-4+ 8*NBPW // keep bottom 4 bits
sub a0,a0,r0
// slide the rest of the stack up
movr a1,av_hi
sub r_auxv,a0,av_len
0:
ldu r0,-NBPW(a1); cmpld cr7,a1,sp
stdu r0,-NBPW(a0); bgt+ cr7,0b
movr sp,a0
r_reloc= 32 - 1 # use a slot in register save area r_reloc= 32 - 1 # use a slot in register save area
la a7,r_reloc*8(sp) // &reloc la a7,r_reloc*NBPW(sp) // &reloc
std r0,0(a7) // reloc= 0 li r0,0; std r0,0(a7) // reloc= 0
la sp,-(SZ_FRAME+OVERHEAD)(sp) // -SZ_FRAME + &Elf64_Ehdr temporary space stdu sp,-(SZ_FRAME+OVERHEAD)(sp) // allocate this frame
lwz a1,-2*4(r31) // sz_pack2 == #bytes which preceed -2*4(r31) lwz a1,-2*4(r_exp) // sz_pack2 == #bytes which preceed -2*NBPW(r_exp)
clrrdi r30,a5,16 // r30= &this_page
subf r29,a1,r31 // 2*4+ (char *)&our_Elf64_Ehdr
addi r29,r29,-2*4 // &our_Elf64_Ehdr
mr a4,r31 // &decompress: f_expand add a0,r_ADRU,r_BINFO // &b_info
add a0,r29,r26 // &b_info sub a1,a1,r_BINFO // total_size
sub a1,a1,r26 // total_size la a2,SZ_FRAME(sp) // &Elf32_Ehdr temporary space
la a2,SZ_FRAME(sp) // &Elf64_Ehdr temporary space mr a3,r_auxv // &Elf32_auxv_t
lwz a3,sz_unc(a0) // sz_elf_headers mr a4,r_exp // &decompress: f_expand
mr a5,r_unf // &f_unf
mr a6,r_slide // reloc; slide; dynbase
#if BIG_ENDIAN //{ setup indirection for entry to f_exp and f_unf #if BIG_ENDIAN //{ setup indirection for entry to f_exp and f_unf
std a4,3*8(sp); la a4,3*8(sp) // use tmp.xlc std a4,3*NBPW(sp); la a4,3*NBPW(sp) // use tmp.xlc
std a5,4*8(sp); la a5,4*8(sp) // use tmp.ld std a5,4*NBPW(sp); la a5,4*NBPW(sp) // use tmp.ld
#endif //} #endif //}
call upx_main call upx_main // Out: a0= entry
// a0=entry= upx_main(b_info *a0, total_size a1, Elf64_Ehdr *a2, sz_ehdr a3, // entry= upx_main(b_info *a0, total_size a1, Elf32_Ehdr *a2, ELf32_auxv_t *a3,
// f_decomp a4, f_unf a5, Elf64_auxv_t *a6, void *a7=p_reloc) // f_exp a4, f_unf a5, dynbase a6, p_reloc a7)
#if BIG_ENDIAN //{ #if BIG_ENDIAN //{
ld r0,SZ_FRAME+OVERHEAD +r_reloc*8(sp) // reloc for ET_DYN ld r0,SZ_FRAME+OVERHEAD +r_reloc*NBPW(sp) // reloc for ET_DYN
ld r2,8(r3); add r2,r2,r0 // toc ld r2,NBPW(r3); add r2,r2,r0 // toc
ld r3,0(r3); add r3,r3,r0 // .func ld r3, 0(r3); add r3,r3,r0 // .func
#endif //} #endif //}
mr r31,a0 // save &entry
mr a0,r29 // &our_Elf64_Ehdr la sp,SZ_FRAME+OVERHEAD(sp) // deallocate this frame
subf a1,r29,r30 // size mr r_exp,a0 // save &entry
call munmap // unmap compressed program; /proc/self/exe disappears
mtlr r31 // entry address // first page of /proc/self/exe, to preserve it despite munmap(ADRU, LENU)
li a5,0 // offset
movr a4,r_fd
li a3,MAP_PRIVATE
li a2,PROT_READ
neg a1,r_PMASK // PAGE_SIZE
li a0,0 // kernel chooses where
call mmap
// close /proc/self/exe
movr a0,r_fd
call close
/* Restore Save Area */ AT_NULL= 0 // <elf.h>
rest: a_type= 0
a_val= NBPW
sz_auxv= 2*NBPW
// find the escape hatch in auxv[{AT_NULL}].a_val
mr a0,r_auxv
0:
ld r0,a_type(a0); ld a1,a_val(a0); addi a0,a0,sz_auxv
cmpldi cr7,r0,AT_NULL; bne+ cr7,0b
mtctr a1 // escape hatch
mr a0,r_ADRU
mr a1,r_LENU
li r0,SYS_munmap
mtlr r_exp // entry address
// lmw a2,SZ_FRAME+(a2 - r2 + 2)*NBPW - NBPW(sp) // restore registers a2 thru r31
// BIG_ENDIAN uses r2 (TOC) that was set above. // BIG_ENDIAN uses r2 (TOC) that was set above.
// LITTLE_ENDIAN does not use TOC here. // LITTLE_ENDIAN does not use TOC here.
#if !BIG_ENDIAN //{ #if !BIG_ENDIAN //{
ld 2, 2*8-8+SZ_FRAME+OVERHEAD(sp) ld 2,SZ_FRAME + (-1+ 2)*NBPW(sp)
#endif //} #endif //}
ld 3, 3*8-8+SZ_FRAME+OVERHEAD(sp) ld 3,SZ_FRAME + (-1+ 3)*NBPW(sp)
ld 4, 4*8-8+SZ_FRAME+OVERHEAD(sp) ld 4,SZ_FRAME + (-1+ 4)*NBPW(sp)
ld 5, 5*8-8+SZ_FRAME+OVERHEAD(sp) ld 5,SZ_FRAME + (-1+ 5)*NBPW(sp)
ld 6, 6*8-8+SZ_FRAME+OVERHEAD(sp) ld 6,SZ_FRAME + (-1+ 6)*NBPW(sp)
ld 7, 7*8-8+SZ_FRAME+OVERHEAD(sp) ld 7,SZ_FRAME + (-1+ 7)*NBPW(sp)
ld 8, 8*8-8+SZ_FRAME+OVERHEAD(sp) ld 8,SZ_FRAME + (-1+ 8)*NBPW(sp)
ld 9, 9*8-8+SZ_FRAME+OVERHEAD(sp) ld 9,SZ_FRAME + (-1+ 9)*NBPW(sp)
ld 10,10*8-8+SZ_FRAME+OVERHEAD(sp) ld 10,SZ_FRAME + (-1+ 10)*NBPW(sp)
ld 11,11*8-8+SZ_FRAME+OVERHEAD(sp) ld 11,SZ_FRAME + (-1+ 11)*NBPW(sp)
ld 12,12*8-8+SZ_FRAME+OVERHEAD(sp) ld 12,SZ_FRAME + (-1+ 12)*NBPW(sp)
ld 13,13*8-8+SZ_FRAME+OVERHEAD(sp) ld 13,SZ_FRAME + (-1+ 13)*NBPW(sp)
ld 14,14*8-8+SZ_FRAME+OVERHEAD(sp) ld 14,SZ_FRAME + (-1+ 14)*NBPW(sp)
ld 15,15*8-8+SZ_FRAME+OVERHEAD(sp) ld 15,SZ_FRAME + (-1+ 15)*NBPW(sp)
ld 16,16*8-8+SZ_FRAME+OVERHEAD(sp) ld 16,SZ_FRAME + (-1+ 16)*NBPW(sp)
ld 17,17*8-8+SZ_FRAME+OVERHEAD(sp) ld 17,SZ_FRAME + (-1+ 17)*NBPW(sp)
ld 18,18*8-8+SZ_FRAME+OVERHEAD(sp) ld 18,SZ_FRAME + (-1+ 18)*NBPW(sp)
ld 19,19*8-8+SZ_FRAME+OVERHEAD(sp) ld 19,SZ_FRAME + (-1+ 19)*NBPW(sp)
ld 20,20*8-8+SZ_FRAME+OVERHEAD(sp) ld 20,SZ_FRAME + (-1+ 20)*NBPW(sp)
ld 21,21*8-8+SZ_FRAME+OVERHEAD(sp) ld 21,SZ_FRAME + (-1+ 21)*NBPW(sp)
ld 22,22*8-8+SZ_FRAME+OVERHEAD(sp) ld 22,SZ_FRAME + (-1+ 22)*NBPW(sp)
ld 23,23*8-8+SZ_FRAME+OVERHEAD(sp) ld 23,SZ_FRAME + (-1+ 23)*NBPW(sp)
ld 24,24*8-8+SZ_FRAME+OVERHEAD(sp) ld 24,SZ_FRAME + (-1+ 24)*NBPW(sp)
ld 25,25*8-8+SZ_FRAME+OVERHEAD(sp) ld 25,SZ_FRAME + (-1+ 25)*NBPW(sp)
ld 26,26*8-8+SZ_FRAME+OVERHEAD(sp) ld 26,SZ_FRAME + (-1+ 26)*NBPW(sp)
ld 27,27*8-8+SZ_FRAME+OVERHEAD(sp) ld 27,SZ_FRAME + (-1+ 27)*NBPW(sp)
ld 28,28*8-8+SZ_FRAME+OVERHEAD(sp) ld 28,SZ_FRAME + (-1+ 28)*NBPW(sp)
ld 29,29*8-8+SZ_FRAME+OVERHEAD(sp) ld 29,SZ_FRAME + (-1+ 29)*NBPW(sp)
ld 30,30*8-8+SZ_FRAME+OVERHEAD(sp) ld 30,SZ_FRAME + (-1+ 30)*NBPW(sp)
ld 31,31*8-8+SZ_FRAME+OVERHEAD(sp) ld 31,SZ_FRAME + (-1+ 31)*NBPW(sp)
la sp,SZ_FRAME + 32 *NBPW(sp) // deallocate outer frame
ld r1,SZ_FRAME+OVERHEAD(sp) // restore r1; deallocate space
li r0,0
mtcr r0
mtctr r0
ret // enter /lib/ld.so.1
bctr // goto escape hatch
SYS_exit= 1 SYS_exit= 1
SYS_fork= 2 SYS_fork= 2
SYS_read= 3 SYS_read= 3
@@ -166,9 +271,12 @@ SYS_brk= 45
SYS_mmap= 90 SYS_mmap= 90
SYS_munmap= 91 SYS_munmap= 91
SYS_mprotect= 125 SYS_mprotect= 125
SYS_readlink= 85
exit: .globl exit exit: .globl exit
li 0,SYS_exit; 0: b 0f li 0,SYS_exit; 0: b 0f
readlink: .globl readlink
li 0,SYS_readlink; 0: b 0f
brk: .globl brk brk: .globl brk
li 0,SYS_brk; 0: b 0f li 0,SYS_brk; 0: b 0f
close: .globl close close: .globl close
@@ -13,8 +13,8 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC30 00000024 00000000 00000000 00001764 2**0 CONTENTS, READONLY 8 LZMA_DEC30 00000024 00000000 00000000 00001764 2**0 CONTENTS, READONLY
9 NRV_TAIL 0000001c 00000000 00000000 00001788 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 00000000 00000000 00001788 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 000017a4 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 000017a4 2**0 CONTENTS, READONLY
11 ELFMAINY 00000022 00000000 00000000 000017c8 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINY 00000012 00000000 00000000 000017c8 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000001f8 00000000 00000000 000017ea 2**0 CONTENTS, RELOC, READONLY 12 ELFMAINZ 000001f8 00000000 00000000 000017da 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30 00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d NRV_TAIL 00000000 NRV_TAIL
@@ -13,9 +13,9 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC20 00001574 0000000000000000 0000000000000000 00001708 2**0 CONTENTS, READONLY 8 LZMA_DEC20 00001574 0000000000000000 0000000000000000 00001708 2**0 CONTENTS, READONLY
9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 00002c7c 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 00002c7c 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 0000000000000000 0000000000000000 00002c98 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 0000000000000000 0000000000000000 00002c98 2**0 CONTENTS, READONLY
11 ELFMAINY 00000022 0000000000000000 0000000000000000 00002cbc 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINY 00000012 0000000000000000 0000000000000000 00002cbc 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZe 00000018 0000000000000000 0000000000000000 00002ce0 2**3 CONTENTS, RELOC, READONLY 12 ELFMAINZe 00000018 0000000000000000 0000000000000000 00002cd0 2**3 CONTENTS, RELOC, READONLY
13 ELFMAINZ 00000110 0000000000000000 0000000000000000 00002cf8 2**2 CONTENTS, RELOC, READONLY 13 ELFMAINZ 0000024c 0000000000000000 0000000000000000 00002ce8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
@@ -37,7 +37,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000088 0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c
RELOCATION RECORDS FOR [NRV2E]: RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -65,5 +65,6 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000058 R_PPC64_REL14 ELFMAINY 0000000000000074 R_PPC64_REL14 ELFMAINY
000000000000010c R_PPC64_ADDR32 O_BINFO 00000000000000f8 R_PPC64_REL14 ELFMAINY
0000000000000248 R_PPC64_ADDR32 O_BINFO
+40 -39
View File
@@ -9,58 +9,59 @@ Linker script and memory map
TARGET(elf64-powerpc) TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x848 .text 0x00000000001000bc 0x964
*(.text) *(.text)
.text 0x00000000001000bc 0x1d0 tmp/powerpc64-linux.elf-fold.o .text 0x00000000001000bc 0x2ec tmp/powerpc64-linux.elf-fold.o
0x0000000000100240 exit 0x0000000000100354 exit
0x0000000000100248 brk 0x000000000010035c readlink
0x0000000000100250 close 0x0000000000100364 brk
0x0000000000100258 open 0x000000000010036c close
0x0000000000100260 munmap 0x0000000000100374 open
0x0000000000100268 mprotect 0x000000000010037c munmap
0x0000000000100270 read 0x0000000000100384 mprotect
0x0000000000100278 mmap 0x000000000010038c read
.text 0x000000000010028c 0x678 tmp/powerpc64-linux.elf-main.o 0x0000000000100394 mmap
.text 0x00000000001003a8 0x678 tmp/powerpc64-linux.elf-main.o
*(.data) *(.data)
.data 0x0000000000100904 0x0 tmp/powerpc64-linux.elf-fold.o .data 0x0000000000100a20 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100904 0x0 tmp/powerpc64-linux.elf-main.o .data 0x0000000000100a20 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100904 0xa4 .sfpr 0x0000000000100a20 0xa4
.sfpr 0x0000000000100904 0xa4 linker stubs .sfpr 0x0000000000100a20 0xa4 linker stubs
0x0000000000100904 _savegpr0_14 0x0000000000100a20 _savegpr0_14
0x0000000000100930 _savegpr0_25 0x0000000000100a4c _savegpr0_25
0x000000000010093c _savegpr0_28 0x0000000000100a58 _savegpr0_28
0x0000000000100954 _restgpr0_14 0x0000000000100a70 _restgpr0_14
0x0000000000100980 _restgpr0_25 0x0000000000100a9c _restgpr0_25
0x000000000010098c _restgpr0_28 0x0000000000100aa8 _restgpr0_28
.glink 0x00000000001009a8 0x0 .glink 0x0000000000100ac8 0x0
.glink 0x00000000001009a8 0x0 linker stubs .glink 0x0000000000100ac8 0x0 linker stubs
.eh_frame 0x00000000001009a8 0x0 .eh_frame 0x0000000000100ac4 0x0
.eh_frame 0x00000000001009a8 0x0 linker stubs .eh_frame 0x0000000000100ac4 0x0 linker stubs
.rela.dyn 0x00000000001009a8 0x0 .rela.dyn 0x0000000000100ac8 0x0
.rela.iplt 0x00000000001009a8 0x0 linker stubs .rela.iplt 0x0000000000100ac8 0x0 linker stubs
.data .data
LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-fold.o
LOAD tmp/powerpc64-linux.elf-main.o LOAD tmp/powerpc64-linux.elf-main.o
OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.branch_lt 0x00000000001009a8 0x0 .branch_lt 0x0000000000100ac8 0x0
.branch_lt 0x00000000001009a8 0x0 linker stubs .branch_lt 0x0000000000100ac8 0x0 linker stubs
.toc 0x00000000001009a8 0x0 .toc 0x0000000000100ac8 0x0
.toc 0x00000000001009a8 0x0 tmp/powerpc64-linux.elf-main.o .toc 0x0000000000100ac8 0x0 tmp/powerpc64-linux.elf-main.o
.opd 0x00000000001009a8 0x58 .opd 0x0000000000100ac8 0x58
.opd 0x00000000001009a8 0x58 tmp/powerpc64-linux.elf-main.o .opd 0x0000000000100ac8 0x58 tmp/powerpc64-linux.elf-main.o
0x00000000001009e8 upx_main 0x0000000000100b08 upx_main
.iplt 0x0000000000100a00 0x0 .iplt 0x0000000000100b20 0x0
.iplt 0x0000000000100a00 0x0 linker stubs .iplt 0x0000000000100b20 0x0 linker stubs
.bss 0x0000000000100a00 0x0 .bss 0x0000000000100b20 0x0
.bss 0x0000000000100a00 0x0 tmp/powerpc64-linux.elf-fold.o .bss 0x0000000000100b20 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100a00 0x0 tmp/powerpc64-linux.elf-main.o .bss 0x0000000000100b20 0x0 tmp/powerpc64-linux.elf-main.o
@@ -13,8 +13,8 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC20 00000c30 0000000000000000 0000000000000000 0000152c 2**0 CONTENTS, READONLY 8 LZMA_DEC20 00000c30 0000000000000000 0000000000000000 0000152c 2**0 CONTENTS, READONLY
9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 0000215c 2**0 CONTENTS, READONLY 9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 0000215c 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 0000000000000000 0000000000000000 00002178 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 0000000000000000 0000000000000000 00002178 2**0 CONTENTS, READONLY
11 ELFMAINY 00000022 0000000000000000 0000000000000000 0000219c 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINY 00000012 0000000000000000 0000000000000000 0000219c 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000110 0000000000000000 0000000000000000 000021c0 2**2 CONTENTS, RELOC, READONLY 12 ELFMAINZ 0000024c 0000000000000000 0000000000000000 000021b0 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
@@ -34,7 +34,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000088 0000000000000000 R_PPC64_REL24 ELFMAINZ+0x000000000000018c
RELOCATION RECORDS FOR [NRV2E]: RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -58,5 +58,6 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000058 R_PPC64_REL14 ELFMAINY 0000000000000074 R_PPC64_REL14 ELFMAINY
000000000000010c R_PPC64_ADDR32 O_BINFO 00000000000000f8 R_PPC64_REL14 ELFMAINY
0000000000000248 R_PPC64_ADDR32 O_BINFO
+40 -39
View File
@@ -9,58 +9,59 @@ Linker script and memory map
TARGET(elf64-powerpcle) TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x820 .text 0x00000000001000bc 0x93c
*(.text) *(.text)
.text 0x00000000001000bc 0x1b0 tmp/powerpc64le-linux.elf-fold.o .text 0x00000000001000bc 0x2cc tmp/powerpc64le-linux.elf-fold.o
0x0000000000100220 exit 0x0000000000100334 exit
0x0000000000100228 brk 0x000000000010033c readlink
0x0000000000100230 close 0x0000000000100344 brk
0x0000000000100238 open 0x000000000010034c close
0x0000000000100240 munmap 0x0000000000100354 open
0x0000000000100248 mprotect 0x000000000010035c munmap
0x0000000000100250 read 0x0000000000100364 mprotect
0x0000000000100258 mmap 0x000000000010036c read
.text 0x000000000010026c 0x670 tmp/powerpc64le-linux.elf-main.o 0x0000000000100374 mmap
.text 0x0000000000100388 0x670 tmp/powerpc64le-linux.elf-main.o
*(.data) *(.data)
.data 0x00000000001008dc 0x0 tmp/powerpc64le-linux.elf-fold.o .data 0x00000000001009f8 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x00000000001008dc 0x0 tmp/powerpc64le-linux.elf-main.o .data 0x00000000001009f8 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x00000000001008dc 0xa4 .sfpr 0x00000000001009f8 0xa4
.sfpr 0x00000000001008dc 0xa4 linker stubs .sfpr 0x00000000001009f8 0xa4 linker stubs
0x00000000001008dc _savegpr0_14 0x00000000001009f8 _savegpr0_14
0x0000000000100908 _savegpr0_25 0x0000000000100a24 _savegpr0_25
0x0000000000100914 _savegpr0_28 0x0000000000100a30 _savegpr0_28
0x000000000010092c _restgpr0_14 0x0000000000100a48 _restgpr0_14
0x0000000000100958 _restgpr0_25 0x0000000000100a74 _restgpr0_25
0x0000000000100964 _restgpr0_28 0x0000000000100a80 _restgpr0_28
.glink 0x0000000000100980 0x0 .glink 0x0000000000100aa0 0x0
.glink 0x0000000000100980 0x0 linker stubs .glink 0x0000000000100aa0 0x0 linker stubs
.eh_frame 0x0000000000100980 0x0 .eh_frame 0x0000000000100a9c 0x0
.eh_frame 0x0000000000100980 0x0 linker stubs .eh_frame 0x0000000000100a9c 0x0 linker stubs
.rela.dyn 0x0000000000100980 0x0 .rela.dyn 0x0000000000100aa0 0x0
.rela.iplt 0x0000000000100980 0x0 linker stubs .rela.iplt 0x0000000000100aa0 0x0 linker stubs
.data .data
LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-fold.o
LOAD tmp/powerpc64le-linux.elf-main.o LOAD tmp/powerpc64le-linux.elf-main.o
OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.branch_lt 0x0000000000100980 0x0 .branch_lt 0x0000000000100aa0 0x0
.branch_lt 0x0000000000100980 0x0 linker stubs .branch_lt 0x0000000000100aa0 0x0 linker stubs
.toc 0x0000000000100980 0x0 .toc 0x0000000000100aa0 0x0
.toc 0x0000000000100980 0x0 tmp/powerpc64le-linux.elf-main.o .toc 0x0000000000100aa0 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100980 0x58 .opd 0x0000000000100aa0 0x58
.opd 0x0000000000100980 0x58 tmp/powerpc64le-linux.elf-main.o .opd 0x0000000000100aa0 0x58 tmp/powerpc64le-linux.elf-main.o
0x00000000001009c0 upx_main 0x0000000000100ae0 upx_main
.iplt 0x00000000001009d8 0x0 .iplt 0x0000000000100af8 0x0
.iplt 0x00000000001009d8 0x0 linker stubs .iplt 0x0000000000100af8 0x0 linker stubs
.bss 0x00000000001009d8 0x0 .bss 0x0000000000100af8 0x0
.bss 0x00000000001009d8 0x0 tmp/powerpc64le-linux.elf-fold.o .bss 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x00000000001009d8 0x0 tmp/powerpc64le-linux.elf-main.o .bss 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-main.o