diff --git a/src/stub/Makefile b/src/stub/Makefile index a9d97db0..fe0263d4 100644 --- a/src/stub/Makefile +++ b/src/stub/Makefile @@ -838,12 +838,12 @@ mipsel.r3000-linux.elf%.h : tc_bfdname = elf32-littlemips mipsel.r3000-linux.elf-entry.h : $(srcdir)/src/$$T.S ifeq (1,1) # info: we really need as-2.17 here - $(call tc,pp-as) $< -o - | $(RTRIM) > tmp/$T.i + $(call tc,pp-as) -D_TARGET_LINUX_ $< -o - | $(RTRIM) > tmp/$T.i $(call tc,as) tmp/$T.i -o tmp/$T.bin $(call tc,gpp_mkdep) --mode=c --MMD=$@ $< --MF=tmp/$T.d else # info: as-2.16.1 as used by gcc-4.1.1 does _not_ work - $(call tc,gcc) -c -Wa,-O,-mno-pdr $< -o tmp/$T.bin + $(call tc,gcc) -c -D_TARGET_LINUX_ -Wa,-O,-mno-pdr $< -o tmp/$T.bin endif $(call tc,f-embed_objinfo,tmp/$T.bin) $(call tc,bin2h-c) tmp/$T.bin $@ @@ -855,7 +855,7 @@ mipsel.r3000-linux.elf-fold.h : tmp/$$T.o tmp/mipsel.r3000-linux.elf-main.o $(sr $(call tc,bin2h) tmp/$T.bin $@ tmp/mipsel.r3000-linux.elf-fold.o : $(srcdir)/src/$$T.S - $(call tc,gcc) -c $< -o $@ + $(call tc,gcc) -c -D_TARGET_LINUX_ $< -o $@ $(call tc,f-objstrip,$@) tmp/mipsel.r3000-linux.elf-main.o : $(srcdir)/src/$$T.c diff --git a/src/stub/mipsel.r3000-linux.elf-entry.h b/src/stub/mipsel.r3000-linux.elf-entry.h index 8ff5376e..8bf70ea4 100644 --- a/src/stub/mipsel.r3000-linux.elf-entry.h +++ b/src/stub/mipsel.r3000-linux.elf-entry.h @@ -1,5 +1,5 @@ /* mipsel.r3000-linux.elf-entry.h - created from mipsel.r3000-linux.elf-entry.bin, 10090 (0x276a) bytes + created from mipsel.r3000-linux.elf-entry.bin, 10193 (0x27d1) bytes This file is part of the UPX executable compressor. @@ -28,108 +28,108 @@ */ -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10090 -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x80d96628 -#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x72c9316c +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10193 +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xe6a17f81 +#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x989673fc -unsigned char stub_mipsel_r3000_linux_elf_entry[10090] = { +unsigned char stub_mipsel_r3000_linux_elf_entry[10193] = { 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ -244, 29, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ - 20, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ +228, 29, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ + 21, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 17, 4, /* 0x 40 */ 0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 50 */ -194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 60 */ - 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */ - 1, 0, 41, 37, 1, 0, 15, 36, 5, 0,192, 17, 0, 0,174,144, /* 0x 80 */ - 1, 0,165, 36, 0, 0, 14,161,241,255, 0, 16, 1, 0, 8, 37, /* 0x 90 */ -194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x a0 */ - 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x b0 */ +194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 60 */ + 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */ + 1, 0, 41, 37, 1, 0, 15, 36, 5, 0,192, 17, 0, 0,142,144, /* 0x 80 */ + 1, 0,132, 36, 0, 0,206,160,241,255, 0, 16, 1, 0,198, 36, /* 0x 90 */ +194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x a0 */ + 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x b0 */ 1, 0, 41, 37, 64,120, 15, 0, 33,120,238, 1,194,119, 9, 0, /* 0x c0 */ - 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x d0 */ - 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x e0 */ + 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, /* 0x d0 */ + 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x e0 */ 13, 0,192, 21,254,255,238, 37, 33,120,238, 1,194,119, 9, 0, /* 0x f0 */ - 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 100 */ - 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 110 */ + 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, /* 0x 100 */ + 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 110 */ 223,255, 0, 16, 33,120,238, 1, 13, 0,192, 21,253,255,239, 37, /* 0x 120 */ -194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 130 */ - 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 140 */ +194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 130 */ + 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 140 */ 1, 0, 41, 37, 33,120, 96, 1, 11, 0, 0, 16, 1, 0,204, 49, /* 0x 150 */ - 0, 0,174,144, 0,122, 15, 0, 33,120,238, 1, 1, 0,238, 37, /* 0x 160 */ -255,255,192, 17, 1, 0,165, 36, 66,120, 15, 0, 1, 0,239, 37, /* 0x 170 */ + 0, 0,142,144, 0,122, 15, 0, 33,120,238, 1, 1, 0,238, 37, /* 0x 160 */ +255,255,192, 17, 1, 0,132, 36, 66,120, 15, 0, 1, 0,239, 37, /* 0x 170 */ 33, 88,224, 1, 1, 0,204, 49,194,119, 9, 0, 7, 0,169, 21, /* 0x 180 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 190 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 190 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 35, 0,128, 21, /* 0x 1a0 */ 254,255,204, 37, 12, 0,192, 17, 1, 0, 12, 36,194,119, 9, 0, /* 0x 1b0 */ - 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 1c0 */ - 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 1d0 */ + 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, /* 0x 1c0 */ + 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 1d0 */ 22, 0, 0, 16, 33, 96,192, 1,194,119, 9, 0, 7, 0,169, 21, /* 0x 1e0 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 1f0 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 1f0 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64, 96, 12, 0, /* 0x 200 */ 33, 96,142, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 210 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 220 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 220 */ 64, 72, 9, 0, 1, 0, 41, 37,235,255,192, 17, 1, 5,238, 45, /* 0x 230 */ - 5, 0,140, 37, 35, 96,142, 1, 35,120, 15, 1, 0, 0,238,145, /* 0x 240 */ -255,255,140, 37, 1, 0,239, 37, 1, 0, 8, 37,251,255,128, 21, /* 0x 250 */ -255,255, 14,161,127,255, 0, 16,194,119, 9, 0, 0,128, 13, 60, /* 0x 260 */ + 5, 0,140, 37, 35, 96,142, 1, 35,120,207, 0, 0, 0,238,145, /* 0x 240 */ +255,255,140, 37, 1, 0,239, 37, 1, 0,198, 36,251,255,128, 21, /* 0x 250 */ +255,255,206,160,127,255, 0, 16,194,119, 9, 0, 0,128, 13, 60, /* 0x 260 */ 33, 72,160, 1, 1, 0, 11, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 270 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 280 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 280 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 1, 0, 15, 36, /* 0x 290 */ - 5, 0,192, 17, 0, 0,174,144, 1, 0,165, 36, 0, 0, 14,161, /* 0x 2a0 */ -241,255, 0, 16, 1, 0, 8, 37,194,119, 9, 0, 7, 0,169, 21, /* 0x 2b0 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 2c0 */ + 5, 0,192, 17, 0, 0,142,144, 1, 0,132, 36, 0, 0,206,160, /* 0x 2a0 */ +241,255, 0, 16, 1, 0,198, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 2b0 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 2c0 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64,120, 15, 0, /* 0x 2d0 */ 33,120,238, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 2e0 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 2f0 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 2f0 */ 64, 72, 9, 0, 1, 0, 41, 37, 13, 0,192, 21,254,255,238, 37, /* 0x 300 */ 33,120,207, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 310 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 320 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 320 */ 64, 72, 9, 0, 1, 0, 41, 37,223,255, 0, 16, 33,120,238, 1, /* 0x 330 */ 13, 0,192, 21,253,255,239, 37,194,119, 9, 0, 7, 0,169, 21, /* 0x 340 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 350 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 350 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 33,120, 96, 1, /* 0x 360 */ - 11, 0, 0, 16, 1, 0,204, 49, 0, 0,174,144, 0,122, 15, 0, /* 0x 370 */ - 33,120,238, 1, 1, 0,238, 37,255,255,192, 17, 1, 0,165, 36, /* 0x 380 */ + 11, 0, 0, 16, 1, 0,204, 49, 0, 0,142,144, 0,122, 15, 0, /* 0x 370 */ + 33,120,238, 1, 1, 0,238, 37,255,255,192, 17, 1, 0,132, 36, /* 0x 380 */ 66,120, 15, 0, 1, 0,239, 37, 33, 88,224, 1, 1, 0,204, 49, /* 0x 390 */ -194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 3a0 */ - 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 3b0 */ +194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 3a0 */ + 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 3b0 */ 1, 0, 41, 37, 64, 96, 12, 0, 33, 96,142, 1, 23, 0,128, 21, /* 0x 3c0 */ 254,255,140, 37, 1, 0, 12, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 3d0 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 3e0 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 3e0 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64, 96, 12, 0, /* 0x 3f0 */ 33, 96,142, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 400 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 410 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 410 */ 64, 72, 9, 0, 1, 0, 41, 37,235,255,192, 17, 1, 5,238, 45, /* 0x 420 */ - 4, 0,140, 37, 35, 96,142, 1, 35,120, 15, 1, 0, 0,238,145, /* 0x 430 */ -255,255,140, 37, 1, 0,239, 37, 1, 0, 8, 37,251,255,128, 21, /* 0x 440 */ -255,255, 14,161,137,255, 0, 16,194,119, 9, 0, 0,128, 13, 60, /* 0x 450 */ + 4, 0,140, 37, 35, 96,142, 1, 35,120,207, 0, 0, 0,238,145, /* 0x 430 */ +255,255,140, 37, 1, 0,239, 37, 1, 0,198, 36,251,255,128, 21, /* 0x 440 */ +255,255,206,160,137,255, 0, 16,194,119, 9, 0, 0,128, 13, 60, /* 0x 450 */ 33, 72,160, 1, 1, 0, 11, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 460 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 470 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 470 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 1, 0, 15, 36, /* 0x 480 */ - 5, 0,192, 17, 0, 0,174,144, 1, 0,165, 36, 0, 0, 14,161, /* 0x 490 */ -241,255, 0, 16, 1, 0, 8, 37,194,119, 9, 0, 7, 0,169, 21, /* 0x 4a0 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 4b0 */ + 5, 0,192, 17, 0, 0,142,144, 1, 0,132, 36, 0, 0,206,160, /* 0x 490 */ +241,255, 0, 16, 1, 0,198, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 4a0 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 4b0 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64,120, 15, 0, /* 0x 4c0 */ 33,120,238, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 4d0 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 4e0 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 4e0 */ 64, 72, 9, 0, 1, 0, 41, 37,235,255,192, 17, 2, 0, 14, 36, /* 0x 4f0 */ 3, 0,238, 21,253,255,239, 37, 8, 0, 0, 16, 33,120, 96, 1, /* 0x 500 */ - 0, 0,174,144, 0,122, 15, 0, 33,120,238, 1, 1, 0,239, 37, /* 0x 510 */ -255,255,224, 17, 1, 0,165, 36, 33, 88,224, 1,194,119, 9, 0, /* 0x 520 */ - 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 530 */ - 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 540 */ + 0, 0,142,144, 0,122, 15, 0, 33,120,238, 1, 1, 0,239, 37, /* 0x 510 */ +255,255,224, 17, 1, 0,132, 36, 33, 88,224, 1,194,119, 9, 0, /* 0x 520 */ + 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, /* 0x 530 */ + 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 540 */ 33, 96,192, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 550 */ - 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 560 */ + 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, /* 0x 560 */ 64, 72, 9, 0, 1, 0, 41, 37, 64, 96, 12, 0, 33, 96,142, 1, /* 0x 570 */ 23, 0,128, 21,254,255,140, 37, 1, 0, 12, 36,194,119, 9, 0, /* 0x 580 */ - 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 590 */ - 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 5a0 */ + 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, /* 0x 590 */ + 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 5a0 */ 64, 96, 12, 0, 33, 96,142, 1,194,119, 9, 0, 7, 0,169, 21, /* 0x 5b0 */ - 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 5c0 */ + 64, 72, 9, 0, 0, 0,137,152, 3, 0,137,136, 4, 0,132, 36, /* 0x 5c0 */ 194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37,235,255,192, 17, /* 0x 5d0 */ - 1, 13,238, 45, 4, 0,140, 37, 35, 96,142, 1, 35,120, 15, 1, /* 0x 5e0 */ - 0, 0,238,145,255,255,140, 37, 1, 0,239, 37, 1, 0, 8, 37, /* 0x 5f0 */ -251,255,128, 21,255,255, 14,161,152,255, 0, 16,194,119, 9, 0, /* 0x 600 */ + 1, 13,238, 45, 4, 0,140, 37, 35, 96,142, 1, 35,120,207, 0, /* 0x 5e0 */ + 0, 0,238,145,255,255,140, 37, 1, 0,239, 37, 1, 0,198, 36, /* 0x 5f0 */ +251,255,128, 21,255,255,206,160,152,255, 0, 16,194,119, 9, 0, /* 0x 600 */ 0, 0,153,144, 0,250, 1, 36, 1, 0,152,144, 7, 0, 34, 51, /* 0x 610 */ 194,200, 25, 0, 4, 8, 33, 3, 96,241, 33, 36, 33,232,161, 3, /* 0x 620 */ 40, 0,161,175, 32, 0,170, 39, 44, 0,191,175, 0, 0,233,140, /* 0x 630 */ @@ -486,182 +486,189 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[10090] = { 1, 0, 2, 36, 52, 0,183,143, 48, 0,182,143, 44, 0,181,143, /* 0x1c20 */ 40, 0,180,143, 36, 0,179,143, 32, 0,178,143, 28, 0,177,143, /* 0x1c30 */ 24, 0,176,143, 8, 0,224, 3, 56, 0,189, 39, 13, 0, 0, 0, /* 0x1c40 */ - 0, 0,168,143, 4, 0,189, 39, 34, 16, 72, 0, 0, 0,168,143, /* 0x1c50 */ - 4, 0,189, 39, 34,128, 8, 2, 0, 0,168,143, 4, 0,189, 39, /* 0x1c60 */ - 0, 0, 16,173, 0, 0,168,143, 4, 0,189, 39, 8, 0, 0, 1, /* 0x1c70 */ - 0, 0, 0, 0, 30, 0, 6, 36,255,255, 17, 4, 33, 40,224, 3, /* 0x1c80 */ - 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, /* 0x1c90 */ - 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 2, 0, /* 0x1ca0 */ - 4, 36,164, 15, 2, 36, 12, 0, 0, 0,127, 0, 4, 36,161, 15, /* 0x1cb0 */ - 2, 36, 12, 0, 0, 0,224,255,189, 39,224,255,228,142, 7, 0, /* 0x1cc0 */ - 6, 36,228,255,229,142, 18, 8, 7, 36, 16, 0,160,175,250, 15, /* 0x1cd0 */ - 2, 36, 12, 0, 0, 0, 25, 0,224, 20, 33, 32, 64, 0,236,255, /* 0x1ce0 */ -229,142,232,255,243,142,240,255,242,142,244,255,241,142, 11, 0, /* 0x1cf0 */ -133, 16, 35, 64,133, 0, 33,184,232, 2, 33, 48,160, 2, 0, 0, /* 0x1d00 */ -168,140, 8, 0,132, 36, 4, 0,169,140,248,255,198, 36,248,255, /* 0x1d10 */ -136,172, 8, 0,165, 36,249,255,192, 28,252,255,137,172, 0, 0, /* 0x1d20 */ -200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, 64, 0, 4, 0, /* 0x1d30 */ -197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248,192, 0,255,255, /* 0x1d40 */ - 0, 16, 0, 0, 0, 0,220,255,245,142,218,255, 17, 4, 33,176, /* 0x1d50 */ -224, 3,116,109,112, 47,109,105,112,115,101,108, 46,114, 51, 48, /* 0x1d60 */ - 48, 48, 45,108,105,110,117,120, 46,101,108,102, 45,101,110,116, /* 0x1d70 */ -114,121, 46, 98,105,110, 58, 32, 32, 32, 32, 32,102,105,108,101, /* 0x1d80 */ - 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,108,105, /* 0x1d90 */ -116,116,108,101,109,105,112,115, 10, 10, 83,101, 99,116,105,111, /* 0x1da0 */ -110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, /* 0x1db0 */ - 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */ - 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, /* 0x1dd0 */ - 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108, /* 0x1de0 */ -103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, /* 0x1df0 */ - 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1e00 */ - 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1e10 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e20 */ - 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1e30 */ - 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1e40 */ - 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 50, 69, 32, 32, 32, /* 0x1e50 */ - 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 49, 56, 32, 32, /* 0x1e60 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, /* 0x1e80 */ - 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1e90 */ - 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ea0 */ - 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1eb0 */ - 48, 48, 48, 48, 48, 49,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1ec0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1ed0 */ - 48, 48, 48, 50, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1ee0 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1ef0 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, /* 0x1f00 */ - 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x1f10 */ - 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f20 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 53, 99, /* 0x1f30 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1f40 */ - 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1f50 */ - 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, /* 0x1f60 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 99, 32, 32, 48, 48, /* 0x1f70 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f80 */ - 32, 32, 48, 48, 48, 48, 48, 54, 49, 48, 32, 32, 50, 42, 42, 48, /* 0x1f90 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1fa0 */ - 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x1fb0 */ - 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, /* 0x1fc0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1fd0 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 57, 99, 32, 32, 50, /* 0x1fe0 */ - 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1ff0 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, /* 0x2000 */ - 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97, /* 0x2010 */ -100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2020 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 49, 55, 52, /* 0x2030 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x2040 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, /* 0x2050 */ - 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x2060 */ - 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2070 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2080 */ - 99, 52, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2090 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x20a0 */ - 56, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, /* 0x20b0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x20c0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x20d0 */ - 48, 48, 49, 99, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x20e0 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x20f0 */ - 10, 32, 32, 57, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x2100 */ - 32, 32, 32, 48, 48, 48, 48, 48, 48, 53,101, 32, 32, 48, 48, 48, /* 0x2110 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2120 */ - 32, 48, 48, 48, 48, 49, 99, 53, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x2130 */ - 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x2140 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 69, /* 0x2150 */ - 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2160 */ - 48, 48, 48, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2170 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2180 */ - 99, 97,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2190 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, /* 0x21a0 */ - 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, /* 0x21b0 */ - 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, /* 0x21c0 */ - 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, /* 0x21d0 */ - 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x21e0 */ - 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x21f0 */ - 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, /* 0x2200 */ - 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2210 */ - 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, /* 0x2220 */ - 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x2230 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2240 */ - 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2250 */ - 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2260 */ - 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, /* 0x2270 */ - 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, /* 0x2280 */ - 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x2290 */ - 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x22a0 */ - 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x22b0 */ -100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, /* 0x22c0 */ - 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x22d0 */ - 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x22e0 */ -100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, /* 0x22f0 */ - 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, /* 0x2300 */ - 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2310 */ -100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, /* 0x2320 */ - 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x2330 */ - 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2340 */ -100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, /* 0x2350 */ - 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2360 */ - 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2370 */ -100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, /* 0x2380 */ - 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, /* 0x2390 */ - 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x23a0 */ - 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x23b0 */ - 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x23c0 */ - 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x23d0 */ - 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x23e0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x23f0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, 48, 48, 48, /* 0x2400 */ - 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x2410 */ - 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, /* 0x2420 */ - 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2430 */ - 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2440 */ - 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2450 */ - 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2460 */ - 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, /* 0x2470 */ - 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, /* 0x2480 */ - 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95, /* 0x2490 */ -115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x24a0 */ - 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, /* 0x24b0 */ - 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x24c0 */ - 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x24d0 */ - 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x24e0 */ - 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x24f0 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, /* 0x2500 */ - 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2510 */ - 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, /* 0x2520 */ - 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2530 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, /* 0x2540 */ - 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2550 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, /* 0x2560 */ - 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2570 */ - 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, /* 0x2580 */ - 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2590 */ - 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, /* 0x25a0 */ - 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x25b0 */ - 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, /* 0x25c0 */ - 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x25d0 */ - 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, /* 0x25e0 */ - 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x25f0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x2600 */ - 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, /* 0x2610 */ - 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, /* 0x2620 */ - 65, 73, 78, 89, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2630 */ - 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, /* 0x2640 */ - 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2650 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2660 */ - 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, /* 0x2670 */ - 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2680 */ - 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 10, 82, 69, 76, 79, /* 0x2690 */ - 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x26a0 */ - 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, /* 0x26b0 */ - 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x26c0 */ - 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x26d0 */ - 48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, /* 0x26e0 */ - 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x26f0 */ - 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x2700 */ - 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, /* 0x2710 */ - 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2720 */ - 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2730 */ - 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 51, 56, 32, 82, /* 0x2740 */ - 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x2750 */ - 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2760 */ + 32, 40,164, 0, 0, 0,230,172, 0, 0,227,140, 34, 16,133, 0, /* 0x1c50 */ + 34, 24,195, 0, 8, 0,224, 3, 0, 0,227,172, 30, 0, 6, 36, /* 0x1c60 */ +255,255, 17, 4, 33, 40,224, 3, 80, 82, 79, 84, 95, 69, 88, 69, /* 0x1c70 */ + 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105, /* 0x1c80 */ +108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, 2, 36, 12, 0, /* 0x1c90 */ + 0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, 0, 0,224,255, /* 0x1ca0 */ +189, 39,224,255,228,142, 7, 0, 6, 36,228,255,229,142, 18, 8, /* 0x1cb0 */ + 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 25, 0, /* 0x1cc0 */ +224, 20, 33, 32, 64, 0,236,255,229,142,232,255,243,142,240,255, /* 0x1cd0 */ +242,142,244,255,241,142, 11, 0,133, 16, 35, 64,133, 0, 33,184, /* 0x1ce0 */ +232, 2, 33, 48,160, 2, 0, 0,168,140, 8, 0,132, 36, 4, 0, /* 0x1cf0 */ +169,140,248,255,198, 36,248,255,136,172, 8, 0,165, 36,249,255, /* 0x1d00 */ +192, 28,252,255,137,172, 0, 0,200,142, 33, 56,160, 3, 0, 0, /* 0x1d10 */ +168,175, 33, 48, 64, 0, 4, 0,197,142, 12, 0,196, 38, 8, 0, /* 0x1d20 */ +224, 2, 33,248,192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255, /* 0x1d30 */ +245,142,218,255, 17, 4, 33,176,224, 3,116,109,112, 47,109,105, /* 0x1d40 */ +112,115,101,108, 46,114, 51, 48, 48, 48, 45,108,105,110,117,120, /* 0x1d50 */ + 46,101,108,102, 45,101,110,116,114,121, 46, 98,105,110, 58, 32, /* 0x1d60 */ + 32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97,116, 32, /* 0x1d70 */ +101,108,102, 51, 50, 45,108,105,116,116,108,101,109,105,112,115, /* 0x1d80 */ + 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, /* 0x1d90 */ + 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105, /* 0x1da0 */ +122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, /* 0x1db0 */ + 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, /* 0x1dc0 */ + 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103, /* 0x1dd0 */ +115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, /* 0x1de0 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, /* 0x1df0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e00 */ + 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, /* 0x1e10 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1e20 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, /* 0x1e30 */ + 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1e40 */ + 48, 48, 48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e50 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e60 */ + 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1e70 */ + 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1e80 */ + 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, /* 0x1e90 */ + 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, /* 0x1ea0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1eb0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, 32, 32, /* 0x1ec0 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1ed0 */ + 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1ee0 */ + 32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, /* 0x1ef0 */ + 32, 32, 48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, /* 0x1f00 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1f10 */ + 48, 48, 48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1f20 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1f30 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, /* 0x1f40 */ + 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1f50 */ + 48, 48, 56, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1f60 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, /* 0x1f70 */ + 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1f80 */ + 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, /* 0x1f90 */ + 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, /* 0x1fa0 */ + 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1fc0 */ + 48, 48, 54, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1fd0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1fe0 */ + 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, /* 0x1ff0 */ + 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, /* 0x2000 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2010 */ + 48, 48, 48, 48, 49, 49, 55, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x2020 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x2030 */ + 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2040 */ + 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, /* 0x2050 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2060 */ + 48, 32, 32, 48, 48, 48, 48, 49, 99, 52, 99, 32, 32, 50, 42, 42, /* 0x2070 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x2080 */ + 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, /* 0x2090 */ + 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, /* 0x20a0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x20b0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, 48, 32, 32, /* 0x20c0 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x20d0 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, /* 0x20e0 */ + 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x20f0 */ + 48, 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2100 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, /* 0x2110 */ + 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2120 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, /* 0x2130 */ + 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x2140 */ + 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2150 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2160 */ + 49, 99, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2170 */ + 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x2180 */ + 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, /* 0x2190 */ + 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 52, /* 0x21a0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x21b0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 57, 54, 32, 32, /* 0x21c0 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x21d0 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, /* 0x21e0 */ + 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x21f0 */ +108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x2200 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, /* 0x2210 */ + 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2220 */ + 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x2230 */ + 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, /* 0x2240 */ + 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2250 */ + 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2260 */ + 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, /* 0x2270 */ + 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, /* 0x2280 */ + 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, /* 0x2290 */ + 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x22a0 */ + 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x22b0 */ + 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x22c0 */ +108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, /* 0x22d0 */ + 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, /* 0x22e0 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x22f0 */ + 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2300 */ + 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, /* 0x2310 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2320 */ + 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2330 */ + 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, /* 0x2340 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2350 */ + 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2360 */ + 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, /* 0x2370 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2380 */ + 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2390 */ + 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, /* 0x23a0 */ + 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x23b0 */ + 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x23c0 */ + 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x23d0 */ + 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x23e0 */ + 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, /* 0x23f0 */ + 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x2400 */ + 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x2410 */ + 48, 48, 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, /* 0x2420 */ + 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x2430 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, /* 0x2440 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2450 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, /* 0x2460 */ + 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x2470 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x2480 */ + 48, 48, 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2490 */ + 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x24a0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, /* 0x24b0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x24c0 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x24d0 */ + 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, /* 0x24e0 */ + 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, /* 0x24f0 */ + 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, /* 0x2500 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2510 */ + 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, /* 0x2520 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2530 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2540 */ + 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, /* 0x2550 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x2560 */ + 77, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, /* 0x2570 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, /* 0x2580 */ + 77, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, /* 0x2590 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x25a0 */ + 85, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, /* 0x25b0 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x25c0 */ + 67, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, /* 0x25d0 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, /* 0x25e0 */ + 85, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, /* 0x25f0 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x2600 */ + 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, /* 0x2610 */ + 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, /* 0x2620 */ + 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2630 */ + 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x2640 */ + 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2650 */ + 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2660 */ + 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, /* 0x2670 */ + 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x2680 */ + 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, /* 0x2690 */ + 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x26a0 */ + 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, /* 0x26b0 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x26c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x26d0 */ + 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, /* 0x26e0 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x26f0 */ + 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2700 */ + 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, /* 0x2710 */ + 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x2720 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2730 */ + 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 77, /* 0x2740 */ + 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2750 */ + 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2760 */ + 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2770 */ + 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, /* 0x2780 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2790 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x27a0 */ + 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, /* 0x27b0 */ + 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x27c0 */ + 10 /* 0x27d0 */ }; diff --git a/src/stub/src/arch/mips/mipsel.r3000/bits.ash b/src/stub/src/arch/mips/mipsel.r3000/bits.ash index 35e6ef05..300bc9c3 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/bits.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/bits.ash @@ -42,7 +42,7 @@ ;// register defines ;////////////////////////////////////// -#if 1 +#if defined(PS1) /*{*/ #define tmp at #define dst t0 @@ -62,8 +62,25 @@ #define m_off t7 #define m_pos t7 -#else +#elif defined(_TARGET_LINUX_) /*}{*/ +#define tmp at +/* decompress(src, src_len, dst, &dst_len, method); */ +#define src a0 +#define dst a2 + +#define src_ilen src +#define bb t1 +#define ilen t2 +#define last_m_off t3 +#define m_len t4 +#define bc t5 + +#define var t6 +#define m_off t7 +#define m_pos t7 + +#else /*}{*/ .print "\nwarning redefined src / dst\n" #define tmp v1 @@ -85,7 +102,7 @@ #define m_off t7 #define m_pos t7 -#endif +#endif /*}*/ ;////////////////////////////////////// diff --git a/src/stub/src/mipsel.r3000-linux.elf-entry.S b/src/stub/src/mipsel.r3000-linux.elf-entry.S index e8599acd..f46ca4af 100644 --- a/src/stub/src/mipsel.r3000-linux.elf-entry.S +++ b/src/stub/src/mipsel.r3000-linux.elf-entry.S @@ -93,7 +93,16 @@ _start: .globl _start 0: /* Returns 0 on success; non-zero on failure. */ -decompressor: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method) +decompressor: // (uchar const *lxsrc, size_t lxsrclen, uchar *lxdst, u32 &lxdstlen, uint method) +#define lxsrc a0 +#define lxsrclen a1 +#define lxdst a2 +#define lxdstlen a3 + +#undef src /* bits.ash */ +#define src lxsrc +#undef dst /* bits.ash */ +#define dst lxdst #include "arch/mips/mipsel.r3000/nrv2e_d.ash" section NRV2E @@ -108,10 +117,6 @@ decompressor: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint me nrv2b eof section LZMA_ELF00 # (a0=lxsrc, a1=lxsrclen, a2=lxdst, a3= &lxdstlen) -#define lxsrc a0 -#define lxsrclen a1 -#define lxdst a2 -#define lxdstlen a3 /* LzmaDecode(a0=CLzmaDecoderState *, a1=src, a2=srclen, a3=*psrcdone, @@ -198,21 +203,19 @@ lzma_decode: section LZMA_DEC30 break // FIXME - section NRV_TAIL - // empty + section NRV_HEAD + add lxsrclen,lxsrclen,lxsrc // src_EOF + sw lxdst,(lxdstlen) // original lxdst in &lxdstlen -.macro pop reg - lw \reg,0(sp) - addiu sp,sp,4 -.endm + section NRV_TAIL +eof: + lw v1,(lxdstlen) // original lxdst + sub v0,lxsrc,lxsrclen // new_src - src_EOF; // return 0: good; else: bad + sub v1,lxdst,v1 // actual length generated + jr ra + sw v1,(lxdstlen) section ELFMAINY -eof: - pop t0; sub v0,v0,t0 // src -= eof; // return 0: good; else: bad - pop t0; sub s0,s0,t0 // dst -= original_dst - pop t0; sw s0,(t0) // actual length used t0 dst - pop t0; jr t0; nop - msg_SELinux: addiu a2,zero,L71 - L70 // length bal L72 diff --git a/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump b/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump index dd7ad8b4..9cdf6ce4 100644 --- a/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump +++ b/src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump @@ -10,11 +10,12 @@ Idx Name Size VMA LMA File off Algn Flags 5 LZMA_DEC20 00000ad8 00000000 00000000 0000069c 2**0 CONTENTS, READONLY 6 LZMA_DEC10 00000ad8 00000000 00000000 00001174 2**0 CONTENTS, READONLY 7 LZMA_DEC30 00000004 00000000 00000000 00001c4c 2**0 CONTENTS, READONLY - 8 NRV_TAIL 00000000 00000000 00000000 00001c50 2**0 CONTENTS, READONLY - 9 ELFMAINY 0000005e 00000000 00000000 00001c50 2**0 CONTENTS, RELOC, READONLY - 10 ELFMAINZ 000000b4 00000000 00000000 00001cae 2**0 CONTENTS, READONLY + 8 NRV_HEAD 00000008 00000000 00000000 00001c50 2**0 CONTENTS, READONLY + 9 NRV_TAIL 00000014 00000000 00000000 00001c58 2**0 CONTENTS, READONLY + 10 ELFMAINY 0000002a 00000000 00000000 00001c6c 2**0 CONTENTS, RELOC, READONLY + 11 ELFMAINZ 000000b4 00000000 00000000 00001c96 2**0 CONTENTS, READONLY SYMBOL TABLE: -00000000 l d ELFMAINY 00000000 ELFMAINY +00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d ELFMAINZ 00000000 ELFMAINZ 00000000 l d ELFMAINX 00000000 ELFMAINX 00000000 l d NRV2E 00000000 NRV2E @@ -24,7 +25,8 @@ SYMBOL TABLE: 00000000 l d LZMA_DEC20 00000000 LZMA_DEC20 00000000 l d LZMA_DEC10 00000000 LZMA_DEC10 00000000 l d LZMA_DEC30 00000000 LZMA_DEC30 -00000000 l d NRV_TAIL 00000000 NRV_TAIL +00000000 l d NRV_HEAD 00000000 NRV_HEAD +00000000 l d ELFMAINY 00000000 ELFMAINY 00000000 *UND* 00000000 ADRM 00000000 *UND* 00000000 LENM 00000000 *UND* 00000000 ADRU @@ -45,16 +47,16 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE -0000011c R_MIPS_PC16 ELFMAINY +0000011c R_MIPS_PC16 NRV_TAIL RELOCATION RECORDS FOR [NRV2D]: OFFSET TYPE VALUE -0000011c R_MIPS_PC16 ELFMAINY +0000011c R_MIPS_PC16 NRV_TAIL RELOCATION RECORDS FOR [NRV2B]: OFFSET TYPE VALUE -000000c4 R_MIPS_PC16 ELFMAINY +000000c4 R_MIPS_PC16 NRV_TAIL RELOCATION RECORDS FOR [ELFMAINY]: OFFSET TYPE VALUE -00000038 R_MIPS_PC16 ELFMAINZ +00000004 R_MIPS_PC16 ELFMAINZ