mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
PackDylibAMD64 (Mac OS X shared library on x86_64)
This commit is contained in:
parent
77377195aa
commit
f550111400
|
@ -70,6 +70,8 @@ static const
|
|||
|
||||
static const
|
||||
#include "stub/powerpc-darwin.dylib-entry.h"
|
||||
static const
|
||||
#include "stub/amd64-darwin.dylib-entry.h"
|
||||
|
||||
static const unsigned lc_segment[2] = {
|
||||
0x1, 0x19
|
||||
|
@ -77,6 +79,12 @@ static const unsigned lc_segment[2] = {
|
|||
//Mach_segment_command::LC_SEGMENT_64
|
||||
};
|
||||
|
||||
static const unsigned lc_routines[2] = {
|
||||
0x11, 0x1a
|
||||
//Mach_segment_command::LC_ROUTINES,
|
||||
//Mach_segment_command::LC_ROUTINES_64
|
||||
};
|
||||
|
||||
template <class T>
|
||||
PackMachBase<T>::PackMachBase(InputFile *f, unsigned cputype, unsigned filetype,
|
||||
unsigned flavor, unsigned count, unsigned size) :
|
||||
|
@ -101,6 +109,11 @@ PackDylibI386::PackDylibI386(InputFile *f) : super(f)
|
|||
my_filetype = Mach_header::MH_DYLIB;
|
||||
}
|
||||
|
||||
PackDylibAMD64::PackDylibAMD64(InputFile *f) : super(f)
|
||||
{
|
||||
my_filetype = Mach_header::MH_DYLIB;
|
||||
}
|
||||
|
||||
PackDylibPPC32::PackDylibPPC32(InputFile *f) : super(f)
|
||||
{
|
||||
my_filetype = Mach_header::MH_DYLIB;
|
||||
|
@ -386,6 +399,14 @@ PackDylibI386::buildLoader(const Filter *ft)
|
|||
0, 0, ft );
|
||||
}
|
||||
|
||||
void
|
||||
PackDylibAMD64::buildLoader(const Filter *ft)
|
||||
{
|
||||
buildMachLoader(
|
||||
stub_amd64_darwin_dylib_entry, sizeof(stub_amd64_darwin_dylib_entry),
|
||||
0, 0, ft );
|
||||
}
|
||||
|
||||
void
|
||||
PackDylibPPC32::buildLoader(const Filter *ft)
|
||||
{
|
||||
|
@ -635,6 +656,11 @@ void PackDylibI386::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
|||
pack4dylib(fo, ft, threado.state.eip);
|
||||
}
|
||||
|
||||
void PackDylibAMD64::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
||||
{
|
||||
pack4dylib(fo, ft, threado.state.rip);
|
||||
}
|
||||
|
||||
void PackDylibPPC32::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
||||
{
|
||||
pack4dylib(fo, ft, threado.state.srr0);
|
||||
|
@ -719,6 +745,29 @@ void PackDylibI386::pack3(OutputFile *fo, Filter &ft) // append loader
|
|||
sz_mach_headers = save_sz_mach_headers;
|
||||
}
|
||||
|
||||
void PackDylibAMD64::pack3(OutputFile *fo, Filter &ft) // append loader
|
||||
{
|
||||
TE32 disp; // FIXME: 64-bit ???
|
||||
unsigned const zero = 0;
|
||||
unsigned len = fo->getBytesWritten();
|
||||
fo->write(&zero, 3& (0u-len));
|
||||
len += (3& (0u-len)) + 4*sizeof(disp);
|
||||
|
||||
disp = prev_init_address;
|
||||
fo->write(&disp, sizeof(disp)); // user .init_address
|
||||
|
||||
disp = sizeof(mhdro) + mhdro.sizeofcmds + sizeof(l_info) + sizeof(p_info);
|
||||
fo->write(&disp, sizeof(disp)); // src offset(compressed __TEXT)
|
||||
|
||||
disp = len - disp - 3*sizeof(disp);
|
||||
fo->write(&disp, sizeof(disp)); // length(compressed __TEXT)
|
||||
|
||||
unsigned const save_sz_mach_headers(sz_mach_headers);
|
||||
sz_mach_headers = 0;
|
||||
super::pack3(fo, ft);
|
||||
sz_mach_headers = save_sz_mach_headers;
|
||||
}
|
||||
|
||||
void PackDylibPPC32::pack3(OutputFile *fo, Filter &ft) // append loader
|
||||
{
|
||||
TE32 disp;
|
||||
|
@ -1069,6 +1118,7 @@ template <class T>
|
|||
bool PackMachBase<T>::canPack()
|
||||
{
|
||||
unsigned const lc_seg = lc_segment[sizeof(Addr)>>3];
|
||||
unsigned const lc_rout = lc_routines[sizeof(Addr)>>3];
|
||||
fi->seek(0, SEEK_SET);
|
||||
fi->readx(&mhdri, sizeof(mhdri));
|
||||
|
||||
|
@ -1086,10 +1136,10 @@ bool PackMachBase<T>::canPack()
|
|||
unsigned char const *ptr = (unsigned char const *)rawmseg;
|
||||
for (unsigned j= 0; j < ncmds; ++j) {
|
||||
msegcmd[j] = *(Mach_segment_command const *)ptr;
|
||||
if (((Mach_segment_command const *)ptr)->cmd ==
|
||||
Mach_segment_command::LC_ROUTINES) {
|
||||
if (((Mach_segment_command const *)ptr)->cmd == lc_rout) {
|
||||
o_routines_cmd = (const char *)ptr - (const char *)rawmseg;
|
||||
prev_init_address = ((Mach_routines_command const *)ptr)->init_address;
|
||||
prev_init_address =
|
||||
((Mach_routines_command const *)ptr)->init_address;
|
||||
}
|
||||
ptr += (unsigned) ((const Mach_segment_command *)ptr)->cmdsize;
|
||||
}
|
||||
|
@ -1202,13 +1252,13 @@ void PackMachFat::pack(OutputFile *fo)
|
|||
packer.updatePackHeader();
|
||||
packer.pack(fo);
|
||||
}
|
||||
//else if (hdr.filetype==Mach_header::MH_DYLIB) {
|
||||
// PackDylibAMD64 packer(fi);
|
||||
// packer.initPackHeader();
|
||||
// packer.canPack();
|
||||
// packer.updatePackHeader();
|
||||
// packer.pack(fo);
|
||||
//}
|
||||
else if (hdr.filetype==Mach_header::MH_DYLIB) {
|
||||
PackDylibAMD64 packer(fi);
|
||||
packer.initPackHeader();
|
||||
packer.canPack();
|
||||
packer.updatePackHeader();
|
||||
packer.pack(fo);
|
||||
}
|
||||
} break;
|
||||
case PackMachFat::CPU_TYPE_POWERPC: {
|
||||
typedef N_Mach::Mach_header<MachClass_BE32::MachITypes> Mach_header;
|
||||
|
@ -1333,8 +1383,8 @@ bool PackMachFat::canPack()
|
|||
case PackMachFat::CPU_TYPE_X86_64: {
|
||||
PackMachAMD64 packer(fi);
|
||||
if (!packer.canPack()) {
|
||||
//PackDylibI386 pack2r(fi);
|
||||
//if (!pack2r.canPack())
|
||||
PackDylibI386 pack2r(fi);
|
||||
if (!pack2r.canPack())
|
||||
return false;
|
||||
}
|
||||
} break;
|
||||
|
|
16
src/p_mach.h
16
src/p_mach.h
|
@ -720,6 +720,22 @@ protected:
|
|||
Mach_thread_command threado;
|
||||
};
|
||||
|
||||
class PackDylibAMD64 : public PackMachAMD64
|
||||
{
|
||||
typedef PackMachAMD64 super;
|
||||
|
||||
public:
|
||||
PackDylibAMD64(InputFile *f);
|
||||
|
||||
virtual int getFormat() const { return UPX_F_DYLIB_AMD64; }
|
||||
virtual const char *getName() const { return "Dylib/AMD64"; }
|
||||
virtual const char *getFullName(const options_t *) const { return "AMD64-darwin.dylib"; }
|
||||
protected:
|
||||
virtual void pack3(OutputFile *, Filter &); // append loader
|
||||
virtual void pack4(OutputFile *, Filter &); // append PackHeader
|
||||
virtual void buildLoader(const Filter *ft);
|
||||
};
|
||||
|
||||
class PackMachARMEL : public PackMachBase<MachClass_LE32>
|
||||
{
|
||||
typedef PackMachBase<MachClass_LE32> super;
|
||||
|
|
|
@ -285,6 +285,8 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio
|
|||
return p;
|
||||
if ((p = func(new PackDylibPPC32(f), user)) != NULL)
|
||||
return p;
|
||||
if ((p = func(new PackDylibAMD64(f), user)) != NULL)
|
||||
return p;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ endif
|
|||
# ************************************************************************/
|
||||
|
||||
ifndef STUBS
|
||||
STUBS += amd64-darwin.dylib-entry.h
|
||||
STUBS += amd64-darwin.macho-entry.h
|
||||
STUBS += amd64-darwin.macho-fold.h
|
||||
STUBS += amd64-linux.elf-entry.h
|
||||
|
@ -255,6 +256,21 @@ tc.arch-i386.gcc = i386-linux-gcc-3.4.6 -m32 -march=i386 -nostdinc -MMD -MT
|
|||
tc.arch-i386.djasm = djasm
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // amd64-darwin.dylib
|
||||
# ************************************************************************/
|
||||
|
||||
# info: we use the tc settings from amd64-linux.elf
|
||||
amd64-darwin.dylib%.h : tc_list = amd64-linux.elf default
|
||||
amd64-darwin.dylib%.h : tc_bfdname = elf64-x86-64
|
||||
|
||||
## All code is in dylib-entry. There is no dylib-fold, no dylib-main.
|
||||
amd64-darwin.dylib-entry.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c $< -o tmp/$T.bin
|
||||
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // amd64-darwin.macho
|
||||
# ************************************************************************/
|
||||
|
|
655
src/stub/amd64-darwin.dylib-entry.h
Normal file
655
src/stub/amd64-darwin.dylib-entry.h
Normal file
|
@ -0,0 +1,655 @@
|
|||
/* amd64-darwin.dylib-entry.h
|
||||
created from amd64-darwin.dylib-entry.bin, 9853 (0x267d) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2010 Laszlo Molnar
|
||||
Copyright (C) 2000-2010 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_SIZE 9853
|
||||
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_ADLER32 0xf748f292
|
||||
#define STUB_AMD64_DARWIN_DYLIB_ENTRY_CRC32 0xfe1c1381
|
||||
|
||||
unsigned char stub_amd64_darwin_dylib_entry[9853] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,152, 24, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 22, 0, 19, 0,
|
||||
/* 0x0040 */ 204, 80, 85, 83,232, 0, 0, 0, 0, 85, 83, 81, 82, 72, 1,254,
|
||||
/* 0x0050 */ 86, 72,137,254, 72,137,215, 49,219, 49,201, 72,131,205,255,232,
|
||||
/* 0x0060 */ 80, 0, 0, 0, 1,219,116, 2,243,195,139, 30, 72,131,238,252,
|
||||
/* 0x0070 */ 17,219,138, 22,243,195, 72,141, 4, 47,131,249, 5,138, 16,118,
|
||||
/* 0x0080 */ 33, 72,131,253,252,119, 27,131,233, 4,139, 16, 72,131,192, 4,
|
||||
/* 0x0090 */ 131,233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,138, 16,
|
||||
/* 0x00a0 */ 116, 16, 72,255,192,136, 23,131,233, 1,138, 16, 72,141,127, 1,
|
||||
/* 0x00b0 */ 117,240,243,195,252, 65, 91, 65,128,248, 8,116, 13,233,172, 0,
|
||||
/* 0x00c0 */ 0, 0, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, 10,
|
||||
/* 0x00d0 */ 139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1,235,
|
||||
/* 0x00e0 */ 7,255,200, 65,255,211, 17,192, 65,255,211, 17,192, 1,219,117,
|
||||
/* 0x00f0 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,115,228,131,232, 3,
|
||||
/* 0x0100 */ 114, 29,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240,255,
|
||||
/* 0x0110 */ 15,132, 0, 0, 0, 0,209,248, 72, 99,232,114, 56,235, 14, 1,
|
||||
/* 0x0120 */ 219,117, 8,139, 30, 72,131,238,252, 17,219,114, 40,255,193, 1,
|
||||
/* 0x0130 */ 219,117, 8,139, 30, 72,131,238,252, 17,219,114, 24, 65,255,211,
|
||||
/* 0x0140 */ 17,201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,237,
|
||||
/* 0x0150 */ 131,193, 2,235, 5, 65,255,211, 17,201, 72,129,253, 0,251,255,
|
||||
/* 0x0160 */ 255,131,209, 2,232, 0, 0, 0, 0,233, 92,255,255,255, 65,128,
|
||||
/* 0x0170 */ 248, 5,116, 13,233,147, 0, 0, 0, 72,255,198,136, 23, 72,255,
|
||||
/* 0x0180 */ 199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138,
|
||||
/* 0x0190 */ 22,114,230,141, 65, 1,235, 7,255,200, 65,255,211, 17,192, 65,
|
||||
/* 0x01a0 */ 255,211, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,
|
||||
/* 0x01b0 */ 138, 22,115,228,131,232, 3,114, 27,193,224, 8, 15,182,210, 9,
|
||||
/* 0x01c0 */ 208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209,248, 72,
|
||||
/* 0x01d0 */ 99,232,235, 3, 65,255,211, 17,201, 65,255,211, 17,201,117, 24,
|
||||
/* 0x01e0 */ 255,193, 65,255,211, 17,201, 1,219,117, 8,139, 30, 72,131,238,
|
||||
/* 0x01f0 */ 252, 17,219,115,237,131,193, 2, 72,129,253, 0,251,255,255,131,
|
||||
/* 0x0200 */ 209, 1,232, 0, 0, 0, 0,233,117,255,255,255, 65,128,248, 2,
|
||||
/* 0x0210 */ 116, 13,233,133, 0, 0, 0, 72,255,198,136, 23, 72,255,199,138,
|
||||
/* 0x0220 */ 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,
|
||||
/* 0x0230 */ 230,141, 65, 1, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,
|
||||
/* 0x0240 */ 131,238,252, 17,219,138, 22,115,235,131,232, 3,114, 23,193,224,
|
||||
/* 0x0250 */ 8, 15,182,210, 9,208, 72,255,198,131,240,255, 15,132, 0, 0,
|
||||
/* 0x0260 */ 0, 0, 72, 99,232,141, 65, 1, 65,255,211, 17,201, 65,255,211,
|
||||
/* 0x0270 */ 17,201,117, 24,137,193,131,192, 2, 65,255,211, 17,201, 1,219,
|
||||
/* 0x0280 */ 117, 8,139, 30, 72,131,238,252, 17,219,115,237, 72,129,253, 0,
|
||||
/* 0x0290 */ 243,255,255, 17,193,232, 0, 0, 0, 0,235,131, 65,128,248, 14,
|
||||
/* 0x02a0 */ 15,133, 0, 0, 0, 0, 85, 72,137,229, 68,139, 9, 73,137,208,
|
||||
/* 0x02b0 */ 72,137,242, 72,141,119, 2, 86,138, 7,255,202,136,193, 36, 7,
|
||||
/* 0x02c0 */ 192,233, 3, 72,199,195, 0,253,255,255, 72,211,227,136,193, 72,
|
||||
/* 0x02d0 */ 141,156, 92,136,241,255,255, 72,131,227,192,106, 0, 72, 57,220,
|
||||
/* 0x02e0 */ 117,249, 83, 72,141,123, 8,138, 78,255,255,202,136, 71, 2,136,
|
||||
/* 0x02f0 */ 200,192,233, 4,136, 79, 1, 36, 15,136, 7, 72,141, 79,252, 80,
|
||||
/* 0x0300 */ 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, 65,190, 1, 0, 0,
|
||||
/* 0x0310 */ 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72,137, 76, 36,240, 72,
|
||||
/* 0x0320 */ 137, 68, 36,216,184, 1, 0, 0, 0, 72,137,116, 36,248, 76,137,
|
||||
/* 0x0330 */ 68, 36,232,137,195, 68,137, 76, 36,228, 15,182, 79, 2,211,227,
|
||||
/* 0x0340 */ 137,217, 72,139, 92, 36, 56,255,201,137, 76, 36,212, 15,182, 79,
|
||||
/* 0x0350 */ 1,211,224, 72,139, 76, 36,240,255,200,137, 68, 36,208, 15,182,
|
||||
/* 0x0360 */ 7,199, 1, 0, 0, 0, 0,199, 68, 36,200, 0, 0, 0, 0,199,
|
||||
/* 0x0370 */ 68, 36,196, 1, 0, 0, 0,199, 68, 36,192, 1, 0, 0, 0,199,
|
||||
/* 0x0380 */ 68, 36,188, 1, 0, 0, 0,199, 3, 0, 0, 0, 0,137, 68, 36,
|
||||
/* 0x0390 */ 204, 15,182, 79, 1, 1,193,184, 0, 3, 0, 0,211,224, 49,201,
|
||||
/* 0x03a0 */ 141,184, 54, 7, 0, 0, 65, 57,255,115, 19, 72,139, 92, 36,216,
|
||||
/* 0x03b0 */ 137,200,255,193, 57,249,102,199, 4, 67, 0, 4,235,235, 72,139,
|
||||
/* 0x03c0 */ 124, 36,248,137,208, 69, 49,210, 65,131,203,255, 49,210, 73,137,
|
||||
/* 0x03d0 */ 252, 73, 1,196, 76, 57,231, 15,132,239, 8, 0, 0, 15,182, 7,
|
||||
/* 0x03e0 */ 65,193,226, 8,255,194, 72,255,199, 65, 9,194,131,250, 4,126,
|
||||
/* 0x03f0 */ 227, 68, 59,124, 36,228, 15,131,218, 8, 0, 0,139, 68, 36,212,
|
||||
/* 0x0400 */ 72, 99, 92, 36,200, 72,139, 84, 36,216, 68, 33,248,137, 68, 36,
|
||||
/* 0x0410 */ 184, 72, 99,108, 36,184, 72,137,216, 72,193,224, 4, 72, 1,232,
|
||||
/* 0x0420 */ 65,129,251,255,255,255, 0, 76,141, 12, 66,119, 26, 76, 57,231,
|
||||
/* 0x0430 */ 15,132,150, 8, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227,
|
||||
/* 0x0440 */ 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193,232,
|
||||
/* 0x0450 */ 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,197, 1, 0, 0,
|
||||
/* 0x0460 */ 65,137,195,184, 0, 8, 0, 0, 72,139, 92, 36,216, 41,200, 15,
|
||||
/* 0x0470 */ 182, 76, 36,204,190, 1, 0, 0, 0,193,248, 5,141, 4, 2, 65,
|
||||
/* 0x0480 */ 15,182,213,102, 65,137, 1,139, 68, 36,208, 68, 33,248,211,224,
|
||||
/* 0x0490 */ 185, 8, 0, 0, 0, 43, 76, 36,204,211,250, 1,208,105,192, 0,
|
||||
/* 0x04a0 */ 3, 0, 0,131,124, 36,200, 6,137,192, 76,141,140, 67,108, 14,
|
||||
/* 0x04b0 */ 0, 0, 15,142,184, 0, 0, 0, 72,139, 84, 36,232, 68,137,248,
|
||||
/* 0x04c0 */ 68, 41,240, 15,182, 44, 2, 1,237, 72, 99,214,137,235,129,227,
|
||||
/* 0x04d0 */ 0, 1, 0, 0, 65,129,251,255,255,255, 0, 72, 99,195, 73,141,
|
||||
/* 0x04e0 */ 4, 65, 76,141, 4, 80,119, 26, 76, 57,231, 15,132,219, 7, 0,
|
||||
/* 0x04f0 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65,
|
||||
/* 0x0500 */ 9,194, 65, 15,183,144, 0, 2, 0, 0, 68,137,216,193,232, 11,
|
||||
/* 0x0510 */ 15,183,202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0,
|
||||
/* 0x0520 */ 8, 0, 0, 1,246, 41,200,193,248, 5,133,219,141, 4, 2,102,
|
||||
/* 0x0530 */ 65,137,128, 0, 2, 0, 0,116, 33,235, 45, 65, 41,195, 65, 41,
|
||||
/* 0x0540 */ 194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,194,133,219,
|
||||
/* 0x0550 */ 102, 65,137,144, 0, 2, 0, 0,116, 14,129,254,255, 0, 0, 0,
|
||||
/* 0x0560 */ 15,142, 97,255,255,255,235,120,129,254,255, 0, 0, 0,127,112,
|
||||
/* 0x0570 */ 72, 99,198, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, 26,
|
||||
/* 0x0580 */ 76, 57,231, 15,132, 67, 7, 0, 0, 15,182, 7, 65,193,226, 8,
|
||||
/* 0x0590 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,137,
|
||||
/* 0x05a0 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, 65,
|
||||
/* 0x05b0 */ 137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,141, 4,
|
||||
/* 0x05c0 */ 2,102, 65,137, 0,235,161, 65, 41,195, 65, 41,194,137,208,102,
|
||||
/* 0x05d0 */ 193,232, 5,141,116, 54, 1,102, 41,194,102, 65,137, 16,235,136,
|
||||
/* 0x05e0 */ 72,139, 76, 36,232, 68,137,248, 65,255,199, 65,137,245, 64,136,
|
||||
/* 0x05f0 */ 52, 1,131,124, 36,200, 3,127, 13,199, 68, 36,200, 0, 0, 0,
|
||||
/* 0x0600 */ 0,233,166, 6, 0, 0,139, 84, 36,200,139, 68, 36,200,131,234,
|
||||
/* 0x0610 */ 3,131,232, 6,131,124, 36,200, 9, 15, 79,208,137, 84, 36,200,
|
||||
/* 0x0620 */ 233,135, 6, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232,
|
||||
/* 0x0630 */ 5,102, 41,194, 72,139, 68, 36,216, 65,129,251,255,255,255, 0,
|
||||
/* 0x0640 */ 102, 65,137, 17, 72,141, 52, 88,119, 26, 76, 57,231, 15,132,121,
|
||||
/* 0x0650 */ 6, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
||||
/* 0x0660 */ 199, 65, 9,194, 15,183,150,128, 1, 0, 0, 68,137,216,193,232,
|
||||
/* 0x0670 */ 11, 15,183,202, 15,175,193, 65, 57,194,115, 78, 65,137,195,184,
|
||||
/* 0x0680 */ 0, 8, 0, 0, 76,139, 76, 36,216, 41,200,139, 76, 36,196, 68,
|
||||
/* 0x0690 */ 137,116, 36,196,193,248, 5,141, 4, 2,139, 84, 36,192,137, 76,
|
||||
/* 0x06a0 */ 36,192,102,137,134,128, 1, 0, 0, 49,192,131,124, 36,200, 6,
|
||||
/* 0x06b0 */ 137, 84, 36,188, 15,159,192, 73,129,193,100, 6, 0, 0,141, 4,
|
||||
/* 0x06c0 */ 64,137, 68, 36,200,233, 84, 2, 0, 0, 65, 41,195, 65, 41,194,
|
||||
/* 0x06d0 */ 137,208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,
|
||||
/* 0x06e0 */ 102,137,150,128, 1, 0, 0,119, 26, 76, 57,231, 15,132,218, 5,
|
||||
/* 0x06f0 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199,
|
||||
/* 0x0700 */ 65, 9,194, 15,183,150,152, 1, 0, 0, 68,137,216,193,232, 11,
|
||||
/* 0x0710 */ 15,183,202, 15,175,193, 65, 57,194, 15,131,208, 0, 0, 0, 65,
|
||||
/* 0x0720 */ 184, 0, 8, 0, 0, 65,137,195, 72,193,227, 5, 68,137,192, 41,
|
||||
/* 0x0730 */ 200,193,248, 5,141, 4, 2,102,137,134,152, 1, 0, 0, 72,139,
|
||||
/* 0x0740 */ 68, 36,216, 72, 1,216, 65,129,251,255,255,255, 0, 72,141, 52,
|
||||
/* 0x0750 */ 104,119, 26, 76, 57,231, 15,132,112, 5, 0, 0, 15,182, 7, 65,
|
||||
/* 0x0760 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,
|
||||
/* 0x0770 */ 224, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193,
|
||||
/* 0x0780 */ 65, 57,194,115, 79, 65, 41,200, 65,137,195, 65,193,248, 5, 69,
|
||||
/* 0x0790 */ 133,255, 66,141, 4, 2,102,137,134,224, 1, 0, 0, 15,132, 41,
|
||||
/* 0x07a0 */ 5, 0, 0, 49,192,131,124, 36,200, 6, 72,139, 92, 36,232, 15,
|
||||
/* 0x07b0 */ 159,192,141, 68, 0, 9,137, 68, 36,200, 68,137,248, 68, 41,240,
|
||||
/* 0x07c0 */ 68, 15,182, 44, 3, 68,137,248, 65,255,199, 68,136, 44, 3,233,
|
||||
/* 0x07d0 */ 216, 4, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,
|
||||
/* 0x07e0 */ 102, 41,194,102,137,150,224, 1, 0, 0,233, 17, 1, 0, 0, 65,
|
||||
/* 0x07f0 */ 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,
|
||||
/* 0x0800 */ 251,255,255,255, 0,102,137,150,152, 1, 0, 0,119, 26, 76, 57,
|
||||
/* 0x0810 */ 231, 15,132,181, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,
|
||||
/* 0x0820 */ 227, 8, 72,255,199, 65, 9,194, 15,183,150,176, 1, 0, 0, 68,
|
||||
/* 0x0830 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 32,
|
||||
/* 0x0840 */ 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2,
|
||||
/* 0x0850 */ 102,137,134,176, 1, 0, 0,139, 68, 36,196,233,152, 0, 0, 0,
|
||||
/* 0x0860 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,
|
||||
/* 0x0870 */ 129,251,255,255,255, 0,102,137,150,176, 1, 0, 0,119, 26, 76,
|
||||
/* 0x0880 */ 57,231, 15,132, 68, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65,
|
||||
/* 0x0890 */ 193,227, 8, 72,255,199, 65, 9,194, 15,183,150,200, 1, 0, 0,
|
||||
/* 0x08a0 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115,
|
||||
/* 0x08b0 */ 29, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4,
|
||||
/* 0x08c0 */ 2,102,137,134,200, 1, 0, 0,139, 68, 36,192,235, 34, 65, 41,
|
||||
/* 0x08d0 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194,139, 68, 36,
|
||||
/* 0x08e0 */ 188,102,137,150,200, 1, 0, 0,139, 84, 36,192,137, 84, 36,188,
|
||||
/* 0x08f0 */ 139, 76, 36,196,137, 76, 36,192, 68,137,116, 36,196, 65,137,198,
|
||||
/* 0x0900 */ 49,192,131,124, 36,200, 6, 76,139, 76, 36,216, 15,159,192, 73,
|
||||
/* 0x0910 */ 129,193,104, 10, 0, 0,141, 68, 64, 8,137, 68, 36,200, 65,129,
|
||||
/* 0x0920 */ 251,255,255,255, 0,119, 26, 76, 57,231, 15,132,156, 3, 0, 0,
|
||||
/* 0x0930 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,
|
||||
/* 0x0940 */ 194, 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,
|
||||
/* 0x0950 */ 193, 65, 57,194,115, 39, 65,137,195,184, 0, 8, 0, 0, 69, 49,
|
||||
/* 0x0960 */ 237, 41,200,193,248, 5,141, 4, 2,102, 65,137, 1, 72, 99, 68,
|
||||
/* 0x0970 */ 36,184, 72,193,224, 4, 77,141, 68, 1, 4,235,120, 65, 41,195,
|
||||
/* 0x0980 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255,
|
||||
/* 0x0990 */ 255,255, 0,102, 65,137, 17,119, 26, 76, 57,231, 15,132, 42, 3,
|
||||
/* 0x09a0 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199,
|
||||
/* 0x09b0 */ 65, 9,194, 65, 15,183, 81, 2, 68,137,216,193,232, 11, 15,183,
|
||||
/* 0x09c0 */ 202, 15,175,193, 65, 57,194,115, 52, 65,137,195,184, 0, 8, 0,
|
||||
/* 0x09d0 */ 0, 65,189, 8, 0, 0, 0, 41,200,193,248, 5,141, 4, 2,102,
|
||||
/* 0x09e0 */ 65,137, 65, 2, 72, 99, 68, 36,184, 72,193,224, 4, 77,141,132,
|
||||
/* 0x09f0 */ 1, 4, 1, 0, 0, 65,185, 3, 0, 0, 0,235, 39, 65, 41,195,
|
||||
/* 0x0a00 */ 65, 41,194,137,208,102,193,232, 5, 77,141,129, 4, 2, 0, 0,
|
||||
/* 0x0a10 */ 65,189, 16, 0, 0, 0,102, 41,194,102, 65,137, 81, 2, 65,185,
|
||||
/* 0x0a20 */ 8, 0, 0, 0, 68,137,203,189, 1, 0, 0, 0, 72, 99,197, 65,
|
||||
/* 0x0a30 */ 129,251,255,255,255, 0, 73,141, 52, 64,119, 26, 76, 57,231, 15,
|
||||
/* 0x0a40 */ 132,135, 2, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8,
|
||||
/* 0x0a50 */ 72,255,199, 65, 9,194, 15,183, 14, 68,137,216,193,232, 11, 15,
|
||||
/* 0x0a60 */ 183,209, 15,175,194, 65, 57,194,115, 23, 65,137,195,184, 0, 8,
|
||||
/* 0x0a70 */ 0, 0, 1,237, 41,208,193,248, 5,141, 4, 1,102,137, 6,235,
|
||||
/* 0x0a80 */ 22, 65, 41,195, 65, 41,194,137,200,102,193,232, 5,141,108, 45,
|
||||
/* 0x0a90 */ 1,102, 41,193,102,137, 14,255,203,117,145,184, 1, 0, 0, 0,
|
||||
/* 0x0aa0 */ 68,137,201,211,224, 41,197, 68, 1,237,131,124, 36,200, 3, 15,
|
||||
/* 0x0ab0 */ 143,194, 1, 0, 0,131, 68, 36,200, 7,184, 3, 0, 0, 0,131,
|
||||
/* 0x0ac0 */ 253, 4, 15, 76,197, 72,139, 92, 36,216, 65,184, 1, 0, 0, 0,
|
||||
/* 0x0ad0 */ 72,152, 72,193,224, 7, 76,141,140, 3, 96, 3, 0, 0,187, 6,
|
||||
/* 0x0ae0 */ 0, 0, 0, 73, 99,192, 65,129,251,255,255,255, 0, 73,141, 52,
|
||||
/* 0x0af0 */ 65,119, 26, 76, 57,231, 15,132,208, 1, 0, 0, 15,182, 7, 65,
|
||||
/* 0x0b00 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 22,
|
||||
/* 0x0b10 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115,
|
||||
/* 0x0b20 */ 24, 65,137,195,184, 0, 8, 0, 0, 69, 1,192, 41,200,193,248,
|
||||
/* 0x0b30 */ 5,141, 4, 2,102,137, 6,235, 23, 65, 41,195, 65, 41,194,137,
|
||||
/* 0x0b40 */ 208,102,193,232, 5, 71,141, 68, 0, 1,102, 41,194,102,137, 22,
|
||||
/* 0x0b50 */ 255,203,117,143, 65,131,232, 64, 65,131,248, 3, 69,137,198, 15,
|
||||
/* 0x0b60 */ 142, 13, 1, 0, 0, 65,131,230, 1, 68,137,192,209,248, 65,131,
|
||||
/* 0x0b70 */ 206, 2, 65,131,248, 13,141,112,255,127, 35,137,241, 72,139, 92,
|
||||
/* 0x0b80 */ 36,216, 73, 99,192, 65,211,230, 72, 1,192, 68,137,242, 72,141,
|
||||
/* 0x0b90 */ 20, 83, 72, 41,194, 76,141,138, 94, 5, 0, 0,235, 81,141,112,
|
||||
/* 0x0ba0 */ 251, 65,129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132, 25,
|
||||
/* 0x0bb0 */ 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
||||
/* 0x0bc0 */ 199, 65, 9,194, 65,209,235, 69, 1,246, 69, 57,218,114, 7, 69,
|
||||
/* 0x0bd0 */ 41,218, 65,131,206, 1,255,206,117,199, 76,139, 76, 36,216, 65,
|
||||
/* 0x0be0 */ 193,230, 4,190, 4, 0, 0, 0, 73,129,193, 68, 6, 0, 0, 65,
|
||||
/* 0x0bf0 */ 189, 1, 0, 0, 0,187, 1, 0, 0, 0, 72, 99,195, 65,129,251,
|
||||
/* 0x0c00 */ 255,255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132,185,
|
||||
/* 0x0c10 */ 0, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
||||
/* 0x0c20 */ 199, 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,
|
||||
/* 0x0c30 */ 202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0,
|
||||
/* 0x0c40 */ 0, 1,219, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,
|
||||
/* 0x0c50 */ 26, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, 92, 27,
|
||||
/* 0x0c60 */ 1, 69, 9,238,102, 41,194,102, 65,137, 16, 69, 1,237,255,206,
|
||||
/* 0x0c70 */ 117,136, 65,255,198,116, 64,131,197, 2, 69, 57,254,119, 77, 72,
|
||||
/* 0x0c80 */ 139, 84, 36,232, 68,137,248, 68, 41,240, 68, 15,182, 44, 2, 68,
|
||||
/* 0x0c90 */ 137,248, 65,255,199,255,205, 68,136, 44, 2, 15,149,194, 49,192,
|
||||
/* 0x0ca0 */ 68, 59,124, 36,228, 15,146,192,133,194,117,211, 68, 59,124, 36,
|
||||
/* 0x0cb0 */ 228, 15,130, 69,247,255,255, 65,129,251,255,255,255, 0,119, 22,
|
||||
/* 0x0cc0 */ 76, 57,231,184, 1, 0, 0, 0,116, 35,235, 7,184, 1, 0, 0,
|
||||
/* 0x0cd0 */ 0,235, 26, 72,255,199,137,248, 43, 68, 36,248, 72,139, 76, 36,
|
||||
/* 0x0ce0 */ 240, 72,139, 92, 36, 56,137, 1, 68,137, 59, 49,192, 91, 93, 65,
|
||||
/* 0x0cf0 */ 92, 65, 93, 65, 94, 65, 95, 65, 87, 72,141, 71, 4, 69, 49,255,
|
||||
/* 0x0d00 */ 65, 86, 65,190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, 84, 85,
|
||||
/* 0x0d10 */ 83, 72,137, 76, 36,240, 72,137, 68, 36,216,184, 1, 0, 0, 0,
|
||||
/* 0x0d20 */ 72,137,116, 36,248, 76,137, 68, 36,232,137,195, 68,137, 76, 36,
|
||||
/* 0x0d30 */ 228, 15,182, 79, 2,211,227,137,217, 72,139, 92, 36, 56,255,201,
|
||||
/* 0x0d40 */ 137, 76, 36,212, 15,182, 79, 1,211,224, 72,139, 76, 36,240,255,
|
||||
/* 0x0d50 */ 200,137, 68, 36,208, 15,182, 7,199, 1, 0, 0, 0, 0,199, 68,
|
||||
/* 0x0d60 */ 36,200, 0, 0, 0, 0,199, 68, 36,196, 1, 0, 0, 0,199, 68,
|
||||
/* 0x0d70 */ 36,192, 1, 0, 0, 0,199, 68, 36,188, 1, 0, 0, 0,199, 3,
|
||||
/* 0x0d80 */ 0, 0, 0, 0,137, 68, 36,204, 15,182, 79, 1, 1,193,184, 0,
|
||||
/* 0x0d90 */ 3, 0, 0,211,224, 49,201,141,184, 54, 7, 0, 0, 65, 57,255,
|
||||
/* 0x0da0 */ 115, 19, 72,139, 92, 36,216,137,200,255,193, 57,249,102,199, 4,
|
||||
/* 0x0db0 */ 67, 0, 4,235,235, 72,139,124, 36,248,137,208, 69, 49,210, 65,
|
||||
/* 0x0dc0 */ 131,203,255, 49,210, 73,137,252, 73, 1,196, 76, 57,231, 15,132,
|
||||
/* 0x0dd0 */ 239, 8, 0, 0, 15,182, 7, 65,193,226, 8,255,194, 72,255,199,
|
||||
/* 0x0de0 */ 65, 9,194,131,250, 4,126,227, 68, 59,124, 36,228, 15,131,218,
|
||||
/* 0x0df0 */ 8, 0, 0,139, 68, 36,212, 72, 99, 92, 36,200, 72,139, 84, 36,
|
||||
/* 0x0e00 */ 216, 68, 33,248,137, 68, 36,184, 72, 99,108, 36,184, 72,137,216,
|
||||
/* 0x0e10 */ 72,193,224, 4, 72, 1,232, 65,129,251,255,255,255, 0, 76,141,
|
||||
/* 0x0e20 */ 12, 66,119, 26, 76, 57,231, 15,132,150, 8, 0, 0, 15,182, 7,
|
||||
/* 0x0e30 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,
|
||||
/* 0x0e40 */ 183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,
|
||||
/* 0x0e50 */ 194, 15,131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0, 0, 72,
|
||||
/* 0x0e60 */ 139, 92, 36,216, 41,200, 15,182, 76, 36,204,190, 1, 0, 0, 0,
|
||||
/* 0x0e70 */ 193,248, 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1,139, 68,
|
||||
/* 0x0e80 */ 36,208, 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76, 36,204,
|
||||
/* 0x0e90 */ 211,250, 1,208,105,192, 0, 3, 0, 0,131,124, 36,200, 6,137,
|
||||
/* 0x0ea0 */ 192, 76,141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0, 0, 72,
|
||||
/* 0x0eb0 */ 139, 84, 36,232, 68,137,248, 68, 41,240, 15,182, 44, 2, 1,237,
|
||||
/* 0x0ec0 */ 72, 99,214,137,235,129,227, 0, 1, 0, 0, 65,129,251,255,255,
|
||||
/* 0x0ed0 */ 255, 0, 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119, 26, 76,
|
||||
/* 0x0ee0 */ 57,231, 15,132,219, 7, 0, 0, 15,182, 7, 65,193,226, 8, 65,
|
||||
/* 0x0ef0 */ 193,227, 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0, 2, 0,
|
||||
/* 0x0f00 */ 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,
|
||||
/* 0x0f10 */ 115, 32, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248,
|
||||
/* 0x0f20 */ 5,133,219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0,116, 33,
|
||||
/* 0x0f30 */ 235, 45, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141,116,
|
||||
/* 0x0f40 */ 54, 1,102, 41,194,133,219,102, 65,137,144, 0, 2, 0, 0,116,
|
||||
/* 0x0f50 */ 14,129,254,255, 0, 0, 0, 15,142, 97,255,255,255,235,120,129,
|
||||
/* 0x0f60 */ 254,255, 0, 0, 0,127,112, 72, 99,198, 65,129,251,255,255,255,
|
||||
/* 0x0f70 */ 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, 67, 7, 0, 0,
|
||||
/* 0x0f80 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,
|
||||
/* 0x0f90 */ 194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202, 15,175,
|
||||
/* 0x0fa0 */ 193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 1,246,
|
||||
/* 0x0fb0 */ 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,161, 65, 41,
|
||||
/* 0x0fc0 */ 195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,
|
||||
/* 0x0fd0 */ 194,102, 65,137, 16,235,136, 72,139, 76, 36,232, 68,137,248, 65,
|
||||
/* 0x0fe0 */ 255,199, 65,137,245, 64,136, 52, 1,131,124, 36,200, 3,127, 13,
|
||||
/* 0x0ff0 */ 199, 68, 36,200, 0, 0, 0, 0,233,166, 6, 0, 0,139, 84, 36,
|
||||
/* 0x1000 */ 200,139, 68, 36,200,131,234, 3,131,232, 6,131,124, 36,200, 9,
|
||||
/* 0x1010 */ 15, 79,208,137, 84, 36,200,233,135, 6, 0, 0, 65, 41,195, 65,
|
||||
/* 0x1020 */ 41,194,137,208,102,193,232, 5,102, 41,194, 72,139, 68, 36,216,
|
||||
/* 0x1030 */ 65,129,251,255,255,255, 0,102, 65,137, 17, 72,141, 52, 88,119,
|
||||
/* 0x1040 */ 26, 76, 57,231, 15,132,121, 6, 0, 0, 15,182, 7, 65,193,226,
|
||||
/* 0x1050 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,128, 1,
|
||||
/* 0x1060 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,
|
||||
/* 0x1070 */ 194,115, 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76, 36,216,
|
||||
/* 0x1080 */ 41,200,139, 76, 36,196, 68,137,116, 36,196,193,248, 5,141, 4,
|
||||
/* 0x1090 */ 2,139, 84, 36,192,137, 76, 36,192,102,137,134,128, 1, 0, 0,
|
||||
/* 0x10a0 */ 49,192,131,124, 36,200, 6,137, 84, 36,188, 15,159,192, 73,129,
|
||||
/* 0x10b0 */ 193,100, 6, 0, 0,141, 4, 64,137, 68, 36,200,233, 84, 2, 0,
|
||||
/* 0x10c0 */ 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194,
|
||||
/* 0x10d0 */ 65,129,251,255,255,255, 0,102,137,150,128, 1, 0, 0,119, 26,
|
||||
/* 0x10e0 */ 76, 57,231, 15,132,218, 5, 0, 0, 15,182, 7, 65,193,226, 8,
|
||||
/* 0x10f0 */ 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,152, 1, 0,
|
||||
/* 0x1100 */ 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,
|
||||
/* 0x1110 */ 15,131,208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137,195, 72,
|
||||
/* 0x1120 */ 193,227, 5, 68,137,192, 41,200,193,248, 5,141, 4, 2,102,137,
|
||||
/* 0x1130 */ 134,152, 1, 0, 0, 72,139, 68, 36,216, 72, 1,216, 65,129,251,
|
||||
/* 0x1140 */ 255,255,255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15,132,112,
|
||||
/* 0x1150 */ 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
||||
/* 0x1160 */ 199, 65, 9,194, 15,183,150,224, 1, 0, 0, 68,137,216,193,232,
|
||||
/* 0x1170 */ 11, 15,183,202, 15,175,193, 65, 57,194,115, 79, 65, 41,200, 65,
|
||||
/* 0x1180 */ 137,195, 65,193,248, 5, 69,133,255, 66,141, 4, 2,102,137,134,
|
||||
/* 0x1190 */ 224, 1, 0, 0, 15,132, 41, 5, 0, 0, 49,192,131,124, 36,200,
|
||||
/* 0x11a0 */ 6, 72,139, 92, 36,232, 15,159,192,141, 68, 0, 9,137, 68, 36,
|
||||
/* 0x11b0 */ 200, 68,137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137,248, 65,
|
||||
/* 0x11c0 */ 255,199, 68,136, 44, 3,233,216, 4, 0, 0, 65, 41,195, 65, 41,
|
||||
/* 0x11d0 */ 194,137,208,102,193,232, 5,102, 41,194,102,137,150,224, 1, 0,
|
||||
/* 0x11e0 */ 0,233, 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,
|
||||
/* 0x11f0 */ 232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,150,152,
|
||||
/* 0x1200 */ 1, 0, 0,119, 26, 76, 57,231, 15,132,181, 4, 0, 0, 15,182,
|
||||
/* 0x1210 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,
|
||||
/* 0x1220 */ 183,150,176, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,
|
||||
/* 0x1230 */ 175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, 41,
|
||||
/* 0x1240 */ 200,193,248, 5,141, 4, 2,102,137,134,176, 1, 0, 0,139, 68,
|
||||
/* 0x1250 */ 36,196,233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137,208,102,
|
||||
/* 0x1260 */ 193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,150,
|
||||
/* 0x1270 */ 176, 1, 0, 0,119, 26, 76, 57,231, 15,132, 68, 4, 0, 0, 15,
|
||||
/* 0x1280 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194,
|
||||
/* 0x1290 */ 15,183,150,200, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202,
|
||||
/* 0x12a0 */ 15,175,193, 65, 57,194,115, 29, 65,137,195,184, 0, 8, 0, 0,
|
||||
/* 0x12b0 */ 41,200,193,248, 5,141, 4, 2,102,137,134,200, 1, 0, 0,139,
|
||||
/* 0x12c0 */ 68, 36,192,235, 34, 65, 41,195, 65, 41,194,137,208,102,193,232,
|
||||
/* 0x12d0 */ 5,102, 41,194,139, 68, 36,188,102,137,150,200, 1, 0, 0,139,
|
||||
/* 0x12e0 */ 84, 36,192,137, 84, 36,188,139, 76, 36,196,137, 76, 36,192, 68,
|
||||
/* 0x12f0 */ 137,116, 36,196, 65,137,198, 49,192,131,124, 36,200, 6, 76,139,
|
||||
/* 0x1300 */ 76, 36,216, 15,159,192, 73,129,193,104, 10, 0, 0,141, 68, 64,
|
||||
/* 0x1310 */ 8,137, 68, 36,200, 65,129,251,255,255,255, 0,119, 26, 76, 57,
|
||||
/* 0x1320 */ 231, 15,132,156, 3, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,
|
||||
/* 0x1330 */ 227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193,
|
||||
/* 0x1340 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 39, 65,137,195,
|
||||
/* 0x1350 */ 184, 0, 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141, 4, 2,
|
||||
/* 0x1360 */ 102, 65,137, 1, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, 68,
|
||||
/* 0x1370 */ 1, 4,235,120, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,
|
||||
/* 0x1380 */ 102, 41,194, 65,129,251,255,255,255, 0,102, 65,137, 17,119, 26,
|
||||
/* 0x1390 */ 76, 57,231, 15,132, 42, 3, 0, 0, 15,182, 7, 65,193,226, 8,
|
||||
/* 0x13a0 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, 2, 68,
|
||||
/* 0x13b0 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 52,
|
||||
/* 0x13c0 */ 65,137,195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, 41,200,
|
||||
/* 0x13d0 */ 193,248, 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 68, 36,184,
|
||||
/* 0x13e0 */ 72,193,224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, 3, 0,
|
||||
/* 0x13f0 */ 0, 0,235, 39, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,
|
||||
/* 0x1400 */ 77,141,129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, 41,194,
|
||||
/* 0x1410 */ 102, 65,137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203,189, 1,
|
||||
/* 0x1420 */ 0, 0, 0, 72, 99,197, 65,129,251,255,255,255, 0, 73,141, 52,
|
||||
/* 0x1430 */ 64,119, 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, 7, 65,
|
||||
/* 0x1440 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 14,
|
||||
/* 0x1450 */ 68,137,216,193,232, 11, 15,183,209, 15,175,194, 65, 57,194,115,
|
||||
/* 0x1460 */ 23, 65,137,195,184, 0, 8, 0, 0, 1,237, 41,208,193,248, 5,
|
||||
/* 0x1470 */ 141, 4, 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194,137,200,
|
||||
/* 0x1480 */ 102,193,232, 5,141,108, 45, 1,102, 41,193,102,137, 14,255,203,
|
||||
/* 0x1490 */ 117,145,184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, 68, 1,
|
||||
/* 0x14a0 */ 237,131,124, 36,200, 3, 15,143,194, 1, 0, 0,131, 68, 36,200,
|
||||
/* 0x14b0 */ 7,184, 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, 92, 36,
|
||||
/* 0x14c0 */ 216, 65,184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76,141,140,
|
||||
/* 0x14d0 */ 3, 96, 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65,129,251,
|
||||
/* 0x14e0 */ 255,255,255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15,132,208,
|
||||
/* 0x14f0 */ 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,
|
||||
/* 0x1500 */ 199, 65, 9,194, 15,183, 22, 68,137,216,193,232, 11, 15,183,202,
|
||||
/* 0x1510 */ 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0,
|
||||
/* 0x1520 */ 69, 1,192, 41,200,193,248, 5,141, 4, 2,102,137, 6,235, 23,
|
||||
/* 0x1530 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 71,141, 68, 0,
|
||||
/* 0x1540 */ 1,102, 41,194,102,137, 22,255,203,117,143, 65,131,232, 64, 65,
|
||||
/* 0x1550 */ 131,248, 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131,230, 1,
|
||||
/* 0x1560 */ 68,137,192,209,248, 65,131,206, 2, 65,131,248, 13,141,112,255,
|
||||
/* 0x1570 */ 127, 35,137,241, 72,139, 92, 36,216, 73, 99,192, 65,211,230, 72,
|
||||
/* 0x1580 */ 1,192, 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141,138, 94,
|
||||
/* 0x1590 */ 5, 0, 0,235, 81,141,112,251, 65,129,251,255,255,255, 0,119,
|
||||
/* 0x15a0 */ 26, 76, 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65,193,226,
|
||||
/* 0x15b0 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65,209,235, 69, 1,
|
||||
/* 0x15c0 */ 246, 69, 57,218,114, 7, 69, 41,218, 65,131,206, 1,255,206,117,
|
||||
/* 0x15d0 */ 199, 76,139, 76, 36,216, 65,193,230, 4,190, 4, 0, 0, 0, 73,
|
||||
/* 0x15e0 */ 129,193, 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, 0, 0,
|
||||
/* 0x15f0 */ 0, 72, 99,195, 65,129,251,255,255,255, 0, 77,141, 4, 65,119,
|
||||
/* 0x1600 */ 26, 76, 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65,193,226,
|
||||
/* 0x1610 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,
|
||||
/* 0x1620 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24,
|
||||
/* 0x1630 */ 65,137,195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, 5,141,
|
||||
/* 0x1640 */ 4, 2,102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194,137,208,
|
||||
/* 0x1650 */ 102,193,232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194,102, 65,
|
||||
/* 0x1660 */ 137, 16, 69, 1,237,255,206,117,136, 65,255,198,116, 64,131,197,
|
||||
/* 0x1670 */ 2, 69, 57,254,119, 77, 72,139, 84, 36,232, 68,137,248, 68, 41,
|
||||
/* 0x1680 */ 240, 68, 15,182, 44, 2, 68,137,248, 65,255,199,255,205, 68,136,
|
||||
/* 0x1690 */ 44, 2, 15,149,194, 49,192, 68, 59,124, 36,228, 15,146,192,133,
|
||||
/* 0x16a0 */ 194,117,211, 68, 59,124, 36,228, 15,130, 69,247,255,255, 65,129,
|
||||
/* 0x16b0 */ 251,255,255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, 0,116,
|
||||
/* 0x16c0 */ 35,235, 7,184, 1, 0, 0, 0,235, 26, 72,255,199,137,248, 43,
|
||||
/* 0x16d0 */ 68, 36,248, 72,139, 76, 36,240, 72,139, 92, 36, 56,137, 1, 68,
|
||||
/* 0x16e0 */ 137, 59, 49,192, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, 72,139,
|
||||
/* 0x16f0 */ 117,248, 72,139,125, 16,139, 75, 4, 72, 1,206,139, 19, 72, 1,
|
||||
/* 0x1700 */ 215,201, 89, 72,137,240, 72, 41,200, 90, 72, 41,215, 89,137, 57,
|
||||
/* 0x1710 */ 91, 93,195, 93, 72,141, 93,243,139, 67,252, 5, 0, 0, 0, 0,
|
||||
/* 0x1720 */ 45, 0, 0, 0, 0, 80, 69, 41,201, 69, 41,192,185, 2, 16, 0,
|
||||
/* 0x1730 */ 0,186, 3, 0, 0, 0,137,198, 41,255,104, 0, 0, 0, 0, 88,
|
||||
/* 0x1740 */ 15, 5, 80, 72,137,238, 72,137,197, 72,199,199, 0, 0, 0, 0,
|
||||
/* 0x1750 */ 185, 0, 0, 0, 0,129,233, 0, 0, 0, 0,252,243,164, 72,141,
|
||||
/* 0x1760 */ 135,118,255,255,255,255,224, 87, 72,137,218,139, 67,244, 43, 19,
|
||||
/* 0x1770 */ 72, 1,208, 72,137, 68, 36, 44,139,115,248, 72, 1,214,139, 75,
|
||||
/* 0x1780 */ 252,243,164, 94, 72,137,215,173, 72, 1,199,173, 72, 1,198,173,
|
||||
/* 0x1790 */ 86, 87,173,133,192,116, 68, 80, 72,137,225, 80, 81, 87, 72, 1,
|
||||
/* 0x17a0 */ 199,173, 80, 72,137,193,173, 72,137, 68, 36, 12, 86, 72, 1,206,
|
||||
/* 0x17b0 */ 255,213, 72,131,196, 24, 90, 88, 15,182, 72, 9,103,227,209, 81,
|
||||
/* 0x17c0 */ 15,182, 72, 10,255, 52, 37, 0, 0, 0, 0,255,112, 0, 82, 72,
|
||||
/* 0x17d0 */ 141, 69, 2,255,208, 72,131,196, 16,235,181, 88, 72,141, 87,251,
|
||||
/* 0x17e0 */ 198, 2, 91,199, 66, 1, 88, 88, 97,195,106, 73, 88, 15, 5,255,
|
||||
/* 0x17f0 */ 226,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102,
|
||||
/* 0x1800 */ 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,
|
||||
/* 0x1810 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32,
|
||||
/* 0x1820 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32,
|
||||
/* 0x1830 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1840 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1850 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,
|
||||
/* 0x1860 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77,
|
||||
/* 0x1870 */ 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x1880 */ 48, 48, 48, 49, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x18b0 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x18c0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
|
||||
/* 0x18d0 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65,
|
||||
/* 0x18e0 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 54, 32,
|
||||
/* 0x18f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1900 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1910 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 49, 32, 32, 50,
|
||||
/* 0x1920 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x1930 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50,
|
||||
/* 0x1940 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1950 */ 98, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1960 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1970 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, 55,
|
||||
/* 0x1980 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x1990 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76,
|
||||
/* 0x19a0 */ 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
|
||||
/* 0x19b0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57,101, 32, 32, 48, 48,
|
||||
/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19e0 */ 32, 32, 48, 48, 48, 48, 48, 49, 54,101, 32, 32, 50, 42, 42, 48,
|
||||
/* 0x19f0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
|
||||
/* 0x1a00 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32,
|
||||
/* 0x1a10 */ 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x1a20 */ 48, 48, 48, 48, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1a50 */ 48, 50, 48, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x1a60 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
|
||||
/* 0x1a70 */ 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, 95, 69,
|
||||
/* 0x1a80 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 52,
|
||||
/* 0x1a90 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1aa0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ab0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 57, 99, 32, 32,
|
||||
/* 0x1ac0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x1ad0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x1ae0 */ 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32,
|
||||
/* 0x1af0 */ 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1b20 */ 48, 48, 48, 48, 48, 51, 48, 48, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x1b30 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x1b40 */ 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
|
||||
/* 0x1b50 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48,
|
||||
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1b70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b80 */ 48, 32, 32, 48, 48, 48, 48, 48, 99,102, 55, 32, 32, 50, 42, 42,
|
||||
/* 0x1b90 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x1ba0 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1bb0 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52,
|
||||
/* 0x1bc0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bd0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1be0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,101,101, 32, 32,
|
||||
/* 0x1bf0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x1c00 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86,
|
||||
/* 0x1c10 */ 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1c20 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c30 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 48,
|
||||
/* 0x1c50 */ 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x1c60 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32,
|
||||
/* 0x1c70 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x1c80 */ 48, 48, 48, 48, 49, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1cb0 */ 49, 55, 48, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x1cc0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
|
||||
/* 0x1cd0 */ 49, 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32,
|
||||
/* 0x1ce0 */ 32, 48, 48, 48, 48, 48, 48,100,101, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1d10 */ 48, 48, 48, 49, 55, 49, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
||||
/* 0x1d20 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
|
||||
/* 0x1d30 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32,
|
||||
/* 0x1d40 */ 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1d60 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77,
|
||||
/* 0x1d80 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d90 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
|
||||
/* 0x1da0 */ 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68,
|
||||
/* 0x1dc0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1dd0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1de0 */ 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1df0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
||||
/* 0x1e00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e10 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65,
|
||||
/* 0x1e20 */ 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e30 */ 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48,
|
||||
/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1e50 */ 108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78,
|
||||
/* 0x1e60 */ 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e70 */ 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48,
|
||||
/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1e90 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48,
|
||||
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
|
||||
/* 0x1eb0 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ec0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
|
||||
/* 0x1ed0 */ 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ee0 */ 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ef0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x1f00 */ 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48,
|
||||
/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1f30 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70,
|
||||
/* 0x1f40 */ 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f50 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48,
|
||||
/* 0x1f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1f70 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1f80 */ 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f90 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48,
|
||||
/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1fb0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1fc0 */ 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1fd0 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48,
|
||||
/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1ff0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76,
|
||||
/* 0x2000 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2010 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32,
|
||||
/* 0x2030 */ 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48,
|
||||
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,
|
||||
/* 0x2050 */ 115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2060 */ 48, 48, 48, 48, 49, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 77,
|
||||
/* 0x2070 */ 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101,
|
||||
/* 0x2090 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x20b0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 95, 95, 78, 82, 95,109,109,
|
||||
/* 0x20d0 */ 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20e0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
|
||||
/* 0x20f0 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2100 */ 48, 48, 32,114, 97,120, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2120 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2130 */ 48, 48, 48, 48, 48, 48, 32,101, 99,120, 10, 10, 82, 69, 76, 79,
|
||||
/* 0x2140 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
|
||||
/* 0x2150 */ 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10,
|
||||
/* 0x2160 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2170 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2180 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2190 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 88, 56, 54, 95,
|
||||
/* 0x21a0 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72,
|
||||
/* 0x21b0 */ 77, 65, 73, 78, 90, 43, 48,120,102,102,102,102,102,102,102,102,
|
||||
/* 0x21c0 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65,
|
||||
/* 0x21d0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
|
||||
/* 0x21e0 */ 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84,
|
||||
/* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
|
||||
/* 0x2200 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
|
||||
/* 0x2210 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2220 */ 48, 97,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
|
||||
/* 0x2230 */ 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,
|
||||
/* 0x2240 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50,
|
||||
/* 0x2250 */ 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2260 */ 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
|
||||
/* 0x2270 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,
|
||||
/* 0x2280 */ 120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
|
||||
/* 0x2290 */ 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
|
||||
/* 0x22a0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68,
|
||||
/* 0x22b0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x22c0 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x22d0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
||||
/* 0x22e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 53, 32, 82, 95, 88,
|
||||
/* 0x22f0 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78,
|
||||
/* 0x2300 */ 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2310 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x2320 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56,
|
||||
/* 0x2330 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65,
|
||||
/* 0x2340 */ 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,
|
||||
/* 0x2350 */ 102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79,
|
||||
/* 0x2360 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
|
||||
/* 0x2370 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83,
|
||||
/* 0x2380 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
||||
/* 0x2390 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
||||
/* 0x23a0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x23b0 */ 48, 48, 48, 56, 97, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80,
|
||||
/* 0x23c0 */ 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68,
|
||||
/* 0x23d0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x23e0 */ 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x23f0 */ 48, 48, 53, 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
|
||||
/* 0x2400 */ 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89,
|
||||
/* 0x2410 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,
|
||||
/* 0x2420 */ 102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
||||
/* 0x2430 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77,
|
||||
/* 0x2440 */ 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84,
|
||||
/* 0x2450 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
|
||||
/* 0x2460 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
|
||||
/* 0x2470 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2480 */ 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
|
||||
/* 0x2490 */ 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
||||
/* 0x24a0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x24b0 */ 48, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
||||
/* 0x24c0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67,
|
||||
/* 0x24d0 */ 72, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x24e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x24f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x2500 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2510 */ 48, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
|
||||
/* 0x2520 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,
|
||||
/* 0x2530 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100,
|
||||
/* 0x2540 */ 101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2550 */ 48,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
|
||||
/* 0x2560 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 43, 48,
|
||||
/* 0x2570 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2580 */ 57, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2590 */ 50, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
|
||||
/* 0x25a0 */ 32, 32, 32, 32, 32, 95, 95, 78, 82, 95,109,109, 97,112, 10, 48,
|
||||
/* 0x25b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 57, 32,
|
||||
/* 0x25c0 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32,
|
||||
/* 0x25d0 */ 32, 32,114, 97,120, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x25e0 */ 48, 48, 48, 48, 51,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x25f0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73,
|
||||
/* 0x2600 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2610 */ 48, 48, 48,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2620 */ 48, 48, 48, 48, 52, 52, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x2630 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73,
|
||||
/* 0x2640 */ 78, 88, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2650 */ 48, 48, 48, 48, 57, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2660 */ 48, 48, 48, 48, 98, 52, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x2670 */ 51, 50, 83, 32, 32, 32, 32, 32, 32,101, 99,120, 10
|
||||
};
|
298
src/stub/src/amd64-darwin.dylib-entry.S
Normal file
298
src/stub/src/amd64-darwin.dylib-entry.S
Normal file
|
@ -0,0 +1,298 @@
|
|||
/*
|
||||
; amd64-darwin.dylib-entry.S -- shlib entry point & decompressor (amd64 Mach-o)
|
||||
;
|
||||
; This file is part of the UPX executable compressor.
|
||||
;
|
||||
; Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
|
||||
; Copyright (C) 1996-2010 Laszlo Molnar
|
||||
; Copyright (C) 2000-2011 John F. Reiser
|
||||
; All Rights Reserved.
|
||||
;
|
||||
; UPX and the UCL library are free software; you can redistribute them
|
||||
; and/or modify them under the terms of the GNU General Public License as
|
||||
; published by the Free Software Foundation; either version 2 of
|
||||
; the License, or (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; see the file COPYING.
|
||||
; If not, write to the Free Software Foundation, Inc.,
|
||||
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
;
|
||||
; Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
; <markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
;
|
||||
; John F. Reiser
|
||||
; <jreiser@users.sourceforge.net>
|
||||
;
|
||||
*/
|
||||
|
||||
#include "arch/amd64/macros.S"
|
||||
#include "arch/amd64/regs.h"
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// We have been CALLed as a subroutine from dyld; C-language rules apply.
|
||||
// -4*4+_start: .int32 offset(user_init_function)
|
||||
// -3*4+_start: .int32 offset(&b_info of compressed Mach_headers)
|
||||
// -2*4+_start: .int32 length(compressed __TEXT)
|
||||
// -1*4+_start: .int32 total_length # of preceding bytes in file
|
||||
**************************************************************************/
|
||||
|
||||
section MACHMAINX
|
||||
_start: .globl _start
|
||||
int3 // FIXME
|
||||
push %rax // space for &user_init function
|
||||
push %rbp // callee-save registers
|
||||
push %rbx
|
||||
call main // push &decompress
|
||||
|
||||
/* Returns 0 on success; non-zero on failure. */
|
||||
decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method)
|
||||
|
||||
/* Arguments according to calling convention */
|
||||
#define src %arg1
|
||||
#define lsrc %arg2
|
||||
#define dst %arg3
|
||||
#define ldst %arg4 /* Out: actually a reference: &len_dst */
|
||||
#define meth %arg5l
|
||||
#define methb %arg5b
|
||||
|
||||
push %rbp; push %rbx // C callable
|
||||
push ldst
|
||||
push dst
|
||||
addq src,lsrc; push lsrc // &input_eof
|
||||
|
||||
M_NRV2B_LE32=2 // ../conf.h
|
||||
M_NRV2D_LE32=5
|
||||
M_NRV2E_LE32=8
|
||||
|
||||
section NRV_HEAD
|
||||
|
||||
/* Working registers */
|
||||
#define off %eax /* XXX: 2GB */
|
||||
#define len %ecx /* XXX: 2GB */
|
||||
#define lenq %rcx
|
||||
#define bits %ebx
|
||||
#define disp %rbp
|
||||
|
||||
movq src,%rsi // hardware src for movsb, lodsb
|
||||
movq dst,%rdi // hardware dst for movsb
|
||||
xor bits,bits // empty; force refill
|
||||
xor len,len // create loop invariant
|
||||
orq $(~0),disp // -1: initial displacement
|
||||
call setup // push &getbit [TUNED]
|
||||
ra_setup:
|
||||
|
||||
/* AMD64 branch prediction is much worse if there are more than 3 branches
|
||||
per 16-byte block. The jnextb would suffer unless inlined. getnextb is OK
|
||||
using closed subroutine to save space, and should be OK on cycles because
|
||||
CALL+RET should be predicted. getnextb could partially expand, using closed
|
||||
subroutine only for refill.
|
||||
*/
|
||||
/* jump on next bit {0,1} with prediction {y==>likely, n==>unlikely} */
|
||||
/* Prediction omitted for now. */
|
||||
/* On refill: prefetch next byte, for latency reduction on literals and offsets. */
|
||||
#define jnextb0np jnextb0yp
|
||||
#define jnextb0yp GETBITp; jnc
|
||||
#define jnextb1np jnextb1yp
|
||||
#define jnextb1yp GETBITp; jc
|
||||
#define GETBITp \
|
||||
addl bits,bits; jnz 0f; \
|
||||
movl (%rsi),bits; subq $-4,%rsi; \
|
||||
adcl bits,bits; movb (%rsi),%dl; \
|
||||
0:
|
||||
/* Same, but without prefetch (not useful for length of match.) */
|
||||
#define jnextb0n jnextb0y
|
||||
#define jnextb0y GETBIT; jnc
|
||||
#define jnextb1n jnextb1y
|
||||
#define jnextb1y GETBIT; jc
|
||||
#define GETBIT \
|
||||
addl bits,bits; jnz 0f; \
|
||||
movl (%rsi),bits; subq $-4,%rsi; \
|
||||
adcl bits,bits; \
|
||||
0:
|
||||
|
||||
/* rotate next bit into bottom bit of reg */
|
||||
#define getnextbp(reg) call *%r11; adcl reg,reg
|
||||
#define getnextb(reg) getnextbp(reg)
|
||||
|
||||
|
||||
getbit:
|
||||
addl bits,bits; jz refill // Carry= next bit
|
||||
rep; ret
|
||||
refill:
|
||||
movl (%rsi),bits; subq $-4,%rsi // next 32 bits; set Carry
|
||||
adcl bits,bits // LSB= 1 (CarryIn); CarryOut= next bit
|
||||
movb (%rsi),%dl // speculate: literal, or bottom 8 bits of offset
|
||||
rep; ret
|
||||
|
||||
copy: // In: len, %rdi, disp; Out: 0==len, %rdi, disp; trashes %rax, %rdx
|
||||
leaq (%rdi,disp),%rax; cmpl $5,len // <=3 is forced
|
||||
movb (%rax),%dl; jbe copy1 // <=5 for better branch predict
|
||||
cmpq $-4,disp; ja copy1 // 4-byte chunks would overlap
|
||||
subl $4,len // adjust for termination cases
|
||||
copy4:
|
||||
movl (%rax),%edx; addq $4, %rax; subl $4,len
|
||||
movl %edx,(%rdi); leaq 4(%rdi),%rdi; jnc copy4
|
||||
addl $4,len; movb (%rax),%dl; jz copy0
|
||||
copy1:
|
||||
incq %rax; movb %dl,(%rdi); subl $1,len
|
||||
movb (%rax),%dl
|
||||
leaq 1(%rdi),%rdi; jnz copy1
|
||||
copy0:
|
||||
rep; ret
|
||||
|
||||
setup:
|
||||
cld
|
||||
pop %r11 // addq $ getbit - ra_setup,%r11 # &getbit
|
||||
|
||||
section NRV2E
|
||||
#include "arch/amd64/nrv2e_d.S"
|
||||
|
||||
section NRV2D
|
||||
#include "arch/amd64/nrv2d_d.S"
|
||||
|
||||
section NRV2B
|
||||
#include "arch/amd64/nrv2b_d.S"
|
||||
|
||||
/* lzma has its own 'section's */
|
||||
#include "arch/amd64/lzma_d.S"
|
||||
|
||||
section NRV_TAIL
|
||||
/* NRV_TAIL is empty */
|
||||
|
||||
section MACHMAINY
|
||||
eof:
|
||||
pop %rcx // &input_eof
|
||||
movq %rsi,%rax; subq %rcx,%rax // src -= eof; // return 0: good; else: bad
|
||||
pop %rdx; subq %rdx,%rdi // dst -= original dst
|
||||
pop %rcx; movl %edi,(%rcx) // actual length used at dst XXX: 4GB
|
||||
pop %rbx; pop %rbp
|
||||
ret
|
||||
|
||||
end_decompress: .globl end_decompress
|
||||
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section MACHMAINZ
|
||||
#define PAGE_SIZE ( 1<<12)
|
||||
|
||||
sz_Mach_header= 7*4
|
||||
mh_sizeofcmds=5*4
|
||||
|
||||
seg_vmaddr=2*4+16
|
||||
seg_vmsize=4+seg_vmaddr
|
||||
seg_filesize=2*4+seg_vmsize
|
||||
|
||||
sz_l_info=3*4
|
||||
sz_p_info=3*4
|
||||
sz_b_info=3*4
|
||||
sz_unc= 0
|
||||
sz_cpr= 4
|
||||
b_method= 8
|
||||
|
||||
#define MAP_FIXED 0x10
|
||||
#define MAP_PRIVATE 0x02
|
||||
#define MAP_ANON 0x1000
|
||||
#define PROT_READ 1
|
||||
#define PROT_WRITE 2
|
||||
#define PROT_EXEC 4
|
||||
|
||||
|
||||
main:
|
||||
pop %rbp # &decompress
|
||||
lea -4+ _start - decompress(%rbp),%rbx # &total_length
|
||||
mov -1*4(%rbx),%eax # length(compressed __TEXT)
|
||||
add $dy_top,%eax
|
||||
sub $decompress,%eax
|
||||
|
||||
push %rax # length for eventual munmap
|
||||
|
||||
sub %arg6l,%arg6l # offset
|
||||
sub %arg5l,%arg5l # fd
|
||||
mov $MAP_ANON|MAP_PRIVATE,%arg4l
|
||||
mov $PROT_READ|PROT_WRITE,%arg3l
|
||||
mov %eax,%arg2l # length
|
||||
sub %arg1l,%arg1l # 0 addr
|
||||
push $__NR_mmap; pop %rax
|
||||
syscall
|
||||
|
||||
push %rax # addr for eventual munmap
|
||||
|
||||
// Copy interval [decompress, dy_top).
|
||||
mov %rbp,%rsi # decompressor
|
||||
mov %rax,%rbp # new location
|
||||
mov $rax,%rdi # dst for decompressor
|
||||
mov $dy_top,%ecx
|
||||
sub $decompress,%ecx
|
||||
cld; rep movsb
|
||||
|
||||
// Goto the copied dy_reloc.
|
||||
lea -(dy_top - dy_reloc)(%rdi),%rax
|
||||
jmp *%rax
|
||||
dy_reloc:
|
||||
|
||||
// Copy compressed __TEXT.
|
||||
push %rdi # remember start of compressed __TEXT
|
||||
mov %rbx,%rdx # &total_length
|
||||
mov -3*4(%rbx),%eax # offset(user_init_function)
|
||||
sub (%rbx),%edx # runtime base address
|
||||
add %rdx,%rax; mov %rax,(1+2+8)*4(%rsp) # relocate &user_init_function
|
||||
mov -2*4(%rbx),%esi; add %rdx,%rsi
|
||||
mov -1*4(%rbx),%ecx
|
||||
rep movsb
|
||||
pop %rsi # &b_info for Mach_header
|
||||
mov %rdx,%rdi # runtime base address
|
||||
|
||||
// Decompress __TEXT, but do not overwrite Mach_headers
|
||||
// in order to maintain consistency with dyld partial caching of them.
|
||||
// So, skip the first compressed block.
|
||||
lodsl; add %rax,%rdi # sz_unc
|
||||
lodsl; add %rax,%rsi # sz_cpr
|
||||
lodsl # b_method
|
||||
dy_uncpr:
|
||||
push %rsi; push %rdi # save in case unfilter
|
||||
|
||||
lodsl; test %eax,%eax; jz dy_done
|
||||
push %rax // sz_uncompressed (maximum dstlen for lzma)
|
||||
mov %rsp,%rcx // save &dstlen
|
||||
push %rax // space for 5th param b_info.misc
|
||||
push %rcx // &dstlen
|
||||
push %rdi // dst
|
||||
add %rax,%rdi // next dst
|
||||
lodsl; push %rax // sz_compressed (srclen)
|
||||
mov %rax,%rcx
|
||||
lodsl; mov %rax,3*4(%rsp) // last 4 bytes of b_info
|
||||
push %rsi // &compressed __TEXT
|
||||
add %rcx,%rsi // next src
|
||||
call *%rbp // decompress(src, srclen, dst, &dstlen, b_info.misc)
|
||||
add $(5+1)*4,%rsp // (5+1) args to decompress
|
||||
|
||||
pop %rdx; pop %rax # rdx= old dst; rax= old &b_info
|
||||
movzbl 1+ b_method(%rax),%ecx; jecxz dy_uncpr; push %rcx # ftid
|
||||
movzbl 2+ b_method(%rax),%ecx; push ecx # cto8
|
||||
push sz_unc(%rax)
|
||||
push %rdx # dst
|
||||
lea 2(%rbp),%rax; call *%rax # f_unfilter(dst, dstlen, cto8, ftid)
|
||||
add $4*4,%rsp
|
||||
jmp dy_uncpr
|
||||
|
||||
SYS_munmap=73
|
||||
dy_done:
|
||||
pop %rax # discard, leaving 1 junk word below the regs for POPA
|
||||
lea -5(%rdi),%rdx # steal some space at high end of __TEXT
|
||||
movb $0x5b,(%rdx) # pop eax
|
||||
movl $0xc3615858,1(%rdx) # pop eax; pop eax; popa; ret
|
||||
push $SYS_munmap; pop %rax
|
||||
syscall
|
||||
jmp *%rdx
|
||||
dy_top:
|
||||
|
||||
|
||||
|
||||
// vi:ts=8:et:nowrap
|
Loading…
Reference in New Issue
Block a user